【導讀】ADAS是一項為確保道路安全而設計的創(chuàng )新技術(shù)。這項系統性能對未來(lái)的標準商用貨架發(fā)起了挑戰,而FPGA則可以助力ADAS的設計。本文主要解析的是使用FPGA實(shí)現ADAS設計的功能安全要求。
基于雷達和攝像機的應用現在也被用于安全駕駛領(lǐng)域。最初,自適應巡航控制和道路偏離報警等這些高級輔助駕駛系統(ADAS)只是一些非常便利的特性。而現在,它們在車(chē)輛控制上扮演了更積極主動(dòng)的角色,支持實(shí)現道路輔助保持(LKA)等功能。以前的高性能CPU被認為是最適合這些應用的器件,但是綜合考慮計算性能和低功耗之后,促使工程師轉而采用FPGA器件。
ADAS需要滿(mǎn)足特殊的功能安全要求。2011年,載重3.5噸以下客車(chē)的ISO26262標準發(fā)布,其目的是降低系統出現故障后造成危險狀態(tài)的風(fēng)險。這一標準要求采用嚴密的設計過(guò)程,在應用執行過(guò)程中探測隨機硬件故障,以減少系統性故障。
應用開(kāi)發(fā)人員定義了專(zhuān)門(mén)的安全目標,針對每一目標分配了相應的汽車(chē)安全完整性等級(ASIL)。對于應用中最高級別的ASIL,通常定義了每一組件從開(kāi)發(fā)直至工作到壽命終了時(shí)應滿(mǎn)足的要求。圖1顯示了從客戶(hù)需求角度看,ADAS應符合的ASIL目前的范圍。

ASIL-B是市場(chǎng)上的最低級別,而某些應用則要求采用ASIL-D以支持某些功能。越來(lái)越多的ASIL有更嚴格的要求。在某些具體實(shí)現中,組件的通用ASIL或者條目(系統)等級都會(huì )帶來(lái)不必要的復雜度,影響了開(kāi)發(fā)成本和進(jìn)度。分析系統概念,得出安全概念和要求后,還可以把應用分成幾種不同的步驟,這就具有不同的ASIL,更容易實(shí)現,而且實(shí)現的效率更高。
例如,前端攝像機應用使用了ADAS中常見(jiàn)的一個(gè)圖像傳感器。圖2顯示了系統的高級結構圖。

圖2.高級單前端攝像機ADAS
一個(gè)圖像傳感器連接至圖像處理器,例如可以是Altera Cyclone V SoC。信號處理鏈和數據流被分成四個(gè)部分。首先,通過(guò)把圖像變換成更實(shí)用的表現形式,在像素級上進(jìn)行底層處理。然后,對行圖像或者塊圖像進(jìn)行中間級處理,使用相應的算法,提取出邊沿等特征。下一步,進(jìn)行高級處理,提取出每一幀的數據,探測目標并分類(lèi)。然后,系統會(huì )跟蹤目標,如果需要采取措施,則與剎車(chē)或者轉向電子控制單元(ECU)進(jìn)行通信。
在FPGA上,底層和中間級處理能被非常高效地實(shí)現,但是,用戶(hù)也可以在Cyclone V SoC硬核處理器系統(HPS)的Cortex-A9處理器等CPU上實(shí)現某些中間級處理。高級處理主要是控制代碼,可以映射到HPS中的一個(gè)或者兩個(gè)Cortex-A9上。處理鏈的最后一步是目標跟蹤和決策,可以在外部微控制器上完成這一步。
在整個(gè)處理過(guò)程中,每一步將輸入數據進(jìn)行簡(jiǎn)化得到更有意義的數據,數據減少意味著(zhù)提高了安全臨界。因此,底層實(shí)現可以分成質(zhì)量管理(QM)或者底層ASIL (例如,ASIL-A)。原因是一個(gè)像素期間出現的故障對后續算法性能的影響很小,可以忽略。在這個(gè)例子中,假設中間級處理符合ASIL-A或者ASIL-B,識別目標并進(jìn)行分類(lèi)的高級處理功能應符合ASIL-B。對目標進(jìn)行分類(lèi)后,生成目標表,將之提供給微控制器,進(jìn)行目標跟蹤和決策。這是信號鏈最關(guān)鍵的部分,Altera認為它應該符合ASIL-D,這對汽車(chē)的行為有直接影響。
[page]
在這類(lèi)應用中,最好對數據流進(jìn)行更全面的分析,每一級的安全臨界定義對整個(gè)系統的性能會(huì )產(chǎn)生直接影響。對前面計算級有太高的安全要求會(huì )導致難以滿(mǎn)足系統性能目標,而且對系統整體安全的影響很小。但是,處理鏈底層也會(huì )出現故障,對系統安全功能產(chǎn)生較大的影響。例如,底層處理功能的永久故障會(huì )導致高層數據永久損害,但是,合理性檢查很容易探測到這類(lèi)故障,對系統性能的影響相對較小。

圖3.單前端攝像機系統實(shí)例
圖3顯示了單前端攝像機系統實(shí)例的高級結構圖。由一個(gè)外部電源管理電路為Cyclone V SoC提供電源。當供電電壓不在額定工作范圍內時(shí),單獨的電壓監控功能會(huì )產(chǎn)生復位。外部非易失存儲器連接至四路串行外設(quad SPI)模組,系統啟動(dòng)過(guò)程中裝入應用程序,配置FPGA時(shí)會(huì )使用這些模組。執行應用程序代碼,存儲數據和圖像幀時(shí),Altera使用DDR存儲器。通過(guò)SPI連接外部微控制器,進(jìn)行目標探測和最終決策,通過(guò)CAN接口與汽車(chē)底盤(pán)的其他部分進(jìn)行通信。

