這主要是從應用對象上加以定義,從右圖中能夠看出嵌入式系統是軟件和硬件的綜合體,還能夠涵蓋機械等附屬裝置。
國內廣泛認同的嵌入式系統定義爲:以應用爲中心,以計
嵌入式Web技術編程
算機技術爲基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。
能夠這樣認爲,嵌入式系統是一種專用的計算機系統,做爲裝置或設備的一部分。一般,嵌入式系統是一個控制程序存儲在ROM中的
嵌入式處理器控制板。事實上,全部帶有數字接口的設備,如手錶、微波爐、
錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含操做系統,但大多數嵌入式系統都是是由單個程序實現整個控制邏輯。
嵌入式圖標安全
嵌入式培訓是知足廣大嵌入式愛好者需求而開設的高級課程。通常培訓機構的就業班都是從職業規劃角度出發,系統性的對廣大愛好者進行培訓。
培養一批精英的嵌入式開發和嵌入式系統工程師須要更多的教學經驗,須要更多的實踐經驗。
嵌入式培訓通常分爲以下幾個類別:
一、針對高校學生及轉行的就業培訓(長期培訓),通常要求被培訓人員具備編程基礎,時間爲四或五個月左右,通常的機構是保證就業的;
二、針對在職工程師的充電培訓,通常時間較短,學習實踐通常在週末及節假日,學習者具有必定基礎;
一個嵌入式系統裝置通常都由嵌入式計算機系統和執行裝置組成,嵌入式計算機系統是整個嵌入式系統的核心,由硬件層、中間層、系統軟件層和應用軟件層組成。執行裝置也稱爲被控對象,它能夠接受嵌入式計算機系統發出的控制命令,執行所規定的操做或任務。執行裝置能夠很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也能夠很複雜,如SONY 智能機器狗,上面集成了多個微小型控制電機和多種傳感器,從而能夠執行各類複雜的動做和感覺各類狀態信息。
下面對嵌入式計算機系統的組成進行介紹。
1. 硬件層
硬件層中包含
嵌入式微處理器、
存儲器(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-2所 示。
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(紅外線接口)等。
2. 中間層
硬件層與軟件層之間爲中間層,也稱爲硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統上層軟件與底層硬件分離開來,使系統的底層驅動程序與硬件無關,上層軟件開發人員無需關心底層硬件的具體狀況,根據BSP 層提供的接口便可進行開發。該層通常包含相關底層硬件的初始化、數據的輸入/輸出操做和硬件設備的配置功能。BSP具備如下兩個特色。
硬件相關性:由於嵌入式實時系統的硬件環境具備應用相關性,而做爲上層軟 件與硬件平臺之間的接口,BSP須要爲操做系統提供操做和控制具體硬件的方法。
操做系統相關性:不一樣的操做系統具備各自的軟件層次結構,所以,不一樣的操做系統具備特定的硬件接口形式。
實際上,BSP是一個介於操做系統和底層硬件之間的軟件層次,包括了系統中大部分與硬件聯繫緊密的軟件模塊。設計一個完整的BSP須要完成兩部分工做:嵌入式系統的硬件初始化以及BSP功能,設計硬件相關的設備驅動。
嵌入式系統(Embedded System)--「嵌入到特定設備中的計算機系統。
1、定義:
嵌入式系統是一種「徹底嵌入到受控器件內部,爲特定應用而設計的專用計算機系統」。
嵌入式系統是相對桌面系統來說的,凡是帶有微處理器的專用軟硬件系統均可以稱爲嵌入式系統。做爲系統核心的微處理器又包括三類:微控制器(MCU)、數字信號處理器(DSP)、嵌入式微處理器(MPU)。嵌入式比較準確一個定義以下:系統以應用爲中心、以計算機技術爲基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。
[1]
2、說明:
受控器件:
1.消費電子:mp三、手機、電梯、汽車...
2.智能家電:
數字電視、微波爐、數碼相機、空調...
3.網絡設備:交換機、路由器...
4.醫療儀器:..各類醫療器械...
5.航天設備:衛星、航天飛機、月球探測儀...
6.工業控制:控制主機,智能監控...
計算機系統:包括硬件和軟件系統、且軟、硬件都可裁剪,但必須有最小系統要求。
編輯本段嵌入式系統硬件初始化
系統初始化過程能夠分爲3個主要環節,按照自底向上、從硬件到軟件的次序依次爲:片級初始化、板級初始化和系統級初始化。
片級初始化
完成嵌入式微處理器的初始化,包括設置嵌入式微處理器的核心寄存器和控制寄存器、嵌入式微處理器核心工做模式和嵌入式微處理器的局部總線模式等。片級初始化把嵌入式微處理器從上電時的默認狀態逐步設置成系統所要求的工做狀態。這是一個純硬件的初始化過程。
板級初始化
完成嵌入式微處理器之外的其餘硬件設備的初始化。另外,還需設置某些軟件的數據結構和參數,爲隨後的系統級初始化和應用程序的運行創建硬件和軟件環境。這是一個同時包含軟硬件兩部分在內的初始化過程。
系統初始化
該初始化過程以軟件初始化爲主,主要進行操做系統的初始化。BSP將對
嵌入式微處理器的控制權轉交給
嵌入式操做系統,由操做系統完成餘下的初始化操做,包含加載和初始化與硬件無關的設備驅動程序,創建系統內存區,加載並初始化其餘系統軟件模塊,如網絡系統、文件系統等。最後,操做系統建立應用程序環境,並將控制權交給應用程序的入口。
(2)硬件相關的設備驅動程序
BSP的另外一個主要功能是硬件相關的設備驅動。硬件相關的設備驅動程序的初始化一般是一個從高到低的過程。儘管BSP中包含硬件相關的設備驅動程序,可是這些設備驅動程序一般不直接由BSP使用,而是在系統初始化過程當中由BSP將他們與操做系統中通用的設備驅動程序關聯起來,並在隨後的應用中由通用的設備驅動程序調用,實現對硬件設備的操做。與硬件相關的驅動程序是BSP設計與開發中另外一個很是關鍵的環節。
3)系統軟件層
系統軟件層由
實時多任務操做系統(Real-time Operation System,RTOS)、文件系統、圖形用戶接口(Graphic User Interface,GUI)、網絡系統及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎和開發平臺。
(1)嵌入式操做系統
嵌入式操做系統(Embedded Operation System,EOS)是一種用途普遍的系統軟件,過去它主要應用與工業控制和國防系統領域。EOS負責嵌入系統的所有軟、硬件資源的分配、任務調度,控制、協調併發活動。它必須體現其所在系統的特徵,可以經過裝卸某些模塊來達到系統所要求的功能。目前,已推出一些應用比較成功的EOS產品系列。隨着Internet技術的發展、信息家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌入式操做系統在系統實時高效性、硬件的相關依賴性、軟件固化以及應用的專用性等方面具備較爲突出的特色。EOS是相對於通常操做系統而言的,它除具備了通常操做系統最基本的功能,如任務調度、同步機制、中斷處理、文件處理等外,還有如下
編輯本段嵌入式操做系統的特色
1)可裁剪性。支持開放性和可伸縮性的體系結構。
2)強實時性。EOS實時性通常較強,可用於各類設備控制中。
3)統一的接口。提供設備統一的驅動接口。
4)操做方便、簡單、提供友好的圖形GUI和圖形界面,追求易學易用。
提供強大的網絡功能,支持TCP/IP協議及其餘協議,提供TCP/UDP/IP/PPP協議支持及統一的MAC訪問層接口,爲各類移動計算設備預留接口。
5)強穩定性,弱交互性。嵌入式系統一旦開始運行就不須要用戶過多的干預、這就要負責系統管理的EOS具備較強的穩定性。嵌入式操做系統的用戶接口通常不提供操做命令,它經過系統的調用命令向用戶程序提供服務。
6)固化代碼。在嵌入式系統中,嵌入式操做系統和應用軟件被固化在嵌入式系統計算機的ROM中。
7)更好的硬件適應性,也就是良好的移植性。
編輯本段嵌入式系統的文件系統
通用操做系統的文件系統一般具備如下功能:
提供用戶對文件操做的命令。
提供用戶共享文件的機制。
管理文件的存儲介質。
提供文件的存取控制機制,保障文件及文件系統的安全性。
提供文件及文件系統的備份和恢復功能。
提供對文件的加密和解密功能。
嵌入式文件系統比較簡單,主要提供文件存儲、檢索和更新等功能,通常不提供保護和加密等安全機制。它以系統調用和命令方式提供文件的各類操做,主要有:
設置、修改對文件和目錄的存取權限。
提供創建、修改、改變和刪除目錄等服務。
提供建立、打開、讀寫、關閉和撤銷文件等服務。
編輯本段嵌入式文件系統的特色
1)兼容性。嵌入式文件系統一般支持幾種標準的文件系統,如FAT3二、JFFS二、YAFFS等。
2)實時文件系統。除支持標準的文件系統外,爲提升實時性,有些嵌入式文件系統還支持自定義的實時文件系統,這些文件系統通常採用連續的方式存儲文件。
3)可裁剪、可配置。根據嵌入式系統的要求選擇所需的文件系統,選擇所需的存儲介質,配置可同時打開的最大文件數等。
4)支持多種存儲設備。嵌入式系統的外存形式多樣了,嵌入式文件系統需方便的掛接不一樣存儲設備的驅動程序,具備靈活的設備管理能力。同時根據不一樣外部存儲器的特色,嵌入式文件系統還須要考慮其性能、壽命等因素,發揮不一樣外存的優點,提升存儲設備的可靠性和使用性。
編輯本段圖形用戶接口(GUI)
GUI的普遍應用是當今計算機發展的重大成就之一,他極大地方便了非專業用戶的使用人們今後再也不須要死記硬背大量的命令,取而代之的是可用用經過窗口、菜單、按鍵等方式來方便地進行操做。而嵌入式GUI具備下面幾個方面的基本要求:輕型、佔用資源少、高性能、高可靠性、便於移植、可配置等特色。
嵌入式系統中的圖形界面,通常採用下面的幾種方法實現:
針對特定的圖形設備輸出接口,自行開發相關的功能函數。
購買針對特定嵌入式系統的圖形中間軟件包。
採用源碼開放的嵌入式GUI系統。
使用獨立軟件開發商提供的嵌入式GUI產品。
4)應用軟件層
應用軟件層是由基於實時系統開發的應用程序組成,用來實現對被控對象的控制功能。功能層是要面對被控對象和用戶,爲方便用戶操做,每每須要提供一個友好的人機界面。
對於一些複雜的系統,在系統設計的初期階段就要對系統的需求進行分析,肯定系統的功能,而後將系統的功能映射到整個系統的硬件、軟件和執行裝置的設計過程當中,稱爲系統的功能實現。
嵌入式就業發展空間相對較大。嵌入式系統是當前最熱門、最具發展前途的IT應用領域之一。包括手機、電子字典、可視電話、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等都是典型的嵌入式系統。所以,經過嵌入式培訓成爲專業的嵌入式技術人才,其職業發展空間較大。
編輯本段嵌入式人才的發展方向
嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,一般這些設備的硬件資源(如處理器、
存儲器等)很是有限,而且對成本很敏感,有時對實時響應要求很高等。特別是隨着消費家電的智能化,嵌入式更顯重要。像咱們日常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。
嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。
一類是學電子工程、通訊工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關係最密切的最底層軟件,如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、娛樂相結合,嵌入式系統一樣能夠發揮巨大的做用。