0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

車規(guī)MCU的軟件開發(fā)生態(tài)解析

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

引言

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

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

AUTOSAR架構(gòu)

AUTOSAR(AUTomotive Open System ARchitecture)是一種開放的汽車電子系統(tǒng)架構(gòu),旨在提供一種標(biāo)準(zhǔn)化的方法來開發(fā)和管理汽車電子系統(tǒng)的軟件。AUTOSAR架構(gòu)的目標(biāo)是實現(xiàn)汽車電子系統(tǒng)的模塊化可重用可擴展,以提高開發(fā)效率和系統(tǒng)的可靠性。

AUTOSAR架構(gòu)由三個主要的層次組成:應(yīng)用層(Application Layer)、運行時環(huán)境層(Runtime Environment)和基礎(chǔ)設(shè)施層(BSW)。

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

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

運行時環(huán)境層提供了AUTOSAR系統(tǒng)的運行時支持。它包括操作系統(tǒng)通信協(xié)議棧、服務(wù)和管理功能。運行時環(huán)境層負(fù)責(zé)管理系統(tǒng)資源、調(diào)度任務(wù)、處理通信和數(shù)據(jù)傳輸?shù)取?/p>

基礎(chǔ)軟件層,也稱作基礎(chǔ)設(shè)施層,提供了AUTOSAR系統(tǒng)的基礎(chǔ)設(shè)施支持。它包括通信總線、診斷和調(diào)試功能、存儲管理和配置管理等。基礎(chǔ)設(shè)施層提供了系統(tǒng)的硬件和軟件基礎(chǔ)設(shè)施,以支持系統(tǒng)的功能和性能。

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

AUTOSAR架構(gòu)的優(yōu)勢在于提供了一種標(biāo)準(zhǔn)化的方法來開發(fā)和管理汽車電子系統(tǒng)的軟件。它提供了模塊化、可重用和可擴展的設(shè)計,使開發(fā)人員能夠更高效地開發(fā)和維護汽車電子系統(tǒng)。此外,AUTOSAR架構(gòu)還提供了一種標(biāo)準(zhǔn)化的接口和通信協(xié)議,使不同的汽車電子系統(tǒng)能夠互相通信和協(xié)作。

1.1 自適應(yīng)平臺(AUTOSAR AP)

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

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

AUTOSAR AP的核心特點包括:

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

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

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

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

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

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

1.2 經(jīng)典平臺(AUTOSAR CP)

AUTOSAR經(jīng)典平臺(AUTOSAR CP)是AUTOSAR軟件架構(gòu)的一種實現(xiàn),旨在提供一種標(biāo)準(zhǔn)化的方法來開發(fā)和管理汽車電子系統(tǒng)的軟件。AUTOSAR CP定義了汽車電子系統(tǒng)的軟件組件、運行時環(huán)境和通信機制,以實現(xiàn)模塊化、可重用和可擴展的系統(tǒng)開發(fā)。

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

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

運行時環(huán)境層提供了AUTOSAR系統(tǒng)的運行時支持,包括任務(wù)管理、內(nèi)存管理、通信管理等功能。運行時環(huán)境層負(fù)責(zé)調(diào)度和管理軟件組件的執(zhí)行,并提供了通信機制,使軟件組件能夠相互交互。

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

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

總的來說,AUTOSAR CP提供了一種標(biāo)準(zhǔn)化的軟件架構(gòu),使汽車電子系統(tǒng)的開發(fā)和管理更加高效和可靠。它促進了軟件的模塊化和可重用性,提高了系統(tǒng)的可擴展性和靈活性。

1.2.1 基礎(chǔ)軟件(BSW)

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

標(biāo)準(zhǔn)化接口:BSW定義了標(biāo)準(zhǔn)化的接口和協(xié)議,使不同供應(yīng)商開發(fā)的軟件模塊可以互相交互和協(xié)作。這樣一來,汽車制造商可以更容易地集成不同的軟件組件,提高開發(fā)效率和系統(tǒng)的可重用性。

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

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

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

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

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

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

1.2.1.1 微控制器抽象層(MCAL)

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

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

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

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

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

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

PWM控制:MCAL提供了對脈沖寬度調(diào)制器的控制接口,用于控制電機驅(qū)動、LED亮度調(diào)節(jié)等功能。

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

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

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

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

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

1.2.1.2 服務(wù)層(Service Layer)

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

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

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

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

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

定時服務(wù):服務(wù)層提供了定時功能,用于實現(xiàn)任務(wù)的調(diào)度和時間觸發(fā)的事件處理。它支持周期性任務(wù)和事件觸發(fā)任務(wù)的管理,以及時間同步和時鐘管理的功能。

電源管理服務(wù):服務(wù)層提供了電源管理功能,用于管理ECU的電源供應(yīng)和功耗控制。它支持電源狀態(tài)的管理和切換,以及低功耗模式的管理。

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

識別和配置服務(wù):服務(wù)層提供了識別和配置功能,用于識別和配置連接到ECU的外部設(shè)備和傳感器。它支持設(shè)備的自動識別和配置,以及設(shè)備的狀態(tài)監(jiān)測和管理。

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

1.2.1.3 ECU抽象層(ECU Abstraction Layer)

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

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

ECU抽象層的功能包括:

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

通信抽象:ECU抽象層提供了統(tǒng)一的通信接口,使得應(yīng)用程序可以通過標(biāo)準(zhǔn)化的方式與其他ECU進行通信,包括CAN、LIN、FlexRay等總線協(xié)議。

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

電源管理抽象:ECU抽象層提供了對電源管理的抽象,包括電源狀態(tài)管理、低功耗模式管理等,以實現(xiàn)對電源的有效管理和節(jié)能。

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

通過ECU抽象層,應(yīng)用程序可以以一種統(tǒng)一的方式訪問和控制底層硬件資源,從而實現(xiàn)應(yīng)用程序的可移植性和可重用性。同時,ECU抽象層還提供了一些標(biāo)準(zhǔn)化的接口和功能,以簡化開發(fā)過程并提高系統(tǒng)的可靠性和可維護性。

1.2.1.4 復(fù)雜驅(qū)動(CDD)

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

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

在將CDD集成到AUTOSAR架構(gòu)中時,設(shè)計人員應(yīng)考慮以下幾點:

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

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

描述與其他BSW模塊、SchM和Rte的關(guān)系和需求,例如從NvM獲取的內(nèi)存塊、配置的臨界區(qū)等。

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

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

描述Dem錯誤、可選的Det錯誤、調(diào)試變量等。

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

