(南昌大學(xué) 信息工程學(xué)院,江西 南昌 330031)
汽車(chē)電子控制單元(Electronic Control Unit,ECU)簡(jiǎn)稱電控單元,是用于實(shí)現(xiàn)分析數(shù)據(jù)、處理數(shù)據(jù)和發(fā)送數(shù)據(jù)等功能的控制裝置[1]。在新車(chē)型設(shè)計(jì)制造過(guò)程中,為保證ECU性能符合設(shè)計(jì)要求,需進(jìn)行ECU性能測(cè)試。對(duì)ECU性能進(jìn)行準(zhǔn)確的測(cè)試,能夠提高生產(chǎn)效率及產(chǎn)品的可靠性和一致性[2]。
早期ECU性能的測(cè)試均需要工程師使用原始的測(cè)試設(shè)備進(jìn)行精細(xì)的測(cè)量,按照ECU工作流程及其功能要求,逐步進(jìn)行驗(yàn)證與計(jì)算。由于每個(gè)功能的實(shí)現(xiàn)的影響因素多,原理復(fù)雜,難以在有限時(shí)間內(nèi)完成足夠多的測(cè)試用例,并且原始的測(cè)試方式由于人的主觀規(guī)避特性,難以捕捉到死鎖、資源沖突等錯(cuò)誤[3]。自動(dòng)測(cè)試系統(tǒng)[4](Automatic Test System,ATS)是將所有測(cè)試用例集成到測(cè)試系統(tǒng)里面,使用微控制器運(yùn)行測(cè)試程序,自動(dòng)完成復(fù)雜且數(shù)量龐大的測(cè)試用例數(shù)據(jù)集[5],能夠用于電子設(shè)備和非電子設(shè)備的自動(dòng)性能檢測(cè)、功能檢測(cè)及故障檢測(cè)。
本文分析了車(chē)載ECU測(cè)試需求,探討并研究了車(chē)載總線自動(dòng)化測(cè)試系統(tǒng)的架構(gòu),設(shè)計(jì)了基于WinForm框架的汽車(chē)網(wǎng)絡(luò)仿真ECU測(cè)試管理軟件系統(tǒng),解決了當(dāng)前自動(dòng)測(cè)試系統(tǒng)存在的一些問(wèn)題。總體來(lái)說(shuō),將測(cè)試系統(tǒng)變?yōu)榭啥卧O(shè)計(jì),可擴(kuò)展且可移植的先進(jìn)測(cè)試系統(tǒng),在汽車(chē)ECU模塊測(cè)試過(guò)程中,提高了工作效率。
本文測(cè)試系統(tǒng)的研究對(duì)象為車(chē)載CAN,從宏觀角度可以從網(wǎng)絡(luò)性能、功能和網(wǎng)絡(luò)故障3個(gè)方面進(jìn)行測(cè)試。其中網(wǎng)絡(luò)性能測(cè)試體現(xiàn)的是健康狀態(tài)下的網(wǎng)絡(luò)通信能力,主要測(cè)試網(wǎng)絡(luò)在不同負(fù)載狀態(tài)下通信的誤碼率和通信速度等;功能測(cè)試即判斷通信狀態(tài)下的數(shù)據(jù)能否正常收發(fā);網(wǎng)絡(luò)故障測(cè)試也可以稱為診斷測(cè)試,主要對(duì)模塊的故障診斷能力進(jìn)行測(cè)試,測(cè)試其能夠準(zhǔn)確診斷故障、報(bào)告故障碼等[6]。依據(jù)CAN網(wǎng)絡(luò)協(xié)議的層次劃分,將網(wǎng)絡(luò)性能測(cè)試分為物理層、數(shù)據(jù)鏈路層、交互層、網(wǎng)管層和應(yīng)用層[7]。
在本文中設(shè)計(jì)了汽車(chē)ECU自動(dòng)測(cè)試硬件系統(tǒng)和軟件系統(tǒng),其中硬件系統(tǒng)主要包含被測(cè)對(duì)象、工控機(jī)、CAN總線分析輔助檢測(cè)儀器和接線盒4個(gè)部分。系統(tǒng)框圖如圖1所示。
圖1 測(cè)試系統(tǒng)結(jié)構(gòu)框圖
在實(shí)際的設(shè)計(jì)中,為方便實(shí)現(xiàn)功能測(cè)試,設(shè)計(jì)并采用了一體化測(cè)試機(jī)柜和測(cè)試臺(tái)架。測(cè)試機(jī)柜是用于集成測(cè)量設(shè)備,包含工控機(jī)、總線分析儀、示波器和電源模塊等,機(jī)柜整體結(jié)構(gòu)從上至下為電源管理系統(tǒng)、測(cè)試電源系統(tǒng)、總線測(cè)試設(shè)備系統(tǒng)、示波器和工控機(jī);測(cè)試臺(tái)架是用于安裝汽車(chē)內(nèi)部功能模塊,包括BCM、ABS和ESP等。
系統(tǒng)軟件部分主要是測(cè)試管理軟件的設(shè)計(jì),編程采用的是商用編程語(yǔ)言C#,集成開(kāi)發(fā)環(huán)境采用了Visual Studio 2015。測(cè)試管理軟件主要包含測(cè)試部分、文件操作和權(quán)限管理等模塊。其中測(cè)試部分調(diào)用Vector公司的CANoe軟件的相關(guān)程序集,為實(shí)現(xiàn)軟件模塊重用,使用標(biāo)準(zhǔn)的DLL程序集解析不同車(chē)型通信規(guī)范的DBC數(shù)據(jù)庫(kù)文件,DLL技術(shù)[8]的加入降低了開(kāi)發(fā)成本并且易于升級(jí)和擴(kuò)展,實(shí)現(xiàn)軟件的標(biāo)準(zhǔn)化接口設(shè)計(jì)。系統(tǒng)中設(shè)置3個(gè)操作權(quán)限:管理員、配置員和測(cè)試員,主要是允許或者禁止用戶對(duì)測(cè)試工程信息和測(cè)試執(zhí)行前后涉及到的所有信息進(jìn)行查閱、修改的權(quán)限管理。
所采用的測(cè)試系統(tǒng)主要包含了總線測(cè)試設(shè)備、總線干擾設(shè)備、示波器、程控電源、雙極性電源、測(cè)試環(huán)境配置盒和工控機(jī)。硬件系統(tǒng)框圖如圖2所示。
圖2 系統(tǒng)硬件框圖
總線測(cè)試設(shè)備采用的是Vector公司的VN1640接口卡,它能夠通過(guò)USB2.0靈活高速訪問(wèn)CAN網(wǎng)絡(luò),支持并行診斷,完成簡(jiǎn)單的總線分析任務(wù)以及復(fù)雜的總線在線仿真、校準(zhǔn)和診斷等高級(jí)功能。
總線干擾設(shè)備采用的是Vector公司的CANstressDR干擾儀,它在工作時(shí)直接串入CAN總線,在總線上產(chǎn)生干擾邏輯,驗(yàn)證ECU以及CAN總線的抗干擾能力。
示波器采用了PicoScope5444B,其擁有高達(dá)200 MHz帶寬和1 GS/s的采樣率,具備友好的通信接口,體積小巧,方便集成。
TOE8815-32可編程電源主要用于對(duì)設(shè)備進(jìn)行供電測(cè)試,能夠產(chǎn)生階躍電壓、突變電壓和脈沖電壓等,滿足ISO16750-2對(duì)供電電壓波形測(cè)試的需求。NL10V10C38雙極性電源具備±10 V雙極性電壓、±38 A雙極性電流。恒流模式下可獨(dú)立設(shè)置電壓上下限,實(shí)現(xiàn)地偏移與電源偏移測(cè)試[7]。
采用了測(cè)試環(huán)境配置盒,來(lái)調(diào)整實(shí)時(shí)的測(cè)試條件。該配置盒是由中國(guó)汽車(chē)技術(shù)研究中心專門(mén)針對(duì)汽車(chē)CAN、LIN總線的物理層測(cè)試與模塊本地事件IO資源分配定制的設(shè)備,滿足ECU單節(jié)點(diǎn)與系統(tǒng)集成測(cè)試需求[7]。通過(guò)USB2.0或CAN總線自動(dòng)配置和搭建測(cè)試所涉及的硬件設(shè)備與測(cè)試電路,是實(shí)現(xiàn)ECU自動(dòng)測(cè)試系統(tǒng)的關(guān)鍵,其電路原理圖表如圖3所示,上位機(jī)根據(jù)測(cè)試用例需要的測(cè)試環(huán)境下發(fā)命令改變電路狀態(tài),達(dá)到自動(dòng)測(cè)試的目的。
時(shí)間等不起,造價(jià)出不起。只有一個(gè)辦法,自己動(dòng)手。工程師劉家林、施工隊(duì)長(zhǎng)李德銘和大家一起,研究出一個(gè)新的方案:原設(shè)計(jì)要求在路基2.5米以下用直徑1560毫米的鋼筋混凝土保護(hù)管穿越路基,改用直徑377毫米的鋼管代替混凝土管,可把管底深度由4.04米減少到2.88米,穿越長(zhǎng)度由70米縮短到35米。但是,長(zhǎng)距離穿越,稍有疏忽就會(huì)造成彎曲,即使縮短為30多米,仍有相當(dāng)長(zhǎng)的距離,如稍有彎曲就會(huì)損傷路基。因此,大家仍是提心吊膽,兢兢業(yè)業(yè),采取了非常嚴(yán)密的措施,并自己設(shè)計(jì)制造了一個(gè)24米長(zhǎng)的頂推滑道,以避免管道穿彎,還選用D80推土機(jī),挑選駕駛技術(shù)最熟練的推土機(jī)手,把頂推的位置固定死。
圖3 環(huán)境配置盒電路圖
為簡(jiǎn)化測(cè)試操作流程,提高相關(guān)文件的利用率,方便相關(guān)參數(shù)的保存和查看、測(cè)試結(jié)果的查看,以及對(duì)比和增強(qiáng)測(cè)試報(bào)告的可讀性,設(shè)計(jì)了測(cè)試管理軟件。主要分為以下幾大模塊:賬號(hào)登錄、賬號(hào)管理、配置管理、測(cè)試管理和報(bào)告查看。軟件集成CANoe的網(wǎng)絡(luò)測(cè)試接口,使用嵌入式數(shù)據(jù)庫(kù)SQLite、XML技術(shù)和DLL技術(shù),并針對(duì)用戶技術(shù)資料保密需求劃分了用戶權(quán)限,分為三級(jí):管理員、配置員、測(cè)試員。
① 賬號(hào)登錄模塊:規(guī)定用戶使用系統(tǒng)時(shí)必須輸入用戶名和密碼,且兩者都與系統(tǒng)已存的數(shù)據(jù)完全匹配,才能夠正常使用本系統(tǒng),達(dá)到保護(hù)數(shù)據(jù)安全的目的。
② 賬號(hào)管理模塊:可以在該界面修改用戶密碼和上傳用戶頭像照片。
③ 配置管理模塊:包含車(chē)型管理、任務(wù)管理和供應(yīng)商管理。車(chē)型管理有車(chē)型創(chuàng)建功能和車(chē)型配置功能,其中管理員具有所有權(quán)限,配置員只可操作車(chē)型配置功能。車(chē)型創(chuàng)建包括車(chē)型、配置、階段的創(chuàng)建;車(chē)型配置是上傳和導(dǎo)入車(chē)型相關(guān)配置文件的入口,例如上傳DBC文件、網(wǎng)絡(luò)拓?fù)鋱D、配置表以及用例表。任務(wù)管理部分規(guī)定只能由管理員或者配置員進(jìn)行修改,該部分能夠創(chuàng)建任務(wù)、編輯用例,任務(wù)創(chuàng)建是創(chuàng)建已有的某個(gè)車(chē)型-配置-階段下模塊的單節(jié)點(diǎn)或集成測(cè)試任務(wù),并且編輯該車(chē)型管理中該車(chē)型-配置-階段下已經(jīng)配置好的用例表,根據(jù)測(cè)試需要做相關(guān)的修改后與當(dāng)前測(cè)試任務(wù)綁定,保存到數(shù)據(jù)庫(kù)中的任務(wù)表中,配置管理界面如圖4所示。
圖4 配置管理
④ 測(cè)試管理模塊:允許所有用戶使用,是本測(cè)試系統(tǒng)的核心部分,負(fù)責(zé)調(diào)用CANoe軟件,打開(kāi)并運(yùn)行測(cè)試腳本,并在界面上展示測(cè)試進(jìn)度及測(cè)試結(jié)果,并提供打印報(bào)告功能,界面如圖5所示。
圖5 測(cè)試管理
將XML和DLL技術(shù)相結(jié)合應(yīng)用到本文的自動(dòng)測(cè)試系統(tǒng)中,提高了系統(tǒng)的可配置性和可移植性。
本測(cè)試系統(tǒng)軟件采用了Client/Server(C/S)模式,對(duì)數(shù)據(jù)庫(kù)的要求是具有較高的讀寫(xiě)性能,比如能夠快速地處理數(shù)據(jù)和頻繁讀/寫(xiě)磁盤(pán)文件。因此本系統(tǒng)的數(shù)據(jù)庫(kù)設(shè)計(jì)中采用SQLite+NHibernate的結(jié)構(gòu)。SQLite是一款輕量級(jí)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),具有較高的讀寫(xiě)速率;NHibernate框架能夠把數(shù)據(jù)庫(kù)中的表映射成面向?qū)ο笳Z(yǔ)言中類描述的對(duì)象。
使用SQLite Expert Professional工具查看和編輯數(shù)據(jù)庫(kù),它是一款可視化SQL數(shù)據(jù)庫(kù)管理工具,創(chuàng)建如圖6所示的數(shù)據(jù)庫(kù)表。根據(jù)系統(tǒng)功能分析,創(chuàng)建了配置表模板表、DBC文件表、員工表、文件關(guān)聯(lián)表、操作日志表、報(bào)告表、模塊供應(yīng)商表和測(cè)試任務(wù)表。
圖6 系統(tǒng)數(shù)據(jù)庫(kù)表
配置表模板表是用來(lái)存儲(chǔ)各個(gè)車(chē)型的配置表信息,表中包括該車(chē)型所有電控單元的具體結(jié)構(gòu)的信息。DBC文件表用來(lái)存儲(chǔ)各車(chē)型的DBC數(shù)據(jù)庫(kù)信息,DBC文件是CAN總線的通信規(guī)范矩陣,用來(lái)解析CAN網(wǎng)絡(luò)上傳輸?shù)男盘?hào)。員工表是用來(lái)保存主機(jī)廠員工信息和管理軟件登錄密碼。文件關(guān)聯(lián)表是將車(chē)型與該車(chē)型對(duì)應(yīng)的配置表與用例表關(guān)聯(lián)。操作日志表即是用來(lái)存儲(chǔ)用戶在管理軟件上所做的操作,包括對(duì)數(shù)據(jù)庫(kù)的增、刪、改,以及車(chē)型模塊測(cè)試信息等重要操作。報(bào)告表存儲(chǔ)測(cè)試任務(wù)完成后得到的解析成JSON串格式的報(bào)告,模塊供應(yīng)商記錄了要測(cè)試的模塊的供應(yīng)來(lái)源。測(cè)試任務(wù)表記錄系統(tǒng)中創(chuàng)建的任務(wù)信息,也包括該任務(wù)下測(cè)試模塊的用例表信息。
在數(shù)據(jù)預(yù)處理環(huán)節(jié),采用了JSON(JavaScript Object Notation)數(shù)據(jù)格式。JSON是一種輕量級(jí)的完全獨(dú)立于語(yǔ)言的數(shù)據(jù)交換格式,專門(mén)為嵌入式及輕量級(jí)系統(tǒng)應(yīng)用設(shè)計(jì),具有良好可讀性和友好的數(shù)據(jù)接口。系統(tǒng)中大量使用了JSON格式,比如報(bào)告表中的測(cè)試結(jié)果和文件關(guān)聯(lián)表中的配置表信息和用例表信息。
下面以ECM電控單元的單節(jié)點(diǎn)測(cè)試為例,自動(dòng)測(cè)試流程如圖7所示。按照流程,先后創(chuàng)建車(chē)型、管理員授權(quán)給配置員、配置文件、上傳DBC數(shù)據(jù)庫(kù)文件以及網(wǎng)絡(luò)拓?fù)鋱D和導(dǎo)入供應(yīng)商信息,最后根據(jù)該款車(chē)型的協(xié)議規(guī)范編寫(xiě)配置表信息、用例表信息。本次測(cè)試車(chē)型的網(wǎng)絡(luò)拓?fù)鋱D如圖8所示。
圖7 測(cè)試流程圖
圖8 網(wǎng)絡(luò)拓?fù)鋱D
管理軟件系統(tǒng)操作依次為:① 添加要測(cè)試的ECM模塊;② 打開(kāi)測(cè)試管理,啟動(dòng)CANoe執(zhí)行指定路徑下的硬件自檢的測(cè)試腳本文件;③ 單擊ECU測(cè)試按鈕,調(diào)用CANoe執(zhí)行ECM的測(cè)試腳本文件,得到測(cè)試結(jié)果和測(cè)試報(bào)告。
最后將生成的測(cè)試結(jié)果(XML報(bào)告文件)按主機(jī)廠要求測(cè)試報(bào)告格式解析,得到最終的報(bào)告結(jié)果,圖9為隱性電壓差分測(cè)試時(shí)示波器截圖,CANoe監(jiān)控總線數(shù)據(jù)如圖10所示,圖11為某主機(jī)廠測(cè)試結(jié)果報(bào)告的部分?jǐn)?shù)據(jù)。
圖9 隱性電壓差分測(cè)試示波器截圖
圖10 CANoe監(jiān)控總線數(shù)據(jù)
圖11 ECM測(cè)試部分報(bào)告
在本文的汽車(chē)ECU測(cè)試實(shí)驗(yàn)中,自動(dòng)測(cè)試系統(tǒng)與手動(dòng)測(cè)試相比,線路更加清晰,需要更少的人工參與,測(cè)試執(zhí)行更加智能化,結(jié)果可讀性更好且花費(fèi)的時(shí)間也更少,僅為手動(dòng)測(cè)試的1/10,人工測(cè)試環(huán)境如圖12所示。
針對(duì)目前汽車(chē)ECU手工測(cè)試方式存在的問(wèn)題,提出了汽車(chē)ECU自動(dòng)測(cè)試系統(tǒng)的解決方案,構(gòu)架了包含工控機(jī)、CANoe和測(cè)試環(huán)境配置盒的硬件測(cè)試系統(tǒng),設(shè)計(jì)了數(shù)據(jù)庫(kù)、系統(tǒng)軟件界面及測(cè)試操作流程,實(shí)現(xiàn)了基于CAN網(wǎng)絡(luò)的ECU自動(dòng)測(cè)試,完成對(duì)CANoe生成的XML格式的測(cè)試結(jié)果的解析及生成客戶定制格式的測(cè)試報(bào)告。經(jīng)實(shí)際開(kāi)發(fā)及應(yīng)用,該自動(dòng)測(cè)試系統(tǒng)的解決方案降低了測(cè)試工作量,縮短了ECU開(kāi)發(fā)周期,節(jié)約了開(kāi)發(fā)成本,具有很高的實(shí)際應(yīng)用價(jià)值。
圖12 人工測(cè)試ECM環(huán)境