嵌入式系統其實早已存在多年。本文將帶你了解嵌入式系統是什麼、有哪些安全相關的考量,以及如何透過適當的測試讓系統達到安全與資安的要求。

嵌入式系統是現代產品與基礎設施背後的專用運算核心,讓裝置能夠以高效且可靠的方式感測、處理並回應實體世界的變化。

嵌入式系統是為特定用途打造並整合於產品中的電腦系統,專注於執行特定功能,而非通用運算能力,應用範圍從家用電子產品到複雜的交通系統皆有。

這類系統通常在嚴格限制下運作,例如有限的運算能力、記憶體、儲存空間與電力,同時還需要滿足嚴格的即時性與可靠性要求。

嵌入式系統廣泛存在於各產業中,例如支援 Waymo 的自動駕駛技術、Medtronic 的生命關鍵醫療設備、西門子(Siemens)的工業自動化平台,以及波音公司( Boeing )的航太系統。

其架構複雜度會隨應用需求而提升,從簡單的控制迴圈,到中斷驅動、多工處理,以及基於 RTOS 的設計,以支援並行處理、即時回應與長期維護。

安全性、資安與嚴謹測試是不可或缺的,尤其在關鍵領域中,系統失效可能造成嚴重的人員傷亡、營運中斷或經濟損失。

嵌入式系統是以微處理器為基礎的電腦系統,通常內建於某個系統或產品中,並負責特定的運作功能。換句話說,嵌入式系統就是我們日常使用的裝置、駕駛的汽車、搭乘的飛機與火車背後的「隱形智慧」。

不同於桌機或伺服器這類由多個獨立元件組成的運算系統,嵌入式系統是直接整合在產品中的,並同時包含硬體與軟體。

嵌入式系統有哪些應用範例?

嵌入式系統幾乎存在於所有產業中,它們不是可有可無的附加功能,而是現代科技運作的核心。以下是一些常見範例。

應用1. 消費性產品

嵌入式系統是我們日常依賴的產品與基礎設施中的隱形智慧。在消費性電子產品中,例如智慧型手機、智慧電視、穿戴裝置與智慧家庭設備,都仰賴嵌入式系統來運作,負責電源管理、無線通訊、感測器處理與使用者互動。

像 Apple 這類公司會在產品中整合數十個專用嵌入式控制器協同運作,以提供流暢的使用體驗。

應用2. 汽車產業

在汽車領域中,嵌入式系統的重要性更高。現代車輛(例如 Waymo 的技術)包含大量電子控制單元(ECU),負責自動駕駛、煞車、轉向、電池管理、安全氣囊以及先進駕駛輔助系統等功能。

這些系統必須在即時條件下穩定運作,且常常需要在嚴苛環境中保持可靠。

應用3. 醫療裝置

醫療領域也是重要應用之一。像 Medtronic 所開發的心律調節器、胰島素幫浦與病患監測系統,都仰賴高度精準且可靠的嵌入式軟體。一旦發生故障,不只是造成不便,甚至可能危及生命。

應用4. 工業與運輸

在工業與運輸領域中,嵌入式系統用於工廠自動化、機器人、鐵路號誌與航空電子系統。像 西門子會使用嵌入式控制器來管理電網與製造產線,而 波音公司的飛機則依賴多重冗餘的飛行控制電腦,以確保在高空飛行時的安全性。

嵌入式系統有哪些特性?

嵌入式系統與一般通用電腦最大的差異是什麼?答案是「專注於特定功能」。

特性1. 執行單一特定功能

嵌入式系統是為了執行單一且明確的功能而設計的,不多也不少。不同於桌機可以執行各種應用程式,煞車系統中的嵌入式控制器只有一個任務:偵測狀態並立即做出反應。這樣的單一目標會影響所有架構設計的決策。

特性2. 在嚴格資源限制下運作

