徐曉林,秦宗光,趙毅棟
(1.鄭州科技學院大數據與人工智能學院,河南 鄭州 450064;2.宇通客車股份有限公司,河南 鄭州 450000)
以太網音視頻橋接(audio video bridger,AVB)技術是對現有以太網功能的擴展,可解決現有車載控制器局域網(controller area network,CAN)的網絡帶寬消耗及傳輸帶寬不足的問題。車載以太網基于傳輸控制協議/網際協議(transmission control protocol/internet protocol,TCP/IP)網絡模型:上層應用數據傳輸需經過傳輸層、網絡層、數據鏈路層,由物理層PHY芯片轉換成原始數據流向各域控制器進行數據收發傳遞。由于AVB在傳輸中涉及大量以太網數據包,如將整包數據傳遞給決策使用,勢必降低其數據處理效率。同時,關聯多節點中轉傳輸的數據轉發周期又各不相同,由此產生的時延勢必導致決策控制的實時性、穩定性降低。對于無人車控制而言,車載電子控制單元 (electronic control unit,ECU)的控制響應均要求通信延遲在μs級別[1]。尤其對于車輛的運動控制執行機構而言,嚴重的時延將導致響應時間達不到無人車超低時延的控制需求,無法保證無人駕駛技術操控的安全性、穩定性。
為解決以上實際問題,本文提出1種針對某種無人車電子電氣架構(electrical electronic architecture,EEA)特點的、降低AVB通信時延的方法:采用1種基于改進的滑動窗口更新算法獲取原始AVB數據包中的有效荷載數據,降低上層決策對于無效數據的處理量;提高決策層有效數據處理能力及效率;基于篩取后的有效載荷數據,計算各通信節點的通信時延[2]。本文通過控制相應節點的響應周期,合理計算驅動控制的瞬態響應性能指標,使通信延遲縮短在μs級范圍內,確保無人車的控制時效性及魯棒性。
本文將低AVB通信時延的技術應用在某種無人車上。無人車的AVB域間EEA如圖1所示。

圖1 無人車的AVB域間EEA示意圖
無人車AVB通信EEA包括智能駕駛域、底盤動力域、網聯域、車身域4個子域。每個域均為子網系統。各域控制器通過AVB通信實現域間系統的數據交互,即:以AVB為主干網,基于以太網網關路由實現跨域通信。以太網網關是整車以太網網絡交互的樞紐[3-4],用于實現各個域間系統之間的以太網數據存儲和轉發。
有效數據流提取的最終目的是給上層決策提供精簡、有效的實時更新數據。以智能駕駛域的智能計算平臺為核心節點,智能駕駛域內各模塊節點的通信數據流向模型如圖2所示。智能駕駛域內,數據流向模型自頂向下依次為決策層、服務層和數據源層[2]。

圖2 智能駕駛域內各模塊節點的通信數據流向模型
數據源層為各域間系統的AVB原始通信數據,采集之前需按照虛擬局域網標識(virtual local area network identity document,VLANID)進行不同域劃分。處于模型中間的服務層要將獲取的AVB原始數據進行解包及媒體訪問控制(media access control,MAC)地址過濾處理,即將以太網幀的目標MAC地址、源MAC地址、校驗位等逐一進行過濾。其目的是減少決策層對無效數據的處理負荷[5]。決策層采用1種滑動窗口算法來實時獲取更新數據,確保接收到的有效數據均為實時動態數據,而非靜態未更新數據。
經MAC層過濾、提取后的封裝數據在每幀AVB數據包里可封裝30~50幀有效CAN數據。由于有效CAN數據的原始周期并不相同,還需要針對不同周期的 CAN數據進行自動更新檢測,以獲取實時、有效數據并傳遞給上層決策。
2.2.1 改進滑動窗口算法原理
滑動窗口算法可作為網絡數據傳輸時的流量控制。當連續區間數據變化時,根據具體的條件來移動窗口前后指針,經遍歷搜索后刪除未更新數據,再把新數據加入窗口內,以此降低時間復雜度。本文設計了1種改進的滑動窗口算法,以控制AVB數據傳送時的流量及數據更新變化。針對有效數據傳輸速率的不同,把滑動窗口大小設置為不同變化周期,以實現對不同周期性數據的更新檢測[6]。
改進滑動窗口算法根據時間周期辨別更新數據,通過更新標志判斷數據是否更新以傳遞給上層決策。滑動窗口分為兩類:一類為單幀有效CAN Data靜態窗口A,數據長度為8 B;一類為單幀過濾后含有CAN加密、計數、更新標志的數據靜態窗口B,窗口大小為30,即1幀該靜態窗口B包含30幀不同周期的靜態窗口A。原本的每幀序號和確認號保留,標志Flag為每幀更新標志。由于有效載荷數據的CAN報文原始周期不同,滑動窗口需要設置跟隨報文周期變化的動態滑動周期t,即滑動窗口動態可變。實際動態滑動窗口時間周期模型t按照報文周期設置。改進滑動窗口算法如圖3所示。

