APP下载

基于相关性的CAN信号解析技术研究及应用

2024-12-11李国柱蔡君同雷南林

时代汽车 2024年23期

摘 要:本文针对汽车行业中海量CAN数据的高效处理与精准分析需求,提出并开发了一种基于同源相关性原理的CAN信号逆向分析技术及相应软件。该技术通过利用同源信号的相关性,以诊断信号为基准,将广播信号转换为二进制格式,并根据位长、类型、系数、偏移量、符号位及相似度等参数,将数据拆分为多个对比信号数据源。随后,通过设定相似度阈值,快速筛选出符合条件的信号。研究结果表明,该技术显著提升了CAN信号的获取效率,缩短了解析周期,提高了工作效率,并为汽车行业的发展提供了重要支持。

关键词:CAN信号逆向分析 同源相关性 数据处理 汽车电子

0 引言

在汽车工业的快速发展和新能源汽车的广泛应用背景下,CAN总线技术作为现代汽车电子系统的核心通信协议,其数据处理和分析的重要性日益凸显[1]。然而,传统解析方法在处理大规模实时数据时存在效率和精确度的局限,这已成为行业面临的一大挑战[2]。本论文旨在解决这一问题,提出一种基于信号同源相关性原理的CAN信号分析技术,以提高数据处理效率和分析准确性。

目前,车辆内CAN总线数据的提取与解析依赖手动标记驾驶状态(如车辆移动、空调开关油与电的动力转换等)并对比通信数据流的变化来确定数据的编码格式和物理意义,这一过程不仅工作效率低、劳动强度高,还高度依赖于有经验的工程师,而状态标记的数量有限,难以全面覆盖所有驾驶工况[3-4]。

为了应对这些挑战,一些研究工作致力于设计基于CAN数据帧报文的信号提取方法。Jaynes等人[5]研究了利用监督学习来识别车辆内与控制相关的CAN消息,创建一个经过多家车辆数据集训练的机器学习分类器,但该方法未考虑CAN数据帧内包含多个信号,因此只能将整个数据帧标记为单一物理意义。2017年,Markovitz[6]假设CAN数据帧中的信号使用大端字节序,能识别信号的起始位和长度。算法考虑了所有可能的信号组合,并统计信号变化范围内的不同值数量。根据这些变化,将信号分类为常量、离散值(表示车辆状态)或连续值(离散采样的连续变量)。Marchetti[7]设计了READ算法,利用翻转频率进行信号分类和提取,考虑了信号的不同类型,但仍假设数据帧为大端编码格式。传统方法大多仅是针对疑似信号的筛选,但准确性往往不会很高。

在CAN总线信号分析领域,尽管现有的理论和方法已取得一定进展,但仍面临诸多挑战。例如,樊金娜等人的基于相关性原理的CAN 信号解析[8],采用字节级别的数据切片进行信号定位,这种方法在处理标准CAN信号时表现良好,然而对于CAN FD和复用帧数据的解析以及跨字节信号的识别与分析,该方法则显得无能为力。关静等人提出的基于信号相似度原理的CAN 信号解析方法[9],通过相关性曲线及算法对CAN报文进行区域性识别,但其应用范围受限于诊断信号和通讯信号之间,显示出一定的局限性。本研究采用的基于同源信号相关性原则的CAN信号分析技术,在现有方法的基础上取得了显著突破。该技术以二进制数据位为最小数据粒度,具备处理包括大报文在内的所有CAN数据的能力,涵盖了温度数据的变化、复用帧数据、CAN FD等多种复杂数据类型。通过多种算法综合分析与比较,该技术实现了对不同部位数据的精准解析,显著提升了数据处理的深度和精度。

这一技术创新为汽车工程师和技术人员提供了更为先进和强大的技术支持,使他们能够更深入地理解和分析CAN总线通信数据,从而在车辆诊断、网络优化和性能调试等关键任务中发挥更大的作用。

1 CAN总线信号的特征、采样、提取与加工

1.1 CAN信号数据特征信息

自1986年博世公司推出CAN(Controller Area Network)协议以来,该协议于1993年被ISO正式采纳为国际标准ISO 11898,确立了其在汽车电子控制单元(ECUs)通信中的行业标准地位。CAN FD(Controller Area Network Flexible Data-rate)是对传统CAN总线技术的扩展,提供了更高的数据传输速率和更长的数据帧长度,同时保留了传统CAN的优点。

