道路安全性在摩爾定律(Moore’s Law)的演進下受益良多,隨著處理效能的提升及CMOS影像感測器(CIS)和其他感測器技術的發展,讓汽車製造商得以推出先進駕駛輔助系統(ADAS)。此系統能增強駕駛對周遭環境的感知,減少發生碰撞的機率,部分系統還能監控駕駛,並在駕駛瞌睡等情況時發出警告。

ADAS逐漸取得為駕駛提供停車輔助、車道輔助和主動車距控制巡航等功能方面協助的主導權(或為無人駕駛系統提供資訊)。

因此不意外地,目前ADAS市場的年複合成長率(GAGR)為10%,預計2021年規模將來到420億美元。

ADAS常使用嵌入式視覺、雷達(Radar)和光達(LiDAR)等多種感測器來取得所需的訊息,並運用感測器融合技術,整合來自多個感測器的資訊。在嵌入式視覺領域中,ADAS又可劃分為兩大類,一類負責外部監控,解決車道偏離、物件偵測、盲點偵測和交通標誌辨識等問題;另一類負責內部系統監控,擁有駕駛瞌睡偵測和眼睛偵測等功能,但不管是內部或外部的ADAS應用在運行影像處理演算法時都面臨挑戰。

這些挑戰從導入應用所需的演算法能力,到符合正規的汽車標準,不一而足。許多ADAS應用還需要透過感測器融合來整合多個感測器的輸入,因此所需的處理能力明顯提高。感測器融合在使用多個同類感測器的時候,稱為同質感測器融合,而在使用不同類型的感測器截取所需訊息時,則為異質感測器融合。

許多應用都選用全可編程系統單晶片(All Programmable SoC)或FPGA來運行系統,因其具備高度的靈活性來運行所需的演算法,且具有連接不同類型感測器和網路的能力。

隨著ADAS應用效能需求升高,帶來了幾個最容易被忽略的系統難題,汽車製造商為了滿足嚴格的污染標準要求,其整體解決方案的重量和功耗相當重要,且生產的車輛以數十萬計,因此解決方案的成本也很關鍵。在系統的保密和安全非常重要且受多重標準約制的情況下,使用SoC或FPGA能幫助解決一系列相關問題。

20171019TA01P1 圖1 ADAS的抬頭顯示器導航與情況感知資訊。

系統架構

開發用於監測內外部攝影機的嵌入式視覺ADAS可以說是一項更具挑戰性的應用方案。該系統需要與車身四周多個攝影機連接,處理影像並為乘客提供資訊。許多攝影機解決方案使用點對點LVDS連線來傳輸數據,但因佈線需求而增加成本和重量,因此其他替代方法逐漸普及,這些方法把部分功能內建在攝影機中,如果攝影機的影像輸出採用壓縮方式而不是原始影像,則基於網路架構的傳輸就有可能實現。這些網路可以圍繞一般汽車匯流排(automotive buses)來建構,例如:

˙媒體導向系統傳輸(MOST):一種能以光學或電氣物理層方式呈現的高速網路; ˙IDB-1394:應用在電氣物理層上的高速網路,採用菊花鏈拓撲結構; ˙乙太網路音視訊橋接(AVB):具有在需要時提供車輛周圍的影像數據與其他數據的能力。

如果選擇使用網路,系統架構必須確保提供所需頻寬,以便在滿足降低應用延遲的要求下,攝影機和ADAS核心之間能傳輸影像數據。

ADAS產生的數據可能需要與汽車中的其他系統共享,如主動車距控制巡航或停車輔助,因此ADAS必須能夠與CAN或FlexRay等其他一般汽車介面連接。

在架構層面,使用基於All Programmable Zynq SoC的方法可帶來許多優勢。例如當點對點連線被用於連接攝影機時,攝影機的接收器能應用影像處理鏈前的可編程邏輯(PL);當使用All programmable SoC時,處理器系統應具備足夠高的靈活性,整合可編程邏輯中的邏輯,或必要時整合外部PHY,就能輕易地採用CAN、乙太網路和FlexRay等其他通訊協定。雙核處理器與可編程邏輯是個完美組合,因系統緊密整合,僅需極低的單位畫素功耗。

