Can控制器总线故障处理方法和装置的制造方法

文档序号:8942449阅读:1311来源:国知局
Can控制器总线故障处理方法和装置的制造方法
【技术领域】
[0001]本发明涉及汽车总线控制技术,尤其涉及一种CAN总线故障处理方法和装置。
【背景技术】
[0002]CAN是控制器局域网络(Controller Area Network, CAN)的简称,是国际上应用最广泛的现场总线之一。其中,CAN通信应用在汽车领域,其是汽车中各个控制器之间的主要通信通路。
[0003]目前,汽车的控制系统中若出现线路开路、线路短电源或短地线时可能会导致控制器的CAN控制器一直发送错误帧,当错误帧达到32帧,即错误计数器TEC达到255时,系统确认该控制器出现了 CAN总线脱离的Busoff状态,一般会在20ms以内重启CAN控制器;如果CAN控制器重启后发送正确帧,则错误计数器TEC的值递减;如果CAN控制器在重启后发送错误帧,则错误计数器TEC的值累加,TEC值大于等于255,CAN控制器会一直持续在Busoff状态JljCAN控制器会持续重启,以此类推,这种处理方式下出现故障的控制器其不断发送的错误帧会大大占用了整车CAN通信信道,影响其他控制器在CAN总线上的正常通信,影响其他控制器的信号实时性,对整车的CAN通信造成较大影响;另一方面发生BusofT状态后的CAN控制器频繁处于重启状态,加重了 CAN控制器的负荷。

【发明内容】

[0004]本发明提供一种CAN控制器总线故障处理方法和装置,通过对CAN控制器总线脱离Busoff状态持续时间计时,并根据预设的时间阈值对CAN控制器的停止与启动时刻进行控制,从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
[0005]本发明提供一种CAN控制器总线故障处理方法,包括:
[0006]每间隔预设检测周期对CAN控制器的状态位进行检测;
[0007]对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
[0008]当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
[0009]当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器;返回执行所述每间隔预设检测周期对CAN控制器的状态位进行检测的步骤。
[0010]本发明还提供一种CAN控制器总线故障处理装置,包括:
[0011]检测模块,用于每间隔预设检测周期对CAN控制器的状态位进行检测;
[0012]故障时长计时模块,用于对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
[0013]控制模块,用于当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
[0014]所述控制模块,还用于当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器。
[0015]本发明的CAN控制器总线故障处理方法和装置,通过周期性检测CAN控制器是否出现总线脱离Busoff状态,并对Busoff状态的持续时间进行计时,并在Busoff状态持续累加时长达到预设关闭阈值时,关闭CAN控制器;并当CAN控制器的关闭时长达到预设开启阈值时,重启该CAN控制器。从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
【附图说明】
[0016]图1为本发明CAN控制器总线故障处理方法的实施例一的流程图;
[0017]图2为本发明CAN控制器总线故障处理方法的实施例二的流程图;
[0018]图3为本发明CAN控制器总线故障处理装置的实施例一的结构示意图;
[0019]图4为本发明CAN控制器总线故障处理装置的实施例二的结构示意图。
【具体实施方式】
[0020]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在附图或说明书中,相似或相同的元件皆使用相同的附图标记。
[0021]图1为本发明CAN控制器总线故障处理方法的实施例一的流程图,如图1所示,本实施例的方法包括:
[0022]步骤101、每间隔预设检测周期对CAN控制器的状态位进行检测。
[0023]步骤102、对每次检测到CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长。
[0024]步骤103、当第一故障时长达到预设短关闭阈值时,将第一故障时长清零并关闭CAN控制器。
[0025]步骤104、当CAN控制器的关闭时长达到第一开启阈值时,重启CAN控制器,并返回步骤101继续循环执行。
[0026]本实施例提供的CAN控制器总线故障处理方法,通过周期性检测CAN控制器是否出现总线脱离Busoff状态,并对Busoff状态的持续时间进行计时,并在Busoff状态持续累加时长达到预设关闭阈值时,关闭CAN控制器;并当CAN控制器的关闭时长达到预设开启阈值时,重启该CAN控制器。从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
[0027]图2为本发明CAN控制器总线故障处理方法的实施例二的流程图,如图2所示,在上述实施例的基础上,本实施例的方法包括:
[0028]步骤201、每间隔预设检测周期对CAN控制器的状态位进行检测。
[0029]具体的,设定对CAN控制器的检测应用程序,该应用程序按照足够快的周期对CAN控制器的状态位进行检查,以防止Busoff状态的丢失。优选的,可以预设检测周期小于等于 1ms0
[0030]步骤202、对每次检测到CAN控制器的状态位出现总线脱离BusofT状态的持续时间进行累加,得到第一故障时长。
[0031]具体的,在CAN控制器的检测应用程序中可以定义Busoff状态位持续时间的计时器,当检测到Busoff时,计时器对Busoff持续时间进行累加。计时器累加的是Busoff持续的时间,不管Busoff持续的时间长短,均会对Busoff时间进行累加,其反映的是CAN总线实际的BusofT状态,因此能够准确地反映BusofT的严重程度。该计时器累加得到的时间值为第一故障时长Tl。
[0032]步骤203、当第一故障时长Tl达到预设短关闭阈值时,将第一故障时长Tl清零并关闭CAN控制器。
[0033]具体的,当CAN控制器的Busoff计时器累加得到的第一故障时长Tl达到预设短关闭阈值时,可以将CAN控制器关闭,这里关闭的是汽车各个控制器中负责CAN通信功能的CAN控制器,而不是将该汽车控制器关闭。关闭CAN控制器,可以暂时将发生总线通信故障的CAN控制器停止一段时间,使其修复自身的故障,同时使该故障CAN控制器退出CAN通信线路,让出CAN通信资源空间,以使其他正常状态的CAN控制器可以不受故障CAN控制器的影响,正常通信。同时,现有技术中,当CAN控制器发生Busoff状态,会立刻重启,频繁地重启也会加重该CAN控制器的负荷,通过采用计时器达到预设短关闭阈值即刻停止CAN控制器的方法,不但可以释放CAN总线资源,还可以缓解CAN控制器的负荷。优选的,可以将预设短关闭阈值设置为30ms。每当计时器的第一故障时长Tl达到预设短关闭阈值时,关闭一次CAN控制器;在CAN控制器重启后,继续对CAN控制器计时,因此,每循环一次CAN控制器关闭重启操作,将第一故障时长Tl进行一次清零操作,以保证计时器记录Busoff状态时长准确。
[0034]步骤204、将每次得到的第一故障时长Tl进行累加,得到累加时长值T2。
[0035]具体的,虽然设定了每当第一故障时长Tl达到预设短关闭阈值时,CAN控制器关闭的策略,以保证CAN总线通信资源,但是,在CAN控制器关闭的期间,其所发生的故障依然可能不能得到修复,在重新启动CAN控制器后,其仍然可能频繁达到预设短关闭阈值,而不停的重复关闭、重启的过程,对故障较严重的CAN控制器来说,其故障所占用CAN总线的情况虽然有所缓解,但占用CAN总线的情况依然存在,为了能够进一步地对故障CAN控制器进行管理,可以对每次得到的第一故障时长Tl进行累加,得到累加时长值T2。
[0036]步骤205、当累加时长值T2达到预设长关闭阈值时,将累加时长值T2清零并关闭CAN控制器。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1