鄒慶勇,龔元明
(上海工程技術(shù)大學(xué) 機(jī)械與汽車工程學(xué)院,上海 201620)
環(huán)境污染、能源短缺問(wèn)題越來(lái)越嚴(yán)重,電動(dòng)汽車由于在節(jié)能、環(huán)保方面的突出優(yōu)勢(shì)越來(lái)越得到人們的青睞,傳統(tǒng)車企和新興車企都開(kāi)始將電動(dòng)汽車作為未來(lái)發(fā)展的方向。然而,作為電動(dòng)汽車控制中心的整車控制器功能復(fù)雜、安全性要求嚴(yán)格,在軟件開(kāi)發(fā)的過(guò)程中涉及大量的測(cè)試工作,因此開(kāi)發(fā)周期較長(zhǎng)、成本高。為了提高汽車控制器的開(kāi)發(fā)效率,目前,比較常用的方式是采用硬件在環(huán),通過(guò)硬件在環(huán)仿真測(cè)試平臺(tái)對(duì)控制器不斷測(cè)試優(yōu)化,但僅僅依賴傳統(tǒng)的硬件在環(huán)仿真測(cè)試平臺(tái),測(cè)試用例的創(chuàng)建和測(cè)試數(shù)據(jù)的分析等測(cè)試工作往往只能由現(xiàn)場(chǎng)測(cè)試人員完成,難以實(shí)現(xiàn)更多的人員快速參與到汽車控制器的開(kāi)發(fā)工作中。如果采取遠(yuǎn)程測(cè)試的方案,則會(huì)更大發(fā)揮整車控制器硬件在環(huán)測(cè)試的優(yōu)越性,提高整車控制器的開(kāi)發(fā)效率。因此,本文提出了一種基于嵌入式Linux的整車控制器硬件在環(huán)遠(yuǎn)程自動(dòng)測(cè)試系統(tǒng),主要包括遠(yuǎn)程診斷測(cè)試中心和現(xiàn)場(chǎng)測(cè)試終端,現(xiàn)場(chǎng)測(cè)試終端設(shè)備通過(guò)OBD接口與硬件在環(huán)仿真平臺(tái)相連。通過(guò)該系統(tǒng),遠(yuǎn)程測(cè)試人員可以遠(yuǎn)程創(chuàng)建診斷測(cè)試用例、開(kāi)展測(cè)試。
該遠(yuǎn)程測(cè)試系統(tǒng)由遠(yuǎn)程客戶端、云端服務(wù)器和現(xiàn)場(chǎng)測(cè)試終端構(gòu)成。遠(yuǎn)程客戶端通過(guò)與測(cè)試人員的交互實(shí)現(xiàn)所需測(cè)試內(nèi)容、CAN通訊配置信息的輸入以及測(cè)試結(jié)果的顯示。云端服務(wù)器程序分為網(wǎng)站后端程序和與現(xiàn)場(chǎng)測(cè)試終端通信的TCP服務(wù)器程序,網(wǎng)站后端程序用于存儲(chǔ)測(cè)試人員的測(cè)試命令和測(cè)試內(nèi)容,TCP服務(wù)器程序用于及時(shí)監(jiān)測(cè)診斷測(cè)試指令,做出響應(yīng)、接收現(xiàn)場(chǎng)測(cè)試終端的測(cè)試結(jié)果并存儲(chǔ)于數(shù)據(jù)庫(kù)中?,F(xiàn)場(chǎng)測(cè)試終端用于接收測(cè)試內(nèi)容,根據(jù)UDS協(xié)議和CAN通訊配置參數(shù)構(gòu)建診斷測(cè)試CAN報(bào)文,通過(guò)與硬件在環(huán)仿真平臺(tái)進(jìn)行數(shù)據(jù)的交互從而實(shí)現(xiàn)對(duì)整車控制器的診斷測(cè)試。
硬件在環(huán)遠(yuǎn)程測(cè)試系統(tǒng)的整體結(jié)構(gòu)如圖1所示。
圖1 硬件在環(huán)遠(yuǎn)程測(cè)試系統(tǒng)整體結(jié)構(gòu)圖Fig.1 The overall structure of the hardware in-the-loop remote test system
硬件在環(huán)仿真系統(tǒng)選用dSPACE平臺(tái),德國(guó)dSPACE公司研發(fā)的dSPACE實(shí)時(shí)仿真系統(tǒng)準(zhǔn)確穩(wěn)定、操作簡(jiǎn)便、功能強(qiáng)大。該整車控制器硬件在環(huán)仿真測(cè)試系統(tǒng)的主要功能是通過(guò)仿真模型等模擬整車控制器的運(yùn)行環(huán)境,接收控制器的輸出信號(hào),為控制器提供所需的輸入信號(hào)。硬件在環(huán)仿真平臺(tái)有OBD接口,現(xiàn)場(chǎng)測(cè)試終端可以通過(guò)CAN轉(zhuǎn)OBD接入整車控制器硬件在環(huán)仿真平臺(tái),實(shí)現(xiàn)與仿真平臺(tái)的數(shù)據(jù)交互。
為了實(shí)現(xiàn)對(duì)硬件在環(huán)仿真平臺(tái)中的整車控制器的診斷測(cè)試,通過(guò)CAN總線接入到仿真平臺(tái)中整車控制系統(tǒng)中,通過(guò)CANID選擇整車控制器進(jìn)行測(cè)試。由于現(xiàn)場(chǎng)測(cè)試終端需要和云端TCP服務(wù)器程序通訊,而且需要較快的通信速度,所以現(xiàn)場(chǎng)測(cè)試終端選用以太網(wǎng)模塊。現(xiàn)場(chǎng)測(cè)試終端需要提供圖形交互界面,便于用戶操作,實(shí)現(xiàn)與云端服務(wù)器的連接、測(cè)試狀態(tài)及測(cè)試結(jié)果,故需要觸摸顯示屏。
另外,由于該遠(yuǎn)程測(cè)試系統(tǒng)要求具有較高測(cè)試精度,現(xiàn)場(chǎng)測(cè)試終端需要具備較強(qiáng)的處理能力以便與控制器快速通信、數(shù)據(jù)的解析處理及上傳測(cè)試結(jié)果。為了支持復(fù)雜的應(yīng)用程序,現(xiàn)場(chǎng)測(cè)試終端選用嵌入式Linux操作系統(tǒng),其硬件平臺(tái)的結(jié)構(gòu)設(shè)計(jì)如圖2所示。
圖2 現(xiàn)場(chǎng)測(cè)試終端硬件平臺(tái)的結(jié)構(gòu)設(shè)計(jì)Fig.2 The structure design of field test terminal hardware platform
2.1.1 嵌入式微處理器的選擇
基于Cortex-A7內(nèi)核的MCIMX6Y2CVM05AB處理器是恩智浦公司推出的一款高性能的工業(yè)級(jí)處理器,該處理器的主頻高達(dá)800 MHz,帶有2個(gè)FlexCAN、1個(gè)RGB_LCD控制器、兩個(gè)10/100 M以太網(wǎng)MAC控制器等,還提供多種內(nèi)存接口,包括DDR3、NAND flash、EMMC接口等。本文通過(guò)MMDC接口和EMMC接口擴(kuò)展了512 MB的DDR3內(nèi)存和8 G的存儲(chǔ)Flash。
2.1.2 存儲(chǔ)器的選擇
(1)非易失存儲(chǔ)器。為了使搭建的硬件平臺(tái)具有更好的性能,需要為處理器搭配一個(gè)存儲(chǔ)芯片,以便于存儲(chǔ)數(shù)據(jù)和操作系統(tǒng),常見(jiàn)的非易失性存儲(chǔ)芯片有NAND Flash、NOR Flash和EMMC等。其中,NOR Flash寫(xiě)入和擦除速度較低,NAND Flash寫(xiě)入和擦除速度較快,但是其對(duì)處理器的要求較高,數(shù)據(jù)傳輸時(shí)常常需要主機(jī)具備相應(yīng)的控制器。為了充分發(fā)揮NAND Flash的優(yōu)點(diǎn),同時(shí)又不對(duì)處理器提出特殊要求,本文選用將NAND FLASH和控制芯片封裝在一塊的EMMC作為非易失存儲(chǔ)器。EMMC內(nèi)部分為3部分,分別為Flash Memory、Flash Controller和Host Initerface。
(2)內(nèi)存芯片。MCIMX6Y2CVM05AB處理器自帶的RAM比較小,只有128 KB的OCRAM,故需要外接一個(gè)RAM芯片。MCIMX6Y2CVM05AB處理器自帶MMDC接口,可以方便地實(shí)現(xiàn)外接DDR3L或DDR3存儲(chǔ)芯片,綜合考慮存儲(chǔ)芯片的性能和使用電壓,選擇DDR3L存儲(chǔ)芯片作為外接的RAM芯片。
2.1.3 以太網(wǎng)模塊
MCIMX6Y2CVM05AB處理器內(nèi)部集成了兩個(gè)MAC控制器,系統(tǒng)選擇使用第二個(gè)MAC,支持10/100 Mbit/S的動(dòng)態(tài)配置,可以實(shí)現(xiàn)3層網(wǎng)絡(luò)加速,支持加速的網(wǎng)絡(luò)協(xié)議包含TCP和IP等;實(shí)現(xiàn)數(shù)據(jù)的收發(fā)需要外加一個(gè)PHY芯片,PHY芯片選擇LAN8720A,該芯片一端和MAC控制器相連,另一端通過(guò)變壓器和RJ45相連。MAC控制器和PHY芯片的數(shù)據(jù)傳輸分為MII接口和RMII接口。由于MII接口所需信號(hào)線較多,比RMII接口多出9根信號(hào)線,本系統(tǒng)選擇了RMII接口。另外,MAC控制器還需要對(duì)PYH芯片進(jìn)行配置和寄存器讀取,實(shí)現(xiàn)這部分功能的通信接口是MDIO接口。
芯片上MAC和LAN8720A的連接框圖如圖3所示。
圖3 MAC和LAN8720的連接框圖Fig.3 Connection block diagram of MAC and lan8720
2.1.4 LCD顯示器
MCIMX6Y2CVM05AB處理器自帶有一個(gè)顯示屏接口eLCDIF,該接口支持RGB接口的LCD顯示屏。另外,該處理器自帶的顯示屏接口支持RGBLCD的DE模式和VSYNC模式,可以實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。
RGBLCD由RGB三原色像素構(gòu)成,不同比重的RGB組合成不同的顏色,當(dāng)全亮?xí)r為白色,全暗時(shí)為黑色。LCD顯示器顯示信息豐富、功耗低,選用星翼電子推出的4.3寸電容觸摸顯示屏,分辨率為800×480,并行24位RGB接口,工作芯片為GT9147。
2.1.5 CAN通信模塊
CAN全稱Controller Area Network,廣泛應(yīng)用于汽車電子、工業(yè)自動(dòng)化等方面。CAN作為一種串行通信方式,數(shù)據(jù)的傳輸穩(wěn)定可靠、傳輸速率塊、傳輸距離遠(yuǎn)。CAN通信最高速度達(dá)到1 Mbps,最遠(yuǎn)傳輸10 KM。實(shí)現(xiàn)CAN通信需要CAN控制器和CAN收發(fā)器共同完成。MCIMX6Y2CVM05AB處理器內(nèi)部已經(jīng)包含了CAN控制器FlexCAN,只需外加一個(gè)CAN收發(fā)器即可。本系統(tǒng)中,CAN收發(fā)器選用的是耐用、穩(wěn)定性好并且傳輸速率快的TLE6250GV33型號(hào)芯片。
現(xiàn)場(chǎng)測(cè)試終端和云端服務(wù)器程序進(jìn)行數(shù)據(jù)的收發(fā)采用的是TCP Socket通訊。Socket是一種客戶端和服務(wù)器程序間進(jìn)行通信的機(jī)制,為T(mén)CP/IP通信協(xié)議提供了獨(dú)立的網(wǎng)絡(luò)編程接口,應(yīng)用程序通過(guò)調(diào)用這些網(wǎng)絡(luò)編程接口實(shí)現(xiàn)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。
現(xiàn)場(chǎng)測(cè)試終端軟件設(shè)計(jì)主要的功能模塊有:
(1)測(cè)試內(nèi)容的接收和存儲(chǔ)模塊;
(2)現(xiàn)場(chǎng)測(cè)試終端對(duì)硬件在環(huán)仿真測(cè)試平臺(tái)中的整車控制器進(jìn)行診斷測(cè)試和結(jié)果上傳模塊。
現(xiàn)場(chǎng)測(cè)試終端軟件流程圖如圖4所示。
圖4 現(xiàn)場(chǎng)測(cè)試終端軟件流程圖Fig.4 Flow chart of software for field test terminal
2.2.1 存儲(chǔ)模塊設(shè)計(jì)
Sqlite數(shù)據(jù)庫(kù)體積小、性能穩(wěn)定且使用簡(jiǎn)單,是非常適合嵌入式設(shè)備的輕量數(shù)據(jù)庫(kù)。Sqlite程序與測(cè)試終端應(yīng)用程序共用一個(gè)進(jìn)程空間,使用方便簡(jiǎn)單。另外,現(xiàn)場(chǎng)測(cè)試終端的應(yīng)用程序使用QT編寫(xiě),QT是一種跨平臺(tái)的C++圖形用戶界面應(yīng)用程序開(kāi)發(fā)框架,具有豐富的模塊,其中QT SQL模塊可以方便地實(shí)現(xiàn)對(duì)Sqlite數(shù)據(jù)庫(kù)的各種操作。在QT內(nèi)借助QtSql模塊所包含的各種類來(lái)實(shí)現(xiàn)對(duì)Sqlite數(shù)據(jù)庫(kù)的各種操作。因此,現(xiàn)場(chǎng)測(cè)試終端選擇Sqlite作為存儲(chǔ)測(cè)試數(shù)據(jù)的數(shù)據(jù)庫(kù)。
2.2.1.1 CAN通訊配置參數(shù)表
ECU動(dòng)態(tài)數(shù)據(jù)流獲取功能測(cè)試模塊使用的CAN通訊配置參數(shù)表的字段主要有幀類型、數(shù)據(jù)標(biāo)識(shí)符個(gè)數(shù)和狀態(tài)參數(shù)上傳周期period等,見(jiàn)表1。
表1 CAN通訊配置參數(shù)表Tab.1 CAN communication configuration parameter table
2.2.1.2 DID數(shù)據(jù)表
DID數(shù)據(jù)表主要存儲(chǔ)獲取的狀態(tài)參數(shù)對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)符,見(jiàn)表2。
表2 DID數(shù)據(jù)表Tab.2 DID data sheet
2.2.2 現(xiàn)場(chǎng)測(cè)試終端診斷測(cè)試模塊設(shè)計(jì)
現(xiàn)場(chǎng)測(cè)試終端接收全部測(cè)試內(nèi)容后,會(huì)向云端TCP服務(wù)端程序發(fā)送存儲(chǔ)完畢信號(hào),云端服務(wù)器接收到該信號(hào),將向測(cè)試終端發(fā)送“所有測(cè)試信息都已發(fā)送并開(kāi)啟測(cè)試”命令,此時(shí),診斷測(cè)試過(guò)程開(kāi)始。
診斷測(cè)試模塊由子線程執(zhí)行相應(yīng)診斷測(cè)試函數(shù)實(shí)現(xiàn),滿足遠(yuǎn)程測(cè)試人員隨時(shí)執(zhí)行停止測(cè)試和重新測(cè)試等的要求,使得系統(tǒng)更加靈活。
當(dāng)用戶退出測(cè)試以后,軟件會(huì)清理測(cè)試過(guò)程中創(chuàng)建的數(shù)據(jù)表、初始化仿真測(cè)試平臺(tái),關(guān)閉負(fù)責(zé)診斷測(cè)試的子線程,最后向云端發(fā)送退出完成回復(fù)。
整車控制器通過(guò)不斷獲取汽車的狀態(tài)信息,可以更好的實(shí)現(xiàn)對(duì)汽車的控制,還可以將一部分狀態(tài)數(shù)據(jù)提供給駕駛員,比如:轉(zhuǎn)速,車速等使其對(duì)汽車的運(yùn)行狀態(tài)有更清晰的了解。因此,整車控制器應(yīng)能夠及時(shí)準(zhǔn)確地獲取汽車的狀態(tài)參數(shù),通過(guò)車輛狀態(tài)參數(shù)獲取功能測(cè)試即可判斷VCU是否可以實(shí)現(xiàn)這一重要功能。在對(duì)VCU狀態(tài)參數(shù)的獲取功能進(jìn)行測(cè)試時(shí),主要使用的數(shù)據(jù)傳輸服務(wù)為ReadDataByIdentifier(0x22)。
云端TCP服務(wù)器軟件用于為現(xiàn)場(chǎng)測(cè)試終端提供完整的診斷測(cè)試服務(wù),包括測(cè)試內(nèi)容的發(fā)送以及測(cè)試結(jié)果的接收等。
測(cè)試內(nèi)容發(fā)送及測(cè)試結(jié)果接收模塊程序流程圖如圖5所示。TCP服務(wù)器程序接收到現(xiàn)場(chǎng)測(cè)試終端查詢是否已啟動(dòng)測(cè)試的命令之后,通過(guò)創(chuàng)建子線程定時(shí)從相關(guān)數(shù)據(jù)表中查詢用戶的測(cè)試啟動(dòng)命令,一旦檢測(cè)到啟動(dòng)信號(hào),立即向TCP客戶端發(fā)送“測(cè)試人員已啟動(dòng)測(cè)試”信號(hào),發(fā)送成功之后,線程結(jié)束。在線程檢測(cè)啟動(dòng)信號(hào)的過(guò)程中,由于TCP服務(wù)端仍然可以正常接收TCP客戶端信息,如心跳包,所以TCP客戶端和服務(wù)端可以始終保持正常連接狀態(tài)。
圖5 測(cè)試內(nèi)容發(fā)送和測(cè)試結(jié)果接收程序流程圖Fig.5 Flow chart of the procedure for sending test content and receiving test results
“測(cè)試人員已啟動(dòng)測(cè)試”信號(hào)發(fā)送成功后,TCP服務(wù)端將接收到獲取測(cè)試內(nèi)容的命令,這時(shí),需要?jiǎng)?chuàng)建子線程,用于發(fā)送測(cè)試內(nèi)容等。
遠(yuǎn)程客戶端和后端服務(wù)器程序采用B/S架構(gòu)。網(wǎng)站的開(kāi)發(fā)使用Django。Django使用的是MTV架構(gòu),即Model、Template和View。其中Model負(fù)責(zé)網(wǎng)站的數(shù)據(jù)存儲(chǔ),通過(guò)Modle可以輕松實(shí)現(xiàn)網(wǎng)站和數(shù)據(jù)庫(kù)的數(shù)據(jù)交互;Template下存放html文件,即前端網(wǎng)頁(yè)的內(nèi)容,其和負(fù)責(zé)網(wǎng)頁(yè)顯示樣式的css文件以及負(fù)責(zé)網(wǎng)頁(yè)邏輯功能的js文件共同構(gòu)成一個(gè)完整的前端網(wǎng)頁(yè);View負(fù)責(zé)對(duì)數(shù)據(jù)的邏輯處理,負(fù)責(zé)實(shí)現(xiàn)前端網(wǎng)頁(yè)的跳轉(zhuǎn)和用戶命令的接收、處理以及結(jié)果的反饋。
車輛狀態(tài)參數(shù)獲取功能測(cè)試界面用于創(chuàng)建所要獲取的車輛狀態(tài)參數(shù),以及實(shí)時(shí)顯示車輛的各種狀態(tài)。用戶創(chuàng)建好CAN通訊配置信息以及需要讀取的車輛狀態(tài)參數(shù)后,系統(tǒng)將各狀態(tài)參數(shù)對(duì)應(yīng)的數(shù)據(jù)標(biāo)識(shí)符以及讀取車輛狀態(tài)的命令等信息發(fā)送至云端數(shù)據(jù)庫(kù)中,由TCP服務(wù)器程序監(jiān)測(cè)并轉(zhuǎn)發(fā)至現(xiàn)場(chǎng)測(cè)試終端。
為了檢測(cè)狀態(tài)參數(shù)獲取功能測(cè)試模塊的實(shí)際效果,可以通過(guò)硬件在環(huán)仿真測(cè)試平臺(tái)模擬駕駛員的操作,改變車輛的狀態(tài)參數(shù),然后在遠(yuǎn)程測(cè)試界面創(chuàng)建將要獲取的車輛狀態(tài)參數(shù),通過(guò)該遠(yuǎn)程測(cè)試系統(tǒng)讀取模擬的車輛狀態(tài)信息,對(duì)比模擬的車輛狀態(tài)和遠(yuǎn)程測(cè)試界面實(shí)際獲取的車輛狀態(tài),從而判斷狀態(tài)參數(shù)獲取功能測(cè)試模塊是否滿足要求。
通過(guò)硬件在環(huán)仿真測(cè)試平臺(tái)中的仿真模型設(shè)置車輛的狀態(tài)參數(shù),包括右后門(mén)玻璃升降開(kāi)關(guān)狀態(tài)、外后視鏡鏡片方向調(diào)節(jié)開(kāi)關(guān)、中控鎖開(kāi)關(guān)、遙控鑰匙命令、左后門(mén)玻璃升降開(kāi)關(guān)狀態(tài)等,見(jiàn)表3。
表3 硬件在環(huán)仿真測(cè)試平臺(tái)模擬的車輛狀態(tài)信息Tab.3 Vehicle status information simulated by the hardware inthe-loop simulation test platform
在客戶端進(jìn)入狀態(tài)參數(shù)獲取功能測(cè)試模塊,創(chuàng)建需要讀取的車輛狀態(tài),測(cè)試完成后,現(xiàn)場(chǎng)測(cè)試終端顯示測(cè)試結(jié)果,與表3中硬件在環(huán)仿真測(cè)試平臺(tái)模擬的車輛狀態(tài)進(jìn)行對(duì)比,結(jié)果一致,表明現(xiàn)場(chǎng)測(cè)試終端可以實(shí)現(xiàn)對(duì)硬件在環(huán)仿真測(cè)試平臺(tái)中的整車控制器進(jìn)行測(cè)試,現(xiàn)場(chǎng)測(cè)試終端獲取狀態(tài)參數(shù)功能正常。
現(xiàn)場(chǎng)測(cè)試終端接收到車輛狀態(tài)參數(shù)數(shù)據(jù)后也會(huì)立即上傳至云端服務(wù)器,遠(yuǎn)程客戶端實(shí)時(shí)讀取狀態(tài)信息并顯示,顯示結(jié)果與表3一致,表明遠(yuǎn)程客戶端與現(xiàn)場(chǎng)測(cè)試終端之間的通訊以及數(shù)據(jù)解析正常。綜上,該遠(yuǎn)程測(cè)試系統(tǒng)具備實(shí)時(shí)查詢車輛狀態(tài)參數(shù)的功能,可以實(shí)現(xiàn)對(duì)整車控制器的車輛狀態(tài)信息獲取功能的測(cè)試。
為了打破地域限制,充分利用硬件在環(huán)仿真測(cè)試平臺(tái)設(shè)備,讓更多的人更方便地參與汽車控制器的開(kāi)發(fā),從而縮短汽車控制器的開(kāi)發(fā)時(shí)間,本文詳細(xì)設(shè)計(jì)了一種整車控制系統(tǒng)硬件在環(huán)遠(yuǎn)程測(cè)試系統(tǒng)。該遠(yuǎn)程測(cè)試系統(tǒng)主要由遠(yuǎn)程網(wǎng)頁(yè)客戶端、云端服務(wù)器、現(xiàn)場(chǎng)測(cè)試終端和硬件在環(huán)仿真測(cè)試平臺(tái)構(gòu)成,主要實(shí)現(xiàn)的功能是遠(yuǎn)程對(duì)整車控制器進(jìn)行車輛狀態(tài)參數(shù)獲取功能測(cè)試?,F(xiàn)場(chǎng)測(cè)試終端通過(guò)創(chuàng)建QT應(yīng)用程序使得操作更加方便,測(cè)試過(guò)程更加清晰。
未來(lái)工作中,考慮遠(yuǎn)程下載控制器的控制策略程序到在環(huán)仿真系統(tǒng)中,對(duì)控制器參數(shù)進(jìn)行標(biāo)定等展開(kāi)更加深入的研究。