知識文章
車電安全系統線上韌體更新技術介紹
車輛中心 研究發展處 林裕勝
近年來,車輛電子科技蓬勃發展,嵌入式系統晶片運算能力不斷地提升,且仍維持低耗能要求,因此車電安全系統的應用已經成為車輛產業革新的主要訴求。無論是影音娛樂系統或是行車安全的各種先進駕駛輔助系統(ADAS),均需仰賴安裝於車上的電子設備(感測器、控制器、制動器)來達到相應的功能,且車電安全系統之軟硬體功能安全設計,對於安全性及可靠度需求非常嚴格,因此,無論是系統自我診斷與功能方面程式修改,甚或是大變動的版本升級,都有其更新的必要性。
各車電安全系統之間,會因為功能判斷需求,利用車載網路CAN Bus介面進行資訊傳輸,例如感測系統、車身訊號、控制系統以及致動模組等,各車電安全系統透過CAN Bus傳遞訊息時,必須遵守CAN通訊協定ISO 11898通訊層與實體層規範,以確保其資訊傳輸的正確性。
由於車上各車載電子系統(車電安全系統、多媒體影音系統…)皆連接於車載網路CAN Bus上,如果能夠直接透過CAN Bus進行系統線上韌體更新,可避免找尋系統控制器硬體的位置,以及減少拆裝系統控制器硬體的時間,也能克服不同系統控制器硬體連接介面的問題。而要透過CAN達到線上韌體更新功能,除了底層需要符合ISO 11898 CAN的通訊協定外,另還需符合ISO 15765 多包傳輸協定以及ISO 14229 診斷服務協定。
線上韌體更新的操作方法為,使用者(維修人員)使用Tester(診斷電腦)連接上CAN Bus,透過CAN Bus對車載電子系統控制器(ECU)要求進行韌體更新,如圖1所示,在Tester與ECU上的韌體更新系統(Bootloader)進行安全認證後,即進行記憶體的清除、資料的下載及寫入。
![]() |
圖1. 線上韌體更新架構 |
ECU要達成線上韌體更新功能,除了要能夠正確解析Tester發出的診斷服務指令外,韌體程式相關記憶體位置也需要進行規劃與配置,以利後續更新完成或更新中斷時,系統仍能正常啟動執行更新後功能,如圖2所示;記憶體配置分成應用程式區(Application)、啟動區(Bootloader) 兩個區塊,由於線上韌體更新是透過Bootloader區中的程式執行,所以Bootloader程式僅能透過燒錄器更改,方可確保若當韌體更新過程失敗時,造成Application 區中的應用程式資料不完整而無法執行,但系統還是能夠立即重新開始韌體更新程序,避免了因為Bootloader遭改寫而無法更新的情況發生。
![]() |
圖2. 線上韌體更新系統-車載電子系統控制器記憶體區塊配置 |
進入Bootloader區進行韌體更新有兩種方式,一是ECU控制器一啟動即進入Bootloader區等待更新要求,另一種則是啟動後Bootloader區進行相關初始化動作後,即跳至Application區執行,當收到線上韌體更新要求時,即跳回Bootloader區進行更新。這兩種方式皆會在更新完後,將ECU重新啟動且執行更新完後的應用程式。
車輛中心(ARTC)投入線上韌體更新技術能量研發及測試已有相當經驗及成果,並持續在技術上不斷精進與改善,期望未來能與車電產品業者合作提供相關技術服務。