鄭紅麗 姜長坤 劉朝陽 張昀琪 畢圓浩
(1.中國第一汽車股份有限公司智能網(wǎng)聯(lián)開發(fā)院,長春 130013;2.汽車振動噪聲與安全控制綜合技術(shù)國家重點實驗室,長春 130013)
主題詞:便攜式 ECU刷寫 故障診斷 CAN總線
隨著智能網(wǎng)聯(lián)技術(shù)的快速發(fā)展,使得汽車電子系統(tǒng)更加復(fù)雜,汽車ECU刷寫和故障診斷需求越來越多。目前絕大部分OEM或供應(yīng)商都從國外設(shè)備廠商進(jìn)行采購CANoe等測試工具對ECU進(jìn)行刷寫和故障診斷,這些測試工具雖然功能強大、性能穩(wěn)定可靠,但是價格昂貴,一套CANoe售價約15萬元左右。為了緩解刷寫和故障診斷測試工具緊張的局面,急需開發(fā)一款基于國產(chǎn)CAN盒進(jìn)行ECU刷寫、診斷功能的測試工具。趙等開發(fā)了一款功能覆蓋面廣、成本優(yōu)勢明顯的測試/診斷工具,其配置了汽車電子通用的CAN(高速、低速)接口,無需連接電腦即可實現(xiàn)對儀表等汽車電子產(chǎn)品的快速測試和診斷。吳等設(shè)計了一種基于CAN總線的車載ECU控制器程序刷寫系統(tǒng),能有效的提高車載ECU刷寫的可靠性和速度。鮑等設(shè)計一種通用型的刷寫方法,解決了各類車型的刷寫,同時降低了開發(fā)成本。崔通過使用以太網(wǎng)鏈路作為診斷刷寫與車輛ECU通信的物理鏈路,利用以太網(wǎng)高傳輸速率的特點,大幅度的提高診斷刷寫效率。
針對這一問題,本文基于主控核心板模塊、CAN總線通信模塊、觸摸屏模塊、電源模塊和統(tǒng)一診斷服務(wù)協(xié)議,利用嵌入式系統(tǒng)開發(fā)了一款能夠?qū)ζ嘐CU進(jìn)行刷寫和故障診斷的測試工具。通過觸摸屏控制ECU刷寫和故障診斷,操作簡單。此外,傳統(tǒng)的車輛ECU是通過計算機編寫上位機控制軟件進(jìn)行刷寫和故障診斷的,需要220 V交流電直接給計算機供電。在長時間工作時,用現(xiàn)有的車輛ECU刷寫和故障診斷方法會出現(xiàn)計算機電量不足,車內(nèi)又沒有電源可直接給計算機供電的情況,該嵌入式系統(tǒng)通過汽車OBD連接到蓄電池進(jìn)行供電,能夠避免使用計算機實車操作出現(xiàn)電量不足的問題,從而有效提高車輛ECU的刷寫和故障診斷效率和準(zhǔn)確度。
系統(tǒng)工作原理圖如圖1所示,操作系統(tǒng)選用嵌入式Linux系統(tǒng)。用戶通過操作人機界面發(fā)布ECU刷寫和故障診斷指令,測試設(shè)備通過接口控制ECU執(zhí)行相應(yīng)的指令,ECU執(zhí)行結(jié)果通過接口反饋給測試設(shè)備,測試工具通過人機界面顯示給用戶。該測試工具供電通過汽車OBD連接到蓄電池進(jìn)行供電。
圖1 系統(tǒng)工作原理
系統(tǒng)硬件主要實現(xiàn)與用戶交互、與汽車ECU通訊、用戶提醒功能。為了提升用戶體驗,人機交互采用LCD觸摸屏模塊實現(xiàn)。由于汽車ECU需要通過CAN總線刷寫和故障診斷,故硬件需要預(yù)留CAN通信模塊。利用語音模塊和LED顯示模塊提醒用戶刷寫完成和刷寫異常。
系統(tǒng)硬件采用模塊化設(shè)計,主要包括主控核心板、CAN通信模塊、語音提示模塊、LED提示模塊、LCD觸摸屏模塊和電源模塊,硬件結(jié)構(gòu)框圖如圖2所示。
圖2 硬件結(jié)構(gòu)
(1)主控核心板
主控核心板采用某公司開發(fā)的EPC9600I-L開發(fā)板,EPC9600I-L基于AM335x系列處理器的工控主板,處理器內(nèi)核為800 MHz的Arm Cortex-A8。具有一路LCD接口,兩路CAN通信接口,2路IIC接口,16路GPIO,滿足系統(tǒng)硬件需求。所有接口通過嚴(yán)格的抗干擾、抗靜電測試,可在-40℃~+85℃工業(yè)級溫度范圍內(nèi)穩(wěn)定工作,滿足各種條件苛刻的工業(yè)應(yīng)用。EPC9600I-L開發(fā)板支持嵌入式Linux操作系統(tǒng),開發(fā)人員只需專注于編寫產(chǎn)品的應(yīng)用程序,具有開發(fā)周期短、系統(tǒng)人性化、軟件配套完整的特點,能輕松實現(xiàn)TCP/IP通信、CAN-bus現(xiàn)場總線通信,和大容量存儲的復(fù)雜功能,使嵌入式系統(tǒng)設(shè)計更加簡潔方便。
(2)CAN通信模塊
CAN總線接口單元實現(xiàn)了系統(tǒng)數(shù)據(jù)的發(fā)送和接收。接口單元包括電路微處理器,總線收發(fā)器,輸入和輸出設(shè)備,CAN通信控制器。微處理器完成數(shù)據(jù)處理,而CAN通信控制器完成數(shù)據(jù)處理。通過CAN通信協(xié)議轉(zhuǎn)換,CAN總線收發(fā)器可以延長通信距離,減少射頻干擾,提高系統(tǒng)即時抗干擾能力,并提供熱保護(hù)。CAN總線接口單元的設(shè)計是根據(jù)CAN總線物理層協(xié)議選擇總線介質(zhì),設(shè)計布線方法,然后連接到CAN網(wǎng)絡(luò)。主要是在CAN總線收發(fā)器與物理總線之間以及在CAN通信控制器與微處理器之間的接口電路設(shè)計。CAN總線接口電路如圖3所示,CAN總線收發(fā)器采用TJA1043T/1J芯片,電阻=61Ω,=62Ω,電容=4.7 nF。
圖3 CAN總線接口電路
(3)語音提示模塊
語音提示模塊的主要作用是為了提高操作的便捷性。其通過ISD1700語音模塊、控制電路、喇叭可以提示用戶操作過程、安全提示性語句,作為一種簡單、方便的人機交互方式,智能的語音系統(tǒng)必不可少。語音提示器由駐極體話筒、低通濾波器、精密整流直流放大器、單片機、電源組成(圖4)。
圖4 語音提示模塊系統(tǒng)
(4)LED提示模塊
LED是近年來快速流行的一種新型傳播媒介,由于其顯示亮度高、色彩好、壽命長和視角大,同時具備任意延展性,可以實現(xiàn)大面積的無縫拼接,能增強系統(tǒng)與用戶之間的互動。并且可用于環(huán)境噪音高的場所,如工廠或需要優(yōu)先使用靜音設(shè)備場所。
(5)LCD模塊
為了更好便于用戶的操作,系統(tǒng)采用LCD觸摸屏,支持多點觸摸、靈敏度高、反應(yīng)快、耐用度高、性能穩(wěn)定、只需觸摸、無需按壓操作,大大提高了用戶的體驗感和操作的便捷性。LCD觸摸屏色彩偏差度小、無閃爍感、穩(wěn)定度高、輻射小、對眼睛的損害小、更省電。此顯示系統(tǒng)使用7.0寸真彩TFT液晶屏,型號為LCD_TM070RDH12_24B,分辨率可以達(dá)到800x480。
(6)電源模塊
電源模塊輸入通過汽車OBD連接到蓄電池,由于蓄電池電壓為12 V左右,觸摸屏模塊、ISD1700語音模塊工作電壓為5 V,因此需要通過LM7805模塊將12 V電壓轉(zhuǎn)換成5 V。如圖5所示,電源模塊主要由高可靠、高性能的模塊電源搭建而成,保障設(shè)備穩(wěn)定工作,同時電源模塊輸入輸出完全隔離,并提供過熱保護(hù)、過流保護(hù)、過載保護(hù)、過壓保護(hù)和熱插拔功能,增大了電源模塊的可靠性。
圖5 電源模塊系統(tǒng)
(7)可擴展性設(shè)計
隨著汽車智能化程度增加,總線通信負(fù)載率逐漸提升,很多主機廠將整車主干網(wǎng)絡(luò)通信由CAN總線替換成以太網(wǎng),EPC9600I-L開發(fā)板具有一路以太網(wǎng),滿足未來通過以太網(wǎng)刷寫、診斷及標(biāo)定的需求。
3.2.1 開發(fā)工具鏈及開發(fā)流程介紹
本測試工具操作系統(tǒng)采用嵌入式Linux系統(tǒng),人機交互界面使用Qt Creator集成開發(fā)環(huán)境開發(fā),此IDE能夠跨平臺運行,支持的系統(tǒng)包括Linux(32位及64位)、Mac OS X和Windows。使用Qt Creator開發(fā)應(yīng)用程序步驟如下:
第1步,新建工程;
第2步,工程創(chuàng)建好之后,雙擊其中的UI文件,便可以打開設(shè)計器對圖形界面進(jìn)行編輯,將所需的控件拖拽到窗口中實現(xiàn)UI界面的設(shè)計;
第3步,UI界面設(shè)計好之后,開始編寫應(yīng)用程序,實現(xiàn)程序刷寫和故障診斷功能。
3.2.2 應(yīng)用軟件開發(fā)
本測試工具應(yīng)用軟件包含3層,包括底層、中間層和應(yīng)用層,系統(tǒng)軟件結(jié)構(gòu)圖如圖6所示。
圖6 系統(tǒng)軟件結(jié)構(gòu)
(1)底層
底層為驅(qū)動層,驅(qū)動軟件主要負(fù)責(zé)系統(tǒng)硬件的驅(qū)動和配置,為上層軟件搭建連接通道。EPC9600I-L開發(fā)板已經(jīng)集成GPIO、CAN、LCD觸摸屏、以太網(wǎng)和AD驅(qū)動,用戶可以直接使用,提升產(chǎn)品開發(fā)效率。
(2)中間層
中間層是應(yīng)用層和底層驅(qū)動層提供信號轉(zhuǎn)換、控制流緩沖工作。為了提升程序刷寫及故障診斷通信效率,CAN通信采用多幀傳輸方式,本項目中間層主要實現(xiàn)CAN總線多幀傳輸。
多幀傳輸方式中,將數(shù)據(jù)拆分成1個首幀、1個流控制幀和多個連續(xù)幀,具體傳輸流程如圖7所示。首幀包含了分段數(shù)據(jù)的總長度信息以及一些數(shù)據(jù)幀;流控制幀中包含接下來要傳輸連續(xù)幀的個數(shù)及2個連續(xù)幀之間的時間間隔;每個連續(xù)幀的第1個字節(jié)包含拆分的順序序號,后面的7個字節(jié)用于存放數(shù)據(jù)。接收端在接收到連續(xù)幀后根據(jù)接收數(shù)據(jù)幀的編號組合成服務(wù)數(shù)據(jù)。
圖7 多幀傳輸流程
(3)應(yīng)用層
應(yīng)用層是軟件的最頂層,包含刷寫功能應(yīng)用軟件和診斷功能應(yīng)用軟件。
a.刷寫功能應(yīng)用軟件開發(fā)
參照統(tǒng)一診斷服務(wù)規(guī)范軟件刷寫流程,刷寫功能應(yīng)用軟件包括預(yù)編程階段、編程階段和編程后階段。
預(yù)編程階段的具體步驟為:首先開啟擴展會話(session);在預(yù)編程階段無需故障診斷,之后禁用診斷故障代碼(Diagnostic Trouble Code,DTC)存儲;為了保證刷寫功能可以正常完成,禁用非診斷通信;最后將會話模式切換到編程模式,相關(guān)的流程如圖8所示。
圖8 預(yù)編程階段流程
編程階段的具體步驟為:首先解鎖所要刷寫的ECU;然后擦除ECU中原有的程序,便于后續(xù)新程序的輸入;最后下載相關(guān)應(yīng)用軟件,并檢測軟件中的應(yīng)用程序正確性,相關(guān)流程如圖9所示。
圖9 編程階段流程
編程后階段的具體步驟為:首先根據(jù)編程階段所編程的軟件重置ECU,并啟動擴展session,以保持所重置的ECU信息;然后啟動非診斷通信,用于ECU的通信;最后啟動DTC故障診斷功能,啟動DTC故障診斷功能之后清除DTC,相關(guān)流程圖如圖10所示。
圖10 編程后階段流程
刷寫功能人機交互界面如圖11所示。其具有車型選擇、ECU類型選擇、ECU選擇、文件操作、刷寫日期設(shè)置、產(chǎn)品序列號設(shè)置、刷寫進(jìn)度顯示、開始刷寫和系統(tǒng)清除功能。在用戶選擇好配置之后,點擊Download Start按鈕開始程序刷寫,刷寫過程中刷寫進(jìn)度條不斷更新,刷寫完成后,通過語音及LED指示燈提醒用戶。為了避免誤刷寫,刷寫完成后通過點擊System Clear按鈕清除配置信息。
圖11 刷寫功能人機交互界面
b.診斷功能應(yīng)用軟件開發(fā)
診斷功能的人機交互界面如圖12所示,其具有通道選擇、通信方式選擇、物理地址選擇、功能地址選擇、響應(yīng)地址選擇、會話保持方式、會話保持時間,服務(wù)類型選擇、服務(wù)子功能選擇、故障診斷列表發(fā)送的功能。用戶使用時,首先選擇好配置信息,點擊要發(fā)送的服務(wù),選擇對應(yīng)的子服務(wù)、選擇是否抑制響應(yīng),最后點擊立即發(fā)送即可。如果用戶想同時發(fā)送多條指令,用戶需要選擇相應(yīng)的服務(wù),點擊添加至列表按鈕即可將該條指令添加至過程診斷列表中,2條指令可以通過添加延時按鈕添加指令之間的時間間隔,同時故障診斷列表可以刪除、清空、導(dǎo)出及導(dǎo)入。
圖12 診斷功能人機交互界面
3.2.3 QT程序移植到開發(fā)板
編寫好的應(yīng)用程序需要移植到開發(fā)板中才能運行,移植按照以下3步進(jìn)行。
第1步,將QT環(huán)境設(shè)置成在ARM下運行的環(huán)境,這樣編譯出來的可執(zhí)行文件才能在開發(fā)板下運行,具體配置如圖13所示。環(huán)境配置好之后開始按照自己的意愿編寫代碼。
圖13 QT環(huán)境配置
第2步,往開發(fā)板上移植基本的QT庫。
(1)在虛擬機里安裝arm版QT所在的目錄下尋找?guī)旒八麄兊南嚓P(guān)鏈接文件。文件包括libQtGui.so、libQtCore.so、libQtNetwork.so和fonts下的字庫。為了防止錯誤,一并把他們的相關(guān)鏈接文件so.4、so.4.7、so.4.7.2都移植過去。
(2)在/opt目錄下建立“qt-4.8.5-arm”目錄,因為本項目使用的QT版本是4.8.5,所以建立在該目錄下。
(3)將虛擬機上拷貝的文件放到U盤中,通過U盤復(fù)制到開發(fā)板/opt/qt-4.8.5-arm中,包括lib以及l(fā)ib下的fonts目錄。
(4)設(shè)置環(huán)境變量,在開發(fā)板的根目錄下執(zhí)行:vi/etc/profile,然后輸入以下指令:
圖14 設(shè)置環(huán)境變量
最后,將編譯好的這個可執(zhí)行文件放到開發(fā)板上,執(zhí)行./xxx-qws命令,在觸摸屏中就可以顯示QT界面。
本文所開發(fā)的便攜式刷寫、故障診斷測試工具已應(yīng)用于某系列車型多個產(chǎn)品的刷寫及故障診斷測試中。經(jīng)過多次測試,性能穩(wěn)定可靠,滿足用戶需求。測試工具應(yīng)用的模塊和項目如表1所示,圖15為某車型實車刷寫車門控制器軟件。
表1 測試工具應(yīng)用
圖15 實車刷寫車門控制器
傳統(tǒng)的刷寫工具通過CANoe實現(xiàn),CANoe刷寫車門控制器部分LOG如圖16所示,便攜式刷寫器刷寫車門控制器部分LOG如圖17所示。圖16、圖17中Time列代表刷寫時間戳,單位為秒。圖16中第一行代表開始刷寫車門控制器,通過CANoe刷寫車門控制器起始時間為54.892 314 s,最后一行代表刷寫車門控制器成功,通過CANoe刷寫車門控制器結(jié)束時間為175.030 026 s,使用CANoe刷寫車門控制器總計時間為120.137 712 s。圖17中第一行代表開始刷寫車門控制器,通過便攜式刷寫器刷寫車門控制器起始時間為20.883 714 s,最后一行代表刷寫車門控制器成功,通過便攜式刷寫器刷寫車門控制器結(jié)束時間為121.030 166 s,使用便攜式刷寫器刷寫車門控制器總計時間為100.146 452 s。對比發(fā)現(xiàn),通過便攜式刷寫器刷寫車門控制器比通過CANoe快20 s,時間縮短16.7%。經(jīng)過多車型的轉(zhuǎn)向柱控制器、座椅控制器、車門控制器以及后背門控制器大量測試,性能穩(wěn)定可靠,刷寫成功率可達(dá)到99.98%,滿足實車刷寫需求。
圖16 CANoe刷寫車門控制器LOG圖
圖17 便攜式刷寫器刷寫車門控制器的LOG圖
為了方便測試該工具故障診斷功能穩(wěn)定性,故障診斷功能測試根據(jù)故障診斷功能規(guī)范通過臺架模擬實車故障,故障產(chǎn)生后通過診斷工具讀取ECU故障碼。讀取故障碼信息LOG如圖18所示,通過LOG分析,讀取出的故障診斷信息與實際模擬故障匹配。經(jīng)過多車型大量測試,故障診斷測試功能性能穩(wěn)定可靠,滿足故障診斷需求。
圖18 故障診斷功能測試
綜上,本文開發(fā)了基于CAN總線通訊的刷寫、診斷工具。該測試工具通過汽車OBD連接到蓄電池進(jìn)行供電,能夠避免使用計算機實車操作出現(xiàn)電量不足的問題,成本低、操作過程簡單、縮短了刷寫時間,且具有較強的可擴展性,從而有效提高車輛ECU的刷寫和故障診斷效率。同時,該設(shè)備具有定制性的特點,能夠根據(jù)被測ECU的刷寫、診斷功能規(guī)范文檔定制屬于特定ECU的刷寫、診斷工具。