圖3 改進滑動窗口算法
圖3中:標號1是周期為t1的報文,圖中共有1~4幀;標號5是周期為t2的報文,圖中共有5~8幀;標號9是周期為t3的報文,圖中共有9~10幀,以此類推。當某幀有更新變化時,則變為黑色框標識。當以不同周期發送數據時,可以檢測單幀的靜態窗口A數據是否在該時間段內有變化:有變化則移入該時間窗口模型;無變化則移除窗口。其他周期模型采用同樣機制。周期T越短,則單幀檢測的速度越快,實時更新的數據量就越多。周期T越長,則單幀檢測的速度越慢,實時更新的數據量就越少。
2.2.2 算法實現
AVB數據幀更新處理過程如圖4所示。

圖4 AVB數據幀更新處理過程
依據數據流向模型,改進的滑動窗口算法實際應用在決策層和服務層,基于鏈表實現。該算法的目的是實現AVB數據流的更新。
數據更新處理過程如下。
①決策層作為發送端,按照設定周期T將發送數據根據ID、長度、CAN Data進行封裝后,以CAN數據幀形式發送給服務層。服務層接收到該CAN封包數據后,以該周期相應的滑動窗口時間與其發送緩沖列表中的CAN ID進行對比[7]。在某一固定的滑動窗口時間T內,若接收到的封包數據與緩存中的一致,即為實時更新數據;如接收到的封包數據未包含緩存中的CAN ID,則認定為某一CAN ID數據未更新。服務層會將該有效更新CAN數據進行CAN的加密、校驗并封裝成1幀32 B的CAN數據發送給底層數據源層。底層數據源層再加上以太網加密、校驗格式、源/目的地址等封裝成原始AVB協議,最終由物理層以太網芯片傳輸給其他各域控制器使用。
②服務層接收經過MAC地址過濾的數據后,會依據滑動窗口的不同周期大小逐幀判斷更新標志。每幀有效CAN的更新標志Flag采用遍歷方式進行周期性判斷。當Flag由0變為1時,判斷該幀CAN數據相對上一周期有更新變化。在判定周期范圍內,Flag狀態保持不變,則說明數據未更新。
2.2.3 虛擬局域網數據測試
通過滑動窗口算法更新的實時有效AVB載荷數據通過Wireshark軟件進行實時抓包分析。實際整車域間,各系統進行AVB通信時,需要對虛擬局域網(virtual local area network,VLAN)內的設備邏輯地址進行劃分。本文基于端口進行劃分,且各個域的VLAN標志均不同。經Wireshark抓取的VLAN標志為0x3a的AVB數據包如圖5所示(一包數據量太大,圖5為部分截圖)。

圖5 VLAN標志為0x3a的AVB數據包
VLAN標志為0x3a是底盤動力域的AVB數據。在一包上千字節的AVB整包數據包中,共包含有30幀有效載荷數據,即CAN數據。有效載荷數據中又包含更新數據及未更新的CAN數據:更新標志位為0x88;未更新標志位為0x84。圖5的AVB數據包具體字段說明如表1所示。

