CAN总线错误及故障处理.ppt
总线错误及故障处理,本节主要内容,五种错误检测机制错误标记及错误计数错误帧及超载帧错误等级划分主动错误模式及被动错误模式总线关闭模式常见总线故障原因及处理,五种错误检测机制,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 registerRX error counter registerTX error counter register,错误等级划分,划分标准主动错误 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,错误中断处理(SJA1000),数据溢出中断处理inline void KSJA1000T:INT_DataOverrun(void)if(UCHAR)m_rMode,内容回顾,五种错误检测机制错误标记及错误计数错误帧及超载帧错误等级划分主动错误模式及被动错误模式总线关闭模式常见总线故障原因及处理,谢谢!,