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