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