网站大量收购独家精品文档,联系QQ:2885784924

CAN总线学习笔记(3)-CAN协议错误帧.pdf

CAN总线学习笔记(3)-CAN协议错误帧.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CAN总线学习笔记 (3)-CAN协议错误帧 依照瑞萨公司的的组织思路来学习CAN通信的相 知识,并结合⽹上相 资料以及学习过程中的领悟整理成笔记。好记性不如烂笔头,加 油 ! 1 错误帧的帧结构 在发送和接收报⽂时,总线上的节点如果检测出了错误,那么该节点就会发送错误帧,通知总线上的节点,⾃⼰出错了。 错误帧由错误标志和错误界定符两个部分组成。 主动错误标志 :6个连续的显性位 ; 被动错误标志 :6个连续的隐性位 ; 错误界定符 :8个连续的隐性位。 可以看到在错误标志之后还有0~6位的错误标志重叠,这⼀段最低有0个位,最多有6个位, 于这⼀段是怎么形成的,将在下⽂中解释。 2 错误检测 2.1 位填充原则 在了解CAN总线中的错误检测之前,⾸先需要了解什么是位填充。 CAN协议中规定,当相同极性的电平持续五位时,则添加⼀个极性相反的位。 对于发送节点⽽⾔ : 在发送数据帧和遥控帧时,对于SOF~CRC(除去CRC界定符) 之间的位流,相同极性的电平如果持续5位,那么在下⼀个位插⼊⼀个与 之前5位反型的电平 ; 对于接收节点⽽⾔ : 在接收数据帧和遥控帧时,对于**SOF~CRC(除去CRC界定符)**之间的位流,相同极性的电平如果持续5位,那么需要删除下⼀位再接 收。 Tips: 注意 :填充位的添加和删除是由发送节点和接收节点完成的,CAN-BUS只负责传输,不会操纵信号。 2.2 错误的种类 在CAN总线通信中,⼀共有五种错误 : 位错误 ACK错误 填充错误 CRC错误 格式错误 2.2.1 位错误 (Bit Check Error) 节点将 ⾃⼰发送到总线上的电平与同时从总线上回读到的电平进⾏⽐较,如果发现⼆者不⼀致,那么这个节点就会检测出⼀个位错误。 实际上所谓“发出的电平与从总线上回读的电平不⼀致”,指的就是节点向总线发出隐性位,却从总线上回读到显性位或者节点向总线发出显 性位,却从总线上回读到隐性位这两种情况。 Tips: 有三种例外情况不属于位错误 : 在仲裁区,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表⽰该节点仲裁失败 ; 在ACK槽,节点向总线发送隐性位却回读到显性位,不认为是位错误,这种情况表⽰,该节点当前发送的这⼀帧报⽂⾄少被⼀个其它节点正确接 收; 该节点发送被动错误标志,节点Node_A 向总线发送连续六个隐性位 (被动错误标志)却回读到显性位,不认为是位错误。因为被动错误标志是六 个连续的隐性位,所以在总线上按照线与机制,有可能这六个连续隐性位被其它节点发送的显性电平 “吃掉” ; 2.2.2 ACK错误 (Acknowledgment Error) 按照CAN协议的规定,在⼀帧报⽂ (数据帧或者遥控帧)发出之后,如果接收节点Node_B成功接收了该帧报⽂,那么接收节点Node_B就 要在该帧报⽂ACK槽对应的时间段内向总线上发送⼀个显性位来应答发送节点Node_A。这样发送节点Node_A就会在ACK槽时间段内从总 线上回读到⼀个显性位。因此 : 当发送节点Node_A在ACK槽时间段内没有回读到显性位,那么发送节点Node_A就会检测到⼀个ACK应答错误。这表⽰没有⼀个节点成功 接收该帧报⽂。 2.2.3 填充错误 (Fill Error) 在需要执⾏位填充原则的帧段 (数据帧遥控帧的SOF~CRC序列),检测到连续六个同性位,则检测到⼀个填充错误。 2.2.4 CRC错误 发送节点Node_A在发送数据帧或者遥控帧时,会计算出该帧报⽂的CRC序列。接收节点Node_B在接收报⽂时也会执⾏相同的CRC算法, 如果接收节点Node_B计算出的CRC序列值与发送节点Node_A发来的CRC序列值不⼀致,那么接收节点就检测到⼀个CRC错误。 2.2.5 格式错误 在⼀帧报⽂发送时,如果在必须发送预定值的区域内检测到了⾮法值,那么就检测到⼀个格式错误。 CAN报⽂中,有预定值的区域包括 : 数据帧和遥控帧的CRC界定符、ACK界定符、EOF ; 错误帧界定符 过载帧界定符 3 错误通知 上⼀节中,讲到CAN通信中有五种错误,并且介绍了在什么情况下能够检测到这⼏种错误,在检测到错误之后,检测到错误的节点就要发送 错误帧到总线上来通知总线上的其他节点。 错误帧有的带有主动错误标志,有的带有被动错误标志,⽽且错

文档评论(0)

181****7662 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档