<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

車規MCU的軟件開發生態解析

jf_ocihYtwl ? 來源:汽車電子expert成長之路 ? 2023-10-18 10:00 ? 次閱讀

引言

隨著當今汽車產業的電動化(Electrification)、自動駕駛(Automous Drive)和網聯化(Connected)技術升級和應用普及,現代汽車集成的智能傳感器、智能執行器數量成倍增加,對汽車總線網絡帶寬的需求越來越大、對CPU內核的運算處理能力要求越來越高,對功能安全和信息安全的關注越來越多。車規MCU作為實現這些汽車功能電控單元(ECU)、域控制器(DCU)、區域控制器(ZCU)的核心芯片,其軟件開發生態是客戶高效快速可靠的開發各類汽車功能應用軟件的基礎,是一顆車規MCU芯片能否成功的關鍵所在,其重要性日益凸顯。

因此,本文將結合筆者在車規MCU芯片行業的多年從業經驗和對汽車電子產業及市場的洞察,給大家詳細介紹一下車規MCU的軟件開發生態,希望對當前正在進行的中國車規MCU國產化替代上下游整車廠(Car OEM)、零部件供應商(Tier-1)和***公司以及相關第三方軟件/方案和工具鏈開發公司有所幫助和啟發。

AUTOSAR架構

AUTOSAR(AUTomotive Open System ARchitecture)是一種開放的汽車電子系統架構,旨在提供一種標準化的方法來開發和管理汽車電子系統的軟件。AUTOSAR架構的目標是實現汽車電子系統的模塊化、可重用可擴展,以提高開發效率和系統的可靠性。

AUTOSAR架構由三個主要的層次組成:應用層(Application Layer)、運行時環境層(Runtime Environment)和基礎設施層(BSW)。

9ba6ef82-6d57-11ee-939d-92fbcf53809c.png

應用層是汽車電子系統的最高層,包括應用軟件組件和應用軟件功能。應用層定義了汽車電子系統的功能和行為,并提供了與其他系統和組件的接口。

運行時環境層提供了AUTOSAR系統的運行時支持。它包括操作系統、通信協議棧、服務和管理功能。運行時環境層負責管理系統資源、調度任務、處理通信和數據傳輸等。

基礎軟件層,也稱作基礎設施層,提供了AUTOSAR系統的基礎設施支持。它包括通信總線、診斷和調試功能、存儲管理和配置管理等?;A設施層提供了系統的硬件和軟件基礎設施,以支持系統的功能和性能。

9bb2e666-6d57-11ee-939d-92fbcf53809c.png

AUTOSAR架構的優勢在于提供了一種標準化的方法來開發和管理汽車電子系統的軟件。它提供了模塊化、可重用和可擴展的設計,使開發人員能夠更高效地開發和維護汽車電子系統。此外,AUTOSAR架構還提供了一種標準化的接口和通信協議,使不同的汽車電子系統能夠互相通信和協作。

1.1 自適應平臺(AUTOSAR AP)

AUTOSAR自適應平臺(AUTOSAR Adaptive Platform,簡稱AUTOSAR AP)是AUTOSAR架構的一種擴展,專門用于支持高度自動化和自動駕駛功能的汽車電子系統。AUTOSAR AP提供了一種靈活的軟件架構,可以適應不同的硬件平臺和應用場景。

9bd2763e-6d57-11ee-939d-92fbcf53809c.png

AUTOSAR AP的核心特點包括:

面向服務的架構:AUTOSAR AP采用面向服務的架構,將汽車電子系統劃分為不同的服務,每個服務都有明確定義的接口和功能。這種架構使得不同的服務可以獨立開發、測試和部署,提高了系統的靈活性和可重用性。

靈活的通信機制:AUTOSAR AP支持多種通信機制,包括以太網、CAN-FD和FlexRay等。這些通信機制可以根據具體的應用需求進行靈活配置,以滿足不同的實時性和帶寬要求。

安全和可靠性:AUTOSAR AP提供了豐富的安全和可靠性功能,包括故障檢測和處理、數據完整性保護、安全通信和認證等。這些功能可以幫助汽車電子系統抵御各種安全威脅和故障情況,提高系統的可靠性和安全性。

自動駕駛支持:AUTOSAR AP專門為自動駕駛功能提供了支持,包括傳感器數據處理、環境感知、路徑規劃和控制等。這些功能可以幫助汽車電子系統實現高度自動化和自動駕駛功能,提高駕駛安全性和舒適性。

9be2abbc-6d57-11ee-939d-92fbcf53809c.png

AUTOSAR AP是一種專門用于支持高度自動化和自動駕駛功能的汽車電子系統架構,具有靈活的軟件架構、多樣化的通信機制、豐富的安全和可靠性功能,以及專門的自動駕駛支持。AUTOSAR AP運行硬件通常為MPU或者CPU/AI芯片,而非傳統的車規MCU芯片,因此不是本文介紹的重點,也不再展開。

1.2 經典平臺(AUTOSAR CP)

AUTOSAR經典平臺(AUTOSAR CP)是AUTOSAR軟件架構的一種實現,旨在提供一種標準化的方法來開發和管理汽車電子系統的軟件。AUTOSAR CP定義了汽車電子系統的軟件組件、運行時環境和通信機制,以實現模塊化、可重用和可擴展的系統開發。

9beb5938-6d57-11ee-939d-92fbcf53809c.png

在AUTOSAR CP中,軟件組件被分為應用軟件組件(SWC)和基礎軟件組件(BSW)。SWC是實現特定功能的軟件模塊,例如引擎控制、制動系統等。BSW是提供基礎功能和服務的軟件模塊,例如通信協議棧、操作系統等。

運行時環境層提供了AUTOSAR系統的運行時支持,包括任務管理、內存管理、通信管理等功能。運行時環境層負責調度和管理軟件組件的執行,并提供了通信機制,使軟件組件能夠相互交互。

通信機制在AUTOSAR CP中使用基于事件的觸發機制,軟件組件之間通過事件觸發和接收來進行通信。這種事件觸發機制可以實現松耦合的組件間通信,提高系統的可擴展性和靈活性。

9bfde85a-6d57-11ee-939d-92fbcf53809c.png

總的來說,AUTOSAR CP提供了一種標準化的軟件架構,使汽車電子系統的開發和管理更加高效和可靠。它促進了軟件的模塊化和可重用性,提高了系統的可擴展性和靈活性。

1.2.1 基礎軟件(BSW)

AUTOSAR CP基礎軟件(BSW)是AUTOSAR架構中的一個重要組成部分,它提供了一系列的基礎軟件模塊,用于管理和控制汽車電子系統的各種功能和服務。BSW的功能和意義如下:

標準化接口:BSW定義了標準化的接口和協議,使不同供應商開發的軟件模塊可以互相交互和協作。這樣一來,汽車制造商可以更容易地集成不同的軟件組件,提高開發效率和系統的可重用性。

功能模塊:BSW提供了一系列的功能模塊,包括診斷、通信、網絡管理、電源管理、操作系統等。這些功能模塊可以滿足汽車電子系統的各種需求,如故障診斷、通信協議支持、電源管理等。

可配置性:BSW允許汽車制造商根據具體的需求進行配置和定制。通過配置不同的模塊和參數,可以實現不同的功能和性能要求,提高系統的靈活性和可擴展性。

故障管理:BSW提供了故障管理功能,可以監測和處理系統中的故障。它可以記錄和報告故障信息,幫助診斷和修復問題,提高系統的可靠性和安全性。

軟件更新和維護:BSW支持軟件的在線更新和維護。通過遠程診斷和配置,可以對系統進行升級和修復,減少維護成本和停機時間。

AUTOSAR CP基礎軟件的功能和意義在于提供一種標準化的方法來開發和管理汽車電子系統的軟件,提高開發效率、系統的可重用性和可靠性,同時降低維護成本和停機時間。

9c0c2ca8-6d57-11ee-939d-92fbcf53809c.png

1.2.1.1 微控制器抽象層(MCAL)

AUTOSAR CP的微控制器抽象層(MCAL)是AUTOSAR軟件架構中的一個重要組成部分,它提供了對底層硬件的抽象和訪問接口,以實現軟件與硬件之間的解耦和可移植性。

9c1dc5e4-6d57-11ee-939d-92fbcf53809c.png

MCAL的功能主要包括以下幾個方面:

時鐘和復位管理:MCAL提供了對微控制器時鐘和復位控制的接口,包括時鐘源選擇、時鐘分頻、復位源選擇等功能。

GPIO控制:MCAL提供了對通用輸入輸出引腳的控制接口,包括引腳模式設置、引腳電平讀寫、引腳中斷配置等功能。

ADC/DAC控制:MCAL提供了對模數/數模轉換器的控制接口,包括采樣率設置、通道選擇、數據轉換等功能。

PWM控制:MCAL提供了對脈沖寬度調制器的控制接口,用于控制電機驅動、LED亮度調節等功能。

定時器和計數器控制:MCAL提供了對定時器和計數器的控制接口,用于實現定時中斷、周期性任務等功能。

中斷管理:MCAL提供了對中斷控制器的接口,用于配置和處理中斷請求。

通信接口控制:MCAL提供了對串行通信接口(如UART、SPI、I2C等)的控制接口,用于實現與外部設備的數據交換。

Flash和EEPROM控制:MCAL提供了對閃存和EEPROM的控制接口,用于存儲和讀取數據。

通過MCAL的抽象接口,應用軟件可以獨立于具體的微控制器硬件實現,實現可移植性和可重用性,簡化了軟件開發和維護的工作。

1.2.1.2 服務層(Service Layer)

AUTOSAR CP的服務層(Service Layer)是AUTOSAR架構中的一個重要組成部分,它提供了一系列的服務和功能,以支持汽車電子應用的開發和運行。服務層的主要功能包括:

9c31ecb8-6d57-11ee-939d-92fbcf53809c.png

通信服務:服務層提供了通信協議棧,用于實現不同ECU之間的通信。它支持多種通信協議,如CAN、FlexRay、Ethernet等,并提供了數據傳輸和消息處理的功能。

診斷服務:服務層提供了診斷功能,用于檢測和診斷車輛系統的故障。它支持故障碼的生成和解析,以及故障診斷的通信協議,如UDS、ISO-TP等。

內存管理服務:服務層提供了內存管理功能,用于管理ECU的內存資源。它支持內存分配和釋放,以及內存保護和安全性的控制。

定時服務:服務層提供了定時功能,用于實現任務的調度和時間觸發的事件處理。它支持周期性任務和事件觸發任務的管理,以及時間同步和時鐘管理的功能。

