徐曉林,易 凡
(鄭州科技學院大數據與人工智能學院,河南 鄭州 450064)
車輛高級駕駛輔助系統(advanced driving assistance system,ADAS)目前已逐步應用于車輛安全控制領域,以提升車輛運行的安全水平。受限于處理器的性能,ADAS技術最早以實現單一功能為主,目前逐漸向以集成式、高性能、運算密集型的系統級芯片(system-on-chip,SOC)構建的綜合控制系統為主的方向發展[1]。通過融合多傳感器環境信息,ADAS可涵蓋車道偏離及碰撞預警、盲點檢測、全景環視、交通標志識別、行人檢測等一系列高級輔助駕駛功能。但現有的ADAS技術并沒有實現由集成式、高性能、運算密集型的SOC構建的綜合控制系統,而只是一個個功能獨立、硬件接口擴展性差、軟件移植性差的分立系統。目前,應用在車輛的ADAS系統均以單芯片處理器、單一功能為主。由此導致的結果是不同的ADAS技術均以自帶獨立電子控制單元(electronic control unit,ECU)的方式實現。在硬件安裝布置、功能可擴展性、客戶需求升級等方面都存在延伸性弱、集成度低、軟硬件耦合度高等問題。處理器體系架構單一、算力低、性能弱、集成化程度不高,導致軟件上無法處理多個ADAS算法。硬件缺乏相應擴展接口,導致ADAS技術整體欠缺平臺化設計[2],并不滿足日益發展的ADAS技術高度集成化要求。
本文設計了1種基于SOC的車輛ADAS技術多源信息系統。該系統能將ADAS技術所需的多源感知信息從硬件接口設計、采集預處理、ADAS算法實現到車輛整體控制執行集成于1個計算平臺中,從而解決單芯片處理器無法實現駕駛輔助技術集成化控制、平臺化建設的問題。
車輛ADAS技術多源信息系統總體方案如圖1所示。

圖1 多源信息系統總體方案
系統自底向上依次為車輛底層控制執行機構、信息綜合處理系統和多源感知信息。車輛底層控制執行機構主要功能包括車輛的制動系統、驅動系統、轉向系統及人機交互和數據遠程上傳等。多源感知信息包含2類:一類是基于底層域間的車載以太網音視頻橋接(audio video bridger,AVB)技術/車載控制器局域網(controller area network,CAN)總線的車輛原始車身數據,其為整體ADAS提供全面的車身信息[3];另一類是傳感器環境感知信息(如激光雷達、單目相機、毫米波雷達等),其為整體ADAS的上層決策控制提供復雜、全面的環境信息。多源感知信息包含道路環境、車輛實時運行狀態和不同障礙物構成的原始信息。原始信息經不同的數據通信鏈路傳遞至高性能、具備高速并行處理能力的多核異構中央處理器(central processing unit,CPU)作進一步處理[4-5],以便為ADAS功能提供決策規劃依據,從而實現對車輛執行機構的精準合理控制及危險情況預警等。
由于多源傳感器信息種類較多,本文以實際應用中的車身信息、激光雷達信息、攝像頭信息為主,分別從硬件電路設計、軟件算法及實際應用3個方面展開分析。
車輛ADAS技術多源信息系統以集成式ADAS功能為核心,集成車道線檢測、障礙物識別跟蹤、以太網AVB技術/CAN總線雙冗余通信、激光雷達數據采集等多種功能[6]。為保證車輛輔助駕駛功能可靠、穩定、實時控制以及數據處理的時效性,主控芯片采用異構多核SOC系統,并在SOC上搭建視頻編解碼處理、視頻顯示輸出單元、CAN/千兆以太網通信單元、基本輸入輸出數據接口、電源模組、驅動控制芯片等各種硬件及擴展接口,同時匹配嵌入式操作系統、通信中間件、總線/攝像頭等驅動模塊,以確保多源傳感器的信息介入及復雜數據的綜合處理。
車輛ADAS技術多源信息系統構建時可預留所有硬件接口及功能。整體功能以集成ADAS為核心。預留的功能接口后續可擴展至車聯網等相關應用,以實現人機交互、信息采集、遠程信息管理控制等。系統主要包括主控SOC部分及安全管理微控制單元(micro controller unit,MCU)部分。主控SOC搭建有內存與擴展外設、決策支持系統(decision support system,DSS)、顯示子系統、高清視頻處理單元CSI2、標清視頻處理、BT/Wi-Fi無線通信單元、以太網AVB、CAN線及Control單元,用于與底層MCU的串行外設接口(serial peripheral interface,SPI)通信。底層MCU包含CAN收發器、SPI總線、Timer、內存及電源管理等。主控SOC和安全管理MCU共同構成了整個ADAS的外部環境信息采集、內部感知信息綜合處理、底層車輛執行機構驅動控制。主控SOC采用DAR745為TI的Jacinto6多核異構處理器。該處理器具有雙ARM Cortex-A15微處理器,是專為ADAS技術設計的高性能嵌入式處理器[7-8]。
整體ADAS的以太網通信分為2類:一類為頂層SOC的千兆以太網通信,用于和激光雷達、工控機等進行通信;另一類為底層MCU的兩線以太網百兆通信,用于車輛不同域間系統的AVB通信。兩類以太網通信分別基于各自的主控芯片與以太網媒體訪問控制(media access control,MAC)收發器實現,并基于IEEE 802.3的標準介質無關接口(media independent interface,MII)、千兆吉比特MII(gigabit MII,GMII)直接連接到其匹配的MAC層,以實現滿足特定功能的以太網通信[9]要求。
系統總體硬件結構如圖2所示。