嵌入式系統通常運行在嚴格的資源限制下,例如有限的運算能力、極少的記憶體,以及嚴格的功耗限制。工程師必須撰寫高效率的程式碼,並在效能與硬體限制之間取得平衡。最佳化不是加分項,而是基本要求。

特性3. 精準的時序要求

時序是另一個關鍵特性。許多嵌入式系統屬於即時系統(Real-Time Systems),必須在精準的時間內完成回應。在安全關鍵場景中,例如汽車煞車、醫療設備或航太系統,錯過時序就可能導致系統失效。系統是否正確,不只取決於做了什麼,也取決於何時完成。

特性4. 長期穩定運作

可靠性與可預測性也是嵌入式系統的重要特徵。這些系統通常需要在嚴苛環境中連續運作多年且不中斷,並且必須具備穩定行為、容錯能力與長期穩定性。不同於可頻繁更新的消費性軟體,嵌入式系統多部署在更新困難、成本高或受到法規限制的環境中。

特性5. 與硬體高度整合

最後,嵌入式系統與硬體是高度整合的。它們直接控制感測器、致動器、馬達與通訊介面。硬體與軟體通常是共同設計、共同最佳化,並以整體系統方式驗證。這種深度整合與高風險特性,正是嵌入式系統與通用電腦最大的差異。

嵌入式系統的有趣之處在於其應用範圍極廣,從智慧家庭中的小型控制器,到飛機上的航電系統,再到電信網路中的大型交換設備皆包含在內。

這也讓其設計與開發變得更加困難,因為產品本身的限制會直接影響嵌入式硬體與軟體的效能範圍。

嵌入式系統雖然無所不在,但一般消費者通常不會察覺。現代汽車內部可能包含高達一億行程式碼,而且大多數並不在資訊娛樂系統中,而是分布在各種微控制器與引擎控制單元中,負責控制與監測各項功能。

如前所述,嵌入式系統由硬體與軟體組成,通常應用於需要感測環境變化並進行控制回應的場景。

一個簡單的例子是具備嵌入式溫控器的 HVAC 系統。該系統會偵測室內溫度,並控制加熱或冷氣設備,同時可能透過網路介面進行通訊,並在 LCD 螢幕(人機介面,HMI)上顯示溫度資訊。

這類系統通常被稱為「即時系統(real-time)」或「事件驅動(event-driven)」系統,因為它們必須即時回應現實世界中的事件。依據應用類型與關鍵程度,是否能在指定時間內完成反應非常重要。

像汽車中的防鎖死煞車系統(ABS)這類安全關鍵系統,必須在毫秒等級內做出反應。這類系統稱為「硬即時(hard real-time)」,也就是必須滿足時限,否則就視為系統失效。

相對地,時限較寬鬆的系統稱為「軟即時(soft real-time)」。在大多數情況下,這些系統會運作在某種即時作業系統(RTOS)之上。


以下是一個簡單的嵌入式系統架構範例:

圖中顯示一個包含嵌入式系統與控制器的環境。嵌入式系統以藍色透明方框表示,內部包含四個模組:人機介面(HMI)、感測器、致動器、以及通訊介面(Network/Serial/USB)。這些模組與控制器互相連接,而控制器則包含 RAM、ROM、I/O 與 CPU 等元件。

嵌入式系統另一個特點是使用微控制器架構。不同於桌機或伺服器系統,微控制器通常會將 RAM、ROM 與 I/O 整合在單一晶片上。

這些控制器具備與感測器、致動器互動所需的 I/O 能力,並可整合各種網路與通訊介面。

簡單式與控制迴圈架構

在最基本層級,許多嵌入式系統採用簡單架構,也就是單一程式在無限迴圈中持續執行。這種設計通常稱為 super loop,會不斷重複讀取輸入、處理資料、更新輸出,然後再重新開始。

由於沒有作業系統或排程機制的額外負擔,其行為高度可預測且容易驗證。這種方式常見於功能較單純、時序要求不高的裝置,例如基礎感測器或低成本控制器。

與此相近的是控制迴路架構,廣泛應用於需要持續調節實體系統狀態的場景。

