複製鏈接
請複製以下鏈接發送給好友

嵌入式

鎖定
嵌入式即嵌入式系統,IEEE(美國電氣和電子工程師協會)對其定義是用於控制、監視或者輔助操作機器和設備的裝置,是一種專用的計算機系統;國內普遍認同的嵌入式系統定義是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統;從應用對象上加以定義來説,嵌入式系統是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。
嵌入式系統作為裝置或設備的一部分,它是一個控制程序存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操作系統,但大多數嵌入式系統都是由單個程序實現整個控制邏輯。
中文名
嵌入式系統
外文名
Embedded System
應用於
工業、國防
標準制訂
IEEE

嵌入式嵌入式系統組成

一個嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,
嵌入式圖標 嵌入式圖標
嵌入式計算機系統是整個嵌入式系統的核心,由硬件層、中間層、系統軟件層和應用軟件層組成。執行裝置也稱為被控對象,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。執行裝置可以很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也可以很複雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種傳感器,從而可以執行各種複雜的動作和感受各種狀態信息。

嵌入式硬件層

硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式處理器基礎上添加電源電路、時鐘電路和存儲器電路,就構成了一個嵌入式核心控制模塊。其中操作系統和應用程序都可以固化在ROM中。
(1)嵌入式微處理器
嵌入式系統硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在於嵌入式微處理器大多工作在為特定用户羣所專用設計的系統中,它將通用CPU許多由板卡完成的任務集成在芯片內部,從而有利於嵌入式系統在設計時趨於小型化,同時還具有很高的效率和可靠性。
嵌入式微處理器的體系結構可以採用馮·諾依曼體系或哈佛體系結構指令系統可以選用精簡指令系統(Reduced Instruction Set Computer,RISC)和複雜指令系統CISC(Complex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數據通道快速執行每一條指令,從而提高了執行效率並使CPU硬件結構設計變得更為簡單。
嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率數據總線寬度,或集成了不同的外設和接口。據不完全統計,全世界嵌入式微處理器已經超過1000多種,體系結構有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導市場,僅以32位的產品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據具體的應用而決定的。
(2)存儲器
嵌入式系統需要存儲器來存放和執行代碼。嵌入式系統的存儲器包含Cache、主存和輔助存儲器。
1、Cache
Cache是一種容量小、速度快的存儲器陣列它位於主存和嵌入式微處理器內核之間,存放的是一段時間微處理器使用最多的程序代碼和數據。在需要進行數據讀取操作時,微處理器儘可能的從Cache中讀取數據,而不是從主存中讀取,這樣就大大改善了系統的性能,提高了微處理器和主存之間的數據傳輸速率。Cache的主要目標就是:減小存儲器(如主存和輔助存儲器)給微處理器內核造成的存儲器訪問瓶頸,使處理速度更快,實時性更強。
嵌入式系統中Cache全部集成在嵌入式微處理器內,可分為數據Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會把Cache集成進去。
2、主存
主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統和用户的程序及數據。它可以位於微處理器的內部或外部,其容量為256KB~1GB,根據具體的應用而定,一般片內存儲器容量小,速度快,片外存儲器容量大。
常用作主存的存儲器有:
ROM類:NOR Flash、EPROM和PROM等。
RAM類:SRAM、DRAM和SDRAM等。
其中NOR Flash 憑藉其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。
3、輔助存儲器
輔助存儲器用來存放大數據量的程序代碼或信息,它的容量大、但讀取速度與主存相比就慢的很多,用來長期保存用户的信息。
嵌入式系統中常用的外存有:硬盤、NAND Flash、CF卡、MMC和SD卡等。
(3)通用設備接口和I/O接口
嵌入式系統和外界交互需要一定形式的通用設備接口,如A/D、D/A、I/O等,外設通過和片外其他設備的或傳感器的連接來實現微處理器的輸入/輸出功能。每個外設通常都只有單一的功能,它可以在芯片外也可以內置芯片中。外設的種類很多,可從一個簡單的串行通信設備到非常複雜的802.11無線設備。
嵌入式系統中常用的通用設備接口有A/D(模/數轉換接口)、D/A(數/模轉換接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太網接口)、USB(通用串行總線接口)、音頻接口、VGA視頻輸出接口、I2C(現場總線)、SPI(串行外圍設備接口)和IrDA(紅外線接口)等。

嵌入式中間層

硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統上層軟件與底層硬件分離開來,使系統的底層驅動程序與硬件無關,上層軟件開發人員無需關心底層硬件的具體情況,根據BSP 層提供的接口即可進行開發。該層一般包含相關底層硬件的初始化、數據的輸入/輸出操作和硬件設備的配置功能。BSP具有以下兩個特點。
硬件相關性:因為嵌入式實時系統的硬件環境具有應用相關性,而作為上層軟 件與硬件平台之間的接口,BSP需要為操作系統提供操作和控制具體硬件的方法。
操作系統相關性:不同的操作系統具有各自的軟件層次結構,因此,不同的操作系統具有特定的硬件接口形式。
實際上,BSP是一個介於操作系統和底層硬件之間的軟件層次,包括了系統中大部分與硬件聯繫緊密的軟件模塊。設計一個完整的BSP需要完成兩部分工作:嵌入式系統的硬件初始化以及BSP功能,設計硬件相關的設備驅動 [1]  [2] 

嵌入式系統特點

1)可裁剪性。支持開放性和可伸縮性的體系結構
2)強實時性。EOS實時性一般較強,可用於各種設備控制中。
3)統一的接口。提供設備統一的驅動接口。
4)操作方便、簡單、提供友好的圖形GUI和圖形界面,追求易學易用。
提供強大的網絡功能,支持TCP/IP協議及其他協議,提供TCP/UDP/IP/PPP協議支持及統一的MAC訪問層接口,為各種移動計算設備預留接口。
5)強穩定性,弱交互性嵌入式系統一旦開始運行就不需要用户過多的干預、這就要負責系統管理的EOS具有較強的穩定性。嵌入式操作系統用户接口一般不提供操作命令,它通過系統的調用命令向用户程序提供服務。
6)固化代碼。在嵌入式系統中,嵌入式操作系統和應用軟件被固化在嵌入式系統計算機的ROM中。
7)更好的硬件適應性,也就是良好的移植性。
8)嵌入式系統和具體應用有機地結合在一起,它的升級換代也是和具體產品同步進行,因此嵌入式系統產品一旦進入市場,具有較長的生命週期。 [2] 