描述內(nèi)存映射需求,如Flash、RAM的使用情況。

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

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

提供示例。

CDD的實現(xiàn)需要遵守AUTOSAR的一些約束,包括:

遵守輸入規(guī)范。

使用SchM或操作系統(tǒng)機制來保護關(guān)鍵資源。

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

可使用內(nèi)存映射機制來處理內(nèi)存段。

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

關(guān)于CDD的文件結(jié)構(gòu),建議至少提供以下文件:

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

CDD__Irq.c:中斷函數(shù)的文件。

CDD__Callout.c:回調(diào)函數(shù)的文件。

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

CDD__PBcfg.c:構(gòu)建時從配置生成的C對象的文件。

1.2.2 運行時環(huán)境(RTE)

AUTOSAR CP運行時環(huán)境(RTE)是AUTOSAR架構(gòu)中的核心組件,它實現(xiàn)了AUTOSAR虛擬功能總線(VFB)的接口,并提供了通信基礎(chǔ)設(shè)施和訪問基礎(chǔ)軟件組件(如操作系統(tǒng))的服務(wù)。RTE的功能和意義如下:

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

通信基礎(chǔ)設(shè)施:RTE負(fù)責(zé)管理應(yīng)用軟件組件之間的通信。它提供了消息傳遞機制和事件觸發(fā)機制,使得應(yīng)用軟件組件可以相互發(fā)送和接收消息,實現(xiàn)數(shù)據(jù)的交換和共享。

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

組件映射和調(diào)度:RTE負(fù)責(zé)將應(yīng)用軟件組件映射到具體的ECU上,并進行任務(wù)調(diào)度。它根據(jù)系統(tǒng)配置和約束,將應(yīng)用軟件組件分配到不同的ECU上,并確保系統(tǒng)按照預(yù)期的方式運行。

標(biāo)準(zhǔn)化接口:RTE定義了與AUTOSAR OS和應(yīng)用軟件組件之間的標(biāo)準(zhǔn)化接口。這些接口確保了不同組件之間的互操作性和兼容性,簡化了系統(tǒng)的開發(fā)和集成過程。

RTE的意義在于提供了一種標(biāo)準(zhǔn)化的方法來開發(fā)和管理汽車電子系統(tǒng)的軟件。它實現(xiàn)了模塊化、可重用和可擴展的架構(gòu),提高了開發(fā)效率和系統(tǒng)的可靠性。同時,RTE還支持汽車通信協(xié)議的標(biāo)準(zhǔn)化,使得不同的汽車電子系統(tǒng)可以進行互聯(lián)和通信。通過使用RTE,汽車制造商和供應(yīng)商可以更加高效地開發(fā)和集成汽車電子系統(tǒng),降低開發(fā)成本和時間。

1.2.3 應(yīng)用軟件(ASW)

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

1.2.4 功能庫(Library)

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

1.3 AUTOSAR軟件開發(fā)流程簡介

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

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

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

組件開發(fā):在這個階段,根據(jù)架構(gòu)設(shè)計的要求,開發(fā)和實現(xiàn)各個軟件組件。這包括編寫和調(diào)試軟件代碼,以及進行單元測試和集成測試。

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

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

發(fā)布和部署:在這個階段,將經(jīng)過驗證和驗證的AUTOSAR軟件發(fā)布和部署到實際的汽車電子系統(tǒng)中。這包括將軟件加載到目標(biāo)硬件平臺上,并進行系統(tǒng)級測試和調(diào)試。

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

AUTOSAR軟件開發(fā)流程的目標(biāo)是提高軟件開發(fā)的效率和質(zhì)量,實現(xiàn)軟件的可重用性和可維護性。通過遵循這個流程,可以更好地管理軟件開發(fā)過程,減少錯誤和風(fēng)險,并提高汽車電子系統(tǒng)的性能和可靠性。

Non-AUTOSAR軟件

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

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

2.1 軟件開發(fā)套件(SDK)

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

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

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

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

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

操作系統(tǒng)(OS):提供了多任務(wù)管理、任務(wù)調(diào)度、內(nèi)存管理等功能,以支持多任務(wù)應(yīng)用程序的開發(fā)。常見的車規(guī)MCU操作系統(tǒng)包括AUTOSAR OS和FreeRTOS等。

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

工具鏈:包括編譯器、調(diào)試器和仿真器等工具,用于編譯、調(diào)試和測試應(yīng)用程序。常見的車規(guī)MCU工具鏈包括IAR Embedded Workbench、Keil MDK等。

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

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

2.2 中間件(Middleware)

汽車電子應(yīng)用需要很多不同種類的中間件(Middleware)軟件來實現(xiàn)高效可靠的數(shù)據(jù)傳輸、網(wǎng)絡(luò)管理、參數(shù)標(biāo)定/校準(zhǔn)、錯誤診斷和高效專用控制算法,其中最重要的中間件包括:

2.2.1 CAN協(xié)議棧

汽車CAN協(xié)議棧是一種軟件組件,用于實現(xiàn)汽車電子系統(tǒng)中的CAN總線通信功能。它包含了一系列的功能軟件,用于處理CAN總線的物理層和數(shù)據(jù)鏈路層的通信協(xié)議。

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

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

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

CAN消息處理:負(fù)責(zé)解析和封裝CAN消息,包括標(biāo)識符的解析、數(shù)據(jù)的封裝和解封裝等。

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

時序控制:負(fù)責(zé)控制CAN消息的發(fā)送和接收時序,包括幀的發(fā)送間隔、幀的優(yōu)先級等。

網(wǎng)絡(luò)管理:負(fù)責(zé)管理CAN總線上的節(jié)點和網(wǎng)絡(luò)拓?fù)?,包括?jié)點的加入和退出、節(jié)點的狀態(tài)管理等。

診斷和故障處理:負(fù)責(zé)診斷CAN總線上的故障和錯誤,并提供相應(yīng)的故障處理機制,以保證系統(tǒng)的可靠性和穩(wěn)定性。

汽車CAN協(xié)議棧是實現(xiàn)汽車CAN總線通信功能的關(guān)鍵軟件組件,它提供了一系列的功能軟件,用于處理CAN總線的物理層和數(shù)據(jù)鏈路層的通信協(xié)議,以實現(xiàn)可靠和高效的汽車電子系統(tǒng)通信。

2.2.2 LIN協(xié)議棧

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

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

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

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

