中国线束,CAN总线具有很高的健壮性
来源: 作者: 发布时间:2023-07-24 10:01 浏览量:0
错误检测和故障界定
CAN总线具有很高的健壮性,这可能要归功于CAN具有多种错误检查机制。CAN协议制定了5种错误检测方法:三种位于报文层,两种位于位流层。如果一个数据帧出现错误,那么这个帧会被丢弃,并且接收节点还会发送一个错误帧。这会强制发送节点重复发送出错的报文,直到接收节点正确接收。如果同一个报文重复出错,达到一定次数后,发送节点可以关闭发送功能以降低对总线的影响。
报文层的错误检测包括CRC和ACK。16位的CRC域包含15位校验和、1位界定符。ACK域包括1位应答位、1位界定符。
CRC校验错误很好理解,它对数据域以及数据域之前的位生产CRC校验。由于一帧CAN报文数据流很小(最多8个用户数据),所以15位CRC的侦错能力非常优秀。
ACK域是怎么起作用的呢?这是由CAN协议规定的,即发送节点发送一帧数据后,接收节点必须向发送节点应答,如果发送节点没有收到接收节点的应答信号,就会认为自己发送失败,从而重传数据。
报文层的第三种错误检查方法是格式检查。这种检查会监控报文中那些一定为隐性位的域,如果这些域中出现显性位,则检测到格式错误。这些域包括SOF、EOF、ACK的界定符和CRC的界定符。
位流层的错误检测之一是发送到总线上的每一个数据位,都会被监视,如果发现发送的位和总线上的位不相同时,产生位错误。这种监视机制并不会监视仲裁域的位,这是因为多个节点同时竞争总线时,优先级高的节点可能会覆写总线上的仲裁域位。
位流层的另外一个错误检测机制是位填充规则:5个连续相同逻辑位之后,如果第6个位的逻辑还和前五个相同,则产生位填充错误。
网络拓扑
CAN使用差分信号,需要一对信号线,推荐使用双绞线,网络拓扑如图7-1所示。使用差分信号可以抑制共模干扰、能够增加系统可靠性,允许使用更高的速率。
高速ISO 11898标准规定了CAN传输最高速率为1Mbps,在这个速率下,传输距离最长40米(挂接30个节点,CAN信号不隔离)。推荐节点分支长度最大为0.3米、推荐使用带屏蔽或不带屏蔽的双绞线,线缆特性阻抗为120欧姆。



