汽车PEPS系统诊断测试的应用与研究

时间:2022-05-18 03:49:51

汽车PEPS系统诊断测试的应用与研究

摘 要:随着汽车技术的不断提高,汽车PEPS系统也对其诊断测试结果的速度、准确性、连续性提出了更高的要求,利用Vector公司开发的CANoe总线仿真软件,对各种车身电子模块进行模拟,建立具有改进AES算法认证加密的汽车PEPS系统的测试仿真环境。实际测试结果表明,该系统不仅可以在虚拟节点下进行模拟仿真测试,也可以在真实节点下进行实时测试,灵活有效地反映出汽车PEPS系统中各种电子模块的总线通信情况,同时保证了故障诊断测试连续性和有效性。

关键词:CANoe;PEPS系统;实时测试;诊断测试;AES算法

中图分类号:TP206 文献标志码: A 文章编号:1005-2550(2014)02-0013-05

近年来随着汽车电子技术迅猛发展,汽车无钥匙进入和启动(Passive Entry Passive Start)系统同样得到了广泛的应用,PEPS系统作为整个汽车电子技术的核心之一,在汽车技术不断迅速发展技术背景下,对其诊断测试系统提出了更高的要求,在汽车测试诊断过程中PEPS系统需要和汽车内部其他电子系统进行大量的数据信息交流的同时构建出一个完整的系统用来模拟汽车电子单元的其他系统,在测试过程中测试方式过于复杂,汽车电子单元的异常模拟复杂度较高,都在一定程度上限制了PEPS诊断系统的应用与拓展。本文利用Vector公司开发的总线仿真工具CANoe软件,开发出具有AES加密认证算法的汽车PEPS系统的测试仿真环境,为虚拟汽车电子系统测试系统提供了一个可靠的平台,该系统具有极大的灵活性。

1 PEPS系统及CANoe开发工具

汽车PEPS系统即:汽车无钥匙进入和启动(Passive Entry Passive Start)系统,是采用先进的无线射频识别(RFID)技术,通过自动匹配检测车主是否携带相应汽车的有效钥匙,从而自动完成汽车的解锁上锁等一系列操作流程。汽车PEPS系统不需要拿出车钥匙对汽车进行解锁或上锁,当车主通过手握汽车门把手时,车内的天线会在车内自动搜索有效钥匙。确认钥匙在车内之后,就会对电子转向柱锁模块(ESCL)及发动机引擎控制模块(EMS)分别进行解锁认证和启动认证,当认证通过后就可以正常启动车辆。

在汽车PEPS系统不断完善和复杂化程度不断加深的过程中,车身电子控制模块本身更加精细,模块内部之间分工愈加明确,都对汽车CAN总线通信网络提出更高的要求,汽车PEPS系统故障诊断测试的重要性也日益凸显。

利用CANoe软件,对汽车PEPS系统的各种电子模块进行系统仿真。该仿真系统能准确的显示和分析汽车PEPS系统的通信情况,给测试人员提供很大便利。

CANoe软件是德国Vector公司开发的一款汽车总线开发工具。它具有从功能需求分析到系统功能实现的整个系统的设计开发、仿真测试和评估等功能,本系统采用CANoe7.6,利用CANoe7.6自带的数据库管理功能CANdb++ editor、CAPL Browser以及Panel Designer模块可以根据用户需求设计出所需内容。包括控制面板的设计,报文中信号和消息的编辑、发送和接收条件等。CANoe软件的仿真功能非常强大,它不仅可以对基于全部虚拟节点的总线仿真,真实物理节点与虚拟节点相结合的半实物通信仿真,还可以对全真实物理总线的通信进行实时分析与监控测试。通过CANoe软件可以查看通信过程中的报文,而且可以对报文进行选择性过滤,通过查看显示的报文信息来掌握系统的运行状况等。

2 PEPS系统仿真环境的建立

汽车PEPS系统的网络结构模型有很多,系统结构模型拓扑图中包括车身控制模块(BCM),车轮防抱死模块(ABS),电子转向柱锁模块(ESCL),发动机引擎控制模块(EMS),仪表模块(MIU),挡位控制模块(TCU),安全气囊模块(SDM)等ECU模块。建立的汽车PEPS系统拓扑图如图1所示。该拓扑图的应用是在全仿真模式下进行的,如果需要在真实节点下进行测试,将相应的仿真模块禁掉(Block)即可。