物理層驅(qū)動:負(fù)責(zé)將MCU的串行通信模塊輸出的信號轉(zhuǎn)換為LIN總線的電平信號,并提供LIN總線的電氣特性要求的支持。

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

LIN網(wǎng)絡(luò)管理:負(fù)責(zé)管理LIN總線上的節(jié)點,包括節(jié)點的配置、識別、診斷和錯誤處理等。

LIN應(yīng)用層:根據(jù)具體的應(yīng)用需求,實現(xiàn)了與LIN總線通信相關(guān)的應(yīng)用功能,如車門控制、窗戶控制、燈光控制等。

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

通過使用汽車LIN協(xié)議棧,開發(fā)人員可以方便地實現(xiàn)LIN總線通信功能,并根據(jù)具體的應(yīng)用需求進行定制和擴展。

2.2.3 UDS協(xié)議棧

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

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

UDS協(xié)議棧通常包含以下功能軟件:

通信層:負(fù)責(zé)處理UDS協(xié)議的通信,包括CAN總線通信、LIN總線通信等。

診斷服務(wù):實現(xiàn)了UDS協(xié)議定義的各種診斷服務(wù),如讀取故障碼、清除故障碼、讀取參數(shù)、編程等。

診斷會話管理:管理UDS協(xié)議中的會話,包括默認(rèn)會話、擴展會話、安全訪問會話等。

診斷報文處理:處理UDS協(xié)議中的診斷報文,包括解析報文、生成響應(yīng)報文等。

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

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

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

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

2.2.4 XCP協(xié)議棧

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

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

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

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

XCP協(xié)議解析:負(fù)責(zé)解析和處理XCP協(xié)議消息,包括命令和響應(yīng)消息的解析、參數(shù)傳輸和校驗等。

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

XCP診斷和調(diào)試:提供了診斷和調(diào)試ECU的功能,包括讀取和修改ECU的內(nèi)部狀態(tài)、執(zhí)行診斷測試和故障碼讀取等。

XCP參數(shù)配置:支持對ECU的參數(shù)進行配置和調(diào)整,包括校準(zhǔn)和校驗參數(shù)的設(shè)置和更新。

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

2.2.5 TCP/IP協(xié)議棧

以太網(wǎng)TCP/IP協(xié)議棧是一組用于以太網(wǎng)通信的網(wǎng)絡(luò)協(xié)議集合,它包含了多個功能軟件模塊,用于實現(xiàn)不同的網(wǎng)絡(luò)功能。常見的以太網(wǎng)TCP/IP協(xié)議棧包含以下功能軟件:

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

網(wǎng)絡(luò)接口層(Network Interface Layer):負(fù)責(zé)與物理網(wǎng)絡(luò)接口進行通信,包括驅(qū)動程序和硬件抽象層。

網(wǎng)絡(luò)層(Network Layer):實現(xiàn)IP協(xié)議,負(fù)責(zé)數(shù)據(jù)包的路由和轉(zhuǎn)發(fā),包括IP地址分配和路由表管理。

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

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

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

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

以太網(wǎng)TCP/IP協(xié)議棧的功能軟件模塊可以根據(jù)具體的應(yīng)用需求進行選擇和配置,以滿足不同的網(wǎng)絡(luò)通信需求。

2.2.6 以太網(wǎng)音視頻橋(AVB)協(xié)議棧

汽車以太網(wǎng)音視頻橋(AVB)協(xié)議棧是一種用于實現(xiàn)車載音視頻傳輸?shù)膮f(xié)議棧。它基于IEEE 802.1 Audio Video Bridging (AVB)標(biāo)準(zhǔn),提供了實時、可靠的音視頻傳輸和同步功能。汽車以太網(wǎng)AVB協(xié)議棧包含以下功能軟件:

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

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

AVB協(xié)議:實現(xiàn)了AVB網(wǎng)絡(luò)的基本協(xié)議功能,包括時鐘同步、流量調(diào)度、流量控制等。

IEEE 802.1AS時鐘同步協(xié)議:用于實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的時鐘同步,確保音視頻數(shù)據(jù)的同步傳輸。

IEEE 802.1Qat流量調(diào)度協(xié)議:用于實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的流量調(diào)度和優(yōu)先級控制,確保音視頻數(shù)據(jù)的實時傳輸。

IEEE 802.1Qav流量控制協(xié)議:用于實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的流量控制,確保音視頻數(shù)據(jù)的可靠傳輸。

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

IEEE 1733時鐘同步協(xié)議:用于實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的時鐘同步,確保音視頻數(shù)據(jù)的同步傳輸。

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

Media Stream Reservation Protocol (MSRP):用于實現(xiàn)音視頻數(shù)據(jù)的流量調(diào)度和優(yōu)先級控制,確保音視頻數(shù)據(jù)的實時傳輸。

Stream Reservation Protocol (SRP):用于實現(xiàn)音視頻數(shù)據(jù)的流量調(diào)度和優(yōu)先級控制,確保音視頻數(shù)據(jù)的實時傳輸。

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

汽車以太網(wǎng)AVB協(xié)議棧提供了一套完整的功能軟件,用于實現(xiàn)車載音視頻數(shù)據(jù)的實時、可靠傳輸和同步。

2.2.7 時間敏感網(wǎng)絡(luò)(TSN)協(xié)議棧

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

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

TSN協(xié)議棧包含以下功能軟件:

時間同步:通過IEEE 802.1AS協(xié)議實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的時間同步,確保數(shù)據(jù)在網(wǎng)絡(luò)中的傳輸具有一致的時間參考。

流量調(diào)度:通過IEEE 802.1Qbv和IEEE 802.1Qbu協(xié)議實現(xiàn)對網(wǎng)絡(luò)中不同流量的調(diào)度和優(yōu)先級管理,確保高優(yōu)先級的數(shù)據(jù)能夠及時傳輸。

帶寬保障:通過IEEE 802.1Qav協(xié)議實現(xiàn)對網(wǎng)絡(luò)中不同流量的帶寬分配和保障,確保實時數(shù)據(jù)的傳輸不受其他數(shù)據(jù)流的影響。

時鐘同步:通過IEEE 802.1AS和IEEE 802.1AS-Rev協(xié)議實現(xiàn)網(wǎng)絡(luò)中各個節(jié)點的時鐘同步,確保數(shù)據(jù)在不同節(jié)點之間的時間一致性。

時鐘分發(fā):通過IEEE 802.1AS和IEEE 802.1AS-Rev協(xié)議實現(xiàn)網(wǎng)絡(luò)中時鐘的分發(fā),確保各個節(jié)點能夠獲取到一致的時間參考。

