濰柴動力股份有限公司 薛雷 王喜龍 劉棟 柴廣卿 婁毅杰 杜飛嬌
本文以一款具備OTA 功能的車載終端為例,針對刷寫時間長的問題,從刷寫流程開展分析,對刷寫過程耗時分項統計,分析刷寫速度的影響因素與改進方式。經驗證,改進后的設備可以有效減少刷寫時間,提高刷寫效率。
控制器刷寫是發動機下線和后市場服務常用的功能?;贑AN 的控制器刷寫是當前商用車控制器程序升級的主要方式[1]。隨著控制器功能的不斷增加,控制器固件程序越來越大,導致刷寫時間也越來越長。太長的刷寫時間,會對刷寫穩定性、效率產生不良影響。特別是在OTA 技術的應用下,減少刷寫時長是產品應用亟須解決的問題。
基于UDS 協議的刷寫流程中,應用層遵循ISO15765-3、ISO14229 協議要求,網絡層遵循ISO15765-2 協議要求[2]。刷寫過程核心服務有:0x10-診斷會話管理、0x27-安全訪問、0x31-例程控制、0x34-請求下載、0x36-數據傳輸、0x37-傳輸退出,具體刷寫流程如圖1 所示。
圖1 控制器刷寫流程圖Fig.1 Controller swiping flow chart
刷寫過程可分為兩個階段,第一階段主要完成控制器的狀態切換,并通過安全訪問子服務中確保只有獲得授權的用戶才能對控制器進行刷寫,提升系統安全性;第二階段為刷寫的具體實現,一般按照整區擦除,分塊寫入的方式進行。首先,控制器按照功能分區執行整區擦除。然后執行下載和寫入,在此過程中,控制器校驗下載的起始地址、地址范圍等信息,校驗通過后啟動傳輸數據,在數據傳輸刷寫完畢后,控制器對刷寫的新數據進行校驗,以保證數據的完整性和正確性[3]。
某款終端產品,在產品應用中測試控制器刷寫過程,完整流程總耗時5 分56 秒。耗時分布如表1 所示。
表1 刷寫過程耗時統計Tab.1 Time consumption statistics of brush writing process
由表1 可見,在刷寫過程中控制器擦除和數據傳輸為主要過程。其中控制器擦除速度與刷寫流程無關,主要由控制器本身所決定,在本文中不做分析。
在編號6 的數據傳輸過程中,對控制器的數據接收及寫入所需時間同樣不做分析,僅考慮其在多包傳輸過程中的流控參數??刂破髦С值膫鬏攨等鐖D2 所示。
圖2 控制器的流控參數Fig.2 Flow control parameters of controller
在數據傳輸過程中,傳輸耗時由N_As、N_Br、N_Ar、N_Cs 組成。為簡化分析,將網絡層傳輸過程以及應用層的交互步驟整理為四個過程:流控幀的接收、續幀間隔、控制器應答以及OTA 設備多包傳輸間的間隔。步驟描述如圖3 所示。
圖3 數據傳輸序列圖Fig.3 Data transmission sequence diagram
基于上述步驟的分項耗時統計數據如表2 所示。
表2 數據傳輸過程耗時明細Tab.2 Time consuming details of data transmission process
在上述步驟中,續幀傳輸為主要的數據傳輸過程,流控應答為網聯傳輸層的傳輸控制,控制器應答為應用層應答確認。由于CAN2.0 協議的數據域只有8 字節,所以傳輸需要較多的發送次數。為降低刷寫時長,可以從減少執行次數和降低單次執行時間方面分析優化方案。
從減少執行次數方面考慮,請求下載階段的報文交互如圖4 所示,可以看出控制器支持最大傳輸塊的長度為0xFFF 字節(4095 字節),當前實際執行的傳輸塊大小為0xFF 字節(255 字節),傳輸過程有效負載有提升空間。
圖4 請求下載服務控制器應答Fig.4 Response of request to download service controller
另外,控制器中的數據分區存儲,在數據文件中一般都存在無效的填充區數據,從控制器固件本身分析,減少控制器固件中無效數據,同樣可以減少執行次數,縮短刷寫時間。
從降低單次執行方面:多包數據的發送間隔較大,主要為OTA 軟件程序調度周期的影響,該部分的耗時占比較大,存在優化的空間。
在0x36 服務的數據傳輸過程中,增加每次多包傳輸的數據塊大小,即數據塊大小由0xFF 字節(255 字節)增加為0xFFF 字節(4095 字節)。
剔除控制器固件中的無效填充區域,減小需傳輸數據文件的大小。例如,當前控制器的Data0 分區大小為2MB,范圍為0x09100000 ~0x09300000,對固件數據進行分析,去掉無效填充區后,數據可減小為1.86MB,即只包含范圍為0x09100000 ~0x092DC3FF 的數據。
優化程序執行主要措施為優化OTA 設備程序中的定時器粒度,調整中斷任務管理等。
綜合執行以上措施后,刷寫過程時間降低到2 分48秒。優化后的刷寫過程耗時如表3 所示。
表3 優化后刷寫過程耗時統計Tab.3 Time consumption statistics of brush writing process after optimization
本文針對控制器刷寫耗時,從刷寫過程詳細分析,結合控制器協議參數,分析關鍵步驟的優化方案,通過調整傳輸參數、減少填充區數據、優化OTA 設備軟件程序三種措施,有效降低了控制器刷寫時間,提高了刷寫效率。