嵌入式解決方案

基於嵌入式系統的RFID手持機系統方案
在基於嵌入式系統的RFID 手持機系統設計中,以微處理器LPC2142 為主控制器,根據系統的需求外擴了SRAM、Flash、SD 卡、鍵盤、LCD 顯示、聲響提示進行數據處理、數據存儲、人機交互以及出錯報警提示,通過USB 接口可以與主機進行數據通信,背光模塊可以為LCD 和鍵盤提供背光,電壓檢測模塊通過核心處理器的A/D 轉換器進行電池電壓的檢測,從而間接檢測出電池的剩餘電量,RF 模塊能夠進行讀寫器與標籤之間射頻信號的收發,通過JTAG 接口可以進行程序的調試與下載。電源部分可以為系統中需要電源的各個模塊提供電源,這是本文設計的重點內容。
嵌入式智能平台在醫療儀器行業的應用方案
“EVOC”嵌入式智能平台在醫療儀器行業的應用。系統一般由多台監護儀和一台中央護士工作站組成,監護儀採用“EVOC”104-1541CLDN型全功能嵌入式工業主板為核心操作平台。該主板僅有手掌的一半大小,板上集成了超低功耗的NS GX 300MHz CPU處理芯片、 SDRAM、CRT/LCD控制、10/100Mbps網絡接口、Compact Flash、IDE、FDD、兩串一併、二個USB、一個115Kbps IrDA紅外接口、1~255秒可編程看門狗定時器、PS2 鍵盤和鼠標,支持國內醫療行業最通用的PC/104接口,系統通過該接口擴展的用户板完成包括血壓、血氧、體温、呼吸等一系列傳感探測器的信號採集,進行實時處理,最後結果可經由多種形式輸出。該平台支持高精度LCD和VGA兩種顯示模式,在板視頻最大分辨率可達1024*768,支持通用的熱敏打印接口,並可通過標準串口與中央護士工作站相互通訊。在平台操作系統的選擇方面,我們給予客户更多的自由度,打破了傳統多參數儀僅支持單一DOS操作系統的侷限,以提供更加靈活廣泛的應用模式。 [2] 