All Programmable SoC架構

SoC展現優勢的地方是將可編程邏輯導入至攝影機介面和影像處理鏈;同時SoC的處理系統(PS)可提供所需的通訊、控制和額外的演算法處理。影像處理管線可使用眾多IP資料庫及來自相關廠商所提供的專業IP核心來產生,以縮短產品上市時間。

如果要開發額外的演算法,可以運用Vivado HLS、SDSoC和MATLAB等高階合成工具套件來加速開發,藉由使用C或C++等更高級程式語言,而不使用VHDL或Verilog等傳統硬體描述語言來開發IP,以縮短產品上市時間。

欲進一步加速演算法可使用像OpenCV等開放原始碼架構來達成。使用該架構開發的演算法被建置於支援Vivado HLS和SDSoC的HLS影像資料庫中,這可以簡化從概念的驗證與展示,到運行於特定硬體上之特性描述和認證的演算過程。

20171019TA01P2 圖2 Zynq支援與感測器和消費者的任意介面。

許多現存的架構會使用處理器的DDR記憶體作為畫面暫存體(frame buffer),這使得當使用基於乙太網路的系統或PCIe時,可以讓處理器存取需要的影像,並進一步向前傳輸。其還可以使用處理器系統的效能來運行額外的影像處理演算法,然後需要時再導入影像處理鏈中。

有趣的是,這樣的功能使SoC本身能構成自己的原型和展示平台。透過一般運行於處理器核心內針對嵌入式視覺開發架構如OpenCV,便可產出一個精簡的原型系統,該系統即可使用SoC的可編程邏輯進行效能最佳化。

20171019TA01P3 圖3 用於多攝影機系統、基於Zynq架構的模組。

安全性

ADAS的基本性質就是增加汽車的安全性,因此該系統必須像其他可靠性高的系統一樣,遵循一個開發標準,對ADAS而言,可適用的標準就是ISO26262。該標準定義了一系列以小時計算失效率的汽車安全完整性等級(A-SIL),在總共四個A-SIL等級中,D為最高且最難達到的,而A則是最低級別。要滿足這些要求,需使用整合工程交付生命週期,來確保不僅能達到目標A-SIL,且產生的資料封包能存留必要的證據來證明達到目標。

汽車應用受制於嚴苛的環境,為此開發人員需要確保自己使用的是符合汽車工業規格的元件,以通過AEC-Q100認證的元件而言,它們的製造和認證標準比商用元件高。

系統的安全性也必須列入考慮,來防止未被授權人員對系統進行修改,原因在於這可能導致災難性的後果。

使用All Programmable SoC,就能運用安全開機的功能,來防止未授權程序和位元流被配置到系統裡。要做到這點,開發人員可將AES加密、HMAC和RSA認證與TrustZone技術結合使用。TrustZone可讓系統設計人員利用正交軟體環境(orthogonal SW environments),限制對包含可編程邏輯周邊設備等在SoC內部硬體功能的存取。

系統的運行狀況可透過監測SoC供電電壓和晶片溫度的XADC加以控管。開發人員還可使用外部SoC接腳來監測廣泛系統範圍內的其他類比訊號,進一步監測系統的健康狀況和使用情況。

由於該SoC將處理器和與ADC內部的可編程邏輯緊密整合,設計人員能夠得到因零件數量減少所帶來的好處,而減少元件數還可降低元件故障率。

總結

從系統層面和裝置層面來看,使用All Programmable SoC能帶來一系列好處,包含實現更高整合度、減輕系統重量,以及提高系統效能。最新高階合成工具能促使影像處理功能的快速開發,供OpenCV等眾多開放原始碼通用架構使用。