关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 快速读懂CAN-bus节点的错误处理规则

快速读懂CAN-bus节点的错误处理规则

作者:ZLG致远电子时间:2016-10-27来源:电子产品世界收藏

  的可靠性很高但某些情况仍会发生错误。在CAN控制器中可自动完成帧格式处理、校验等工作,若错误被检测,正传送的数据帧会立即停止,待总线空闲时再重发直至成功,该过程不需要CPU的干涉除非错误累计该发送器退隐。

本文引用地址:http://www.amcfsurvey.com/article/201610/311910.htm

  

 

  的可靠性很高,但是在某些情况下还是发生错误,为了使数据能够在总线上可靠传输,规范对各类帧的格式、用途及发送时机都进行了详细的规定。下面我们来总结下在CAN通讯中会出现哪些错误。

  

 

  位错误:发送节点在发送数据的同时也会对发出的比特流采样回收,如果监测到总线电平与正在发送的电平不符,将会发生位错误(Bit Check Error);

  位填充错误:为解决异步串行通讯中共有的缺点——各节点通讯时钟不同步,CAN-bus采用了一种同步的方式,规定每隔5个位的时间长度进行一次同步,当传输信号连续5个位是相同的,就要插入一个点评相反的位(称为“填充位”),如果电缆上传输的信号不满足这一规则,则会出现填充位错误(Bit Stuff Error);

  CRC错误:发送端发送的CRC值由发送器计算得出,接收器采用同样的CRC算法,计算出接收端CRC值,若接收器计算的CRC值与接收到的CRC值不符,将会产生该类错误(CRCError);

  格式错误:当传输的数据帧格式与任何一种合法的帧格式不符时会发生该类格式错误(Frame Check Error);

  应答错误:如果在ACK段发送节点没有接收到接收节点发出的应答(显性位),将发生应答错误(Acknowledgment Error),所以当单个节点发送数据帧时会发生该类错误。

  错误帧在总线信号传输中起着信号灯的作用,接收和发送过程中如果检测到通信出错,便会发送错误帧,错误帧由错误标识符以及错误界定符构成。其中错误标识符分为两种:“主动错误”和“被动错误”。

  主动错误状态下,只要检查到错误,它立即“主动地”发出错标识。所谓“出错标识“,它本身就是一个“错误的位序列”(连续的6个显性位,不满足CAN协议的“最多5个连续的同性位”要求),目的是“主动地”告诉大家:即使你们没有发现“刚才我已发现”的错误,现在我“以身作则”出错啦!你们该看到这个错误了吧!

  如果处于被动状态下,检查到错误,它只能干瞪眼“被动地”等别人(主动报错站点)报错,等待的时候它可不能去动总线,直到识别出由主动报错站点发出的“错误的位序列”,它才松了一口气:有人正式报错了!然后他就可以去竞争总线,该干啥干啥。

  为了避免某个设备因为自身原因(例如硬件损坏)导致无法正常收发数据而不断地破坏数据帧,从而影响其他正常节点通讯,CAN-bus规范中规定每个CAN控制器都有一个发送错误计数器和一个接收计数器。根据计数值不同CAN节点会处于不同的设备状态,状态之间的转换关系见下图:

  

 

  广州致远电子总线综合分析仪是一款综合性的CAN总线开发与测试的专业工具,集海量存储示波器、网络分析仪、误码率分析仪、协议分析仪及可靠性测试工具于一身,并把各种仪器有机的整合和关联;重新定义CAN总线的开发测试方法,可对CAN网络通信正确性、可靠性、合理性进行多角度全方位的评估;帮助用户快速定位故障节点,解决CAN总线应用的各种问题,是CAN总线开发测试的终极工具。



关键词: CAN-bus CANScope

评论


相关推荐

技术专区

关闭