電源管理服務:服務層提供了電源管理功能,用于管理ECU的電源供應和功耗控制。它支持電源狀態的管理和切換,以及低功耗模式的管理。

安全服務:服務層提供了安全功能,用于保護車輛系統的數據和通信安全。它支持加密和解密算法,以及身份驗證和訪問控制的功能。

識別和配置服務:服務層提供了識別和配置功能,用于識別和配置連接到ECU的外部設備和傳感器。它支持設備的自動識別和配置,以及設備的狀態監測和管理。

通過提供這些服務和功能,AUTOSAR CP的服務層可以幫助開發人員更方便地開發和集成汽車電子應用,提高系統的可靠性和安全性,同時降低開發和維護成本。

1.2.1.3 ECU抽象層(ECU Abstraction Layer)

AUTOSAR CP的ECU抽象層(ECU Abstraction Layer)是AUTOSAR架構中的一個重要組件,它提供了一種標準化的方式來訪問ECU硬件和軟件資源,以實現應用程序與底層硬件之間的解耦和可移植性。

9c57de50-6d57-11ee-939d-92fbcf53809c.png

ECU抽象層的功能包括:

硬件抽象:ECU抽象層提供了對底層硬件資源的抽象,包括處理器、存儲器、外設等。它定義了統一的接口和操作方法,使得應用程序可以獨立于具體的硬件平臺進行開發和移植。

通信抽象:ECU抽象層提供了統一的通信接口,使得應用程序可以通過標準化的方式與其他ECU進行通信,包括CAN、LIN、FlexRay等總線協議。

時鐘和定時器抽象:ECU抽象層提供了對時鐘和定時器的抽象,使得應用程序可以獨立于具體的時鐘和定時器硬件進行開發和移植。

電源管理抽象:ECU抽象層提供了對電源管理的抽象,包括電源狀態管理、低功耗模式管理等,以實現對電源的有效管理和節能。

診斷和故障管理抽象:ECU抽象層提供了對診斷和故障管理的抽象,包括故障檢測、故障處理、故障存儲等,以實現對ECU的自診斷和故障管理能力。

通過ECU抽象層,應用程序可以以一種統一的方式訪問和控制底層硬件資源,從而實現應用程序的可移植性和可重用性。同時,ECU抽象層還提供了一些標準化的接口和功能,以簡化開發過程并提高系統的可靠性和可維護性。

1.2.1.4 復雜驅動(CDD)

AUTOSAR CP的復雜驅動(CDD)是為了實現復雜的傳感器評估和執行器控制而設計的。它通過直接訪問微控制器來實現,使用特定的中斷和/或復雜的微控制器外設、外部設備通信收發器、ASIC等,以滿足特殊的功能和時序要求。此外,CDD還可以用于實現增強的服務/協議或封裝非AUTOSAR系統的傳統功能。CDD的實現可能與應用、微控制器和ECU有關。最后,CDD可以作為引入現有或新概念到AUTOSAR軟件架構中的遷移機制。

9c61c78a-6d57-11ee-939d-92fbcf53809c.png

在將CDD集成到AUTOSAR架構中時,設計人員應考慮以下幾點:

提供用戶手冊,以便于集成和向客戶提供信息。

描述CDD的功能操作,包括初始化、正常運行、關閉、故障操作等。

描述與其他BSW模塊、SchM和Rte的關系和需求,例如從NvM獲取的內存塊、配置的臨界區等。

描述接口,包括服務的名稱、描述、可重入性、參數名稱、類型、范圍、返回值名稱、類型、范圍等。

描述非功能需求,如時序和行為要求、資源使用情況、與其他BSW模塊或SW-C的行為等。

描述Dem錯誤、可選的Det錯誤、調試變量等。

描述配置參數的名稱、類型、范圍、值。

描述內存映射需求,如Flash、RAM的使用情況。

描述使用限制和未解決的問題。

描述與其他模塊的集成約束和要求。

提供示例。

CDD的實現需要遵守AUTOSAR的一些約束,包括:

遵守輸入規范。

使用SchM或操作系統機制來保護關鍵資源。

可通過EcuM和BswM模塊管理CDD的模式。

可使用內存映射機制來處理內存段。

可使用Det或Dem模塊報告錯誤。

關于CDD的文件結構,建議至少提供以下文件:

CDD_.c:CDD模塊的代碼文件。

CDD__Irq.c:中斷函數的文件。

CDD__Callout.c:回調函數的文件。

CDD__Lcfg.c:鏈接時從配置生成的C對象的文件。

CDD__PBcfg.c:構建時從配置生成的C對象的文件。

1.2.2 運行時環境(RTE)

AUTOSAR CP運行時環境(RTE)是AUTOSAR架構中的核心組件,它實現了AUTOSAR虛擬功能總線(VFB)的接口,并提供了通信基礎設施和訪問基礎軟件組件(如操作系統)的服務。RTE的功能和意義如下:

9c6a058a-6d57-11ee-939d-92fbcf53809c.png

通信基礎設施:RTE負責管理應用軟件組件之間的通信。它提供了消息傳遞機制和事件觸發機制,使得應用軟件組件可以相互發送和接收消息,實現數據的交換和共享。

訪問基礎軟件組件:RTE提供了訪問基礎軟件組件(如操作系統)的服務接口。應用軟件組件可以通過RTE來調用操作系統的功能,如任務調度、資源管理等。這樣,應用軟件組件可以獨立于具體的操作系統,提高了軟件的可移植性和可重用性。

組件映射和調度:RTE負責將應用軟件組件映射到具體的ECU上,并進行任務調度。它根據系統配置和約束,將應用軟件組件分配到不同的ECU上,并確保系統按照預期的方式運行。

標準化接口:RTE定義了與AUTOSAR OS和應用軟件組件之間的標準化接口。這些接口確保了不同組件之間的互操作性和兼容性,簡化了系統的開發和集成過程。

RTE的意義在于提供了一種標準化的方法來開發和管理汽車電子系統的軟件。它實現了模塊化、可重用和可擴展的架構,提高了開發效率和系統的可靠性。同時,RTE還支持汽車通信協議的標準化,使得不同的汽車電子系統可以進行互聯和通信。通過使用RTE,汽車制造商和供應商可以更加高效地開發和集成汽車電子系統,降低開發成本和時間。

1.2.3 應用軟件(ASW)

AUTOSAR CP應用軟件(ASW)是AUTOSAR架構中的一部分,它包括汽車電子系統的應用軟件組件和功能。ASW的功能是實現汽車電子系統的各種功能和行為,例如發動機控制、制動系統、車身電子等。ASW的意義在于提供了一種標準化的方法來開發和管理汽車電子系統的軟件,使得不同廠商和供應商的軟件可以互相兼容和交互。通過使用ASW,汽車制造商可以更高效地開發和集成各種功能模塊,提高開發效率和系統的可靠性。同時,ASW還提供了一種模塊化和可重用的設計方法,使得軟件的維護和更新更加容易??傊?,ASW的功能和意義在于推動汽車電子系統的標準化和互操作性,提高開發效率和系統的可靠性。

1.2.4 功能庫(Library)

9c749f04-6d57-11ee-939d-92fbcf53809c.png

1.3 AUTOSAR軟件開發流程簡介

AUTOSAR軟件開發流程是指在AUTOSAR架構下進行軟件開發的一系列步驟和方法。它包括以下幾個主要階段:

需求分析:在這個階段,根據汽車電子系統的需求,定義和分析軟件功能和性能要求。這包括確定軟件組件、接口和模塊的功能和規格要求。

架構設計:在這個階段,根據需求分析的結果,設計AUTOSAR軟件的整體架構。這包括定義軟件組件的功能和接口,以及確定軟件模塊的分層結構和通信機制。

組件開發:在這個階段,根據架構設計的要求,開發和實現各個軟件組件。這包括編寫和調試軟件代碼,以及進行單元測試和集成測試。

配置和集成:在這個階段,將開發好的軟件組件進行配置和集成。這包括將組件配置到目標硬件平臺上,并進行組件之間的接口對接和功能測試。

驗證:在這個階段,對已集成的AUTOSAR軟件進行驗證。這包括對軟件的功能和性能進行測試,以確保軟件滿足需求和質量標準。

發布和部署:在這個階段,將經過驗證和驗證的AUTOSAR軟件發布和部署到實際的汽車電子系統中。這包括將軟件加載到目標硬件平臺上,并進行系統級測試和調試。

9c8a33f0-6d57-11ee-939d-92fbcf53809c.png

AUTOSAR軟件開發流程的目標是提高軟件開發的效率和質量,實現軟件的可重用性和可維護性。通過遵循這個流程,可以更好地管理軟件開發過程,減少錯誤和風險,并提高汽車電子系統的性能和可靠性。

Non-AUTOSAR軟件

雖然AUTOSAR是一個開發軟件架構,在代碼重用性、可維護性、開發效率和代碼質量方面有諸多優勢,但是使用AUTOSAR標準需要一定的授權費用且大多數AUTOSAR軟件和配置工具都是商用付費軟件,需要額外購買license授權。因此,只有量大的平臺化項目,Car OEM和Tier-1才會完全采用AUTOSAR架構軟件進行開發 , 以cover上百萬的AUTOSAR軟件費用。

對于項目預算有限、非平臺化的小項目,非AUTOSAR(Non-AUTOSAR)軟件開發是一個不錯的選擇。雖然很多大客戶有自己在某個/多個應用開發方面多年積累的軟件庫可以使用,但是面對更新換代越來越快且越來越復雜的車規MCU硬件和日益復雜的應用功能軟件需求,芯片廠商免費提供的車規MCU軟件開發套件(SDK)將能夠幫助客戶減少熟悉新硬件底層的時間、復用中間件軟件,讓客戶專注于應用層功能軟件的開發和測試,提高軟件開發效率,從而縮短項目開發周期。

2.1 軟件開發套件(SDK)

9ca1040e-6d57-11ee-939d-92fbcf53809c.png

車規MCU的軟件開發套件(SDK)是為了支持開發人員在車規MCU上進行軟件開發而設計的。它提供了一套完整的工具和庫,用于開發、編譯、調試和測試車規MCU上的應用程序。

車規MCU的SDK通常包括以下幾個主要組件:

底層驅動層(LLD):提供了與硬件外設的接口,包括GPIO、UART、SPI、CAN等。開發人員可以使用驅動層來配置和控制這些外設。

硬件抽象層(HAL)或者外設抽象層(PAL): 將實現功能相同/相近的不同外設IP的底層驅動層(LLD)接口進行封裝,對上層應用或者中間件軟件提供統一的API接口以屏蔽不同硬件平臺的外設IP寄存器/功能差異,方便跨平臺驅動代碼移植。