表1 AVB數據包具體字段說明
標志3的8 B數據(00 00 00 00 00 00 a1 3a)為1幀AVB里的單幀有效載荷18ff1424的CAN報文數據,包含具體節點CAN報文標識、數據長度8 B及實際有效數據。由于18ff1424報文的更新標志位為0x84,代表未更新,所以這幀數據并不會傳遞給決策使用。而0xcff5182報文的更新標志位為0x88,有效載荷8 B數據為圖5的標志7(37 00 00 00 00 34 4d 00)。該幀為更新數據,會傳遞給決策使用,以此類推。因此,最終傳遞給上層決策的僅是經過濾波后8 B的各實時更新CAN數據。
AVB技術在傳統以太網基礎上使用了精準時間同步,通過保障帶寬來限制傳輸延遲。但在實際無人車控制響應方面,由于域間各系統及域內各模塊通信節點眾多,經過以上過濾更新的有效載荷數據實際歷經了多處節點傳輸,從底層通信層過濾提取后更新到上層決策應用[4]。通信方式雖為透明式傳輸,但仍存在通信時延。延時時間導致AVB整體通信傳輸效率低。對于無人駕駛車輛的執行機構(如轉向、驅動、制動系統等),均需超低延時及快速的響應反饋才能滿足實時控制需求。而時延會導致無人駕駛橫縱向控制的時效性及響應能力均下降、魯棒性能變差,嚴重影響無人駕駛技術的安全性和可靠性[7]。
本文以實車進行驗證,依據某一無人車的EEA特點(以圖1為主),針對智能駕駛域與整車控制域之間的通信延時進行測量分析。智能駕駛域包含主控制域和協控制域2種。整車控制域包含橫縱向執行機構,如驅動系統、制動系統、轉向系統等。在整體傳輸過程中所歷經通信鏈路的網絡通信節點模型如圖6所示。

圖6 網絡通信節點模型
依據網絡通信節點模型,可見涉及節點眾多,整體通信過程中各節點均有存在延時的可能性。根據實車測試經驗,該車載AVB通信導致時延的主要因素如下[8]:①源頭發送時延,發送端控制周期達不到實際響應需求;②節點中轉轉發時延,由實際EEA功能設計決定;③物理傳輸媒介時延(本文并未考慮該時延)。時延以從主控制域發出控制指令開始到整車控制域響應其控制指令結束,期間包括協控制域以CAN通信方式接收主控制域控制指令,經協議中轉后以AVB通信發送給整車控制域的執行機構響應時間。
通信時延測試采用總線開發設備(CAN open enviroment,CANOE)進行采集,借助wireshark軟件分析報文數據結構。本文以無人車執行機構中的驅動系統為例,對通信時延進行測試[9],計算驅動系統從上層決策控制下發指令到電機響應反饋的通信延時時間[2]。該時間所經歷的具體通信鏈路如下:首先,主控制域ECU開始周期性發送驅動電機控制報文;然后,由協控制域ECU以CAN通信方式接收報文,再通過以太網AVB方式將報文發送給整車域ECU;接著,整車域ECU以AVB形式接收該控制報文后,經過程序內部的AVB格式數據轉化為CAN格式數據[10-11];最后,以CAN通信方式向驅動電機執行機構下發控制指令。該鏈路中所歷經的整體傳輸時間即為t。
利用CANOE采集從智能駕駛域決策層到底層驅動電機的各節點通信報文。針對擋位控制,降低時延前驅動電機擋位控制時間如圖7所示。

圖7 降低時延前驅動電機擋位控制時間
圖7(a)中:縱向軸的信號Vehicle_Shift為CANOE中的總成數據庫(data base can,DBC)文件設置的信號變量名稱,是主控制域ECU下發的擋位控制報文指令;對應的縱坐標0~1表示主控制域ECU的下發擋位的具體數值(擋位為整數值)。其中:數值0表示空擋;數值1表示前進擋;數值2表示倒車擋。信號幀主控制域ECU下發的擋位控制報文為標準幀,發送周期設定為20 ms。
圖7(b)中:縱向軸的信號Gear_mode是整車域ECU下發的控制指令報文,為擴展幀;對應的縱坐標設為0~100,表示整車域控制器發出的擋位控制指令。其中:0表示空擋、32表示前進擋、64表示倒擋。圖7(b)只截取了一部分,為0~32。
由所測時間可計算出:Vehicle_Shift從源頭主控制域ECU下發指令報文,經AVB通信傳輸,到AVB協議轉換為CAN協議數據Gear_mode,再到被執行機構電機所接收,整體通信延時時間約為129 ms。其中:t=t1-t0。t0為主控制域ECU開始周期性發送驅動電機控制報文的時刻(90.173 8 s);t1為整車域ECU以CAN通信方式下發控制指令給執行機構驅動電機的時刻(90.303 2 s)。以驅動性能為參考指標,驅動電機瞬態響應指標如圖8所示。

