張航 張宇
摘 要:由于汽車電子控制單元(ECU)的數(shù)量不斷增加,車輛網(wǎng)絡(luò)總線的負(fù)荷也在不斷增加。在發(fā)生故障時,基于CAN總線的UDS(unified diagnostic services,簡稱UDS),在出現(xiàn)故障時能迅速確定故障原因和位置,在汽車網(wǎng)絡(luò)診斷領(lǐng)域受到廣泛關(guān)注。通過大量的文獻(xiàn)資料,本文簡要分析了 CAN總線技術(shù)的特點,以及 CAN總線技術(shù)的UDS實現(xiàn)。
關(guān)鍵詞:CAN總線UDS協(xié)議;KWP2000;IS015765;IS014229
1 CAN總線概述
伴隨著CAN總線技術(shù)的廣泛應(yīng)用,CAN技術(shù)在汽車制造企業(yè)和零部件生產(chǎn)企業(yè)的應(yīng)用越來越廣泛。國際上有一整套關(guān)于統(tǒng)一診斷的診斷服務(wù)系統(tǒng)標(biāo)準(zhǔn),針對各個零部件廠商和研發(fā)機構(gòu),為整車企業(yè)提供一整套的診斷服務(wù)。汽車電子零部件開發(fā)中的診斷部件具有可重復(fù)使用性,縮短了開發(fā)周期和成本,提高了汽車制造企業(yè)的管理能力和生產(chǎn)效率。bootloader是基于UDS服務(wù)的軟件程序下載方法。由于can總線和UDS還沒有被廣泛使用,現(xiàn)在有許多程序下載的方式,比如RS232,SPI,JTAG協(xié)議等等。由于沒有統(tǒng)一的標(biāo)準(zhǔn)和流程,因此下載數(shù)據(jù)的可靠性無法得到保證。這樣,在這種機制下,bootloader就具有一個顯著的特性,即快速、可靠、安全、可重用和易于管理。
德國vector公司在UDS診斷產(chǎn)品中,can總線最為著名,也是應(yīng)用最廣泛的。該產(chǎn)品以其組網(wǎng)靈活且軟件功能齊全,適于系統(tǒng)級轎車的開發(fā),已為多數(shù)汽車廠商所采用。
1.1 CAN總線協(xié)議簡介
串口通信協(xié)議是一種支持分布式實時控制、安全可靠的串口通信技術(shù)。在OSI分層系統(tǒng)中,CAN總線物理層是最基本的一層。在同一個網(wǎng)絡(luò)中,每個結(jié)點應(yīng)該具有相同的物理層電特性。物理層按其功能可分為三個層次:物理信號層(PLS),主要有執(zhí)行位編碼、位定時、物理介質(zhì)附件層(PMA)和介質(zhì)接口層(MDI),其中包括電纜/連接器。
1.2 CAN總線UDS的網(wǎng)絡(luò)層分析
網(wǎng)絡(luò)層是按照ISO11898協(xié)議定義的控制局域網(wǎng),它由is014229-1和ISO15031-5協(xié)議組成,用于滿足車輛控制系統(tǒng)對CAN總線的需求。網(wǎng)絡(luò)層主要為用戶提供業(yè)務(wù)接口,提供網(wǎng)絡(luò)層不同節(jié)點之間數(shù)據(jù)的分段、重組和傳輸流控制框架等功能。為了發(fā)送一個比can數(shù)據(jù)幀長度更長的消息,您需要將消息信息分割并發(fā)送。
2 CAN總線UDS與KWP2000診斷協(xié)議的對比
KWP2000(關(guān)鍵字協(xié)議)是目前世界上最成熟的診斷協(xié)議之一,其車載診斷協(xié)議已在歐洲汽車中得到廣泛應(yīng)用?;赾an線和K線,KWP2000協(xié)議分為兩種類型。提出了汽車電子控制器和計算機之間通過串行數(shù)據(jù)線進(jìn)行串行通訊的一般要求。
根據(jù)OSI模型,ISO14230-1協(xié)議對應(yīng)的是物理層,ISO14230-2協(xié)議對應(yīng)的是數(shù)據(jù)鏈路層,ISO14230-3協(xié)議對應(yīng)的是應(yīng)用層,以及與發(fā)射相關(guān)的ISO14230-4協(xié)議。數(shù)據(jù)鏈路層采用ISO9141國際標(biāo)準(zhǔn)定義的K-line實現(xiàn)。單線信號完成半雙工異步通訊。盡管K線是容易實現(xiàn)的,但是需要轉(zhuǎn)換電路來改變它的邏輯水平。
2.1 物理層
線路物理層由國際標(biāo)準(zhǔn)化組織(ISO)142000線路規(guī)范(KW1)規(guī)定。提供系統(tǒng)診斷的硬件配置,設(shè)計系統(tǒng)的接口電路。在初始化時,診斷設(shè)備的ECU地址信息通過K線傳送到車輛總線上。在系統(tǒng)穩(wěn)定運行時,L-line不進(jìn)行信息傳輸,保持了較高水平。
2.2 數(shù)據(jù)鏈路層
ISO14230-2定義了一個數(shù)據(jù)鏈路層,包括初始化、通信連接、消息結(jié)構(gòu)、定時參數(shù)、錯誤處理。該協(xié)議的消息由消息頭、數(shù)據(jù)字段、校驗和數(shù)據(jù)字段組成。文章比較了長度字節(jié)的消息格式,其中報告了格式字節(jié)、目標(biāo)地址字節(jié)、源地址字節(jié)、長度字節(jié)、服務(wù)標(biāo)識字節(jié)、數(shù)據(jù)以及校驗和,數(shù)據(jù)字段中的第一個字節(jié)是服務(wù)標(biāo)識符,最后校驗碼(CS)用于數(shù)據(jù)校驗。在字節(jié)和字節(jié)之間以及消息和消息之間都有嚴(yán)格的時序要求。
3 CAN總線UDS的實現(xiàn)
3.1 座椅控制器的硬件設(shè)計
單片機采用了Freescalc公司的MC9S08DZ60芯片,而飛思卡所有系列的Metrowerks都可以用Metrowerks開發(fā)的Codewarrior IDE進(jìn)行軟件開發(fā),在這種環(huán)境下,飛思卡所有系列的 Metrowerks都可以通過Metrowerks開發(fā)的Codewarrior IDE進(jìn)行讀寫,然后編程、編譯。
3.2 座椅控制器的軟件設(shè)計
根據(jù)功能將座椅控制器診斷控制單元劃分為:BootLoader層、CAN設(shè)備驅(qū)動層、傳輸層、網(wǎng)絡(luò)層、診斷服務(wù)層、診斷應(yīng)用層。
3.3 診斷系統(tǒng)的設(shè)計
它的存儲空間可以被劃分為:引導(dǎo)區(qū)、ECU數(shù)據(jù)檢查區(qū)、應(yīng)用層數(shù)據(jù)區(qū)和網(wǎng)絡(luò)配置區(qū)。主要功能為存儲固定消息數(shù)據(jù)、產(chǎn)品信息、故障診斷代碼。
一般而言,故障診斷系統(tǒng)中,汽車電子控制器的開發(fā)不僅能完成ECU的具體功能,而且還能進(jìn)行故障診斷和網(wǎng)絡(luò)管理。本系統(tǒng)的實現(xiàn)過程如下:如果每臺ECU工作正常,且某臺設(shè)備在運行過程中發(fā)生故障,診斷系統(tǒng)根據(jù)協(xié)議內(nèi)容記錄相應(yīng)的診斷錯誤碼(DTC),并將其存儲在EEPROM中。故障碼可以分為歷史故障碼、間隔故障碼和當(dāng)前故障碼三部分。測試機可通過診斷界面讀取故障診斷碼數(shù)據(jù),并根據(jù)診斷協(xié)議的定義,將所有故障碼以不同格式顯示出來。
4 展望
ISO14229(UDS)協(xié)議是汽車故障診斷的理想標(biāo)準(zhǔn)。ISO15765協(xié)議基于CAN總線技術(shù),是UDS協(xié)議的標(biāo)準(zhǔn)和未來發(fā)展方向。
5 結(jié)束語
ISO 14229(UDS)協(xié)議是一種非常完善的汽車故障診斷標(biāo)準(zhǔn)。
本文研究了主流的CAN總線UDS技術(shù),總結(jié)了CAN-UDS技術(shù)的優(yōu)點。CAN總線是UDS系統(tǒng)傳輸數(shù)據(jù)的主要方式,針對CAN總線汽車電子系統(tǒng),設(shè)計了一個汽車座椅電子診斷系統(tǒng),并對該系統(tǒng)進(jìn)行了硬件設(shè)計和軟件編程。通過系統(tǒng)調(diào)試,證明了設(shè)計方案的可行性和穩(wěn)定性。
參考文獻(xiàn):
[1]宋他芳.基于CAN總線的車身電器控制實驗臺的優(yōu)化設(shè)計[D].河南科技大學(xué)碩士論文,2010.05.01
[2]周濤.ISO15765協(xié)議的研究與實現(xiàn)[D].合肥工業(yè)大學(xué),2011.04.