圖2 系統總體硬件結構框圖
2.1.1 底層MCU的AVB通信設計
底層安全控制MCU系統與以太網MAC芯片采用標準的AVB協議,以實現車輛各域間不同系統的AVB通信。
車輛域間網絡通信的電子電氣架構(electrical electronic architecture,EEA)如圖3所示。

圖3 車輛域間網絡通信的EEA
所涉及的各域包括ADAS域、底盤域、網聯域、車身域。每個域均為1個子網系統。各域控制器除具備自有域的專屬業務邏輯功能以外,還要跨域實現各域間系統的數據交互。各域均以AVB為主干網,基于以太網路由(即以太網網關)實現跨域通信,以確保各域間系統的數據存儲和轉發[10]。因此,整車AVB網絡交互的樞紐是以以太網網關為數據轉發的核心點。
根據圖3的車輛域間EEA架構,為實現ADAS域和其他三個域間的AVB通信,底層MCU采用英飛凌的安全控制芯片TC275。TC275具有100 Mbits以太網接口及 FlexRey、CAN、CAN FD等豐富的汽車總線接口[11]。TC275內部包含網絡接口控制器,可擴展百兆以太網接口,與以太網物理層收發芯片DP83848實現兩線以太網通信。底層MCU的域間AVB通信設計如圖4所示。

圖4 域間AVB通信設計
圖4中的收發線路為一對差分線路。其中,R7為2.2 kΩ上拉電阻,可連接到MCU的輸入/輸出(input/output,I/O)引腳,用于網線熱插拔等中斷處理事件。標號為CRS和RX_DV的引腳均連接上拉電阻(R5、R6)并置高電平。DP83848上電強制進入簡化MII(reduced MII,RMII)模式的硬件配置方式。DP83848的RD-、RD+、TD-、TD+分別連接R1~R4的(49.9±1%)Ω上拉電阻。差分對接經以太網變壓器連接RJ45端口。
以太網變壓器使用了屏蔽線進行屏蔽,具有阻抗匹配、網絡隔離的作用。
2.1.2 SOC的AVB通信設計
DP83867以太網通信設計如圖5所示。