優(yōu)先級管理:通過IEEE 802.1Qbv協(xié)議實現(xiàn)對網(wǎng)絡(luò)中不同數(shù)據(jù)流的優(yōu)先級管理,確保高優(yōu)先級的數(shù)據(jù)能夠優(yōu)先傳輸。

數(shù)據(jù)包過濾:通過IEEE 802.1Qci協(xié)議實現(xiàn)對網(wǎng)絡(luò)中數(shù)據(jù)包的過濾和篩選,確保只有符合條件的數(shù)據(jù)包能夠被傳輸。

TSN協(xié)議棧的功能軟件可以根據(jù)具體的應(yīng)用需求進行配置和定制,以滿足不同汽車電子系統(tǒng)的實時通信需求。

2.2.8 電機驅(qū)動庫(Motor Control Library)

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

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

汽車電機驅(qū)動庫通常包含以下功能算法和庫函數(shù)軟件:

電機控制算法:包括速度控制、位置控制、扭矩控制等算法,用于實現(xiàn)電機的精確控制和調(diào)節(jié)。

電機參數(shù)識別算法:用于識別電機的參數(shù),如電感、電阻、轉(zhuǎn)子慣量等,以便更好地進行控制和調(diào)節(jié)。

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

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

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

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

故障診斷和故障處理函數(shù):用于檢測和處理電機和驅(qū)動器的故障,保證系統(tǒng)的安全和可靠性。

通過使用汽車電機驅(qū)動庫,開發(fā)人員可以快速實現(xiàn)電機控制功能,提高開發(fā)效率和產(chǎn)品質(zhì)量。同時,庫函數(shù)軟件的模塊化設(shè)計也使得系統(tǒng)的維護和升級更加方便。

操作系統(tǒng)(OS)

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

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

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

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

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

3.1 AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR架構(gòu)中的一個組件,用于管理和協(xié)調(diào)汽車電子系統(tǒng)中的軟件任務(wù)和中斷。它提供了以下功能特性:

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

任務(wù)和中斷管理:AUTOSAR OS可以創(chuàng)建、啟動、停止和刪除任務(wù),并處理中斷請求。它可以根據(jù)任務(wù)的優(yōu)先級和調(diào)度策略來調(diào)度任務(wù)的執(zhí)行,確保任務(wù)按照預(yù)定的時間要求執(zhí)行。

2. 時鐘和定時器管理:AUTOSAR OS可以管理系統(tǒng)時鐘和定時器,提供精確的時間基準(zhǔn)和定時功能,以支持任務(wù)和中斷的時間觸發(fā)。

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

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

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

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

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

3.1.1 OSEK OS

OSEK(Open Systems and their Interfaces for Electronics in Motor Vehicles)是一種開放的嵌入式實時操作系統(tǒng)(RTOS),專為汽車電子系統(tǒng)開發(fā)而設(shè)計。OSEK OS提供了一種標(biāo)準(zhǔn)化的方法來管理和調(diào)度汽車電子系統(tǒng)中的任務(wù)和資源。

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

OSEK(Open Systems and the corresponding Interfaces for Automotive Electronics)是一種用于汽車電子系統(tǒng)的開放式操作系統(tǒng)標(biāo)準(zhǔn)。OSEK OS具有以下任務(wù)調(diào)度和中斷管理的特點:

1. 任務(wù)調(diào)度:OSEK OS采用固定優(yōu)先級的靜態(tài)優(yōu)先級調(diào)度算法。每個任務(wù)都被分配了一個固定的優(yōu)先級,優(yōu)先級高的任務(wù)具有更高的執(zhí)行優(yōu)先級。任務(wù)的調(diào)度是基于優(yōu)先級的,優(yōu)先級高的任務(wù)會搶占優(yōu)先級低的任務(wù),以確保高優(yōu)先級任務(wù)的及時響應(yīng)。

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

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

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

OSEK OS的任務(wù)調(diào)度和中斷管理特點使得它適用于實時性要求較高的汽車電子系統(tǒng),能夠提供可靠的任務(wù)執(zhí)行和中斷處理能力。

OSEK OS的特點和價值在于:

實時性:OSEK OS是一個實時操作系統(tǒng),能夠滿足汽車電子系統(tǒng)對實時性的要求。它提供了任務(wù)調(diào)度和優(yōu)先級管理機制,確保任務(wù)按照預(yù)定的時間要求執(zhí)行。

可擴展性:OSEK OS支持多任務(wù)并發(fā)執(zhí)行,可以管理和調(diào)度多個任務(wù)。它提供了任務(wù)和資源的管理機制,使得系統(tǒng)可以靈活地擴展和配置。

可靠性:OSEK OS提供了錯誤檢測和處理機制,能夠及時發(fā)現(xiàn)和處理系統(tǒng)中的錯誤。它還提供了任務(wù)間通信和同步機制,確保系統(tǒng)的穩(wěn)定性和可靠性。

可移植性:OSEK OS是一個開放的標(biāo)準(zhǔn),可以在不同的硬件平臺上實現(xiàn)和使用。它提供了一套統(tǒng)一的接口和規(guī)范,使得開發(fā)人員可以方便地移植和重用代碼。

標(biāo)準(zhǔn)化:OSEK OS是一個國際標(biāo)準(zhǔn),被廣泛應(yīng)用于汽車電子系統(tǒng)的開發(fā)。它提供了一種統(tǒng)一的開發(fā)方法和規(guī)范,促進了汽車電子系統(tǒng)的互操作性和可維護性。

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

3.2 Non-AUTOSAR OS

3.2.1 FreeRTOS

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

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

任務(wù)調(diào)度機制:FreeRTOS使用優(yōu)先級搶占式調(diào)度算法,任務(wù)的執(zhí)行順序由任務(wù)的優(yōu)先級決定。當(dāng)有多個任務(wù)處于就緒狀態(tài)時,優(yōu)先級較高的任務(wù)會被立即執(zhí)行,而優(yōu)先級較低的任務(wù)則會被暫時掛起,等待執(zhí)行機會。任務(wù)調(diào)度器會根據(jù)任務(wù)的優(yōu)先級動態(tài)地進行任務(wù)切換,以實現(xiàn)任務(wù)的快速響應(yīng)和高效利用系統(tǒng)資源。

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

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

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

3.2.2 其他RTOS

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

3.2.2.1 QNX OS

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

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

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

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