在這種模型中,軟體會持續量測系統狀態(例如溫度、速度或位置),與目標值比較後,再透過致動器調整,使差異最小化。常見例子包括溫控器、馬達轉速控制器,以及簡單的工業自動化元件。

控制迴圈設計的優點在於:

  • 可預測性(Determinism)
  • 低資源使用量
  • 實作簡單


然而,這類架構也有明顯的限制。


由於所有操作都是依序執行,較長時間的任務可能會延遲時間敏感的功能,對突發事件的反應能力也較差。


當系統複雜度提升,例如需要同時處理多個感測器、通訊介面或使用者互動時,super loop 會變得難以維護與擴展。因此,這類簡單迴圈架構較適合用於規模小、功能明確且並行需求低的應用。

中斷驅動與多工架構

當嵌入式系統需要快速回應外部事件時,中斷驅動架構能提供更即時的反應方式。系統不需等待主迴圈檢查狀態,而是由硬體訊號直接中斷當前執行流程,立即觸發對應處理程序。

這種機制讓系統能即時回應關鍵事件,例如按鍵輸入、感測器觸發門檻、通訊資料到達或錯誤狀況。透過非同步處理緊急任務,中斷驅動設計可以大幅提升反應速度,而不需要完整作業系統的支援。

多工架構則進一步延伸這個概念,讓多個軟體任務能「看起來同時」執行。在許多嵌入式系統中,通常透過以下方式實現:

  • 時間分割(Time slicing)
  • 優先權排程(Priority-based scheduling)
  • 協同式任務切換(Cooperative task switching)

不同任務可分別負責感測器處理、使用者介面更新、資料記錄與網路通訊等功能,並共享同一顆處理器。這種架構提升了模組化與可擴展性,使新增功能時不會影響整體系統穩定性。

當系統需要同時處理多個任務、維持即時回應能力,或與外部裝置通訊時,通常會優先採用這類架構。

汽車控制網路、醫療監測設備以及連網消費性產品,通常都仰賴中斷驅動或多工設計。雖然比簡單迴圈架構更複雜,但在效能、彈性與資源使用之間提供了良好的平衡,適用於中等規模的嵌入式應用。

核心式與分層架構

對於較複雜的嵌入式系統,會採用核心式(kernel-based)架構,引入正式的作業環境來管理硬體資源與軟體任務。其核心通常為即時作業系統(RTOS),提供以下功能:

  • 任務排程
  • 任務間通訊
  • 時序服務
  • 記憶體管理


像 VxWorks、QNX、RTLinux、ThreadX 等 RTOS 平台,廣泛應用於需要高可預測性、高可靠性與結構化並行處理的系統。透過將底層管理交由核心處理,開發者可以專注於應用邏輯,同時維持穩定的即時行為。


分層架構(layered architecture)則常與核心式設計搭配,將軟體劃分為多個階層,每一層都有明確的責任範圍。

  • 底層通常負責硬體控制與裝置驅動程式。
  • 中間層提供系統服務與中介軟體(middleware)。
  • 上層則實作應用層的功能。

這種關注點分離(separation of concerns)能提升系統的可維護性、可移植性與可測試性,特別適用於長期運作且各元件可能獨立演進的系統。

這類進階架構的優勢,在大型或安全關鍵應用中特別明顯,例如航電系統、先進車用平台、醫療設備、鐵道系統、工業自動化與電信基礎設施。

這些架構能支援複雜功能、故障隔離、安全機制與長期維護,是簡單架構難以達成的能力。雖然開發成本與資源需求較高,但核心式與分層架構能提供現代嵌入式系統所需的可靠性、可擴展性與系統成熟度。

嵌入式系統運作在依產品需求所設計的硬體上,這些硬體通常同時需要滿足商業目標(例如成本)與技術規格。這類產品可能出貨數量達數百萬台,並且需要運作數十年,因此對硬體與軟體的可靠性與品質都有極高要求。