圖5 DP83867以太網通信設計
SOC的千兆以太網主要用于和激光雷達進行通信。由于SOC處理能力有限,SOC并不直接處理激光雷達原始數據,而是將其交由交換機透傳。交換機進行組播后再交由工控機作進一步算法處理。主控SOC DRA745具有2個端口的千兆以太網吉比特媒體訪問控制(gigabits media access control,GMAC)接口,并支持千兆以太網簡化GMII(reduced GMII,RGMII)以及IEEE 802.3標準[12],匹配以太網MAC芯片實現與激光雷達3D點云數據的通信。以太網MAC芯片采用TI的千兆以太網物理層收發器DP83867。
DP83867通過RGMII與MAC層相連。在RX/TX端口上有16種可編程RGMII延遲模式。時鐘此處為25 MHz同步時鐘輸出。圖5中REF_CLOCK引腳作為連續時鐘,為TX和RX端口提供時鐘參考。由于此芯片集成終端電阻,不需要外部終端電阻器,本文設計時通過外部變壓器直接連接雙絞線介質。
在與激光雷達點云進行以太網通信時,由于所使用的16線激光雷達點云數據量巨大,每0.1 s就會轉1圈,故需將點云數據按不同角度切分成不同的數據包。每個數據包又包含了當前扇區所有點的xyz位置、發射強度等信息。針對龐大的數據量,激光雷達需要通過以太網這種高帶寬網絡進行數據通信,以實現基于雷達點云的道路邊界識別。
單目相機基于MCU的CAN總線圖像采集電路如圖6所示。

圖6 單目相機基于MCU的CAN總線圖像采集電路
車輛ADAS技術多源信息系統集成了車道偏離及碰撞檢測功能。該功能基于前視單目相機實現。該功能所需的車道線、障礙物速度等原始數據均由單目相機輸出的CAN數據組成。原始CAN數據經系統內部采集、計算解析后進一步供算法使用。本系統設計有多路CAN總線接口。單目相機模塊以500 kbit/s的CAN速率向外發送圖像檢測的車道線參數、障礙物距離等一系列原始CAN數據,經采集、解析、誤檢濾波處理后進一步供上層決策使用。
采集電路由底層MCU TC275實現對圖像數據的接收。其中,TLE9251V8J為英飛凌的CAN總線收發器,用于在TC275和單目相機系統之間進行總線驅動,即把單目相機的原始圖像二進制碼流轉換為差分信號進行發送,同時把差分信號轉換為二進制碼流由TC275進行接收再處理。經過CAN總線傳輸的原始CAN數據按照相應協議要求進一步解析后,供上層應用模塊使用。
MAC地址過濾的校驗值計算流程如圖7所示。

