基于FPGA的汽車ECU設(shè)計(jì)充分符合AUTOSAR和ISO 26262標(biāo)準(zhǔn)
用戶可以將在 MCU 和 BSW 層中綜合的外設(shè)和硬件協(xié)處理器設(shè)置成高智能化水平,以釋放 CPU 時(shí)間,從而簡化車載 ECU 的軟件。
本文引用地址:http://butianyuan.cn/article/221573.htm隨著 ECU 平臺(tái)日趨復(fù)雜化,系統(tǒng)所需的 I/O 線路數(shù)也在不斷增加。在這方面 FPGA 較微控制器有明顯的優(yōu)勢(shì),因?yàn)?FPGA一般能夠提供多得多的用戶引腳數(shù)。這一點(diǎn)一般與基于 MCU 的 ECU 有關(guān),因?yàn)檫@種 ECU 需要采用執(zhí)行并-串?dāng)?shù)據(jù)轉(zhuǎn)換的外部芯片(比如數(shù)字移位寄存器或模擬多路復(fù)用器)來擴(kuò)展 ECU 的輸入和輸出。采用 FPGA 可以繞開這些外部組件,進(jìn)而縮減材料清單成本以及電子開發(fā)板的 PCB尺寸。
先進(jìn)的 FPGA 器件已經(jīng)集成有模數(shù)轉(zhuǎn)換器。這個(gè)特性對(duì)汽車設(shè)計(jì)意義重大,因?yàn)樵S多 ECU使用模擬信號(hào)(比如電池電壓)來實(shí)現(xiàn)所需的部分功能。在可編程邏輯器件中集成模數(shù)轉(zhuǎn)換器為 FPGA 開辟了新的應(yīng)用領(lǐng)域。
與 MCU 類似,F(xiàn)PGA 也提供遠(yuǎn)程更新功能。但在這里需要提醒的是,下載到 FPGA 中的位流不僅涉及到軟件代碼,而且與硬件電路也息息相關(guān)。這意味著就算產(chǎn)品已經(jīng)進(jìn)入量產(chǎn)階段,仍然可以通過系統(tǒng)更新或升級(jí)來修改硬件設(shè)計(jì)。汽車產(chǎn)業(yè)非常欣賞這種靈活性,因?yàn)樗軌蛟诋a(chǎn)品發(fā)布后修改缺陷(軟/硬件均可)。
在任何嵌入有符合 ISO 26262安全相關(guān)要求的功能的 ECU 中,涉及該實(shí)現(xiàn)方案的軟硬件必須根據(jù)其分類滿足一定程度的保護(hù)要求。從軟件的角度講,它必須體現(xiàn)出抗干擾能力,即運(yùn)行在 ECU 中的非安全相關(guān)代碼一定不能危及同一 ECU 中安全相關(guān)類的代碼的運(yùn)行。這種隔離是保證安全相關(guān)功能與非安全相關(guān)功能在同一處理器上正確并行運(yùn)行所必須的。一般來說,在可編程邏輯中管理這些指標(biāo)比在 MCU 中具有更大的靈活性。
對(duì)于面向功能安全的存儲(chǔ)器保護(hù)策略,有必要確保只能授權(quán)的安全軟件組件有權(quán)對(duì)特定安全相關(guān)信號(hào)進(jìn)行寫入存取。在 MCU 器件環(huán)境中,存儲(chǔ)器分區(qū)提供了一種故障約束機(jī)制,能夠?qū)④浖?yīng)用彼此分離,避免其間發(fā)生數(shù)據(jù)錯(cuò)誤??删幊踢壿嫼苡锌赡軐?shí)現(xiàn)一種更有效的自我保護(hù)機(jī)制??删幊踢壿嬁梢酝ㄟ^專用的單個(gè)雙端口存儲(chǔ)器來管理與安全信號(hào)相關(guān)的 RTE 緩存,這樣數(shù)據(jù)從寫端口寫入,從讀端口讀取。采用這種方法,可以采用專用的硬件控制器給寫入或讀取這些來自軟件側(cè)的信號(hào)設(shè)置不同的約束條件。這種方法也可以采用寄存器來實(shí)現(xiàn)。
能夠在 ECU 系統(tǒng)中導(dǎo)入定制硬件解決方案是 FPGA 的一大優(yōu)勢(shì),特別是對(duì)安全相關(guān)的功能而言。具體而言,對(duì) I/O 引腳和 GPIO 控制器,在安全功能中涉及的引腳布局可以組合成定制的 I/O 端口,僅供 ECU 中的安全組件訪問,與器件的其余引腳分離。這是將系統(tǒng)的安全相關(guān)引腳與非安全相關(guān)引腳分開的理想辦法,從設(shè)計(jì)上避免了干擾的發(fā)生。任何對(duì)非安全引腳的訪問都不會(huì)破壞安全引腳的狀態(tài),因?yàn)榘踩_只受安全相關(guān)代碼的管理。這種構(gòu)思的具體描述見圖 4。
圖4 軟/硬件聯(lián)合設(shè)計(jì)的安全架構(gòu),可將安全相關(guān)端口和非安全相關(guān)端口隔離開來,以保證無干擾
另外,還能夠根據(jù)應(yīng)用或處理該應(yīng)用的軟件組件的需求定制每個(gè) GPIO 端口的大小,從而避免將 GPIO 端口轉(zhuǎn)換為不同應(yīng)用共享的物理資源,如MCU端口的情況。用這種方法,F(xiàn)PGA中每一個(gè)由不同軟件組件(比如車窗升降器、雨刷、外后視鏡等)管理的應(yīng)用都能夠?qū)⒆约禾囟ǖ亩丝谟成涞较到y(tǒng)存儲(chǔ)映射中特定的寄存器。這在 MCU 平臺(tái)上無法做到,因?yàn)?MCU的端口有固定尺寸(一般為8、16 或 32 位寬)且按字長尋址,而非按位尋址。因此在采用 MCU 的情況下,這種控制寄存器在程序執(zhí)行的時(shí)候變成了有多個(gè) SWC 訪問的共享資源。
我們可以把用于 GPIO 控制器的策略擴(kuò)展用于其它標(biāo)準(zhǔn)外設(shè)。這樣 AUTOSAR 借助 SWC 概念在頂層提倡的功能分區(qū)和隔離思路也可以在可編程硬件的幫助下推廣運(yùn)用到較低層的資源上。這種技術(shù)如果采用基于標(biāo)準(zhǔn) MCU 器件的靜態(tài)硬件解決方案是無法實(shí)現(xiàn)的。
我們上文介紹的用于 MCU 標(biāo)準(zhǔn)外設(shè)的隔離策略也可以用于安全功能的各個(gè)通道或數(shù)據(jù)路徑。這一特性尤其適用于按 ISO 26262 標(biāo)準(zhǔn)的 ASIL 分級(jí)組織的精細(xì)分類安全目標(biāo)(見側(cè)邊欄)。此項(xiàng)功能可用于將各個(gè)通道或者數(shù)據(jù)路徑分解成較低 ASIL 級(jí)別的冗余分區(qū),這樣每一個(gè)通道或路徑都以冗余方式運(yùn)行,后續(xù)根據(jù)各自的新級(jí)別予以實(shí)現(xiàn)。這種基于冗余的安全策略是選擇可編程邏輯的又一理由,因?yàn)榭删幊踢壿嬆軌蛟谕黄骷卸啻卫鄠€(gè)相同、獨(dú)立的處理引擎。另外,滿足某個(gè) ASIL 級(jí)別的要求用架構(gòu)方法(硬件)往往比用抽象軟件能夠更輕松明晰地證明,特別是像抗干擾這樣的功能。C 編程語言中的棧溢出或是數(shù)據(jù)指針處理不當(dāng)可能會(huì)給系統(tǒng)帶來出乎意料的安全性問題。
這種基于冗余的安全策略是選擇可編程邏輯的又一理由,因?yàn)榭删幊踢壿嬆軌蛟谕黄骷卸啻卫鄠€(gè)相同、獨(dú)立的處理引擎。
可編程邏輯的靈活性及其對(duì)功能安全的適用性還帶來另一項(xiàng)設(shè)計(jì)優(yōu)勢(shì),就是可以采用三模冗
余 (TMR) 策略。這是航空航天應(yīng)用中用于緩解單粒子翻轉(zhuǎn) (SEU) 風(fēng)險(xiǎn)的常見方法。這種緩解方案由三個(gè)相同邏輯電路構(gòu)成,并行執(zhí)行相同的任務(wù),對(duì)應(yīng)的輸出由一個(gè)多數(shù)表決電路進(jìn)行比較。采用硬件實(shí)現(xiàn)這種策略效率很高。
另外,在這個(gè)高度關(guān)注成本和功耗的市場(chǎng)上,賽靈思 Zynq-7000 EPP等一些可編程邏輯器件能夠支持多項(xiàng)降低系統(tǒng)總體功耗的功能,其中的部分功能是從 MCU 繼承而來。像處理系統(tǒng)的僅加電模式、休眠模式和外設(shè)獨(dú)立時(shí)鐘域這樣的功能能夠大幅降低器件待機(jī)期間的動(dòng)態(tài)功耗。
某些可編程邏輯器件在結(jié)構(gòu)中配備有硬核處理器,便于設(shè)計(jì)人員第一步先用軟件開發(fā)整個(gè)系統(tǒng)功能,就像他們尋常在 MCU 平臺(tái)上所做的一樣,隨后逐步地在設(shè)計(jì)中增加硬件,將部分設(shè)計(jì)移植到可編程邏輯資源。這種方法能夠讓設(shè)計(jì)人員為解決方案開發(fā)出不同的版本,而且與純軟件方法相比,能夠?qū)崿F(xiàn)在定制硬件中綜合部分功能的優(yōu)勢(shì)。
在運(yùn)行時(shí)可重配置硬件上進(jìn)行 ECU 設(shè)計(jì)
在探討完畢借助可編程邏輯在靜態(tài)硬件和軟件上實(shí)現(xiàn) ECU 的優(yōu)勢(shì)后,我們接下來探討采用基于 SRAM 并具備運(yùn)行時(shí)部分可重配置功能的 FPGA 設(shè)計(jì) ECU。部分可重配置技術(shù)能夠?yàn)槠囋O(shè)計(jì)人員提供更多優(yōu)勢(shì)。
評(píng)論