車載測試:如何用CANape進行ADAS實車功能測試?
前言
CANape是一款用於ECU測量、標定、診斷以及ADAS感測器資料採集的工具型軟體。
測量——透過CANape不僅能採集記錄ECU內部訊號,還支援與車輛上的各種感測器的匯流排進行通訊。與ECU不同,ADAS感測器不提供車輛實際執行訊號,而是提供車輛執行時周圍環境的詳細資訊,如透過攝像頭和雷達感測器感知周圍環境。感測器感知周圍環境,將車身所處環境資訊傳至ECU透過ADAS演算法分析決策之後,控制相應執行器動作。
環境感知是ADAS技術中最基礎、最重要的一環,感知系統提供資訊的準確性直接影響到了整個ADAS系統的效能。透過CANape對感測器識別感知資訊進行採集,以提高ADAS系統分析決策的準確率。此外CANape還支援最近很火的BEV功能,透過關聯目標的座標、速度等引數可以實時以圖形化的形式對目標物進行視覺化顯示。
標定——透過CANape可對ECU內部的標定量進行修改,例如透過標定量來開啟/關閉ADAS各種功能的開關(AEB、ACC、FCW、LKA、DOW、BSD等)以及修改制動時的減速度數值、功能觸發的TTC區間等,從而最佳化車輛控制策略。
診斷——透過CANape的診斷視窗可以實時顯示各路資料包文的收發情況,通常包括ECU內部資料以及各路匯流排資料,如Flexray、Chassis底盤報文、Radar雷達報文以及角雷達報文等。
下面將會具體說明測試工程師是如何利用CANape進行ADAS功能測試。
協議
對於新手來說,想用CANape採集ECU資料,XCP協議是一個非常基礎也非常重要的知識點。一般情況下,我們想讀取XCP協議的資訊,都有專業的工具支援,比如Vector工具鏈中的CANape,這是一款強大的線上標定、讀取工具,XCP協議有幾種工作模式,我們可以採用其中的標準模式,即問答模式,主結點Master發出需求指令,從結點Slave進行響應,如下圖所示是XCP協議標準模式的基本原理:
XCP的主結點側,通常提供為在PC上執行的應用程式,一般就是CANape軟體。相對的,從結點側則提供為ECU中的嵌入式C語言原始碼的形式的軟體模組。
Vector對於XCP on Ethernet共提出了兩套方案,一套為基於VN5000系列乙太網路介面卡,透過100/1000 Base-TX或100/1000 Base-T1,再基於XCP on Ethernet進行資訊互動,另一套為基於VX1000系列高速標定裝置,透過POD介面和Adapter連線目標控制器,最後透過XCP on Ethernet對目標控制器記憶體資料可進行高速捕捉和標定,下圖展示了測試常用的VX1000基本的硬體連線。
VX1000的POD裝置透過除錯介面(例如DAP或JTAG)連線到ECU,POD透過高速線束連線到VX1000的基礎模組,上位機和VX1000的基礎模組之間透過乙太網的XCP協議(XCP on Eth)進行通訊。詳細內容也可從Vector官方說明文件檢視。
XCP使用時總是與ECU說明檔案配合使用,這個檔案就是ASAP2(A2L)檔案。該檔案包含使用XCP所需的必要資訊,包括關於ECU引數、記憶體變數和ECU記憶體詳細地址資訊等。
A2L檔案類似於dbc,對比如下:
elf |
ELF檔案通常用於讀取變數或函式的地址 |
---|---|
a2l |
①一般simulink生成的A2L中是不帶地址資訊的,需要後面透過帶有地址資訊的可執行檔案來填充地址,一般採用工具自動實現填充。測量量的地址資訊來源於A2L檔案,A2L檔案的製作來源於程式碼生成中編譯的.ELF或其他生成檔案。②a2l定義標定量,相當於是標定量的一本字典,讀取模組內部才能讀到,匯入後能看到標定量的名字和標定值。 |
dbc |
定義匯流排訊號,相當於是匯流排訊號的一本字典,不匯入看到的匯流排資料都是二進位制的數字串,匯入後相當於基於字典對二進位制數字串進行翻譯,能看到匯流排訊號的值。 |
XCP可以從ECU上傳資料,向ECU下載資料以及對ECU重新程式設計。為了實現這些功能,XCP Master必須知曉ECU不同記憶體區的詳細資訊。
A2L檔案包括:裝置引數資訊、介面資料資訊和ECU引數資訊。
①裝置引數資訊:描述了ECU的基本資訊和ECU資料單元的一些公共屬性;
②介面資料資訊:描述了標定系統與ECU通訊時所需配置的介面資訊;
③ECU引數資訊:描述了內部資料單元的詳細內容。
A2L是基於ECU軟體生成的,ECU軟體的物件包含在A2L檔案中,原始碼更改後A2L檔案也會進行更改。
以上就是作為ADAS測試工程師使用Canape需要掌握的協議部分的基礎內容,可能對於初學者比較晦澀,需要一定的時間來消化吸收,可以多去去Vector官網瀏覽,上面也有詳細的說明。對於協議如果還不是很清楚對下文的測試工程等配置流程不會產生太大的影響。
工程配置
在上述協議部分有提到VX1000這一裝置,VX1000是透過乙太網與測試的PC直連,因此首先確保上位機的電腦與VX1000裝置在同一網段,並且沒有防火牆限制。VX1000預設IP為192.168.0.6,因此本地ip可設定成與其不衝突的其他IP:192.168.0.x,子網掩碼為:255.255.255.0。
使用需要對VX裝置進行相關的配置,配置VX裝置需要使用到Vector VX工具包。VXtools工具包用來顯示VX裝置、寫入或者讀取VX1000裝置的配置、與ECU通訊的Debug資訊以及更新VX1000裝置的韌體。
在電腦成功識別到VX裝置後,我們需要在VXconfig中對裝置寫入正確的Base Module以及POD引數配置,具體步驟如下:在VXconfig中,點選Target——>General,其中Address of ECU Parameter Structure該地址描述了gVX1000結構在ECU記憶體中的位置,它的地址在版本的MAP檔案中找到。
在完成VX相關的基礎設定之後,即可根據測試需要New Device,如VX1000,FlexRay,XCP,FLR前雷達,Chassis底盤以及參考Camera等。
以上配置完成即可點選選單欄”小閃電”開始採集測試資料。
總結
CANape作為一款在業界被廣泛使用的標定測量工具,功能涵蓋ECU測量標定的幾乎所有應用領域:無論是測量非常大的資料量、標定數千個引數,到整合基於模型的開發,再到為ADAS ECU提供完整的解決方案。隨著技術不斷髮展,CANape也補充了許多擴充和產品,其Driver Assistance(DA)選件,如VX1000高速測量標定硬體,將CANape的應用範圍擴充套件到ADAS系統的開發與測量領域,並積累了豐富的使用案例,適用於實車測試場景下的可靠資料記錄。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034708/viewspace-2999373/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 車載T-Box邏輯功能測試方案
- 車載乙太網第二彈|測試之實錘-AVB測試實踐
- 哪些功能需要進行效能測試?
- 想要快速進入車載測試?這份車載面試題集錦送給你,建議收藏!面試題
- 車載乙太網第二彈|測試之實錘-1000BASE-T1 IOP測試實踐
- 【車載測試】硬體在環模擬(HiL)
- Locust 進行分散式負載測試分散式負載
- 智慧駕駛實車測試系統-VDAS
- CANape 22.0驚豔亮相!全面升級的新特性引領汽車測試技術飛躍!
- 軟體測試中的功能測試和非功能測試
- 智駕模擬測試實戰之自動泊車HiL模擬測試
- 負載測試如何尋找"拐點"?使用哪種方法進行測試?負載
- 軟體測試之網站測試如何進行?測試小攻略走起!網站
- 功能測試
- 效能測試進階實踐篇:10分鐘教你使用JMeter進行websocket測試!JMeterWeb
- 做車載測試3年,我的思考與總結
- 使用 Laravel 進行商品功能測試Laravel
- 使用JMeter進行負載測試快速入門JMeter負載
- android測試常用的adb命令以及進行Monkey測試Android
- Flutter測試(二):在專案中進行 Widget 測試Flutter
- 介面測試怎麼進行,如何做好介面測試
- 功能測試之審批流測試
- 門戶系統測試---功能測試
- (一)效能測試(壓力測試、負載測試)負載
- 一個測試用例裡面有多套測試資料,如何用 beautifureport 分別對各組測試資料進行統計測試通過與否
- 功能測試、自動化測試、效能測試的區別
- 【星雲測試】開發者測試-採用精準測試工具對SpringBoot應用進行測試Spring Boot
- 測試行業哪個業務分支加班最嚴重,遊戲?車載?金融?行業遊戲
- 軟體已經寄了,但是車載測試在瘋狂吃肉?
- postman工具進行介面測試Postman
- 使用 HTTPie 進行 API 測試HTTPAPI
- 使用Loadrunner進行效能測試
- charles 如何進行介面測試?
- 使用PostMan進行API測試PostmanAPI
- postman進行http介面測試PostmanHTTP
- 介面測試,負載測試,併發測試,壓力測試區別負載
- 高階測試:如何使用Flink對Strom任務的邏輯功能進行復現測試?
- 測試測試測試測試測試測試