基于雷達(dá)和攝像機(jī)的應(yīng)用現(xiàn)在也被用于安全駕駛領(lǐng)域。最初,自適應(yīng)巡航控制和道路偏離報(bào)警等這些高級(jí)輔助駕駛系統(tǒng)(ADAS)只是一些非常便利的特性。而現(xiàn)在,它們?cè)谲囕v控制上扮演了更積極主動(dòng)的角色,支持實(shí)現(xiàn)道路輔助保持(LKA)等功能。以前的高性能CPU被認(rèn)為是最適合這些應(yīng)用的器件,但是綜合考慮計(jì)算性能和低功耗之后,促使工程師轉(zhuǎn)而采用FPGA器件。
ADAS需要滿足特殊的功能安全要求。2011年,載重3.5噸以下客車的ISO26262標(biāo)準(zhǔn)發(fā)布,其目的是降低系統(tǒng)出現(xiàn)故障后造成危險(xiǎn)狀態(tài)的風(fēng)險(xiǎn)。這一標(biāo)準(zhǔn)要求采用嚴(yán)密的設(shè)計(jì)過程,在應(yīng)用執(zhí)行過程中探測隨機(jī)硬件故障,以減少系統(tǒng)性故障。
應(yīng)用開發(fā)人員定義了專門的安全目標(biāo),針對(duì)每一目標(biāo)分配了相應(yīng)的汽車安全完整性等級(jí)(ASIL)。對(duì)于應(yīng)用中最高級(jí)別的ASIL,通常定義了每一組件從開發(fā)直至工作到壽命終了時(shí)應(yīng)滿足的要求。圖1顯示了從客戶需求角度看,ADAS應(yīng)符合的ASIL目前的范圍。
圖1.ADAS ASIL市場需求(注:Range of Market Requirements for ADAS Applicatios:針對(duì)ADAS應(yīng)用的市場要求范圍)
ASIL-B是市場上的最低級(jí)別,而某些應(yīng)用則要求采用ASIL-D以支持某些功能。越來越多的ASIL有更嚴(yán)格的要求。在某些具體實(shí)現(xiàn)中,組件的通用ASIL或者條目(系統(tǒng))等級(jí)都會(huì)帶來不必要的復(fù)雜度,影響了開發(fā)成本和進(jìn)度。分析系統(tǒng)概念,得出安全概念和要求后,還可以把應(yīng)用分成幾種不同的步驟,這就具有不同的ASIL,更容易實(shí)現(xiàn),而且實(shí)現(xiàn)的效率更高。
例如,前端攝像機(jī)應(yīng)用使用了ADAS中常見的一個(gè)圖像傳感器。圖2顯示了系統(tǒng)的高級(jí)結(jié)構(gòu)圖。
一個(gè)圖像傳感器連接至圖像處理器,例如可以是Altera Cyclone V SoC。信號(hào)處理鏈和數(shù)據(jù)流被分成四個(gè)部分。首先,通過把圖像變換成更實(shí)用的表現(xiàn)形式,在像素級(jí)上進(jìn)行底層處理。然后,對(duì)行圖像或者塊圖像進(jìn)行中間級(jí)處理,使用相應(yīng)的算法,提取出邊沿等特征。下一步,進(jìn)行高級(jí)處理,提取出每一幀的數(shù)據(jù),探測目標(biāo)并分類。然后,系統(tǒng)會(huì)跟蹤目標(biāo),如果需要采取措施,則與剎車或者轉(zhuǎn)向電子控制單元(ECU)進(jìn)行通信。
在FPGA上,底層和中間級(jí)處理能被非常高效地實(shí)現(xiàn),但是,用戶也可以在Cyclone V SoC硬核處理器系統(tǒng)(HPS)的Cortex-A9處理器等CPU上實(shí)現(xiàn)某些中間級(jí)處理。高級(jí)處理主要是控制代碼,可以映射到HPS中的一個(gè)或者兩個(gè)Cortex-A9上。處理鏈的最后一步是目標(biāo)跟蹤和決策,可以在外部微控制器上完成這一步。
在整個(gè)處理過程中,每一步將輸入數(shù)據(jù)進(jìn)行簡化得到更有意義的數(shù)據(jù),數(shù)據(jù)減少意味著提高了安全臨界。因此,底層實(shí)現(xiàn)可以分成質(zhì)量管理(QM)或者底層ASIL (例如,ASIL-A)。原因是一個(gè)像素期間出現(xiàn)的故障對(duì)后續(xù)算法性能的影響很小,可以忽略。在這個(gè)例子中,假設(shè)中間級(jí)處理符合ASIL-A或者ASIL-B,識(shí)別目標(biāo)并進(jìn)行分類的高級(jí)處理功能應(yīng)符合ASIL-B。對(duì)目標(biāo)進(jìn)行分類后,生成目標(biāo)表,將之提供給微控制器,進(jìn)行目標(biāo)跟蹤和決策。這是信號(hào)鏈最關(guān)鍵的部分,Altera認(rèn)為它應(yīng)該符合ASIL-D,這對(duì)汽車的行為有直接影響。
[page]
在這類應(yīng)用中,最好對(duì)數(shù)據(jù)流進(jìn)行更全面的分析,每一級(jí)的安全臨界定義對(duì)整個(gè)系統(tǒng)的性能會(huì)產(chǎn)生直接影響。對(duì)前面計(jì)算級(jí)有太高的安全要求會(huì)導(dǎo)致難以滿足系統(tǒng)性能目標(biāo),而且對(duì)系統(tǒng)整體安全的影響很小。但是,處理鏈底層也會(huì)出現(xiàn)故障,對(duì)系統(tǒng)安全功能產(chǎn)生較大的影響。例如,底層處理功能的永久故障會(huì)導(dǎo)致高層數(shù)據(jù)永久損害,但是,合理性檢查很容易探測到這類故障,對(duì)系統(tǒng)性能的影響相對(duì)較小。
圖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)過程中裝入應(yīng)用程序,配置FPGA時(shí)會(huì)使用這些模組。執(zhí)行應(yīng)用程序代碼,存儲(chǔ)數(shù)據(jù)和圖像幀時(shí),Altera使用DDR存儲(chǔ)器。通過SPI連接外部微控制器,進(jìn)行目標(biāo)探測和最終決策,通過CAN接口與汽車底盤的其他部分進(jìn)行通信。
應(yīng)用中所使用的圖像處理器模組如圖4所示。視頻端口接收來自圖像傳感器的數(shù)據(jù),將其傳送至圖像預(yù)處理模塊。這一模塊展示了底層圖像處理。在這個(gè)例子中,數(shù)據(jù)通過圖像預(yù)處理模塊后,通過FPGA至HPS (F2H)橋接被寫入到DDR存儲(chǔ)器中,也可以傳送至下一級(jí),實(shí)現(xiàn)的效率更高。第二級(jí)是中間級(jí)處理,由各種圖像處理模塊來完成。通過HPS至FPGA (H2F)橋接讀出以前存儲(chǔ)在DDR存儲(chǔ)器中的數(shù)據(jù),再次將其寫入到DDR存儲(chǔ)器中。在這個(gè)例子中,由HPS完成高級(jí)處理。
現(xiàn)在,讓我們了解一下用于探測設(shè)計(jì)中不同區(qū)域是否有故障的診斷功能。文中所討論的一些診斷功能能夠探測到永久故障,而有的只能探測到瞬時(shí)故障,也有的能夠探測各種故障。瞬時(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í)行過程中不斷修改配置以適應(yīng)不同的光照條件。圖像傳感器對(duì)于應(yīng)用操作非常關(guān)鍵,因此,建議在容錯(cuò)時(shí)間間隔(FTTI)期間對(duì)其配置至少進(jìn)行一次檢查。這并不一定能夠覆蓋傳感器的所有可能的故障,但是,可以管理好配置寄存器組。
汽車中使用的某些傳感器支持用戶在每一圖像幀的輔助掃描線中傳送某些配置寄存器數(shù)據(jù)。通過這一功能,用戶可以檢查每一幀的傳感器設(shè)置,不需要通過I2C接口來讀取寄存器。傳送幀數(shù)據(jù)時(shí)就可以在FPGA中實(shí)現(xiàn)這種檢查,而不需要在CPU上花費(fèi)財(cái)力。
通過底層圖像處理時(shí),一個(gè)像素的變化不太可能對(duì)實(shí)際應(yīng)用的行為產(chǎn)生很大的影響,因此,在很多情況下,可以忽略這類故障。但是,會(huì)導(dǎo)致幀丟失或者整個(gè)幀被損壞的故障是必須被檢查到的。
大部分圖像傳感器含有傳送定義好的測試幀的功能,不需要傳送正常的圖像數(shù)據(jù)。定義好輸入數(shù)據(jù)后,也就定義了圖像處理模塊的輸出數(shù)據(jù)。然后進(jìn)行后續(xù)測試。例如,通過對(duì)輸出數(shù)據(jù)進(jìn)行循環(huán)冗余校驗(yàn)(CRC),找到系統(tǒng)中出現(xiàn)的任何永久故障。這種測試覆蓋了整個(gè)數(shù)據(jù)通路中的永久故障。
另外,還應(yīng)該探測到FPGA中一個(gè)模塊向另一個(gè)模塊傳輸數(shù)據(jù)時(shí)數(shù)據(jù)的變化。前面提到的測試碼型或者測試幀方法涵蓋了大部分永久故障,但是,探測不到瞬時(shí)故障。而各種傳輸或者信息冗余技術(shù)能夠探測到這類故障。
中間層圖像處理實(shí)現(xiàn)了邊沿或者角探測算法,還可以應(yīng)用特征提取算法。因此,只查看圖像中關(guān)注的特征,減少了生成數(shù)據(jù)。數(shù)據(jù)減少后,由于故障會(huì)導(dǎo)致后續(xù)處理步驟中丟失目標(biāo),因此,丟失特征的風(fēng)險(xiǎn)增大了。
高級(jí)圖像處理階段包括目標(biāo)探測和目標(biāo)分類。從軟件術(shù)語的角度來講,這一級(jí)主要是控制代碼,因此,非常適合在CPU上運(yùn)行。HPS采用了幾種硬件功能(例如,ECC、MMU、看門狗),在HPS中進(jìn)行故障診斷。
功能安全重要的另一面是確保減少系統(tǒng)性故障。這通過使用可靠的開發(fā)過程和工具來實(shí)現(xiàn)。ISO26262標(biāo)準(zhǔn)詳細(xì)規(guī)定了功能安全的管理要求,例如,對(duì)安全生命周期和支持過程中不同的行為進(jìn)行一致性測量,類似配置和修改管理。如果所使用的工具有可能造成應(yīng)用故障,那么就應(yīng)該分析這些工具,進(jìn)行測量以減小故障發(fā)生的概率。
ADAS是確保越來越擁擠的道路更加安全的下一波創(chuàng)新。這些系統(tǒng)的性能需求給現(xiàn)有以及未來的標(biāo)準(zhǔn)商用貨架(COTS)產(chǎn)品帶來了挑戰(zhàn),而可編程FPGA在這方面有很大的優(yōu)勢。實(shí)現(xiàn)專用診斷能夠擴(kuò)大系統(tǒng)的診斷覆蓋。很多COTS產(chǎn)品在設(shè)計(jì)時(shí)并沒有體現(xiàn)功能安全,而通過使用具有功能安全的平臺(tái)和開發(fā)環(huán)境,與擅長功能安全的合作伙伴合作,這些都有利于系統(tǒng)的整體實(shí)現(xiàn)。
相關(guān)閱讀:
基于FPGA的等效時(shí)間采樣原理的實(shí)現(xiàn)
博客精品:FPGA系統(tǒng)構(gòu)成及器件互聯(lián)
網(wǎng)友教你設(shè)計(jì)FPGA的通用數(shù)控分頻器