操作系統(OS):提供了多任務管理、任務調度、內存管理等功能,以支持多任務應用程序的開發。常見的車規MCU操作系統包括AUTOSAR OS和FreeRTOS等。

中間件(Middleware):提供了一些常用的功能模塊,如通信協議棧、文件系統、加密庫等。開發人員可以使用中間件來簡化開發過程,提高開發效率。

工具鏈:包括編譯器、調試器和仿真器等工具,用于編譯、調試和測試應用程序。常見的車規MCU工具鏈包括IAR Embedded Workbench、Keil MDK等。

示例代碼和文檔:提供了一些示例代碼和詳細的文檔,幫助開發人員快速上手和理解車規MCU的功能和使用方法。

車規MCU的SDK架構和功能可以根據具體的芯片廠商和應用需求而有所不同。開發人員可以根據自己的需求選擇合適的SDK,并根據SDK提供的文檔和示例代碼進行開發。

2.2 中間件(Middleware)

汽車電子應用需要很多不同種類的中間件(Middleware)軟件來實現高效可靠的數據傳輸、網絡管理、參數標定/校準、錯誤診斷和高效專用控制算法,其中最重要的中間件包括:

2.2.1 CAN協議棧

汽車CAN協議棧是一種軟件組件,用于實現汽車電子系統中的CAN總線通信功能。它包含了一系列的功能軟件,用于處理CAN總線的物理層和數據鏈路層的通信協議。

9cadb01e-6d57-11ee-939d-92fbcf53809c.png

汽車CAN協議棧的功能軟件主要包括以下幾個方面:

物理層驅動程序:負責與CAN總線物理層進行通信,包括發送和接收CAN消息,以及處理CAN總線的電氣特性和信號傳輸。

CAN消息處理:負責解析和封裝CAN消息,包括標識符的解析、數據的封裝和解封裝等。

錯誤檢測和處理:負責檢測和處理CAN總線上的錯誤,包括位錯誤、幀錯誤、CRC錯誤等,以確保數據的可靠性和完整性。

時序控制:負責控制CAN消息的發送和接收時序,包括幀的發送間隔、幀的優先級等。

網絡管理:負責管理CAN總線上的節點和網絡拓撲,包括節點的加入和退出、節點的狀態管理等。

診斷和故障處理:負責診斷CAN總線上的故障和錯誤,并提供相應的故障處理機制,以保證系統的可靠性和穩定性。

汽車CAN協議棧是實現汽車CAN總線通信功能的關鍵軟件組件,它提供了一系列的功能軟件,用于處理CAN總線的物理層和數據鏈路層的通信協議,以實現可靠和高效的汽車電子系統通信。

2.2.2 LIN協議棧

9cca378e-6d57-11ee-939d-92fbcf53809c.png

汽車LIN協議棧是用于實現LIN總線通信的軟件組件集合。它包含了實現LIN協議的各個層次的功能軟件,以便實現LIN總線的通信和控制。

9cd8f3f0-6d57-11ee-939d-92fbcf53809c.png

汽車LIN協議棧通常包含以下功能軟件:

物理層驅動:負責將MCU的串行通信模塊輸出的信號轉換為LIN總線的電平信號,并提供LIN總線的電氣特性要求的支持。

LIN協議棧:實現了LIN協議的各個層次,包括幀封裝、幀解析、錯誤檢測和糾正、幀發送和接收等功能。

LIN網絡管理:負責管理LIN總線上的節點,包括節點的配置、識別、診斷和錯誤處理等。

LIN應用層:根據具體的應用需求,實現了與LIN總線通信相關的應用功能,如車門控制、窗戶控制、燈光控制等。

9cef385e-6d57-11ee-939d-92fbcf53809c.png

通過使用汽車LIN協議棧,開發人員可以方便地實現LIN總線通信功能,并根據具體的應用需求進行定制和擴展。

2.2.3 UDS協議棧

汽車UDS協議棧是一種用于汽車電子控制單元(ECU)之間進行診斷和通信的標準協議。UDS(Unified Diagnostic Services)協議定義了一組診斷服務和通信機制,用于在車輛中進行故障診斷、參數配置和編程等操作。

9cff3272-6d57-11ee-939d-92fbcf53809c.png

UDS協議棧通常包含以下功能軟件:

通信層:負責處理UDS協議的通信,包括CAN總線通信、LIN總線通信等。

診斷服務:實現了UDS協議定義的各種診斷服務,如讀取故障碼、清除故障碼、讀取參數、編程等。

診斷會話管理:管理UDS協議中的會話,包括默認會話、擴展會話、安全訪問會話等。

診斷報文處理:處理UDS協議中的診斷報文,包括解析報文、生成響應報文等。

安全訪問:提供安全訪問機制,確保只有授權的設備或用戶可以進行診斷操作。

診斷數據管理:管理診斷數據,包括故障碼存儲、參數配置等。

診斷事件管理:處理診斷事件,如故障碼觸發、診斷請求等。

UDS協議棧的功能軟件可以根據具體的應用需求進行定制和擴展,以滿足不同車輛和ECU的診斷和通信需求。

2.2.4 XCP協議棧

汽車XCP協議棧是一種用于汽車電子控制單元(ECU)參數標定的軟件協議。它基于AUTOSAR標準,并提供了一套功能軟件來支持ECU的診斷、調試和參數配置等功能。

9d12ecd6-6d57-11ee-939d-92fbcf53809c.png

汽車XCP協議棧的功能軟件包括以下幾個方面:

XCP通信層:提供了與ECU之間的通信接口,支持基于CAN、FlexRay、以太網等不同的物理層通信協議。

XCP協議解析:負責解析和處理XCP協議消息,包括命令和響應消息的解析、參數傳輸和校驗等。

XCP數據采集和測量:支持對ECU內部的數據進行采集和測量,包括讀取和寫入ECU內部的變量、參數和寄存器等。

XCP診斷和調試:提供了診斷和調試ECU的功能,包括讀取和修改ECU的內部狀態、執行診斷測試和故障碼讀取等。

XCP參數配置:支持對ECU的參數進行配置和調整,包括校準和校驗參數的設置和更新。

XCP仿真和測試:提供了對ECU進行仿真和測試的功能,包括模擬ECU的行為和響應,以及生成和發送模擬的XCP消息。

2.2.5 TCP/IP協議棧

以太網TCP/IP協議棧是一組用于以太網通信的網絡協議集合,它包含了多個功能軟件模塊,用于實現不同的網絡功能。常見的以太網TCP/IP協議棧包含以下功能軟件:

9d1e5a12-6d57-11ee-939d-92fbcf53809c.png

網絡接口層(Network Interface Layer):負責與物理網絡接口進行通信,包括驅動程序和硬件抽象層。

網絡層(Network Layer):實現IP協議,負責數據包的路由和轉發,包括IP地址分配和路由表管理。

傳輸層(Transport Layer):實現TCP和UDP協議,負責數據的可靠傳輸和錯誤檢測,包括連接管理、流量控制和擁塞控制。

應用層(Application Layer):提供各種應用程序所需的協議和服務,包括HTTP、FTP、SMTP等。

網絡配置和管理(Network Configuration and Management):提供網絡配置和管理的功能,包括DHCP、DNS等。

安全性和加密(Security and Encryption):提供網絡通信的安全性和加密功能,包括SSL/TLS、IPSec等。

以太網TCP/IP協議棧的功能軟件模塊可以根據具體的應用需求進行選擇和配置,以滿足不同的網絡通信需求。

2.2.6 以太網音視頻橋(AVB)協議棧

汽車以太網音視頻橋(AVB)協議棧是一種用于實現車載音視頻傳輸的協議棧。它基于IEEE 802.1 Audio Video Bridging (AVB)標準,提供了實時、可靠的音視頻傳輸和同步功能。汽車以太網AVB協議棧包含以下功能軟件:

9d2645f6-6d57-11ee-939d-92fbcf53809c.png

9d2a3e72-6d57-11ee-939d-92fbcf53809c.png

AVB協議:實現了AVB網絡的基本協議功能,包括時鐘同步、流量調度、流量控制等。

IEEE 802.1AS時鐘同步協議:用于實現網絡中各個節點的時鐘同步,確保音視頻數據的同步傳輸。

IEEE 802.1Qat流量調度協議:用于實現網絡中各個節點的流量調度和優先級控制,確保音視頻數據的實時傳輸。

IEEE 802.1Qav流量控制協議:用于實現網絡中各個節點的流量控制,確保音視頻數據的可靠傳輸。

IEEE 1722音視頻傳輸協議:定義了音視頻數據的封裝和傳輸格式,確保音視頻數據的正確解析和傳輸。

IEEE 1733時鐘同步協議:用于實現網絡中各個節點的時鐘同步,確保音視頻數據的同步傳輸。

Media Clock Server (MCS):提供了音視頻數據的時鐘同步服務,確保音視頻數據的同步傳輸。

Media Stream Reservation Protocol (MSRP):用于實現音視頻數據的流量調度和優先級控制,確保音視頻數據的實時傳輸。

Stream Reservation Protocol (SRP):用于實現音視頻數據的流量調度和優先級控制,確保音視頻數據的實時傳輸。

Audio Video Transport Protocol (AVTP):用于實現音視頻數據的封裝和傳輸,確保音視頻數據的正確解析和傳輸。

汽車以太網AVB協議棧提供了一套完整的功能軟件,用于實現車載音視頻數據的實時、可靠傳輸和同步。

2.2.7 時間敏感網絡(TSN)協議棧

汽車時間敏感網絡(TSN)協議棧是一種用于汽車領域的網絡通信協議棧,旨在提供高可靠性、低延遲和實時性的通信。它基于以太網技術,并通過時間同步和流量調度等機制來滿足汽車電子系統對實時通信的需求。

9d3cff8a-6d57-11ee-939d-92fbcf53809c.jpg

TSN協議棧包含以下功能軟件:

時間同步:通過IEEE 802.1AS協議實現網絡中各個節點的時間同步,確保數據在網絡中的傳輸具有一致的時間參考。

流量調度:通過IEEE 802.1Qbv和IEEE 802.1Qbu協議實現對網絡中不同流量的調度和優先級管理,確保高優先級的數據能夠及時傳輸。

帶寬保障:通過IEEE 802.1Qav協議實現對網絡中不同流量的帶寬分配和保障,確保實時數據的傳輸不受其他數據流的影響。

時鐘同步:通過IEEE 802.1AS和IEEE 802.1AS-Rev協議實現網絡中各個節點的時鐘同步,確保數據在不同節點之間的時間一致性。

