通過(guò)FPGA設計安全的高級輔助駕駛系統
隨著(zhù)道路上汽車(chē)數量的增加,我們需要更多的技術(shù)來(lái)進(jìn)一步減少交通事故。過(guò)去幾年,基于雷達和攝像機的新系統功能的出現使駕駛更加安全。很多高級輔助駕駛系統(ADAS)應用,如自動(dòng)巡航控制、道路偏離報警、交通信號標志識別等,已經(jīng)成為車(chē)輛上非常方便的功能,但對車(chē)輛行為沒(méi)有影響或影響很小。然而,現在這些技術(shù)開(kāi)始在車(chē)輛控制中扮演積極主動(dòng)的角色,如車(chē)道輔助保持(LKA)或自動(dòng)緊急剎車(chē)(AEB)等,以幫助實(shí)現減少交通事故的既定目標。這帶來(lái)的挑戰是,當系統出現故障時(shí),必須確保系統不會(huì )對車(chē)輛和環(huán)境造成更大的損害。
本文引用地址:http://dyxdggzs.com/article/201610/309976.htm本文以單前端攝像機系統為例,對其進(jìn)行深入分析,介紹它如何通過(guò)使用Altera Cyclone V SoC確定關(guān)鍵數據流.在現有的診斷機制下,如何找到故障;并提供一些診斷實(shí)例,通過(guò)靈活的可編程FPGA,在系統級實(shí)現診斷。與使用通用微處理器、數字信號處理(DSP)和其他平臺相比,在某些情況下,針對實(shí)際應用使用定制診斷方法可以提高應用性能。
ADAS應用中的FPGA
上文提到的很多應用都有相對較高的計算需求,需要從雷達或視頻圖像中提取特征信號,確定目標及其蹤跡。這通常要求高性能多核CPU體系結構。這些CPU能夠靈活地對特殊事件重新編程,但缺點(diǎn)是效率較低,因為有些功能并非必需或很少使用。
功耗是需重點(diǎn)關(guān)注的另一因素。很多系統位于后視鏡前面的擋風(fēng)玻璃下面,直接暴露在陽(yáng)光下,或位于散熱器前保險杠中,因此無(wú)法高效地散熱。當使用高頻運行的多核通用CPU體系結構時(shí),很難滿(mǎn)足性能和功耗要求。使用FPGA可同時(shí)解決這些問(wèn)題。FPGA的功耗通常比標準邏輯高,但與通用計算體系結構相比,高效的定制實(shí)現某一算法實(shí)際上降低了功耗。FPGA的另一優(yōu)點(diǎn)是,當實(shí)現流處理算法后,可以避免在內部和外部存儲器之間傳送數據。若使用外部DDR存儲器進(jìn)行數據處理,實(shí)際功耗會(huì )非常大。
就性能而言,流處理也降低了某些應用中遇到外部存儲器帶寬問(wèn)題的風(fēng)險。FPGA內在的可編程特性帶來(lái)了通用計算體系結構所具有的某些優(yōu)勢。它甚至支持系列產(chǎn)品的在現場(chǎng)更新,實(shí)現在系統編程。在某些情況下,基于FPGA開(kāi)發(fā),要比基于CPU的高性能芯片體系結構容易得多。由于SoC越來(lái)越多,因此,FPGA能夠很好地結合這兩種體系結構,例如Altera Cyclone V SoC系列,它在一個(gè)芯片上集成了通用CPU系統和FPGA架構。Cyclone V SoC實(shí)現了兩個(gè)ARM Cortex—A9 CPU,支持通用微控制器和處理器常用的很多外設。
性能安全
與目前市場(chǎng)上的其他解決方案相比,FPGA更加容易滿(mǎn)足應用的功能安全需求。ADAS需要滿(mǎn)足特殊的功能安全要求。2011年,發(fā)布了載重3.5噸以上的ISO26262標準,以降低系統出現故障后造成危險狀態(tài)的風(fēng)險。這一標準要求實(shí)現嚴密的設計過(guò)程,在應用執行過(guò)程中探測隨機硬件故障,以減少系統性故障。它涉及到一個(gè)系統及多個(gè)系統的分析和開(kāi)發(fā),列出了系統中使用的每一硬件組件的指南(包括這些硬件組件上運行的軟件),設定了產(chǎn)品整個(gè)安全生命周期中的要求。
應用開(kāi)發(fā)人員定義了專(zhuān)門(mén)的安全目標,針對每一目標分配了相應的汽車(chē)安全完整性等級(ASIL)。對于應用中最高級別的ASIL,通常定義了每一組件從開(kāi)發(fā)直至工作到壽命終了時(shí)應滿(mǎn)足的要求。圖1顯示了ASlL目前的范圍,來(lái)自ADAS需要遵守的客戶(hù)需求。

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

一個(gè)圖像傳感器連接至圖像處理器,即Altera Cyclone V SoC。信號處理鏈和數據流被分成4部分:
◆ 通過(guò)把圖像變換成更實(shí)用的表示,在像素級上進(jìn)行底層處理。
◆ 對行圖像或者塊圖像進(jìn)行中間級處理,使用相應的算法,例如Sobcl濾波器或者Canny邊沿探測算法等,提取出邊沿等特征。
◆ 進(jìn)行高級處理,提取出每一幀的數據,探測目標并分類(lèi)。
◆ 跟蹤識別出的目標,決定在危險環(huán)境下是否需要采取措施,例如剎車(chē)或者換擋電子控制單元(ECU)等會(huì )要求與微控制器進(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)鍵的部分,我們假設它應該符合ASIL-D,這對汽車(chē)的行力有直接影響。
組件應用功能
圖3顯示了單前端攝像機系統實(shí)例的總體結構圖。由一個(gè)外部電源管理電路為Cyclone V SoC提供電源。當供電電壓不在額定工作范圍內時(shí),單獨的電壓監控功能會(huì )產(chǎn)生復位。外部非易失存儲器連接至四路串行外設(quad SPI)模塊,用于系統啟動(dòng)過(guò)程中裝入應用程序并配置FP GA。執行應用代碼,存儲數據和圖像幀時(shí),我們使用DDR存儲器。通過(guò)SPI連接外部微控制器,進(jìn)行目標探測和最終判決,通過(guò)CAN總線(xiàn)接口與汽車(chē)基礎結構的其他部分進(jìn)行通信。
評論