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