王邵龍,谷原野,劉德利,孫運璽
(一汽轎車股份有限公司,吉林 長春 130000)
隨著汽車電子電氣技術的快速發展,車載電子控制單元數量日益增多,對控制器軟件的更新需求也越來越多。Bootloader是在主程序運行前的一段小程序,主要完成應用數據下載和更新任務[1],是底層硬件與上層應用軟件之間的交互接口,與用戶應用程序完全獨立[2],由于其刷寫速度快、車載接口方便的特點,得到了大家的普遍使用。
目前,控制單元Bootloader刷新流程的設置主要基于ISO 14229和ISO 15765標準,在此基礎上,各主機廠根據不同情況略有不同。針對控制單元Bootloader刷新測試,目前采用的軟硬件工具主要有Vector公司的CANcaseXL /CANoe、Softing公司的EDICusb / DTS(Diagnostic Tool Set)工具集等;但以上工具都不是針對Bootloader測試開發,所以設置繁瑣、價格昂貴。本文提出了一種基于Kvaser Leaf Light v2設備的車載控制單元Bootloader測試系統(以下簡稱測試系統),能夠實現控制單元Bootloader刷新流程中的預刷新、刷新程序、刷新后處理的自動化測試,并自動判斷測試結果。
Kvaser Leaf Light v2是瑞典Kvaser公司推出的用于CAN總線的單通道高速USB接口,具有價格低廉、方便攜帶等特點。
測試系統主要由PC機、Kvaser Leaf Light v2總線通信設備、被測ECU組成。其中,PC機通過USB接口連接Kvaser Leaf Light v2總線通信設備,Kvaser Leaf Light v2設備通過DB9接頭連接網關Diag_CAN,再由網關連接相應總線上的被測ECU,具體連接情況如圖1所示。實際應用中,也可以通過OBD接口連接。

圖1 測試系統硬件連接圖
圖2為測試軟件初始界面——測試界面。本系統網絡層遵循ISO 15765-2[3]標準,應用層遵循ISO 15765-3[4]標準,診斷服務參考ISO 14229[5]標準。測試系統的人機接口分為測試界面和配置界面兩部分。軟件運行后的初始界面為測試界面,在此界面中主要包括4個方面的內容。
1)裝載內容窗體 顯示裝載的下載文件的內容,可加載*.hex,*.s19,*.bin,*.mot等多種格式的flash文件。
2)配置窗體 用于配置下載過程中的參數,包括安全算法MASK值、裝載文件個數、連續刷寫次數、連續刷寫間隔、診斷口波特率、ECU類型、文件分段個數、文件分段大小、文件分段使能、刷寫失敗后可繼續發送、暫停下載后可繼續下載、直接進入編程會話下載、配置管理按鈕、確認按鈕等。

圖2 測試軟件初始界面——測試界面
3)操作窗體 包括裝載文件按鈕、下載按鈕、暫停下載按鈕、繼續下載按鈕、清除顯示按鈕、存儲Trace按鈕、停止顯示按鈕等。
4)運行信息窗體 主要顯示外部下載工具的初始化信息、下載過程中的數據信息、下載結果狀態信息等。
通過測試界面的配置管理按鈕,可以打開配置界面,如圖3所示。

圖3 測試軟件配置界面
在整個下載過程中,需要首先通過此界面制作或導入下載時所用的配置文件。此界面主要包括三大窗體的內容。
1)命令及參數設置框 用來編輯下載所需的配置文件及配置某些下載參數,包括基礎參數如數據下載延時(STmin)、P2CAN_ECUmax、P2NCAN_ECUmax以及被測控制器的請求響應ID等。
2)命令操作 ①加入命令:把目前命令框中顯示的具體數值按照命令列表窗口中所需的內容加入到命令列表中,形成一條下載命令。②刪除命令:刪除最近加入的一條命令。③導入配置:導入已經生成的命令列表配置文件,文件格式為*.TXT文件,并在命令列表窗口中完全顯示。④存儲配置:將當前命令集存儲為*.TXT文件。⑤確認:將當前命令集讀入系統內存,做好下載準備。⑥退出:退出圖3所示的配置管理界面,命令列表窗口中的命令集不會被讀入內存。
3)命令列表窗體 在此窗體中,通過修改、刪除、插入動作,實現對命令的修正。
測試系統具體測試執行流程如圖4所示。打開程序后,通過加載已生成的命令列表配置文件或新建命令列表配置文件,如圖3所示;按照Bootloader測試需求加入對應的命令條目,生成測試所需的命令列表。

圖4 測試執行流程圖
確認命令列表后,在軟件的測試頁面-配置窗體中,選擇正確的下載參數;在操作窗體中,進行文件裝載后,點擊下載按鈕,進行測試,軟件對測試數據進行處理和分析,并生成測試結果,結果反饋到運行信息窗體中,圖5和圖6分別表現了正在下載和下載成功時軟件的運行情況。

圖5 測試軟件運行中

圖6 測試結果反饋
結合圖5、圖6中TPMS Bootloader測試執行效果,闡述執行過程如下。
1)加載TXT格式的下載命令列表至測試系統中。
2)選擇正確的測試參數,并加載需要被下載到控制器中的Flash文件。
3)點擊下載按鈕,測試系統(上位機)自動發送診斷命令,并持續保持檢測控制器的診斷響應與命令列表中的預設值是否一致。如完全一致,繼續執行命令列表中的后續命令;如不一致,測試結果為下載失敗,并立即終止測試。
4)命令列表持續發送完畢并檢測無誤后,測試終止,并提示下載成功。
5)測試完成之后,不論下載成功或失敗,點擊存儲Trace,系統自動保存下載過程Trace,包含了測試每一步驟的診斷請求和響應。
本文闡述了測試系統的硬件和軟件設計方案,及其應用于控制器Bootloader功能測試的效果,能夠有效發現控制器在Bootloader功能中存在的問題,保證了控制器的開發品質和不同控制器在Bootloader功能上的一致性。
本測試系統的人機界面友好,軟件設計通用化,可加載多種格式的flash文件,對于不同車型平臺、不同控制器,只需要更改控制器的掩碼即可,可大大縮短由于測試軟件參數配置而耗費的周期和成本,并能夠在試制車輛需要進行軟件更新時,方便地使用OBD接口進行更新,避免了零部件拆裝帶來的麻煩。
[1] 蔡營,王永峰,范志容,等.基于CAPL的CAN控制器Bootloader上位機系統設計[J].汽車電器, 2017(3):68-72.
[2] 王青萍.嵌入式系統啟動軟件Bootloader 的設計[J].現代電子技術,2008(10) : 70- 72.
[3] ISO 15765-2,Road vehicles-Diagnostics on Controller Area Networks(CAN)-Part2: Network layer services[S].
[4] ISO 15765-3,Road vehicles-Diagnostics on Controller Area Networks(CAN)-Part 3: Implementation of unified diagnostic services(UDS on CAN)[S].
[5] ISO 14229,Road vehicles-Unified diagnostic services(UDS)-Specification and Requirement[S].