在CAN(Controller Area Network)通信中,多路复用帧技术通过使用不同的标识符来区分和传输不同类型的数据信号,从而优化通信效率和灵活性。复用帧是包含业务或控制信息的数据帧,而复用子帧则是复用帧的基本组成单元,专门用于承载单一的业务数据或控制信息。

在CAN通信系统中,物理信号的数值与总线上传输的逻辑数值之间的关系通过以下转换公式体现:

P=N*K+B (1)

式中,P为工程师可理解的物理数值,N为在基于总线二进制数据转为十进制的数值,K、B分别为不同车型、不同信号下的系数、偏移量。

该公式清晰地描述了CAN总线上电平与实际数据值之间的映射,其中“系数”和“偏移”是确保总线信号准确转换为实际数据表示的关键参数。这一映射机制保证了CAN信号在不同硬件实现中的一致性和互操作性。

1.2 CAN信号的提取与加工

CAN信号是指在CAN总线上传输的特定数据元素。在 CAN 通信矩阵中,信号的编码格式有两种:字节内编码格式和字节间编码格式。字节内编码格式规定为大端模式,即高比特位在前。字节间编码格式有 Motorolla 格式(大端序,高字节在前)和 Intel 格式(小端序,低字节在前)。跨字节信号需选择这两种字节间编码格式之一,而不跨字节信号不受影响。

针对标准帧和CAN FD报文数据直接按照二进制由高到低的方式转换为二进制后,将转换后的二进制数据切分为多个子信号,切分方式按照一个标准帧的Motorolla 格式报文举例如下:

37 0E 29 23 0E 01 EE 02

将上述报文转换为二进制格式后,其结果如下所示:

0011 0111 0000 1110 0010 1001 0010 0011

0000 1110 0000 0001 1110 1110 0000 0010

将上述报文转换为二进制数据后,总长度为64位。按照信号位长度为16、步长为1进行拆分,可以得到多个信号段。在下表中,这些拆分出来的信号段将以红色字体突出显示。拆分方式如下表1所示。

对于一个8位的16进制报文数据,当将其转换为二进制时,总长度为64位,如果按照逐位拆分的方式,可以将这些位拆分为49个长度为16位的信号,拆分CAN FD数据的过程与标准帧数据相似。

CAN FD报文的最大长度为64位16进制数据。按照标准帧中的拆分方法,可以将这些数据切分为497个子信号。

处理复用帧数据时,首先需依据复用帧中的标志位信息对数据进行拆分,然后将拆分后的数据重新组合。接着,将重组后的数据转换为二进制形式,并在此基础上进行子信号的拆分。

1.3 参考信号和对比信号的采样率信息

在该技术体系中,数据分为对比信号和参考信号两大类。参考信号的数据来源包括诊断信号和手动绘制的信号两种方式。按照诊断协议,每家整车企业一般都会根据自家的特点选择相应的诊断标准并作一些取舍后形成诊断服务规范。通过获得的诊断报文,可以确定ECU的相应重要信号的物理值,这对查找CAN信号位置及物理值起到决定性的作用。

广播信号的采样率由ECU(电子控制单元)主动设定,其发送频率根据不同的CAN标识符(ID)而异,通常每10至100毫秒发送一次数据帧。相比之下,诊断信号的采样率由诊断设备控制,诊断设备需先向ECU发送诊断请求,ECU才会响应并发送相应的诊断报文。

在进行诊断信号与对比信号的比较之前,需确保两组数据的采样率相同。为此,需要对诊断信号进行插值处理,以匹配对比信号的采样率,插值算法描述如图1所示。

假设数轴上存在三个离散点,坐标分别为 xi-1、xi、xi+1。给定连续函数f(x)作为约束条件,这三点的函数值分别为f(xi-1),f(xi),f(xi+1)。若需获取更为密集和精细的数据点,可指定新的坐标值,并应用函数f(xi)计算其对应的函数值。例如,在xi-1和xi之间插入一新点x’,其函数值f(x’)可由函数f(x)计算得出。经过插值处理,该信号与对比信号的采样率保持一致。

手绘信号的数据,以对比信号的时间轴为基准,在该时间轴上使用手绘笔描绘一条信号曲线。随后,将该手绘曲线转换成一组数值集合,转换过程中同样需确保两者的采样率保持一致。

2 同源信号相关性原则的原理与实现方式

2.1 同源相关性原则的原理

