CAN是Controller Area Network 的缩写(以下称为CAN),是ISO*1国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。CAN总线是国际上应用最广泛的现场总线之一。
CAN网络的消息是广播式的,即在同一时刻网络上所有节点侦测的数据是一致的,它是一种基于消息广播模式的串行通信总线。
1
CAN总线的特点
①多主控制
②消息的发送
③系统的柔软性
④通信速度
⑤远程数据请求
⑥错误检测功能·错误通知功能·错误恢复功能
⑦故障封闭
⑧连接
2
CAN总线错误状态
01
错误状态的种类
总线上的单元(节点)处于以下3种错误状态之一。
①主动错误状态
当接收错误计数器和发送错误计数器计数值全部小于等于127时,节点处在主动错误状态下,此时设备可以正常在总线上进行通信,但节点需要上报主动错误状态。
②被动错误状态
当接收错误计数器或发送错误计数器任意计数器值大于127时,节点处在被动错误状态,此时节点易导致总线错误。因此,处于被动错误的节点,不能连续向总线发送数据,需要等待一定周期。处于初始错误状态的节点,检测到总线错误时,需要上报被动错误状态。
③总线关闭态
当发送错误计数器计数值大于255时,节点会进入总线关闭状态。处于总线关闭状态下的节点,对总线上其他节点处于不可见状态,因此总线关闭节点不能发送数据到总线上,也不能接收总线上的数据。
处于总线关闭状态的节点,只有通过从新初始化且等待一定总线空闲时间,才可以重新恢复并接入总线。
以上三种错误状态,通过发送接收错误计数管理,根据不同计数器状态进入不同错误状态,其对应关系如下图表:
图1. 单元的错误状态
02
错误计数值
错误计数根据不同的总线错误增加不同计数值,其对应关系如下图表:
3
其他常见问题
①CAN总线最少单元数量?
CAN总线最少需要2台单元。
②CAN总线最多单元数量?
可连接的单元总数理论上是没有限制的。
但实际上可连接的单元数受总线上的时间延迟及电气负载的限制。降低通信速度,可连接的单元数增加;提高通信速度,则可连接的单元数减少。
③终端电阻数量?
在总线的首尾两端(CANH、CANL之间)各接一个120Ω(Min.85Ω;Max.130Ω)电阻。(实际应用中可能会存在无终端电阻或者多个终端电阻甚至每一个设备都有终端电阻,需要避免此类问题)。
推荐阅读:《CAN总线为什么要加终端电阻?》
④总线速率问题?
同一总线同一时刻只存在一种速率,新接入总线的设备,需要提前知道总线速率并与之匹配,否则将不可通信。
⑤总线支线长度可以有多远?
ISO11898中只规定1M波特率下分支不超过0.3米。
支线过长会直接导致总线阻抗匹配问题发生,阻抗匹配是指信号源或者传输线跟负载之间达到一种适合的搭配。阻抗匹配主要为了调整负载功率和抑制信号反射,所以一旦阻抗匹配出现问题,就出现了上升沿和下降沿的台阶,很容易在逻辑识别的时候产生错误的识别。从而导致位宽失调,节点接收错误信息。
⑥如何选择线材?
选择屏蔽双绞线,且屏蔽层单端接地。
⑦CANH、CANL之间短路:当CAN H 与CAN L 短路时,CAN网络会关闭,无法再进行通信。CANH、CANL对电源(正、负)短路:可能无法正常通信,或者抗干扰能力大大降低。
⑧CANH、CANL断路,无法正常通信;CANH、CANL反接,亦无法正常通信。
⑨采样点匹配
同一总线,应尽量将采样点匹配到一致。否则可能导致部分设备无法正常通信。
⑩波特率配置问题?
以STM32F103为例:
brp应该尽量小。
波特率>800kbps时,推荐采样点75%;
波特率>500kbps时,推荐采样点80%;
波特率<500kbps时,推荐采样点87.5%。
全部0条评论
快来发表一下你的评论吧 !