使用FPGA實(shí)現(xiàn)ADAS設(shè)計(jì)的功能安全考慮

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

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