3. 分布式處理:QNX操作系統(tǒng)支持分布式處理,可以在多個處理器上運行任務(wù),并通過網(wǎng)絡(luò)進行通信和協(xié)調(diào)。這使得QNX適用于復(fù)雜的分布式系統(tǒng)和嵌入式網(wǎng)絡(luò)應(yīng)用。

4. 實時調(diào)度:QNX操作系統(tǒng)提供了靈活的實時調(diào)度算法,可以根據(jù)任務(wù)的優(yōu)先級和時間約束進行任務(wù)調(diào)度。它能夠快速響應(yīng)高優(yōu)先級任務(wù),并確保低優(yōu)先級任務(wù)不會阻塞系統(tǒng)。

5. 強大的網(wǎng)絡(luò)支持:QNX操作系統(tǒng)具有強大的網(wǎng)絡(luò)支持,包括TCP/IP協(xié)議棧、套接字接口和網(wǎng)絡(luò)文件系統(tǒng)。這使得QNX可以輕松地與其他系統(tǒng)進行通信和數(shù)據(jù)交換。

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

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

3.2.2.2 GHS INTEGRITY OS

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

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

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

2. 可靠性:GHS INTEGRITY OS具有高度的可靠性和穩(wěn)定性。它采用了分離的內(nèi)核和應(yīng)用程序空間,以防止應(yīng)用程序中的錯誤對操作系統(tǒng)的影響。

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

4. 分布式處理:GHS INTEGRITY OS支持分布式處理,可以在多個處理器上運行任務(wù),并通過網(wǎng)絡(luò)進行通信和協(xié)調(diào)。這使得GHS INTEGRITY OS適用于復(fù)雜的分布式系統(tǒng)和嵌入式網(wǎng)絡(luò)應(yīng)用。

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

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

7. 多任務(wù)支持:GHS INTEGRITY OS支持多任務(wù)并發(fā)執(zhí)行,可以同時運行多個任務(wù)。它提供了任務(wù)調(diào)度、同步機制和通信機制,以實現(xiàn)任務(wù)之間的協(xié)作和交互。

3.2.2.3 Keil RTX5 OS

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

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

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

2. 任務(wù)管理:RTX5提供了任務(wù)管理功能,包括任務(wù)的創(chuàng)建、刪除和切換等。開發(fā)人員可以根據(jù)任務(wù)的需求和優(yōu)先級來管理任務(wù)。

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

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

5. 內(nèi)存管理:Keil RTX5包含了一個內(nèi)存管理系統(tǒng),可以動態(tài)分配和釋放內(nèi)存塊。這個功能在處理可變大小的數(shù)據(jù)結(jié)構(gòu)或需要動態(tài)管理內(nèi)存時非常有用。

6. 定時器管理:RTX5內(nèi)核包含了一個定時器管理模塊,提供準(zhǔn)確的定時服務(wù)。它允許任務(wù)基于時間延遲或周期性間隔進行調(diào)度。

7. 低開銷:Keil RTX5設(shè)計具有低內(nèi)存和處理開銷,適用于資源受限的嵌入式系統(tǒng)。

以上是一些常見的汽車領(lǐng)域使用的RTOS,每種RTOS都有其特定的優(yōu)勢和適用場景,根據(jù)具體的應(yīng)用需求和系統(tǒng)要求選擇合適的RTOS是非常重要的。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

安全通信:提供加密和認(rèn)證機制,確保車輛內(nèi)部和車輛與外部系統(tǒng)之間的通信安全。

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

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

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

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

4.3 啟動加載程序(bootloader)

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

引導(dǎo)加載:啟動加載程序負(fù)責(zé)在MCU上啟動和加載應(yīng)用程序。它通過讀取存儲器中的引導(dǎo)加載代碼,并將其加載到MCU的內(nèi)部存儲器中執(zhí)行,從而啟動應(yīng)用程序。

存儲器管理:啟動加載程序需要管理存儲器的分區(qū)和使用。它負(fù)責(zé)將應(yīng)用程序加載到正確的存儲器區(qū)域,并確保存儲器的正確初始化和擦除。

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

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

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

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

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

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

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

4.4 遠(yuǎn)程固件更新程序(FOTA)

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

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

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

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

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

實現(xiàn)FOTA的要點包括:

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

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

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

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

FOTA是車聯(lián)網(wǎng)普及后,新一代功能域控制器(DCU)和區(qū)域控制器(ZCU)架構(gòu)實現(xiàn)的一項重要的軟件技術(shù),可以為車輛制造商提供靈活的固件管理和更新方式,以提供更好的用戶體驗和車輛性能。

功能安全軟件(FuSa SW)

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

5.1 功能安全外設(shè)驅(qū)動(SPD)

車規(guī)MCU的功能安全外設(shè)驅(qū)動(SPD)是為了滿足汽車電子系統(tǒng)的功能安全要求而設(shè)計的。它負(fù)責(zé)驅(qū)動功能安全外設(shè),確保其在發(fā)生故障時能夠正確地執(zhí)行安全功能。SPD的設(shè)計需要遵循ISO 26262功能安全標(biāo)準(zhǔn),并根據(jù)系統(tǒng)的安全需求進行相應(yīng)的驗證和驗證。

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

SPD的主要功能包括:

故障檢測和診斷:SPD需要能夠監(jiān)測外設(shè)的故障狀態(tài),并及時進行診斷和報告。這可以通過使用故障檢測機制和故障診斷算法來實現(xiàn)。

安全數(shù)據(jù)傳輸:SPD需要確保外設(shè)與其他系統(tǒng)組件之間的數(shù)據(jù)傳輸是安全可靠的。這可以通過使用安全通信協(xié)議和數(shù)據(jù)完整性校驗機制來實現(xiàn)。

安全控制和監(jiān)控:SPD需要能夠?qū)ν庠O(shè)進行安全控制和監(jiān)控,以確保其在發(fā)生故障時能夠正確地執(zhí)行安全功能。這可以通過使用安全控制算法和故障恢復(fù)機制來實現(xiàn)。

在設(shè)計SPD時,需要考慮以下幾點:

遵循ISO 26262標(biāo)準(zhǔn):SPD的設(shè)計需要符合ISO 26262的要求,包括安全生命周期的管理、安全需求的分析和驗證、安全功能的實現(xiàn)和驗證等。

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

安全數(shù)據(jù)傳輸:SPD需要確保外設(shè)與其他系統(tǒng)組件之間的數(shù)據(jù)傳輸是安全可靠的。這可以通過使用安全通信協(xié)議和數(shù)據(jù)完整性校驗機制來實現(xiàn)。

