一种总线错误恢复处理方法

文档序号:7761458阅读:1177来源:国知局

专利名称::一种总线错误恢复处理方法
技术领域
:本发明属于CAN总线
技术领域
,涉及一种总线错误恢复处理方法。
背景技术
:CAN协议提供了完备的错误检测与错误状态机制,可以检测到CRC错误、确认错误、格式错误、位错误和位填充错误等,当某个节点检测到总线出错时,将以错误帧的形式向所有其他节点进行报告。出错报文的发送将被中止,并尽快进行重新发送。而且根据内部错误计数器的计数值(Tx,Rx),每一个CAN节点都可以被设定为主动错误状态、被动错误状态和总线关闭状态这三种工作模式。当发送错误或接收错误计数都小于128时,节点处于"主动错误状态";发生错误或接收错误计数大于128时,节点处于"被动错误状态";而发生错误计数大于256时,节点处于"总线关闭状态"。当节点进入"总线关闭状态"时,节点将始终处于"总线关闭状态"直至接收到总线关闭恢复序列,而总线关闭恢复序列由重复128次的11个连续隐性位组成。可以看出,现有的节点在进入"总线关闭状态"后,并没有相应的有效操作进行处理,导致CAN控制器会一直监测总线上的电平,只有符合监测到128次的11个连续隐性位后就进入normal状态(主动错误状态),导致处在总线关闭状态的节点一直要等待此监测条件的满足,而不能正常的工作。
发明内容本发明的目的是针对现有的总线节点所存在的上述问题,而提出了一种可在各节点进入"总线关闭状态"后可进行恢复操作的总线错误恢复处理方法。本发明的目的可通过下列技术方案来实现一种总线错误恢复处理方法,设置在CAN总线上的节点包括CAN控制器和主控制器,所述的CAN控制器和主控制器分别具有错误检测模块和错误处理机制模块,错误检测模块可对CAN总线和节点本身进行错误检测,而错误处理机制模块则可控制节点处于"主动错误状态"、"被动错误状态"或"总线关闭状态",其特征在于,所述的节点在检测到错误并进入"总线关闭状态"后进行错误恢复处理的操作包括如下步骤a、错误检测模块时时检测错误,同时错误处理机制模块根据错误检测模块检测到的错误计数控制节点处于相应的状态;当检测到节点发送错误或接收错误的计数都小于128时,节点处于"主动错误状态",该状态是节点可以正常参加CAN总线通信的状态;当发生错误或接收错误的计数大于等于128且小于等于255时,节点处于"被动错误状态",该状态是节点易引起错误的状态;当发送错误的计数大于256时,节点处于"总线关闭状态",该状态是节点不能参加总线上通信的状态,并且进入步骤b;b、主控制器控制节点与CAN总线断开,进入步骤c;c、保持断开时间TO,待计时TO满后进入步骤d;d、主控制器控制CAN控制器重启,重启后节点重新与CAN总线连接并进入步骤e3中;e、CAN控制器监听CAN总线上电平信号,若CAN控制器在时间Tl内监测到128次11个连续的隐性位,则节点进入"主动错误状态";反之,则节点进入"总线关闭状态",并返回步骤b。各节点处于总线关闭状态后,在指定的时间内按照上述操作做总线错误恢复机制。在上述的一种总线错误恢复处理方法中,所述的步骤e中,返回步骤b时进行计数,当计数大于或等于N时,节点进入"跛行状态",该状态下,节点可以接收,但是不能发送。在上述的一种总线错误恢复处理方法中,所述的N为815。在上述的一种总线错误恢复处理方法中,所述的步骤b中,主控制器控制节点与CAN总线断开前,有一段延迟时间T2。利用这段时间供CAN控制器调整程序,中断错误检测模块的错误检测,直到CAN控制器重启后恢复。与现有技术相比,本总线错误恢复处理方法可以在各节点由于CAN控制器自身内部软硬件错误或总线上物理层错误而进入"总线关闭状态"后对故障进行排查,以使相应节点能够迅速从错误中恢复过来,投入到正常工作状态。此处理方法可以排除软件上或暂时性错误导致的总线关闭,检测推断出是否是永久性错误(物理层错误)导致的总线关闭态,以便让ECU进入"跛行状态"。图1是本总线错误恢复处理方法的操作流程图。具体实施例方式以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。本总线错误恢复处理方法中的节点连接在CAN总线上,包括有CAN控制器和主控制器(MCU),CAN控制器和主控制器(MCU)分别具有错误检测模块和错误处理机制模块,错误检测模块可对CAN总线和节点本身进行错误检测。CAN控制器MCP2510具有两个错误计数器接收错误计数器(REC),以及发送错误计数器(TEC)。而主控制器(MCU)可以读取这两个计数器的值,这两个计数器根据CAN总线规范进行增减计数。本总线错误恢复处理方法中各节点可以根据错误计数可以处于"主动错误状态"、"被动错误状态"和"总线关闭状态"这三种状态,具体情况如下如果两个计数器的值同时低于128时,节点处于"主动错误状态";当两个计数器的值其中有一个计数大于等于128且小于等于255时,节点处于"被动错误状态";当发送错误计数器(TEC)的值大于256时,节点处于"总线关闭状态"。这些状态依靠发送错误计数和接受错误计数来管理,根据计数值决定进入何种状态。错误状态和计数值的关系如下表所示<table>tableseeoriginaldocumentpage5</column></row><table>"主动错误状态"是通常的状态,是可以正常参加总线通信的状态,处于该状态的节点可以不受任何限制地发送报文和主动错误帧(由显性位构成),处于"主动错误状态"的单元检测出错误时,输出主动错误标志。"被动错误状态"是易引起错误的状态。处于"被动错误状态"的单元虽能参加总线通讯,但为不妨碍其它单元通讯,接收时不能积极地发送错误通知,但是可以发送报文和被动错误帧(由隐性位构成)。处于"被动错误状态"的单元即使出错误,而其它处于"主动错误状态"的单元如果没发现错误,整个总线也被认为是没有错误的。"总线关闭状态"是不能参加总线上通信的状态,信息的接收和发送均被禁止。另外,本总线错误恢复处理方法中的节点还可以进入"跛行状态",在这个状态下,节点可以接收,但是不能发送数据。如图1所示,节点在检测到错误并进入"总线关闭状态"后进行错误恢复处理的操作包括如下步骤a、错误检测模块时时检测CAN总线和节点本身错误;当发送错误计数器(TEC)和接收错误计数器(REC)的值都小于128时,节点处于"主动错误状态";当发生错误或接收错误的计数大于等于128且小于等于255时,节点处于"被动错误状态";当发送错误的计数大于256时,节点处于"总线关闭状态",并且进入步骤b;导致节点进入"总线关闭状态"的情况有两种,一种是CAN控制器内部软硬件出错导致节点进入"总线关闭状态",这种情况可能是由于CAN控制器内部程序出错;另一种情况是总线物理层错误导致节点进入"总线关闭状态"。b、延迟时间T2后,主控制器(MCU)控制节点与CAN总线断开,进入步骤c;利用这段延迟时间T2供CAN控制器调整程序,中断错误检测模块的错误检测,直到CAN控制器重启后恢复。c、保持断开时间T0,待计时T0满后进入步骤d。此断开时间TO用于主控制器(MCU)对CAN控制器里面的寄存器值修改以使CAN控制器不再监测总线上的电平。d、主控制器(MCU)控制CAN控制器重启,重启后节点重新与CAN总线连接并进入步骤e中;e、CAN控制器监听CAN总线上电平信号,若CAN控制器在时间Tl内监测到128次11个连续的隐性位,则节点进入"主动错误状态";反之,则节点进入"总线关闭状态",返回步骤b。CAN控制重启后发送错误计数器(TEC)和接收错误计数器(REC)都会清零,因此节点首先会进入"主动错误状态",若之后发送错误计数器(TEC)和接收错误计数器(REC)的计数值达到进入"被动错误状态"的条件,则节点进入"被动错误状态"。总线在"总线关闭状态"进入"主动错误状态"的唯一条件就是检测到128次11个连续的隐性位。若通过上述步骤在规定时间内还是无法排除故障以使节点进入"主动错误状态"或"被动错误状态"时,即判断CAN控制器为其它内部永久错误,故进入"跛行状态"。若按照上述步骤在规定时间内无法排除故障使所有节点进入"主动错误状态",即视为总线物理层永久错误,各个节点都进入"跛行状态"。节点进入"跛行状态"后,只接收外部数据不再给外部发送数据(认为自身内部数据已不可靠),自身内部处理一些基本功能以保证车的基本功能。如果在指定时间内能恢复,那么统一进入"主动错误状态"。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。权利要求一种总线错误恢复处理方法,设置在CAN总线上的节点包括CAN控制器和主控制器,所述的CAN控制器和主控制器分别具有错误检测模块和错误处理机制模块,错误检测模块可对CAN总线和节点本身进行错误检测,而错误处理机制模块则可控制节点处于“主动错误状态”、“被动错误状态”或“总线关闭状态”,其特征在于,所述的节点在检测到错误并进入“总线关闭状态”后进行错误恢复处理的操作包括如下步骤a、错误检测模块时时检测错误,同时错误处理机制模块根据错误检测模块检测到的错误计数控制节点处于相应的状态;当检测到节点发送错误或接收错误的计数都小于128时,节点处于“主动错误状态”,该状态是节点可以正常参加CAN总线通信的状态;当发生错误或接收错误的计数大于等于128且小于等于255时,节点处于“被动错误状态”,该状态是节点易引起错误的状态;当发送错误的计数大于256时,节点处于“总线关闭状态”,该状态是节点不能参加总线上通信的状态,并且进入步骤b;b、主控制器控制节点与CAN总线断开,进入步骤c;c、保持断开时间T0,待计时T0满后进入步骤d;d、主控制器控制CAN控制器重启,重启后节点重新与CAN总线连接并进入步骤e中;e、CAN控制器监听CAN总线上电平信号,若CAN控制器在时间T1内监测到128次11个连续的隐性位,则节点进入“主动错误状态”;反之,则节点进入“总线关闭状态”,并返回步骤b。2.根据权利要求1所述的总线错误恢复处理方法,其特征在于,所述的步骤e中,返回步骤b时进行计数,当计数大于或等于N时,节点进入"跛行状态",该状态下,节点可以接收,但是不能发送。3.根据权利要求2所述的总线错误恢复处理方法,其特征在于,所述的N为815。4.根据权利要求1所述的总线错误恢复处理方法,其特征在于,所述的步骤b中,主控制器控制节点与CAN总线断开前,有一段延迟时间T2。全文摘要本发明提供了一种总线错误恢复处理方法,属于CAN总线
技术领域
。它解决了现有的总线节点在发生错误进入总线关闭状态时,难以恢复到正常工作状态的问题。本总线错误恢复处理方法中节点在检测到错误并进入“总线关闭状态”后进行错误恢复处理的操作包括如下步骤a、错误检测模块时时检测错误,同时错误处理机制模块根据错误检测模块检测到的错误计数控制节点处于相应的状态;b、主控制器控制节点与CAN总线断开;c、保持断开时间T0,待计时T0满后进入步骤d;d、主控制器控制CAN控制器重启;e、CAN控制器监听CAN总线上电平信号。本总线错误恢复处理方法具有对节点上检测到的错误排查及时的优点。文档编号H04L12/26GK101783759SQ20101030046公开日2010年7月21日申请日期2010年1月19日优先权日2010年1月19日发明者丁武俊,朱祝阳,李书福,李亚南,杨健,熊想涛,王建磊,由毅,蔡伟杰,赵福全,郑士岑,陈文强申请人:浙江吉利汽车研究院有限公司;浙江吉利控股集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1