0 前言
随着汽车电子产品的不断发展,UDS 诊断已经成为汽车上所有ECU 进行车型配置、数据写入、故障诊断的主流方式。UDS 诊断基于ISO-14229协议,其最大发送数据容量达到4095字节;而传统CAN
通信是基于ISO-11898协议,传统的CAN 数据链路层最大仅能够支持8个字节。以车辆配置码(以下简称VIN 码)为例,其数据长度是17字节,如果需要将该17个字节全部通过CAN 总线传输,则至少需要3帧CAN 报文,才能传输完VIN 码的全部数据。那么,如何安全、有效地将多个字节通过传统CAN 总线进行传输,由此诞生了ISO-15765-2协议。该协议作为车辆诊断通信的一个组成部分,它规范了“传输协议与网络层服务”。在整车厂项目开发过程中,对于网络层(Transport Protocol Layer,以下简称为TP 层)的时间参数,需要整车厂或者零部件供应商给出明确的要求,ISO-15765-2中对网络层的时间参数定义如表1所示[1],各整车厂可在此基础上优化参数,以适应多样化的需求。对应的数据流发送过程如图1所示,图1中,FF 表示首帧,即First frame ;FC 表示流控帧,即Flow control ;CF 表示连续帧,即Consecutive frame。发送方一般指电脑上位机或诊断仪,而接收方指被测设备。相邻连续帧的最小时间间隔(STmin)及每个数据包的块大小(BS)如表2所示。对于应用程序,由于诊断数据不会很多,所以STmin 时间定义相对宽泛;
而在引导程序中,主要目的是升级应用程序,此时会通过诊断协议发送大量的数据帧,为了节省升级时间,会把STmin 时间定义比较小,一般为0,表示最快速度,即没有最小相邻时间间隔要求。
图1 网络层定时参数示意图
表1 网络层定时参数表protocol layer meets the requirements, an automatic test platform is designed
on the basis of CANoe software, which is used to test transport protocol layer of UDS diagnostics. Through the actual project verification of the vehicle manufacturer, the designed transport protocol layer automatic test platform meets the requirements, passed the test certification, and is recognized by the manufacturer. Keywords: UDS diagnostics; CANoe; Transport Protocol Layer
测试到60ms,对于STmin大于60ms,则没有涉及;对于BS的测试,仅测试BS为1和8的情况,其它数值也没有进行测试。此外,如果想实现这种自动化测试,需要购买Vector公司的CANdelastudio,Diva等软件,价格较高,如果能够在已有CANoe软件的基础上自主开发一种简单方便的测试方法,则可以节约一笔费用。本文主要依据Vector公司的CANoe软件和VN1640硬件,自主开发一套TP层自动与手动相结合的测试平台。
1 软件设计
本设计方法以CANoe软件为基础,首先在Panel Designer 中设计上位机界面,然后在CAPL Browser中编写相关的代码[2]。TP层的测试项以Diva的全部测试项(共37项)为基础,在此基础上,针对Diva测试简化的内容,进行测试补充。自主编写的上位机软件可以实现每项单独测试,也可以执行所有测试内容的自动化测试,测试结果可实时显示在提示窗口上,方便测试工程师快速上手使用。
首先打开CANoe软件,新建一个TP层测试的工程,添加数据库文件,该数据库文件中已包含了窗口设
计需要用到的全部环境变量,然后打开Panel Designer窗口,在窗口中添加测试按钮,TP层测试共37项,所以共需要添加38个按钮(37个单独测试项按钮和一个自动测试按钮),为每个按钮关联对应的环境变量,比如第一个测试项是中断发送,那么将数据库文件中的中断发送的环境变量和该按钮相关联,以此类推。编辑完成后的上位机界面如图2所示。
接下来需要为每个按钮控件编写软件,我们以第11项:STmin时间测试为例,来说明编写的过程。在ISO-15765-2中,对于STmin时间参数,是指当ECU发送连续帧时,相邻连续帧
图2 UDS诊断TP层自动化测试平台
variables
message 0x781Diag_Phys_Request;
message 0x791Diag_Response;
mstimer TP11_timer,TP11_timer2;
dword t_TP11_1,t_TP11_2, TP11_Flag,TP11_counter, TP11_counter2,TP11_counter3;
}
voidsend_message(byte b1,byte b2,byte b3,byte b4,byte b5,byte b6,byte b7,byte b8)
{
Diag_Phys_Request.DLC = 8;
Diag_Phys_Request.byte(0) = b1;
Diag_Phys_Request.byte(1) = b2;
Diag_Phys_Request.byte(2) = b3;
Diag_Phys_Request.byte(3) = b4;
output(Diag_Phys_Request);
}
onenvVar Env_TP11
{
if (getvalue(this)){
send_message(0x03,0x22,0xF1,0x70,0,0,0,0);
TP11_Flag = 1;
settimer(TP11_timer,5);
}
}
timeout on t2 timeron message Diag_Response
{
if((this.byte(0)==0x10) && (this.byte(2)==0x62)) {
if(TP11_Flag == 1){
settimer(TP11_timer2,50);}}
ontimer TP11_timer2{
settimer(TP11_timer2,50); TP11_counter++;if (TP11_counter >20){
if (data_number_counter>= data_number){data_number_counter = 0;Base_number = 0x20;
if(TP11_counter2 == TP11_counter3){
putvaluetocontrol(“TPLayer_Test”,”Output1”,” TestCase11 Result :被测ECU 按照测试设备发送的STmin 的要求发送续帧,测试通过.\n”);
TP11_counter = 0;}else{
putvaluetocontrol(“TPLayer_Test”,”Output1”, ”TestCase11 Result :被测ECU 没有按照测试设备发送的STmin 的要求发送续帧,测试失败.\n”)
TP11_counter = 0;}
TP11_counter2 = 0; TP11_counter3 = 0;canceltimer(TP11_timer2);}}
图3 测试截图
完成上述界面设计与代码开发后,需要对开发的测试上位机进行功能验证,以验证其能否达到测试要求。仍以上述提到的汽车仪表为例,进行测试验证。首先将汽车仪表按照接口定义的要求进行正确的接线,然后给仪表上电,
通电后,仪表即可正常工作,此时,打开准备好的测试工程,点击
图4 UDS 诊断TP 层测试数据截图
(下转第73页)
有生产成本等等的挑战。有了完善的追溯系统,相关的监管部门管理监督起来也比之前更加便利了,对于市场监督也会有很大的进步。
表1 食品信息展示表
食品来源
生产工厂厂名
工厂地址详细工厂地址
工厂厂长厂长信息
品管负责人品管负责人信息
生产日期年月日
感官及微生物执行标准(符合****规定)
净含量执行标准(符合《***规则》)
管理体系认证通过****管理体系认证
[2]廖祎玮,郭乃文,孟圆圆,严林涛,贺敬.基于物联网的
食品安全信息追溯系统[J].哈尔滨师范大学自然科学
学报,2017,33(03):25-29.
[3]胡迪.国家食品安全追溯平台的建立与EPCIS追溯事件
解读[J].食品安全导刊,2016(31):60-63.
[4]李金华,凌捷,何晓桃,谢锐.一类食品质量安全追溯系统
的设计与实现[J].计算机系统应用,2009,18(01):5-8.
[5]宗峰.基于无线传感器网络的污水监测系统设计[J].中国
沼气,2017,35(06):37-42.
CANoe的Start按钮,即开始运行软件,然后打开本文设计的上位机界面,如图2所示,如果是单独测试每个用例,则单独单击相应的按钮,如果是想一次性测试完全部用例,则点击“AutoTest Start”按钮。当前测试的步骤、测试结果,会在另一个上位机界面进行显示,如图3所示[3]。左侧指示灯表示测
试项测试结果,绿表示该测试项测试通过,红表示该测试项测试失败。通过图3可以看出,第28项测试失败,而其余项都测试通过。测试过程中发送的所有数据,都会在CANoe 的trace窗口中实时显示,如图4所示。
3 结论
通过从上述测试数据进行分析后的结果中可以看到,利用CANoe自带的二次开发功能,设计出的UDS诊断TP层自动化测试平台,不仅操作简单,而且测试结果简单明了,其测试的内容不仅涵盖了Diva测试TP层中的全部内容,而且细分了测试条件,丰富了部分测试内容,达到了预期的目标。
参考文献
[1]ISO-15765-2: Road vehicles-Diagnostics on Controller
A r e a N e t w o r k s(C A N)-P a r t2:N e t w o r k l a y e r
services[S].2004,29-31.
[2]龚存昊,段金亮,初洪超:基于CANoe的汽车诊断工具
开发及应用[J].汽车电器,2016,59-62.
[3]ISO-14229-1: Road vehicles-Unified diagnostic
s e r v i c e s(U D S)-P a r t1:S p e c i f i c a t i o n a n d
requirements[S].2013,106-108.
作者简介
惠志洲,工学硕士,中级工程师,研究方向为CAN通讯、OSEK网络管理、AUTOSAR,UDS诊断等。
(上接第67页)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论