基于FPGA的汽車ECU設(shè)計充分符合AUTOSAR和ISO 26262標(biāo)準(zhǔn)
在 RTE 之上,通過應(yīng)用層,軟件架構(gòu)方式從分層變?yōu)橐越M件為基礎(chǔ)。功能主要封裝在軟件組件 (SWC) 中。因此,完成 AUTOSAR 軟件組件接口的標(biāo)準(zhǔn)化是支持各項(xiàng)功能跨不同車輛平臺的ECU實(shí)現(xiàn)可擴(kuò)展性和可移植性的中心環(huán)節(jié)。除復(fù)雜驅(qū)動程序外,AUTOSAR 標(biāo)準(zhǔn)明確地規(guī)定了這些組件的 API 及特性。SWC 僅通過運(yùn)行環(huán)境與其他模塊(ECU 間或內(nèi)部)通信。
本文引用地址:http://cafeforensic.com/article/221573.htm隨著 ECU 不斷集成越來越多的功能,FPGA 器件成為了單核或多核MCU 的明智替代。通過從總體上把握 AUTOSAR 的不同層次,可以預(yù)見設(shè)計人員將這種架構(gòu)部署在可編程邏輯中所能帶來的優(yōu)勢。下文將更深入地介紹我們的設(shè)計如何實(shí)現(xiàn)基于定制靜態(tài)硬件(基于閃存或SRAM 的 FPGA 技術(shù))的解決方案,然后將這種方法延伸為為一種運(yùn)行時可重配置的硬件實(shí)現(xiàn)方案(基于 SRAM 的部分可重配置 FPGA)。
基于 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)核處理器也非常適用,因?yàn)橛盟鼈儗?shí)現(xiàn)功能可讓硬件從源頭避免干擾,即便要求冗余性,也能給系統(tǒng)設(shè)計帶來高靈活性。另外,居于中間的 RTE 層可以在分布于 FPGA 中的 RAM 模塊中,或者在嵌入在器件邏輯單元中的觸發(fā)器中以及外部存儲器中綜合。而且,RTE 信號接口經(jīng)簡單設(shè)計就能夠同時進(jìn)行讀寫操作(通過單端口存儲器)或限制架構(gòu)僅進(jìn)行讀操作或者寫操作(通過配有兩個獨(dú)立讀寫端口的單個雙端口存儲器),以防范干擾,比如 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 層以上的是軟件組件,它們用于實(shí)現(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 層,這兩者以并行的方式彼此獨(dú)立地自動運(yùn)行。此外,這種外設(shè)設(shè)計的方法的優(yōu)點(diǎn)還在于能夠讓主機(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)性能,且和單核處理器一樣簡單易用,這主要?dú)w功于采用了可與主機(jī)處理器并行處理的功能強(qiáng)大的、自動化定制協(xié)處理器。
這種方法能夠?qū)崿F(xiàn)與多處理器平臺相媲美的系統(tǒng)性能,而且就軟件開發(fā)和維護(hù)而言,和單核處理器一樣簡單易行。通過使用專用硬件構(gòu)建可與主機(jī)處理器并行處理的功能更強(qiáng)大的自動化定制協(xié)處理器,就可實(shí)現(xiàn)這種最佳平衡。
從概念上來說,可以通過將這些系統(tǒng)架構(gòu)用 RTE 接口劃分為頂層和底層兩個彼此獨(dú)立的主要層次來要簡化設(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)實(shí)現(xiàn)的算法來實(shí)現(xiàn)對某些車輛負(fù)載、傳感器和制動器的控制的一套軟件功能。這些算法由 CPU 循環(huán)執(zhí)行,并在操作系統(tǒng)控制的軟件任務(wù)中調(diào)度。
底層還負(fù)責(zé)實(shí)現(xiàn) CPU 連接的所有標(biāo)準(zhǔn)外設(shè)的驅(qū)動程序,例如 A/D 轉(zhuǎn)換器、PWM 控制器、定時器或者存儲器控制器,從而讓頂層的抽象具備可行性。底層負(fù)責(zé)管理那些需要得到實(shí)時響應(yīng)的事件。在這方面可編程邏輯能夠起到一定的作用。其構(gòu)想為:讓主機(jī) CPU 將應(yīng)用當(dāng)作一個簡單的免受通常硬件造成的外部事件影響的軟件功能序列來處理,但要定期讀或?qū)?RTE 信號,讓 FSM 進(jìn)行相應(yīng)的調(diào)整。底層對硬件事件進(jìn)行隱藏與管理,然后在 RTE 中對其進(jìn)行預(yù)處理并更新特定信號,或作為結(jié)果,根據(jù)自身具體任務(wù)安排實(shí)時地執(zhí)行特定的行動。
將定制硬件控制器連接至系統(tǒng) CPU 可以最大限度地降低對共享資源的需求,只要這些控制器能夠自動運(yùn)行。從操作系統(tǒng)的角度來看,這樣做有助于降低系統(tǒng)的復(fù)雜性(避免仲裁、時延、重試機(jī)制等)。
采用專用硬件的另一項(xiàng)優(yōu)勢在于可以更簡便地實(shí)現(xiàn)一般在軟件中通過多線程才能實(shí)現(xiàn)的某些功能,因?yàn)橛布^軟件內(nèi)在更具并行性。另外,這種靈活的硬件能夠采用并行和流水線硬件設(shè)計,將算法計算強(qiáng)度高的部分進(jìn)行硬連接,而不是采用馮·諾伊曼 (Von Neumann) 計算機(jī)所采用的序列軟件方法,從而減少執(zhí)行時間。
評論