改搭可編程FPGA SoC ADAS系統性故障銳減
基于雷達(RADAR)和攝影機設計的應用正大舉進駐汽車駕駛安全領域。最初,自適應巡航控制和道路偏離警報等先進駕駛輔助系統(ADAS)只是一些非常便利的功能,而現在,它們在車輛控制上扮演更積極主動的角色,支持實現車道維持輔助(LKA)等功能。以前的高性能中央處理器(CPU)被認為是最適合這些應用的組件,但車廠須要綜合考慮運算性能和低功率消耗,這促使工程師轉向采用現場可編程門陣列(FPGA)組件。
本文引用地址:http://www.104case.com/article/201808/387641.htmADAS須要滿足特殊的功能安全要求。在2011年,ISO發布針對載重3.5噸以下客車的ISO26262標準,以降低系統出現故障后造成危險的風險。這個標準要求采用嚴密的設計過程,在應用執行過程中探測隨機硬件故障,以減少系統性故障。
提升ADAS功能安全 FPGA SoC受青睞
應用開發人員定義了專門的安全目標,針對每個目標分配相應的汽車安全完整性等級(ASIL)。對于應用中最高級別的ASIL-D,通常定義了每一個組件從開發直至運作到壽命終了時應滿足的要求。圖1顯示了從客戶需求角度來看,ADAS應符合的ASIL目前的范圍。

圖1 ADAS所需ASIL規范等級
ASIL-B是市場上的最低級別,而某些應用則要求采用ASIL-D,以支持某些功能。越來越多的ADAS應用對ASIL有更嚴格的要求。在某些具體實現中,組件的通用ASIL或者項目(系統)等級都會帶來不必要的復雜度,影響開發成本和進度。分析系統概念,得出安全概念和要求后,還可以把應用分成幾種不同的步驟,具有不同的ASIL,如此一來,系統設計則可更容易實現,而且實現的效率更高。
例如,前方攝影機應用使用ADAS中常見的一個影像傳感器,如圖2顯示的高階結構圖。一個影像傳感器連接至圖像處理器,該處理器可以是Altera Cyclone FPGA系統單芯片(SoC)或其他方案。訊號處理鏈路和數據流被分成四個部分。首先,透過把影像變換成更實用的表現方式,在像素層級上進行底層處理。然后,對影像或者區塊圖像進行中間層級處理,使用相應的算法,提取出邊緣等特征。下一步,則會進行高階處理,提取出每一個圖幀的數據,探測目標并進行分類。然后,系統會追蹤目標,如果需要采取措施,則與煞車或者轉向引擎控制單元(ECU)進行通訊。

圖2 高階單一前方攝影機ADAS
除了能夠在FPGA上非常高效率的實現底層和中間層級處理,用戶也可以在Cyclone V系列FPGA SoC硬式核心處理器系統(HPS)的Cortex-A9等處理核心實現某些中間層級處理。高階處理主要是句柄,可以映像到HPS中的一個或者兩個Cortex-A9上。處理鏈路的最后一步是目標追蹤和判斷,可以在外部微控制器(MCU)上完成這一個步驟。
在整個處理過程中,工程師可將輸入數據進行簡化,以得到更有意義的數據,數據減少意味提高安全臨界值。因此,底層實現可以分成質量管理(QM)或底層ASIL(例如ASIL-A)。會這樣做的原因是因為單一個像素期間出現的故障對后續算法的性能影響很小,因此可以忽略。在這個例子中,假設中間層級處理符合ASIL-A或ASIL-B,識別目標并進行分類的高階處理功能應符合ASIL-B。對目標進行分類后,會產生目標表,并提供給微控制器,進行目標追蹤和判斷。這是訊號鏈路最關鍵的部分,我們認為它應該符合ASIL-D,這對汽車的行為有直接影響。
實現分級安全處理 FPGA兼顧設計可靠度/效率
在這類應用中,最好對數據流進行更全面的分析,每一個層級的安全臨界定義對整個系統的性能會產生直接影響。對前面運算層級有太高的安全要求會導致難以滿足系統性能目標,而且對系統整體安全的影響很小。不過,處理鏈路底層也會出現故障,對系統安全功能產生較大的影響,例如,底層處理功能的永久故障會導致高層上的數據永久損害,透過合理性檢查很容易探測到這類故障,對系統性能的影響相對較小。
圖3顯示單一前方攝像機系統實例的高階結構圖。由一個外部電源管理電路為Cyclone V SoC提供電源,當供電電壓不在額定運作范圍內時,單獨的電壓監控功能會產生重置,外部非揮發性內存連接至四路串行周邊接口(Quad SPI)模塊,系統啟動過程中加載應用程序,配置FPGA時會使用這些模塊。我們使用雙倍數據率(DDR)內存來執行應用程序代碼、儲存數據和影像圖幀,透過SPI連接外部微控制器,進行目標探測和最終判斷,并利用控制器局域網絡(CAN)接口與汽車底盤的其他部分進行通訊。

圖3 單一前方攝影機系統實例
此應用所使用的圖像處理器模塊如圖4所示。視訊端口接收來自影像傳感器的數據,將其傳送至圖像處理模塊,這一個模塊相當于底層圖像處理層級,在這個例子中,數據透過圖像處理模塊后,通過FPGA至HPS(F2H)橋接被寫入到DDR內存中,也可以傳送至下一層級,實現的效率更高。第二級是中間層級處理,由各種圖像處理模塊來完成,透過HPS至FPGA(H2F)橋接讀出以前儲存在DDR內存中的數據,再次將其寫入到DDR內存中。在這個例子中,由HPS完成高階處理層級。

圖4 Cyclone V SoC電路架構圖
發揮可編程效益 FPGA全方位探測系統故障
接下來的段落將說明用于探測設計中,不同區域是否有故障的診斷功能。一些診斷功能能夠探測到永久故障,而有的只能探測到暫時性故障,也有的能探測各種故障。暫時性故障是一種出現后又消失的故障,對于這一類情形,設計人員應考慮實現某些功能時內存中出現的故障,以及實現功能時邏輯中可能出現的故障。
在應用軟件使用影像傳感器之前,工程師應對其進行配置,在應用程序執行過程中不斷修改配置以適應不同的光線條件。影像傳感器對于應用操作非常關鍵,因此,建議在容錯時間間隔(FTTI)期間對其配置至少進行一次檢查,這并不一定能覆蓋傳感器所有可能的故障,但可以管理好配置緩存器組(表1)。
評論