時鐘分發:通過IEEE 802.1AS和IEEE 802.1AS-Rev協議實現網絡中時鐘的分發,確保各個節點能夠獲取到一致的時間參考。

優先級管理:通過IEEE 802.1Qbv協議實現對網絡中不同數據流的優先級管理,確保高優先級的數據能夠優先傳輸。

數據包過濾:通過IEEE 802.1Qci協議實現對網絡中數據包的過濾和篩選,確保只有符合條件的數據包能夠被傳輸。

TSN協議棧的功能軟件可以根據具體的應用需求進行配置和定制,以滿足不同汽車電子系統的實時通信需求。

2.2.8 電機驅動庫(Motor Control Library)

汽車電機驅動庫(Motor Control Library)是一種用于控制和驅動汽車電機的軟件庫。它包含了一系列功能算法和庫函數,用于實現電機控制的各種功能和特性。

9d4d2482-6d57-11ee-939d-92fbcf53809c.png

汽車電機驅動庫通常包含以下功能算法和庫函數軟件:

電機控制算法:包括速度控制、位置控制、扭矩控制等算法,用于實現電機的精確控制和調節。

電機參數識別算法:用于識別電機的參數,如電感、電阻、轉子慣量等,以便更好地進行控制和調節。

電機保護算法:包括過流保護、過溫保護、過壓保護等算法,用于保護電機和驅動器免受損壞。

PWM生成算法:用于生成脈寬調制(PWM)信號,控制電機驅動器的輸出功率。

傳感器接口函數:用于與電機傳感器(如編碼器、霍爾傳感器等)進行通信和數據交換。

通信接口函數:用于與外部控制器(如ECU)進行通信,實現與整車系統的集成。

故障診斷和故障處理函數:用于檢測和處理電機和驅動器的故障,保證系統的安全和可靠性。

通過使用汽車電機驅動庫,開發人員可以快速實現電機控制功能,提高開發效率和產品質量。同時,庫函數軟件的模塊化設計也使得系統的維護和升級更加方便。

操作系統(OS)

一方面,隨著汽車功能的日益復雜,前后臺調度的bare-metal軟件架構已無法滿足汽車應用需求,基于操作系統(OS-Operation System)的多任務調度和資源管理軟件需求越來越多;另一方面:摩爾定理帶來的車規MCU芯片硬件主頻/算力不斷提高,片內集成的存儲器足夠大,能夠滿足OS內核帶來的額外實時性和存儲器消耗。

車規MCU的通常集成的存儲器都比較有限(Flash:幾KB ~ 64MB, SRAM:幾KB ~ 10MB),且不帶內存管理單元(MMU),所以無法運行Windows和Linux這類大型桌面非實時操作系統。

9d587fb2-6d57-11ee-939d-92fbcf53809c.png

車規MCU的應用屬于典型的嵌入式實時應用,因此其使用的操作系統(OS-Operation System)必須是實時操作系統(RTOS - Real-Time Operation System)。

9d6f45da-6d57-11ee-939d-92fbcf53809c.png

3.1 AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR架構中的一個組件,用于管理和協調汽車電子系統中的軟件任務和中斷。它提供了以下功能特性:

9d7fab50-6d57-11ee-939d-92fbcf53809c.png

任務和中斷管理:AUTOSAR OS可以創建、啟動、停止和刪除任務,并處理中斷請求。它可以根據任務的優先級和調度策略來調度任務的執行,確保任務按照預定的時間要求執行。

2. 時鐘和定時器管理:AUTOSAR OS可以管理系統時鐘和定時器,提供精確的時間基準和定時功能,以支持任務和中斷的時間觸發。

3. 通信和同步機制:AUTOSAR OS提供了多種通信和同步機制,如事件、信號量、郵箱和消息隊列,用于任務之間的數據交換和同步。

4. 內存管理:AUTOSAR OS提供了內存管理功能,包括動態內存分配和釋放,以及內存保護和錯誤檢測機制,確保系統的穩定性和安全性。

5. 錯誤處理和故障管理:AUTOSAR OS具有錯誤處理和故障管理功能,可以檢測和處理任務和中斷的運行時錯誤,包括任務超時、堆棧溢出等。

6. 電源管理:AUTOSAR OS可以管理系統的電源狀態,包括進入和退出低功耗模式,以最大程度地減少能耗。

AUTOSAR OS是一個功能強大的操作系統,用于管理和協調汽車電子系統中的軟件任務和中斷,提供了豐富的功能特性,以滿足汽車電子系統的實時性、可靠性和安全性要求。

3.1.1 OSEK OS

OSEK(Open Systems and their Interfaces for Electronics in Motor Vehicles)是一種開放的嵌入式實時操作系統(RTOS),專為汽車電子系統開發而設計。OSEK OS提供了一種標準化的方法來管理和調度汽車電子系統中的任務和資源。

9d8fd174-6d57-11ee-939d-92fbcf53809c.png

OSEK(Open Systems and the corresponding Interfaces for Automotive Electronics)是一種用于汽車電子系統的開放式操作系統標準。OSEK OS具有以下任務調度和中斷管理的特點:

1. 任務調度:OSEK OS采用固定優先級的靜態優先級調度算法。每個任務都被分配了一個固定的優先級,優先級高的任務具有更高的執行優先級。任務的調度是基于優先級的,優先級高的任務會搶占優先級低的任務,以確保高優先級任務的及時響應。

2. 中斷管理:OSEK OS提供了中斷管理機制,可以處理硬件中斷和軟件中斷。中斷可以被分為兩個級別:類別2中斷和類別1中斷。類別2中斷是不可搶占的,只有在任務執行完畢后才能被處理。類別1中斷是可搶占的,可以在任務執行過程中被觸發并立即處理。

3. 任務間通信:OSEK OS提供了一些機制來實現任務間的通信和同步。例如,事件標志可以用于任務之間的同步和通信,任務可以等待某個事件的發生。消息隊列可以用于任務之間的消息傳遞,任務可以發送和接收消息。

4. 資源管理:OSEK OS提供了資源管理機制,可以對共享資源進行保護和管理。資源可以是共享的全局變量、設備或其他系統資源。通過使用資源鎖定機制,可以確保在任何給定時間只有一個任務可以訪問共享資源,以避免競爭條件和數據一致性問題。

OSEK OS的任務調度和中斷管理特點使得它適用于實時性要求較高的汽車電子系統,能夠提供可靠的任務執行和中斷處理能力。

OSEK OS的特點和價值在于:

實時性:OSEK OS是一個實時操作系統,能夠滿足汽車電子系統對實時性的要求。它提供了任務調度和優先級管理機制,確保任務按照預定的時間要求執行。

可擴展性:OSEK OS支持多任務并發執行,可以管理和調度多個任務。它提供了任務和資源的管理機制,使得系統可以靈活地擴展和配置。

可靠性:OSEK OS提供了錯誤檢測和處理機制,能夠及時發現和處理系統中的錯誤。它還提供了任務間通信和同步機制,確保系統的穩定性和可靠性。

可移植性:OSEK OS是一個開放的標準,可以在不同的硬件平臺上實現和使用。它提供了一套統一的接口和規范,使得開發人員可以方便地移植和重用代碼。

標準化:OSEK OS是一個國際標準,被廣泛應用于汽車電子系統的開發。它提供了一種統一的開發方法和規范,促進了汽車電子系統的互操作性和可維護性。

綜上所述,OSEK OS具有實時性、可擴展性、可靠性、可移植性和標準化等特點,為汽車電子系統的開發提供了一種可靠和高效的解決方案。

3.2 Non-AUTOSAR OS

3.2.1 FreeRTOS

FreeRTOS是一個開源的實時操作系統(RTOS),專為嵌入式系統設計而開發。它提供了一種輕量級的任務調度機制,能夠有效地管理多個任務的執行。以下是FreeRTOS的核心任務調度機制、中斷和資源管理的實現特點:

9d9c230c-6d57-11ee-939d-92fbcf53809c.png

任務調度機制:FreeRTOS使用優先級搶占式調度算法,任務的執行順序由任務的優先級決定。當有多個任務處于就緒狀態時,優先級較高的任務會被立即執行,而優先級較低的任務則會被暫時掛起,等待執行機會。任務調度器會根據任務的優先級動態地進行任務切換,以實現任務的快速響應和高效利用系統資源。

中斷管理:FreeRTOS提供了可重入的中斷服務例程(ISR)機制,可以在中斷服務例程中調用RTOS的API函數。這使得在中斷處理過程中可以進行任務切換、事件通知等操作,提高了系統的實時性和可靠性。同時,FreeRTOS還提供了中斷屏蔽機制,可以在中斷處理過程中屏蔽其他中斷的干擾,確保關鍵任務的實時性。

資源管理:FreeRTOS提供了多種同步和通信機制,如信號量、互斥鎖、消息隊列等,用于實現任務之間的同步和通信。這些機制可以有效地防止資源競爭和死鎖的發生,保證任務的正確執行順序和數據的一致性。此外,FreeRTOS還提供了內存管理功能,可以動態地分配和釋放內存,提高系統的靈活性和資源利用率。

FreeRTOS通過其靈活的任務調度機制、可重入的中斷管理和強大的資源管理功能,為嵌入式系統提供了一種可靠、高效的實時操作系統解決方案。它被廣泛應用于汽車電子、工業控制、醫療設備等領域,為開發人員提供了方便、可靠的開發平臺。

3.2.2 其他RTOS

在汽車領域,常用的RTOS除了以上介紹的AUTOSAR/OSEK OS和FreeRTOS之外,包括但不限于以下幾種:

3.2.2.1 QNX OS

QNX是一種實時操作系統(RTOS),具有以下功能特性:

9daa9766-6d57-11ee-939d-92fbcf53809c.png

1. 實時性:QNX操作系統是一個實時操作系統,提供可靠的實時性能。它能夠在嚴格的時間約束下運行任務,并確保任務按時完成。

2. 微內核架構:QNX采用微內核架構,將操作系統核心的功能模塊化,以提高系統的可靠性和靈活性。這種架構允許模塊之間的獨立運行和更新,而不會影響整個系統。

3. 分布式處理:QNX操作系統支持分布式處理,可以在多個處理器上運行任務,并通過網絡進行通信和協調。這使得QNX適用于復雜的分布式系統和嵌入式網絡應用。

4. 實時調度:QNX操作系統提供了靈活的實時調度算法,可以根據任務的優先級和時間約束進行任務調度。它能夠快速響應高優先級任務,并確保低優先級任務不會阻塞系統。

