本申请涉及一种CAN报文超时计算方法、装置、设备及可读存储介质,涉及汽车电子控制技术领域,包括创建时间轴,并基于各个CAN报文的预设超时时间确定出CAN报文的超时时刻,根据超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处;对时间轴上的各个CAN报文的接收时间进行记录;当时间轴上的第一时刻被触发进行超时检测时,基于第一时刻、超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文。本申请不仅可有效提高CAN报文超时计算的效率,并降低系统开销大,且适用场景范围大。且适用场景范围大。且适用场景范围大。
Can message timeout calculation method, device, equipment and readable storage medium
【技术实现步骤摘要】
CAN报文超时计算方法、装置、设备及可读存储介质
[0001]本申请涉及汽车电子控制
,特别涉及一种CAN报文超时计算方法、装置、设备及可读存储介质。
技术介绍
[0002]由于当前汽车的功能越来越丰富,使得车辆上搭载的ECU(Electronic Control Unit,电子控制单元)数量也越来越多,以致承载ECU之间通信的CAN(Controller Area Network,控制器域网)网络报文数量极大增加,进而导致对需要处理CAN信息的车载设备来说工作压力越来越大,且对车载仪表的CAN报文处理算法要求也越来越高。而CAN报文的超时算法正是CAN报文处理算法中的重要组成部分。
[0003]其中,车载CAN网络报文的超时算法主要面临的问题有以下特点:(1)报文数量大、周期短和频率高;(2)报文周期长短不一且差异大,比如最短可至10ms,最长可到5s乃至10s;(3)具有严格的响应精度要求,超时响应允许的误差范围一般在
±
10%以内,例如对于10ms周期的报文而言,其超时时间一般为5倍的周期,即50ms,那么按10%误差来说,其超时响应必须在超时时刻的
±
5ms内发出。
[0004]相关技术中,主要使用以下两种方法进行CAN报文超时计算:周期轮询和定时器。其中,周期轮询指的是在接收报文时记录每个报文ID(Identity document,身份标识号)的接收时间,并周期轮询所有报文ID,比对当前时间和接收时间之间的时间差,当时间差大于设定的超时值时认为超时;该方法的优点是代码逻辑较为简单、运行稳定可靠且占用空间很小;但是,其只适用于报文发送周期接近的场景;此外由于其在每个周期都要检查所有报文ID,因此当ID数量较多时,还存在效率低的问题。
[0005]而定时器指的是为每一个报文ID设定一个定时器,每当接收报文时更新对应定时器的触发时间,因此若报文正常接收则定时器触发时间不停向后更新,但实际不会触发,而一旦定时器触发则说明对应ID超时;该方法的优点是代码结构清晰易于理解且超时时间的控制精度高;不过,其只适用于报文频率较低的场景,且由于需要在接收报文时更新定时器,以致定时器的更新十分频繁,因此当需要处理的报文数量较多时,将导致系统的开销非常大;此外,由于每一个报文ID均需要维护一个单独定时器,当报文ID数量较多时,大量的定时器将会带来额外的空间开销,进而对系统造成较大的负担。由此可见,当前进行CAN报文超时计算的方法存在效率低、系统开销大和适用场景限制大的问题。
技术实现思路
[0006]本申请提供一种CAN报文超时计算方法、装置、设备及可读存储介质,以解决相关技术中进行CAN报文超时计算存在的效率低、系统开销大和适用场景限制大的问题。
[0007]第一方面,提供了一种CAN报文超时计算方法,包括以下步骤:
[0008]创建时间轴,并基于各个CAN报文的预设超时时间确定出CAN报文的超时时刻,根据所述超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处;
[0009]对时间轴上的各个CAN报文的接收时间进行记录;
[0010]当时间轴上的第一时刻被触发进行超时检测时,基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文。
[0011]一些实施例中,所述根据所述超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处,包括:
[0012]将各个CAN报文的超时时刻与其对应的报文ID以键值对的形式进行存储,所述超时时刻为键值对中的key值,所述报文ID为键值对中的value值;
[0013]按照key值从小到大的顺序将CAN网络中的所有CAN报文预先插入至时间轴上的对应位置处。
[0014]一些实施例中,所述基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文,包括:
[0015]将时间轴上位于第一时刻之前的第一CAN报文的最后接收时刻与所述第一CAN报文的超时时刻进行相加,得到第二时刻;
[0016]判断所述第二时刻是否大于所述第一时刻;
[0017]若是,则所述第一CAN报文处于非超时状态;
[0018]若否,则所述第一CAN报文处于超时状态。
[0019]一些实施例中,在所述第一CAN报文处于非超时状态的步骤之后,还包括:
[0020]将所述第一CAN报文的最后接收时刻与所述第一CAN报文的预设超时时间进行相加,得到第三时刻;
[0021]将所述第一CAN报文移动至时间轴上与所述第三时刻对应的位置处。
[0022]一些实施例中,在所述第一CAN报文处于超时状态的步骤之后,还包括:
[0023]向超时处理模块发送超时响应,并将所述第一CAN报文从所述时间轴上移除;
[0024]当再次接收到所述第一CAN报文时,将接收到所述第一CAN报文的第一接收时刻与所述第一CAN报文的预设超时时间进行相加,得到第四时刻;
[0025]将所述第一CAN报文插入至时间轴上与所述第四时刻对应的位置处。
[0026]一些实施例中,所述方法还包括:
[0027]触发时间轴上第一时刻后的任一时刻作为新的第一时刻进行超时检测,并执行所述基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算的步骤。
[0028]一些实施例中,所述第一时刻被触发的机制为周期性触发或定时器触发。
[0029]第二方面,提供了一种CAN报文超时计算装置,包括:
[0030]初始化单元,其用于创建时间轴,并基于各个CAN报文的预设超时时间确定出CAN报文的超时时刻,根据所述超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处;
[0031]记录单元,其用于对时间轴上的各个CAN报文的接收时间进行记录;
[0032]检测单元,其用于当时间轴上的第一时刻被触发进行超时检测时,基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上
位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文。
[0033]第三方面,提供了一种CAN报文超时计算设备,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现前述的CAN报文超时计算方法。
[0034]第四方面,提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,当所述计算机程序被处理器执行时,以实现前述的CAN报文超时计算方法。
[0035]本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种CAN报文超时计算方法,其特征在于,包括以下步骤:创建时间轴,并基于各个CAN报文的预设超时时间确定出CAN报文的超时时刻,根据所述超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处;对时间轴上的各个CAN报文的接收时间进行记录;当时间轴上的第一时刻被触发进行超时检测时,基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文。2.如权利要求1所述的CAN报文超时计算方法,其特征在于,所述根据所述超时时刻将CAN网络中的各个CAN报文预先插入至时间轴上的对应位置处,包括:将各个CAN报文的超时时刻与其对应的报文ID以键值对的形式进行存储,所述超时时刻为键值对中的key值,所述报文ID为键值对中的value值;按照key值从小到大的顺序将CAN网络中的所有CAN报文预先插入至时间轴上的对应位置处。3.如权利要求1所述的CAN报文超时计算方法,其特征在于,所述基于所述第一时刻、所述超时时刻和在第一时刻前最后一次接收到CAN报文的最后接收时刻对时间轴上位于第一时刻之前的各个CAN报文进行超时计算,并根据计算结果确定出处于超时状态的CAN报文,包括:将时间轴上位于第一时刻之前的第一CAN报文的最后接收时刻与所述第一CAN报文的超时时刻进行相加,得到第二时刻;判断所述第二时刻是否大于所述第一时刻;若是,则所述第一CAN报文处于非超时状态;若否,则所述第一CAN报文处于超时状态。4.如权利要求3所述的CAN报文超时计算方法,其特征在于,在所述第一CAN报文处于非超时状态的步骤之后,还包括:将所述第一CAN报文的最后接收时刻与所述第一CAN报文的预设超时时间进行相加,得到第三时刻;将所述第一CAN报文移动至时间轴上与所述第三时刻对应的位置处。5.如权利要求3所述的CAN报文超时计算方法...
【专利技术属性】
技术研发人员:袁静冶,何银山,车小路,占金,姜武卿,
申请(专利权)人:东风电驱动系统有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。