安全控制和監(jiān)控:SPD需要能夠?qū)ν庠O(shè)進行安全控制和監(jiān)控,以確保其在發(fā)生故障時能夠正確地執(zhí)行安全功能。這可以通過使用安全控制算法和故障恢復(fù)機制來實現(xiàn)。

車規(guī)MCU的功能安全外設(shè)驅(qū)動(SPD)是為了滿足汽車電子系統(tǒng)的功能安全要求而設(shè)計的,它負(fù)責(zé)驅(qū)動功能安全外設(shè),并確保其在發(fā)生故障時能夠正確地執(zhí)行安全功能。在設(shè)計SPD時,需要遵循ISO 26262標(biāo)準(zhǔn),并考慮故障檢測和診斷、安全數(shù)據(jù)傳輸、安全控制和監(jiān)控等方面的要求。

5.2 功能安全庫(Safety Library)

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

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

車規(guī)MCU的功能安全庫的核心功能包括:

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

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

安全監(jiān)控和保護:功能安全庫可以監(jiān)控系統(tǒng)的安全狀態(tài),并采取相應(yīng)的措施來保護系統(tǒng)免受潛在的安全威脅。它可以檢測和防止未經(jīng)授權(quán)的訪問、數(shù)據(jù)篡改和惡意攻擊等。

安全通信和數(shù)據(jù)保護:功能安全庫可以提供安全的通信協(xié)議和加密算法,以保護系統(tǒng)中傳輸?shù)臄?shù)據(jù)的機密性和完整性。它可以防止數(shù)據(jù)泄露、篡改和劫持等安全風(fēng)險。

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

軟件開發(fā)工具鏈(Toolchain)

6.1 集成開發(fā)環(huán)境(IDE)

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

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

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

調(diào)試:IDE提供了調(diào)試器,用于在開發(fā)過程中跟蹤和調(diào)試程序的執(zhí)行。調(diào)試器可以設(shè)置斷點、單步執(zhí)行、查看變量和內(nèi)存狀態(tài)等,幫助開發(fā)人員定位和解決程序中的錯誤。

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

項目管理:IDE提供了項目管理功能,可以組織和管理多個源文件、庫和依賴項。開發(fā)人員可以輕松地創(chuàng)建、導(dǎo)入和管理項目,以及配置項目的構(gòu)建選項和依賴關(guān)系。

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

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

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

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

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

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

VSCode的優(yōu)勢:

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

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

強大的調(diào)試功能:VSCode提供了強大的調(diào)試功能,可以方便地進行斷點調(diào)試、變量監(jiān)視等操作。

跨平臺支持:VSCode支持多種操作系統(tǒng),包括Windows、Linux和Mac OS,可以在不同平臺上進行開發(fā)和調(diào)試。

Eclipse IDE的優(yōu)勢:

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

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

社區(qū)支持強大:Eclipse IDE有一個龐大的社區(qū),提供了大量的教程、文檔和插件,方便開發(fā)者學(xué)習(xí)和解決問題。

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

不足之處:

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

Eclipse IDE啟動速度較慢,占用系統(tǒng)資源較多。

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

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

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

6.1.2 IAR IDE

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

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

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

編譯器和調(diào)試器:IAR IDE內(nèi)置了高度優(yōu)化的編譯器,支持多種嵌入式處理器架構(gòu)。它還提供了強大的調(diào)試器,可以實時監(jiān)控程序的執(zhí)行狀態(tài),進行斷點調(diào)試和變量查看等操作。

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

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

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

跨平臺支持:IAR IDE支持多種操作系統(tǒng),包括Windows、Linux和macOS,可以在不同的開發(fā)環(huán)境中使用。

6.1.3 GHS MULTI IDE

GHS MULTI IDE是一個集成開發(fā)環(huán)境,用于嵌入式系統(tǒng)的軟件開發(fā)。

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

其主要功能特性包括:

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

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

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

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

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

6. 代碼生成器:GHS MULTI IDE可以生成可執(zhí)行文件、庫文件、靜態(tài)鏈接庫等。

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

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

6.1.4 Keil MDK IDE

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

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

Keil IDE是一種集成開發(fā)環(huán)境,由Keil Software公司開發(fā)。它是一種專門用于嵌入式系統(tǒng)開發(fā)的工具,廣泛應(yīng)用于汽車電子、工業(yè)控制、通信等領(lǐng)域。

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

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

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

Keil MDK IDE具有以下特點:

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

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

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

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

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

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

6.2 調(diào)試器和量產(chǎn)工具(離線/批量Flash編程器)

MCU的調(diào)試器和量產(chǎn)工具的作用主要有以下幾個方面:

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

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

3. 調(diào)試功能:調(diào)試器和量產(chǎn)工具通常會提供一些調(diào)試功能,如單步執(zhí)行、斷點調(diào)試、變量監(jiān)視等,以幫助開發(fā)者更好地調(diào)試和測試MCU程序。

4. 支持多種接口和協(xié)議:調(diào)試器和量產(chǎn)工具通常支持多種接口和協(xié)議,如JTAG、SWD、ISP等,以適應(yīng)不同的MCU芯片和開發(fā)環(huán)境。

5. 支持多種操作系統(tǒng):調(diào)試器和量產(chǎn)工具通常支持多種操作系統(tǒng),如Windows、Linux、Mac OS等,以適應(yīng)不同的開發(fā)環(huán)境和開發(fā)者需求。

總的來說,MCU的調(diào)試器和量產(chǎn)工具的作用是幫助開發(fā)者進行MCU程序的調(diào)試和測試,以及進行批量生產(chǎn)。調(diào)試器和量產(chǎn)工具可以提供多種功能和支持多種接口和協(xié)議,以適應(yīng)不同的MCU芯片和開發(fā)環(huán)境。

6.3 圖形化配置工具

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

6.3.1 SDK配置工具

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

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

2. 提高配置準(zhǔn)確性:配置工具可以提供合理的默認(rèn)配置選項,并進行參數(shù)校驗,避免因配置錯誤而導(dǎo)致的問題。

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

4. 規(guī)范化代碼結(jié)構(gòu):代碼生成工具可以根據(jù)一定的規(guī)范和模板生成代碼,保證代碼結(jié)構(gòu)的一致性和可維護性。

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

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

總的來說,SDK配置和代碼生成工具的作用是簡化配置過程、提高配置準(zhǔn)確性、快速生成代碼、規(guī)范化代碼結(jié)構(gòu)、提供示例代碼和支持版本管理,從而提高開發(fā)效率、減少錯誤和提升代碼質(zhì)量。