5. 強大的網絡支持:QNX操作系統具有強大的網絡支持,包括TCP/IP協議棧、套接字接口和網絡文件系統。這使得QNX可以輕松地與其他系統進行通信和數據交換。

6. 安全性:QNX操作系統具有強大的安全功能,包括訪問控制、數據加密和安全通信。它提供了多層次的安全機制,保護系統免受惡意攻擊和未經授權的訪問。

7. 可靠性和容錯性:QNX操作系統具有高度的可靠性和容錯性。它能夠檢測和恢復系統錯誤,并提供故障隔離和容錯機制,以確保系統的穩定性和可用性。

3.2.2.2 GHS INTEGRITY OS

GHS INTEGRITY OS是一種實時操作系統(RTOS),由Green Hills Software開發。它具有以下功能特性:

9db6c324-6d57-11ee-939d-92fbcf53809c.png

1. 實時性:GHS INTEGRITY OS是一個實時操作系統,具有可靠的實時性能。它能夠在嚴格的時間約束下運行任務,并確保任務按時完成。

2. 可靠性:GHS INTEGRITY OS具有高度的可靠性和穩定性。它采用了分離的內核和應用程序空間,以防止應用程序中的錯誤對操作系統的影響。

3. 安全性:GHS INTEGRITY OS提供了強大的安全功能,包括內存保護、訪問控制和安全通信。它通過嚴格的權限管理和隔離機制,保護系統免受惡意攻擊和未經授權的訪問。

4. 分布式處理:GHS INTEGRITY OS支持分布式處理,可以在多個處理器上運行任務,并通過網絡進行通信和協調。這使得GHS INTEGRITY OS適用于復雜的分布式系統和嵌入式網絡應用。

5. 內存管理:GHS INTEGRITY OS具有高級的內存管理功能,包括動態內存分配和釋放、內存保護和內存池管理。這使得開發人員可以有效地管理系統的內存資源。

6. 設備驅動支持:GHS INTEGRITY OS提供了廣泛的設備驅動支持,包括網絡、存儲、通信和外設設備。這使得開發人員可以輕松地與各種硬件設備進行交互和通信。

7. 多任務支持:GHS INTEGRITY OS支持多任務并發執行,可以同時運行多個任務。它提供了任務調度、同步機制和通信機制,以實現任務之間的協作和交互。

3.2.2.3 Keil RTX5 OS

Keil RTX5 OS是一款為嵌入式系統開發的實時操作系統(RTOS),具有以下功能特性:

9e20632e-6d57-11ee-939d-92fbcf53809c.png

1. 搶占式多任務處理:Keil RTX5允許多個任務同時運行,每個任務具有自己的優先級。RTX5調度器確保在必要時,高優先級任務可以搶占低優先級任務。

2. 任務管理:RTX5提供了任務管理功能,包括任務的創建、刪除和切換等。開發人員可以根據任務的需求和優先級來管理任務。

3. 任務間通信:Keil RTX5提供了多種任務間通信機制,如消息隊列和郵箱。這些機制可以實現任務之間的高效數據交換,避免了忙等或輪詢的需要。

4. 同步原語:RTX5支持各種同步原語,如信號量、互斥鎖和事件標志。這些原語有助于協調對共享資源的訪問,避免競態條件的發生。

5. 內存管理:Keil RTX5包含了一個內存管理系統,可以動態分配和釋放內存塊。這個功能在處理可變大小的數據結構或需要動態管理內存時非常有用。

6. 定時器管理:RTX5內核包含了一個定時器管理模塊,提供準確的定時服務。它允許任務基于時間延遲或周期性間隔進行調度。

7. 低開銷:Keil RTX5設計具有低內存和處理開銷,適用于資源受限的嵌入式系統。

以上是一些常見的汽車領域使用的RTOS,每種RTOS都有其特定的優勢和適用場景,根據具體的應用需求和系統要求選擇合適的RTOS是非常重要的。

啟動及信息安全軟件(Security SW)

4.1 安全啟動固件(Secure Boot Firmware)

車規MCU的安全啟動固件(Secure Boot Firmware)是一種用于保護汽車電子系統免受惡意軟件和未經授權的代碼修改的安全機制。其主要功能包括以下幾個方面:

啟動驗證:安全啟動固件通過驗證啟動代碼的完整性和真實性來確保系統啟動過程的安全性。它會對啟動代碼進行數字簽名驗證,以確保代碼未被篡改或替換。

防止未授權代碼執行:安全啟動固件會對系統中的應用程序和固件進行驗證,以確保只有經過授權的代碼才能被執行。它會檢查代碼的數字簽名,并與預先存儲的信任錨點進行比對,以確定代碼的合法性。

安全更新:安全啟動固件還支持安全的固件更新過程。它可以驗證更新包的完整性和真實性,并確保只有經過授權的更新包才能被加載和執行。

安全存儲:安全啟動固件還可以提供安全的存儲機制,用于存儲敏感數據,如加密密鑰和證書。這些數據可以被安全地訪問和使用,以保護系統的安全性。

通過使用安全啟動固件,車規MCU可以提供更高的安全性和可靠性,防止惡意軟件和未經授權的代碼對汽車電子系統造成的潛在威脅。

4.2 硬件安全模塊固件(HSM Firmware)

車規MCU的硬件安全模塊固件(HSM Firmware)是指在車規MCU芯片中集成的用于實現硬件安全功能的固件軟件。它主要用于保護車輛的安全性和防止惡意攻擊。

9e42cb12-6d57-11ee-939d-92fbcf53809c.png

車規MCU的硬件安全模塊固件具有以下主要功能:

安全啟動(Secure Boot):確保只有經過驗證的軟件和固件可以在車規MCU上運行,防止未經授權的軟件和惡意代碼的執行。

密鑰管理:管理和存儲加密算法所需的密鑰,確保密鑰的安全性和保密性。

安全通信:提供加密和認證機制,確保車輛內部和車輛與外部系統之間的通信安全。

安全存儲:提供加密和防篡改機制,保護存儲在車規MCU中的敏感數據和配置信息的安全性。

安全診斷:監測和檢測可能存在的安全漏洞和攻擊,并采取相應的安全措施進行應對和防護。

安全更新:支持安全的固件和軟件更新機制,確保車規MCU的安全性能得到持續改進和更新。

通過集成硬件安全模塊固件,車規MCU可以提供更高的安全性和可靠性,保護車輛免受惡意攻擊和未經授權的訪問。這對于確保車輛的安全性和數據的保密性至關重要。

4.3 啟動加載程序(bootloader)

車規MCU的啟動加載程序(bootloader)是一種用于在汽車電子控制單元(ECU)上加載和更新應用程序的軟件。它具有以下主要功能和實現要點:

引導加載:啟動加載程序負責在MCU上啟動和加載應用程序。它通過讀取存儲器中的引導加載代碼,并將其加載到MCU的內部存儲器中執行,從而啟動應用程序。

存儲器管理:啟動加載程序需要管理存儲器的分區和使用。它負責將應用程序加載到正確的存儲器區域,并確保存儲器的正確初始化和擦除。

通信接口:啟動加載程序通常通過車輛網絡(如CAN和LIN總線)或其他通信接口與外部設備(如診斷工具或服務器)進行通信。它使用這些接口來接收新的應用程序固件,并將其寫入MCU的存儲器中。

安全性和完整性驗證:啟動加載程序需要驗證新的應用程序固件的安全性和完整性,以確保它是合法的和未被篡改的。它可以使用數字簽名、校驗和或其他安全機制來驗證固件的完整性。

錯誤處理和回滾:啟動加載程序需要具備錯誤處理和回滾機制,以應對加載過程中可能出現的錯誤。它可以記錄錯誤日志、提供錯誤提示或回滾到之前的應用程序版本。

可擴展性和靈活性:啟動加載程序應具備良好的可擴展性和靈活性,以適應不同的MCU和應用程序需求。它應支持不同的存儲器類型、通信接口和安全機制,并能夠適應不同的應用程序大小和復雜度。

自動化和遠程更新:啟動加載程序可以支持自動化的固件更新過程,使得ECU的應用程序可以遠程更新,而無需人工干預。這可以提高維護效率和系統可靠性。

9e4fd5fa-6d57-11ee-939d-92fbcf53809c.png

總之,車規MCU的啟動加載程序是一種關鍵的軟件組件,它負責在汽車ECU上加載和更新應用程序。它需要具備存儲器管理、通信接口、安全性驗證、錯誤處理和回滾等功能,并具備可擴展性和靈活性,以適應不同的MCU和應用程序需求。

4.4 遠程固件更新程序(FOTA)

9e6a3788-6d57-11ee-939d-92fbcf53809c.png

車規MCU的遠程固件更新程序(FOTA)是一種通過無線通信方式對車輛中的MCU進行固件升級的技術。它的主要功能包括:

遠程升級:FOTA允許車輛制造商通過無線網絡遠程升級車輛中的MCU固件,無需將車輛帶回到維修中心或進行物理接口連接。

功能增強:FOTA可以為車輛提供新的功能和特性,通過更新MCU固件來實現。這使得車輛制造商可以在車輛上市后通過軟件更新來改進和增強車輛的功能。

故障修復:FOTA可以用于修復MCU固件中的錯誤和故障。一旦發現了問題,車輛制造商可以通過遠程升級來修復這些問題,而無需將車輛帶回到維修中心。

實現FOTA的要點包括:

安全性:FOTA需要確保固件的完整性和安全性。為了防止固件被篡改或惡意軟件的注入,需要使用數字簽名和加密等安全機制來保護固件的傳輸和存儲過程。

網絡通信:FOTA需要使用無線通信技術,如蜂窩網絡(如4G、5G)或車載通信系統(如V2X)來進行固件的傳輸。這需要確保通信的穩定性和可靠性,以及對網絡帶寬和延遲的適應性。

可靠性和回滾機制:FOTA需要確保固件升級的可靠性,以避免升級過程中的中斷或失敗。同時,還需要提供回滾機制,以便在升級失敗或出現問題時能夠恢復到之前的固件版本。

用戶體驗:FOTA應該盡量減少對車輛使用者的干擾和影響。升級過程應該在車輛停放或不使用的時候進行,以避免對車輛的正常使用造成影響。

FOTA是車聯網普及后,新一代功能域控制器(DCU)和區域控制器(ZCU)架構實現的一項重要的軟件技術,可以為車輛制造商提供靈活的固件管理和更新方式,以提供更好的用戶體驗和車輛性能。

功能安全軟件(FuSa SW)

9e758458-6d57-11ee-939d-92fbcf53809c.png

5.1 功能安全外設驅動(SPD)