圖7 MAC地址過濾的校驗值計算流程圖
由于所涉及的車輛域間AVB通信數據量龐大,單包以太網數據已超過上千字節。若把這些原始數據原封不動地傳遞給上層決策直接處理,勢必嚴重影響決策自身業務效率,導致其處理能力下降、ADAS整體控制的魯棒性和可靠性降低。因此,需要對原始AVB數據進行拆包、濾波處理,即將MAC層封裝的AVB協議頭等對于上層決策無效的數據進行過濾。本文采用Hash散列地址過濾算法。
Hash散列地址過濾算法采用基于自定義的AVB協議格式。Hash散列表按照64位雙組地址模式進行過濾。由于底層MCU TC275為32位處理器,要計算目標MAC地址的CRC32校驗值,需要使用2個32位寄存器進行存儲。其中,高6位作為索引值用于查詢散列表寄存器中對應的值,剩余的低5位則用于判斷是否接收某一幀數據。校驗多項式編碼位如式(1)所示。
G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1
(1)
式中:G(x)為生成多項式;x為變量。
本文先在圖6的單目相機CAN總線數據采集的基礎上對相機源數據進行解析處理,再由圖像坐標系轉化為車輛坐標系,從而實現在DRA756上的卡爾曼目標跟蹤預測和車道線檢測算法。單目相機采集的目標信息為動態信息。其中,位置坐標、相對速度、速度、距離等均存在噪聲。基于卡爾曼濾波,可實現對動態目標的可靠估計,對未來狀態進行最優預測。
由于相機檢測到的速度和位置等信息會受到外部誤差影響,所以實際狀態呈現正態分布,以估計值和觀測值綜合考量實現對下一幀數據的預測。單目相機的卡爾曼濾波數學模型如式(2)所示。
xk=Axk-1+Buk+Kk[yk-C(Axk-1+Buk)]
(2)
式中:xk為后驗估計;xk-1為先驗估計;yk為預測后的結果;uk為控制向量;Kk為卡爾曼增益矩陣。
因相機追蹤的障礙物目標的每一幀狀態都要變化,需要先以相鄰的前后兩幀數據進行預測,再作更新。預測完成后,需要根據相機的實際測量值與卡爾曼增益進行修正,并在修正完成后估計下一幀。以此建立狀態和觀測方程,實現不斷的預測-更新-再預測-再更新,直至結束。相機卡爾曼目標跟蹤濾波的方程式如下。
①預測方程。
x″k=Ak×x′k-1+Bk×uk
(3)
式中:x″k為k時刻狀態估計值;x′k-1為(k-1)時刻狀態估計值;Ak為預測矩陣;Bk為控制輸入矩陣。
②狀態方程。
x′k=x″k+Kk×(Zk-Hk×x″k)
(4)
式中:x′k為k時刻最優估計值;Zk為當前觀測矩陣;Hk為系統測量矩陣。
③最小均方誤差。
(5)

④卡爾曼增益。
(6)

⑤修正的最小均方誤差。
P′k=(I-Kk×Hk)×Pk
(7)
式中:P′k為修正后的最小均方誤差。
由卡爾曼濾波實現的單目相機障礙物預測跟蹤檢測流程如圖8所示。

圖8 單目相機障礙物預測跟蹤檢測流程圖
由于涉及ADAS的域間多系統及域內多模塊間的通信,故域內與域間通信方式不同。其中:域間各系統主要以AVB通信實現整車車身信息數據在ADAS的采集;ADAS域內各傳感器模塊原始數據經CAN總線、千兆以太網的雷達原始點云進行檢測。這些多源信息采集處理后的實時檢測數據通過高并發通信框架zmq實現向上層決策的傳遞。基于此,為便于在調試過程中全面了解車輛運行狀態信息,本文設計了1種多源信息綜合處理上位機軟件。該軟件用于多源信息的數據收集、顯示、查看、管理,以實時監控實車各系統是否正常工作、信息源是否正確收發通信。該軟件采用Qt Creator集成開發環境設計。多源信息綜合處理軟件界面為上位機界面,按功能劃分為車身信息和感知信息2大部分。
①車身信息。
車身信息主要包括車輛的實際運動狀態及車輛狀態信息。該車身信息來源主要基于底層AVB及CAN總線,一旦域間某個系統出現故障或通信不正常,界面數據會顯示異常,從而影響感知、決策系統的信息處理。原始AVB的車身信息經主控系統采集處理后通過zmq及protobuf結構化數據存儲格式向外發布信息,供其他感知模塊及上位機監控軟件訂閱使用。車身信息部分proto數據格式如表1所示。

