黃志堅,姜立標(biāo)
(華南理工大學(xué)機械與汽車工程學(xué)院,廣東廣州 510641)
隨著汽車領(lǐng)域的迅猛發(fā)展,汽車越來越智能化,相應(yīng)的汽車電子控制單元ECU數(shù)量也越來越多,ECU功能越來越復(fù)雜。同時隨著自動駕駛技術(shù)的發(fā)展,汽車需要配備更多的攝像頭、雷達等傳感器,這些傳感器感知系統(tǒng)會采集到大量的數(shù)據(jù),要將這些數(shù)據(jù)快速完整地傳輸?shù)接嬎銠C處理單元,并及時地做出響應(yīng),也對總線的數(shù)據(jù)傳輸能力和可靠性提出了非常高的要求[1]。
當(dāng)前基于CAN總線的車載網(wǎng)絡(luò)已經(jīng)難以滿足需要傳輸大量數(shù)據(jù)的需求,車載以太網(wǎng)的誕生可以適應(yīng)傳輸大量數(shù)據(jù)的需求,在車載網(wǎng)絡(luò)通信,傳輸數(shù)據(jù)和一次性傳輸數(shù)據(jù)大小等各個方面都高于CAN總線的性能。本文作者基于DoIP協(xié)議實現(xiàn)了車載ECU在線軟件升級,極大提升了當(dāng)前車載ECU刷新的速率,同時也驗證了車載以太網(wǎng)應(yīng)用于車載ECU刷新的可行性。
自20世紀70年代以太網(wǎng)問世以來,以太網(wǎng)已經(jīng)發(fā)展成為世界上最受歡迎的局域網(wǎng)LAN技術(shù),基于Broadcom的Broad-Reach技術(shù)(百兆以太網(wǎng)技術(shù))的車載以太網(wǎng)也得到廣泛應(yīng)用。傳統(tǒng)的車載網(wǎng)絡(luò)一次只能允許網(wǎng)絡(luò)中的一臺設(shè)備進行通信,但是Broad-Reach支持全雙工通信,使得一條鏈路上的兩臺設(shè)備能夠同時發(fā)送和接收數(shù)據(jù)。如圖1所示。
圖1 以太網(wǎng)全雙工通信
這表明車載以太網(wǎng)支持額定速率為100 Mb/s的全雙工通信,同時意味著兩節(jié)點間的理論總數(shù)據(jù)速率能夠達到200 Mb/s,而CAN、LIN、MOST以及FlexRay規(guī)定的總帶寬只是為它們的額定速率,這個帶寬由所有設(shè)備共享。
以太網(wǎng)由點到點線路構(gòu)成,即每根UTP電纜只連接兩個節(jié)點,一端一個。各個節(jié)點是通過交換機連接的,形成的網(wǎng)絡(luò)拓撲結(jié)構(gòu)有星型、樹型以及菊花鏈型拓撲結(jié)構(gòu)。同時以太網(wǎng)基于IEEE802.3的接口標(biāo)準(zhǔn)的數(shù)據(jù)鏈路層可以利用TCP/IP的高層網(wǎng)絡(luò)通信協(xié)議進行網(wǎng)絡(luò)通信,并不會與傳統(tǒng)以太網(wǎng)通信技術(shù)相排斥。
車載以太網(wǎng)不僅可以提供高速的帶寬,而且具備支持未來更高性能的潛力。相比于當(dāng)前應(yīng)用廣泛的CAN總線技術(shù),車載以太網(wǎng)有如下優(yōu)勢:
(1)車載以太網(wǎng)帶寬高并且是獨享帶寬,效率更高,而且車載以太網(wǎng)還支持音視頻數(shù)據(jù),可以更好地運用在汽車信息娛樂系統(tǒng)。
(2)車載以太網(wǎng)可以采用面向服務(wù)的體系架構(gòu),作為中央以太網(wǎng)骨干交換機,與汽車各ECU通信。
(3)車載以太網(wǎng)可以通過TCP/IP與車輛外部網(wǎng)絡(luò)進行通信,比如借助計算機通過車載以太網(wǎng)進行ECU軟件刷寫,提高了效率,節(jié)約了成本。
IEEE802.3標(biāo)準(zhǔn)規(guī)定的以太網(wǎng)幀格式包含若干個幀報頭字段、傳輸數(shù)據(jù)(數(shù)據(jù)場長度范圍為46~1 500字節(jié))和一個單字段報尾(CRC校驗幀尾),如圖2所示。
圖2 以太網(wǎng)幀格式
DoIP(Diagnostic communication over Internet Protocol)是一種基于互聯(lián)網(wǎng)協(xié)議的診斷。基于該診斷協(xié)議,主機廠和售后工程可以對車輛進行診斷、刷新等操作[2]。DoIP協(xié)議形成了ISO 13400標(biāo)準(zhǔn)《道路車輛——基于互聯(lián)網(wǎng)協(xié)議的診斷通信(DoIP)》。該標(biāo)準(zhǔn)分成3個部分:
(1)通用信息和用例定義;
(2)傳輸協(xié)議和網(wǎng)絡(luò)層服務(wù);
(3)基于IEEE802.3的車用有線接口。
即ISO 13400標(biāo)準(zhǔn)介紹了其物理層、數(shù)據(jù)鏈路層、傳輸層、網(wǎng)絡(luò)層等內(nèi)容。依據(jù)OSI七層模型,DoIP與基于CAN總線的診斷(DoCAN)的協(xié)議棧對比如圖3所示。
圖3 DoIP與DoCAN協(xié)議棧對比
DoIP報文的結(jié)構(gòu)是由DoIP報頭和DoIP凈荷構(gòu)成,DoIP報頭包含了協(xié)議版本、初始協(xié)議版本、凈荷類型、凈荷長度等信息;DoIP凈荷數(shù)據(jù)長度范圍為0~4 294 967 295字節(jié),相當(dāng)于4 GB大小的數(shù)據(jù)。DoIP凈荷中包含源地址、目的地址和用戶數(shù)據(jù),其中源地址相當(dāng)于該DoIP報文的發(fā)起者;目的地址則為接收該DoIP報文的接收者;用戶數(shù)據(jù)如UDS相關(guān)請求。DoIP協(xié)議的結(jié)構(gòu)如圖4所示。
圖4 DoIP協(xié)議的結(jié)構(gòu)
如圖5所示,整個車載ECU刷寫系統(tǒng)主要有Bootloader上位機,刷新硬件工具及其帶有Bootloader的下位機開發(fā)板。工程師或者測試人員通過PC端上位機的以太網(wǎng)刷寫界面進行ECU的IP地址,上位機的IP地址,P2服務(wù)參數(shù)等配置,并在文件加載框中加載所需要的更新的APP文件。下位機接收到上位機傳輸?shù)臄?shù)據(jù)后將其寫入ECU開發(fā)板的Flash存儲器之中,實現(xiàn)了基于Ethernet的ECU在線軟件刷寫。
3.2.1 下位機軟件
如圖6所示為Bootloader的軟件架構(gòu)圖。該軟件是基于HIS接口協(xié)議而開發(fā)的。Bootloader軟件架構(gòu)中各個模塊是分開的,這樣設(shè)計能減小各個模塊之間的相互影響,從而提高開發(fā)的質(zhì)量和效率。
Bootloader軟件主要包括以下部分。Boot Management啟動管理模塊負責(zé)軟件和Application的啟動順序。Bootloader應(yīng)用程序模塊負責(zé)實現(xiàn)軟件功能,如時鐘配置、時間片中斷重映射。Bootloader運行環(huán)境模塊負責(zé)診斷協(xié)議的函數(shù)回調(diào)和控制系統(tǒng)運行。Memory Management內(nèi)存管理模塊負責(zé)數(shù)據(jù)管理和邏輯塊配置。Ethernet驅(qū)動模塊負責(zé)以太網(wǎng)收發(fā)器和控制器與傳輸層交互。TCP/IP 協(xié)議棧模塊負責(zé)網(wǎng)絡(luò)層和傳輸層的實現(xiàn)。DoIP模塊負責(zé)封裝診斷報文。
圖6 Bootloader的軟件架構(gòu)
3.2.2 上位機軟件
如圖7所示為上位機軟件界面。上位機軟件功能主要分為系統(tǒng)參數(shù)配置和軟件刷寫兩大塊。系統(tǒng)參數(shù)配置中可以對ECU的IP地址,上位機的IP地址,P2服務(wù)參數(shù),當(dāng)前節(jié)點ECU等配置,目的是確保上位機和車輛ECU之間能夠正常通信。軟件刷寫主要是加載安全密鑰文件,刷寫驅(qū)動文件和刷寫需要的APP數(shù)據(jù)文件。
圖7 上位機軟件配置及運行界面
為了驗證車載以太網(wǎng)應(yīng)用于車載ECU刷新的可行性及其刷新速率,文中搭建臺架,分別對基于車載Ethernet,基于CAN總線的刷新軟件進行了八組對比刷新仿真實驗,如圖8所示。
圖8 基于車載以太網(wǎng)ECU刷新仿真實驗
刷新仿真實驗中,以太網(wǎng)設(shè)置為100 Mb/s的速率,CAN總線的比特率設(shè)置為500 kB/s。如表1所示,以太網(wǎng)刷新數(shù)據(jù)大小范圍為1 000~8 560 kB,刷新時間從18~198 s。CAN總線刷新數(shù)據(jù)大小范圍為880~3 832 kB,刷新時間從249~1 283 s。對比兩者刷新實驗數(shù)據(jù),很顯然基于以太網(wǎng)的診斷刷新時間性能遠高于基于CAN總線的診斷刷新時間性能。
表1 基于車載以太網(wǎng)和基于CAN總線的刷新性能對比
如圖9所示為基于以太網(wǎng)和基于CAN總線的刷新時間對比圖。
圖9 基于以太網(wǎng)和基于CAN總線的刷新時間對比圖
從圖中可以清晰看出兩者刷新之間的時間差別,在刷新數(shù)據(jù)大小為1 000 kB以內(nèi)時,基于CAN總線的刷新時間高于200 s,而在刷新數(shù)據(jù)大小為8 560 kB時,基于以太網(wǎng)的刷新時間仍小于200 s,為198 s??梢哉f,基于以太網(wǎng)刷新的時間性能是遠大于基于CAN總線的刷新時間性能的。而且,隨著刷新文件越來越大,基于CAN總線的診斷刷新效率越來越低,而基于以太網(wǎng)刷新的時間性能優(yōu)勢卻越來越顯著。
車載Ethernet是解決當(dāng)前智能汽車所需網(wǎng)絡(luò)通信帶寬的一種相當(dāng)有效的技術(shù),也是汽車網(wǎng)絡(luò)未來發(fā)展的必然趨勢。文中通過介紹基于車載以太網(wǎng)的Bootloader軟件的開發(fā)與實現(xiàn),并通過刷新仿真實驗驗證了基于Ethernet的診斷刷新時間性能遠高于基于CAN總線的診斷刷新時間性能。當(dāng)前車輛各個ECU之間是通過中央網(wǎng)關(guān)進行互連,在未來車載ECU診斷刷新可以充分借助以太網(wǎng)的高帶寬,來實現(xiàn)通過中央網(wǎng)關(guān)同時對車輛多個ECU進行以太網(wǎng)刷新,能大大提高刷新的效率,降低相應(yīng)的成本。