在汽車軟件復雜度不斷攀升的今天,對不同核或分區(qū)上運行的復雜軟件進行調試或追蹤極具挑戰(zhàn)性,并且在POSIX系統(tǒng)或車輛上的復雜軟件進行分步調試往往更具挑戰(zhàn)。所以,如何在SDV域控制器開發(fā)測試環(huán)境中,將應用程序、中間件和內核日志與時間戳等信息同步結合匯聚到同一個日志流,以便更好服務軟件工廠或“黑燈”測試工廠,亦或為云端AI平臺提供日志調試軟件?AUTOSAR推出的組件DLT,其邏輯已從診斷日志追蹤(DiagnosticLog andTrace)演變?yōu)楦訉挿阂饬x的開發(fā)日志追蹤(DevelopmentLog andTrace)。

圖1 面向SDV平臺集成DLT調試日志
通常部分軟件開發(fā)工程師有配置ECU的硬件調試環(huán)境,但其它工程師幾乎沒有配置“Debug”ECU問題的環(huán)境。DLT作為ECU軟件的模塊匯聚調試日志并追蹤ECU內部問題,可以加速問題排查和解決。過往通過CANoe或CANoe Option AMD/XCP集成不同調試器或XCP獲取軟件狀態(tài),但是面向研發(fā)環(huán)境表現(xiàn)出廣泛的多樣性:
不同品牌調試器和調試器擴展模塊
ECU平臺多樣性和電路連接多樣性
不同軟件配置環(huán)境的License
不同的構建設置(例如,軟件工廠、HIL Farm)

圖2 CANoe Option AMD/XCP集成不同調試器或XCP獲取日志
通過統(tǒng)一的DLT作為調試手段增加軟件測試的靈活性和效果,允許根據(jù)嚴重性級別(例如“致命”、“錯誤”或“信息”)對調試信息進行過濾。該過濾器可以通過外部日志工具發(fā)送的DLT控制消息在運行時進行修改。還可以直接通知應用程序新的過濾級別,以便僅針對所選的嚴重性級別生成調試信息,運行時將消息分配到另一個通信總線上,或將修改后的DLT配置存儲為NV存儲(如果硬件支持的話)。開發(fā)與測試工程師使用CANoe Option AMD/XCP在支持CCP/XCP的同時,也可直接用其實現(xiàn)DLT數(shù)據(jù)進行在線采集或離線分析。

圖3 CANoe Option AMD/XCP直接獲取XCP或DLT日志
Part 1
DLT應用場景和協(xié)議概述
DLT是一個AUTOSAR基礎軟件模塊。雖然DLT協(xié)議與總線無關,但建議使用高帶寬總線,如以太網。盡管如此,DLT協(xié)議并不局限于以太網的使用,使得在沒有調試器的情況下調試ECU成為可能,并允許用戶在運行時進行配置。
>
使用DLT進行常規(guī)日志記錄:
應用程序/軟件組件向DLT模塊提供日志消息
日志消息要么被過濾,要么由DLT模塊創(chuàng)建DLT消息(取決于日志級別)
DLT模塊將DLT消息發(fā)送到通信總線
外部客戶端接收并存儲DLT消息

圖4 AUTOSAR DLT常規(guī)日志記錄
>
中間件VFB日志:
中間件調用DLT模塊提供的接口函數(shù),該函數(shù)調用DLT API生成追蹤消息
DLT模塊將追蹤消息發(fā)送到DLT通信模塊接口
DLT通信模塊將追蹤消息轉發(fā)到網絡
外部客戶端接收并存儲追蹤消息

圖5 中間件通過DLT記錄日志
>
運行時配置DLT日志:
外部客戶端設置日志和追蹤級別,并將更改發(fā)送至DLT模塊
通過DLT控制消息將更改發(fā)送到DLT模塊
DLT模塊相應地調整其過濾設置的配置
DLT模塊通知應用程序新的日志級別

圖6 運行時配置DLT日志
>
非冗長模式(Non-verbose)傳輸日志:使用外部解析文件的方式來高效解析有效數(shù)據(jù)載荷,從而避免在通信總線上發(fā)送關于變量的元素數(shù)據(jù),達到節(jié)省總線通信開銷的目的。外部DLT客戶端將這些元數(shù)據(jù)與接收到的參數(shù)值合并存儲。
應用程序/軟件組件向DLT模塊提供Non-verbose的日志數(shù)據(jù)
DLT模塊過濾并生成DLT消息
DLT模塊將DLT消息發(fā)送到通信總線
外部客戶端從外部文件中獲取元信息
合并的信息由外部客戶端存儲

圖7 Non-verbose模式日志
DLT協(xié)議是一種高層協(xié)議,與具體使用哪種總線無關。AUTOSAR規(guī)范中的DLT協(xié)議目前定義了v1和v2兩個版本,并在Log and Trace Protocol Specification中隨AUTOSAR各個Release逐步演進和規(guī)范化,例如在AUTOSAR FO R19-11及后續(xù)R24-11(PRS)中對相關能力進行了完善和擴展。在AUTOSAR發(fā)布的早期階段(約2010年前后),Vector在ECU軟件與工具鏈中對日志與追蹤機制進行了大量工程實踐,用于開發(fā)調試和問題分析,并隨著AUTOSAR 規(guī)范的演進持續(xù)支持和實現(xiàn)DLT協(xié)議,最終發(fā)展到當前廣泛使用的v2版本。
DLT v1版本包頭簡單、報文開銷小,因而在帶寬受限或資源受限的ECU上能夠實現(xiàn)低成本部署。

