<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于FPGA的汽車ECU設計充分符合AUTOSAR和ISO 26262標準

          基于FPGA的汽車ECU設計充分符合AUTOSAR和ISO 26262標準

          作者:Francisco Mariano 時間:2014-02-14 來源:摘自《電子發(fā)燒友》 收藏

            在 RTE 之上,通過應用層,軟件架構(gòu)方式從分層變?yōu)橐越M件為基礎。功能主要封裝在軟件組件 (SWC) 中。因此,完成 軟件組件接口的標準化是支持各項功能跨不同車輛平臺的實現(xiàn)可擴展性和可移植性的中心環(huán)節(jié)。除復雜驅(qū)動程序外, 標準明確地規(guī)定了這些組件的 API 及特性。SWC 僅通過運行環(huán)境與其他模塊( 間或內(nèi)部)通信。

          本文引用地址:http://www.ex-cimer.com/article/221573.htm

            隨著 不斷集成越來越多的功能, 器件成為了單核或多核MCU 的明智替代。通過從總體上把握 的不同層次,可以預見設計人員將這種架構(gòu)部署在可編程邏輯中所能帶來的優(yōu)勢。下文將更深入地介紹我們的設計如何實現(xiàn)基于定制靜態(tài)硬件(基于閃存或SRAM 的 技術(shù))的解決方案,然后將這種方法延伸為為一種運行時可重配置的硬件實現(xiàn)方案(基于 SRAM 的部分可重配置 )。

            基于 FPGA 靜態(tài)硬件的 ECU 設計

            AUTOSAR 架構(gòu)非常適合由 CPU、存儲器和可編程邏輯組成的嵌入式系統(tǒng)。ECU 平臺需要一個 CPU 或主機處理器來管理應用并處理分布在應用層的軟件組件中的不同功能。同時,MCU 層和部分基礎軟件層可以在可編程邏輯結(jié)構(gòu)中的硬件中綜合。因此,除了能夠?qū)崿F(xiàn)與 CPU 相連的標準外設,其它定制外設和協(xié)處理器也能夠在硬件中并存,并在軟件中完全或部分地加以管理。

            另外從功能安全的角度來看,專用協(xié)處理器或內(nèi)核處理器也非常適用,因為用它們實現(xiàn)功能可讓硬件從源頭避免干擾,即便要求冗余性,也能給系統(tǒng)設計帶來高靈活性。另外,居于中間的 RTE 層可以在分布于 FPGA 中的 RAM 模塊中,或者在嵌入在器件邏輯單元中的觸發(fā)器中以及外部存儲器中綜合。而且,RTE 信號接口經(jīng)簡單設計就能夠同時進行讀寫操作(通過單端口存儲器)或限制架構(gòu)僅進行讀操作或者寫操作(通過配有兩個獨立讀寫端口的單個雙端口存儲器),以防范干擾,比如 AUTOSAR 所定義的彼此對應的發(fā)送器和接收器軟件端口。

          圖2 將 AUTOSAR ECU 架構(gòu)移植到 FPGA 平臺上
          圖2 將 AUTOSAR ECU 架構(gòu)移植到 FPGA 平臺上

            建議將基于 MCU 的 AUTOSAR ECU 架構(gòu)移植到可擴展處理平臺 (EPP) 或者 FPGA 器件上,并在各層中確保清晰的系統(tǒng)分區(qū),如圖 2 所示。位于 RTE 層以下的有操作系統(tǒng) (OS)、存儲器協(xié)議棧、通信協(xié)議棧、I/O 協(xié)議棧等。位于 RTE 層以上的是軟件組件,它們用于實現(xiàn)應用并通過 AUTOSAR 接口與 RTE 進行通信。

            由于 AUTOSAR 架構(gòu)內(nèi)在的復雜性,需要功能強大的嵌入式計算平臺才能進行部署。如今,典型的 ECU 設計基于運行在 MCU 平臺上的 32 位單核處理器。但是單核越來越難以提供所需的全部計算能力。而使用多核 CPU 需要通過多處理器總線和仲裁機制共享程序/數(shù)據(jù)存儲器,往往會導致高度復雜的解決方案,造成性能劣化。

            作為這種方案的替代,我們提出了一種基于可編程邏輯的設計。這種設計只采用一個單核處理器來發(fā)揮主機 CPU 的作用,但配有更智能的外設、協(xié)處理器乃至從處理器。所有這些計算單元都可以在 FPGA 架構(gòu)中例化為新的軟核處理器,比如賽靈思 PicoBlazeTM 和 MicroBlazeTM,從 FPGA 的專用 RAM 模塊運行自己的代碼(各個軟核處理器均分別配有專用程序存儲器),此外,也可例化為定制的硬件加速器。兩種方式的拓撲架構(gòu)均由一個主機 CPU 和分擔 部分CPU 任務的智能外設構(gòu)成,從而可降低系統(tǒng)復雜性。這樣,主機 CPU 負責管理軟件中的整個應用層,而定制外設則負責管理 BSW 層,這兩者以并行的方式彼此獨立地自動運行。此外,這種外設設計的方法的優(yōu)點還在于能夠讓主機 CPU 的軟件執(zhí)行更加線性化,即外設不會通過中斷服務程序產(chǎn)生過多的請求 CPU 關注的中斷。圖 3 顯示了這種系統(tǒng)的方框圖及其對應為 FPGA 器件中綜合的功能單元的組件細分情況。

          圖3  在 FPGA 中部署的汽車 ECU 方框圖
          圖3 在 FPGA 中部署的汽車 ECU 方框圖

            FPGA 方法能夠?qū)崿F(xiàn)與多處理器平臺相媲美的系統(tǒng)性能,且和單核處理器一樣簡單易用,這主要歸功于采用了可與主機處理器并行處理的功能強大的、自動化定制協(xié)處理器。

            這種方法能夠?qū)崿F(xiàn)與多處理器平臺相媲美的系統(tǒng)性能,而且就軟件開發(fā)和維護而言,和單核處理器一樣簡單易行。通過使用專用硬件構(gòu)建可與主機處理器并行處理的功能更強大的自動化定制協(xié)處理器,就可實現(xiàn)這種最佳平衡。

            從概念上來說,可以通過將這些系統(tǒng)架構(gòu)用 RTE 接口劃分為頂層和底層兩個彼此獨立的主要層次來要簡化設計。頂層相當于 AUTOSAR 的應用層,由負責管理車輛中最終用戶功能的軟件組件構(gòu)成。而底層則由硬件和基礎軟件乃至 RTE 鏈路構(gòu)成。應用層從數(shù)值上來說,可代表約 90% 的車載高級功能,而且所有 RTE 以上的源代碼都可重復利用。

            同時,底層包含能夠賦予頂層靈活性和多用性的全部功能。這即是說,底層可完成特定硬件平臺上所有可重用功能的定制化。這樣,頂層從本質(zhì)上說是通過以有限狀態(tài)機 (FSM) 形態(tài)實現(xiàn)的算法來實現(xiàn)對某些車輛負載、傳感器和制動器的控制的一套軟件功能。這些算法由 CPU 循環(huán)執(zhí)行,并在操作系統(tǒng)控制的軟件任務中調(diào)度。

            底層還負責實現(xiàn) CPU 連接的所有標準外設的驅(qū)動程序,例如 A/D 轉(zhuǎn)換器、PWM 控制器、定時器或者存儲器控制器,從而讓頂層的抽象具備可行性。底層負責管理那些需要得到實時響應的事件。在這方面可編程邏輯能夠起到一定的作用。其構(gòu)想為:讓主機 CPU 將應用當作一個簡單的免受通常硬件造成的外部事件影響的軟件功能序列來處理,但要定期讀或?qū)?RTE 信號,讓 FSM 進行相應的調(diào)整。底層對硬件事件進行隱藏與管理,然后在 RTE 中對其進行預處理并更新特定信號,或作為結(jié)果,根據(jù)自身具體任務安排實時地執(zhí)行特定的行動。

            將定制硬件控制器連接至系統(tǒng) CPU 可以最大限度地降低對共享資源的需求,只要這些控制器能夠自動運行。從操作系統(tǒng)的角度來看,這樣做有助于降低系統(tǒng)的復雜性(避免仲裁、時延、重試機制等)。

            采用專用硬件的另一項優(yōu)勢在于可以更簡便地實現(xiàn)一般在軟件中通過多線程才能實現(xiàn)的某些功能,因為硬件較軟件內(nèi)在更具并行性。另外,這種靈活的硬件能夠采用并行和流水線硬件設計,將算法計算強度高的部分進行硬連接,而不是采用馮·諾伊曼 (Von Neumann) 計算機所采用的序列軟件方法,從而減少執(zhí)行時間。



          評論


          相關推薦

          技術(shù)專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();