物聯網,歷史發展,特點,系統組成,簡介,硬體層,中間層,系統軟體層,套用領域,工業控制,交通管理,信息家電,家庭智慧型管理,POS網路,環境工程,國防與航天,現狀發展,發展現狀,發展趨勢,系統方案,學習方法,調試,Windows,Linux,相關信息,實例,類型,控制循環,非搶先式任務,搶先式定時器,搶先式任務,微核心與外核心,虛擬機,檢查點計算,辦公用(宏核心)作業系統,Exotic custom 作業系統,委員會,
物聯網
隨著醫療電子、智慧型家居、物流管理和電力控制等方面的不斷風靡,嵌入式系統利用自身積累的底蘊經驗,重視和把握這個機會,想辦法在已經成熟的平台和產品基礎上與套用感測單元的結合,擴展物聯和感知的支持能力,發掘某種領域物聯網套用。作為物聯網重要技術組成的嵌入式系統,嵌入式系統的視角有助於深刻地、全面地理解物聯網的本質。
這有兩層意思:第一,
物聯網的核心仍然是
網際網路,是在網際網路基礎上的延伸和擴展的網路;第二,其用戶端延伸和擴展到了任何物品與物品之間,進行信息交換和通信,必須具備嵌入式系統構建的智慧型終端。因此,物聯網系統是通過射頻識別(RFID)、紅外感應器、
全球定位系統、
雷射掃描器等信息感測設備,按約定的協定,把任何物品與網際網路相連線,進行信息交換和通信的系統架構。
物聯網不僅僅提供了
感測器的連線,其本身也具有智慧型處理的能力,能夠對物體實施智慧型控制,這就是我們嵌入式系統所能做到的。誠然,物聯網將感測器和智慧型處理相結合,利用雲計算、模式識別等各種智慧型技術,擴充其套用領域。從感測器獲得的海量信息中分析、加工和處理出有意義的數據,以適應不同用戶的不同需求,發現新的套用領域和套用模式。
歷史發展
從20世紀七十年代單片機的出現到各式各樣的嵌入式微
處理器,微控制器的大規模套用,嵌入式系統已經有了近30年的發展歷史。
嵌入式系統的出現最初是基於
單片機的。70年代單片機的出現,使得汽車、家電、
工業機器、通信裝置以及成千上萬種產品可以通過內嵌電子裝置來獲得更佳的使用性能:更容易使用、更快、更便宜。這些裝置已經初步具備了嵌入式的套用特點,但是這時的套用只是使用8位的晶片,執行一些
單執行緒的
程式,還談不上“系統”的概念。
最早的單片機是Intel公司的 8048,它出現在1976年。Motorola同時推出了68HC05,Zilog公司推出了Z80系列,這些早期的單片機均含有256位元組的RAM、4K的ROM、4 個8位並口、1個全雙工
串列口、兩個16位定 時 器。之後在80年代初,Intel又進一步完善了8048,在它的基礎上研製成功了8051,這在
單片機的歷史上是值得紀念的一頁,迄今為止,51系列的單片機仍然是最為成功的單片機晶片,在各種產品中有著非常廣泛的套用。
從80年代早期開始,嵌入式系統的
程式設計師開始用商業級的“
作業系統”編寫嵌入式
套用軟體,這使得可以獲取更短的開發周期,更低的開發資金和更高的開發
效率,“嵌入式系統”真正出現了。確切點說,這個時候的
作業系統是一個實時核,這個實時核包含了許多傳統作業系統的特徵,包括
任務管理、任務間通訊、同步與相互排斥、中斷支持、
記憶體管理等功能。
其中比較著名的有Ready System 公司的VRTX、Integrated System Incorporation (ISI)的PSOS和IMG的VxWorks、QNX公司的QNX 等。這些
嵌入式作業系統都具有嵌入式的典型特點:它們均採用占先式的調度,回響的時間很短,任務執行的時間可以確定;系統
核心很小,具有可裁剪,可擴充和可移植性,可以移植到各種
處理器上;較強的實時和可靠性,適合嵌入式套用。這些嵌入式
實時多任務作業系統的出現,使得套用開發人員得以從小範圍的開發解放出來,同時也促使嵌入式有了更為廣闊的套用空間。
90年代以後,隨著對實時性要求的提高,軟體規模不斷上升,實時核逐漸發展為
實時多任務作業系統(RTOS),並作為一種軟體平台逐步成為目前國際嵌入式系統的主流。這時候更多的公司看到了嵌入式系統的廣闊發展前景,開始大力發展自己的
嵌入式作業系統。除了上面的幾家老牌公司以外,還出現了Palm OS,WinCE,嵌入式
Linux,Lynx,Nucleux,以及國內的Hopen,Delta Os等
嵌入式作業系統。隨著
嵌入式技術的發展前景日益廣闊,相信會有更多的
嵌入式作業系統軟體出現。
特點
嵌入式系統是面向用戶、面向產品、面向套用的,它必須與具體套用相結合才會具有生命力、才更具有優勢。因此可以這樣理解上述三個面向的含義,即嵌入式系統是與套用緊密結合的,它具有很強的專用性,必須結合實際系統需求進行合理的裁減利用。
◆嵌入式系統是將先進的
計算機技術、半導體技術和電子技術和各個行業的具體套用相結合後的產物,這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。所以,介入嵌入式系統行業,必須有一個正確的定位。例如
Palm之所以在
PDA領域占有70%以上的市場,就是因為其立足於個人電子消費品,著重發展圖形界面和多
任務管理;而風河的Vxworks之所以在火星車上得以套用,則是因為其高實時性和高可靠性。
◆嵌入式系統必須根據套用
需求對軟硬體進行裁剪,滿足套用系統的功能、可靠性、成本、體積等要求。所以,如果能建立相對通用的軟硬體基礎,然後在其上開發出適應各種需要的系統,是一個比較好的發展模式。目前的嵌入式系統的核心往往是一個只有幾K到幾十K
微核心,需要根據實際的使用進行功能擴展或者裁減,但是由於微核心的存在,使得這種擴展能夠非常順利的進行。
實際上,嵌入式系統本身是一個外延極廣的名詞,凡是與產品結合在一起的具有嵌入式特點的
控制系統都可以叫嵌入式系統,而且有時很難以給它下一個準確的定義。現在人們講嵌入式系統時,某種程度上指近些年比較熱的具有
作業系統的嵌入式系統,本文在進行分析和展望時,也沿用這一觀點。
一般而言,嵌入式系統的構架可以分成四個部分:
處理器、
存儲器、輸入輸出(I/O)和軟體(由於多數
嵌入式設備的
套用軟體和
作業系統都是緊密結合的,在這裡我們對其不加區分,這也是嵌入式系統和一般的PC作業系統的最大區別)。
這些年來掀起了嵌入式系統套用熱潮的原因主要有幾個方面:一是晶片技術的發展,使得單個晶片具有更強的處理能力,而且使集成多種
接口已經成為可能,眾多晶片生產廠商已經將注意力集中在這方面。另一方面的原因就是套用的需要,由於對產品可靠性、成本、更新換代要求的提高,使得嵌入式系統逐漸從純硬體實現和使用
通用計算機實現的套用中脫穎而出,成為近年來令人關注的焦點。
從上面的定義,我們可以看出嵌入式系統的幾個重要特徵:
2.專用性強。嵌入式系統的個性化很強,其中的
軟體系統和硬體的結合非常緊密,一般要針對硬體進行系統的移植,即使在同一品牌、同一系列的產品中也需要根據系統硬體的變化和增減不斷進行修改。同時針對不同的任務,往往需要對系統進行較大更改,
程式的編譯下載要和系統相結合,這種修改和
通用軟體的“升級”是完全兩個概念。
3.系統精簡。嵌入式系統一般沒有
系統軟體和
套用軟體的明顯區分,不要求其功能設計及實現上過於複雜,這樣一方面利於
控制系統成本,同時也利於實現系統安全。
4.高實時性的系統軟體(OS)是
嵌入式軟體的基本要求。而且軟體要求固態存儲,以提高速度;
軟體代碼要求高質量和高可靠性。
5.
嵌入式軟體開發要想走向標準化,就必須使用多任務的作業系統。嵌入式系統的
應用程式可以沒有
作業系統直接在晶片上運行;但是為了合理地調度多任務、利用系統資源、
系統函式以及和專家
庫函式接口,用戶必須自行選配RTOS(Real-Time Operating System)開發平台,這樣才能保證程式執行的實時性、可靠性,並減少開發時間,保障
軟體質量。
6.
嵌入式系統開發需要開發工具和環境。由於其本身不具備
自舉開發能力,即使設計完成以後用戶通常也是不能對其中的
程式功能進行修改的,必須有一套開發工具和環境才能進行開發,這些工具和環境一般是基於通用計算機上的軟硬體設備以及各種邏輯分析儀、
混合信號示波器等。開發時往往有主機和目標機的概念,主機用於
程式的開發,目標機作為最後的執行機,開發時需要交替結合進行。
7.嵌入式系統與具體套用有機結合在一起,升級換代也是同步進行。因此,嵌入式系統產品一旦進入市場,具有較長的生命周期。
8.為了提高運行速度和系統可靠性,嵌入式系統中的軟體一般都固化在存儲器晶片中。
系統組成
簡介
一個嵌入式系統裝置一般都由
嵌入式計算機系統和執行裝置組成,如圖1-1所示,嵌入式計算機系統是整個嵌入式系統的核心,由硬體層、中間層、系統軟體層和
套用軟體層組成。執行裝置也稱為被控
對象,它可以接受
嵌入式計算機系統發出的控制
命令,執行所規定的操作或任務。執行裝置可以很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也可以很複雜,如SONY
智慧型機器狗,上面集成了多個微小型控制電機和多種
感測器,從而可以執行各種複雜的動作和感受各種狀態信息。
硬體層
嵌入式系統硬體層的核心是
嵌入式微處理器,嵌入式微處理器與通用
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種以上的嵌入式微處理器。
嵌入式微處理器的選擇是根據具體的套用而決定的。
1>Cache
Cache是一種容量小、速度快的
存儲器陣列它位於主存和
嵌入式微處理器核心之間,存放的是最近一段時間微處理器使用最多的
程式代碼和數據。在需要進行數據讀取操作時,
微處理器儘可能的從Cache中讀取數據,而不是從主存中讀取,這樣就大大改善了系統的性能,提高了微處理器和主存之間的
數據傳輸速率。Cache的主要目標就是:減小
存儲器(如主存和輔助存儲器)給
微處理器核心造成的存儲器訪問瓶頸,使處理速度更快,實時性更強。
在嵌入式系統中Cache全部集成在
嵌入式微處理器內,可分為數據Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的
嵌入式微處理器才會把Cache集成進去。
2>主存
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無線設備。
中間層
硬體層與軟體層之間為中間層,也稱為硬體抽象層(Hardware Abstract Layer,HAL)或
板級支持包(Board Support Package,BSP),它將系統上層軟體與底層硬體分離開來,使系統的底層
驅動程式與硬體無關,上層軟體開發人員無需關心底層硬體的具體情況,根據BSP 層提供的接口即可進行開發。該層一般包含相關底層硬體的初始化、數據的輸入/輸出操作和硬體設備的配置功能。BSP具有以下兩個特點。
作業系統相關性:不同的作業系統具有各自的軟體層次結構,因此,不同的作業系統具有特定的硬體接口形式。
實際上,BSP是一個介於
作業系統和底層硬體之間的軟體層次,包括了系統中大部分與硬體聯繫緊密的軟體模組。設計一個完整的BSP需要完成兩部分工作:嵌入式系統的硬體初始化以及BSP功能,設計硬體相關的
設備驅動。
1、嵌入式系統硬體初始化
系統初始化過程可以分為3個主要環節,按照自底向上、從硬體到軟體的次序依次為:片級初始化、板級初始化和系統級初始化。
片級初始化
板級初始化
完成
嵌入式微處理器以外的其他硬體設備的初始化。另外,還需設定某些軟體的數據結構和參數,為隨後的系統級初始化和
應用程式的運行建立硬體和
軟體環境。這是一個同時包含軟硬體兩部分在內的初始化過程。
系統初始化
該初始化過程以軟體初始化為主,主要進行
作業系統的初始化。BSP將對
嵌入式微處理器的控制權轉交給
嵌入式作業系統,由作業系統完成餘下的初始化操作,包含載入和初始化與硬體無關的設備驅動程式,建立
系統記憶體區,載入並初始化其他系統軟體模組,如網路系統、檔案系統等。最後,
作業系統創建
應用程式環境,並將控制權交給應用程式的入口。
BSP的另一個主要功能是硬體相關的設備驅動。硬體相關的設備驅動程式的初始化通常是一個從高到低的過程。儘管BSP中包含硬體相關的設備驅動程式,但是這些設備驅動程式通常不直接由BSP使用,而是在系統初始化過程中由BSP將他們與
作業系統中通用的設備驅動程式關聯起來,並在隨後的套用中由通用的設備驅動程式調用,實現對硬體設備的操作。與硬體相關的驅動程式是BSP設計與開發中另一個非常關鍵的環節。
系統軟體層
系統軟體層由
實時多任務作業系統(Real-time Operation System,RTOS)、檔案系統、圖形
用戶接口(Graphic User Interface,GUI)、網路系統及通用組件模組組成。RTOS是嵌入式
套用軟體的基礎和開發平台。
嵌入式作業系統(Embedded Operation System,EOS)是一種用途廣泛的系統軟體,過去它主要套用與工業控制和國防系統領域。EOS負責
嵌入系統的全部軟、硬體資源的分配、任務調度,控制、協調並發活動。它必須體現其所在系統的特徵,能夠通過裝卸某些模組來達到系統所要求的功能。目前,已推出一些套用比較成功的EOS產品系列。隨著
Internet技術的發展、信息家電的普及套用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。
嵌入式作業系統在系統實時高效性、硬體的相關依賴性、軟體固化以及套用的專用性等方面具有較為突出的特點。EOS是相對於一般
作業系統而言的,它除具備了一般作業系統最基本的功能,如任務調度、同步機制、
中斷處理、檔案功能等外,還有以下特點:
(2)強實時性。EOS實時性一般較強,可用於各種設備控制當中。
(3)統一的接口。提供各種設備驅動接口.
(4)操作方便、簡單、提供友好的圖形GUI,圖形界面,追求易學易用.
(5)提供強大的網路功能,支持TCP/IP協定及其它協定,提供TCP/UDP/IP/PPP
協定支持及統一的MAC訪問層接口,為各種移動計算設備預留接口.
(6)強穩定性,弱互動性。嵌入式系統一旦開始運行就不需要用戶過多的干預,這就要負責系統管理的EOS具有較強的穩定性。
嵌入式作業系統的用戶接口一般不提供操作命令,它通過
系統調用命令向
用戶程式提供服務。
(8)更好的硬體適應性,也就是良好的移植性.
套用領域
嵌入式系統技術具有非常廣闊的套用前景,其套用領域可以包括:
工業控制
基於嵌入式晶片的工業自動化設備將獲得長足的發展,目前已經有大量的8、16、32 位嵌入式微控制器在套用中,網路化是提高生產
效率和產品質量、減少人力資源主要途徑,如工業
過程控制、數字工具機、電力系統、電網安全、電網設備監測、石油化工系統。就傳統的工業控制產品而言,低端型採用的往往是8位
單片機。但是隨著技術的發展,32位、64位的
處理器逐漸成為工業控制設備的核心,在未來幾年內必將獲得長足的發展。
交通管理
在車輛導航、
流量控制、信息監測與汽車服務方面,嵌入式系統技術已經獲得了廣泛的套用,內嵌GPS模組,GSM模組的移動定位
終端已經在各種運輸行業獲得了成功的使用。目前GPS設備已經從尖端產品進入了普通百姓的家庭,只需要幾千元,就可以隨時隨地找到你的位置。
信息家電
這將稱為嵌入式系統最大的套用領域,冰櫃、
空調等的網路化、智慧型化將引領人們的生活步入一個嶄新的空間。即使你不在家裡,也可以通過電話線、網路進行
遠程控制。在這些設備中,嵌入式系統將大有用武之地。
家庭智慧型管理
水、電、煤氣表的遠程
自動抄表,安全防火、防盜系統,其中嵌有的專用控制晶片將代替傳統的人工檢查,並實現更高,更準確和更安全的性能。目前在服務領域,如遠程點菜器等已經體現了嵌入式系統的優勢。
POS網路
公共運輸無接觸智慧卡(Contactless Smartcard, CSC)發行系統,公共電話卡發行系統,自動售貨機,各種智慧型ATM終端將全面走入人們的生活,到時手持一卡就可以行遍天下。
環境工程
水文資料實時監測,防洪體系及水土質量監測、堤壩安全,地震監測網,實時氣象信息網,水源和空氣污染監測。在很多環境惡劣,地況複雜的地區,嵌入式系統將實現無人監測。
國防與航天
嵌入式晶片的發展將使
機器人在微型化,高智慧型方面優勢更加明顯,同時會大幅度降低機器人的價格,使其在工業領域和服務領域獲得更廣泛的套用。
這些套用中,可以著重於在
控制方面的套用。就遠程家電控制而言,除了開發出支持TCP/IP的嵌入式系統之外,家電產品控制協定也需要制訂和統一,這需要家電生產廠家來做。同樣的道理,所有基於網路的遠程控制器件都需要與嵌入式系統之間實現接口,然後再由嵌入式系統來控制並通過
網路實現控制。所以,開發和探討嵌入式系統有著十分重要的意義。
現狀發展
發展現狀
隨著信息化,智慧型化,網路化的發展,嵌入式系統技術也將獲得廣闊的發展空間。美國著名未來學家尼葛洛龐帝99年1月訪華時預言,4~5年後嵌入式智慧型(電腦) 工具將是PC和
網際網路之後最偉大的發明。我國著名嵌入式系統專家
沈緒榜院士98年11月在
武漢全國第11次
微機學術交流會上發表的《計算機的發展與技術》一文中,對未來10年以嵌入式晶片為基礎的
計算機工業進行了科學的闡述和展望。1999年世界電子產品產值已超過12000億美元,2000年達到13000億美元,預計2005年,銷售額將達18000億美元。
進入20世紀90年代,
嵌入式技術全面展開,目前已成為通信和消費類產品的共同發展方向。在通信領域,
數位技術正在全面取代模擬技術。在廣播電視領域,美國已開始由
模擬電視向數位電視轉變,
歐洲的DVB(數位電視廣播)技術已在全球大多數國家推廣。
數字音頻廣播(DAB)也已進入商品化試播階段。而軟體、
積體電路和新型元器件在產業發展中的作用日益重要。所有上述產品中,都離不開嵌入式系統技術。象前途無可計量的維納斯計畫生產機頂盒,核心技術就是採用32位以上晶片級的
嵌入式技術。在個人領域中,
嵌入式產品將主要是個人商用,作為個人移動的數據處理和通訊軟體。由於
嵌入式設備具有自然的
人機互動界面,GUI螢幕為中心的多媒體界面給人很大的親和力。手寫文字輸入、語音撥接、收發電子郵件以及彩色圖形、圖像已取得初步成效。
一些先進的PDA在顯示螢幕上已實現漢字寫入、短訊息語音發布,日用範圍也將日益廣闊。對於企業專用解決方案,如物流管理、條碼掃描、移動信息採集等,這種小型手持嵌入式系統將發揮巨大的作用。自動控制領域,不僅可以用於ATM機,自動售貨機,工業控制等專用設備,和移動通訊設備結合、GPS、娛樂相結合,嵌入式系統同樣可以發揮巨大的作用。近期長虹推出的ADSL產品,結合網路,控制,信息,這種智慧型化,網路化將是家電發展的新趨勢。
硬體方面,不僅有各大公司的
微處理器晶片,還有用於學習和研發的各種配套開發包。目前低層系統和硬體平台經過若干年的研究,已經相對比較成熟,實現各種功能的晶片應有盡有。而且巨大的市場
需求給我們提供了學習研發的資金和技術力量。
從軟體方面講,也有相當部分的成熟軟體系統。國外商品化的
嵌入式實時作業系統,已進入我國市場的有WindRiver、Microsoft、QNX和Nuclear等產品。我國自主開發的嵌入式系統軟體產品如科銀(CoreTek)公司的嵌入式軟體開發平台DeltaSystem,中科院推出的Hopen
嵌入式作業系統(雖然還不夠完善)。同時由於是研究熱點,所以我們可以在網上找到各種各樣的免費資源,從各大廠商的開發文檔,到各種驅動,
程式原始碼,甚至很多廠商還提供
微處理器的樣片。這對於我們從事這方面的研發,無疑是個資源寶庫。對於
軟體設計來說,不管是上手還是進一步開發,都相對來說比較容易。這就使得很多生手能夠比較快的進入研究狀態,利於發揮大家的積極創造性。
今天嵌入式系統帶來的工業年產值已超過了1萬億美元,1997年來自美國嵌入式系統大會(Embedded System Conference)的報告指出,未來5年僅基於
嵌入式計算機系統的全數位電視產品,就將在美國產生一個每年1500億美元的新市場。美國汽車大王福特公司的高級經理也曾宣稱,“福特出售的‘計算能力’已超過了IBM”,由此可以想見
嵌入式計算機工業的規模和廣度。1998年11月在美國
加州舉行的嵌入式系統大會上,基於RTOS的Embedded Internet成為一個技術新熱點。在國內,“維納斯計畫”和“女鍋計畫”一度鬧得沸沸揚揚,機頂盒、信息j家電這兩年更成了IT熱點,而實際上這些都是嵌入式系統在特定環境下的一個特定套用。據調查,目前國際上已有兩百多種
嵌入式作業系統,而各種各樣的開發工具、套用於
嵌入式開發的儀器設備更是不可勝數。在國內,雖然嵌入式套用、開發很廣,但該領域卻幾乎還是空白,只有三兩家公司和極少數人員在從事這方面工作。由此可見,嵌入式系統技術發展的空間真是無比廣大。
發展趨勢
資訊時代,數字時代使得
嵌入式產品獲得了巨大的發展契機,為嵌入式市場展現了美好的前景,同時也對嵌入式生產廠商提出了新的挑戰,從中我們可以看出未來嵌入式系統的幾大發展趨勢:
1.
嵌入式開發是一項
系統工程,因此要求嵌入式系統廠商不僅要提供嵌入式軟硬體系統本身,同時還需要提供強大的硬體開發工具和
軟體包支持。
目前很多廠商已經充分考慮到這一點,在主推系統的同時,將開發環境也作為重點推廣。比如三星在推廣Arm7,Arm9晶片的同時還提供
開發板和板級支持包(BSP),而WindowCE在主推系統時也提供Embedded VC++作為開發工具,還有Vxworks的Tonado開發環境,DeltaOS的Limda編譯環境等等都是這一趨勢的典型體現。當然,這也是市場競爭的結果。
2.
網路化、信息化的要求隨著網際網路技術的成熟、
頻寬的提高日益提高,使得以往單一功能的設備如電話、手機、冰櫃、微波爐等功能不再單一,結構更加複雜。
這就要求晶片設計廠商在晶片上集成更多的功能,為了滿足套用功能的升級,
設計師們一方面採用更強大的
嵌入式處理器如32位、64位RISC晶片或信號處理器DSP增強處理能力,同時增加功能接口,如USB,擴展匯流排類型,如CAN BUS,加強對
多媒體、圖形等的處理,逐步實施
片上系統(SOC)的概念。軟體方面採用實時多任務
編程技術和交叉開發工具技術來控制功能複雜性,簡化應用程式設計、保障軟體質量和縮短開發周期。如HP
未來的
嵌入式產品是軟硬體緊密結合的設備,為了減低功耗和成本,需要設計者儘量精簡系統
核心,只保留和系統功能緊密相關的軟硬體,利用最低的資源實現最適當的功能,這就要求設計者選用最佳的編程模型和不斷改進算法,最佳化
編譯器性能。因此,既要軟體人員有豐富的硬體知識,又需要發展先進嵌入式
軟體技術,如Java、Web和WAP等。
5.提供友好的多媒體人機界面
嵌入式設備能與用戶親密接觸,最重要的因素就是它能提供非常友好的用戶界面。圖像界面,靈活的控制方式,使得人們感覺
嵌入式設備就象是一個熟悉的老朋友。這方面的要求使得嵌入式軟體設計者要在圖形界面,多媒體技術上痛下苦功。手寫文字輸入、語音撥接、收發電子郵件以及彩色圖形、圖像都會使使用者獲得自由的感受。一些先進的PDA在顯示螢幕上已實現漢字寫入、短訊息語音發布,但一般的
嵌入式設備距離這個要求還有很長的路要走。
系統方案
基於嵌入式系統在電網遠程監控中的套用方案
基於嵌入式系統在電網遠程監控中的套用方案可實現對電網參數的主動測量、分析、自動存儲等功能,通過Internet光纖環網將電網監測數據傳送到調度室的監控主機,工作人員可以對遠程設備的運行狀況進行及時、準確的監控,對其故障先兆做出判斷和預測,採取有效措施解決問題,保證大型機組安全運行,防止惡性事故的發生,避免了定期檢修引起的生產停頓,起到預防和消除故障的作用,提高設備運行的可靠性、安全性和有效性。
基於嵌入式系統的RFID手持機系統方案
基於嵌入式系統的RFID手持機系統設計,以微
處理器LPC2142 為主控制器,根據系統的需求外擴了SRAM、Flash、SD 卡、鍵盤、
LCD 顯示、聲響提示進行數據處理、數據存儲、人機互動以及出錯報警提示,通過USB 接口可以與主機進行數據通信,背光模組可以為LCD 和
鍵盤提供背光,電壓檢測模組通過核心處理器的A/D 轉換器進行電池電壓的檢測,從而間接檢測出電池的剩餘電量,RF 模組能夠進行讀寫器與標籤之間射頻信號的收發,通過JTAG 接口可以進行程式的調試與下載。電源部分可以為系統中需要電源的各個模組提供電源。
學習方法
隨著現代社會信息化進程的加快,嵌入式系統被廣泛的地套用于軍事、家用、工業、商業、辦公、醫療等社會各個方面,表現出很強的投資價值。從國際範圍來看,作為數位化電子信息產品核心的嵌入式系統目前其硬體和軟體開發工具市場已經突破2000億美元,嵌入式系統帶來的全球工業年產值更是達到了一萬億美元,隨著全球經濟的持續增長以及信息化的加速發展,嵌入式系統市場必將進一步增長。
根據
中國物聯網校企聯盟的建議,學習嵌入式系統的必備知識與學習方法如下:
1、C開發經驗
條件:Linux
方法:主要是掌握ANSI C編程(不包括gtk,qt等圖形可視化開發)
2、網路、作業系統、體系結構
條件:Linux,各種書,算法、例程。
方法:通過C編程實現簡單的網路等知識的算法和過程。
3、嵌入式系統概念
條件:各個嵌入式網站,討論組,書籍
方法:少提問,多留給自己思考的空間。
4、嵌入式開發實踐
條件:各種嵌入式系統開發工具的demo版,包括編譯器,仿真器。
方法:一個是基於MCU/MDSP的嵌入式系統開發,另一個是像Palm OS,WinCE,uC/OS II等RTOS下的套用軟體開發。第一個是針對硬體開發而言的,而第二個則是針對軟體開發而言的。
5、硬體開發
條件:各種嵌入式晶片、存儲器等電路器件,protel99等電路設計軟體,電路板製作。
方法:這時候該有開發條件了,最起碼是51系列,這個比較方便。電路的設計內容較多,不過看起來嚇人,實際上比軟體要簡單的多。只要下功夫,實踐會告訴你一切。
調試
調試通常使用內部電路
仿真器或者其他一些能夠在
單片機微碼(microcode)內部產生中斷的調試器。微碼中斷讓調試器能夠在只有CPU工作的硬體中進行操作,基於CPU的調試器能夠從CPU的角度來測試和調試計算機的電路。
PDP-11開創了這種特性的先河。
開發人員能夠仍然使用
斷點、單步執行以及高級語言進行調試,在許多的調試工具上都有這種能力。另外開發人員在調試實時事件順序的時候需要記錄、使用簡單的記錄工具。
首先遇到這種問題的個人電腦和
大型機程式設計師經常在設計優先權和可行方法的時候感到困惑。指導、代碼審查和非個人風格(egoless)的編程是值得推薦的。
隨著嵌入式系統變得越來越複雜,更高層次的工具和
作業系統逐漸移植到可行的設備上。例如,
蜂窩電話、個人數字助理和其他的消費用計算機需要一些從個人或者這些電子設備製造商之外的公司購買或者提供的一些重要軟體。在這些系統中,需要如Linux、OSGi或者Java這樣的開放
編程環境,這樣
第三方軟體提供上才能夠在大規模的市場上銷售軟體。
大多數這樣的
開發環境都有一個運行在個人電腦上的參考設計,這種軟體的絕大部分都可以在傳統的個人電腦上開發。然而,從開放環境移植到專用的
電子設備和電子設備的
驅動程式開發通常仍然是傳統的嵌入式系統
軟體工程師的工作。在有些情況下, the engineer works for the integrated circuit manufacturer, but there is still such a person somewhere.
Windows
微軟嵌入式產品MSEmbed,尤其是微軟嵌入式系統,和普通OS並沒有本質上的區別。從某種程度上說,微軟嵌入式系統,就是根據環境的需求,將普通的OS進行定製和精簡,從而形成符合套用環境需求的、特定的系統。
微軟嵌入式系統,經過定製以及二次開發,能夠最大程度的滿足客戶需求,同時在安全性、可靠性、可維護性以及整體性能方面,得到了良好體現。隨著windows 7 OS進入嵌入式領域,其對於各種硬體的兼容性,以及在各個硬體平台上的可移植性,再一次得到極大完善。
1996 年11 月,Microsoft 發布了 Windows Embedded CE 1.0,從此正式進入了嵌入式產品市場。此後,Microsoft 逐漸擴展出全系列的嵌入式作業系統,使開發人員能夠通過一系列產品來構建下一代的 32 位設備,這些產品為空間占用量大小不等的設備提供了工具集和開發平台。 微軟發布Win CE 1.0之後的十年間,繼續推出了2.0到6.0的Win CE產品。
2010年6月1日,微軟發布了新的嵌入式Windows,並命名為
Windows Embedded Compact 7,不再採用之前一貫沿用的名稱Windows Embedded CE(簡稱
Windows CE)。新版的全國人民Winddows做出了一系列的改進,例如將所有系統元件都由EXE改為DLL,並移到 kernel space,並採用全新設計的
虛擬記憶體架構、全新的設備驅動程式架構,支持更多的平台像x86、ARM、SH4、MIPS 等。
Linux
嵌入式Linux 是將日益流行的Linux作業系統進行裁剪修改,使之能在嵌入式計算機系統上運行的一種作業系統。嵌入式linux既繼承了Internet上無限的開放原始碼資源,又具有嵌入式作業系統的特性。嵌入式Linux的特點是著作權費免費;購買費用媒介成本技術支持全世界的自由軟體開發者提供支持網路特性免費,而且性能優異,軟體移植容易,代碼開放,有許多套用軟體支持,套用產品開發周期短,新產品上市迅速,因為有許多公開的代碼可以參考和移植,實時性能RT_Linux Hardhat Linux 等嵌入式Linux支持,實時性能穩定性好安全性好。
有巨大的市場前景和商業機會,出現了大量的專業公司和產品,如Montavista Lineo Emi等,有行業協會如Embedded Linux Consortum等,得到世界著名計算機公司和OEM板級廠商的支持,例如IBM、Motorola、Intel,目前Google的基於Linux開發的
Android作業系統也已經廣泛套用於嵌入式領域。傳統的嵌入式系統廠商也採用了Linux策略,如Lynxworks Windriver QNX等,還有Internet上的大量嵌入式Linux愛好者的支持。嵌入式Linux支持幾乎所有的嵌入式CPU和被移植到幾乎所有的嵌入式OEM板。
嵌入式Linux領域非常廣泛,主要的套用領域有信息家電、PDA 、機頂盒、數字電話、應答機、大螢幕功能手機、數據網路、交換器、路由器、網橋、接線串口、遙控器訪問服務、ATM機、設備固件、遠程通信、醫療電子、交通運輸計算機外設、工業控制、航空航天領域等。
相關信息
嵌入式系統中有許多非常重要的概念:
嵌入式系統的核心,是控制、
輔助系統運行的硬體單元。範圍極其廣闊,從最初的4位
處理器,目前仍在大規模套用的8位單片機,到最新的受到廣泛青睞的32位,64位嵌入式CPU。
◆
實時作業系統(RTOS-Real Time Operating System):
嵌入式系統目前最主要的組成部分。根據
作業系統的工作特性,實時是指物理進程的真實時間。實時作業系統具有實時性,能從硬體方面支持
實時控制系統工作的作業系統。其中實時性是第一要求,需要調度一切可利用的資源完成實時控制任務,其次才著眼於提高
計算機系統的使用
效率,重要特點是要滿足對時間的限制和要求。
對於
分時作業系統,軟體的執行在時間上的要求,並不嚴格,時間上的錯誤,一般不會造成災難性的後果。目前
分時系統的強項在於多任務的管理,而
實時作業系統的重要特點是具有系統的可確定性,即系統能對運行情況的最好和最壞等的情況能做出精確的估計。
系統支持多
任務管理和任務間的同步和通信,傳統的單片機系統和DOS系統等對多任務支持的功能很弱,而目前的Windows是典型的
多任務作業系統。在嵌入式套用領域中,多任務是一個普遍的要求。
系統回響時間(System response time):系統發出處理要求到系統給出應答信號的時間。
任務換道時間(Context-switching time):任務之間切換而使用的時間。
實時系統中的任務有四種狀態:運行(Executing),就緒(Ready),掛起(Suspended),冬眠(Dormant)。
運行:獲得CPU控制權。
就緒:進入任務等待佇列,通過調度轉為運行狀態。
掛起:任務發生阻塞,移出任務
等待佇列,等待系統實時事件的發生而喚醒,從而轉為就緒或運行。
冬眠:任務完成或錯誤等原因被清除的任務,也可以認為是系統中不存在的任務。
任何時刻系統中只能有一個任務在運行狀態,各任務按級別通過
時間片分別獲得對CPU的訪問權。
實例
8.家庭自動化產品,如
恆溫器、
冷氣機、灑水裝置和安全監視系統
14.
多媒體電器:網際網路無線接收機、電視機頂盒、數字衛星接收器
15.
個人數碼助理(PDA),也就是帶有個人信息管理和其他應用程式的小型手持計算機
類型
常用的嵌入式軟體架構有幾種不同的基本類型。
控制循環
在這種設計中,軟體有一個簡單的循環,這個循環調用各個
子程式,每個子程式管理硬體或者軟體的某一部分。
中斷通常用來設定標記或者更新軟體其他部分能夠讀取的
暫存器。
系統使用簡單的
API來完成允許和禁止中斷設定。如果處理得當的話,它能夠在嵌套子程式中處理
嵌套調用,在最外面的中斷允許嵌套中恢復前面的中斷狀態。這種方法是實現Exokernel的一個最簡單的方法。
通常在循環中有一些子程式使用周期性的實時中斷控制一組軟體定時器,當一個定時器時間到的時候就會運行相應的子程式或者設定相應的標誌。
任何可能發生的硬體事件都應該有軟體定時器的支持,硬體事件大概每萬億次出現一次錯誤,對於現代的硬體來說大概是一年發生一次,對於以百萬計大規模生產的設備來說,遺漏一個軟體軟體定時器在商業上可能是災難性的。
有時測試軟體運行一組基於軟體的安全定時器,它們周期性地復位硬體中的軟體看門狗。如果軟體錯過一個事件,安全定時器軟體將會捕捉到它。如果安全定時器出錯,看門狗硬體將會復位系統。
許多設計人員建議每個循環讀一次輸入輸出設備、並且保存得到的結果,這樣可以保證邏輯過程的在一致的參數上運行。
許多設計人員喜歡將狀態機設計成每個狀態僅僅檢查一到兩項內容,通常是檢查硬體事件和軟體定時器。
設計人員建議多級狀態機應該讓低層狀態機早於高層狀態機運行,這樣高層就能夠根據正確的信息運行。
如內部燃燒控制這樣的複雜功能通常根據多維表格進行處理,代碼通常進行查表處理而不進行複雜的計算,為了減小表格的大小以及成本軟體可以在條目之間進行差值運算。
在最小的單片機中,尤其是只有128位組
堆疊的
8051中,控制環允許好的
連線器使用靜態分配的數據覆蓋本地
變數。在這種機制中,離子程式調用樹末端越近的變數得到的存儲器地址越高。當開始一個新的分支的時候,它的變數可以在以前分支遺棄的空間中進行重新分配。
簡單控制循環的一個主要缺點是它無法保證回響特定硬體事件的時間。
細心的設計可以很容易地保證中斷不會被長時間禁止,這樣中斷代碼就可以在非常精確的時間運行。
控制環的另外一個主要缺陷是增加新的特性的時候會變得複雜。需要花費很長時間的
算法必須小心地進行分解以使得每次只有一小部分在主循環中運行。
這種系統的優勢是它的簡單性,並且在很小的軟體上,循環運行地很快幾乎沒有人關心它是不可預測的。
它的另外一個優勢是這種系統保證運行軟體的質量,無法將不好的運行結果歸咎為其他的作業系統。
非搶先式任務
非搶先式任務系統非常類似於上面的系統,只是這個循環是隱藏在
API中的。我們定義一系列的任務,每個任務獲得自己的子程式棧;然後,當一個任務空閒的時候,它調用一個空閒子程式(通常調用“暫停”、“等候”、“交出(
yield)”等等)。
帶有類似屬性的架構都帶有一個事件佇列,有一個循環根據佇列列表中的一個域確定刪除時間和調用子程式。
這種架構的優點和缺點都非常類似於控制環,只是這種方法添加新的軟體更加簡單,只需要簡單地編寫新的任務或者將它添加到佇列解釋器中。
搶先式定時器
使用上面的任何一種系統,但是添加一個按照
定時器中斷運行子程式的定時器系統,這樣就給系統添加了嶄新的能力,這樣定時器子程式第一次能在一個有保證的時間內運行。
另外,代碼第一次能夠在非預期的時間訪問自己的數據結構。定時器子程式必須要象中斷子程式一樣進行處理。
搶先式任務
使用上面的非搶先式任務系統,從一個搶先式定時器或者其他中斷運行。
這樣系統就突然變得很不一樣了。任何一個任務的代碼都有可能損害其他任務的數據 &emdash; 所以它們必須進行切缺的切分。對於共享數據的訪問必須使用一些同步策略進行控制,如訊息佇列、信號燈或者非阻塞同步機制。
經常在這一步開發組織就會購買一套
實時作業系統。如果一個組織缺少能夠編寫作業系統的人才或者作業系統將要在幾個產品之上,這可能是一個明智的選擇。這通常要將開發計畫增加六到八周,and forever after programmers can blame delays on it.
微核心與外核心
這種方法試圖將系統組織得比宏核心更易於配置,而同時提供類似的特點。
微核心是實時作業系統的一個邏輯發展,通常的組織方式是作業系統核心分配記憶體並且將CPU在不同的執行緒之間進行切換。用戶模式的進程實現如檔案系統、用戶接口等主要的功能。
微核心在二十世紀五十年代開始首次嘗試,但是由於計算機在任務間切換以及在任務間交換數據速度非常緩慢,所以人們放棄了微核心而鐘情於
MULTICS和
UNIX風格的大核心。總體上來說,微核心在任務切換以及任務間通信速度快的時候是比較成功的,在速度慢的時候是失敗的。
外核心通過使用普通的子程式調用獲得的通信效率很高,硬體以及系統中的軟體都是程式設計師能用也能擴展的。資源核心(可能是庫的一部分)分配CPU時間、記憶體以及其他資源。如多任務、網路以及檔案系統這樣的大核心特性通過代碼庫來提供。庫可以進行動態的連線、擴展或者共享。不同的套用甚至可以使用的不同的庫,但是所有的資源都來自於資源核心。
虛擬機
一些航空電子系統使用幾個商用計算機。這樣更進一步,每個計算機都在模擬它們自身的幾個副本,重要的程式同時在幾個計算機上運行並且進行投票控制(vote)。
模擬環境的優點就是即使一個計算機出現故障,軟體的不同例程能夠遷移到正常工作的軟體分區,表決的票數並不受影響。
通常虛擬軟體運行在計算機的用戶模式下,它捕捉、模擬硬體訪問和不在用戶模式下運行的指令。
檢查點計算
另外一種常用的機制是兩個計算機計算 for a bit,然後將它們的計算結果報到那個點上。如果一個計算機的計算是 nut,它就會被關閉。
辦公用(宏核心)作業系統
這種系統通常在沒有系統經費的嵌入式項目中流行,但是從這篇文章的多個作者來看,這通常是不正確的,它們的邏輯是:
作業系統是經過特殊封裝的重用代碼庫。如果這些代碼有用,設計人員就會節省時間和金錢,否則它們就是無用的。
商務系統的作業系統沒有嵌入式硬體的接口。例如,如果要用Linux寫一個馬達控制器或者電話交換機,絕大部分的實際控制操作都是
IOCTL調用,同時,正常的讀、寫和查詢界面都是無用的。所以作業系統對於實際的開發妨礙很大。
大多數的嵌入式系統不處理辦公事務,所以辦公作業系統的大部分代碼都被浪費了。例如,絕大多數的嵌入式系統從來都不使用檔案系統或者螢幕,所以檔案系統和圖形用戶界面部分就是浪費的,這些不用的代碼只會影響系統的可靠性。
辦公用作業系統保護硬體不讓用戶程式操作,這就嚴重地妨礙了嵌入式開發工作。
作業系統必須移植到嵌入式系統上,也就是說,硬體驅動程式無論如何都必須重寫,這也是作業系統最難的部分,所以使用這樣的作業系統幾乎沒有功效。
作業系統真正有用、可移植的特性是小段代碼。例如,一個基本的
TCP/IP接口大約有3000行代碼,另外的一個例子是大約同樣大小的簡單檔案系統。如果設計需要這些代碼,能夠使用少於嵌入式系統開發10%的經費就能完成,不需要支付著作權費用,只需要簡單地重寫就可以了。如果系統這些代碼有足夠的通用性,嵌入式系統雜誌封面的後面通常有公司銷售沒有著作權費的C語言實現代碼。
有現成的移植到普通嵌入式晶片的實現代碼。
開發系統能夠從許多特性組合開始,在發布的時候可以剔除不需要的功能,從而節約所消耗的記憶體。
許多任務程師認為在用戶模式運行應用程式更為可靠、更容易調試,所以開發過程更容易、代碼更易於移植。
許多嵌入式系統沒有控制系統那樣對於實時性的嚴格要求,對於許多套用來說如嵌入式Linux這樣的系統的回響速度就已經足夠了。
要求更快的回響速度,而不是可靠性的特性,通常放到了
硬體上。
許多實時作業系統都針對每件產品收取費用,當產品是消費品時,這項費用是巨大的。
Exotic custom 作業系統
一些系統需要安全、及時、可靠或者高效的特性,上面的架構卻無法達到,構建這樣的系統有一些廣為人知的技巧:
1.僱傭一個真正的系統程式設計師。他們的花費很小,但是能夠節約數年的調試以及相關的收入損失。
2.RMA (rate monotonic analysis),可以用來評估一組任務能否在特定的硬體系統下運行,在最簡單的形式下,設計人員保證最快完成的任務有最高的優先權,平均來說 CPU 至少有 30% 的空閒時間。
3.和諧的任務能夠高效地最佳化CPU。基本上來說,設計人員保證每件工作都是從heartbeat timer開始工作的。在
實時作業系統上很難這樣做,因為它們在等候輸入輸出設備的時候通常就會切換任務。
4.剛好有兩個優先權(通常是
運行和
禁止中斷)的系統不能出現高優先權任務等候低優先權任務釋放信號燈或者其他資源的
優先權倒置問題,
5.有監視器(monitor)的系統不能出現死鎖。
監視器鎖住一段代碼禁止中斷和其他搶先任務。如果這個監視器只用於一小段快速運行的代碼,系統可能工作正常。如果能夠證明監視器 API 在所有情況下都能夠完整運行,例如僅僅禁止中斷,那么就不會產生系統掛起的情況。
這就意味著使用兩個優先權和監視器的系統是安全、可靠的,因為它們沒有死鎖和優先權倒置的問題。如果監視器能夠執行到結束,那么就永遠不會掛起。如果使用和諧的任務,可能還會相當高效。然而,RMA 無法描述這些系統,優先權最好也不要到處都有,其中包括作業系統和硬體。
委員會
4月27日訊息,由中科院計算技術研究所、中國家用電器研究院、日本T-Engine協會、
中國輕工業聯合會嵌入式系統套用委員會主辦,中科院計算技術研究所、中國家用電器研究院承辦的“中日
物聯網與嵌入式技術套用研討會暨中國輕工業聯合會嵌入式系統套用委員會成立大會”在北京舉行。
基於此種現狀,中科院計算技術研究所、
中國家用電器研究院、日本T-Engine協會在多年合作的基礎上,共同發起了本次盛會。作為國際頂級的嵌入式技術研究機構,三家發起單位在智慧型家電、食品防偽、縫紉等多個輕工領域與國內相關企業進行過不同程度的科研合作和套用試點,取得了多項實際成果。日本是全球嵌入式系統領域的大國,技術處於領先地位,日益受到業界重視。日本T-Engine協會更是世界上套用最多的嵌入式作業系統——TRON系統的創始者,擁有世界最先進的嵌入式系統相關套用技術。本次研討會上,中日在雙方嵌入式系統領域的技術交流與合作成為兩國共同發展的一個新亮點。
國家科技部、工信部、環保部、輕工業聯合會、標準委,日本總務省、經產省、日本駐京大使館等部門領導,以及北京、無錫、寧波、煙臺、臨沂等地方政府負責人出席會議。研討會上,中日兩國的著名專家、教授、研究人員、企業家和業內權威人士代表集聚一堂,分別就嵌入式技術的發展動向和前沿技術、中日嵌入式系統市場合作和套用前景等相關內容發表主題演講並進行深入探討。
委員會的成立,將有效整合和凝聚國內嵌入式系統的研發力量,引進國際先進嵌入式技術,提供國內外嵌入式系統行業合作交流的平台,為推動國內嵌入式系統及其相關技術的發展和產業化套用起到積極的作用。