硬體限制條件

嵌入式系統常見的硬體限制包括:

  • 有限的運算能力
  • 記憶體限制
  • 儲存空間限制

這些限制會直接影響系統能支援的效能與功能複雜度,進而提高設計與開發難度,特別是在需要整合更多功能時更為明顯。

嵌入式硬體的限制通常來自商業需求,並直接影響最終產品的獲利能力。

物料成本(BOM):硬體越簡單,採購成本越低、利潤越高。但隨著軟體複雜度提升,很快就會超出硬體負荷。升級到更高階處理器,意味著 BOM 成本增加,並對軟體造成顯著影響。

尺寸與重量:產品在體積與重量上有限制,會影響硬體選型。更複雜的硬體可能需要更大的電路板、電源供應與散熱設計。

功耗:嵌入式系統常用於電池供電設備,因此功耗必須嚴格控管;即使在高階系統中,散熱問題同樣是重要考量。

常見的目標硬體包含以下微控制器:

  • 常見的 8-bit 8051 架構
  • Microchip 的 PIC16 微控制器
  • ST 的 STM32 32 位元 ARM Cortex 微控制器
  • 系統單晶片(SoC),例如 TI OMAP 或 Raspberry Pi
  • 大型多處理器 64 位元系統(基於 ARM、Intel、AMD 架構)

嵌入式系統的工程投入大多集中在軟體上。事實上,多數製造商都需要專門的軟體團隊來開發產品中的應用程式。甚至有 CEO 開玩笑地說:「我們其實是披著硬體外皮的軟體公司。」

現實是,在許多市場中,軟體已成為差異化與創新的關鍵,即使這些公司的主要產品並非軟體。

如同硬體一樣,軟體複雜度取決於應用需求,差異可能很大。不過大致可分為三種類型:

  • 小型系統
  • 中型系統
  • 大型系統

小型系統(裸機 Bare Metal)

這類應用通常運作在 8 或 16 位元微控制器上,沒有正式作業系統,也就是所謂的裸機(bare metal)。通常只控制單一子系統,依據少數感測器進行運作,可能不連網且獨立執行。

較高層級的控制則由其他系統負責,例如 SCADA 系統,其硬體與軟體通常更為複雜。

中型系統

這類系統通常使用商用或開源的嵌入式作業系統,且多半為即時系統(RTOS)。這些作業系統提供硬體抽象、多工、多執行緒、網路與介面函式庫等功能。

常見例子包括 FreeRTOS、VxWorks、QNX,以及某些情況下的嵌入式 Linux。應用範圍從硬即時的航電系統,到無線路由器與 HVAC 系統皆有。

這類系統通常使用 32 位元微控制器或 SoC,並具備比小型系統更多的 RAM 與 Flash。不過其軟體複雜度高出數個數量級,程式碼規模可能從數萬行到上百萬行不等。

大型系統

這類系統通常非常複雜,具備多項功能與能力,並運作於類似伺服器的多處理器硬體上。應用通常需要即時處理能力,並可能使用高階 RTOS 或 Linux。

典型例子包括企業級網路交換器、電信骨幹網路、證券交易系統與空中交通管制系統。這些系統高度複雜且互相連結,程式碼規模可達數百萬行以上。

儘管應用多樣,嵌入式系統仍有一些共通特性,例如專用性強、全年無休(24/7)運作,並需要具備高可靠性、安全性、省電與成本效益。此外,資安需求也變得越來越重要。

嵌入式系統的應用多到難以一一列舉,以下是一些較具代表性的高關注應用:

  • 救命設備,例如心律調節器
  • 關鍵應用,例如飛機飛行控制系統與自動駕駛輔助系統
  • 支撐各類裝置與智慧家庭設備運作的軟體