圖8 驅動電機瞬態響應指標
圖8中:tr為上升時間,ms;tp為峰值時間,ms;ts為調節時間,ms。
基于以上指標的計算參考,通信時延下計算出的驅動性能指標如表2所示。

表2 通信時延下計算出的驅動性能指標
表2中:v為目標車速,km/h;tx為響應時間,ms。由表2可知,由于存在通信時延,導致驅動的時域性能指標tr、tp、ts均無法達到無人駕駛驅動控制性能要求。該時延不僅影響縱向驅動控制(指對發動機油門控制,包括擋位、車速等)的實效性,而且對制動以及橫向控制都會產生影響。通信時延導致整體橫縱向的實際控制響應均較慢,無法滿足無人駕駛控制需求。
針對以上的時延,需找出存在時延的節點才可以從根本上解決延時問題。依據圖6的網絡通信節點模型,在服務層和決策層代碼中加入相應時間戳。依據時間戳進行各節點的通信時間監控,確定時延節點。經分析,主要有以下幾處時延節點。
①協控制域ECU內部決策層調用虛擬接口函數,周期性發送單個CAN報文的周期為30 ms。
②協控制域ECU與主控制域ECU的CAN報文發送周期為50 ms。
③車域ECU的CAN報文更新周期為50 ms。
④主控制域ECU發送給智能駕駛域ECU的周期為100 ms。
為減小存在通信延時各通信節點的處理周期,本文在不影響整體通信傳輸效率及可靠性、有效性的前提下,對存在通信延時時間的通信節點進行處理,以減小整體延時時間、提高控制響應時效性。通過CANOE對整體通信延時的測量及分析,對相關存在通信延時的通信節點進行了合理修正。修正后,整體通信延時可控制在30 ms內。其中,相關通信節點的時間修正如下[2]。
①協控制域ECU內部決策層調用虛擬接口函數周期性發送單個CAN報文的周期由30 ms改成10 ms。
②協控制域ECU與主控制域ECU的CAN報文發送周期由50 ms改為10 ms。
③整車域ECU的CAN報文更新周期由50 ms改為10 ms。
④主控制域ECU發送給協控制域ECU的周期由100 ms改為20 ms。
經過時間修正后,降低時延后驅動電機擋位控制時間如圖9所示。

圖9 降低時延后驅動電機擋位控制時間
圖9(a)和圖9(b)的橫坐標、縱坐標與圖7相同。由圖9可知,通信延時時間dt=t1-t0(321.781 4 s-321.761 1 s),結果約為20 ms。同樣以驅動性能作為參考,分析瞬態響應性能。修正通信延時后的驅動性能指標如表3所示。

表3 修正通信延時后的驅動性能指標
由表3可知:驅動性能中所測得的tx、tr、tp、ts等驅動性能指標均已減小。修正后由于通信延時時間減小,使得驅動性能優于原本通信延時的情況;而整車域間各系統依然能保持穩定和正常通信,提高了智能駕駛決策控制的有效性及實時性。
針對無人車,本文設計了1種降低AVB通信時延的方法,以提高無人駕駛決策控制的瞬態響應特性。基于無人車靈活的EEA以及域間各系統通信特點,本文采用改進的滑動窗口算法獲取底層過濾后的實時更新AVB數據,并基于有效載荷數據分析在整個通信網絡傳輸過程中存在通信延時的網絡節點。通過計算瞬態響應性能指標,對存在通信時延的各節點進行修正以減小時延。該方法有效降低了域間各系統以太網AVB通信時延,保證了以太網通信的穩定性及可靠性,提高了域間通信效率,同時也改善了決策層對運動執行機構控制的時效性和響應能力。