概述
嵌入式軟件是在芯片或嵌入式設(shè)備固件上進行專門編程,以控制其功能。作為微芯片的一部分或作為位于芯片頂部的另一個應(yīng)用程序的一部分 - 以控制設(shè)備的特定功能。與可以安裝在各種計算機系統(tǒng)上并進行修改以提供不同級別功能的PC應(yīng)用程序不同,嵌入式軟件具有固定的硬件要求和功能。它是專門為運行它的特定設(shè)備創(chuàng)建的,處理和內(nèi)存限制直接與該設(shè)備的規(guī)格相關(guān)聯(lián)。
硬件制造商使用嵌入式軟件來控制各種硬件設(shè)備和系統(tǒng)的功能。嵌入式軟件控制設(shè)備功能的方式與計算機操作系統(tǒng)控制軟件應(yīng)用程序功能的方式相同。幾乎任何設(shè)備都可以包含嵌入式軟件 - 從那些簡單到你可能想象不到他們有計算機控制的軟件,如烤面包機和燈泡,到導(dǎo)彈中的復(fù)雜跟蹤系統(tǒng)。
嵌入式軟件用于控制硬件設(shè)備的有限設(shè)置功能,通常不需要輸入;它通常不由用戶直接使用。其功能由外部控件激活,無論是設(shè)備本身的外部操作還是遠程輸入。設(shè)備可能具有與其他設(shè)備的通信鏈路,以實現(xiàn)功能,或者在設(shè)備需要調(diào)整、校準(zhǔn)或診斷時。也正是通過這些連接,有人可能會嘗試嵌入式軟件系統(tǒng)黑客攻擊。
嵌入式軟件的復(fù)雜性與其用于控制的設(shè)備一樣多。盡管該術(shù)語通常與固件互換使用,但嵌入式軟件通常是在硬件上運行的唯一計算機代碼,而固件則相反,將控制權(quán)移交給操作系統(tǒng),而操作系統(tǒng)又啟動和控制程序。
嵌入式軟件有不同類型及其用途
操作系統(tǒng) – 最一般意義上的操作系統(tǒng) (OS) 是允許用戶在計算設(shè)備上運行其他應(yīng)用程序的軟件。操作系統(tǒng)管理處理器的硬件資源,包括輸入設(shè)備(如鍵盤和鼠標(biāo))、輸出設(shè)備(如顯示器或打印機)、網(wǎng)絡(luò)連接以及存儲設(shè)備(如硬盤驅(qū)動器和內(nèi)存)。操作系統(tǒng)還提供服務(wù),以促進軟件應(yīng)用程序的高效執(zhí)行和管理以及內(nèi)存分配。
固件 – 固件是一種直接為硬件編寫的軟件。它無需通過 API、操作系統(tǒng)或設(shè)備驅(qū)動程序即可運行,為設(shè)備提供所需的說明和指導(dǎo),以便與其他設(shè)備通信或按預(yù)期執(zhí)行一組基本任務(wù)和功能。
中間件 – 中間件是位于應(yīng)用程序和操作系統(tǒng)之間的軟件層。中間件通常用于分布式系統(tǒng),它通過提供以下內(nèi)容來簡化軟件開發(fā):
隱藏分布式應(yīng)用程序的復(fù)雜性
掩蓋硬件、操作系統(tǒng)和協(xié)議的異構(gòu)性
提供統(tǒng)一和高級接口,用于使可互操作、可重用和可移植的應(yīng)用程序。
提供一組通用服務(wù),最大限度地減少重復(fù)工作并增強應(yīng)用程序之間的協(xié)作
應(yīng)用程序 – 最終用戶開發(fā)在操作系統(tǒng)上運行的最終軟件應(yīng)用程序,使用中間件和固件或與之交互,并且是嵌入式軟件系統(tǒng)目標(biāo)功能的主要焦點。每個最終應(yīng)用程序都是唯一的,而操作系統(tǒng)和固件可能因設(shè)備而異。
嵌入式軟件與嵌入式軟件系統(tǒng)
設(shè)備中運行嵌入式軟件的硬件組件稱為“嵌入式軟件系統(tǒng)”。嵌入式軟件系統(tǒng)中使用的硬件組件的一些示例包括電源電路、中央處理單元、閃存設(shè)備、定時器和串行通信端口。在設(shè)備的早期設(shè)計階段,將決定構(gòu)成嵌入式軟件系統(tǒng)的硬件及其在設(shè)備中的配置。然后,從頭開始開發(fā)嵌入式軟件,以該精確配置僅在該硬件上運行。這使得嵌入式軟件設(shè)計成為一個非常專業(yè)的領(lǐng)域,需要對硬件功能和計算機編程有深入的了解。
基于軟件的嵌入式功能示例
幾乎每個由電路板和計算機芯片制成的設(shè)備都將這些組件排列成運行嵌入式軟件的系統(tǒng)中。因此,嵌入式軟件系統(tǒng)在日常生活中無處不在,遍布消費、工業(yè)、汽車、航空航天、醫(yī)療、商業(yè)、電信和軍事技術(shù)。
基于軟件的嵌入式功能的常見示例包括:
醫(yī)學(xué)成像設(shè)備中的圖像處理系統(tǒng)
飛機上的電傳操縱系統(tǒng)
安全攝像機中的運動檢測系統(tǒng)
交通信號燈中的交通控制系統(tǒng)
智能家居設(shè)備中的定時和自動化系統(tǒng)
終端市場如何影響嵌入式軟件系統(tǒng)
嵌入式軟件系統(tǒng)要求和組件將根據(jù)目標(biāo)市場的需求而有所不同。一些例子包括:
消費品 – 在洗衣機、可穿戴設(shè)備和手機等消費品等應(yīng)用中,嵌入式軟件系統(tǒng)強調(diào)減小的尺寸
片上系統(tǒng)、低功耗或電池供電以及圖形接口。在這些應(yīng)用中,可配置的操作系統(tǒng)以及關(guān)閉設(shè)計中非操作“域”的能力受到重視。
網(wǎng)絡(luò) – 支持企業(yè)網(wǎng)絡(luò)的連接、通信、操作和管理的應(yīng)用程序。它提供用戶、進程、應(yīng)用程序、服務(wù)和外部網(wǎng)絡(luò)/互聯(lián)網(wǎng)之間的通信路徑和服務(wù)。嵌入式網(wǎng)絡(luò)應(yīng)用側(cè)重于響應(yīng)速度、數(shù)據(jù)包處理和外圍硬件路徑。
工業(yè) – 對于工廠車間管理、電機和風(fēng)車等應(yīng)用,重點更傾向于安全的云連接和確定性的“實時”操作,并且可以主要關(guān)注中間件。
醫(yī)療、汽車和航空航天 – 這些行業(yè)需要混合安全關(guān)鍵系統(tǒng),其中設(shè)計的各個部分彼此隔離,以確保只有必要的數(shù)據(jù)進入或離開系統(tǒng)(安全);同時保證不會對最終用戶造成傷害(安全)。例如汽車和醫(yī)療設(shè)備中的自動駕駛系統(tǒng)。這些嵌入式軟件系統(tǒng)可以混合使用開源 (Linux) 和確定性實時操作系統(tǒng) (RTOS),并大量使用經(jīng)過驗證的中間件。
嵌入式軟件系統(tǒng)的特點
盡管有許多類型的嵌入式軟件系統(tǒng),但它們都具有相同的有益功能和設(shè)計特征。
所有嵌入式軟件系統(tǒng)都是特定于任務(wù)的。它們在其整個使用壽命期間執(zhí)行相同的預(yù)編程功能,并且無法更改。
所有嵌入式軟件系統(tǒng)都是高效率的。嵌入式軟件的資源需求不應(yīng)超過安裝它的硬件的容量,硬件的規(guī)格不應(yīng)超過嵌入式軟件的最低要求。
所有嵌入式軟件系統(tǒng)都設(shè)計為高度可靠和穩(wěn)定。它們需要在容納它們的設(shè)備的整個生命周期內(nèi)以一致的響應(yīng)時間和功能執(zhí)行任務(wù)。