白蒲江 孟晨興


摘要:首先介紹了UDS的特點及優勢,然后具體對UDS的服務功能進行了說明,最后以緩速器電控單元的診斷設計為例,闡述了UDS的設計要點及其在車輛標定診斷測試中的應用。
關鍵詞:UDS;電控單元;診斷標定
1? ? 技術背景
CAN(Controller Area Network,控制器局域網)是國際上應用最廣泛的汽車通信總線之一。為實現智能化控制、共享數據信息,商用車將所有的車載電器和ECU控制單元都搭載到CAN網絡總線上[1]。
隨著汽車ISO(International Standard Organization)診斷標準日趨完善,ISO 15765診斷通信協議規范了基于CAN總線的診斷服務UDS(Unified Diagnostic Services)。UDS是面向商用車控制單元的應用層協議(ISO 14229-1),提供了診斷服務的基本框架,主機廠和零部件供應商可以根據自身情況自定義診斷服務。
2? ? 緩速器控制器診斷需求說明
隨著汽車嵌入式技術的發展,商用車控制系統規模日益擴大,復雜程度不斷提高,給整車各種控制單元的診斷、升級服務帶來了新的挑戰。對緩速器而言,信號連接上,控制器與整車信號的交互已經從全硬線傳輸過渡到硬線加CAN通信傳輸上來,未來為了滿足整車數據共享的需求,將實現全CAN通信傳輸;整車均配備了OBD診斷接口,控制器與該接口連接,利用診斷儀等可以實現控制器程序升級及數據監測等。功能方面,原來識別駕駛員手柄檔位控制緩速器輸出制動力,現在能響應來自電子制動系統裝置(制動踏板)、車身裝置(手柄)的扭矩請求,精準控制緩速器輔助整車進行制動。整車人機接口方面,控制器與智能化儀表通過CAN方式進行交互,不僅線束連接更加簡單,還能實現運行數據、故障燈、故障碼顯示。綜上所述,對于緩速器控制而言,為滿足駕駛員對車輛功能持續提升、維修人員對車輛故障快速處理的需求,緩速器控制系統應支持用戶利用診斷儀對控制器進行程序刷寫、故障診斷、參數標定、數據采集等方面的操作。為了便于主機廠統一診斷,緩速器在進行自診斷開發的同時,也需要同步按照UDS規范進行診斷協議棧開發[2]。下面將詳細描述診斷協議棧的開發過程。
3? ? UDS診斷服務介紹
3.1? ? UDS服務原理
按照UDS規范,某一時刻控制單元處于某個診斷會話模式,此時若外部診斷設備對其按照物理或功能尋址的方式進行請求,作為控制器應實現相應的服務。
3.2? ? UDS服務功能總述
UDS診斷服務包括:診斷和通信管理(通信控制、安全訪問、診斷會話控制)、數據傳輸(讀取緩速器溫度數據、控制器版本信息)、存儲數據傳輸(清除診斷信息、讀取診斷碼DTC信息)、上傳下載服務(刷寫程序)[3]。
3.3? ? 尋址方式描述
物理尋址:當需要對某一具體ECU進行診斷服務時,外部診斷設備的數據傳輸層對ID進行配置,設備地址為被請求設備的節點地址,被請求的ECU支持相應的服務功能,執行必要的操作。
功能尋址:當需要對CAN網絡中的多個ECU進行診斷服務時,外部診斷設備的數據傳輸層對ID進行配置,設備地址為廣播地址,多個ECU應支持相應的服務功能,執行相關操作[3]。
對具體ECU進行診斷服務時,需要功能尋址和物理尋址結合使用,對網絡中的多個ECU進行服務請求。
4? ? 基于CAN總線的診斷服務開發
4.1? ? 診斷服務開發
ISO標準規定了汽車通信協議,所有的汽車通信協議都是基于ISO模型[3]。緩速器RCU的診斷服務開發內容如下:
(1)通過芯片自帶數據庫生成完整的底層驅動函數后,設計人員調用對應的函數,配置物理層及傳輸層參數即可。
(2)數據鏈路層完成通信數據幀的解析和封裝,使用CAN擴展幀(29位標識符)。
(3)網絡層參考IS0 15765-2標準對數據包進行分組,通過對單幀(SF)、第一幀(FF)、連續幀(CF)和流控制幀(FC)的操作,滿足數據傳輸的協議要求[4]。
(4)應用層由于緩速器控制單元對數據流讀取功能的設計要求極高,因此開發時針對故障診斷等應用而定義了必要的UDS診斷服務。
(5)功能層內置了對Flash讀寫的庫函數,該模塊的Bootloader引導程序調用Flash讀寫函數即可完成程序刷寫等功能。一個設計良好的Bootloader能加快汽車電控單元應用程序的開發,更能為后期的維護和升級工作提供便利[5]。
4.2? ? 設計要點
4.2.1? ? 會話模式控制服務
控制服務的選項有:01默認會話、02編程會話、03擴展會話。在同一時刻,僅能有一個診斷會話模式被激活。RCU上電后,診斷會話請求未接收到,將自動進入默認會話模式(01)。其他診斷會話模式超時后,RCU回到默認會話模式(01)。當診斷設備成功進入某一特定的診斷會話模式,RCU將不再繼續監測與該診斷會話模式相關的條件是否滿足;診斷設備和操作人員有責任保證允許進入的條件在整個診斷會話過程中一直有效[6]。
4.2.2? ? 故障讀取功能開發
在控制器上電運行期間,故障診斷功能使能,則若某故障觸發故障記錄,則相應的DTC信息更新。UDS服務模塊基于服務請求,依據狀態掩碼,反饋相應的DTC信息。狀態掩碼選項為“1.當前故障” “9.當前和歷史故障” “8.歷史故障”等。
4.2.3? ? 故障清除功能開發
基于服務請求,清除DTC信息的存儲及變量,復位DTC狀態到零。即故障狀態碼被復位為零,同時故障存儲也被復位到零。
4.3? ? 功能測試
首先診斷設備發出請求信息,此時數據傳輸層按照表1格式打包數據,然后傳遞給數據鏈路層和物理層。
接收到外部設備請求后,根據標識符從FLASH存儲中取出對應的17個字節數據,然后按照UDS的數據場要求進行打包,同時按照定時要求進行數據的發送。
對表2數據進行傳輸時,應用到了多幀,多幀的設計要點包括管理存儲、幀順序、幀之間時間間隔的控制等。
外部診斷設備對上述信息進行解包,便可得到需要的信息。
5? ? 結語
隨著軟件、通信技術的發展,診斷技術的應用越來越廣泛,從產品研發到售后服務貫穿車輛的整個生命周期。本設計已成功應用,采用該方式實現程序刷寫、故障診斷、參數標定,方便了生產、測試、應用和維護。
[參考文獻]
[1] 詹克旭.基于UDS協議的汽車ECU升級方案[J].計算機應用與軟件,2019,36(1):191-196.
[2] 孫俊揚.UDS診斷協議工作原理和診斷協議棧的開發[J].汽車與配件,2019(5):64-65.
[3] 白蒲江,劉小龍.一種液力緩速器控制系統自診斷設計研究[J].汽車維修,2014(9):4-6.
[4] Road Vehicles-Diagnostic on Controller Area Networks (CAN)-Part 2:Network layer services:ISO 15765-2:2004[S].
[5] 陳彤,黃立梅.一種用于汽車電控單元CAN Bootloader的設計與實現[J].汽車實用技術,2016(9):156-160.
[6] Road Vehicles-Unified Diagnostic Services (UDS)-Part1:
Specification and requirements:ISO 14229-1:2006[S].
收稿日期:2020-08-11
作者簡介:白蒲江(1979—),男,陜西蒲城人,工程師,研究方向:汽車電子控制系統軟件開發。