6.3.2 MCAL配置工具

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

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

配置參數(shù)選擇:用戶通過配置工具選擇需要使用的MCAL驅(qū)動程序和相關(guān)參數(shù)。可以根據(jù)具體需求選擇不同的驅(qū)動程序和配置選項。

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

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

4. 代碼生成:配置工具根據(jù)用戶的配置參數(shù),生成相應(yīng)的MCAL驅(qū)動程序的代碼。生成的代碼包括初始化函數(shù)、配置函數(shù)、中斷處理函數(shù)等。

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

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

驅(qū)動程序選擇和配置:用戶可以選擇需要使用的MCAL驅(qū)動程序,并設(shè)置相應(yīng)的參數(shù),以滿足具體的需求。

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

3. 代碼生成和導(dǎo)出:配置工具可以根據(jù)用戶的配置參數(shù),生成相應(yīng)的MCAL驅(qū)動程序的代碼,并將代碼導(dǎo)出為可執(zhí)行文件或源代碼文件。

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

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

6.3.3 中間件軟件配置工具

中間件軟件包含的各種總線通信協(xié)議、標(biāo)定和中斷協(xié)議等都有很多配置參數(shù),需要生成很多配置結(jié)構(gòu)體,通過圖形化配置工具的配置向?qū)Ш蛥?shù)檢查、參數(shù)功能提示及配置代碼生成等功能可以幫助客戶高效準(zhǔn)確地使用這些中間件軟件。

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

如下是一個LIN stack的配置工具的實現(xiàn)架構(gòu),配置工具(Processor Expert)通過解析LIN描述文件(LDF)獲取應(yīng)用程序?qū)IN通信的總線網(wǎng)絡(luò)和信號的配置信息,然后生成生成當(dāng)前LIN節(jié)點的配置數(shù)據(jù)和LIN stack的配置數(shù)據(jù),以C文件中的配置結(jié)構(gòu)體和頭文件中的宏定義的形式產(chǎn)生配置結(jié)果,最終與LIN stack和LIN driver一起編譯鏈接生成滿足應(yīng)用需求能夠在目標(biāo)MCU上運行的LIN協(xié)議。

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

6.4 電機調(diào)試和參數(shù)標(biāo)定可視化工具

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

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

實時數(shù)據(jù)監(jiān)控:可以實時監(jiān)控電機的運行狀態(tài),包括電流、轉(zhuǎn)速、溫度等參數(shù),并以圖表或曲線的形式展示。

2. 參數(shù)設(shè)置:可以通過工具設(shè)置電機的各種參數(shù),如電流限制、速度限制、加速度限制等,以便進行調(diào)試和標(biāo)定。

3. 數(shù)據(jù)記錄和導(dǎo)出:可以記錄電機運行過程中的數(shù)據(jù),并將數(shù)據(jù)導(dǎo)出為文件,以便后續(xù)分析和處理。

4. 參數(shù)標(biāo)定:可以通過工具對電機的各種參數(shù)進行標(biāo)定,如電機的電阻、電感、轉(zhuǎn)矩常數(shù)等,以提高電機的控制性能。

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

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

總結(jié)

車規(guī)MCU的軟件開發(fā)生態(tài)是其應(yīng)用功能軟件開發(fā)的基礎(chǔ)。

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

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

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

