基于FPGA的汽車ECU設(shè)計充分符合AUTOSAR和ISO 26262標(biāo)準(zhǔn)(二)
基于 FPGA 靜態(tài)硬件的 ECU 設(shè)計
AUTOSAR 架構(gòu)非常適合由 CPU、存儲器和可編程邏輯組成的嵌入式系統(tǒng)。ECU 平臺需要一個 CPU 或主機(jī)處理器來管理應(yīng)用并處理分布在應(yīng)用層的軟件組件中的不同功能。同時,MCU 層和部分基礎(chǔ)軟件層可以在可編程邏輯結(jié)構(gòu)中的硬件中綜合。因此,除了能夠?qū)崿F(xiàn)與 CPU 相連的標(biāo)準(zhǔn)外設(shè),其它定制外設(shè)和協(xié)處理器也能夠在硬件中并存,并在軟件中完全或部分地加以管理。
另外從功能安全的角度來看,專用協(xié)處理器或內(nèi)核處理器也非常適用,因為用它們實現(xiàn)功能可讓硬件從源頭避免干擾,即便要求冗余性,也能給系統(tǒng)設(shè)計帶來高靈活性。另外,居于中間的 RTE 層可以在分布于 FPGA 中的 RAM 模塊中,或者在嵌入在器件邏輯單元中的觸發(fā)器中以及外部存儲器中綜合。而且,RTE 信號接口經(jīng)簡單設(shè)計就能夠同時進(jìn)行讀寫操作(通過單端口存儲器)或限制架構(gòu)僅進(jìn)行讀操作或者寫操作(通過配有兩個獨立讀寫端口的單個雙端口存儲器),以防范干擾,比如 AUTOSAR 所定義的彼此對應(yīng)的發(fā)送器和接收器軟件端口。
圖2 將 AUTOSAR ECU 架構(gòu)移植到 FPGA 平臺上
建議將基于 MCU 的 AUTOSAR ECU 架構(gòu)移植到可擴(kuò)展處理平臺 (EPP) 或者 FPGA 器件上,并在各層中確保清晰的系統(tǒng)分區(qū),如圖 2 所示。位于 RTE 層以下的有操作系統(tǒng) (OS)、存儲器協(xié)議棧、通信協(xié)議棧、I/O 協(xié)議棧等。位于 RTE 層以上的是軟件組件,它們用于實現(xiàn)應(yīng)用并通過 AUTOSAR 接口與 RTE 進(jìn)行通信。
由于 AUTOSAR 架構(gòu)內(nèi)在的復(fù)雜性,需要功能強(qiáng)大的嵌入式計算平臺才能進(jìn)行部署。如今,典型的 ECU 設(shè)計基于運(yùn)行在 MCU 平臺上的 32 位單核處理器。但是單核越來越難以提供所需的全部計算能力。而使用多核 CPU 需要通過多處理器總線和仲裁機(jī)制共享程序/數(shù)據(jù)存儲器,往往會導(dǎo)致高度復(fù)雜的解決方案,造成性能劣化。
作為這種方案的替代,我們提出了一種基于可編程邏輯的設(shè)計。這種設(shè)計只采用一個單核處理器來發(fā)揮主機(jī) CPU 的作用,但配有更智能的外設(shè)、協(xié)處理器乃至從處理器。所有這些計算單元都可以在 FPGA 架構(gòu)中例化為新的軟核處理器,比如賽靈思 PicoBlazeTM 和 MicroBlazeTM,從 FPGA 的專用 RAM 模塊運(yùn)行自己的代碼(各個軟核處理器均分別配有專用程序存儲器),此外,也可例化為定制的硬件加速器。兩種方式的拓?fù)浼軜?gòu)均由一個主機(jī) CPU 和分擔(dān) 部分CPU 任務(wù)的智能外設(shè)構(gòu)成,從而可降低系統(tǒng)復(fù)雜性。這樣,主機(jī) CPU 負(fù)責(zé)管理軟件中的整個應(yīng)用層,而定制外設(shè)則負(fù)責(zé)管理 BSW 層,這兩者以并行的方式彼此獨立地自動運(yùn)行。此外,這種外設(shè)設(shè)計的方法的優(yōu)點還在于能夠讓主機(jī) CPU 的軟件執(zhí)行更加線性化,即外設(shè)不會通過中斷服務(wù)程序產(chǎn)生過多的請求 CPU 關(guān)注的中斷。圖 3 顯示了這種系統(tǒng)的方框圖及其對應(yīng)為 FPGA 器件中綜合的功能單元的組件細(xì)分情況。
圖3 在 FPGA 中部署的汽車 ECU 方框圖
FPGA 方法能夠?qū)崿F(xiàn)與多處理器平臺相媲美的系統(tǒng)性能,且和單核處理器一樣簡單易用,這主要歸功于采用了可與主機(jī)處理器并行處理的功能強(qiáng)大的、自動化定制協(xié)處理器。
這種方法能夠?qū)崿F(xiàn)與多處理器平臺相媲美的系統(tǒng)性能,而且就軟件開發(fā)和維護(hù)而言,和單核處理器一樣簡單易行。通過使用專用硬件構(gòu)建可與主機(jī)處理器并行處理的功能更強(qiáng)大的自動化定制協(xié)處理器,就可實現(xiàn)這種最佳平衡。
從概念上來說,可以通過將這些系統(tǒng)架構(gòu)用 RTE 接口劃分為頂層和底層兩個彼此獨立的主要層次來要簡化設(shè)計。頂層相當(dāng)于 AUTOSAR 的應(yīng)用層,由負(fù)責(zé)管理車輛中最終用戶功能的軟件組件構(gòu)成。而底層則由硬件和基礎(chǔ)軟件乃至 RTE 鏈路構(gòu)成。應(yīng)用層從數(shù)值上來說,可代表約 90% 的車載高級功能,而且所有 RTE 以上的源代碼都可重復(fù)利用。
同時,底層包含能夠賦予頂層靈活性和多用性的全部功能。這即是說,底層可完成特定硬件平臺上所有可重用功能的定制化。這樣,頂層從本質(zhì)上說是通過以有限狀態(tài)機(jī) (FSM) 形態(tài)實現(xiàn)的算法來實現(xiàn)對某些車輛負(fù)載、傳感器和制動器的控制的一套軟件功能。這些算法由 CPU 循環(huán)執(zhí)行,并在操作系統(tǒng)控制的軟件任務(wù)中調(diào)度。
評論