一种CAN报文处理方法及系统与流程

摘要: 本申请涉及汽车电子控制领域,具体涉及一种can报文处理方法及系统。背景技术:1、随着汽车电子化程度的不断提高,尤其是新能源汽车架构的演进,车内电子控制单元(ec...
一种CAN报文处理方法及系统与流程

本申请涉及汽车电子控制领域,具体涉及一种can报文处理方法及系统。

背景技术:

1、随着汽车电子化程度的不断提高,尤其是新能源汽车架构的演进,车内电子控制单元(ecu)的数量显著增加,导致can总线通信负载日益加重。在汽车仪表等嵌入式应用场景中,受限于硬件选型,通常采用算力有限的微控制器(mcu)作为处理核心。然而,如何在有限的cpu资源下高效处理高频can报文,同时保障界面渲染等其他任务的流畅运行,成为亟待解决的技术问题。

2、目前,业界常见的can报文处理策略主要包括中断驱动方式和周期轮询方式。

3、其中,中断驱动方式是在can控制器接收到报文后触发中断,在中断服务例程(isr)内直接完成报文读取、信号解析乃至后续的业务响应。这种方式的优点在于响应迅速,数据流转路径短,无需额外的缓存空间。然而,当总线负载较高或报文频率较大时,中断触发的频次会急剧上升,导致cpu长时间处于中断上下文中,无法及时响应其他低优先级任务,严重时甚至导致看门狗超时复位。此外,将复杂的业务逻辑置于中断上下文中执行也不符合软件分层设计的原则,增加了系统维护的难度。

4、另一种常见的周期轮询方式则是将报文接收与处理解耦,中断仅负责将报文存入缓冲区,由后台定时任务周期性地去读取缓冲区并进行解析。这种方式避免了中断嵌套过深的问题,系统稳定性较好。但是,轮询周期的设定往往面临两难境地:若为了提高实时性而缩短轮询周期,cpu将大量消耗在无数据变化的空转查询上,造成算力浪费;若为了降低负载而延长轮询周期,则会导致关键信号的响应延迟增加,难以满足仪表显示或安全控制的实时性要求。

5、更为重要的是,车内can总线上的报文具有显著的异构特性:既包含对实时性极其敏感的安全关键报文(如车速、故障告警),也包含对延迟不敏感的普通状态报文(如里程、保养信息)。常规技术方案往往对所有报文采用统一的中断或轮询策略,未能根据报文的业务属性合理分配计算资源。这导致在总线负载高峰时段,关键报文可能因cpu被大量普通报文处理占用而无法及时响应,或者非关键报文占用了过多的中断资源,造成系统整体资源调度不合理。

6、鉴于上述现有技术存在的不足,亟需一种改进的can报文处理方法,以在低算力平台上实现关键报文的高实时响应与系统整体低负载之间的平衡,提升车载仪表系统的运行稳定性与资源利用率。

技术实现思路

1、本申请提供一种can报文处理方法及系统,可以解决现有技术中存在的低算力平台在高总线负载下难以兼顾关键报文实时性与系统cpu占用率的技术问题。

2、第一方面,本申请实施例提供了一种can报文处理方法,包括:接收can总线上的报文数据;根据预设映射关系,确定所述报文数据对应的优先级类别;所述优先级类别至少包括实时性要求较高的第一类别和实时性要求较低的第二类别;若所述优先级类别属于所述第一类别,则在中断服务例程中对所述报文数据进行即时解析并输出;若所述优先级类别属于所述第二类别,则在中断服务例程中将所述报文数据存储至缓冲区,并由非中断上下文任务在满足预设触发条件时进行解析。

3、结合第一方面,在一种实施方式中,所述优先级类别包括即时处理级、重要处理级、普通处理级和延迟处理级;所述即时处理级对应所述第一类别,其余级别对应所述第二类别。结合第一方面,在另一种实施方式中,对于重要处理级报文数据,所述满足预设触发条件包括:检测状态信息是否满足状态变更事件,若满足则立即触发解析,若不满足则累加周期检查计数器,当计数器达到预设阈值时触发解析;其中,所述状态变更事件包括信号值发生变化、信号值变化量超过预设阈值、或报文从超时状态恢复后的首次接收。结合第一方面,在另一种实施方式中,对于普通处理级报文数据,所述满足预设触发条件包括:当重要处理级报文触发解析时在同一任务周期内一并解析,或当周期检查计数器达到预设阈值时同步触发解析。结合第一方面,在另一种实施方式中,对于延迟处理级报文数据,所述满足预设触发条件包括:接收到上层应用发出的界面切换请求或数据查询请求时,触发解析。

4、第二方面,本申请实施例提供了一种can报文处理系统,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如第一方面所述的can报文处理方法。

5、第三方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的can报文处理方法。

6、本申请实施例提供的技术方案带来的有益效果包括:通过基于优先级类别的差异化处理策略(即第一类别在中断服务例程中即时解析,第二类别在中断中存储并由非中断上下文任务触发解析),解决了相关技术中统一采用中断处理导致高负载下cpu占用过高、或统一采用轮询处理导致关键报文响应延迟的技术问题。具体而言,对于实时性要求高的第一类别报文,利用中断服务例程的高优先级特性,确保了安全关键信号的低延迟响应;对于实时性要求低的第二类别报文,利用非中断上下文任务进行批量或触发式解析,避免了频繁中断上下文切换带来的开销,同时通过变化检测与计数器双重触发机制,消除了无效数据的重复解析,显著降低了系统整体cpu负载,实现了低算力平台下总线通信实时性与稳定性的平衡。

1.一种can报文处理方法,其特征在于,所述方法包括:

2.如权利要求1所述的can报文处理方法,其特征在于,所述优先级类别包括即时处理级、重要处理级、普通处理级和延迟处理级;

3.如权利要求2所述的can报文处理方法,其特征在于,对于归属于所述第二类别的重要处理级报文数据,所述满足预设触发条件包括:

4.如权利要求3所述的can报文处理方法,其特征在于,对于归属于所述第二类别的普通处理级报文数据,所述满足预设触发条件包括:

5.如权利要求2所述的can报文处理方法,其特征在于,对于归属于所述第二类别的延迟处理级报文数据,所述满足预设触发条件包括:

6.如权利要求3所述的can报文处理方法,其特征在于,所述状态信息还包括:

7.如权利要求6所述的can报文处理方法,其特征在于,还包括超时保护步骤:

8.如权利要求1所述的can报文处理方法,其特征在于,在接收can总线上的报文数据之前,还包括初始化步骤:

9.一种can报文处理系统,其特征在于,所述系统包括:

10.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的can报文处理方法。