游長能
(法雷奧汽車內(nèi)部控制(深圳)有限公司,518128)
基于LabVlEW的CAN總線UDS診斷工具開發(fā)
游長能
(法雷奧汽車內(nèi)部控制(深圳)有限公司,518128)
CAN總線是汽車上應(yīng)用最廣泛的通訊總線之一,在帶CAN總線ECU的軟硬件開發(fā)、產(chǎn)線測試、整車組裝與調(diào)試過程中診斷協(xié)議是不可或缺的一種工具,通過診斷協(xié)議可以實(shí)現(xiàn)ECU的在線程序燒錄、功能校準(zhǔn)、內(nèi)部錯(cuò)誤和診斷碼的讀取和清除等功能。目前應(yīng)用最廣泛的診斷協(xié)議是UDS診斷協(xié)議。本文介紹了一種基于LabView的CAN總線UDS診斷工具開發(fā)。
UDS;CAN;診斷工具
UDS(Unified Diagnostic Services)診斷協(xié)議是ISO 15765和ISO 14229定義的一種汽車通用診斷協(xié)議,可在不同的汽車總線(例如CAN, LIN, Flexray, Internet和K-line)上實(shí)現(xiàn),其中關(guān)于LIN總線UDS協(xié)議的定義是2015年發(fā)布的ISO 14229-7,目前大部分汽車廠商均采用UDS診斷協(xié)議。
在UDS診斷產(chǎn)品中知名度最高,應(yīng)用最廣泛的是德國Vector公司的CAN case配合其CANoe軟件, Vector產(chǎn)品功能齊全,適合系統(tǒng)級汽車總線開發(fā),被大部分汽車廠商采用。
Vector產(chǎn)品因不開放API,不能做二次開發(fā)且價(jià)格昂貴,不適用于硬件開發(fā)團(tuán)隊(duì)和生產(chǎn)線的自動(dòng)化測試。目前市面上有很多CAN廠商(如Kvaser, ZLG等)能提供低成本、體積小、驅(qū)動(dòng)簡單、開放API的設(shè)備,非常適合二次開發(fā)。
本文所述UDS診斷工具系統(tǒng)層級結(jié)構(gòu)如下圖(1)所示,每一層均基于下一層提供的服務(wù)來實(shí)現(xiàn)。最底層是由CAN設(shè)備庫函數(shù)構(gòu)成的API,圖(2)是一個(gè)Kavaser CAN設(shè)備庫函數(shù)的例子,CAN API定義了上位機(jī)與CAN設(shè)備的底層通訊接口。
圖(1)系統(tǒng)層級結(jié)構(gòu)
圖(2)Kvaser CAN設(shè)備庫函數(shù)舉例
圖(3)UDS分段幀
CAN發(fā)送/接收子VI通過對庫函數(shù)的調(diào)用實(shí)現(xiàn)CAN消息的發(fā)送與接收,通常支持二次開發(fā)的CAN設(shè)備廠商會提供LabView的庫,其中包含了CAN設(shè)備的初始化、CAN消息的發(fā)送與接收等常用子VI,如果沒有現(xiàn)成的子VI,則要根據(jù)庫函數(shù)創(chuàng)建必須的子VI。
ISO15765-2定義了UDS網(wǎng)絡(luò)層的內(nèi)容,如果UDS消息長度小于或等于7個(gè)字節(jié),則只需要發(fā)送一個(gè)常規(guī)CAN消息幀,即單幀。
如果UDS消息長度大于7個(gè)字節(jié),則需要把消息分段發(fā)送,如下圖(3)所示。發(fā)送方先發(fā)送首幀,然后等待接收方的流控制幀,流控制幀定義了發(fā)送方后續(xù)幀的區(qū)塊大小即幀的個(gè)數(shù)BS,后續(xù)幀的最小幀間間隔時(shí)間STmin,發(fā)送方發(fā)完BS字段所規(guī)定的后續(xù)幀后再等待接收方的下一個(gè)流控制幀,重復(fù)上述后續(xù)幀發(fā)送流程直到所有UDS消息發(fā)完為止。UDS消息的接收與發(fā)送的流程一樣,只是接收方和發(fā)送方互換。
基于UDS消息的發(fā)送和接收子VI可開發(fā)UDS服務(wù)應(yīng)用程序,ISO15765-3定義了UDS應(yīng)用層和會話層的內(nèi)容,常用的UDS服務(wù)有會話控制、ECU復(fù)位、按ID讀取和寫入數(shù)據(jù)、診斷碼讀取等。
通過基于CAN接口設(shè)備API的分層開發(fā)架構(gòu)開發(fā)的UDS服務(wù)程序能夠?qū)崿F(xiàn)各種UDS服務(wù),具有結(jié)構(gòu)清晰、成本低、應(yīng)用靈活、方便維護(hù)等特點(diǎn),能夠快捷地將其移植到其他總線上實(shí)現(xiàn)UDS服務(wù),在硬件調(diào)試和生產(chǎn)線的自動(dòng)化測試中具有廣泛的應(yīng)用前景。
[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