游長能
(法雷奧汽車內部控制(深圳)有限公司,518128)
基于LabVlEW的CAN總線UDS診斷工具開發
游長能
(法雷奧汽車內部控制(深圳)有限公司,518128)
CAN總線是汽車上應用最廣泛的通訊總線之一,在帶CAN總線ECU的軟硬件開發、產線測試、整車組裝與調試過程中診斷協議是不可或缺的一種工具,通過診斷協議可以實現ECU的在線程序燒錄、功能校準、內部錯誤和診斷碼的讀取和清除等功能。目前應用最廣泛的診斷協議是UDS診斷協議。本文介紹了一種基于LabView的CAN總線UDS診斷工具開發。
UDS;CAN;診斷工具
UDS(Unified Diagnostic Services)診斷協議是ISO 15765和ISO 14229定義的一種汽車通用診斷協議,可在不同的汽車總線(例如CAN, LIN, Flexray, Internet和K-line)上實現,其中關于LIN總線UDS協議的定義是2015年發布的ISO 14229-7,目前大部分汽車廠商均采用UDS診斷協議。
在UDS診斷產品中知名度最高,應用最廣泛的是德國Vector公司的CAN case配合其CANoe軟件, Vector產品功能齊全,適合系統級汽車總線開發,被大部分汽車廠商采用。
Vector產品因不開放API,不能做二次開發且價格昂貴,不適用于硬件開發團隊和生產線的自動化測試。目前市面上有很多CAN廠商(如Kvaser, ZLG等)能提供低成本、體積小、驅動簡單、開放API的設備,非常適合二次開發。
本文所述UDS診斷工具系統層級結構如下圖(1)所示,每一層均基于下一層提供的服務來實現。最底層是由CAN設備庫函數構成的API,圖(2)是一個Kavaser CAN設備庫函數的例子,CAN API定義了上位機與CAN設備的底層通訊接口。

圖(1)系統層級結構

圖(2)Kvaser CAN設備庫函數舉例

圖(3)UDS分段幀
CAN發送/接收子VI通過對庫函數的調用實現CAN消息的發送與接收,通常支持二次開發的CAN設備廠商會提供LabView的庫,其中包含了CAN設備的初始化、CAN消息的發送與接收等常用子VI,如果沒有現成的子VI,則要根據庫函數創建必須的子VI。
ISO15765-2定義了UDS網絡層的內容,如果UDS消息長度小于或等于7個字節,則只需要發送一個常規CAN消息幀,即單幀。
如果UDS消息長度大于7個字節,則需要把消息分段發送,如下圖(3)所示。發送方先發送首幀,然后等待接收方的流控制幀,流控制幀定義了發送方后續幀的區塊大小即幀的個數BS,后續幀的最小幀間間隔時間STmin,發送方發完BS字段所規定的后續幀后再等待接收方的下一個流控制幀,重復上述后續幀發送流程直到所有UDS消息發完為止。UDS消息的接收與發送的流程一樣,只是接收方和發送方互換。
基于UDS消息的發送和接收子VI可開發UDS服務應用程序,ISO15765-3定義了UDS應用層和會話層的內容,常用的UDS服務有會話控制、ECU復位、按ID讀取和寫入數據、診斷碼讀取等。
通過基于CAN接口設備API的分層開發架構開發的UDS服務程序能夠實現各種UDS服務,具有結構清晰、成本低、應用靈活、方便維護等特點,能夠快捷地將其移植到其他總線上實現UDS服務,在硬件調試和生產線的自動化測試中具有廣泛的應用前景。
[1] Road vehicles — Diagnostics on Controller Area Networks(CAN), ISO 15765-2:2004(E).
[2] Road vehicles — Diagnostics on Controller Area Networks(CAN), ISO 15765-3:2004(E).
Development of CAN bus UDS diagnostic tool based on LabVIEW
You Changneng
(Long to Valeo interior control (Shenzhen) Co., Ltd.,518128)
CAN bus communication bus is one of the most widely used diagnostic protocol,assembled in hardware and software development,CAN bus ECU production line test,vehicle and debugging process is an indispensable tool, through the diagnostic protocol ECU can achieve the online program recording function,calibration, and internal error diagnosis codes read and clear functions.At present,the most widely used diagnostic protocol is UDS diagnostic protocol. In this paper, a LabView based CAN bus UDS diagnostic tool is introduced.
UDS;CAN;diagnostic tool