同源相关性原则利用比较不同信号的相似度来推断它们之间的关系和特征,基于的假设是,若两个信号在关键特征上相似,它们可能源于同一源或表现相似的物理过程。在车辆运行中,无论车辆静止还是行驶,通过诊断设备采集的发动机转速信号与通过车载通信系统(如CAN总线)广播的信号数据呈现显著的一致性,因为它们都来自同一传感器,实时反映发动机的运行状态。利用这一原理,可以将诊断数据与预先切好的广播信号数据进行比较,快速定位并提取所需的信号信息。这种方法有效地应用了同源相关性原则,为车辆监控和数据处理提供了便捷的途径。

2.2 同源信号相关性原则的实现方式

相关性分析的具体实现方式涉及以下步骤:首先,对输入的参考信号与对比信号进行标准化处理,这一过程旨在消除数值差异和时间序列的波动,确保数据在统一的尺度上可比。随后,通过计算这两个已标准化数据集之间的皮尔逊相关系数,来精确衡量它们之间的线性关联强度。最后,利用标准化数据集来确定线性回归模型的斜率和截距,这些参数不仅揭示了数据集间的线性依赖关系,还为构建预测模型提供了基础。这一系列操作共同构成了一个综合的分析框架,用以评估和预测两个信号之间的相关性和潜在的线性关系,计算公式如下。

数据标准化:对于训练数据集y,标准化后的数据ystandardized可以通过以下公式计算:

式中,μ为数据集y的均值,σ为数据集y的标准差。

计算皮尔逊相关系数:皮尔逊相关系数r可以通过以下公式计算:

式中,Xi和Yi为两个比较数据集中的对应元素,和分别是数据集Xi和Yi的均值,n为数据集的时间帧数。

计算线性回归系数:线性回归模型的一般形式为

式中k为系数,b为偏移量。在这个算法中,系数k和偏移量b的计算基于公式(2)标准化后的数据,具体公式如下:

式中,std(y1)和std(y1)分别是数据集y1和y2的标准差。式中,mean(y1)和mean(y2)分别是数据集y1和y2的均值。其中y1和y2分别代指参考信号与对比信号。

3 相关性在CAN信号分析技术验证与实现

为了确保相关性原则在CAN信号分析技术中的准确性和完整性得到验证,开发了一套专门的验证测试系统。该系统旨在通过一系列严密的测试,确保CAN信号分析技术能够精确地识别和评估信号间的相关性。以下是基于某车型前驱电机扭矩的CAN报文数据作为参考信号的实例,通过软件应用相关性原则的CAN信号分析技术,从广播信号中筛选出与其相匹配的信号。

3.1 验证流程设计

图2为基于相关性的CAN信号分析技术流程图,同样是对应开发软件的操作方案图。

技术验证流程的起点是将采集的CAN报文数据导入系统,此类数据文件一般为ASC后缀或BLF后缀。利用软件报文数据读取服务完成文件的有效加载。

随后,在配置系统参数的基础上,系统分别抽取出参考信号与待对比信号集合。参考信号的软件预设参数包括回复ID、位置索引、系数、偏移量、I/M格式、有/无符号和分析时间区间。参考信号参数的准确设定使得算法有效获得真实的用于相关性分析的数据。对比信号的参数设定有助于提前筛选分析内容,减小算法计算量。

由于参考信号与对比信号由于来源不同,采集频率存在差异。为保障数据分析的精准性,系统内置的插值算法发挥作用,确保所有信号依据时间戳的起始时间实现精准对齐,同时使得相关性计算的输入量长度一致。

系统依次运用数据标准化算法、皮尔逊相关系数算法以及计算线性回归系数算法,对信号进行细致入微的对比分析。这一系列严谨的步骤最终助力我们准确识别并提取出关键信号,确保了分析结果的可靠性与有效性。

3.2 验证过程

在系统验证的初始阶段,我们首先需要准备一份预先录制好的CAN报文数据。数据包含待分析信号的参考信号与车辆CAN总线报文信号。

为有效验证待分析信号,需注意采集的报文数据要在能激发起分析信号波动的特定工况录制。如针对前驱电机扭矩信号,需小范围挪动车辆并重复2-3次车辆启停。其他信号可参考如下表格录制对应工况。

进一步将详细阐述如何利用基于同源相关性的CAN信号分析技术,在研发的软件系统中进行CAN信号的精确检索过程。这一过程将展示软件如何通过复杂的算法和分析,确保从众多信号中准确识别出目标信号。

首先将预先准备好的CAN报文录制的ASC后缀文件导入系统。随后,系统依据预设的CAN ID、起始位置及长度等参数,精确提取出参考信号。待分析信号为前驱电机扭矩信号,结果在自研软件的展示如下图 3所示。在参考信号数据成功导入系统后,点击“数据分析”按钮,系统即刻启动自动分析流程。首先,系统会根据不同的CAN ID动态划分出对比信号,并根据参考信号的数据量进行自动插值处理,确保所有对比信号数据的采样率一致。

