基于WPF的汽车发动机ECU自动测试系统设计

2014-10-17 18:17石超吴昊付成伟
现代电子技术 2014年19期
关键词:自动测试

石超 吴昊 付成伟

摘 要: 随着汽车工业的发展,ECU的检测技术也在不断地进步和完善。该系统是基于WPF上位机界面的ECU自动测试系统,硬件部分是基于SCPI指令的安捷伦设备。测试的对象是汽车发送机的ECU。测试系统通过在WPF界面进行简单的操作,自动生成包含SCPI标准命令的测试命令,对整个测试系统的设备进行协调控制,实现按需配置的自动测试过程。由于WPF界面对SCPI命令的封装隐藏,使得用户不需要学习复杂的SCPI语法指令,只需要通过简单的鼠标选择就能实现对设备的控制操作,进而生成测试代码,从而实现ECU功能的自动测试,并将测试结果保存。

关键词: WPF; ECU; SCPI; 自动测试

中图分类号: TN710?34 文献标识码: A 文章编号: 1004?373X(2014)19?0105?03

Design of automotive engine′s ECU test system based on WPF

SHI Chao, WU Hao, FU Cheng?wei

(School of Physics, Jilin University, Changchun 130012, China)

Abstract: With the development of the automotive industry, ECU detection technology is continuously improved. The ECU automatic test system is based on WPF interface and its hardware part is Agilent equipment based on the SCPI command. The object of test is the automotive engine′s ECU. By performing a simple operation in WPF interface, the test system can generate the testing commands including SCPI standard commands to execute coordination control to the equipments in the system and realize automatic configuration of the testing process according to the demands. Because of SCPI command package hiding caused by WPF interface, the user does not need to learn complex SCPI command syntax, but only by simple mouse selection operation, can the equipment control operations be achieved. Thereby, the test code is generated, and the automatic test of ECU functions and the preservation of the test results are realized

Keywords: WPF; ECU; SCPI; automatic test

0 引 言

电子控制单元(Electronic Control Unit,ECU)是汽车电控系统的核心,包含微处理器(CPU)、存储器(ROM、RAM)、输入/输出接口(I/O)、模数转换器(A/D)以及整形、驱动等大规模集成电路组成。其作用是根据其内置的程序和数据以及汽车上各种传感器输入的信息进行运算、处理、判断,然后输出指令,向喷油嘴提供一定宽度的电脉冲信号,来达到控制喷油量的目的。

系统的测试对象为汽车发动机的ECU,测试系统的上位机程序是使用WPF(Windows Presentation Foundation)所设计的,具有良好的人机交互和美观的界面显示,而且实现了ECU测试的自动化。安捷伦的测试设备为ECU提供各种需要的数据。用户通过上位机程序向安捷伦设备发送SCPI指令,安捷伦设备根据这些指令向ECU发送各种测试量;ECU向上位机返回测试结果,与标准数据进行比较,从而得出ECU的状态。

1 测试系统的硬件部分

测试系统的硬件连接简图如图1所示。

下面是对硬件部分进行简要的介绍:

安捷伦34980A:多功能开关/测量单元。包含3个34952A系统控制模块(每个含有4个8 b数字I/O通道,2个模拟量输出),用于输出设定模拟量信号;3个34921A(40通道电枢多路转换器);3个34938A(20通道5AA型开关);3个34932A低频开关(双4×16电枢矩阵)。

34411A:六位半数字万用表。

33220A:20 MHz的任意波形发生器。

MSO6014A:带宽为100 MHz,4模拟通道+16逻辑混合信号示波器。

TCPA400:有源电流钳。

N6674A:60 V/35 A的直流电源,功率为2 000 W。

2 测试信号的种类

测试信号包含输入信号和输出负载驱动。输入信号包括开关量、模拟量、PWM信号;输出负载驱动包括开关电磁阀、比例电磁阀、继电器、喷油嘴、泵负载和点火线圈。

(1) 模拟量信号检测

模拟量信号检测示意图如图2所示。