車規MCU的功能安全外設驅動(SPD)是為了滿足汽車電子系統的功能安全要求而設計的。它負責驅動功能安全外設,確保其在發生故障時能夠正確地執行安全功能。SPD的設計需要遵循ISO 26262功能安全標準,并根據系統的安全需求進行相應的驗證和驗證。

9e8da5f6-6d57-11ee-939d-92fbcf53809c.png

SPD的主要功能包括:

故障檢測和診斷:SPD需要能夠監測外設的故障狀態,并及時進行診斷和報告。這可以通過使用故障檢測機制和故障診斷算法來實現。

安全數據傳輸:SPD需要確保外設與其他系統組件之間的數據傳輸是安全可靠的。這可以通過使用安全通信協議和數據完整性校驗機制來實現。

安全控制和監控:SPD需要能夠對外設進行安全控制和監控,以確保其在發生故障時能夠正確地執行安全功能。這可以通過使用安全控制算法和故障恢復機制來實現。

在設計SPD時,需要考慮以下幾點:

遵循ISO 26262標準:SPD的設計需要符合ISO 26262的要求,包括安全生命周期的管理、安全需求的分析和驗證、安全功能的實現和驗證等。

故障檢測和診斷:SPD需要能夠準確地檢測和診斷外設的故障狀態,并及時進行報告和處理。這可以通過使用故障檢測機制和故障診斷算法來實現。

安全數據傳輸:SPD需要確保外設與其他系統組件之間的數據傳輸是安全可靠的。這可以通過使用安全通信協議和數據完整性校驗機制來實現。

安全控制和監控:SPD需要能夠對外設進行安全控制和監控,以確保其在發生故障時能夠正確地執行安全功能。這可以通過使用安全控制算法和故障恢復機制來實現。

車規MCU的功能安全外設驅動(SPD)是為了滿足汽車電子系統的功能安全要求而設計的,它負責驅動功能安全外設,并確保其在發生故障時能夠正確地執行安全功能。在設計SPD時,需要遵循ISO 26262標準,并考慮故障檢測和診斷、安全數據傳輸、安全控制和監控等方面的要求。

5.2 功能安全庫(Safety Library)

車規MCU的功能安全庫(Safety Library)是為了滿足汽車電子系統的功能安全要求而設計的軟件模塊集合。它提供了一系列的功能安全功能和算法,用于監測和控制系統的運行,以確保系統在發生故障時能夠安全地進入故障狀態或安全地恢復正常工作。

9e9e4816-6d57-11ee-939d-92fbcf53809c.png

車規MCU的功能安全庫的核心功能包括:

故障檢測和診斷:功能安全庫可以監測系統的各個部分是否正常工作,并在發現故障時進行診斷和報警。它可以檢測硬件故障、軟件錯誤和通信故障等,并提供相應的故障診斷信息。

故障容錯和恢復:功能安全庫可以通過冗余設計和錯誤處理算法來提高系統的容錯性。它可以檢測和糾正錯誤,或者在發生故障時切換到備用模式,以確保系統的可靠性和穩定性。

安全監控和保護:功能安全庫可以監控系統的安全狀態,并采取相應的措施來保護系統免受潛在的安全威脅。它可以檢測和防止未經授權的訪問、數據篡改和惡意攻擊等。

安全通信和數據保護:功能安全庫可以提供安全的通信協議和加密算法,以保護系統中傳輸的數據的機密性和完整性。它可以防止數據泄露、篡改和劫持等安全風險。

車規MCU的功能安全庫是為了確保汽車電子系統在發生故障時能夠安全地進入故障狀態或安全地恢復正常工作而設計的軟件模塊集合。它提供了故障檢測和診斷、故障容錯和恢復、安全監控和保護、安全通信和數據保護等核心功能,以提高系統的可靠性和安全性。

軟件開發工具鏈(Toolchain)

6.1 集成開發環境(IDE)

集成開發環境(IDE)是一種集成了多個軟件開發工具的平臺,用于幫助開發人員進行軟件開發和調試。IDE的主要作用包括:

代碼編輯:IDE提供了一個編輯器,用于編寫和編輯源代碼。編輯器通常具有代碼自動完成、語法高亮和錯誤檢查等功能,以提高開發效率和代碼質量。

編譯和構建:IDE集成了編譯器和構建工具,可以將源代碼編譯成可執行文件或庫。IDE可以自動執行編譯和構建過程,并提供錯誤和警告信息,幫助開發人員及時發現和修復問題。

調試:IDE提供了調試器,用于在開發過程中跟蹤和調試程序的執行。調試器可以設置斷點、單步執行、查看變量和內存狀態等,幫助開發人員定位和解決程序中的錯誤。

版本控制:IDE通常集成了版本控制系統,如Git或SVN,用于管理和跟蹤代碼的版本和變更。開發人員可以方便地進行代碼提交、分支管理和合并操作。

項目管理:IDE提供了項目管理功能,可以組織和管理多個源文件、庫和依賴項。開發人員可以輕松地創建、導入和管理項目,以及配置項目的構建選項和依賴關系。

自動化工具:IDE還可以集成其他自動化工具,如靜態代碼分析工具、單元測試框架和性能分析工具,以幫助開發人員提高代碼質量和性能。

集成開發環境(IDE)提供了一個集成的平臺,使開發人員能夠更高效地進行軟件開發、調試和管理。它的目標是提供一個統一的界面和工具集,簡化開發流程,提高開發效率和代碼質量。

6.1.1 基于GNU工具鏈 + Eclipse/VSCode IDE

9eb957d2-6d57-11ee-939d-92fbcf53809c.png

VSCode和Eclipse IDE都是常用的集成開發環境(IDE),用于編寫和調試代碼。它們各自有一些優勢和劣勢,下面是對它們進行的簡要對比:

9ec84ee0-6d57-11ee-939d-92fbcf53809c.png

VSCode的優勢:

輕量級:VSCode是一個輕量級的編輯器,啟動速度快,占用系統資源少,適合于資源有限的環境。

插件生態豐富:VSCode擁有龐大的插件市場,可以根據需要安裝各種插件,擴展功能和支持多種編程語言。

強大的調試功能:VSCode提供了強大的調試功能,可以方便地進行斷點調試、變量監視等操作。

跨平臺支持:VSCode支持多種操作系統,包括Windows、Linux和Mac OS,可以在不同平臺上進行開發和調試。

Eclipse IDE的優勢:

功能全面:Eclipse IDE是一個功能非常全面的IDE,內置了豐富的功能和工具,包括代碼編輯、調試、版本控制等。

集成度高:Eclipse IDE集成了多種開發工具和框架,如Java開發工具、Web開發工具等,可以滿足多種開發需求。

社區支持強大:Eclipse IDE有一個龐大的社區,提供了大量的教程、文檔和插件,方便開發者學習和解決問題。

可擴展性強:Eclipse IDE支持插件的開發和集成,開發者可以根據需要自定義和擴展IDE的功能。

不足之處:

VSCode的功能相對較簡單,不如Eclipse IDE功能全面。

Eclipse IDE啟動速度較慢,占用系統資源較多。

VSCode對于一些復雜的項目,可能需要借助插件來提供更多的功能和支持。

選擇使用VSCode還是Eclipse IDE,主要取決于個人的偏好、項目需求和開發環境。如果對輕量級和快速啟動有較高要求,且需要豐富的插件支持,可以選擇VSCode。如果需要一個功能全面、集成度高的IDE,且對啟動速度和系統資源占用沒有太大要求,可以選擇Eclipse IDE。

目前,VSCode的輕量化靈活設計以及豐富的擴展插件,對開發者的要求比Eclipse要低不少。越來越多的車規MCU廠商選擇VSCode作為其應用軟件開發IDE。

6.1.2 IAR IDE

IAR IDE(Integrated Development Environment)是由IAR Systems開發的一款集成開發環境,用于嵌入式系統的軟件開發。它提供了一整套工具和功能,方便開發人員進行嵌入式軟件的編寫、調試和部署。

9eda3344-6d57-11ee-939d-92fbcf53809c.png

IAR IDE具有以下特點和功能:

編譯器和調試器:IAR IDE內置了高度優化的編譯器,支持多種嵌入式處理器架構。它還提供了強大的調試器,可以實時監控程序的執行狀態,進行斷點調試和變量查看等操作。

代碼編輯器:IAR IDE提供了功能強大的代碼編輯器,支持代碼自動完成、語法高亮顯示、代碼折疊等功能,提高了開發效率。

項目管理:IAR IDE可以管理多個項目,方便開發人員進行項目的切換和管理。它還提供了項目模板和代碼生成器,加快了項目的啟動和開發過程。

集成開發環境:IAR IDE集成了多個工具和插件,如版本控制系統、性能分析器、代碼覆蓋率工具等,方便開發人員進行全面的軟件開發和測試。

跨平臺支持:IAR IDE支持多種操作系統,包括Windows、Linux和macOS,可以在不同的開發環境中使用。

6.1.3 GHS MULTI IDE

GHS MULTI IDE是一個集成開發環境,用于嵌入式系統的軟件開發。

9ee7a7c2-6d57-11ee-939d-92fbcf53809c.png

其主要功能特性包括:

支持多種編程語言:GHS MULTI IDE支持多種編程語言,包括C、C++匯編語言。

2. 代碼編輯器:GHS MULTI IDE提供了一個強大的代碼編輯器,支持自動補全、代碼折疊、語法高亮等功能。

3. 調試器:GHS MULTI IDE集成了一個強大的調試器,可以幫助開發人員快速定位和修復代碼中的錯誤。

4. 代碼分析工具:GHS MULTI IDE提供了一系列代碼分析工具,可以幫助開發人員檢測代碼中的潛在問題,如內存泄漏、未初始化的變量等。

5. 版本控制:GHS MULTI IDE支持多種版本控制工具,如Git、SVN等。

6. 代碼生成器:GHS MULTI IDE可以生成可執行文件、庫文件、靜態鏈接庫等。

7. 支持多種開發板:GHS MULTI IDE支持多種開發板,包括ARM、MIPS、PowerPC等。

8. 自定義配置:GHS MULTI IDE提供了自定義配置功能,可以根據項目的需求進行配置,從而提高開發效率。

6.1.4 Keil MDK IDE

Keil公司是一家業界領先的微控制器(MCU)軟件開發工具的獨立供應商。Keil公司由兩家私人公司聯合運營,分別是德國慕尼黑的Keil Elektronik GmbH和美國德克薩斯的Keil Software Inc。Keil公司制造和銷售種類廣泛的開發工具,包括ANSI C編譯器、宏匯編程序、調試器、連接器、庫管理器、固件和實時操作系統核心(real-time kernel)。有超過10萬名微控制器開發人員在使用這種得到業界認可的解決方案。其Keil C51編譯器自1988年引入市場以來成為事實上的行業標準,并支持超過500種8051變種。Keil公司在2005年被ARM公司收購。

