什么是CAN总线?-2

在前文一文读懂can总线(一)中我们简单介绍了can通讯协议,讲了标准can和扩展can以及can消息类型,在本文中将继续为大家深入讲解can总线的位填充机制、错误检测和故障界定、网络拓扑、终端匹配、电缆与接线、差分信号电压幅值。
位填充机制
 定义及机制形式
帧起始、仲裁域、控制域、数据域以及crc校验和域,均通过位填充方法编码。
位填充是指:
无论何时,发送器只要检测到位流中有5个连续相同逻辑的位,便会自动在位流中插入一个补码位。
举例来说,如果连续5个显性位,则在5个显性位之后自动插入1个隐性位,接收器会自动删除这个插入的填充位。
数据帧或远程帧的剩余位域(crc界定符、应答域和帧结尾域)形式固定,不填充;错误帧和过载帧也不填充。
作用
1.can网络同步需要足够多的上升沿,这是can协议规定位填充的目的之一。
2.确保数据帧不会被当作错误帧(由6个连续的显性或隐性位组成)、确保正确识别帧结束标志(7个连续隐性位)。
错误检测和故障界定
can总线具有很高的“健壮性”,这是因为can具有多种错误检查机制。
can协议制定了5种错误检测方法,3种位于报文层,2种位于位流层。
如果一个数据帧出现错误,那么这个帧会被丢弃,并且接收节点还会发送一个错误帧。这会强制发送节点重复发送出错的报文,直到接收节点正确接收;如果同一个报文重复出错,达到一定次数后,发送节点可以关闭发送功能以降低对总线的影响。
报文层错误检测
报文层的错误检测包括crc和ack。
crc域包含15位校验、1位界定符;ack域包括1位应答位、1位界定符。
crc校验错误
crc校验错误很好理解,它对数据域以及数据域之前的位生产crc校验。由于一帧can报文数据流很小(最多8个用户数据),所以15位crc的侦错能力非常优秀。
ack校验错误
ack域是怎么起作用的呢?
这是由can协议规定的,即发送节点发送一帧数据后,接收节点必须向发送节点应答,如果发送节点没有收到接收节点的应答信号,就会认为自己发送失败,从而重传数据。
报文层的第三种错误检查方法是
格式检查
。这种检查会监控报文中那些一定为隐性位的域,如果这些域中出现显性位,则检测到格式错误。这些域包括sof、eof、ack的界定符和crc的界定符。
位流层错误检测
位错误
位流层的错误检测之一是发送到总线上的每一个数据位,都会被监视,如果发现发送的位和总线上的位不相同时,产生位错误。
这种监视机制并不会监视仲裁域的位,这是因为多个节点同时竞争总线时,优先级高的节点可能会覆写总线上的仲裁域位。
位填充规则
位流层的另外一个错误检测机制是位填充规则:5个连续相同逻辑位之后,如果第6个位的逻辑还和前五个相同,则产生位填充错误。 
网络拓扑
can使用差分信号,需要一对信号线,推荐使用双绞线,网络拓扑如下图所示。
can总线网络拓扑结构图
使用差分信号可以抑制共模干扰、能够增加系统可靠性,允许使用更高的速率。
高速iso11898标准规定了can传输最高速率为1mbps,在这个速率下,传输距离最长40米(挂接30个节点,can信号不隔离)。推荐节点分支长度最大为0.3米、使用带屏蔽或不带屏蔽的双绞线,线缆特性阻抗为120欧姆。 
终端匹配
终端匹配电阻大小等于传输电缆特性阻抗,传输电缆特性阻抗由电缆供应商提供,一般近似为:
z=√(l/c)
其中l为电缆单位长度感抗,c为电缆单位长度电容。
由于can收发器结构,从隐性变成显性由晶体管驱动,所以都是很陡的,但是从显性回到隐性,却需要终端电阻来放电,否则就会由于导线分布电容,缓慢放电,导致位宽错误。
所以所谓的近距离、低波特率can总线不加终端电阻的做法,都是错误的。
rs485与can总线不同,由于rs485收发器中一般都内置失效保护电路,在近距离、低波特率下允许不加终端匹配电阻。 
电缆与接线
can总线采用差分信号传输,如果使用带屏蔽双绞线,屏蔽层应单点接地。
带单屏蔽层的can电缆剖析与连接线示范
通常电缆截面积越小,其分布电容、分布电感和直流电阻越大。当通讯距离较远时,电容、电感和直流电阻会引起信号衰减,波形失真和抖动。
一般情况下,电缆供应商会提供信号衰减图表。
24-awg电缆衰减和频率的关系
差分信号电压幅值
can电平幅值
如上图所示,两条信号线can_h和can_l静态时均为2.5v左右,此时状态表示逻辑1,称作隐性;can_h比can_l高表示逻辑0,称为显性,此时通常can_h电压3.5v、can_l电压1.5v。
差分电压幅值与电平极性关系
can标准规定,can总线上的差分电压>0.9v才能被识别成显性电平,<0.5v才能被识别成隐性电平,0.5~0.9之间的电平不能确定电平极性。如上图所示。
终端匹配电阻数目与差分电压幅值关系
在实际项目布线时,容易漏加或者多加终端匹配电阻。我们可以通过测量can差分电压幅值来评估是否漏加或多加终端匹配电阻。
如果不计导线电阻,终端电阻固定为120欧姆,单节点can总线差分电压如上图所示。

中国厂商华为在全球电信基础设施市场的份额仍在增长
三星成功研发出拥有4K分辨率的笔记本OLED面板
物联网、雾计算到云端大数据
充电器5V1A电源管理IC芯片U6215
锂电池安全监控器AD8280
什么是CAN总线?-2
直播精彩回顾(四)| 虹科Flow——数据管道的可观察性解决方案
iPhone8最新消息:这是iPhone8的最靠谱渲染图
简单的恒流源电路图分析
首个“液滴激光器”有助于制造更便宜的光纤通信设备
华宇电子亮相2022世界集成电路大会
华为mate9和p9的区别,16nm工艺处理器给力升级但mate9曲屏版或跳票
C语言零基础项目:生命游戏!详细思路+源码分享
基于PLC的机器人伺服运动控制系统设计详解
用MDaemon搭建邮件服务器-设置篇
松下进一步增强加码动力电池业务的决心
谷歌发布第三季度财报,总营收461.73亿美元
华为 P20在上海发布 还有全球首款全面屏笔记本
怎么应对刘海屏机型的海报设计
相控阵雷达性能的基石:宽禁带半导体