圖8 DLT v1版本標準報頭

圖9 DLT v1版本擴展報頭
DLT v2支持可變長度ID(動態(tài)ID)、高精度時間戳、分段傳輸(即報文超過單幀長度可切分并重組),更適合大載荷的場景。

圖10 DLT v2版本標準報頭

圖11 DLT v2版本擴展報頭
協(xié)議中還定義了兩種模式,分別是Verbose和Non-verbose模式,兩種模式在日志消息的嚴重性等級均提供:FATAL、ERROR、WARNING、INFO、DEBUG和VERBOSE。兩種模式的區(qū)別為:
>
Verbose模式:發(fā)送包含所有參數(shù)/文本的完整消息,便于閱讀與分析,但會消耗更多帶寬。
>
Non-verbose模式:可發(fā)送更緊湊的消息(例如僅發(fā)送參數(shù)或ID),消息結構可以通過FIBEX或ARXML數(shù)據(jù)庫文件解析,適合在帶寬受限場景降低開銷。
Part 2
日志追蹤“利器”
– 帶有DLT功能的CANoe Option AMD/XCP
通過收集日志信息來驗證ECU的正確功能,捕獲ECU的追蹤數(shù)據(jù)確保狀態(tài)流的正確變化,檢測ECU是否報告了錯誤(例如,配置錯誤或基礎軟件BSW錯誤),驗證從ECU生成的事件順序是否正確。針對如上需求,ECU需要集成對應的DLT軟件模塊:
>
基于XCP的DLT集成:現(xiàn)有XCP協(xié)議棧上只需將DLT API調用添加到定義事件中,配置中啟用相關功能則DET和DEM事件將自動傳輸,DEM事件支持按需過濾。
>
基于AUTOSAR的DLT集成:作為XCP DLT的替代方案,允許API更改DLT的日志級別,滿足整車廠集成DLT的功能要求。根據(jù)AUTOSAR日志定義控制日志級別(致命、錯誤、警告、調試、信息、詳細),將所有日志和追蹤聚集到集中式AUTOSAR服務組件中,基于軟件的時間信息、多核和分區(qū)日志。如AUTOSAR AP中ara::log提供每個階段的日志信息API,日志通過配置發(fā)送到特定日志接收器,若需要可通過DLT實現(xiàn)遠程調試。
CANoe Option AMD/XCP支持在開發(fā)與調試過程中加載A2L文件到CANoe中,并支持DaVinci工具在配置協(xié)議棧時可額外配置測量代碼,直接生成測試代碼用于CPU負載、任務執(zhí)行等信息用于后續(xù)自動化驗證。

圖12 CANoe支持A2L集成用于DLT與運行測量
CANoe支持在線和離線分析DLT數(shù)據(jù),可通過總線接口卡連接真實ECU獲取調試日志,對虛擬機如WSL中的vECU可通過集成SIL Kit來獲取調試日志。

圖13 真實ECU或虛擬ECU可通過CANoe實現(xiàn)DLT調試日志
CANoe支持Non-verbose和Verbose兩種模式,支持一鍵生成對應FIBEX中變量到CANoe工程,也可在配置工程節(jié)點后導入對應變量。

圖14 CANoe中DLT配置流程
對于Non-verbose模式消息的解析,插件根據(jù)FIBEX文件自動生成的變量,DLT變量緊隨每幀Ethernet Packet,直接被解析并顯示在Trace窗口,并可在Graphics窗口中以動態(tài)曲線方式顯示DLT日志信息。

圖15 CANoe解析Non-verbose模式日志
對于Verbose模式消息的解析,具體的Payload會直接被解析成結構體,并在Trace窗口顯示。

圖16 CANoe解析Verbose模式日志
同時CANoe支持發(fā)送DLT Control Message,如Set Log Level命令。

圖17 使用CANoe發(fā)送DLT Control Message
Part 3
總結和展望
SDV發(fā)展迭代必然需要更豐富的調試手段。AUTOSAR DLT作為調試器之外的另一種獲取調試日志的方式,將更好服務車輛開發(fā)各環(huán)節(jié)。CANoe Option AMD/XCP配合DLT功能提供更加全面的功能,在獲取CCP/XCP數(shù)據(jù)日志信息的同時,助力工程師更好地通過DLT分析和調試ECU。當然在車輛生產時,DLT應當關閉以滿足網絡安全需求。DLT技術也在迭代,CANoe也將更好支持“軟調試”技術,進一步提升便利性。
-
測試
+關注
關注
9文章
6192瀏覽量
131335 -
控制器
+關注
關注
114文章
17786瀏覽量
192995 -
SDV
+關注
關注
0文章
95瀏覽量
7554 -
DLT
+關注
關注
0文章
17瀏覽量
5514
發(fā)布評論請先 登錄
分布式日志追蹤ID實戰(zhàn)
請問SDV1.0 SDV2.0 MMC是什么區(qū)別啊!
光線追蹤技術的作用
基于機器學習的日志解析系統(tǒng)設計與實現(xiàn)
淺談東軟睿馳推出的SDV產品與解決方案
Advanced Host Monitor軟件包輔助組件之日志分析器
解析Linux系統(tǒng)日志
Spring Boot如何實現(xiàn)日志鏈路追蹤
DLT Support in CANape
SDV域控器日志追蹤與解析技術 – DLT
評論