嵌入式

嵌入式

IEEE(Institute of Electrical and Electronics Engineers,美國電氣和電子工程師協會)對嵌入式系統的定義:“用於控制、監視或者輔助操作機器和設備的裝置”。原文為:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants)。嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常,嵌入式系統是一個控制程式存儲在ROM中的嵌入式處理器控制板。事實上,所有帶有數字接口的設備,如手錶、微波爐、錄像機、汽車等,都使用嵌入式系統,有些嵌入式系統還包含作業系統,但大多數嵌入式系統都是由單個程式實現整個控制邏輯。 從套用對象上加以定義,嵌入式系統是軟體和硬體的綜合體,還可以涵蓋機械等附屬裝置。國內普遍認同的嵌入式系統定義為:以套用為中心,以計算機技術為基礎,軟硬體可裁剪,適應套用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。

基本信息

企業開發

嵌入式設計是企業電子產品設計的重要組成,目前國內外中小型企業內部都建立了自己的嵌入式開發團隊。團隊所需的人員職位構成包括:(1)系統設計工程師 (2)硬體工程師 (3)底層驅動工程師 (4)Linux系統工程師 (5)套用設計工程師等。

對於企業而言,嵌入式開發越來越朝著敏捷開發、專業操作的方向發展。國內也逐步湧現出一些專門定製開發電子產品、進行嵌入式外包的專業公司。

對於企業而言,隨時關注嵌入式承載硬體的發展尤其重要,尤其是ARM、FPGA、MCU的結構、工藝、速度正在經歷著不斷的變革。

系統組成

嵌入式圖示嵌入式圖示

一個嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,

嵌入式計算機系統是整個嵌入式系統的核心,由硬體層、中間層、系統軟體層和套用軟體層組成。執行裝置也稱為被控對象,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。執行裝置可以很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也可以很複雜,如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-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(紅外線接口)等。

中間層

硬體層與軟體層之間為中間層,也稱為硬體抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統上層軟體與底層硬體分離開來,使系統的底層驅動程式與硬體無關,上層軟體開發人員無需關心底層硬體的具體情況,根據BSP 層提供的接口即可進行開發。該層一般包含相關底層硬體的初始化、數據的輸入/輸出操作和硬體設備的配置功能。BSP具有以下兩個特點。

硬體相關性:因為嵌入式實時系統的硬體環境具有套用相關性,而作為上層軟 件與硬體平台之間的接口,BSP需要為作業系統提供操作和控制具體硬體的方法。

作業系統相關性:不同的作業系統具有各自的軟體層次結構,因此,不同的作業系統具有特定的硬體接口形式。

實際上,BSP是一個介於作業系統和底層硬體之間的軟體層次,包括了系統中大部分與硬體聯繫緊密的軟體模組。設計一個完整的BSP需要完成兩部分工作:嵌入式系統的硬體初始化以及BSP功能,設計硬體相關的設備驅動。

解決方案

基於嵌入式系統的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作業系統的局限,以提供更加靈活廣泛的套用模式。

系統初始化

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

片級

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

板級

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

系統

該初始化過程以軟體初始化為主,主要進行作業系統的初始化。BSP將對嵌入式微處理器的控制權轉交給嵌入式作業系統,由作業系統完成餘下的初始化操作,包含載入和初始化與硬體無關的設備驅動程式,建立系統記憶體區,載入並初始化其他系統軟體模組,如網路系統、檔案系統等。最後,作業系統創建應用程式環境,並將控制權交給應用程式的入口。

(2)硬體相關的設備驅動程式

BSP的另一個主要功能是硬體相關的設備驅動。硬體相關的設備驅動程式的初始化通常是一個從高到低的過程。儘管BSP中包含硬體相關的設備驅動程式,但是這些設備驅動程式通常不直接由BSP使用,而是在系統初始化過程中由BSP將他們與作業系統中通用的設備驅動程式關聯起來,並在隨後的套用中由通用的設備驅動程式調用,實現對硬體設備的操作。與硬體相關的驅動程式是BSP設計與開發中另一個非常關鍵的環節。

系統軟體

系統軟體層由實時多任務作業系統(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產品。

套用軟體層

套用軟體層是由基於實時系統開發的應用程式組成,用來實現對被控對象的控制功能。功能層是要面對被控對象和用戶,為方便用戶操作,往往需要提供一個友好的人機界面。

對於一些複雜的系統,在系統設計的初期階段就要對系統的需求進行分析,確定系統的功能,然後將系統的功能映射到整個系統的硬體、軟體和執行裝置的設計過程中,稱為系統的功能實現。

發展前景

嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。

一類是學電子工程、通信工程等偏硬體專業出身的人,他們主要是搞硬體設計,有時要開發一些與硬體關係最密切的最底層軟體,如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、娛樂相結合,嵌入式系統同樣可以發揮巨大的作用。

經濟型快閃記憶體將會成為嵌入式市場的一個方向。

自然科學技術

自然科學,計算機科學。

相關詞條

相關搜尋

熱門詞條