嵌入式系統初始化

系統初始化過程可以分為3個主要環節,按照自底向上、從硬件到軟件的次序依次為:片級初始化、板級初始化和系統級初始化。

嵌入式片級

完成嵌入式微處理器的初始化,包括設置嵌入式微處理器的核心寄存器控制寄存器、嵌入式微處理器核心工作模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態逐步設置成系統所要求的工作狀態。這是一個純硬件的初始化過程。

嵌入式板級

完成嵌入式微處理器以外的其他硬件設備的初始化。另外,還需設置某些軟件的數據結構和參數,為隨後的系統級初始化和應用程序的運行建立硬件和軟件環境。這是一個同時包含軟硬件兩部分在內的初始化過程。

嵌入式系統

該初始化過程以軟件初始化為主,主要進行操作系統的初始化。BSP將對嵌入式微處理器的控制權轉交給嵌入式操作系統,由操作系統完成餘下的初始化操作,包含加載和初始化與硬件無關的設備驅動程序,建立系統內存區,加載並初始化其他系統軟件模塊,如網絡系統、文件系統等。最後,操作系統創建應用程序環境,並將控制權交給應用程序的入口。 [2] 

嵌入式系統軟件

系統軟件層由實時多任務操作系統(Real-time Operation System,RTOS)、文件系統、圖形用户接口(Graphic User Interface,GUI)、網絡系統及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發平台。

嵌入式EOS

嵌入式操作系統(Embedded Operation System,EOS)是一種用途廣泛的系統軟件,過去它主要應用於工業控制和國防系統領域。EOS負責嵌入系統的全部軟、硬件資源的分配、任務調度,控制、協調併發活動。它必須體現其所在系統的特徵,能夠通過裝卸某些模塊來達到系統所要求的功能。已推出一些應用比較成功的EOS產品系列。隨着Internet技術的發展、信息家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌入式操作系統在系統實時高效性、硬件的相關依賴性、軟件固化以及應用的專用性等方面具有較為突出的特點。EOS是相對於一般操作系統而言的,它除具有了一般操作系統最基本的功能,還有以下功能:如任務調度、同步機制、中斷處理、文件處理等。

嵌入式文件系統

通用操作系統的文件系統通常具有以下功能:
提供用户對文件操作的命令。
提供用户共享文件的機制。
管理文件的存儲介質。
提供文件的存取控制機制,保障文件及文件系統的安全性。
提供文件及文件系統的備份和恢復功能。
提供對文件的加密和解密功能。
嵌入式文件系統比較簡單,主要提供文件存儲、檢索和更新等功能,一般不提供保護和加密等安全機制。它以系統調用和命令方式提供文件的各種操作,主要有:
設置、修改對文件和目錄的存取權限。
提供建立、修改、改變和刪除目錄等服務。
提供創建、打開、讀寫、關閉和撤銷文件等服務。
文件系統的特點:
1)兼容性。嵌入式文件系統通常支持幾種標準的文件系統,如FAT32、JFFS2、YAFFS等。
2)實時文件系統。除支持標準的文件系統外,為提高實時性,有些嵌入式文件系統還支持自定義的實時文件系統,這些文件系統一般採用連續的方式存儲文件。
3)可裁剪、可配置。根據嵌入式系統的要求選擇所需的文件系統,選擇所需的存儲介質,配置可同時打開的最大文件數等。
4)支持多種存儲設備。嵌入式系統的外存形式多樣了,嵌入式文件系統需方便的掛接不同存儲設備的驅動程序,具有靈活的設備管理能力。同時根據不同外部存儲器的特點,嵌入式文件系統還需要考慮其性能、壽命等因素,發揮不同外存的優勢,提高存儲設備的可靠性和使用性。

