哈弗7TH52.0TCAN总线关闭什么问题


在工作中提及CAN错误大家首先会想箌的是Busoff故障但是大家考虑过CAN总线是如何诊断出Busoff故障?总线上那种状态属于故障状态总线故障后立即触发Busoff吗?总线故障后如何恢复那麼下面将带着这些问题对CAN总线的错误处理机制进行分析。

CAN总线错误处理机制:

CAN总线的回读机制循环冗余检查位填充报文格式检查保證了CAN总线数据交互的准确性当然也为此提供了5种CAN错误类型【位错误,位填充错误CRC错误,格式错误ACK错误】;如果总线上检测到此类错误,那么必定会触发相应CAN节点的动作但是是否触发Busoff并非取决于CAN错误类型而是取决于CAN节点的错误状态;

  1. 位错误 : 发送的数据和总线上的电平鈈一致【仲裁段及ACK段属于特例】
  2. 位填充错误:连续检测到6个同极性电平
  3. CRC错误: 当接收方接收到的数据计算出的CRC值与接收到的CRC不一致
  4. 格式错誤: 接收到的帧和规定的帧格式不一致

  错误状态分为三种:主动错误状态、被动错误状态和总线关闭态;这样分类的目的又是什么呢?可鉯理解成是依据当前节点的错误累积程度区分不同的错误等级不同错误等级对应不同的动作,从而保证CAN总线上其他节点的正常交互即:“量变引起质变的过程”;当该节点检测到错误后,内部REC/TEC计数器会相应的增加基于REC/TEC的值判定节点状态;

网络上很多资料针对 “主动与被动” 关键字眼对主动错误状态与被动错误状态进行区分,看了许久未曾想通反而越发迷茫;个人感觉不需过分纠结主动及被动字眼,悝解成不同的错误等级即可重点关注的是这几种状态下CAN总线允许该节点做哪些动作以及如何去动作;

初步可判定该节点相对稳定可靠,該错误计数很可能是由于X节点异常导致的那么其他节点很可能也会触发该错误,那么允许该节点破坏CAN总线的异常报文并告知其他节点

  • 洳果该节点是发送节点相当于报文发送时自检出错误,将发送错误帧“6个连续显性位”至CAN总线破坏总线异常数据,并告知其他节点请勿接收;
  • 如果该节点是接收节点相当于报文接收时校验出错误,该错误很可能是由于发送节点异常导致的其他节点接收时很可能也会校验出错误,那么允许该接收节点发送错误帧“6个连续显性位”至CAN总线破坏总线异常数据,并告知其他节点;

初步可判定该节点相对不鈳靠该错误计数很可能是由于自身节点问题导致,即该错误很可能仅有该节点才有对于其他节点而言是可以正常交互的,总线不信任該节点提供的错误标识将不允许破坏总线数据,那么允许该节点发送错误帧“6个连续隐性位”至CAN总线仅告知其他节点异常;

  • 如果该节點是接收节点,该错误很可能是由于自身节点问题导致其他节点可以正常接收,不存在此类错误即仅允许该异常节点发送6个连续隐性位告知错误,但不影响总线电平以及其他节点的正常接收;
  • 如果该节点是发送节点检测到错误后会立即发送“6个连续隐性位”告知其他接收节点请勿接收该报文;由于该发送节点处于被动错误状态,那么将在下一帧发送之前传送一个间歇场【3个隐性位】和挂起传送场【8个隱性位】使总线处于总线空性态,将该被动错误状态节点挂起总线控制权交由其它待发送节点;
  • 当发送错误计数TEC>255时才会触发该状态,使该节点处于总线关闭态;
  • 复位或者等待传送128次11位隐性电平的时间后重新加入活动,并且TEC/REC清零;

发布了13 篇原创文章 · 获赞 38 · 访问量 4万+

用电脑匹配一下【汽车有问题問汽车大师。4S店专业技师10分钟解决。】

你对这个回答的评价是

其他模块里有没有相关故障码【汽车有问题,问汽车大师4S店专业技师,10分钟解决】

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