圖4.Cyclone V SoC模組視圖
應用中所使用的圖像處理器模組如圖4所示。視頻端口接收來(lái)自圖像傳感器的數據,將其傳送至圖像預處理模塊。這一模塊展示了底層圖像處理。在這個(gè)例子中,數據通過(guò)圖像預處理模塊后,通過(guò)FPGA至HPS (F2H)橋接被寫(xiě)入到DDR存儲器中,也可以傳送至下一級,實(shí)現的效率更高。第二級是中間級處理,由各種圖像處理模塊來(lái)完成。通過(guò)HPS至FPGA (H2F)橋接讀出以前存儲在DDR存儲器中的數據,再次將其寫(xiě)入到DDR存儲器中。在這個(gè)例子中,由HPS完成高級處理。
現在,讓我們了解一下用于探測設計中不同區域是否有故障的診斷功能。文中所討論的一些診斷功能能夠探測到永久故障,而有的只能探測到瞬時(shí)故障,也有的能夠探測各種故障。瞬時(shí)故障是一種出現后又消失的故障。對于這一分析,Altera應考慮實(shí)現某些功能時(shí)存儲器中出現的故障,以及實(shí)現功能時(shí)邏輯中可能出現的故障。
在應用軟件使用圖像傳感器之前,應對其進(jìn)行配置,在應用程序執行過(guò)程中不斷修改配置以適應不同的光照條件。圖像傳感器對于應用操作非常關(guān)鍵,因此,建議在容錯時(shí)間間隔(FTTI)期間對其配置至少進(jìn)行一次檢查。這并不一定能夠覆蓋傳感器的所有可能的故障,但是,可以管理好配置寄存器組。
汽車(chē)中使用的某些傳感器支持用戶(hù)在每一圖像幀的輔助掃描線(xiàn)中傳送某些配置寄存器數據。通過(guò)這一功能,用戶(hù)可以檢查每一幀的傳感器設置,不需要通過(guò)I2C接口來(lái)讀取寄存器。傳送幀數據時(shí)就可以在FPGA中實(shí)現這種檢查,而不需要在CPU上花費財力。
通過(guò)底層圖像處理時(shí),一個(gè)像素的變化不太可能對實(shí)際應用的行為產(chǎn)生很大的影響,因此,在很多情況下,可以忽略這類(lèi)故障。但是,會(huì )導致幀丟失或者整個(gè)幀被損壞的故障是必須被檢查到的。
大部分圖像傳感器含有傳送定義好的測試幀的功能,不需要傳送正常的圖像數據。定義好輸入數據后,也就定義了圖像處理模塊的輸出數據。然后進(jìn)行后續測試。例如,通過(guò)對輸出數據進(jìn)行循環(huán)冗余校驗(CRC),找到系統中出現的任何永久故障。這種測試覆蓋了整個(gè)數據通路中的永久故障。
另外,還應該探測到FPGA中一個(gè)模塊向另一個(gè)模塊傳輸數據時(shí)數據的變化。前面提到的測試碼型或者測試幀方法涵蓋了大部分永久故障,但是,探測不到瞬時(shí)故障。而各種傳輸或者信息冗余技術(shù)能夠探測到這類(lèi)故障。
中間層圖像處理實(shí)現了邊沿或者角探測算法,還可以應用特征提取算法。因此,只查看圖像中關(guān)注的特征,減少了生成數據。數據減少后,由于故障會(huì )導致后續處理步驟中丟失目標,因此,丟失特征的風(fēng)險增大了。
高級圖像處理階段包括目標探測和目標分類(lèi)。從軟件術(shù)語(yǔ)的角度來(lái)講,這一級主要是控制代碼,因此,非常適合在CPU上運行。HPS采用了幾種硬件功能(例如,ECC、MMU、看門(mén)狗),在HPS中進(jìn)行故障診斷。
功能安全重要的另一面是確保減少系統性故障。這通過(guò)使用可靠的開(kāi)發(fā)過(guò)程和工具來(lái)實(shí)現。ISO26262標準詳細規定了功能安全的管理要求,例如,對安全生命周期和支持過(guò)程中不同的行為進(jìn)行一致性測量,類(lèi)似配置和修改管理。如果所使用的工具有可能造成應用故障,那么就應該分析這些工具,進(jìn)行測量以減小故障發(fā)生的概率。
ADAS是確保越來(lái)越擁擠的道路更加安全的下一波創(chuàng )新。這些系統的性能需求給現有以及未來(lái)的標準商用貨架(COTS)產(chǎn)品帶來(lái)了挑戰,而可編程FPGA在這方面有很大的優(yōu)勢。實(shí)現專(zhuān)用診斷能夠擴大系統的診斷覆蓋。很多COTS產(chǎn)品在設計時(shí)并沒(méi)有體現功能安全,而通過(guò)使用具有功能安全的平臺和開(kāi)發(fā)環(huán)境,與擅長(cháng)功能安全的合作伙伴合作,這些都有利于系統的整體實(shí)現。
相關(guān)閱讀:
基于FPGA的等效時(shí)間采樣原理的實(shí)現
博客精品:FPGA系統構成及器件互聯(lián)
網(wǎng)友教你設計FPGA的通用數控分頻器