由于录制数据的工况内,参考信号会发生数据波动。因此软件中算法将识别在录制数据区间始终为固定数值的ID,并在后续分析中不考虑该ID的拆分与识别。此举将极大程度降低算法的计算量。经统计针对对比信号的204个ID,共114个ID在数据录制工况没有发生数据波动。

针对波动的对比数据,系统将逐一运用标准化算法、皮尔逊相关系数算法以及计算线性回归系数算法,对参考信号与对比信号进行深入分析,以评估其相似度,并计算出相关系数和偏移量的值,计算完毕后,所有结果将被展示在如下图4所示的界面上,以便用户直观地查看和分析。经软件分析,待处理的90个ID中,算法分析详细程度在80%以上的ID共13个。

针对具体识别出来的具体ID,软件会具体展示出对应ID的具体结果,以1个ID举例,若分析对比信号长度为16则可拆分出49的占位方式。下图5为针对某个ID,按照长度14、15、16分别占位的结果,理论上共144种可能占位情况。经软件分析识别出共30个相似程度在80%以上的占位方式。

为直观地针对30个筛选信号进行信号对比及结果导出,软件支持将相似度高的对比信号与参考信号放在统一坐标轴,方便对比同时避免算法的过拟合。

同时,软件会针对相似程度高的占位方式,输出对应的转换系数、偏移量以及占位图。具体占位图可通过点击图5中索引按钮展示,如下图6所示。

针对相似程度较高的信号,支持勾选对应信号,软件具备将存疑信号导出成DBC(Database CAN)的功能,通过DBC格式的文件,方便工程师开展后续测试工作。为方便使用,软件具备DBC与EXCEL格式文件相互转换的能力。

4 结语

采用同源信号相关性原理的CAN信号分析技术在处理汽车行业中的大规模CAN数据提供了有效的解决方案。该技术以诊断信号为参考,将广播信号转换为二进制格式,并根据位长、类型、系数、偏移量、符号位及相似度等参数,将数据拆分为多个对比信号数据源。通过设定相似度阈值,可以快速筛选出符合条件的信号。与传统解析方法相比,基于相关性原理的CAN信号分析技术在处理CAN FD和复用帧数据的解析以及跨字节信号的识别与分析方面具有显著优势。此外,该技术还具备处理包括大报文在内的所有CAN数据的能力,涵盖了温度数据的变化、复用帧数据、CAN FD等多种复杂数据类型。通过多种算法综合分析与比较,该技术实现了对不同信号的准确识别与提取。在系统验证过程中,该技术在研发的软件系统中表现出高效、精确的CAN信号检索能力,确保了分析结果的可靠性与有效性。综上所述,基于同源相关性原理的CAN信号分析技术在汽车行业中对大规模CAN数据的高效处理与精确分析提供了有力支持,为汽车行业的进步贡献了重要力量。

参考文献:

[1]袁光龙.汽车电子系统级工具链的研究与实现[D].北京:电子科技大学,2024.

[2]Zhou F , Li S , Hou X .Development method of simulation and test system for vehicle body CAN bus based on CANoe[J].IEEE, 2008.DOI:10.1109/WCICA.2008.4594092.

[3]Miller C , Valasek C .Remote Exploitation of an Unaltered Passenger Vehicle[J]. 2015.

[4]Miller B C , Valasek C .Adventures in Automotive Networks and Control Units[J]. 2013.

[5]Jaynes M , Dantu R , Varriale R ,et al.Automating ECU Identification for Vehicle Security[C]//2016 15th IEEE International Conference on Machine Learning and Applications (ICMLA).IEEE, 2016.DOI:10.1109/ICMLA.2016.0111.

[6]Markovitz M , Wool A .Field classification, modeling and anomaly detection in unknown CAN bus networks[J].Vehicular Communications, 2017, 9:43-52.DOI:10.1016/j.vehcom.2017.02.005.

[7]Marchetti M , Stabili D .READ: Reverse Engineering of Automotive Data Frames[J].IEEE Transactions on Information Forensics and Security, 2018.DOI:10.1109/TIFS.2018.2870826.

[8]樊金娜,马欢欢,刘娇杨.基于相关性原理的CAN 信号解析方法[J].汽车工程学报,2020,10(1):13-18.

[9]关静,杨欣茹,周亚棱.基于信号相似度原理的CAN信号解析方法[J].汽车工程学报,2020,10(1):13-18.