冉旭晴
(上海北匯信息科技有限公司,上海 嘉定 201800)
“智能化、網聯化、電動化、共享化”已成為汽車產業變革的必然趨勢,汽車產品逐步由傳統代步機械工具向新一代具備感知和決策能力的智能終端轉變。“四化”變革趨勢的需求使得汽車的電子電氣架構由分布式處理器架構逐步向域控制器架構和中央計算平臺架構演變,汽車軟件將成為定義整車功能的關鍵[1]。而車內的域控制器承擔了新四化的主要功能,電子架構也大多采用MPU/SOC+MCU方案,如智能網聯域控制器、智能座艙域控制器、智能駕駛域控制器等,域控之間的通信也主要使用車載以太網。針對域控制器的升級軟件大小往往是幾百MB甚至幾GB,使用傳統的診斷服務實現軟件傳輸與更新,無法有效利用以太網總線帶寬,對產線升級或者OTA升級的效率都會產生影響。針對大體量的軟件升級,已有OEM使用一種新型升級方案,基于SOA與一種文件傳輸協議實現域控制器的軟件升級。
UDS協議是診斷服務的標準規范,規定了診斷服務的具體命令[2]。使用UDS服務刷寫是目前更新汽車控制器軟件的主要方案。針對域控制器,主要使用DoIP+UDS協議來實現刷寫方案。DoIP(Diagnostic communication over Internet Protocol)是一種基于互聯網協議的診斷。基于該診斷協議,主機廠和售后工程可以對車輛進行診斷、刷新等操作[3]。在此種方案中,DoIP用來傳輸診斷數據,通過UDS的0x34/0x38、0x36、0x37診斷服務實現升級軟件的控制與傳輸,文件的傳輸主要通過0x36服務。如圖1所示,DoIP的報頭長度為8個字節,另外在凈荷中有4個字節用來表示邏輯地址,在0x36傳輸數據過程中,UDS中的SID+blockSequenceCounter占據兩個字節,所以每次傳輸一次數據,有14個字節的占用。

圖1 DoIP報文結構
另外一方面,由于協議分層,域控制器收到TCP數據后,需要將數據分配給DoIP協議棧處理,再分配給UDS協議棧處理,每個層級都需要給相應的ACK,如圖2所示,DoIP數據傳輸時域控制器需要響應DoIP 0x8002報文(使用簡化版DoIP時不需要),在UDS層收到診斷請求后,需要回復肯定響應,Tester才能繼續發送診斷數據。

圖2 數據傳輸分層
基于以上兩點,DoIP+UDS的方案受到報頭長度、協議分配處理、協議響應影響數據傳輸效率,無法有效利用以太網總線帶寬。
在軟件定義汽車的時代,越來越多的OEM選擇基于SOA架構開發軟件。SOA是從遵循服務導向原則的可重用服務中構建復雜軟件系統的方法[4],即面向服務的架構;目前在汽車行業實現SOA架構的主要有SOME/IP與DDS兩種協議;軟件更新可以在SOA架構下采取新的方案;已有OEM使用一種實現了SOA架構的協議與一種文件傳輸協議,來實現域控制器的軟件升級。以下簡稱“SOA協議”和“文件傳輸協議”。
主要的流程如圖3所示,由主節點來發起升級任務,此流程主要在車內進行。主節點首先通過SOA協議給從節點建立升級任務,再將升級包通過文件傳輸協議發送給從節點,同時通過SOA協議控制升級流程;文件傳輸協議基于可靠TCP傳輸協議,在傳輸數據過程中,利用TCP傳輸數據的可靠性與速度,無其他上層協議的報頭占用,無上層協議的轉換,可以實現升級包的穩定、可靠、快速傳輸,并且流程簡單。相比使用診斷服務實現升級,此流程簡潔高效,能快速實現升級軟件的目的。

圖3 基于SOA協議升級流程簡介
基于SOA與文件傳輸協議的域控制器升級測試,主要分為主節點測試與從節點測試。針對從節點升級測試,主要分為以下幾個部分:①正向流程測試;②狀態跳轉測試;③故障碼測試;④場景測試。測試內容如表1所示。

表1 從節點測試用例分類
針對主節點升級測試,主要分為以下幾部分:①主節點自升級測試;②流程控制測試;③故障處理測試;④場景測試。測試內容如表2所示。

表2 主節點用例測試分類
使用Vector的CANoe+VN56xx來開發測試用例與執行測試,加上基本外設,如程控電源等,可以快速搭建好測試環境,如圖4所示。在自動化測試中,使用CANoe仿真主節點,主要實現的是SOA協議與文件傳輸協議兩個模塊功能:①仿真CANoe作為主節點,發送SOA協議請求給DUT,來控制升級流程;②仿真CANoe作為文件傳輸協議Server,收到DUT的請求后,將升級包發送給DUT。測試腳本框圖如圖5所示。

圖4 測試環境

圖5 測試腳本框圖
CANoe仿真主節點給從節點建立升級任務后,從節點請求升級包路徑,仿真主節點響應升級包路徑,從節點使用文件傳輸協議獲取升級包。仿真主節點使用文件傳輸協議發送升級包,在傳輸過程中可以使用SOA協議周期讀取傳輸進度,等待傳輸完成后,仿真主節點發送安裝請求,在安裝過程中周期讀取安裝進度。圖6是傳輸升級文件階段的測試報告,從報告中可以查看具體的升級流程,并能查看文件傳輸進度,圖7是測試數據的示例。文件傳輸完成后,則通過SOA協議控制安裝升級包,如圖8所示。通過測試腳本,將升級流程簡化為報告,幫助測試人員將精力從大量的數據中抽出,集中在測試流程的分析上。

圖6 建立任務與傳輸過程測試報告

圖7 一種“文件傳輸協議”傳輸數據

圖8 安裝升級包測試報告
軟件帶動著汽車技術的革新,引領汽車產品差異化發展潮流,正逐漸成為汽車信息化、智能化發展的基礎和核心[5]。同時,越來越復雜的軟件對軟件開發、測試都帶來巨大的挑戰,安全、可靠、高效的軟件更新是軟件持續優化迭代的重要保障。在汽車軟件研發階段中,軟件更新功能可靠性與穩定性,需要通過設計測試用例并通過測試實施,確保軟件更新功能滿足需求。本文介紹基于SOA與文件傳輸協議的域控制器升級測試方案,其在汽車電子領域已廣為接受并采用。