CN105159285B - Can控制器总线故障处理方法和装置 - Google Patents
Can控制器总线故障处理方法和装置 Download PDFInfo
- Publication number
- CN105159285B CN105159285B CN201510595435.XA CN201510595435A CN105159285B CN 105159285 B CN105159285 B CN 105159285B CN 201510595435 A CN201510595435 A CN 201510595435A CN 105159285 B CN105159285 B CN 105159285B
- Authority
- CN
- China
- Prior art keywords
- controller
- threshold value
- duration
- closing
- default
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种CAN控制器总线故障处理方法和装置,其中方法包括周期性检测CAN控制器的状态位,对每次检测到状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;当第一故障时长达到预设短关闭阈值时,将第一故障时长清零并关闭CAN控制器;当CAN控制器的关闭时长达到第一开启阈值时,重启CAN控制器;返回执行每间隔预设检测周期对CAN控制器的状态位进行检测的步骤。通过上述方法有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
Description
技术领域
本发明涉及汽车总线控制技术,尤其涉及一种CAN总线故障处理方法和装置。
背景技术
CAN是控制器局域网络(Controller Area Network,CAN)的简称,是国际上应用最广泛的现场总线之一。其中,CAN通信应用在汽车领域,其是汽车中各个控制器之间的主要通信通路。
目前,汽车的控制***中若出现线路开路、线路短电源或短地线时可能会导致控制器的CAN控制器一直发送错误帧,当错误帧达到32帧,即错误计数器TEC达到255时,***确认该控制器出现了CAN总线脱离的Busoff状态,一般会在20ms以内重启CAN控制器;如果CAN控制器重启后发送正确帧,则错误计数器TEC的值递减;如果CAN控制器在重启后发送错误帧,则错误计数器TEC的值累加,TEC值大于等于255,CAN控制器会一直持续在Busoff状态;则CAN控制器会持续重启,以此类推,这种处理方式下出现故障的控制器其不断发送的错误帧会大大占用了整车CAN通信信道,影响其他控制器在CAN总线上的正常通信,影响其他控制器的信号实时性,对整车的CAN通信造成较大影响;另一方面发生Busoff状态后的CAN控制器频繁处于重启状态,加重了CAN控制器的负荷。
发明内容
本发明提供一种CAN控制器总线故障处理方法和装置,通过对CAN控制器总线脱离Busoff状态持续时间计时,并根据预设的时间阈值对CAN控制器的停止与启动时刻进行控制,从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
本发明提供一种CAN控制器总线故障处理方法,包括:
每间隔预设检测周期对CAN控制器的状态位进行检测;
对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器;返回执行所述每间隔预设检测周期对CAN控制器的状态位进行检测的步骤。
本发明还提供一种CAN控制器总线故障处理装置,包括:
检测模块,用于每间隔预设检测周期对CAN控制器的状态位进行检测;
故障时长计时模块,用于对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
控制模块,用于当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
所述控制模块,还用于当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器。
本发明的CAN控制器总线故障处理方法和装置,通过周期性检测CAN控制器是否出现总线脱离Busoff状态,并对Busoff状态的持续时间进行计时,并在Busoff状态持续累加时长达到预设关闭阈值时,关闭CAN控制器;并当CAN控制器的关闭时长达到预设开启阈值时,重启该CAN控制器。从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
附图说明
图1为本发明CAN控制器总线故障处理方法的实施例一的流程图;
图2为本发明CAN控制器总线故障处理方法的实施例二的流程图;
图3为本发明CAN控制器总线故障处理装置的实施例一的结构示意图;
图4为本发明CAN控制器总线故障处理装置的实施例二的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述。需要说明的是,在附图或说明书中,相似或相同的元件皆使用相同的附图标记。
图1为本发明CAN控制器总线故障处理方法的实施例一的流程图,如图1所示,本实施例的方法包括:
步骤101、每间隔预设检测周期对CAN控制器的状态位进行检测。
步骤102、对每次检测到CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长。
步骤103、当第一故障时长达到预设短关闭阈值时,将第一故障时长清零并关闭CAN控制器。
步骤104、当CAN控制器的关闭时长达到第一开启阈值时,重启CAN控制器,并返回步骤101继续循环执行。
本实施例提供的CAN控制器总线故障处理方法,通过周期性检测CAN控制器是否出现总线脱离Busoff状态,并对Busoff状态的持续时间进行计时,并在Busoff状态持续累加时长达到预设关闭阈值时,关闭CAN控制器;并当CAN控制器的关闭时长达到预设开启阈值时,重启该CAN控制器。从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
图2为本发明CAN控制器总线故障处理方法的实施例二的流程图,如图2所示,在上述实施例的基础上,本实施例的方法包括:
步骤201、每间隔预设检测周期对CAN控制器的状态位进行检测。
具体的,设定对CAN控制器的检测应用程序,该应用程序按照足够快的周期对CAN控制器的状态位进行检查,以防止Busoff状态的丢失。优选的,可以预设检测周期小于等于10ms。
步骤202、对每次检测到CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长。
具体的,在CAN控制器的检测应用程序中可以定义Busoff状态位持续时间的计时器,当检测到Busoff时,计时器对Busoff持续时间进行累加。计时器累加的是Busoff持续的时间,不管Busoff持续的时间长短,均会对Busoff时间进行累加,其反映的是CAN总线实际的Busoff状态,因此能够准确地反映Busoff的严重程度。该计时器累加得到的时间值为第一故障时长T1。
步骤203、当第一故障时长T1达到预设短关闭阈值时,将第一故障时长T1清零并关闭CAN控制器。
具体的,当CAN控制器的Busoff计时器累加得到的第一故障时长T1达到预设短关闭阈值时,可以将CAN控制器关闭,这里关闭的是汽车各个控制器中负责CAN通信功能的CAN控制器,而不是将该汽车控制器关闭。关闭CAN控制器,可以暂时将发生总线通信故障的CAN控制器停止一段时间,使其修复自身的故障,同时使该故障CAN控制器退出CAN通信线路,让出CAN通信资源空间,以使其他正常状态的CAN控制器可以不受故障CAN控制器的影响,正常通信。同时,现有技术中,当CAN控制器发生Busoff状态,会立刻重启,频繁地重启也会加重该CAN控制器的负荷,通过采用计时器达到预设短关闭阈值即刻停止CAN控制器的方法,不但可以释放CAN总线资源,还可以缓解CAN控制器的负荷。优选的,可以将预设短关闭阈值设置为30ms。每当计时器的第一故障时长T1达到预设短关闭阈值时,关闭一次CAN控制器;在CAN控制器重启后,继续对CAN控制器计时,因此,每循环一次CAN控制器关闭重启操作,将第一故障时长T1进行一次清零操作,以保证计时器记录Busoff状态时长准确。
步骤204、将每次得到的第一故障时长T1进行累加,得到累加时长值T2。
具体的,虽然设定了每当第一故障时长T1达到预设短关闭阈值时,CAN控制器关闭的策略,以保证CAN总线通信资源,但是,在CAN控制器关闭的期间,其所发生的故障依然可能不能得到修复,在重新启动CAN控制器后,其仍然可能频繁达到预设短关闭阈值,而不停的重复关闭、重启的过程,对故障较严重的CAN控制器来说,其故障所占用CAN总线的情况虽然有所缓解,但占用CAN总线的情况依然存在,为了能够进一步地对故障CAN控制器进行管理,可以对每次得到的第一故障时长T1进行累加,得到累加时长值T2。
步骤205、当累加时长值T2达到预设长关闭阈值时,将累加时长值T2清零并关闭CAN控制器。
具体的,当CAN控制器Busoff计时器累加时长值T2达到预设长关闭阈值时,关闭CAN控制器。由于CAN控制器在达到预设短关闭阈值后的恢复期间未能完全修复故障,当累加时长值T2达到预设长关闭阈值时,可以采用更长的时长间隔关闭CAN控制器,使其故障恢复。优选的,预设长关闭阈值可以设定为300ms。
其中,步骤205中的预设长关闭阈值大于步骤203中的预设短关闭阈值。优选的,预设短关闭阈值为30ms,预设长关闭阈值为300ms。
进一步地,步骤203之后还包括:
步骤206、当CAN控制器的关闭时长达到第一开启阈值时,重启CAN控制器,并返回步骤201继续循环执行。
具体的,第一开启阈值可以设定为T3为50ms。50ms是一次快恢复,在总线关闭的时间内,保证没有故障的节点可以正常发送报文。
进一步地,步骤205之后还包括:
步骤207、当CAN控制器的关闭时长达到第二开启阈值时,重启CAN控制器,并返回步骤201继续循环执行。
具体的,第二开启阈值可以设定为T4为500ms,当步骤205中,Busoff计时器达到预设长关闭阈值300ms,说明CAN控制器发生严重故障,总线关闭应该设置足够长的时间,避免对总线造成过多的干扰。其中,步骤207中的第二开启阈值大于步骤206中的第一开启阈值。优选的,第一开启阈值为50ms;第二开启阈值为500ms。
在上述实施例的基础上,进一步地,该方法还包括:统计CAN控制器达到预设短关闭阈值和/或预设长关闭阈值的次数,根据统计得到的次数值,判断CAN控制器的总线故障程度。
图3为本发明CAN控制器总线故障处理装置的实施例一的结构示意图,如图3所示,本实施例的装置包括:检测模块1,用于每间隔预设检测周期对CAN控制器的状态位进行检测。故障时长计时模块2,用于对每次检测到CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长。控制模块3,用于当第一故障时长达到预设短关闭阈值时,将第一故障时长清零并关闭CAN控制器。控制模块3,还用于当CAN控制器的关闭时长达到第一开启阈值时,重启CAN控制器。
本实施例的装置,可以用于执行图1所示方法实施例一的技术方案,其实现原理和技术效果类似,此处不再赘述。
本实施例提供的CAN控制器总线故障处理装置,通过周期性检测CAN控制器是否出现总线脱离Busoff状态,并对Busoff状态的持续时间进行计时,并在Busoff状态持续累加时长达到预设关闭阈值时,关闭CAN控制器;并当CAN控制器的关闭时长达到预设开启阈值时,重启该CAN控制器。从而有效保证CAN控制器出现Busoff后不会过多地占用CAN总线资源,在控制CAN控制器停止工作期间,释放CAN总线信道保证其他控制器的正常通信,提高CAN总线的通信效率;同时还降低了现有技术中CAN控制器因Busoff故障而频繁重启的负荷。
图4为本发明CAN控制器总线故障处理装置的实施例二的结构示意图,如图4所示,本实施例的***装置在图3所示装置的基础上,还包括:累加计时模块4,用于将每次得到的第一故障时长进行累加,得到累加时长值。控制模块3,还用于当累加时长值达到预设长关闭阈值时,将累加计时模块4的累加时长值清零并关闭CAN控制器。其中,预设长关闭阈值大于预设短关闭阈值。进一步地,控制模块3,还用于在将累加计时模块4的累加时长值清零后,CAN控制器的关闭时长达到第二开启阈值时,重启CAN控制器。其中,第二开启阈值大于第一开启阈值。进一步地,还包括:统计模块5,用于统计CAN控制器达到预设短关闭阈值和/或预设长关闭阈值的次数。判断模块6,用于根据统计模块统计得到的次数值,判断CAN控制器的总线故障程度。其中,优选的,预设检测周期小于等于10ms;预设短关闭阈值为30ms;预设长关闭阈值为300ms;第一开启阈值为50ms;第二开启阈值为500ms。
本实施例的装置,可以用于执行图2所示方法实施例二的技术方案,其实现原理和技术效果类似,此处不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种CAN控制器总线故障处理方法,其特征在于,包括:
每间隔预设检测周期对CAN控制器的状态位进行检测;
对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器;返回执行所述每间隔预设检测周期对CAN控制器的状态位进行检测的步骤;
所述将所述第一故障时长清零之后,还包括:
将每次得到的所述第一故障时长进行累加,得到累加时长值;
当所述累加时长值达到预设长关闭阈值时,将所述累加时长值清零并关闭所述CAN控制器;
所述预设长关闭阈值大于所述预设短关闭阈值。
2.根据权利要求1所述的方法,其特征在于,所述将所述累加时长值清零并关闭所述CAN控制器之后,还包括:
在所述累加时长值清零的情况下,所述CAN控制器的关闭时长达到第二开启阈值时,重启所述CAN控制器;所述第二开启阈值大于所述第一开启阈值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
统计所述CAN控制器达到所述预设短关闭阈值和/或所述预设长关闭阈值的次数,根据统计得到的次数值,判断所述CAN控制器的总线故障程度。
4.根据权利要求2所述的方法,其特征在于,所述预设检测周期小于等于10ms;所述预设短关闭阈值为30ms;所述预设长关闭阈值为300ms;所述第一开启阈值为50ms;所述第二开启阈值为500ms。
5.一种CAN控制器总线故障处理装置,其特征在于,包括:
检测模块,用于每间隔预设检测周期对CAN控制器的状态位进行检测;
故障时长计时模块,用于对每次检测到所述CAN控制器的状态位出现总线脱离Busoff状态的持续时间进行累加,得到第一故障时长;
控制模块,用于当所述第一故障时长达到预设短关闭阈值时,将所述第一故障时长清零并关闭所述CAN控制器;
所述控制模块,还用于当所述CAN控制器的关闭时长达到第一开启阈值时,重启所述CAN控制器;
还包括:
累加计时模块,用于将每次得到的所述第一故障时长进行累加,得到累加时长值;
所述控制模块,还用于当所述累加时长值达到预设长关闭阈值时,将所述累加计时模块的所述累加时长值清零并关闭所述CAN控制器;
所述预设长关闭阈值大于所述预设短关闭阈值。
6.根据权利要求5所述的装置,其特征在于,
所述控制模块,还用于在将所述累加计时模块的所述累加时长值清零后,所述CAN控制器的关闭时长达到第二开启阈值时,重启所述CAN控制器;
所述第二开启阈值大于所述第一开启阈值。
7.根据权利要求5所述的装置,其特征在于,还包括:
统计模块,用于统计所述CAN控制器达到所述预设短关闭阈值和/或所述预设长关闭阈值的次数;
判断模块,用于根据所述统计模块统计得到的次数值,判断所述CAN控制器的总线故障程度。
8.根据权利要求6所述的装置,其特征在于,所述预设检测周期小于等于10ms;所述预设短关闭阈值为30ms;所述预设长关闭阈值为300ms;所述第一开启阈值为50ms;所述第二开启阈值为500ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510595435.XA CN105159285B (zh) | 2015-09-17 | 2015-09-17 | Can控制器总线故障处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510595435.XA CN105159285B (zh) | 2015-09-17 | 2015-09-17 | Can控制器总线故障处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159285A CN105159285A (zh) | 2015-12-16 |
CN105159285B true CN105159285B (zh) | 2017-09-12 |
Family
ID=54800170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510595435.XA Active CN105159285B (zh) | 2015-09-17 | 2015-09-17 | Can控制器总线故障处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159285B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105677466B (zh) * | 2015-12-31 | 2019-08-30 | 百度在线网络技术(北京)有限公司 | 第三方应用接口的降级处理的方法和装置 |
CN105634895A (zh) * | 2016-01-26 | 2016-06-01 | 深圳市沃特玛电池有限公司 | 一种can总线错误处理方法及其*** |
CN106124865A (zh) * | 2016-08-31 | 2016-11-16 | 北京汽车股份有限公司 | 差分电容的电容值的测量方法及装置 |
CN110147090B (zh) * | 2019-06-30 | 2020-12-22 | 潍柴动力股份有限公司 | 控制器局域网总线关闭故障处理方法及*** |
CN114265807A (zh) * | 2021-12-22 | 2022-04-01 | 飞瑞医疗器械(嘉兴)有限公司 | 限束器can总线关闭的自恢复方法、装置和电子设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102008000562A1 (de) * | 2008-03-07 | 2009-09-10 | Robert Bosch Gmbh | Kommunikationssystem umfassend einen Datenbus und mehrere daran angeschlossene Teilnehmerknoten sowie Verfahren zum Betreiben eines solchen Kommunikationssystems |
DE102008002738B4 (de) * | 2008-06-27 | 2010-03-11 | Airbus Deutschland Gmbh | Verfahren zum Erkennen eines fehlerhaften Knotens |
CN101783759B (zh) * | 2010-01-19 | 2012-02-01 | 浙江吉利汽车研究院有限公司 | 一种总线错误恢复处理方法 |
CN102830680A (zh) * | 2012-09-11 | 2012-12-19 | 安徽江淮汽车股份有限公司 | 一种混合动力汽车的远程监控控制器 |
US9524222B2 (en) * | 2013-09-16 | 2016-12-20 | GM Global Technology Operations LLC | Method and apparatus for fault detection in a controller area network |
CN104181914B (zh) * | 2014-08-15 | 2017-05-10 | 上海信耀电子有限公司 | 一种汽车故障检测方法及*** |
-
2015
- 2015-09-17 CN CN201510595435.XA patent/CN105159285B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105159285A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159285B (zh) | Can控制器总线故障处理方法和装置 | |
CN103676722B (zh) | 使用修改的监视计时器的安全***的质问和响应 | |
CN104486100B (zh) | 故障处理装置及方法 | |
CN104570721B (zh) | 冗余控制器主从状态确定方法 | |
CN107390511A (zh) | 用于运行冗余的自动化***的方法 | |
CN106789306B (zh) | 通信设备软件故障检测收集恢复方法和*** | |
CN107870948A (zh) | 任务调度方法和装置 | |
US20150082096A1 (en) | Method and apparatus for fault detection n a controller area network | |
CN104426696B (zh) | 一种故障处理的方法、服务器及*** | |
CN104782082A (zh) | 用于控制器局域网总线处理的新方法 | |
CN104714406B (zh) | 输入输出模块冗余切换方法 | |
CN104572472B (zh) | 一种程序执行顺序诊断方法与*** | |
WO2016192212A1 (zh) | 光网络单元onu掉电告警信息的处理方法及装置 | |
CN104104542B (zh) | 一种基于rs485的实时智能排障方法 | |
CN109768907A (zh) | 一种can总线波特率自适应设置方法 | |
CN109023835B (zh) | 一种洗衣机控制方法、装置、存储介质及洗衣机 | |
JP2013514497A (ja) | 制御装置における監視構想 | |
CN105490768B (zh) | 一种集中器时钟芯片的自动校准方法 | |
CN110502369A (zh) | 一种设备死机恢复的方法、装置和存储介质 | |
CN106874126A (zh) | 一种软件开发中主进程异常检测方法 | |
CN104836679B (zh) | 通信异常处理方法及网元设备 | |
CN105306289A (zh) | 一种提高多模块设备可靠性的方法、装置及客户终端设备 | |
WO2014039032A1 (en) | Method and apparatus for isolating a fault-active controller in a controller area network | |
CN104158843A (zh) | 分布式文件存储***的存储单元失效检测方法及装置 | |
CN105224411B (zh) | 一种避免cpu被耗尽导致看门狗重启的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |