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