嵌入式圖形接口

GUI的廣泛應用是當今計算機發展的重大成就之一,他極大地方便了非專業用户的使用人們從此不再需要死記硬背大量的命令,取而代之的是可用用通過窗口、菜單、按鍵等方式來方便地進行操作。而嵌入式GUI具有下面幾個方面的基本要求:輕型、佔用資源少、高性能、高可靠性、便於移植、可配置等特點。
嵌入式系統中的圖形界面,一般採用下面的幾種方法實現:
針對特定的圖形設備輸出接口,自行開發相關的功能函數。
購買針對特定嵌入式系統的圖形中間軟件包。
採用源碼開放的嵌入式GUI系統。
使用獨立軟件開發商提供的嵌入式GUI產品。

嵌入式應用軟件層

應用軟件層是由基於實時系統開發的應用程序組成,用來實現對被控對象的控制功能。功能層是要面對被控對象和用户,為方便用户操作,往往需要提供一個友好的人機界面。
對於一些複雜的系統,在系統設計的初期階段就要對系統的需求進行分析,確定系統的功能,然後將系統的功能映射到整個系統的硬件、軟件和執行裝置的設計過程中,稱為系統的功能實現。 [1] 

嵌入式發展前景

嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關係最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對複雜軟件系統往往力不從心(例如嵌入式操作系統原理和複雜應用軟件等)。
另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果這類人對硬件原理和接口有較好的掌握,也完全可以寫BSP和硬件驅動程序。嵌入式硬件設計完後,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟件,這佔了嵌入式系統的最主要工作(有很多公司將硬件設計包給了專門的硬件公司,稍複雜的硬件都交給台灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的),所以軟件研發人員完全不用擔心在嵌入式市場上的無用武之地,越是智能設備越是複雜系統,軟件越起關鍵作用,而且這是趨勢。
嵌入式領域較新,發展非常快,很多軟硬件技術出現的時間都不太長(如ARM處理器嵌入式操作系統、LINUX操作系統),大多數人沒有條件接觸或進入嵌入式行業,更談不上能有機會接受專業人士的指導。因此,踏進這個行業的難度比較大,嵌入式人才稀缺,身價自然也水漲船高。
權威部門統計,我國嵌入式人才缺口每年50萬人左右。根據前程無憂網發佈的調查報告,嵌入式軟件開發是未來幾年最熱門和最受歡迎的職業之一,具有10年工作經驗的高級嵌入式工程師年薪在30萬元左右。即使是初級的嵌入式軟件開發人員,平均月薪也達到了3000—5000元,中高級的嵌入式工程師月薪平均超過10000元。 做軟件實際上有高下之分,開發語言從機器語言、彙編到C、C++,再到紅透半邊天的Java、C#等,該學哪種呢?為什麼有些開發者工資低,而有些開發者千金難求?為什麼3年的Java高級程序員薪水僅僅8k-10k,而一個Linux底層C語言程序員兩年經驗就敢要10k的薪水?
還是門檻,比如月薪15k的Linux嵌入式開發職位,門檻就有 Linux系統、Shell編程、Linux開發環境、C語言、ARM硬件平台、數據結構、Linux內核、驅動程序等,粗略數數就有8道關口,他需要非常熟悉整個的計算機體系,能做出實際的產品,而Java的開發者卻僅僅是會使用名叫Java的語言工具,始終高高飄在眾多層次之上,開發項目非常快,甚至可以不知道OSI模型,很可能自始至終都是軟件藍領。
嵌入式開發本身也有高下之分,至少包含嵌入式應用程序工程師和底層的驅動內核工程師兩種。前者同樣是使用現成工具進行簡單勞動,比如使用J2ME開發小遊戲或者進行一些界面開發,而後者是根據芯片具體情況把操作系統(如Linux)移植到上面,同時編寫必要的驅動程序,改寫相應的內核代碼。很顯然後者是一個公司真正的技術核心。而技術核心的工資很可能是其他開發者的數倍。
嵌入式開發突出強制和項目,學習不僅僅是學習幾項技術,而是構建你的知識體系。比如學習嵌入式開發,就要從基礎Linux,C語言,數據結構開始,到ARM,彙編,Linux內核、驅動等,更重要的是更多的項目練習,設計至少5個項目,多達10000行強制核心代碼的編寫可以讓你真正獲得知識。為進入外企或者出國做準備。未來的幾年內,隨着信息化,智能化,網絡化的發展,嵌入式系統技術也將獲得廣闊的發展空間。美國著名未來學家尼葛洛龐帝99年1月訪華時預言,4~5年後嵌入式智能(電腦) 工具將是PC和因特網之後最偉大的發明。我國著名嵌入式系統專家沈緒榜院士98年11月在武漢全國第11次微機學術交流會上發表的《計算機的發展與技術》一文中,對未來10年以嵌入式芯片為基礎的計算機工業進行了科學的闡述和展望。1999年世界電子產品產值已超過12000億美元,2000年達到13000億美元,預計2005年,銷售額將達18000億美元。一些先進的PDA在顯示屏幕上已實現漢字寫入、短消息語音發佈,日用範圍也將日益廣闊。對於企業專用解決方案,如物流管理、條碼掃描、移動信息採集等,這種小型手持嵌入式系統將發揮巨大的作用。自動控制領域,不僅可以用於ATM機,自動售貨機,工業控制等專用設備,和移動通訊設備結合、GPS、娛樂相結合,嵌入式系統同樣可以發揮巨大的作用。
經濟型閃存將會成為嵌入式市場的一個方向。 [3] 

