基于FPGA的汽車(chē)ECU設計
當今的汽車(chē)制造商正在把越來(lái)越多的高級功能添加到汽車(chē)電子控制單元(ECU)中,以改善駕駛體驗,增強安全性,當然還期望超過(guò)同類(lèi)競爭產(chǎn)品的銷(xiāo)量。在這種情況下,汽車(chē)開(kāi)放系統架構(AUTOSAR)計劃和功能安全國際標準ISO 26262正在快速成為汽車(chē)ECU設計的技術(shù)和架構基礎。
汽車(chē)產(chǎn)業(yè)利用可重配置硬件技術(shù),可靈活地綜合車(chē)載功能。
當今的汽車(chē)制造商正在把越來(lái)越多的高級功能添加到汽車(chē)電子控制單元(ECU)中,以改善駕駛體驗,增強安全性,當然還期望超過(guò)同類(lèi)競爭產(chǎn)品的銷(xiāo)量。在這種情況下,汽車(chē)開(kāi)放系統架構(AUTOSAR)計劃和功能安全國際標準ISO 26262正在快速成為汽車(chē)ECU設計的技術(shù)和架構基礎。
為了滿(mǎn)足新車(chē)型日益提高的功能需求,汽車(chē)電子產(chǎn)品的密度不斷增大,FPGA廠(chǎng)商也正在不斷推出更大型的器件。這些器件能夠集成所有的應用,而且與前代器件相比,功耗更低,價(jià)格更具競爭力。這種趨勢意味著(zhù)可重配置計算技術(shù)在汽車(chē)產(chǎn)業(yè)將會(huì )得到進(jìn)一步推廣和應用。
我們推出了一種具有開(kāi)創(chuàng )性的方法,即使用可編程FPGA器件而非基于MCU的平臺作為ECU的基礎,設計出一款能夠同時(shí)滿(mǎn)足AUTOSAR和ISO 26262標準的汽車(chē)ECU。我們的設計方法對可重配置硬件的關(guān)鍵特性,比如并行性、可定制性、靈活性、冗余性和多功能性進(jìn)行了充分的探索。在概念設計完成后,我們希望在原型中實(shí)現設計。賽靈思Zynq-7000可擴展處理平臺成為了理想選擇。該款FPGA平臺將ARM雙核Cortex-A9 MPCore硬處理器和具備動(dòng)態(tài)部分可重配置功能的28nm賽靈思7系列可編程邏輯器件完美結合在一起,不但可充分滿(mǎn)足所需要求,而且還配備有CAN和以太網(wǎng)等車(chē)載網(wǎng)絡(luò )常用的片上通信控制器。
新興應用
目前汽車(chē)計算能力借助通過(guò)通信網(wǎng)絡(luò )互連的ECU來(lái)分配。在未來(lái)幾年內,由于機動(dòng)車(chē)輛中新應用的興起,這樣的計算能力有望進(jìn)一步提高。這些新應用包括安全和駕駛員輔助功能、車(chē)輛間通信功能、舒適性和控制功能、車(chē)載娛樂(lè )功能以及為數眾多的混合動(dòng)力電動(dòng)技術(shù)。毫無(wú)疑義,車(chē)輛電子設備的數量預計還會(huì )增加。根據分析人員的預測,汽車(chē)應用半導體市場(chǎng)的規模將在未來(lái)五年內以8%的年均復合增長(cháng)率(CAGR)增長(cháng)。其中增長(cháng)最快的細分市場(chǎng)之一涉及到微控制器(MCU)和可編程邏輯器件,比如現場(chǎng)可編程門(mén)陣列(FPGA)。
在車(chē)載功能的數量和先進(jìn)性與日俱增的同時(shí),設計和管理這些系統變得日趨復雜,汽車(chē)制造商認為有必要采取有效方式來(lái)解決這一難題。其結果就是當今AUTOSAR和ISO 26262兩大標準都在影響著(zhù)實(shí)際汽車(chē)ECU軟硬件系統的架構、設計和部署方式(見(jiàn)側邊欄)。
2003年由多家汽車(chē)制造商共同制定的AUTOSAR標準旨在為分布于車(chē)輛中的ECU定義標準的系統軟件架構。而ISO 26262標準的目的則以功能安全性為中心,實(shí)質(zhì)上是以避免或檢測并處理故障為目的,從而減輕故障影響并防止出現對任何既有的系統安全目標的違反行為。隨著(zhù)全新的安全關(guān)鍵功能(比如駕駛員輔助或動(dòng)態(tài)控制)的推出,功能安全性已經(jīng)成為汽車(chē)開(kāi)發(fā)中的關(guān)鍵問(wèn)題之一。ISO 26262標準于2011年批準生效,可為軟硬件的安全開(kāi)發(fā)提供支持。
因此,整個(gè)ECU的設計和開(kāi)發(fā)流程由需要系統性進(jìn)程的標準進(jìn)行管理。我們的工作就是設計一款高性?xún)r(jià)比嵌入式計算平臺,采用可重配置硬件技術(shù)實(shí)現優(yōu)化的系統架構。
系統架構
AUTOSAR和ISO 26262標準主要從軟件開(kāi)發(fā)的角度著(zhù)眼,面向的是基于微控制器單元的計算平臺。但是,硬件/軟件聯(lián)合設計和可重配置計算技術(shù)的應用可為這個(gè)領(lǐng)域帶來(lái)眾多優(yōu)勢。雖然標準的MCU往往是汽車(chē)ECU硬件平臺的最佳選擇,但隨著(zhù)新型FPGA成本的不斷降低,加上部分FPGA產(chǎn)品內部集成有硬核處理器,使得FPGA器件也成為這個(gè)市場(chǎng)中值得廣泛應用的理想解決方案。
為了在汽車(chē)應用中發(fā)揮可重配置硬件的全部?jì)?yōu)勢,我們將以關(guān)于部署最終用戶(hù)功能的汽車(chē)計算網(wǎng)絡(luò )中最為重要的ECU之一——“車(chē)身控制器模塊”為重點(diǎn),通過(guò)使用案例展現這種技術(shù)的潛力。該ECU也稱(chēng)為“車(chē)身域控制器”,負責綜合和控制車(chē)輛中主要的電子車(chē)身功能,比如擋風(fēng)玻璃雨刷/噴水系統、車(chē)燈、搖窗器、引擎點(diǎn)火/熄火、車(chē)外后視鏡和中控鎖。我們的目標是在FPGA平臺上設計出一款配備有安全關(guān)鍵功能且符合AUTOSAR的ECU系統。
實(shí)際情景
如果汽車(chē)制造商要想經(jīng)濟高效地管理日益復雜的車(chē)輛功能,經(jīng)AUTOSAR提倡的ECU系統架構的標準化則是必由之路。它能夠實(shí)現分布在ECU中的各項功能的高度集成和軟件組件的重復使用。AUTOSAR的主要目的是定義一個(gè)統一的ECU架構,讓硬件與軟件分離。這樣AUTOSAR通過(guò)定義硬件無(wú)關(guān)的接口,可提高軟件的重復使用。換句話(huà)說(shuō),如果按照AUTOSAR標準編寫(xiě)的軟件組件,只要正確集成到符合AUTOSAR標準的運行環(huán)境中,就能夠在任何廠(chǎng)商的微控制器上運行。
這項功能給汽車(chē)制造商帶來(lái)了更高的靈活性。由于A(yíng)UTOSAR標準內在的即插即用特性,汽車(chē)制造商可以在整個(gè)汽車(chē)平臺上以透明的方式更換不同供應商開(kāi)發(fā)的相同軟件模塊的各個(gè)版本,且不會(huì )給汽車(chē)中其余功能的發(fā)揮造成負面效果。最終硬件和軟件實(shí)現彼此高度獨立。這種分離是通過(guò)標準軟件的API將抽象層互聯(lián)實(shí)現的。圖1是AUTOSAR定義的功能層的分解圖。
圖1 從MCU到應用層的AUTOSAR分層模型
底部以黑色表示的是硬件層或物理層,由MCU自身(即CPU和與其相連的部分標準外設)構成。微控制器之上是基礎軟件(BSW),分為三層:粉色的微控制器抽象層(MCAL)、綠色的ECU抽象層(ECUAL)和復雜驅動(dòng)程序、紫色的服務(wù)層(SRV)。這三層經(jīng)組織形成了多個(gè)列或協(xié)議棧(存儲器、通信、輸入/輸出等)。
緊貼硬件組件的是微控制器抽象層。正如其名所示,該層是MCU的抽象。該層的目的是提供一個(gè)硬件獨立的API,負責處理微控制器中的硬件外設。微控制器抽象層的上一層是ECU抽象層,負責抽象ECU開(kāi)發(fā)板上的其他智能器件,一般直接與MCU接觸(例如,系統電壓調節器、智能交換控制器、可配置通信收發(fā)器等)。接下來(lái)的第三層是服務(wù)層。該層基本具有硬件獨立性,其作用是處理所需的不同類(lèi)型的背景服務(wù)。例如網(wǎng)路服務(wù),系統看門(mén)狗的NVRAM處理或管理。通過(guò)這三層,AUTOSAR定義了一套基礎軟件功能。這套軟件功能在特定的硬件平臺下支持著(zhù)汽車(chē)ECU各高級抽象層的所有功能。
第四層是運行環(huán)境(RTE),為應用軟件提供通信服務(wù)。它由可從上面的BSW層和應用層(APP)共同訪(fǎng)問(wèn)的一套信號(發(fā)送器/接收器端口)和服務(wù)(客戶(hù)端和服務(wù)器端口)構成。該RTE從基礎軟件中抽象出應用,明確地勾勒出將通用的可交換軟件代碼(APP))與特定的硬件相關(guān)代碼(BSW)分離的軟件協(xié)議棧架構。換句話(huà)說(shuō),RTE可將軟件應用與硬件平臺分離。因此運行在RTE上的所有軟件模塊都具有平臺無(wú)關(guān)性。
在RTE之上,通過(guò)應用層,軟件架構方式從分層變?yōu)橐越M件為基礎。功能主要封裝在軟件組件(SWC)中。因此,完成AUTOSAR軟件組件接口的標準化是支持各項功能跨不同車(chē)輛平臺的ECU實(shí)現可擴展性和可移植性的中心環(huán)節。除復雜驅動(dòng)程序外,AUTOSAR標準明確地規定了這些組件的API及特性。SWC僅通過(guò)運行環(huán)境與其他模塊(ECU間或內部)通信。
隨著(zhù)ECU不斷集成越來(lái)越多的功能,FPGA器件成為了單核或多核MCU的明智替代。通過(guò)從總體上把握AUTOSAR的不同層次,可以預見(jiàn)設計人員將這種架構部署在可編程邏輯中所能帶來(lái)的優(yōu)勢。下文將更深入地介紹我們的設計如何實(shí)現基于定制靜態(tài)硬件(基于閃存或SRAM的FPGA技術(shù))的解決方案,然后將這種方法延伸為一種運行時(shí)可重配置的硬件實(shí)現方案(基于SRAM的部分可重配置FPGA)。
基于FPGA靜態(tài)硬件的ECU設計
AUTOSAR架構非常適合由CPU、存儲器和可編程邏輯組成的嵌入式系統。ECU平臺需要一個(gè)CPU或主機處理器來(lái)管理應用并處理分布在應用層的軟件組件中的不同功能。同時(shí),MCU層和部分基礎軟件層可以在可編程邏輯結構中的硬件中綜合。因此,除了能夠實(shí)現與CPU相連的標準外設,其它定制外設和協(xié)處理器也能夠在硬件中并存,并在軟件中完全或部分地加以管理。
另外從功能安全的角度來(lái)看,專(zhuān)用協(xié)處理器或內核處理器也非常適用,因為用它們實(shí)現功能可讓硬件從源頭避免干擾,即便要求冗余性,也能給系統設計帶來(lái)高靈活性。另外,居于中間的RTE層可以在分布于FPGA中的RAM模塊中,或者在嵌入在器件邏輯單元中的觸發(fā)器中以及外部存儲器中綜合。而且,RTE信號接口經(jīng)簡(jiǎn)單設計就能夠同時(shí)進(jìn)行讀寫(xiě)操作(通過(guò)單端口存儲器)或限制架構僅進(jìn)行讀操作或者寫(xiě)操作(通過(guò)配有兩個(gè)獨立讀寫(xiě)端口的單個(gè)雙端口存儲器),以防范干擾,比如AUTOSAR所定義的彼此對應的發(fā)送器和接收器軟件端口。
圖2 將AUTOSAR ECU架構移植到FPGA平臺上
建議將基于MCU的AUTOSAR ECU架構移植到可擴展處理平臺(EPP)或者FPGA器件上,并在各層中確保清晰的系統分區,如圖2所示。位于RTE層以下的有操作系統(OS)、存儲器協(xié)議棧、通信協(xié)議棧、I/O協(xié)議棧等。位于RTE層以上的是軟件組件,它們用于實(shí)現應用并通過(guò)AUTOSAR接口與RTE進(jìn)行通信。
由于A(yíng)UTOSAR架構內在的復雜性,需要功能強大的嵌入式計算平臺才能進(jìn)行部署。如今,典型的ECU設計基于運行在MCU平臺上的32位單核處理器。但是單核越來(lái)越難以提供所需的全部計算能力。而使用多核CPU需要通過(guò)多處理器總線(xiàn)和仲裁機制共享程序/數據存儲器,往往會(huì )導致高度復雜的解決方案,造成性能劣化。
評論