前言
本系列can通信分享内容是对互联网上各种介绍can通信文章的整理,可以让读者更系统的了解can通信。参考的文章见文末。
CAN
Controller Area Network(CAN)是ISO国际标准化的串行通信协议,是一种异步半双工通讯。CAN总线协议是建立在OSI七层参考模型的基础上的,但是它的模型结构只有三层,即物理层、数据链路层和应用层。
物理层总线网络
CAN控制器及CAN收发器
CAN的组成一般有两种方式:一种是CPU与CAN控制器集成到一起、再外接CAN收发器;另一种是CPU与CAN控制器分开的,使用的时候需要配置CAN接口电路。
CAN收发器:用于TTL电平与差分电压信号相互转换的,TTL电平即单片机引脚直接提供的电平,逻辑0代表低电平,逻辑1代表高电平;而差分电压信号则为固定的电压值。常用的有TJA1050或者82C250。
网络结构
CAN通信只由两根线完成的,一条称为CAN_High,一条称为CAN_Low,共同构成一组差分信号线。整个过程是以差分信号的形式进行通讯的,即信号的逻辑 0 和逻辑 1 由两根差分信号线的电压差来表示。终端电阻(通常位120欧)为在高速CAN中防止信号反射和振铃现象。
下图所示是闭环总线网络,特点就是高速、短距离、闭环,最高速度可达1Mbps,最长距离40m。
下图所示是开环总线网络,特点就是传输距离远、开环,最高速度125Kbps,最远距离1km。
差分信号
差分信号的获取如下图所示,差分信号中显性电平比隐性电平优先级要高。
CAN通讯协议中差分信号的数值如下表所示。
信号 | ISO11898(高速) | ISO11519-2(低速) | ||||||||||
隐性(逻辑1) | 显性(逻辑0) | 隐性(逻辑1) | 显性(逻辑0) | |||||||||
最小值 | 典型值 | 最大值 | 最小值 | 典型值 | 最大值 | 最小值 | 典型值 | 最大值 | 最小值 | 典型值 | 最大值 | |
CAN_High(V) | 2.0 | 2.5 | 3.0 | 2.75 | 3.5 | 4.5 | 1.6 | 1.75 | 1.9 | 3.85 | 4.0 | 5.0 |
CAN_Low(V) | 2.0 | 2.5 | 3.0 | 0.5 | 1.5 | 2.25 | 3.10 | 3.25 | 3.4 | 0 | 1.0 | 1.15 |
High_Low(V) | -0.5 | 0 | 0.05 | 1.5 | 2.0 | 3.0 | -0.3 | -1.5 | - | 0.3 | 3.0 | - |
参考
参考文献 |
---|
https://blog.csdn.net/xwwwj/article/details/105372234 |
https://blog.csdn.net/g498912529/article/details/126248130 |