工控机通过网络通信(Local Area Network,LAN)控制信号单元Agilent 34952A输出设定模拟量信号,控制矩阵开关34921A或者34932A按设定的连接方式将输入信号依次接入ECU的模拟检测通道,同时上位机通过TCP转CAN向ECU发送A/D采集指令;ECU收到采集指令后将检测结果通过CAN转TCP反馈给上位机,上位机将测试数据与测试标准进行比较,并进行报警和实时记录处理,从而实现模拟量的顺序扫描采集。

(2) 开关量信号检测

开关量信号检测示意图如图3所示。

工控机通过LAN控制矩阵开关34921A或者34932A按设定的连接方式将输入信号依次接入ECU的开关检测通道,同时上位机通过TCP转CAN向ECU发送GPIO采集指令,ECU采集信号并将检测结果通过CAN转TCP反馈给上位机;上位机将测试数据与测试标准进行比较,并进行报警和实时记录处理,从而实现开关量的顺序扫描采集。

(3) 磁电、爆震、霍尔信号以及喷油嘴点火线圈信号的检测和开关量、模拟量信号的检测同理。

3 测试系统的软件设计

软件部分是测试系统的重要组成部分,因为它呈现给用户的是最直观的界面,关系到用户对整个测试系统的使用感受。

WPF是基于.NET Framework编程语言(如C#,Visual Basic)的用户界面框架。测试系统使用的是面对对象的C#语言。WPF提供了统一的编程模式和框架,实现了界面分离设计和后台编程,提供了一种新的交互用户图形界面。

界面部分使用应用程序标记语言(EXtensible Application Markup Language,XAML)来编写。XAML语言是基于XML语言所设计的,它和HTML语言很相似,只要懂得HTML语言就可用XAML语言进行界面设计。通过XAML语言所设计的界面具有良好的人机交互性,编写的程序非常适合使用者进行ECU自动测试。

后台则使用C#语言进行编程。后台所要做的工作是进行测试文件的建立、测试模式的选择、SCPI指令的发送和测试结果的接收、显示以及存储。

测试系统的软件流程图如图4所示。

下面对流程图进行简要的文字介绍:

(1) 软件的初始化:软件模块配置初始化。

(2) 硬件初始化:Agilent各测试设备输入、输出接口初始化。

配置测试环境:包括配置测试流程及设置测试次数和周期。配置的测试次数和周期可以以XML格式的文件进行保存,便于对以后的测试提供参考。

(3) 设置配置模式:设置测试模式Mode0为空闲模式,钥匙门开关闭合,有信号输入,无驱动输出,10个循环;Mode1为怠速模式,600 r/min,20个循环;Mode2为中速模式,1 500 r/min,50个循环;Mode3为高速模式,2 800 r/min,30个循环。

(4) 配置输入信号及开关矩阵:设置模拟量输入值、PWM及正弦信号频率、各个开关状态,这些信息以SCPI指令的形式存储在XML文件中。WPF界面将存储这些信息的XML文件通过网口发送给安捷伦设备,安捷伦设备根据XML文件提取的SCPI指令产生波形、开关量以及模拟量等,然后将这些量将发送给ECU进行测试。

(5) 发送采集指令:上位机通过网口转CAN向ECU发送模拟量、开关量采集指令及示波器触发分析指令。

(6) 返回测量值:ECU接到采集指令后,通过CAN转网口向上位机发送模拟量、开关量、频率量测量值,示波器通过LAN发送波形分析数据。这些数据将与测试标准进行对比分析得出测试结果,测试结果将以.csv格式的文件进行保存。

整个测试系统中很多地方运用了XML语言。XML语言是一种与平台无关、与语言无关的数据描述语言;最大的优点是简单,而且可以描述复杂关系的数据,这也是测试系统选择XML语言作为数据交互的原因;WPF的Dataset内部的数据就是用XML语言进行描述的。XML语言在很多编程系统中是通用的,它是各种应用程序之间进行数据传输最常用的工具语言。

测试系统的通信主要采用网络通信,例如上位机与安捷伦设备之间的通信。网络通信使用Socket编程,采用异步非阻塞的方式发送和接收数据。这种模式的效率比阻塞模式的效率要高,程序也不容易死。由于ECU的通信采用CAN总线通信,所以上位机跟ECU的通信要通过网口转CAN进行转化;中间通过自制的模块进行协议转换,模块采用STM32单片机加上ENC28J60芯片;上位机接到的数据是转化的CAN包,发送的数据也将以CAN包的形式给ECU。

4 结 语

对ECU的实际测试表明,测试系统可以有效便捷地对ECU进行测试。系统的人机交互性良好,实际操作感受良好;能准确地辨别ECU是否能正常工作,并能捕捉ECU因各种原因产生的错误信号并进行记录,真正实现了ECU的自动测试。

参考文献

[1] 刘洋,付成伟,郭天娇,等.SCPI与数据库结合在ECU自动测试系统中的应用[J].现代电子技术,2012,35(15):103?105.

[2] SHARP John. Visual C# 2008从入门到精通[M].北京:清华大学出版社,2009.

[3] 安博教育集团.XML程序开发[M].北京:电子工业出版社,2012.

[4] 石义贤,杨维俊.电控发动机结构原理及典型故障案例[M].北京:机械工业出版社,2009.

[5] PETZOLD Charles. Programming microsoft windows with C# [M].北京:北京世界图书出版公司,2001.

[6] ANDERSON Chris. WPF核心技术[M].北京:人民邮电出版社,2009.

(2) 开关量信号检测

开关量信号检测示意图如图3所示。

工控机通过LAN控制矩阵开关34921A或者34932A按设定的连接方式将输入信号依次接入ECU的开关检测通道,同时上位机通过TCP转CAN向ECU发送GPIO采集指令,ECU采集信号并将检测结果通过CAN转TCP反馈给上位机;上位机将测试数据与测试标准进行比较,并进行报警和实时记录处理,从而实现开关量的顺序扫描采集。

(3) 磁电、爆震、霍尔信号以及喷油嘴点火线圈信号的检测和开关量、模拟量信号的检测同理。

3 测试系统的软件设计

软件部分是测试系统的重要组成部分,因为它呈现给用户的是最直观的界面,关系到用户对整个测试系统的使用感受。

WPF是基于.NET Framework编程语言(如C#,Visual Basic)的用户界面框架。测试系统使用的是面对对象的C#语言。WPF提供了统一的编程模式和框架,实现了界面分离设计和后台编程,提供了一种新的交互用户图形界面。

界面部分使用应用程序标记语言(EXtensible Application Markup Language,XAML)来编写。XAML语言是基于XML语言所设计的,它和HTML语言很相似,只要懂得HTML语言就可用XAML语言进行界面设计。通过XAML语言所设计的界面具有良好的人机交互性,编写的程序非常适合使用者进行ECU自动测试。

后台则使用C#语言进行编程。后台所要做的工作是进行测试文件的建立、测试模式的选择、SCPI指令的发送和测试结果的接收、显示以及存储。

测试系统的软件流程图如图4所示。

下面对流程图进行简要的文字介绍:

(1) 软件的初始化:软件模块配置初始化。

(2) 硬件初始化:Agilent各测试设备输入、输出接口初始化。

配置测试环境:包括配置测试流程及设置测试次数和周期。配置的测试次数和周期可以以XML格式的文件进行保存,便于对以后的测试提供参考。

(3) 设置配置模式:设置测试模式Mode0为空闲模式,钥匙门开关闭合,有信号输入,无驱动输出,10个循环;Mode1为怠速模式,600 r/min,20个循环;Mode2为中速模式,1 500 r/min,50个循环;Mode3为高速模式,2 800 r/min,30个循环。

(4) 配置输入信号及开关矩阵:设置模拟量输入值、PWM及正弦信号频率、各个开关状态,这些信息以SCPI指令的形式存储在XML文件中。WPF界面将存储这些信息的XML文件通过网口发送给安捷伦设备,安捷伦设备根据XML文件提取的SCPI指令产生波形、开关量以及模拟量等,然后将这些量将发送给ECU进行测试。

(5) 发送采集指令:上位机通过网口转CAN向ECU发送模拟量、开关量采集指令及示波器触发分析指令。

(6) 返回测量值:ECU接到采集指令后,通过CAN转网口向上位机发送模拟量、开关量、频率量测量值,示波器通过LAN发送波形分析数据。这些数据将与测试标准进行对比分析得出测试结果,测试结果将以.csv格式的文件进行保存。

整个测试系统中很多地方运用了XML语言。XML语言是一种与平台无关、与语言无关的数据描述语言;最大的优点是简单,而且可以描述复杂关系的数据,这也是测试系统选择XML语言作为数据交互的原因;WPF的Dataset内部的数据就是用XML语言进行描述的。XML语言在很多编程系统中是通用的,它是各种应用程序之间进行数据传输最常用的工具语言。

测试系统的通信主要采用网络通信,例如上位机与安捷伦设备之间的通信。网络通信使用Socket编程,采用异步非阻塞的方式发送和接收数据。这种模式的效率比阻塞模式的效率要高,程序也不容易死。由于ECU的通信采用CAN总线通信,所以上位机跟ECU的通信要通过网口转CAN进行转化;中间通过自制的模块进行协议转换,模块采用STM32单片机加上ENC28J60芯片;上位机接到的数据是转化的CAN包,发送的数据也将以CAN包的形式给ECU。

4 结 语

对ECU的实际测试表明,测试系统可以有效便捷地对ECU进行测试。系统的人机交互性良好,实际操作感受良好;能准确地辨别ECU是否能正常工作,并能捕捉ECU因各种原因产生的错误信号并进行记录,真正实现了ECU的自动测试。

参考文献

[1] 刘洋,付成伟,郭天娇,等.SCPI与数据库结合在ECU自动测试系统中的应用[J].现代电子技术,2012,35(15):103?105.

[2] SHARP John. Visual C# 2008从入门到精通[M].北京:清华大学出版社,2009.

[3] 安博教育集团.XML程序开发[M].北京:电子工业出版社,2012.

[4] 石义贤,杨维俊.电控发动机结构原理及典型故障案例[M].北京:机械工业出版社,2009.

[5] PETZOLD Charles. Programming microsoft windows with C# [M].北京:北京世界图书出版公司,2001.

[6] ANDERSON Chris. WPF核心技术[M].北京:人民邮电出版社,2009.

(2) 开关量信号检测

开关量信号检测示意图如图3所示。

工控机通过LAN控制矩阵开关34921A或者34932A按设定的连接方式将输入信号依次接入ECU的开关检测通道,同时上位机通过TCP转CAN向ECU发送GPIO采集指令,ECU采集信号并将检测结果通过CAN转TCP反馈给上位机;上位机将测试数据与测试标准进行比较,并进行报警和实时记录处理,从而实现开关量的顺序扫描采集。

(3) 磁电、爆震、霍尔信号以及喷油嘴点火线圈信号的检测和开关量、模拟量信号的检测同理。

3 测试系统的软件设计

软件部分是测试系统的重要组成部分,因为它呈现给用户的是最直观的界面,关系到用户对整个测试系统的使用感受。

WPF是基于.NET Framework编程语言(如C#,Visual Basic)的用户界面框架。测试系统使用的是面对对象的C#语言。WPF提供了统一的编程模式和框架,实现了界面分离设计和后台编程,提供了一种新的交互用户图形界面。

界面部分使用应用程序标记语言(EXtensible Application Markup Language,XAML)来编写。XAML语言是基于XML语言所设计的,它和HTML语言很相似,只要懂得HTML语言就可用XAML语言进行界面设计。通过XAML语言所设计的界面具有良好的人机交互性,编写的程序非常适合使用者进行ECU自动测试。

后台则使用C#语言进行编程。后台所要做的工作是进行测试文件的建立、测试模式的选择、SCPI指令的发送和测试结果的接收、显示以及存储。

测试系统的软件流程图如图4所示。

下面对流程图进行简要的文字介绍:

(1) 软件的初始化:软件模块配置初始化。

(2) 硬件初始化:Agilent各测试设备输入、输出接口初始化。

配置测试环境:包括配置测试流程及设置测试次数和周期。配置的测试次数和周期可以以XML格式的文件进行保存,便于对以后的测试提供参考。

(3) 设置配置模式:设置测试模式Mode0为空闲模式,钥匙门开关闭合,有信号输入,无驱动输出,10个循环;Mode1为怠速模式,600 r/min,20个循环;Mode2为中速模式,1 500 r/min,50个循环;Mode3为高速模式,2 800 r/min,30个循环。

(4) 配置输入信号及开关矩阵:设置模拟量输入值、PWM及正弦信号频率、各个开关状态,这些信息以SCPI指令的形式存储在XML文件中。WPF界面将存储这些信息的XML文件通过网口发送给安捷伦设备,安捷伦设备根据XML文件提取的SCPI指令产生波形、开关量以及模拟量等,然后将这些量将发送给ECU进行测试。

(5) 发送采集指令:上位机通过网口转CAN向ECU发送模拟量、开关量采集指令及示波器触发分析指令。

(6) 返回测量值:ECU接到采集指令后,通过CAN转网口向上位机发送模拟量、开关量、频率量测量值,示波器通过LAN发送波形分析数据。这些数据将与测试标准进行对比分析得出测试结果,测试结果将以.csv格式的文件进行保存。

整个测试系统中很多地方运用了XML语言。XML语言是一种与平台无关、与语言无关的数据描述语言;最大的优点是简单,而且可以描述复杂关系的数据,这也是测试系统选择XML语言作为数据交互的原因;WPF的Dataset内部的数据就是用XML语言进行描述的。XML语言在很多编程系统中是通用的,它是各种应用程序之间进行数据传输最常用的工具语言。

测试系统的通信主要采用网络通信,例如上位机与安捷伦设备之间的通信。网络通信使用Socket编程,采用异步非阻塞的方式发送和接收数据。这种模式的效率比阻塞模式的效率要高,程序也不容易死。由于ECU的通信采用CAN总线通信,所以上位机跟ECU的通信要通过网口转CAN进行转化;中间通过自制的模块进行协议转换,模块采用STM32单片机加上ENC28J60芯片;上位机接到的数据是转化的CAN包,发送的数据也将以CAN包的形式给ECU。

4 结 语

对ECU的实际测试表明,测试系统可以有效便捷地对ECU进行测试。系统的人机交互性良好,实际操作感受良好;能准确地辨别ECU是否能正常工作,并能捕捉ECU因各种原因产生的错误信号并进行记录,真正实现了ECU的自动测试。

参考文献

[1] 刘洋,付成伟,郭天娇,等.SCPI与数据库结合在ECU自动测试系统中的应用[J].现代电子技术,2012,35(15):103?105.

[2] SHARP John. Visual C# 2008从入门到精通[M].北京:清华大学出版社,2009.

[3] 安博教育集团.XML程序开发[M].北京:电子工业出版社,2012.

[4] 石义贤,杨维俊.电控发动机结构原理及典型故障案例[M].北京:机械工业出版社,2009.

[5] PETZOLD Charles. Programming microsoft windows with C# [M].北京:北京世界图书出版公司,2001.

[6] ANDERSON Chris. WPF核心技术[M].北京:人民邮电出版社,2009.

猜你喜欢
自动测试
基于VXI总线的实验箱自动测试装置设计
JXG-50S型相敏轨道电路接收器自动测试台
关于电子线路自动测试技术分析
可并行测试的电磁兼容自动测试系统的实现
关于某型雷达自动测试系统的几点认识和建议
DCOM在混合总线自动测试系统的应用
片式元器件自动测试系统的设计
数字电视机顶盒软件自动测试系统的开发及应用
某型制导武器通用自动测试系统方案设计
面向射频系统级封装的自动测试系统