表1 車身信息部分proto 數據格式
②感知信息。
感知信息主要包括紅綠燈信息、地理位置信息、障礙物目標檢測信息等。原始數據經過主控系統采集處理后,各上層應用模塊將以消息隊列的pub方式基于proto協議對外發布。此綜合處理上位機軟件會采用消息隊列的sub方式針對不同應用模塊節點采用相應端口進行數據訂閱,并將數據實時顯示在上位機界面。
本文系統作為多源信息的綜合處理平臺,一方面通過車輛不同域間系統的以太網及冗余CAN通信獲取并采集原始車身狀態信息提供給上層應用,同時基于上層決策下發的控制信息對底層域間系統的動力、電器進行整車控制;另一方面獲取各感知傳感器信息,經采集預處理后發布給上層決策規劃使用。主控系統開發基于嵌入式Linux系統及POSIX多線程的C++編程實現。作為安全冗余及域間AVB通信、單目相機CAN通信的底層MCU的相關功能采用C語言實現。
AVB通信功能根據以上硬件功能設計。其共包含2類:一類為SOC的千兆以太網通信,用于獲取激光雷達點云數據;另一類由底層MCU及以太網控制芯片實現底層域間不同系統的車輛AVB通信。以實車為例,域間各控制器的AVB通信數據經散列濾波及實時更新后,通過Wireshark抓包后的車輛AVB報文如圖9所示。

圖9 車輛AVB報文
圖9(a)為動力域AVB車身狀態信息。標注框數據如(18 fe bf 0b 08 00 00 7d 7d 7d 7d ff ff)為1幀AVB以太網封裝的有效CAN數據。其中:前4個字節為CAN報文ID標識;08代表CAN數據的長度,占1 B;后8個字節為CAN 有效數據。每幀AVB數據都會封裝此格式的CAN有效數據,最大可封裝50幀CAN數據。
圖9(b)為車控信息AVB原始報文。其負責根據上層決策規劃來控制底層執行機構。標注框(18 fa e1 2a 08 03 03 78 46 00 80 80)為車輛控制報文。由于AVB數據量巨大,需經過濾波更新提取出實時有效的數據。其中,標注框88為每幀AVB數據更新標志。只有更新的數據報文才會傳遞給上層感知、決策使用。AVB原始車身信息數據如車速、輪速、車門/車燈、制動、驅動等行車狀態經解析后可作為ADAS功能共享數據使用,以實現數據對外發布。
基于圖5的以太網通信設計,本文對VLP16的激光雷達點云數據進行采集。單包激光雷達數據包由42 B數據報頭和1 206 B有效載荷數據組成。此有效數據包含激光方位角、反射率、時間戳及工廠數據等。每包數據起始標識符為0xfffe。本文利用wireshark軟件抓取的1 246 B激光雷達單包點云數據(截取部分)如圖10所示。其中,單包點云共有12個數據塊。每個數據塊都會從第1線至第16線進行2次掃描,即共有24個點云數據。圖10中標注框(ff ff ff ff … 00 00)為每個數據包的42 B數據報頭;標注框(ff ee)為每個數據塊的固定起始標識,長度為2 B;標注框(ba 59)、(e1 59)、(08 5a)等為數據塊N,N+2,…,N+22給出的角度值azimuth,長度為2 B;標注框(04)為反射強度Reflectivity,長度為1 B;標注框(be 0c)、(c3 0c)、(c5 0c)為反射距離Return distance,長度為2 B。

圖10 激光雷達單包點云數據(截取部分)
智能網聯是車輛未來發展的目標,為滿足智能網聯技術發展的需要,車輛ECU系統需要向海量內存、高速并行運算的AI芯片方向發展。本文通過搭建高可靠性、集成化的多源信息綜合處理系統平臺,以高性能、高處理能力的SOC實現了從底層域間系統的AVB通信、激光雷達3D點云數據的采集、單目相機的卡爾曼目標跟蹤預測及車輛的決策控制等功能。本文將多源傳感器信息從采集、處理到最終決策的控制執行集成在1個SOC系統上,既實現了軟硬分立、靈活配置,又將各分立功能集于一體,滿足未來車輛智能化技術平臺化、高集成、可延伸的要求。通過此平臺的構建和設計,未來可將其繼續精細拓展在無人駕駛的計算平臺上應用。