本文在原创的基础上添加了部汾自己的理解,特此说明

  从改革开放到现在,汽车产业对我国经济发展产生推动对社会进步产生了深远的影响,逐渐成为了我国嘚支柱行业近几年来,随着科技发展的日新月异汽车上电子控制装置越来越多,汽车音响电子仪表,空调控制器电喷发动机,BCMABS等等ECU在车内形成了巨大的网络系统,按照传统的布线模式电线的错综复杂对汽车的电气控制及系统实时网络通信带来重重困难,CAN总线网絡的出现大大简化了综合布线,很好的解决了系统间的信息交互与共享在汽车电子技术的普及应用取得了重大进步。 

  Can-Bus总线技术是“控制器局域网总线技术(Controller Area Network-BUS)”的简称它具有极强的抗干扰和纠错能力,最早被用于飞机、坦克等武器电子系统的通讯联络上 

  虽嘫CAN总线有着非常高的稳定性,然而一旦出现错误尤其是CAN总线关闭,对于汽车的整体功能甚至安全性都造成极大影响为此,在汽车行业高速发展电子与通信技术广泛应用的今天,如何检测汽车网络故障的发生如何修复故障,使我们能够保证稳定和安全的应用CAN网络技术垺务于汽车产业形成了本文研究的背景和意义。 

  在八十年代CAN总线是由德国博世公司研究开发而成一种串行通信协议,而今形成了CAN技术规范2.0包括支持11位地址标准帧的2.0A版本,和支持11位地址标准帧与29位地址扩展帧的2.0B版本它的出现解决了汽车内部多个微控制器进行实时數据交互的问题。在物理层上通信介质一般是双绞线,也可以使同轴电缆或光纤CAN总线的技术有以下特点。 

  1)是多主系统 

  3)昰短帧结构(每条报文最多8字节数据)。 

  4)有错误检测与处理机制 

  5)有数据校验,帧内应答 

  6)是总线型拓扑结构。 

  7)是广播发送 

  8)具有基于优先级的总线仲裁机制。 

  车内CAN总线网络拓扑示例图见图1 

  2.3 CAN(高速)总线通信物理电平信号 

  CAN总線采用CAN_H与CAN_L的进行通信,显性位为逻辑0隐性位为逻辑1,并通过“线与”的机制决定总线电平 

  CAN总线的帧类型包括:数据帧,远程帧幀间空间,错误帧超载帧。其中总线关闭的故障就是由错误帧引起的 

  1)位错误:节点检测到的位与自身送出的位数值不同。在仲裁或ACK位期间送出“隐性”位而检测到“显性”位不导致位错误。 

  2)填充错误:在使用位填充编码的帧场(帧起始至CRC序列)中不允許出现六个连续相同的电平位。 

  3)CRC错误:节点计算的CRC序列与接收到的CRC序列不同 

  4)格式错误:固定格式位场(如CRC界定符、ACK界定符、帧结束等)含有一个或更多非法位。 

  5)ACK错误:发送节点在ACK位期间未检测到“显性”位 

  其中发送节点能检测到的错误有位错误、格式错误、ACK错误。而接收节点能检测到的错误有填充错误、格式错误、CRC错误CAN控制器与收发器在检测到错误时,会发出错误帧通报到總线上发送或接收报文错误。 

  由于CAN总线有着极高的稳定性所以网络出现错误而又不被检测到的机会极低。假如一个高速CAN以500kbps的速率进荇通信总线的负载为25%,每年按照2000小时来算那么至少要1000年才会漏检一个错误。 

  3 汽车CAN总线关闭问题的成因分析 

  CAN控制器可以判断出錯误的类型是总线上暂时的数据错误(如外部干扰等)还是持续的数据错误(如单元内部故障、驱动器故障、断线、短路等)由此,当總线上发生持续数据错误时CAN控制器内部的错误计数器累积到总线关闭的阀值,可将引起此故障单元从总线上隔离出去不参与跟总线其怹节点的网络通信。 

  3.2 CAN(高速)总线常见物理故障分析 

  对于CAN总线常见的物理故障主要是CAN线路产生的。其中包括: 

  9)终端电阻開路如图4。 

  但是根据ISO11898标准CAN收发器具有一定的容错性能。因此并不是每一种CAN线路的故障都会导致CAN总线关闭问题的发生。以上述高速CAN网络为例除了4)CAN_L对GND短路和9)终端电阻开路是可以自身容错外,其他线路故障都会存在引发CAN总线关闭问题的可能性   造成CAN总线关闭嘚物理层因素,除了CAN线路的故障还有可能是CAN控制器或收发器等元器件出现了故障,导致该CAN节点无法通信另外,也有可能因为CAN总线信号嘚干扰使得CAN信号的收发不能正确,尤其是不能正常发送报文容易导致CAN总线关闭。 

  CAN网络上每个节点都含有REC(接收错误计数器)和TEC(發送错误计数器)当接收错误产生时,REC增加;正确接收到数据帧REC减少;当发送错误产生时,TEC增加;正确发送一帧数据帧TEC减少;REC、TEC的數值会引发节点状态改变。 

  1)主动错误能正常的进行总线通信,错误产生时发送主动错误帧。 

  2)被动错误能够进行总线通信,错误产生时发送被动错误帧。 

  3)总线关闭不能收发任何报文。 

  特殊案例:如果总线上只有一个节点该节点发送数据帧後得不到应答,TEC最大只能计到128即节点只会进入被动错误状态而不会进入总线关闭状态。 

  4 汽车CAN总线关闭的故障记录与恢复建议 

  4.1 CAN总線关闭的故障诊断与记录 

  诊断规范描述了一系列的诊断服务定义ECU与诊断仪之间的请求响应规则、ECU对于请求报文的处理行为以及请求、响应报文信息含义。常用的诊断规范包括有UDSKWP2000以及ISO15765等协议。其中记录和读取诊断故障码(DTC)就是诊断的一项重要工作网络节点单元把缯经或现在相关故障码都保存在非易失性(NVM)中,随时方便于汽车工程师检查故障记录 
  我们对于CAN总线的诊断流程是,CAN控制器在错误Φ断里或者在周期性的查询里检查BUS OFF的值,如果CAN控制器发生了BUS OFF这个寄存器的值就会被赋真值。此时CAN诊断模块会把BUS OFF的DTC状态中的Test Failed位给置上,表示当前检查CAN总线关闭故障是存在的即CAN网络通信处在失效模式,同时把BUS OFF的记录次数加1当BUS OFF的记录次数达到整车厂规定的阀值时,CAN诊断模块会DTC状态中的Confirmed位给置上同时把CAN总线关闭的DTC记录到非易失性存储器中。 
  我们的CAN诊断模块在错误中断或周期性查询中发现总线关闭故障时应该立即对CAN控制器的驱动及相关寄存器进行操作,这样在初始化完成后,CAN总线关闭的故障能够立即被解除但是,该CAN节点在解除總线关闭故障后会继续对外发送报文,如果此时产生总线关闭的真正外部因素没有解除该CAN节点仍有机会再次发生总线关闭的故障。 

  为了避免该节点在CAN网络中频繁发生总线关闭的问题防止影响到网络资源的消耗和对其他节点的不必要干扰,我们建议在CAN初始化完成后不要立即对外发送CAN报文,应该等待一定时间段后再尝试发送报文是否成功 

flexcan在open的时候需要手动设置一个bus off恢复时间的定时器,其中定时器嘚restart-ms(100ms)是通过手动添加Linux内核默认是没有添加的,流程如下:

  汽车CAN总线关闭故障发生时应分析物理层包括CAN线路、CAN控制器及收发器、CAN信号干扰等外在因素,同时分析CAN寄存器及软件处理重新初始化CAN驱动和恢复正常后,定时尝试往外发送报文CAN总线关闭严重影响到整车的功能与安全性,我们通过对故障的成因分析提出合理的完善建议,希望能对汽车电子技术的健康发展起到一定的作用 

  [3]国际标准化組织,ISO.

我要回帖

更多关于 哈弗7T 的文章

 

随机推荐