車規(guī)MCU軟件生態(tài)分類 驅(qū)動/協(xié)議棧/工具鏈 是否車規(guī)MCU廠商提供 第三方合作伙伴(Vendor)
AUTOSAR軟件 基礎(chǔ)軟件
(BSW)
微控制器抽象層驅(qū)動(MCAL) N/A
服務(wù)層軟件(OSCAN/LIN stack等) × Vector, ETAS, EB, 普華、東軟、恒潤等
ECU抽象層軟件 × Vector, ETAS, EB, 普華、東軟、恒潤等
專用外設(shè)復(fù)雜驅(qū)動(CDD) N/A
運行時環(huán)境(RTE) × Vector, ETAS, EB, 普華、東軟、恒潤等
應(yīng)用軟件(ASW) × Vector, ETAS, EB, 普華、東軟、恒潤等
功能庫(Library) × Vector, ETAS, EB, 普華、東軟、恒潤等
Non-AUTOSAR軟件
(SDK)
外設(shè)驅(qū)動 底層驅(qū)動(LLD) N/A
硬件抽象層(HAL/PAL) N/A
中間件軟件
(Middleware)
CAN協(xié)議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
LIN協(xié)議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
UDS協(xié)議棧 ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
XCP協(xié)議棧 ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
TCP/IP協(xié)議棧 √(LwIP) Vector, ETAS, EB, 普華、東軟、恒潤等
AVB協(xié)議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
TSN協(xié)議棧 √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
電機驅(qū)動庫 N/A
啟動文件(Start-Up code)和鏈接文件(Linker file) N/A
操作系統(tǒng)(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, 普華、東軟、恒潤等
遠(yuǎn)程固件更新程序(FOTA) ×/√(Ref.SW) Vector, ETAS, EB, 普華、東軟、恒潤等
功能安全軟件
(FuSa SW)
功能安全外設(shè)驅(qū)動(SPD) N/A
功能安全庫(Safety Library) √(optional) Vector, ETAS, EB, 普華、東軟、恒潤等
軟件開發(fā)工具鏈(Toolchain) 集成開發(fā)環(huán)境
(IDE)
GNU based Eclipse/VSCode IDE N/A
IAR ×(提供patch) IAR
Keil MDK ×(提供patch) ARM/Keil
GHS MULTI ×(提供patch) Greenhill
調(diào)試器和量產(chǎn)工具(離線/批量Flash編程器) ×(提供Flash算法) Segger, IAR, Keil, Greenhill
圖形化配置和代碼自動生成工具
(Config Tool)
SDK配置工具 ×/√ N/A
MCAL配置工具 ×/√ Vector, ETAS, EB, 普華、東軟、恒潤等
中間件軟件配置工具 ×/√ Vector, ETAS, EB, 普華、東軟、恒潤等
電機調(diào)試和參數(shù)標(biāo)定可視化工具 √(optional) Vector, ETAS,恒潤等

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

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

    關(guān)注

    450

    文章

    49631

    瀏覽量

    417123
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16665

    瀏覽量

    347752
  • AUTOSAR
    +關(guān)注

    關(guān)注

    10

    文章

    339

    瀏覽量

    21357
  • ecu
    ecu
    +關(guān)注

    關(guān)注

    14

    文章

    853

    瀏覽量

    54216
  • 汽車軟件
    +關(guān)注

    關(guān)注

    0

    文章

    84

    瀏覽量

    3117

原文標(biāo)題:漫談車規(guī)MCU之汽車軟件生態(tài)全解析

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

收藏 人收藏

    評論

    相關(guān)推薦

    ECU/MCU軟件開發(fā)

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

    RISC-V開發(fā)生態(tài)MCU芯片的相關(guān)資料推薦

    近兩年,伴隨著AIoT的蓬勃發(fā)展、錯綜復(fù)雜的政經(jīng)環(huán)境,開源RISC-V指令集架構(gòu)受到廣泛關(guān)注,生態(tài)日益完善,但其應(yīng)用發(fā)展之路還面臨諸多挑戰(zhàn)。本期專題圍繞RISC-V開發(fā)生態(tài)MCU 芯片...
    發(fā)表于 02-15 07:25

    安全軟件開發(fā)生命周期與業(yè)務(wù)安全

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

    解析規(guī)MCU的技術(shù)難點

    近日,四維圖新旗下全資子公司AutoChips杰發(fā)科技對外宣布,其規(guī)MCU產(chǎn)品線又添重量級新成員——AC7801X,這是杰發(fā)科技繼2018年底量產(chǎn)的國內(nèi)首顆
    發(fā)表于 02-16 09:34 ?1.1w次閱讀

    [IC]淺談嵌入式MCU軟件開發(fā)之中斷優(yōu)先級與中斷嵌套

    [IC]淺談嵌入式MCU軟件開發(fā)之中斷優(yōu)先級與中斷嵌套
    發(fā)表于 12-05 10:21 ?11次下載
    [IC]淺談嵌入式<b class='flag-5'>MCU</b><b class='flag-5'>軟件開發(fā)</b>之中斷優(yōu)先級與中斷嵌套

    規(guī)MCU的發(fā)展之道:建造完整生態(tài)圈是關(guān)鍵

    建造規(guī)MCU生態(tài)圈是滿足汽車領(lǐng)域發(fā)展新需求的關(guān)鍵 兩大主要因素顯著加強建造規(guī)
    的頭像 發(fā)表于 06-17 14:23 ?905次閱讀

    國民技術(shù)規(guī)MCU型號應(yīng)用與參數(shù)

    國民技術(shù)規(guī)MCU型號應(yīng)用與參數(shù)
    發(fā)表于 11-30 14:17 ?1551次閱讀
    國民技術(shù)<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>型號應(yīng)用與參數(shù)

    200元京東卡,邀您成為軟件開發(fā)生產(chǎn)線 CodeArts體驗官!

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

    云途規(guī)MCU軟件開發(fā)環(huán)境搭建及使用詳解

    MCU的嵌入式軟件開發(fā)領(lǐng)域,過去很長一段時間都是以基于Eclipse框架開發(fā)的IDE為主,典型此類IDE包括:NXP的CodeWarrior 10.x/11.xIDE, S32DS IDE
    的頭像 發(fā)表于 08-22 10:12 ?6232次閱讀
    云途<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b><b class='flag-5'>軟件開發(fā)</b>環(huán)境搭建及使用詳解

    軟件開發(fā)必讀!華為云軟件開發(fā)生產(chǎn)線 CodeArts 深度體驗指南

    7 月 7 日-9 日,隨著華為開發(fā)者大會 2023 的到來,華為云軟件開發(fā)生產(chǎn)線 CodeArts 也走進了很多開發(fā)者的視野。 開發(fā)者都比較好奇,什么是華為云 CodeArts?Co
    的頭像 發(fā)表于 08-25 13:43 ?1082次閱讀
    <b class='flag-5'>軟件開發(fā)</b>必讀!華為云<b class='flag-5'>軟件開發(fā)生</b>產(chǎn)線 CodeArts 深度體驗指南

    如何有效應(yīng)對MCU測試驗證開發(fā)中的難點 — 規(guī)MCU適用

    解決方案 | 如何有效應(yīng)對MCU測試驗證開發(fā)中的難點 — 規(guī)MCU適用
    的頭像 發(fā)表于 10-24 15:18 ?871次閱讀
    如何有效應(yīng)對<b class='flag-5'>MCU</b>測試驗證<b class='flag-5'>開發(fā)</b>中的難點 — <b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>適用

    云途規(guī)MCU VSCode IDE工程使用教程

    作者按:隨著越來越多云途規(guī)MCU芯片型號的量產(chǎn),越來越多的客戶開始使用云途的規(guī)MCU應(yīng)用
    的頭像 發(fā)表于 09-24 10:51 ?2012次閱讀
    云途<b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b> VSCode IDE工程使用教程

    規(guī)MCU軟件開發(fā)套件

    費用。 對于項目預(yù)算有限、非平臺化的小項目,非AUTOSAR(Non-AUTOSAR)軟件開發(fā)是一個不錯的選擇。雖然很多大客戶有自
    的頭像 發(fā)表于 10-27 16:05 ?1459次閱讀
    <b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>的<b class='flag-5'>軟件開發(fā)</b>套件

    規(guī)MCU的功能安全庫是什么

    監(jiān)測和控制系統(tǒng)的運行,以確保系統(tǒng)在發(fā)生故障時能夠安全地進入故障狀態(tài)或安全地恢復(fù)正常工作。 規(guī)MCU的功能安全庫的核心功能包括: 故障檢測和診斷:功能安全庫可以監(jiān)測系統(tǒng)的各個部分是否正
    的頭像 發(fā)表于 10-27 17:45 ?1587次閱讀
    <b class='flag-5'>車</b><b class='flag-5'>規(guī)</b><b class='flag-5'>MCU</b>的功能安全庫是什么

    紫光同芯與TASKING攜手,共創(chuàng)規(guī)MCU領(lǐng)域新篇章

    在智能汽車蓬勃發(fā)展的今天,芯片與軟件開發(fā)工具鏈的深度融合成為推動產(chǎn)業(yè)進步的關(guān)鍵。紫光同芯微電子有限公司(以下簡稱紫光同芯)與全球知名的嵌入式軟件開發(fā)工具提供商塔斯金信息技術(shù)(上海)有限公司(以下簡稱
    的頭像 發(fā)表于 06-24 17:48 ?514次閱讀
    <s id="ggiws"><menu id="ggiws"></menu></s>
    <span id="ggiws"></span>
    <li id="ggiws"><progress id="ggiws"><pre id="ggiws"></pre></progress></li>