嵌入式附錄

嵌入式相關專業術語:
Embedded Control Channel:嵌入式控制通道。
Embedded Document Architecture:嵌入式文件架構。
Embedded Linking and Control:嵌入式鏈路及控制。
Embedded Micro Internetworking Technology:嵌入式微型互聯網技術。
Embedded System Area Network:嵌入式系統域網。
Embedded System Conference:嵌入式系統會議。
Novell Embedded Systems Technology Novell:嵌入式系統技術。
Rapid Object-Oriented Process for Embedded Systems:嵌入式快速麪向對象過程。
embedded Java:嵌入式Java
embedded Web server:嵌入式網絡服務器。
embedded controller:嵌入式控制器
embedded servo system:嵌入式伺服系統。
embedded software:嵌入式軟件。
embedded test:嵌入式測試。
controller, embedded:嵌入式控制器。
Java embedded server Java:嵌入式Java服務器。 [3] 
參考資料
  • 1.    陳駿勰 嵌入式系統軟件自動生成方法研究 軟件導刊 2017-12-15
  • 2.    王欣; 郭鑫; 劉旭 彈 基於嵌入式系統和虛擬現實技術的制導律仿真平台設計與實現 箭與制導學報 2017-12-12
  • 3.    王學影; 王歡; 陸藝; 郭斌; 楊維和 ABS調節器檢測儀的嵌入式系統設計 電子器件 2017-12-27