基于FPGA的汽車(chē)ECU設計充分符合AUTOSAR和ISO 26262標準
在 RTE 之上,通過(guò)應用層,軟件架構方式從分層變?yōu)橐越M件為基礎。功能主要封裝在軟件組件 (SWC) 中。因此,完成 AUTOSAR 軟件組件接口的標準化是支持各項功能跨不同車(chē)輛平臺的ECU實(shí)現可擴展性和可移植性的中心環(huán)節。除復雜驅動(dòng)程序外,AUTOSAR 標準明確地規定了這些組件的 API 及特性。SWC 僅通過(guò)運行環(huán)境與其他模塊(ECU 間或內部)通信。
本文引用地址:http://dyxdggzs.com/article/221573.htm隨著(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)行通信。
由于 AUTOSAR 架構內在的復雜性,需要功能強大的嵌入式計算平臺才能進(jìn)行部署。如今,典型的 ECU 設計基于運行在 MCU 平臺上的 32 位單核處理器。但是單核越來(lái)越難以提供所需的全部計算能力。而使用多核 CPU 需要通過(guò)多處理器總線(xiàn)和仲裁機制共享程序/數據存儲器,往往會(huì )導致高度復雜的解決方案,造成性能劣化。
作為這種方案的替代,我們提出了一種基于可編程邏輯的設計。這種設計只采用一個(gè)單核處理器來(lái)發(fā)揮主機 CPU 的作用,但配有更智能的外設、協(xié)處理器乃至從處理器。所有這些計算單元都可以在 FPGA 架構中例化為新的軟核處理器,比如賽靈思 PicoBlazeTM 和 MicroBlazeTM,從 FPGA 的專(zhuān)用 RAM 模塊運行自己的代碼(各個(gè)軟核處理器均分別配有專(zhuān)用程序存儲器),此外,也可例化為定制的硬件加速器。兩種方式的拓撲架構均由一個(gè)主機 CPU 和分擔 部分CPU 任務(wù)的智能外設構成,從而可降低系統復雜性。這樣,主機 CPU 負責管理軟件中的整個(gè)應用層,而定制外設則負責管理 BSW 層,這兩者以并行的方式彼此獨立地自動(dòng)運行。此外,這種外設設計的方法的優(yōu)點(diǎn)還在于能夠讓主機 CPU 的軟件執行更加線(xiàn)性化,即外設不會(huì )通過(guò)中斷服務(wù)程序產(chǎn)生過(guò)多的請求 CPU 關(guān)注的中斷。圖 3 顯示了這種系統的方框圖及其對應為 FPGA 器件中綜合的功能單元的組件細分情況。

圖3 在 FPGA 中部署的汽車(chē) ECU 方框圖
FPGA 方法能夠實(shí)現與多處理器平臺相媲美的系統性能,且和單核處理器一樣簡(jiǎn)單易用,這主要歸功于采用了可與主機處理器并行處理的功能強大的、自動(dòng)化定制協(xié)處理器。
這種方法能夠實(shí)現與多處理器平臺相媲美的系統性能,而且就軟件開(kāi)發(fā)和維護而言,和單核處理器一樣簡(jiǎn)單易行。通過(guò)使用專(zhuān)用硬件構建可與主機處理器并行處理的功能更強大的自動(dòng)化定制協(xié)處理器,就可實(shí)現這種最佳平衡。
從概念上來(lái)說(shuō),可以通過(guò)將這些系統架構用 RTE 接口劃分為頂層和底層兩個(gè)彼此獨立的主要層次來(lái)要簡(jiǎn)化設計。頂層相當于 AUTOSAR 的應用層,由負責管理車(chē)輛中最終用戶(hù)功能的軟件組件構成。而底層則由硬件和基礎軟件乃至 RTE 鏈路構成。應用層從數值上來(lái)說(shuō),可代表約 90% 的車(chē)載高級功能,而且所有 RTE 以上的源代碼都可重復利用。
同時(shí),底層包含能夠賦予頂層靈活性和多用性的全部功能。這即是說(shuō),底層可完成特定硬件平臺上所有可重用功能的定制化。這樣,頂層從本質(zhì)上說(shuō)是通過(guò)以有限狀態(tài)機 (FSM) 形態(tài)實(shí)現的算法來(lái)實(shí)現對某些車(chē)輛負載、傳感器和制動(dòng)器的控制的一套軟件功能。這些算法由 CPU 循環(huán)執行,并在操作系統控制的軟件任務(wù)中調度。
底層還負責實(shí)現 CPU 連接的所有標準外設的驅動(dòng)程序,例如 A/D 轉換器、PWM 控制器、定時(shí)器或者存儲器控制器,從而讓頂層的抽象具備可行性。底層負責管理那些需要得到實(shí)時(shí)響應的事件。在這方面可編程邏輯能夠起到一定的作用。其構想為:讓主機 CPU 將應用當作一個(gè)簡(jiǎn)單的免受通常硬件造成的外部事件影響的軟件功能序列來(lái)處理,但要定期讀或寫(xiě) RTE 信號,讓 FSM 進(jìn)行相應的調整。底層對硬件事件進(jìn)行隱藏與管理,然后在 RTE 中對其進(jìn)行預處理并更新特定信號,或作為結果,根據自身具體任務(wù)安排實(shí)時(shí)地執行特定的行動(dòng)。
將定制硬件控制器連接至系統 CPU 可以最大限度地降低對共享資源的需求,只要這些控制器能夠自動(dòng)運行。從操作系統的角度來(lái)看,這樣做有助于降低系統的復雜性(避免仲裁、時(shí)延、重試機制等)。
采用專(zhuān)用硬件的另一項優(yōu)勢在于可以更簡(jiǎn)便地實(shí)現一般在軟件中通過(guò)多線(xiàn)程才能實(shí)現的某些功能,因為硬件較軟件內在更具并行性。另外,這種靈活的硬件能夠采用并行和流水線(xiàn)硬件設計,將算法計算強度高的部分進(jìn)行硬連接,而不是采用馮·諾伊曼 (Von Neumann) 計算機所采用的序列軟件方法,從而減少執行時(shí)間。
評論