西門子提供兩者 汽車嵌入式軟件 和 嵌入式軟體工程 解決方案。西門子已停止為 SoC 提供獨立嵌入式軟體,並於 2023 年 11 月退出 Nucleus、核心虛擬化程式管理器、核心 ReadyStart、索科靈彈性 Linux、索科爾 Omni Linux 和源代碼 Bench 產品(包括相關附加元件)。現有這些產品的支持合同仍在履行中,請聯繫西門子 支援中心 了解更多信息。
嵌入式軟體有哪些不同類型及其用途?
- 作業系統 — 作業系統(OS)在其最一般的意義上是允許用戶在計算設備上運行其他應用程序的軟件。作業系統管理處理器的硬體資源,包括鍵盤和滑鼠等輸入裝置、顯示器或印表機等輸出裝置、網路連線以及硬碟和記憶體等儲存裝置。作業系統還提供服務,以促進軟體應用程式的高效執行和管理以及記憶體分配。
- 韌體 — 韌體是直接為硬體編寫的軟體類型。它無需透過 API、作業系統或裝置驅動程式即可運作,提供與其他裝置通訊或按照預期執行基本工作和功能所需的指示和指引。
- 中介軟件 — 中間軟件是位於應用程序和作業系統之間的軟件層。中介軟件通常用於分散式系統中,它通過提供以下內容來簡化軟件開發:
- 隱藏分散式應用程式的複雜性
- 遮罩硬體、作業系統和通訊協定的異質性
- 提供統一的高級介面,用於製作可互操作、可重複使用和可攜式應用程式。
- 提供一套通用服務,最大限度地減少重複工作並增強應用程式之間的協作
- 應用程式 — 終端使用者開發在作業系統上執行的最終軟體應用程式,使用或與中間件和韌體互動,並且是嵌入式系統目標功能的主要重點。每個終端應用程序都是獨一無二的,而作業系統和韌體可以因設備而異。
嵌入式軟體與嵌入式系統
執行嵌入式軟體的裝置中的硬體元件稱為「嵌入式系統」。嵌入式系統中使用的硬體元件的一些例子包括電源供應器電路、中央處理單元、快閃記憶體裝置、計時器和序列通訊埠。在設備的早期設計階段,將構成嵌入式系統的硬件 — 以及其在設備中的配置 — 決定。然後,嵌入式軟件從頭開發,以精確的配置中僅在該硬件上運行。這使嵌入式軟體設計成為專業領域,需要對硬體功能和計算機編程的深度知識。
嵌入式軟體功能的範例
幾乎每個帶有電路板和計算機芯片的設備都將這些組件安排為嵌入式軟件系統。因此,嵌入式軟件系統在日常生活中無處不在,並且可以在消費性、工業、汽車、航空航天、醫療、商業、電信和軍事技術中發現。
嵌入式軟體功能的常見範例包括:
- 醫療成像設備中的圖像處理系統
- 飛機中發現的電線控制系統
- 安全攝像機中的動作偵測系統
- 交通燈中發現的交通控制系統
- 智能家居設備中的計時和自動化系統
嵌入式系統有哪些不同類型?
根據效能和功能需求時,嵌入式系統有五個主要類別:
- 即時嵌入式系統以確定性和可重複的方式完成任務,這受到作業系統的基礎架構和排程,以及執行緒的效能、分支和中斷延遲的影響。一般用途嵌入式系統不包含即時需求,而且可以在完成時間後無依賴關係管理中斷或分支。圖形顯示和鍵盤和鼠標管理是一般系統的好例子。
- 獨立嵌入式系統無需主機系統或外部處理資源即可完成任務。他們可以從連接的設備輸出或接收數據,但不依賴它們來完成任務。
- 獨立嵌入式系統無需主機系統或外部處理資源即可完成其任務。他們可以從連接的設備輸出或接收數據,但不依賴它們來完成任務。
- 網路嵌入式系統依賴連線的網路來執行指派的工作。
- 根據系統硬體架構的複雜性,嵌入式系統有三種主要類型:網路嵌入式系統依賴連接的網路來執行指派的工作。
終端市場如何影響嵌入式系統
嵌入式系統需求和元件會根據目標市場的需求而有所不同。一些例子包括:
- 消費者 — 在消費品(例如洗衣機、穿戴設備和手機)的應用中,嵌入式系統強調了縮小的尺寸
- 晶片上系統、低功耗或電池操作和圖形介面。在這些應用程序中,可配置的作業系統以及關閉設計的非操作「域」的能力都很重視。
- 網路 — 可讓企業網路連線、通訊、操作和管理的應用程式。它提供用戶,流程,應用程序,服務和外部網絡/互聯網之間的通信路徑和服務。嵌入式網路應用程式專注於回應速度、封包處理和周邊硬體路徑。
- 工業 — 對於工廠樓層管理、馬達和風車等應用,重點傾向於保護雲端連接和確定性的「即時」操作,並可以大量專注於中介軟件。
- 醫療、汽車和航空航天 — 這些行業需要混合安全關鍵系統,其中設計的部分彼此隔離,以確保只有必要的數據進入或離開系統(安全),同時保證對最終用戶不會造成傷害(安全)。例如汽車和醫療設備中的自動駕駛系統。這些嵌入式系統可以結合開源 (Linux) 和確定式實時作業系統 (RTOS),並且大量使用經過驗證的中間軟件。
為什麼汽車嵌入式軟件有所不同?
在汽車電子產品中,多個嵌入式系統中發生複雜的即時互動,每個控制功能,例如制動、轉向、懸架、動力總成等。包含每個嵌入式系統的實體外殼稱為電子控制單元 (ECU)。每個 ECU 及其嵌入式軟體都是稱為分散式系統的複雜電氣架構的一部分。
通過彼此通信,組成車輛分散式系統的 ECU 可以執行各種功能,例如自動緊急制動,自適應巡航控制,穩定控制,自適應頭燈等等。單一功能可能需要在 20 個或更多嵌入式軟體應用程式之間進行互動,分佈在多個由多個網路通訊協定連接的 ECU 中。與嵌入式軟體部署的複雜控制演算法可確保功能的正確時間、所需的輸入和輸出以及數據安全性。
汽車軟體應用程式功能的常見範例包括:
- ADAS(先進駕駛員輔助系統)功能,例如自適應巡航控制,自動緊急制動,車道保持輔助,交通輔助,車道偏離警告
- 電池管理
- 扭矩補償
- 燃油噴射速率控制
ECU 軟件堆疊
電子控制單元或 ECU 由具有芯片級硬件的主計算單元和一堆嵌入式軟件組成。然而,汽車製造商在設計具有複雜的集成電路的 ECU,這些 ECU 在單一芯片上包含多個計算核心(稱為晶片上系統(SoC)),正在日益增加的趨勢。這些 SoC 可以託管多種 ECU 抽象,以整合硬件。ECU 的軟體堆疊通常包含一系列解決方案,從低級韌體到高層級嵌入式軟體應用程式。
ECU 堆疊 | 描述 |
嵌入式軟體應用程式 | 控制演算法,處理,服務 |
應用程式架構 | 安全與安全架構 |
操作環境 | AUTOSAR 經典, 自動自動調適應, 輸入/輸出通道 |
嵌入式虛擬化 | 即時操作系統,ECU 抽象 |
韌體 | 開機載入器、安全儲存、安全執行緒 |
硬件 | 矽基裝置、微控制器、單層或多層板 |