图1 汽车PEPS系统拓扑图

2.1 程序设计

在CANoe软件的仿真环境中,需要用CAPL语言对事件的触发和响应进行编程,CAPL语言是一种类C语言,在各电子模块的编程设计过程中,它的触发条件有很多种,包括系统变量改变,总线消息发送和接收,环境变量变化,键盘输入或者定时器溢出等。利用CANoe软件CAPL语言程序,可以对仿真系统中各个节点进行编程设计。

电子转向柱锁模块内部的CAPL语言设计如图2所示。在message 0x45消息中,如果环境变量evTEST_ESCL_Auth_EN触发时,当message 0x45消息中的信号PEPS_SUB_ID值为0x01,获取环境变量中evTEST_ESCL_Auth_T1的值,同时设置定时器ESCL_Auth_t1的值为环境变量evTEST_ESCL_Auth_T1的值,如果message 0x45消息中的信号PEPS_SUB_ID值为0x02,获取环境变量evTEST_ESCL_Auth_T2的值,设置定时器ESCL_Auth_t2的值为环境变量evTEST_ESCL_Auth_T2的值。

图2 ESCL节点的编程设计

2.2 面板设计

为了使仿真效果更加形象直观,CANoe软件的仿真环境提供了一些仿真图形界面。如图3所示的汽车上锁解锁控制面板,图中显示了Driver Door和Passenger Door两侧门是开状态,而Rear Left和Rear right两侧门是关闭状态,中控锁是开状态,后备箱是关状态。在测试过程中模拟汽车上锁解锁过程时,利用这个控制面板可以形象的模拟出汽车中控上锁、解锁的过程,以及前门、后门、后备箱的开关状态。通过改变面板界面的图形而改变相应面板对应的环境变量的值,主观地对仿真条件进行配置,使测试人员可以灵活高效地进行诊断测试。

图3 汽车上锁解锁控制面板

2.3 查看报文

除了通过操作控制面板了解车身电子模块的状态,还可以通过接收和发送消息,根据报文的ID来查看报文,从而详细了解车身电子模块的状态。不管是正常的报文还是有错误故障信息的报文,都会详细地显示出相应的信息,使测试人员迅速了解系统状态。实际表明,测试人员在测试过程中主要是通过查看报文来进行故障诊断测试。

3 PEPS系统的认证算法

PEPS系统与传统的启动系统不同之处主要体现在汽车的门把手和启动按钮两部分上。因此,PEPS系统的认证算法的作用主要表现在汽车门把手和启动按钮的触发与响应的过程中。PEPS系统的认证算法采用的是在全世界广泛使用的,加密安全性极高的AES算法。

3.1 改进的AES算法

AES算法是源于Daemen和Rijmen设计的Rijndael密码算法。AES 算法的数据分组的长度为128 bit,密钥长度有三种128 bit、196 bit和256 bit。AES的加密过程可以分为3个步骤:初始密钥加法,Nr-1 次轮变换和结尾轮变换。

本文研究的PEPS系统的认证算法是一种改进的AES算法。该算法主要应用在PEPS系统的认证过程中,主要有加密钥和轮变换两步,省去了算法解密的过程,采用的是随机加密的方法,从而使算法更加快速和可靠。在认证过程中,如果加密算法相同,所需认证的双方加密后的数据也是相同的,在认证时AES加密认证的过程如下:

第一步:加密钥。

首先生成一个8位的随机数:

Byte0 Byte1 Byte2 Byte3

Byte4 Byte5 Byte6 Byte7

取其中的第二位到第五位四位B(x):

Byte1 Byte2 Byte3 Byte4

然后与上12位的固定指令码,生成一个16位的密钥,密钥字的个数Nk=4,数据块中字的个数Nb=4,与其对应的算法的轮数是Nr=10。

第二步:轮变换的操作一般都比较复杂,包括以下四步。

Round ()