Keil公司2005年由ARM公司收購。其兩家公司分別更名為ARM Germany GmbH和ARM Inc。

Keil IDE是一種集成開發環境,由Keil Software公司開發。它是一種專門用于嵌入式系統開發的工具,廣泛應用于汽車電子、工業控制、通信等領域。

9f02de48-6d57-11ee-939d-92fbcf53809c.png

Keil MDK IDE提供了一套完整的開發工具鏈,包括編譯器、調試器、仿真器等。它支持多種編程語言,如C、C++和匯編語言,并且兼容多種嵌入式處理器架構,如ARM、8051等。

9f18c910-6d57-11ee-939d-92fbcf53809c.png

Keil MDK IDE具有以下特點:

用戶友好的界面:Keil MDK IDE提供了直觀的圖形界面,使開發者可以方便地進行代碼編寫、調試和測試。它還提供了豐富的工具欄、菜單和快捷鍵,以提高開發效率。

強大的編譯器:Keil MDK IDE內置了高度優化的編譯器,能夠生成高效的機器代碼。它支持多種編譯選項和優化級別,以滿足不同應用的需求。

全面的調試功能:Keil MDK IDE提供了強大的調試功能,包括單步執行、斷點調試、變量監視等。它支持多種調試接口,如JTAG、SWD等,以便與不同的目標硬件進行連接和調試。

豐富的仿真器支持:Keil MDK IDE支持多種仿真器,如Keil ULINK系列、J-Link等。這些仿真器能夠與目標硬件進行連接,實現實時調試和仿真。

Keil MDK IDE是一款功能強大、易于使用的嵌入式系統開發工具,為開發者提供了一站式的解決方案,能夠大大簡化開發流程,提高開發效率。

9f2b4676-6d57-11ee-939d-92fbcf53809c.png

6.2 調試器和量產工具(離線/批量Flash編程器)

MCU的調試器和量產工具的作用主要有以下幾個方面:

調試器:MCU的調試器是一種硬件設備,用于與MCU進行通信,讀取和寫入MCU內部的寄存器、內存等信息,以便在開發過程中進行調試和測試。調試器可以幫助開發者快速定位程序中的問題,如程序崩潰、死循環、數據錯誤等。

2. 量產工具:MCU的量產工具是一種軟件工具,用于將開發完成的MCU程序燒錄到芯片中,以便進行批量生產。量產工具可以自動化地進行燒錄、測試、校準等操作,提高生產效率和產品質量。

3. 調試功能:調試器和量產工具通常會提供一些調試功能,如單步執行、斷點調試、變量監視等,以幫助開發者更好地調試和測試MCU程序。

4. 支持多種接口和協議:調試器和量產工具通常支持多種接口和協議,如JTAG、SWD、ISP等,以適應不同的MCU芯片和開發環境。

5. 支持多種操作系統:調試器和量產工具通常支持多種操作系統,如Windows、Linux、Mac OS等,以適應不同的開發環境和開發者需求。

總的來說,MCU的調試器和量產工具的作用是幫助開發者進行MCU程序的調試和測試,以及進行批量生產。調試器和量產工具可以提供多種功能和支持多種接口和協議,以適應不同的MCU芯片和開發環境。

6.3 圖形化配置工具

9f765e7c-6d57-11ee-939d-92fbcf53809c.png

6.3.1 SDK配置工具

SDK配置和代碼生成工具的作用主要有以下幾個方面:

簡化配置過程:SDK配置工具可以提供一個可視化的界面,讓開發者通過簡單的操作完成SDK的配置,避免繁瑣的手動配置過程。

2. 提高配置準確性:配置工具可以提供合理的默認配置選項,并進行參數校驗,避免因配置錯誤而導致的問題。

3. 快速生成代碼:代碼生成工具可以根據配置選項自動生成SDK相關的代碼,減少手動編寫代碼的工作量,提高開發效率。

4. 規范化代碼結構:代碼生成工具可以根據一定的規范和模板生成代碼,保證代碼結構的一致性和可維護性。

5. 提供示例代碼:配置和代碼生成工具可以提供一些示例代碼,幫助開發者快速上手和理解SDK的使用方式。

6. 支持版本管理:配置和代碼生成工具可以支持SDK的版本管理,方便開發者在不同版本之間切換和管理。

總的來說,SDK配置和代碼生成工具的作用是簡化配置過程、提高配置準確性、快速生成代碼、規范化代碼結構、提供示例代碼和支持版本管理,從而提高開發效率、減少錯誤和提升代碼質量。

6.3.2 MCAL配置工具

MCAL(Microcontroller Abstraction Layer)配置工具是用于配置和生成MCAL驅動程序的工具。它的工作原理主要包括以下幾個步驟:

9f8f1084-6d57-11ee-939d-92fbcf53809c.png

配置參數選擇:用戶通過配置工具選擇需要使用的MCAL驅動程序和相關參數??梢愿鶕唧w需求選擇不同的驅動程序和配置選項。

2. 參數設置:配置工具提供了用戶界面,用戶可以通過界面設置各個驅動程序的參數,如時鐘頻率、引腳配置、中斷優先級等。

3. 參數校驗:配置工具會對用戶設置的參數進行校驗,確保參數的合法性和正確性。例如,檢查時鐘頻率是否在允許范圍內,檢查引腳配置是否沖突等。

4. 代碼生成:配置工具根據用戶的配置參數,生成相應的MCAL驅動程序的代碼。生成的代碼包括初始化函數、配置函數、中斷處理函數等。

5. 代碼導出:生成的代碼可以導出為可執行文件或者源代碼文件,供用戶在實際項目中使用。

MCAL配置工具的主要功能包括:

驅動程序選擇和配置:用戶可以選擇需要使用的MCAL驅動程序,并設置相應的參數,以滿足具體的需求。

2. 參數校驗和合規性檢查:配置工具可以對用戶設置的參數進行校驗,確保參數的合法性和正確性,避免配置錯誤導致的問題。

3. 代碼生成和導出:配置工具可以根據用戶的配置參數,生成相應的MCAL驅動程序的代碼,并將代碼導出為可執行文件或源代碼文件。

4. 用戶界面和交互:配置工具通常提供友好的用戶界面,使用戶能夠方便地進行參數設置和配置,提高配置效率和準確性。

總之,MCAL配置工具通過用戶界面和參數設置,生成符合用戶需求的MCAL驅動程序的代碼,并提供參數校驗和合規性檢查等功能,以幫助用戶更快速、準確地配置和生成MCAL驅動程序。

6.3.3 中間件軟件配置工具

中間件軟件包含的各種總線通信協議、標定和中斷協議等都有很多配置參數,需要生成很多配置結構體,通過圖形化配置工具的配置向導和參數檢查、參數功能提示及配置代碼生成等功能可以幫助客戶高效準確地使用這些中間件軟件。

中間件軟件的配置工具工作原理與上面介紹的SDK和MCAL配置工具類似,此處不再贅述。

如下是一個LIN stack的配置工具的實現架構,配置工具(Processor Expert)通過解析LIN描述文件(LDF)獲取應用程序對LIN通信的總線網絡和信號的配置信息,然后生成生成當前LIN節點的配置數據和LIN stack的配置數據,以C文件中的配置結構體和頭文件中的宏定義的形式產生配置結果,最終與LIN stack和LIN driver一起編譯鏈接生成滿足應用需求能夠在目標MCU上運行的LIN協議。

9faa2e46-6d57-11ee-939d-92fbcf53809c.png

6.4 電機調試和參數標定可視化工具

通常為了幫助用戶更方便、快速地進行電機的調試和標定工作,車規MCU廠商通過電機調試和參數標定可視化工具提供以下功能:

9fb727e0-6d57-11ee-939d-92fbcf53809c.png

實時數據監控:可以實時監控電機的運行狀態,包括電流、轉速、溫度等參數,并以圖表或曲線的形式展示。

2. 參數設置:可以通過工具設置電機的各種參數,如電流限制、速度限制、加速度限制等,以便進行調試和標定。

3. 數據記錄和導出:可以記錄電機運行過程中的數據,并將數據導出為文件,以便后續分析和處理。

4. 參數標定:可以通過工具對電機的各種參數進行標定,如電機的電阻、電感、轉矩常數等,以提高電機的控制性能。

5. 故障診斷:可以通過工具對電機運行過程中的故障進行診斷,如過流、過溫、過載等,以便及時采取措施進行修復。

6. 可視化界面:工具通常具有友好的可視化界面,使用戶能夠直觀地查看和操作電機的調試和標定過程。

總結

車規MCU的軟件開發生態是其應用功能軟件開發的基礎。

一方面,隨著半導體摩爾定理的發展,車規MCU芯片的規模進入到55nm及更先進工藝制程后,CPU內核數量和外設種類及數量集成越來越多,片上存儲器越來越大,車規MCU的處理性能和外設功能越來越復雜/強大,芯片的數據手冊和參考手冊長達數千頁,如果還按照十年前的開發模式,每個客戶自己工程師通過編程C代碼讀寫寄存器的方式去開發新一代車規MCU的底層驅動程序,將十分費時費力,且代碼無法實現跨硬件平臺開發,實現復用;

另一方面,伴隨新一代汽車電子電器架構(EEA)的落地和逐漸普及,汽車電子應用軟件變得越來越復雜,各類通信總線的協議棧、標定和診斷以及電機控制FOC這類與硬件不相關的通用算法和軟性協議棧構成的中間件軟件(Middleware)使用也變得十分廣泛,提高這些中間件軟件的復用,可以大大縮短項目開發周期,并保證代碼質量。

本文介紹的車規MCU的軟件開發生態涉及的AUTOSAR軟件、底層驅動、中間件協議棧軟件、配置工具,編譯/鏈接/調試工具鏈和集成開發環境(IDE)眾多,并非所有軟件都是車規MCU廠商自研,他們通常會與行業里面的第三方專業合作伙伴合作,一起來為客戶提供完整的車規MCU軟件開發生態:

