【摘 要】针对AUTOSAR架构在诊断数据存储与更新方面的不足,文章提出一种通过优化车载控制器诊断数据管理系统的数据更新机制,通过在应用程序软件层级开辟专用诊断管理内存,存储每个诊断事件的详细数据,以便有序存储诊断数据。该机制在满足AUTOSAR的标准化要求的同时能显著改善系统性能,提升诊断的准确性和效率。
【关键词】车载控制器诊断数据;诊断管理内存;诊断事件
中图分类号:U463.6 文献标识码:A 文章编号:1003-8639( 2024 )09-0061-03
Design and Research of a New Diagnostic Data Management System for Vehicle Controllers
MA Shuli,LIANG Sen,XU Ji,LIANG Siyu,XU Yukai,GENG Xin
(Bosch Huayu Steering System Co.,Ltd.,Shanghai 201821,China)
【Abstract】Aiming at the shortcomings of AUTOSAR architecture in the storage and update of diagnostic data,this paper proposes a data update mechanism by optimizing the diagnostic data management system of vehicle controller,and by creating a dedicated diagnostic management memory at the application software level,storing the detailed data of each diagnostic event in order to store diagnostic data in an orderly manner. This mechanism meets the standardization requirements of AUTOSAR and can significantly improve the system performance,improve the accuracy and efficiency of diagnosis.
【Key words】vehicle controller diagnostic data;diagnostic management memory;diagnostic event
1 引言
汽车技术的飞速进步与消费者对安全[1]、智能[2]和舒适性的日益增长需求相辅相成,共同推动着汽车行业迈向高端智能化的新阶段[3]。然而,这一进步也带来了车载控制器功能复杂化和售后问题处理难度的增加。不可否认,传统的AUTOSAR架构中的诊断事件管理模块对于处理故障诊断事件是有效的[4],但在故障信息分析和存储方面仍有局限性[5-6],无法满足高效、精准解决问题的需求[7]。
在此背景下,本文提出一种新型车用控制器诊断数据管理系统。该策略旨在通过应用程序软件层级开辟专用诊断管理内存和多维度的故障替换策略,实现对诊断事件的精准分析和优先处理,从而提高售后维修效率,确保车辆运行安全。文章不仅针对硬件类故障、内存类故障和通信类故障等多种类型进行详细规划,还通过诊断数据同步、事件检测、分类、更新和存储等多个模块,实现诊断数据的全面管理和高效利用。
通过本策略的实施,能有效缩短故障诊断时间,提高故障诊断的准确性和可靠性,为汽车行业售后服务提供有力支持,促进汽车行业的持续健康发展。
2 系统设计
诊断数据管理系统框架如图1所示。本文所述的诊断数据管理系统框架主要有4部分,各部分之间的主要内容如下。
1)车载控制器上电后,在初始化的过程中,将存储诊断数据的非易失性存储器NVM数据同步到诊断管理内存(Diagnostic Management Memory,DMM)中,然后控制器就会开始正常工作,并检测诊断事件是否已经发生。
2)检测到诊断事件发生之后,根据本文所述的诊断数据更新方法,系统监控诊断事件的触发原因和故障被认定的具体时间,并更新信息到诊断管理内存。在存储故障信息时,系统按照发生时间、故障优先级和故障状态进行排序,以确保那些严重度较高的故障信息能够被优先记录并保留,避免被后续数据覆盖或清除。
3)诊断管理内存中的数据可以通过上位机读取出来,从而方便分析。
4)控制器收到下电指令后,通过检查CRC校验值的方式来判断诊断数据是否有更新,从而决定在控制器下电时是否需要将诊断管理内存中的数据写入到NVM中。
2.1 设计说明
在诊断事件发生后,系统监控诊断事件的触发原因和故障被认定的具体时间,并更新信息到诊断管理内存。在存储故障信息时,系统按照发生时间、故障优先级和故障状态进行排序,以确保那些严重度较高的故障信息能够被优先记录并保留,避免被后续数据覆盖或清除。本文所述的诊断事件数据包含有:诊断事件ID、诊断事件状态、发生次数、老化计数、诊断事件优先级、事件次序、Failed_ Trigger、Failed_Data。
1)诊断事件ID作为诊断事件的序号编码,与特定的诊断事件一一对应,通常由供应商为其产品中的每个诊断事件分配一个确定的编码。
2)诊断事件故障状态被明确分为两类:Failed和Passed。当状态标记为Failed时,表示该诊断事件已被确认存在错误;而当状态标记为Passed时,则表示该事件已被验证为正常状态。
3)发生次数记录了诊断事件故障状态被判定为Failed的总次数。
4)老化计数指在连续的驾驶循环中,事件从Failed状态成功转变为Passed状态所需达到的最低连续次数,是诊断事件状态转换的一个关键参数。通常这一设定值为40次,意味着只有在连续40个驾驶循环中均未出现Failed状态的记录,故障状态将被重置为Passed。
5)诊断事件的优先级,基于其严重性以及对受影响系统工作的影响来确定,这两者与事件的优先级成正比关系。
6)事件次序,DMM负责为每个发生的诊断事件分配一个独特的事件次序标识。每当新进事件发生时,其对应的事件次序值才会相应增加,以确保对事件发生顺序进行准确追踪和记录。根据替换规则,最早发生的事件在内存满时会被新事件替换。在诊断事件故障需求管理阶段,需要与主机厂共同确定诊断事件的标识信息,包括其ID、状态和优先级。这些标识信息在诊断数据管理系统中用于标识各个诊断事件,以便跟踪和记录故障数据。
7)在特定工况下,供应商可以根据实际需求,灵活自定义Failed_Trigger和Failed_Data信息,以适应不同的诊断场景和需求。其中Failed_Trigger描述了Failed状态下触发事件的原因,Failed_Data则记录了故障状态下的相关数据。
2.2 数据管理步骤
与本文配套的诊断事件数据管理步骤如下。
S1:车载控制器检查当前车辆,以确定当前是否有诊断事件发生。
S2:诊断事件一经发生,系统将自动检索DMM的事件数据库,以确定该事件是否已被诊断管理系统所记录。
S3:在DMM中检测到先前存储的诊断事件数据时,系统将自动用最新的诊断事件数据来更新这些记录。
S4:若DMM中不存在该诊断事件的历史记录,系统将验证DMM的存储空间是否充足。
S5:如果DMM中的空间充足,系统将自动将当前诊断事件数据存入DMM。
S6:如果DMM中存储空间不足,系统将对当前诊断事件的优先级进行评估,并与DMM中现存所有事件的优先级进行比较。
S7:在DMM中,若所有诊断事件的优先级均超过当前事件的优先级,系统将决定不将当前诊断事件存入DMM。
S8:如果DMM中检测到优先级低于当前事件的诊断事件,系统将自动用当前的诊断事件数据替代优先级最低的历史事件。
S9:如果当前诊断事件的优先级是最低,并且DMM中还有优先级相同的其他诊断事件,系统将进一步比较这些事件的故障状态,以便进行下一步的数据管理。
S10:如果当前诊断事件的故障状态为Failed,并且DMM中存在优先级最低且为Passed状态的事件,系统将自动用当前的Failed状态事件数据替换那些优先级最低的Passed状态事件。
S11:如果当前诊断事件的故障状态标记为Failed,并且在DMM中存在优先级且为Failed状态的事件,则系统将选择最早发生的Failed状态事件,并用当前事件的数据进行替换。
2.3 数据管理策略
根据不同的诊断数据管理策略,本文将诊断事件类型划分为3大类:历史事件、新进事件以及新进替换事件。以下按照诊断数据管理步骤,结合实例对各分类下的数据更新逻辑分别进行阐述。
历史事件诊断数据的更新方法如图2所示,如果车辆在连续的点火周期中多次发生某节点报文丢失的故障,系统诊断在步骤S1和S2完成后,会认定该事件为历史事件。接着,在步骤S3中,系统将对诊断数据进行替换、更新和存储操作。这包括将故障发生次数从0增加到1,将老化计数设置为40,以及记录触发原因和相关数据。注意:由于诊断事件属于历史事件,事件次序保持不变,因此不进行更新。
新进事件诊断数据更新方法如图3所示。在车辆初次发生某节点的报文丢失问题时,系统通过步骤S1和S2将此诊断事件判定为新进事件。随后在步骤S4和S5中,系统将诊断数据进行更新并保存至DMM,包括将故障状态标记为Failed,将故障发生次数从0增加到1,并将老化计数初始化为40,将事件次序按现有顺序递增,以及记录触发原因和相关数据。
新进替换事件诊断数据更新方法如图4所示。当车辆出现大量故障,导致DMM存满10条故障记录时,诊断数据系统在经历步骤S1、S2、S4后,会识别该事件作为新进的替换事件,并需进入步骤S6以确定优先级。若DMM中所有故障的优先级均高于当前故障,则根据步骤S7,不会执行数据更新。
当车辆出现大量故障,导致DMM存满10条故障记录。此时若系统检测到新发生助力丢失故障,系统经步骤S1、S2、S4识别该诊断事件为新进替换事件,随后执行步骤S6,进行诊断事件优先级排序。若当前故障系统中同时存在前述某节点丢失故障,鉴于助力丢失故障对转向系统乃至整车运行的影响更为显著,该诊断事件将被赋予比前述节点丢失故障更高的故障优先级。随后,将按照S8步骤进行数据更新。更新的内容包括:事件标识符ID、事件状态、优先级设置,将发生次数设定为1,老化计数设定为40,同时包含故障触发的原因及其相关数据信息。
当车辆出现大量故障,导致DMM存满10条故障记录。当系统检测到B报文校验失败时,首先通过S1、S2以及S4步骤判定得出这是一个新进替换事件。接着系统执行步骤S6、S8,系统已确定DMM中A节点故障为其中最低优先级故障,鉴于二者对整车运行的影响无差异,系统判定B报文校验失败的优先级等同于前述A节点丢失故障。通过步骤S9,如果前述A节点故障已经成功恢复成Passed状态,则经步骤S10,对DMM中数据内容进行如下操作:更新诊断事件至Failed状态;事件ID被更新,以匹配新进替换事件的特定ID;将发生次数由0增加至1;设置老化计数为40;同时留存触发原因及其相关数据。因当前诊断事件不是新进事件,事件次序值维持原值。依据S11,若系统再次以Failed状态确认A节点故障发生,系统将对比二者的故障发生时间,接着诊断数据会被更新为那个最早被记录的故障事件的数据。
诊断数据更新完成后,依据图5进行诊断数据存储。车载控制器在接收到休眠指令后,获取DMM中所有的诊断数据。首先进行CRC校验,若计算结果与NVM中存储的CRC值一致,则无需将DMM数据更新到NVM;反之,若计算结果与NVM中存储的CRC值不一致,则需要将DMM数据更新到NVM中进行数据存储。
3 结论
本文提出的新型车用控制器诊断数据管理系统通过定制化的诊断数据管理和多维度的故障处理策略,显著提升了故障诊断的精确度和效率,降低了安全隐患。该方法不仅满足了AUTOSAR的标准化要求,同时紧密贴合了汽车电子系统的售后服务需求,为故障诊断系统的开发提供了新方向,也为汽车行业的智能化和高端化发展提供了有力的技术支持。
参考文献:
[1] 侯建. 我国智能汽车自动驾驶技术安全性分析[J]. 时代汽车,2022(5):188-189.
[2] 徐长明. 我国智能汽车发展趋势[J]. 智能网联汽车,2023(1):10-11.
[3] 乔英俊,赵世佳,施敏,等. 汽车智能化技术革命及体系构建[J]. 汽车工程学报,2022,12(3):228-235.
[4] 罗端,李红,方正,等. 基于AUTOSAR的汽车电子诊断系统的开发[J]. 汽车工程,2012,34(2):179-183.
[5] 胡琦. 基于AUTOSAR的汽车故障诊断系统的设计与实现[D]. 杭州:浙江大学,2011.
[6] 刘永宏,张巧娥,樊昀. 基于AUTOSAR的BCM诊断开发[J]. 汽车科技,2018(z1):115-120.
[7] 陈明华. 新能源汽车的维修与故障诊断技术研究[J]. 汽车实用技术,2018(24):7-8,24.
(编辑 凌 波)
作者简介马淑丽(1993—),女,硕士,软件开发工程师,研究方向为EPS软件开发。