- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CAN总线错误及故障处理演示文稿
总线错误及故障处理 本节主要内容 五种错误检测机制 错误标记及错误计数 错误帧及超载帧 错误等级划分 主动错误模式及被动错误模式 总线关闭模式 常见总线故障原因及处理 五种错误检测机制 CAN实现以下5种错误检测机制 其中基于信息流级别的错误检测有 CRC校验 帧格式检测 应答错误检测 基于位(bit)级别错误检测有 位检测 位填充 基于信息流级别的错误检测 CRC校验错误 15位的CRC通过发送端根据发送信息的内容计算产生 接收端根据接收内容重新计算CRC并于发送端发送过来的CRC数值进行比较 当两个数字不一致时候CRC错误标记产生 基于信息帧级别的错误检测 帧格式错误检测,当接收端在以下位置检测到非法的位时格式错误标记 CRC认可位 ACK认可位 帧结束位 基于信息帧级别的错误检测 应答错误检测 每一个接收端都回在ACK场向总线回应一个显性位 如果发送端在ACK场检测不到一个ACK应答将产生应答错误标记 常见的应答错误多数由于总线上没有一个活跃的节点引起,即孤立节点的情况 基于位(bit)级别错误检测 位检测 在发送过程中发送器通过接收端监视总线上每一位发送出去的电平是否与发送驱动的一致 当发监视位电平与发送驱动的不一致将产生一个位错误标记 在仲裁场和ACK场不执行填充位错误检测 基于位(bit)级别错误检测 位填充 发送端根据发送内容每5个相同的位插入一个反向电平进行填充 接收端自动消除填充位保重信息透明传输及恢复 当接收检测到连续6个相同的位是将出发位填充错误标记 补充 位填充用于保证在NRZ位流中有足够的边沿用于从同步 错误帧违背位填充规则 错误标记及错误计数 错误标记 当节点最少检测到一个错误时将马上终止总线上的传输并发送一个错误帧 错误帧的组成 错误帧由两个场组成,错误标志及错误界定场,其中包含6位的显性位 帧结构图(续) 错误帧的组成 错误帧结构(续) 超载帧 超载帧 当控制器未能足够快地处理当前的信息时将发送超载帧中断其他发送控制器发送过程以减缓发送速度,加长发送帧间隔 组成 由超载标志场及 超载界定场组成 错误标记及错误计数 错误计数 每监测到一个接收错误其错误计数加1 每监测到一个发送错误其错误计数加8,发送错误更容易被察觉到 SJA1000相关寄存器介绍 error warning limit register RX error counter register TX error counter register 错误等级划分 划分标准 主动错误 Error Counter 127 错误警告 Error Counter = = Error Limit 被动错误 Error Counter 127 总线关闭 Error Counter = = 255 错误警告门限 默认数值为96 主动错误模式 主动错误模式(错误激活模式) 在错误激活模式下控制器能执行的所有功能(正常模式) 当发送或者接收到一个正确的信息帧时相应的错误计数器递减1 当所有的错误计数寄存器返回0时控制器返回正常模式 主动错误模式及被动错误模式 被动错误模式 当控制器错误计数超越错误警告限制时进入被动错误模式(消极错误模式) 仅能发送错误认可标志,错误计数仍旧生效,但不会破坏总线 总线关闭模式 总线关闭模式,任意一个错误计数器超越255导致控制器进入总线关闭模式 持久的总线故障将导致总线关闭 在总线故障清除,控制器检测到总线上连续的11位隐性位发生128次后,总线关闭的节点将返回到错误激活状态,错误寄存器状态清零 常见总线故障原因及处理 硬件故障 波特率不一致。 终端电阻失配。 软件故障 CAN错误中断类型。 错误中断处理。 CAN错误中断类型(SJA1000) CAN错误中断类型 总线错误中断 EBI。 数据溢出中断 DOI。 出错警告中断 EI。 错误认可中断 EPI。 仲裁丢失中断 ALI。 错误中断处理(SJA1000) 总线错误,检查是否总线已经关闭,为保证总线保持在工作模式,应该尝试重新进入总线工作模式。 数据溢出中断,对于应用中应该通过提升软件处理效率及处理器性能解决接收速度引起的瓶颈;程序务必向CAN控制器发送清除溢出命令,否则将一直引起数据一处中断。 其他错误中断一般可以不加处理,不过在调试过程中应该打开所有中断以监视网络质量。 错误中断处理(SJA1000) 总线错误入口 inline void KSJA1000T::INT_BusError(void) { if(((UCHAR)m_rMode RM_BIT) != 0) { StartCAN(); } m_TraceCode |= INT_BUS_ERROR; } 错误中断处理(SJA1000) 数据溢出中断处理 in
文档评论(0)