石超 吳昊 付成偉
摘 要: 隨著汽車工業的發展,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.