23、STM32——CAN

本文深入解析CAN协议,包括其异步通讯原理、闭环与开环总线网络的区别,以及差分信号的应用。重点介绍了高速CAN与低速开环网络的特点,适合了解CAN技术的读者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、CAN 协议简介


CAN 与 I2C、SPI 等具有时钟信号的同步通讯方式不同,CAN 通讯并不是以时钟信号来进行同步的,它是一种异步通讯,只具有 CAN_High 和 CAN_Low 两条信号线,共同构成一组差分信号线,以差分信号的形式进行通讯。

CAN 物理层的形式主要分为闭环总线及开环总线网络两种,闭环总线适合于高速通讯,开环总线适合于低速远距离通讯。


1.1 闭环总线网络

CAN 物理层的形式主要有两种,CAN 闭环总线通讯网络中的 CAN 通讯网络是一种遵循 ISO11898 标准的高速、短距离闭环网络,它的总线最大长度为 40m,通信速度最高为 1Mbps,总线的两端各要求有一个120 欧的电阻。

在这里插入图片描述


1.2 开环总线网络

CAN 开环总线通讯网络是遵循 ISO11519-2 标准的低速、远距离开环网络,它的最大传输距离为 1km,最高通讯速率为 125kbps,两根总线是独立的、不形成闭环,要求每根总线上各串联有一个2.2 千欧的电阻。

在这里插入图片描述


1.3 差分信号

差分信号又称差模信号,与传统使用单根信号线电压表示逻辑的方式有区别,使用差分信号传输时,需要两根信号线,这两个信号线的振幅相等,相位相反,通过两根信号线的电压差值来表示逻辑 0 和逻辑 1。见图差分信号 ,它使用了 V+ 与 V-信号的差值表达出了图下方的信号。

在这里插入图片描述
在这里插入图片描述

以高速 CAN 协议为例,当表示逻辑 1 时 (隐性电平),CAN_High 和 CAN_Low 线上的电压均为 2.5v,即它们的电压差 V H -V L = 0V;而表示逻辑 0 时 (显性电平),CAN_High 的电平为 3.5V,CAN_Low 线的电平为 1.5V,即它们的电压差为 V H -V L = 2V。

例如:当 CAN 收发器从 CAN_Tx 线接收到来自 CAN 控制器的低电平信号时 (逻辑 0),它会使CAN_High 输出 3.5V,同时 CAN_Low 输出 1.5V,从而输出显性电平表示逻辑 0。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


显性电平逻辑 0,高优先级

隐性电平逻辑 1


2、CAN 协议层


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


3、CAN 外设简介


在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值