通過FPGA設(shè)計安全的高級輔助駕駛系統(tǒng)
隨著道路上汽車數(shù)量的增加,我們需要更多的技術(shù)來進(jìn)一步減少交通事故。過去幾年,基于雷達(dá)和攝像機(jī)的新系統(tǒng)功能的出現(xiàn)使駕駛更加安全。很多高級輔助駕駛系統(tǒng)(ADAS)應(yīng)用,如自動巡航控制、道路偏離報警、交通信號標(biāo)志識別等,已經(jīng)成為車輛上非常方便的功能,但對車輛行為沒有影響或影響很小。然而,現(xiàn)在這些技術(shù)開始在車輛控制中扮演積極主動的角色,如車道輔助保持(LKA)或自動緊急剎車(AEB)等,以幫助實現(xiàn)減少交通事故的既定目標(biāo)。這帶來的挑戰(zhàn)是,當(dāng)系統(tǒng)出現(xiàn)故障時,必須確保系統(tǒng)不會對車輛和環(huán)境造成更大的損害。
本文引用地址:http://butianyuan.cn/article/201610/309976.htm本文以單前端攝像機(jī)系統(tǒng)為例,對其進(jìn)行深入分析,介紹它如何通過使用Altera Cyclone V SoC確定關(guān)鍵數(shù)據(jù)流.在現(xiàn)有的診斷機(jī)制下,如何找到故障;并提供一些診斷實例,通過靈活的可編程FPGA,在系統(tǒng)級實現(xiàn)診斷。與使用通用微處理器、數(shù)字信號處理(DSP)和其他平臺相比,在某些情況下,針對實際應(yīng)用使用定制診斷方法可以提高應(yīng)用性能。
ADAS應(yīng)用中的FPGA
上文提到的很多應(yīng)用都有相對較高的計算需求,需要從雷達(dá)或視頻圖像中提取特征信號,確定目標(biāo)及其蹤跡。這通常要求高性能多核CPU體系結(jié)構(gòu)。這些CPU能夠靈活地對特殊事件重新編程,但缺點是效率較低,因為有些功能并非必需或很少使用。
功耗是需重點關(guān)注的另一因素。很多系統(tǒng)位于后視鏡前面的擋風(fēng)玻璃下面,直接暴露在陽光下,或位于散熱器前保險杠中,因此無法高效地散熱。當(dāng)使用高頻運行的多核通用CPU體系結(jié)構(gòu)時,很難滿足性能和功耗要求。使用FPGA可同時解決這些問題。FPGA的功耗通常比標(biāo)準(zhǔn)邏輯高,但與通用計算體系結(jié)構(gòu)相比,高效的定制實現(xiàn)某一算法實際上降低了功耗。FPGA的另一優(yōu)點是,當(dāng)實現(xiàn)流處理算法后,可以避免在內(nèi)部和外部存儲器之間傳送數(shù)據(jù)。若使用外部DDR存儲器進(jìn)行數(shù)據(jù)處理,實際功耗會非常大。
就性能而言,流處理也降低了某些應(yīng)用中遇到外部存儲器帶寬問題的風(fēng)險。FPGA內(nèi)在的可編程特性帶來了通用計算體系結(jié)構(gòu)所具有的某些優(yōu)勢。它甚至支持系列產(chǎn)品的在現(xiàn)場更新,實現(xiàn)在系統(tǒng)編程。在某些情況下,基于FPGA開發(fā),要比基于CPU的高性能芯片體系結(jié)構(gòu)容易得多。由于SoC越來越多,因此,F(xiàn)PGA能夠很好地結(jié)合這兩種體系結(jié)構(gòu),例如Altera Cyclone V SoC系列,它在一個芯片上集成了通用CPU系統(tǒng)和FPGA架構(gòu)。Cyclone V SoC實現(xiàn)了兩個ARM Cortex—A9 CPU,支持通用微控制器和處理器常用的很多外設(shè)。
性能安全
與目前市場上的其他解決方案相比,F(xiàn)PGA更加容易滿足應(yīng)用的功能安全需求。ADAS需要滿足特殊的功能安全要求。2011年,發(fā)布了載重3.5噸以上的ISO26262標(biāo)準(zhǔn),以降低系統(tǒng)出現(xiàn)故障后造成危險狀態(tài)的風(fēng)險。這一標(biāo)準(zhǔn)要求實現(xiàn)嚴(yán)密的設(shè)計過程,在應(yīng)用執(zhí)行過程中探測隨機(jī)硬件故障,以減少系統(tǒng)性故障。它涉及到一個系統(tǒng)及多個系統(tǒng)的分析和開發(fā),列出了系統(tǒng)中使用的每一硬件組件的指南(包括這些硬件組件上運行的軟件),設(shè)定了產(chǎn)品整個安全生命周期中的要求。
應(yīng)用開發(fā)人員定義了專門的安全目標(biāo),針對每一目標(biāo)分配了相應(yīng)的汽車安全完整性等級(ASIL)。對于應(yīng)用中最高級別的ASIL,通常定義了每一組件從開發(fā)直至工作到壽命終了時應(yīng)滿足的要求。圖1顯示了ASlL目前的范圍,來自ADAS需要遵守的客戶需求。
ASIL-B是市場上的最低級別,而某些應(yīng)用則要求采用ASIL-D以支持某些功能。越來越多的ASIL有更嚴(yán)格的要求。在某些具體實現(xiàn)中,組件的通用ASIL或者條目(系統(tǒng))等級都會帶來不必要的復(fù)雜度,對開發(fā)成本和進(jìn)度有影響。建議應(yīng)詳細(xì)地了解應(yīng)用需求。這一般通過分析系統(tǒng)概念,并從中得出安全概念和要求來實現(xiàn)。還可以把應(yīng)用分成幾種不同的步驟,具有不同的ASIL,更容易實現(xiàn),效率更高。
ADAS單前端攝像機(jī)應(yīng)用系統(tǒng)概念
本文舉例的前端攝像機(jī)應(yīng)用使用了ADAS中常見的一個圖像傳感器。圖2顯示了系統(tǒng)的整體框圖。
一個圖像傳感器連接至圖像處理器,即Altera Cyclone V SoC。信號處理鏈和數(shù)據(jù)流被分成4部分:
◆ 通過把圖像變換成更實用的表示,在像素級上進(jìn)行底層處理。
◆ 對行圖像或者塊圖像進(jìn)行中間級處理,使用相應(yīng)的算法,例如Sobcl濾波器或者Canny邊沿探測算法等,提取出邊沿等特征。
◆ 進(jìn)行高級處理,提取出每一幀的數(shù)據(jù),探測目標(biāo)并分類。
◆ 跟蹤識別出的目標(biāo),決定在危險環(huán)境下是否需要采取措施,例如剎車或者換擋電子控制單元(ECU)等會要求與微控制器進(jìn)行通信。
在FPGA上能夠非常高效地實現(xiàn)底層和中間級處理,但用戶也可以在Cyclone V SoC硬核處理器系統(tǒng)(HPS)的Cortex—A9處理器等CPU上實現(xiàn)某些中間級處理。高級處理主要是控制代碼,可以映射到HPS中的一個或兩個Cortex—A9上。處理鏈的最后一步是目標(biāo)跟蹤和判決,可以在外部微控制器上完成這一步。
在整個處理過程中,每一步將輸入數(shù)據(jù)進(jìn)行簡化得到更有意義的數(shù)據(jù),數(shù)據(jù)減少意味著提高了安全臨界。因此,底層實現(xiàn)可以分成質(zhì)量管理(QM)或底層ASIL(如ASIL-A)。這樣的原因是,一個像素期間引入的故障對后續(xù)算法性能的影響很小,可以忽略。在這個例子中,假設(shè)中間級處理符合ASIL-A或者ASIL-B,識別目標(biāo)并進(jìn)行分類的高級處理應(yīng)符合ASIL-B。對目標(biāo)進(jìn)行分類后,生成目標(biāo)表,提供給微控制器,進(jìn)行目標(biāo)跟蹤和判決。這是信號鏈最關(guān)鍵的部分,我們假設(shè)它應(yīng)該符合ASIL-D,這對汽車的行力有直接影響。
組件應(yīng)用功能
圖3顯示了單前端攝像機(jī)系統(tǒng)實例的總體結(jié)構(gòu)圖。由一個外部電源管理電路為Cyclone V SoC提供電源。當(dāng)供電電壓不在額定工作范圍內(nèi)時,單獨的電壓監(jiān)控功能會產(chǎn)生復(fù)位。外部非易失存儲器連接至四路串行外設(shè)(quad SPI)模塊,用于系統(tǒng)啟動過程中裝入應(yīng)用程序并配置FP GA。執(zhí)行應(yīng)用代碼,存儲數(shù)據(jù)和圖像幀時,我們使用DDR存儲器。通過SPI連接外部微控制器,進(jìn)行目標(biāo)探測和最終判決,通過CAN總線接口與汽車基礎(chǔ)結(jié)構(gòu)的其他部分進(jìn)行通信。
評論