車規MCU軟件生態分類 驅動/協議棧/工具鏈 是否車規MCU廠商提供 第三方合作伙伴(Vendor)
AUTOSAR軟件 基礎軟件
(BSW)
微控制器抽象層驅動(MCAL) N/A
服務層軟件(OSCAN/LIN stack等) × Vector, ETAS, EB, 普華、東軟、恒潤等
ECU抽象層軟件 × Vector, ETAS, EB, 普華、東軟、恒潤等
專用外設復雜驅動(CDD) N/A
運行時環境(RTE) × Vector, ETAS, EB, 普華、東軟、恒潤等
應用軟件(ASW) × Vector, ETAS, EB, 普華、東軟、恒潤等
功能庫(Library) × Vector, ETAS, EB, 普華、東軟、恒潤等
Non-AUTOSAR軟件
(SDK)
外設驅動 底層驅動(LLD) N/A
硬件抽象層(HAL/PAL) N/A
中間件軟件
(Middleware)
CAN協議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
LIN協議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
UDS協議棧 ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
XCP協議棧 ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
TCP/IP協議棧 √(LwIP) Vector, ETAS, EB, 普華、東軟、恒潤等
AVB協議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
TSN協議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
電機驅動庫 N/A
啟動文件(Start-Up code)和鏈接文件(Linker file) N/A
操作系統(OS) AUTOSAR OS × Vector, ETAS, EB, 普華、東軟、恒潤等
Non-AUTOSAR OS FreeRTOS √(porting) N/A
其他RTOS √(porting) QNX, Keil RTX, GHS Integrity OS
啟動及信息安全軟件(Security SW) 安全啟動固件(Secure Boot Firmware) N/A
硬件安全模塊固件(HSM Firmware) ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
啟動加載程序(bootloader) ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
遠程固件更新程序(FOTA) ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
功能安全軟件
(FuSa SW)
功能安全外設驅動(SPD) N/A
功能安全庫(Safety Library) √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
軟件開發工具鏈(Toolchain) 集成開發環境
(IDE)
GNU based Eclipse/VSCode IDE N/A
IAR ×(提供patch) IAR
Keil MDK ×(提供patch) ARM/Keil
GHS MULTI ×(提供patch) Greenhill
調試器和量產工具(離線/批量Flash編程器) ×(提供Flash算法) Segger, IAR, Keil, Greenhill
圖形化配置和代碼自動生成工具
(Config Tool)
SDK配置工具 ×/√ N/A
MCAL配置工具 ×/√ Vector, ETAS, EB, 普華、東軟、恒潤等
中間件軟件配置工具 ×/√ Vector, ETAS, EB, 普華、東軟、恒潤等
電機調試和參數標定可視化工具 √(optional) Vector, ETAS,恒潤等

如下是據我所知目前國產車規MCU的頭部公司 - 蘇州云途半導體的YTM32系列32位車規MCU芯片的軟件開發生態建設情況供大家參考(其軟件生態是做得最為完善的公司之一,強烈建議有車規MCU國產替代需求的讀者聯系原廠技術支持和銷售,詳細了解評估一下,尤其是其圖形化配置工具YCT,整合了云途SDK、MCAL及很多中間件軟件的配置、參數檢查和驅動代碼及應用工程自動生成功能,使用十分方便高效):

<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
車規MCU軟件生態分類 驅動/協議棧/工具鏈 云途自研 第三方合作伙伴(Vendor)提供
AUTOSAR軟件 基礎軟件
(BSW)
微控制器抽象層驅動(MCAL) N/A
服務層軟件(OSCAN/LIN stack等) × Vector, ETAS, 普華、東軟、恒潤等
ECU抽象層軟件 × Vector, ETAS, 普華、東軟、恒潤等
專用外設復雜驅動(CDD) N/A
運行時環境(RTE) × Vector, ETAS, 普華、東軟、恒潤等
應用軟件(ASW) × Vector, ETAS, 普華、東軟、恒潤等
功能庫(Library) × Vector, ETAS, 普華、東軟、恒潤等
Non-AUTOSAR軟件
(SDK)
外設驅動 底層驅動(LLD) N/A
硬件抽象層(HAL/PAL) N/A
中間件軟件
(Middleware)
CAN協議棧 √(Ref.SW) Vector, ETAS, 普華、東軟、恒潤等
LIN協議棧 √(Ref.SW) Vector, ETAS, 普華、東軟、恒潤等
UDS協議棧 √(Ref.SW) Vector, ETAS, 普華、東軟、恒潤等
XCP協議棧 √(Ref.SW) Vector, ETAS, 普華、東軟、恒潤等
TCP/IP協議棧 √(LwIP) Vector, ETAS, 普華、東軟、恒潤等
AVB協議棧 √(optional) Vector, ETAS, 普華、東軟、恒潤等
TSN協議棧 √(optional) Vector, ETAS, 普華、東軟、恒潤等
電機驅動庫 N/A
啟動文件(Start-Up code)和鏈接文件(Linker file) √(GCC/IAR/Keil) N/A
操作系統(OS) AUTOSAR OS × Vector, ETAS, 普華、東軟、恒潤等
Non-AUTOSAR OS FreeRTOS √(porting) 聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    447

    文章

    48292

    瀏覽量

    411486
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16130

    瀏覽量

    344836
  • AUTOSAR
    +關注

    關注

    9

    文章

    333

    瀏覽量

    21268
  • ecu
    ecu
    +關注

    關注

    14

    文章

    833

    瀏覽量

    53990
  • 汽車軟件
    +關注

    關注

    0

    文章

    67

    瀏覽量

    3072

原文標題:漫談車規MCU之汽車軟件生態全解析

文章出處:【微信號:汽車電子expert成長之路,微信公眾號:汽車電子expert成長之路】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    MCU產品、軟件、生態系統的演變及未來展望

    我們的日常生活。單片機的發展從8位開始,目前8位單片機仍占有較高市場份額,在很多應用中發揮重要作用,但32位的ARM產品顯然成長更快。從8位到32位,不僅僅是位數和CPU內核的變化,在軟件開發、工具
    發表于 01-19 15:17

    ECU/MCU軟件開發

    汽車電子技術——ECU/MCU軟件開發1. ECU/MCU軟件開發知識儲備1.1 ECU/MCU相關基礎知識1.2 C語言編程知識1.3 外
    發表于 09-10 08:13

    基于MCU的嵌入式軟件開發

    關注+星標公眾號,不錯過精彩內容作者 | strongerHuang微信公眾號|嵌入式專欄基于MCU的嵌入式軟件開發,可能在某些情況下沒有多余存儲空間,從而沒有在本地有效保存調試和日志...
    發表于 11-05 06:39

    RISC-V開發生態MCU芯片的相關資料推薦

    近兩年,伴隨著AIoT的蓬勃發展、錯綜復雜的政經環境,開源RISC-V指令集架構受到廣泛關注,生態日益完善,但其應用發展之路還面臨諸多挑戰。本期專題圍繞RISC-V開發生態MCU 芯片...
    發表于 02-15 07:25

    MCU缺貨持續2年,上海航芯助力國產市場

    MCU是傳統燃油車的重要芯片之一,在電動領域,MCU也有著廣泛的應用,且隨著汽車電子化的持續發展,MCU的市場規模還將隨之持續擴大,據
    發表于 02-03 12:00

    量產發布!國民技術首款MCU N32A455上市

    2023年2月20日,國民技術在深圳正式推出兼具通用性、硬件安全性和級高可靠性等優勢特性的N32A455系列車MCU并宣布量產。這是繼N32S032
    發表于 02-20 17:44

    新唐送28pin MCU開發

    新唐送28pin MCU開發板 https://bbs.21ic.com/icview-3321412-1-1.html https://www.nuvoton.com/boar
    發表于 08-18 09:41

    高可靠、高性能MCU, 滿足車身控制多元應用

    發展,但8 位MCU因具備成本低、功耗低、能效比高、便于開發,其性能已可滿足大部分場景需要,因此低位數產品依然難以被取代。笙泉MCU(M
    發表于 09-15 12:04

    武漢芯源半導體首款MCU,CW32A030C8T7通過AEC-Q100測試考核

    HBM ESD、MM ESD、CDM ESD、Latch up@105℃全面達到JEDEC最高等級。 全面、高效的開發配套支持 CW32A030C8T7MCU配套提供樣品和
    發表于 11-30 15:47

    安全軟件開發生命周期與業務安全

    安全軟件開發生命周期與業務安全
    發表于 09-08 14:11 ?11次下載
    安全<b class='flag-5'>軟件開發生</b>命周期與業務安全

    RX MCU軟件開發技術干貨分享

    讓我們開始RX MCU軟件開發吧! 第一步從e2 studio開始 作者:Yamagata,Hisayo Principal Specialist, IoT Product Marketing
    的頭像 發表于 08-09 14:12 ?2112次閱讀
    RX <b class='flag-5'>MCU</b>的<b class='flag-5'>軟件開發</b>技術干貨分享

    2021華為開發者大會 Model Arts軟件開發生產線與隱私保護戰略

    2021華為開發者大會上,Model Arts軟件開發生產線,全面開放場景化云服務。
    的頭像 發表于 10-22 16:47 ?2460次閱讀
    2021華為<b class='flag-5'>開發</b>者大會 Model Arts<b class='flag-5'>軟件開發生</b>產線與隱私保護戰略

    云享???| 軟件開發必讀!華為云軟件開發生產線CodeArts深度體驗指南

    這也是華為云軟件開發生產線CodeArts的初衷,集華為30多年來在研發上積累的經驗、流程、方法,打造出一站式、全流程、安全可信的軟件開發生產線,開箱即用,從而將枯燥的開發工作變成煥發開發
    的頭像 發表于 04-19 00:45 ?723次閱讀
    云享???| <b class='flag-5'>軟件開發</b>必讀!華為云<b class='flag-5'>軟件開發生</b>產線CodeArts深度體驗指南

    200元京東卡,邀您成為軟件開發生產線 CodeArts體驗官!

    華為云 軟件開發生產線CodeArts 是集華為研發實踐、前沿研發理念、先進研發工具為一體的研發云平臺。 內置華為多年研發最佳實踐,面向開發者提供研發工具服務,讓軟件開發 簡單高效。 - 軟件
    的頭像 發表于 04-19 00:45 ?413次閱讀
    200元京東卡,邀您成為<b class='flag-5'>軟件開發生</b>產線 CodeArts體驗官!

    軟件開發必讀!華為云軟件開發生產線 CodeArts 深度體驗指南

    7 月 7 日-9 日,隨著華為開發者大會 2023 的到來,華為云軟件開發生產線 CodeArts 也走進了很多開發者的視野。 開發者都比較好奇,什么是華為云 CodeArts?Co
    的頭像 發表于 08-25 13:43 ?854次閱讀
    <b class='flag-5'>軟件開發</b>必讀!華為云<b class='flag-5'>軟件開發生</b>產線 CodeArts 深度體驗指南
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>