基于FPGA的汽車ECU設(shè)計
某些可編程邏輯器件在結(jié)構(gòu)中配備有硬核處理器,便于設(shè)計人員第一步先用軟件開發(fā)整個系統(tǒng)功能,就像他們尋常在MCU平臺上所做的一樣,隨后逐步地在設(shè)計中增加硬件,將部分設(shè)計移植到可編程邏輯資源。這種方法能夠讓設(shè)計人員為解決方案開發(fā)出不同的版本,而且與純軟件方法相比,能夠?qū)崿F(xiàn)在定制硬件中綜合部分功能的優(yōu)勢。
在運行時可重配置硬件上進行ECU設(shè)計
在探討完畢借助可編程邏輯在靜態(tài)硬件和軟件上實現(xiàn)ECU的優(yōu)勢后,我們接下來探討采用基于SRAM并具備運行時部分可重配置功能的FPGA設(shè)計ECU。部分可重配置技術(shù)能夠為汽車設(shè)計人員提供更多優(yōu)勢。
事實上,其中的一大優(yōu)勢是如果FPGA包含有不必在啟動時(如在ECU喚醒或加電)配置的部分可重配置區(qū)域,可以縮短系統(tǒng)啟動時間。不支持動態(tài)部分可重配置的FPGA在加電時需要配置所有的FPGA資源,但運行時可重配置FPGA只需下載部分位流進行部分重配置。
由于當今先進的FPGA器件具有巨大的容量,故在加電時下載完整的位流會引起可觀的配置時間開銷。運行時部分可重配置技術(shù)能夠顯著地縮短這種配置時延。在那種情況下,有可能在加電時只配置一個最起碼的子系統(tǒng)(即引導(dǎo)載入程序和立即需要的部分系統(tǒng)應(yīng)用),讓系統(tǒng)其余部分保持待機狀態(tài),直到有必要初始化為止。如果系統(tǒng)在加電或喚醒時需要快速響應(yīng),可將這種啟動工作劃分為兩個階段,以加快初始化過程。為此,可將系統(tǒng)架構(gòu)分解為一個靜態(tài)域和一個或者多個部分可重配置域(PRR)。靜態(tài)域涵蓋負責(zé)執(zhí)行啟動過程的系統(tǒng)(一般來說是主機CPU),以及可重配置引擎和通往位流庫的數(shù)據(jù)鏈路。由特定部分位流描述的其他域可按應(yīng)用需求,隨后下載。
另外,如果禁用PRR域,則可以讓器件的功耗與禁用區(qū)域部分成比例降低。在使用汽車電池供電的ECU中,節(jié)能模式尤為重要。為此,在車輛未使用時(即處于休眠模式時),車載ECU可使用低功耗模式,以讓ECU功耗保持最低。同樣,可以在不需要的時候使用空白位流禁用FPGA的部分區(qū)域,減少邏輯活動,從而降低動態(tài)功耗。
在采用運行時可重配置邏輯的系統(tǒng)中,汽車設(shè)計人員還可使用一種從航空航天應(yīng)用中借鑒來的重配置技術(shù)。重配置(configuration scrubbing)可以將系統(tǒng)從因單粒子翻轉(zhuǎn)(SEU)和電磁干擾造成的SRAM故障中恢復(fù)過來。定期重新配置硬件外設(shè)可保證系統(tǒng)在出現(xiàn)故障時自我修復(fù)。另外,這樣也可以將故障的最大時長限制在重配置時間間隔內(nèi)。這種技術(shù)也通常運用在軟件中,作為一種常見的抗干擾保護措施,例如MCU外設(shè)的定期重配置。
另一項運行時部分重配置技術(shù)的靈活性帶來的有前景的功能是在FPGA資源的某個特定二維位置出現(xiàn)永久性或不可修復(fù)的電路故障,比如影響到特定邏輯單元或RAM模塊時,可通過功能重定位實現(xiàn)故障修復(fù)。一旦發(fā)現(xiàn)有硬件或軟件故障出現(xiàn),可以在運行中將所需的功能自動重定位到同一ECU中的可編程邏輯器件的其他部分。雖然這個構(gòu)思是可行的,但這項功能還沒有得到當今的自動化工具的完全支持。
適用于汽車產(chǎn)業(yè)的運行時可重配置計算技術(shù)最強大的特性無疑是共享的硬件資源上功能的實時時分復(fù)用??梢詫τ蒃CU中的相同計算資源處理的功能性應(yīng)用進行時間共享,如果應(yīng)用間相互獨立(例如,當車輛向前直行駛時使用行車道偏離預(yù)警功能,倒車時,則切換到后視攝像頭視圖或停車輔助應(yīng)用)。這種設(shè)計思路可以幫助降低此類嵌入式系統(tǒng)的成本和復(fù)雜性,釋放空間,減輕車身重量。
這種設(shè)計思路還可用于實現(xiàn)特定算法在不斷變化的環(huán)境條件或者外部條件中的自適應(yīng)性。例如,給定的引擎控制算法可通過部分可重配置自主調(diào)整部分硬件模塊,以在任何運行溫度下或電池電壓下實現(xiàn)理想的運行。同樣的理念對通信系統(tǒng)也適用,比如可以設(shè)計某種加密控制器,能夠在運行中運用特定的參數(shù)函數(shù)制定專門的安全等級。另如,可以設(shè)計某種ECC加密器/解密器IP,用于在高噪聲通信信道中檢測和修改數(shù)據(jù)傳輸錯誤,能夠根據(jù)感應(yīng)到的信噪比動態(tài)適應(yīng)其硬件架構(gòu)。
圖5顯示了一個采用賽靈思Virtex-4 FPGA部署的ECU系統(tǒng)的示例,由一個靜態(tài)域和一個部分可重配置域構(gòu)成。靜態(tài)域集成了一個MicroBlaze軟核處理器和一個基于ICAP的重配置控制器,部分可重配置域(PRR)則發(fā)揮著共享資源的作用,負責(zé)在不同時間換入和換出不同的功能任務(wù)或應(yīng)用。
圖5 在由部分可重配置域和靜態(tài)域構(gòu)成的運行時可重配置FPGA中實現(xiàn)的汽車ECU應(yīng)用的空間分區(qū)和臨時分區(qū)
最后,如果將前述的構(gòu)想發(fā)揮到極致,可以設(shè)計出一種通用汽車ECU平臺。這種平臺可以在生產(chǎn)線上進行配置并針對汽車中特定的ECU功能進行定制。這種構(gòu)想在技術(shù)上借助可重配置硬件具有可行性,能夠簡化制造廠的物流要求,將存貨壓低到最低水平。這是因為從硬件的角度來看,在生產(chǎn)線上組裝的模塊對所有車輛都是一樣的,都采用單一平臺設(shè)計或產(chǎn)品架構(gòu)(基于靈活的硬件)。只有可下載的位流會讓ECU的功能具有差異。
高集成度ECU
在當今的汽車產(chǎn)業(yè)中,有約90%的創(chuàng)新來自汽車電子設(shè)備,而且這個勢頭方興未艾。未來汽車將采用非常先進的軟硬件技術(shù),實現(xiàn)大量的新功能,比如自動駕駛、車輛間通信、娛樂以及和更高安全性。但是,對在這個以大批量制勝的產(chǎn)業(yè)而言,控制車載嵌入式系統(tǒng)的成本對汽車制造商極其重要。因此,當前的趨勢是在減少車輛中的ECU數(shù)量的同時讓每個ECU發(fā)揮強勁的功能。要實現(xiàn)這個目標需要功能更加強大的計算平臺。
許多行業(yè)參與方共同采用的方法是開發(fā)用作域控制器的高集成度ECU。就是將多個單核處理器或微控制器布置在同一開發(fā)板上,共享總線連接和其他資源,旨在從整車的角度降低系統(tǒng)復(fù)雜性。這種趨勢讓我們聯(lián)想到可以將可重配置硬件用于ECU的設(shè)計,從而在有效提高計算并行性,降低PCB的復(fù)雜性的同時,實現(xiàn)最高性價比解決方案。
這種設(shè)計方法雖然在我們的工作中尚處于萌芽階段,卻為將AUTOSAR和ISO 26262標準與運行時可重配置硬件融合用于軟/硬件聯(lián)合設(shè)計,實現(xiàn)完整的車載嵌入式ECU系統(tǒng)奠定了基礎(chǔ)。實際上,雖然目前AUTOSAR還沒有覆蓋到可重配置硬件,但我們不排除將來有這種可能。基于SRAM的運行時可重配置FPGA已用于航空航天應(yīng)用,能夠滿足容易導(dǎo)致SEU的更為惡劣的環(huán)境條件的要求,況且汽車行業(yè)從歷史上看有借鑒航空航天行業(yè)率先開創(chuàng)的風(fēng)氣的習(xí)慣。另外,在市場上已經(jīng)存在某些合格的用于實現(xiàn)基于FPGA的安全相關(guān)系統(tǒng)的設(shè)計方法和工具,而且行業(yè)中涉及FPGA器件的標準也已經(jīng)存在有相當長時間,比如用于規(guī)范航空電子業(yè)組件和系統(tǒng)設(shè)計的DO-254標準。
聯(lián)合設(shè)計帶來模式變革
因此,我們的工作將掀起汽車產(chǎn)業(yè)計算模式的變革。在特定的ECU應(yīng)用場景中,純軟件的解決方案將被軟/硬件聯(lián)合設(shè)計和可重配置計算技術(shù)所取代。這是因為采用馮諾依曼型MCU的純軟件方法由于性能、復(fù)雜性和安全性方面的局限,已不敷使用。可編程邏輯技術(shù)的價格的不斷降低,加上汽車電子控制單元性能需求的不斷走高,將在不久的將來把這場變革變?yōu)楝F(xiàn)實。
兩大關(guān)鍵標準
汽車產(chǎn)業(yè)在設(shè)計車載電子設(shè)備時已將兩項關(guān)鍵標準奉為圭皋。其中一項標準是AUTOSAR,它通過適當?shù)能浻布軜?gòu)解決嵌入式系統(tǒng)復(fù)雜性問題。另一項標準是即將推出的ISO 26262,用于管理功能安全性。AUTOSAR提出的以及ISO 26262采用的相關(guān)技術(shù)課題主要為安全問題的檢測和處理,比如運行時發(fā)生的硬件故障、時序失常和應(yīng)用執(zhí)行的邏輯順序打亂、數(shù)據(jù)損壞等。
AUTOSAR詳解
近年來,電子組件已經(jīng)取代了車輛中的機械系統(tǒng)和液壓系統(tǒng)。隨著設(shè)計人員開始用軟件實現(xiàn)更多的控制、監(jiān)控和診斷功能,這種趨勢正在持續(xù)。實際上,用電子技術(shù)能夠?qū)崿F(xiàn)僅用機械和液壓解決方案無法開發(fā)者開發(fā)成本高的新功能。但這些部件必須滿足嚴格的安全要求,以避免出錯和故障。
雖然軟件相關(guān)的故障目前來看比較罕見,但隨著軟件在汽車這種工業(yè)制品中用量的不斷增加,系統(tǒng)變得日趨復(fù)雜,加上產(chǎn)品開發(fā)周期的縮短,最終可能導(dǎo)致產(chǎn)品故障。為解決這個問題,汽車產(chǎn)業(yè)通過結(jié)盟和實施標準,確保使用和開發(fā)安全可靠的軟件。
評論