我們的智慧型手機、平板、智慧手錶與智慧電視,其實都是嵌入式系統!以下是更多應用範例:

  1. 工業自動化
  2. 核能電廠、發電與電力調度的監控系統
  3. 維持經濟運作所需的電力、供熱與照明系統
  4. 應用於火車、飛機與汽車的安全關鍵軟體
  5. 支援網際網路與電信運作的基地台、樞紐、交換器與路由器
  6. 先進武器系統、戰鬥機、坦克與飛彈等核心也都依賴嵌入式系統

事實上,全球生產的微處理器中,有高達 98% 是用於嵌入式系統。

雖然嵌入式系統無所不在,但仍有許多系統與軟體不屬於此類。例如桌面軟體(如辦公軟體、瀏覽器、遊戲)都不算嵌入式系統,企業軟體、雲端基礎設施與後端系統也不屬於。


一般來說,只要是運作在通用硬體(例如一般 PC 或伺服器)上的軟體,就不會被視為嵌入式系統。這類軟體與硬體並非緊密綁定,也不是不可分離的整體。


例如 PC 出廠時可能搭載 Microsoft Windows 作業系統,但該系統可以被替換或移除,而不會影響 PC 的基本功能。

非嵌入式軟體通常屬於應用程式,可以在不同硬體平台上執行,並可在本地或遠端運作。

嵌入式系統在安全與資安關鍵設備中扮演重要角色,例如心律調節器與 ABS 煞車控制器都不能失效,因為人命完全仰賴其正常運作。

歷史上也曾發生重大事故,例如 Therac-25 放射治療設備因軟體問題導致病患過量照射,或 Ariane 5 火箭因整數溢位錯誤而爆炸。


隨著越來越多嵌入式系統透過網路連線(物聯網 IoT),資安問題已成為重大議題。這種連結帶來新功能與機會,同時也增加被攻擊的風險。


不安全的裝置本質上就是不安全的系統,因此在關鍵設備中,資安與功能安全必須同等重視。

如何確保嵌入式系統的安全與資安?

確保嵌入式系統安全與資安的唯一方法,就是透過測試,更精確地說,是在整個開發生命週期中進行嚴謹的驗證(Verification)與確認(Validation)。


在安全要求極高的產業中,必須遵循特定標準,例如:

  • 汽車(ISO 26262)
  • 航空(DO-178C)
  • 醫療設備(IEC 62304)
  • 工業自動化(IEC 61508)
  • 鐵道(EN 50716 / EN 50128)

這些裝置的製造商必須遵循相關標準,並透過稽核證明其已善盡應有的審查與責任(due diligence),且已完整處理所有安全(safety)與資安(security)風險。

此類硬體與軟體的開發與測試過程通常耗時且成本高昂,但對於確保系統在實際部署後能正確運作,是不可或缺的。

嵌入式系統,尤其是安全與資安關鍵(safety-critical / security-critical)的系統,不能發生失效。一旦失效,後果將非常嚴重,可能造成人員死亡或重傷,亦可能導致財產損失。因此,軟體測試至關重要。


軟體測試可確保嵌入式系統具備安全性(safety)、資安性(security)與可靠性(reliability),同時也是取得相關認證的重要依據。

前一節提到的功能安全標準,提供了明確指引,並建議採用多種測試與分析方法,例如靜態程式碼分析(static code analysis)、單元測試(unit testing)、整合測試(integration testing)、系統測試(system testing)、回歸測試(regression testing)、結構覆蓋率(structural code coverage),以及各類危害分析(hazard analysis)、威脅分析(threat analysis)與風險評估(risk assessment),以確保系統達到最高等級的安全與資安要求。

許多嵌入式系統還需符合各國主管機關所制定的認證要求。

例如在美國,醫療設備由 FDA 監管、航電系統由 FAA 管理、汽車由 NHTSA 管轄、鐵道則由 FRA 負責,此外還有其他相關機構。

這些單位透過法規確保公共安全與資安。同時,企業本身也會積極追求品質,因為產品召回、法律訴訟與長期糾紛,都可能對公司造成重大衝擊甚至致命影響。

本文由Parasoft提供

延伸閱讀⎟