{

ByteSub ();

ShiftRow ();

MisColumn ();

AddRoundKey ()

}

S盒变换 (ByteSub),是对数据进行一种不可逆的非线性置换;行移位 (ShiftRow),是以“行”为单位的线性变换,第一行不变,其它行依次进行循环移动,位移量的大小与加密块中字的个数Nb有关,使其与一简单的矩阵相乘;列混合 (MisColumn),运算结果相对来说比较复杂,与一较复杂矩阵相乘得到另一矩阵;加循环密钥 (AddRoundKey),是将循环密钥与上层的结果进行异或运算,相乘得到,然后进行128位的加密操作。

3.2 PEPS系统AES算法的认证过程

图4 PEPS系统中AES算法认证过程流程图

PEPS系统启动时,需要分别与电子转向柱锁模块 (ESCL) 及发动机控制模块 (EMS) 之间进行认证,而在CANoe仿真环境条件下,上述模块间的认证算法的编程部分都是设计在相应模块内部的。当汽车PEPS系统启动的有效钥匙在汽车认证范围内时,按启动按钮启动汽车,汽车PEPS系统首先需要对电子转向柱锁模块(ESCL)进行认证,汽车PEPS系统首先发一帧认证消息到汽车CAN总线上,电子转向柱锁模块(ESCL)接收到这帧认证消息后生成一帧随机数,并将这帧随机数发到CAN总线上,汽车PEPS系统从CAN总线上接收这帧随机数,汽车PEPS系统与电子转向柱锁模块(ESCL)都经过相应的AES加密算法加密之后,再对二者的加密结果进行对比,如果AES加密算法相同,则计算结果相同,认证成功;否则认证失败。EMS模块认证过程同样如此。认证过程的具体流程如图4所示。

4 PEPS系统故障诊断测试

在测试过程中,当有故障或错误出现时,不管是系统故障还是车身电子模块的故障都会在报文中详细地显示出来。通过报文的ID可以查找并迅速查看相应的报文了解诊断测试情况。

PEPS系统的诊断测试主要体现在门把手的PE(Passive Entry)和PS(Passive Start)及智能钥匙的RKE(Remote Keyless Entry)部分的测试。PE测试的报文实例包括Lock、Unlock的报文显示,如图5所示。PS测试报文实例如图6所示。RKE测试报文实例如图7所示。如果通信过程中出现故障、发送请求错误、请求的条件和处理的结果不正确等都会在报文中显示,错误信息在报文中会以红色字体显示,方便测试人员及时了解故障情况,如图8 故障保文显示。

a) Lock报文

b) Unlock报文

图5 PE中Lock、Unlock报文显示

a) Start failure: No UID Found

b) Start State

图6 Ps的报文显示

a) Lock Cmd

b) Unlock Cmd

c) Tailgate release Cmd

d) Panic Cmd

图7 RKE的报文显示

图8 故障报文显示

5 结论

基于CANoe软件建立的汽车PEPS系统诊断测试的仿真环境,能真实有效地模拟出车载网络的通信情况,对车载总线上的诊断信息进行快速精准的采集,分析和管理,不仅大大降低了测试成本,还提高了系统测试的准确性,在汽车PEPS系统发展和完善过程中起到了非常重要的作用。

参考文献:

[1]Konrad Etschberger. Controller Area Network[M]. Weingarten: IXXAT Automation GmbH, 2000.

[2]Vector Informatik GmbH. CANoe Installation Guide,CANoe User Guide, CANdb++ User Guide[M]. Eberdingen: SATZTEAM Fotosatz & Neue Medien Gmbh, 2002.

[3]黎善斌.基于网络控制系统的CAN实时性能研究[J].化工自动化及仪表,2003,30(4):1-6.

[4]朱彬,刘新宁.基于AMBA总线的AES算法设计[J].信息化研究,2009(5):47-50.

[5]魏嘉银,吕虹,秦永彬.一种基于AES算法的通信信息加密传输方案[J].计算机与数字工程,2011(10):121-124.

上一篇:思想政治工作视野下的青年社会心态培育 下一篇:基于耐撞性的多学科近似模型预测精度研究