嵌入式系統
為特定應用而設計的專用計算機系統
嵌入式系統(Embedded system),是一種“完全嵌入受控器件內部,為特定應用而設計的專用計算機系統”,根據英國電氣工程師協會( U.K. Institution of Electrical Engineer)的定義,嵌入式系統為控制、監視或輔助設備、機器或用於工廠運作的設備。與個人計算機這樣的通用計算機系統不同,嵌入式系統通常執行的是帶有特定要求的預先定義的任務。由於嵌入式系統只針對一項特殊的任務,設計人員能夠對它進行優化,減小尺寸降低成本。嵌入式系統通常進行大量生產,所以單個的成本節約,能夠隨著產量進行成百上千的放大。
嵌入式系統是以應用為中心,以現代計算機技術為基礎,能夠根據用戶需求(功能、可靠性、成本、體積、功耗、環境等靈活裁剪軟硬體模塊的專用計算機系統。
要點概括:
以應用為中心:強調嵌人式系統的目標是滿足用戶的特定需求。就絕大多數完整的嵌入式系統而言,用戶打開電源即可直接享用其功能,無需二次開發或僅需少量配置操作。
專用性:嵌人式系統的應用場合大多對可靠性、實時性有較高要求,這就決定了服務於特定應用的專用系統是嵌入式系統的主流模式,它並不強調系統的通用性和可擴展。這種專用性通常也導致嵌人式系統是一個軟硬體緊密集成的最終系統,因為這樣才能更有效地提高整個系統的可靠性並降低成本,並使之具有更好的用戶體驗。
以現代計算機技術為核心:嵌人式系統的最基本支撐技術,大致上包括集成電路設計技術、系統結構技術、感測與檢測技術、嵌入式操作系統和實時操作系統技術、資源受限系統的高可靠軟體開發技術、系統形式化規範與驗證技術、通信技術、低功耗技術、特定應用領域的數據分析、信號處理和控制優化技術等,它們圍繞計算機基本原理,集成進特定的專用設備就形成了一個嵌人式系統。
軟硬體可裁剪:嵌人式系統針對的應用場景如此之多,並帶來差異性極大的設計指標要求(功能性能、可靠性、成本、功耗),以至於現實上很難有一套方案滿足所有的系統要求,因此根據需求的不同,靈活裁剪軟硬體、組建符合要求的最終系統是嵌人式技術發展的必然技術路線。
嵌入式計算機的真正發展是在微處理器問世之後。1971年11月,算術運算器和控制器電路成功的被集成在一起,推出了第一款微處理器,其後各廠家陸續推出了8位、16位微處理器。以這些微處理器為核心所構成的系統廣泛地應用於儀器儀錶、醫療設備、機器人、家用電器等領域。微處理器的廣泛應用形成了一個廣闊的嵌人式應用市場,計算機廠家開始大量地以插件方式向用戶提供OEM產品,再由用戶根據自己的需要選擇一套適合的CPU板、存儲器板及各式I/O插件板,從而構成專用的嵌入式計算機系統,並將其嵌人自己的系統設備中。
20世紀80年代,隨著微電子工藝水平的提高,集成電路製造商開始把嵌人式計算機應用中所需要的微處理器、I/O介面、A/D轉換器、D/A轉換器、串列介面,以及RAM、ROM等部件全部集成到一個VLSI中,從而製造出面向I/O設計的微控制器,即俗稱的單片機。單片機成為嵌人式計算機中異軍突起的一支新秀。20世紀90年代,在分佈控制、柔性製造、數字化通信和信息家電等巨大需求的牽引下,嵌入式系統進一步快速發展。面向實時信號處理演演算法的DSP產品向著高速、高精度、低功耗的方向發展。21世紀是一個網路盛行的時代,將嵌人式系統應用到各類網路中是其發展的重要方向。
90年代以後,隨著對實時性要求的提高,軟體規模不斷上升,實時核逐漸發展為實時多任務操作系統(RTOS),並作為一種軟體平台逐步成為目前國際嵌入式系統的主流。
嵌入式系統的發展大致經歷了以下三個階段:
第一階段:嵌人技術的早期階段。嵌入式系統以功能簡單的專用計算機或單片機為核心的可編程式控制制器形式存在,具有監測、伺服、設備指示等功能。這種系統大部分應用於各類工業控制和飛機、導彈等武器裝備中。
第二階段:以高端嵌入式CPU和嵌人式操作系統為標誌。這--階段系統的主要特點是計算機硬體出現了高可靠、低功耗的嵌入式CPU,如ARM、PowerPC等,且支持操作系統,支持複雜應用程序的開發和運行。
第三階段:以晶元技術和Internet技術為標誌。微電子技術發展迅速,SOC(片上系統)使嵌入式系統越來越小,功能卻越來越強。目前大多數嵌入式系統還孤立於Internet之外,但隨著Internet的發展及Internet技術與信息家電、工業控制技術等結合日益密切,嵌人式技術正在進入快速發展和廣泛應用的時期。
嵌入式系統的硬體和軟體必須根據具體的應用任務,以功耗、成本、體積、可靠性、處理能力等為指標來進行選擇。嵌人式系統的核心是系統軟體和應用軟體,由於存儲空間有限,因而要求軟體代碼緊湊、可靠,且對實時性有嚴格要求。
從構成上看,嵌人式系統是集軟硬體於一體的、可獨立工作的計算機系統;從外觀上看,嵌入式系統像是一個“可編程”的電子“器件”;從功能上看,它是對目標系統(宿主對象)進行控制,使其智能化的控制器。從用戶和開發人員的不同角度來看,與普通計算機相比較,嵌人式系統具有如下特點。
(1)專用性強。由於嵌人式系統通常是面向某個特定應用的,所以嵌人式系統的硬體和軟體,尤其是軟體,都是為特定用戶群設計的,通常具有某種專用性的特點。
(2)體積小型化。嵌入式計算機把通用計算機系統中許多由板卡完成的任務集成在晶元內部,從而有利於實現小型化,方便將嵌人式系統嵌入目標系統中。
(3)實時性好。嵌人式系統廣泛應用於生產過程式控制制、數據採集、傳輸通信等場合,主要用來對宿主對象進行控制,所以對嵌入式系統有或多或少的實時性要求。例如,對武器中的嵌人式系統,某些工業控制裝置中的控制系統等的實時性要求就極高。有些系統對實時性要求也並不是很高,例如,近年來發展速度比較快的掌上電腦等。但總體來說,實時性是對嵌人式系統的普遍要求,是設計者和用戶應重點考慮的一個重要指標。
(4)可裁剪性好。從嵌入式系統專用性的特點來看,嵌人式系統的供應者理應提供各式各樣的硬體和軟體以備選用,力爭在同樣的矽片面積上實現更高的性能,這樣才能在具體應用中更具競爭力。
(5)可靠性高。由於有些嵌人式系統所承擔的計算任務涉及被控產品的關鍵質量、人身設備安全,甚至國家機密等重大事務,且有些嵌人式系統的宿主對象工作在無人值守的場合,如在危險性高的工業環境和惡劣的野外環境中的監控裝置。所以,與普通系統相比較,嵌入式系統對可靠性的要求極高。
(6)功耗低。有許多嵌入式系統的宿主對象是一些小型應用系統,如行動電話、MP3、數碼相機等,這些設備不可能配置交流電源或容量較大的電源,因此低功耗一直是嵌人式系統追求的目標。
(7)嵌入式系統本身不具備自我開發能力,必須藉助通用計算機平台來開發。嵌人式系統設計完成以後,普通用戶通常沒有辦法對其中的程序或硬體結構進行修改,必須有一套開發工具和環境才能進行。
(8)嵌入式系統通常採用“軟硬體協同設計”的方法實現。早期的嵌入式系統設計方法經常採用的是“硬體優先”原則,即在只粗略估計軟體任務需求的情況下,首先進行硬體設計與實現,然後在此硬體平台之上進行軟體設計。如果採用傳統的設計方法,則一旦在測試中發現問題,需要對設計進行修改時,整個設計流程將重新進行,對成本和設計周期的影響很大。系統的設計在很大程度上依賴於設計者的經驗。20世紀90年代以來,隨著電子和晶元等相關技術的發展,嵌入式系統的設計和實現出現了軟硬體協同設計方法,即使用統一的方法和工具對軟體和硬體進行描述、綜合和驗證。在系統目標要求的指導下,通過綜合分析系統軟硬體功能及現有資源,協同設計軟硬體體系結構,以最大限度地挖掘系統軟硬體能力,避免由於獨立設計軟硬體體系結構而帶來的種種弊病,得到高性能、低代價的優化設計方案。
從外部特徵上看,一個嵌入式系統,通常是一個功能完備、幾乎不依賴其他外部裝置即可獨立運行的軟硬體集成的系統。如果對這樣一個系統進行剖分的話,可以發現它大致可能包括這樣幾個層次,如下圖所示。
儘管各種具體的嵌人式系統的功能、外觀界面、操作等各不相同,甚至千差萬別,但是基本的硬體結構卻是大同小異的,而且和通用計算機的硬體系統有著高度的相似性。嵌人式系統的硬體部分看起來與通用計算機系統的沒有什麼區別,也由處理器、存儲器、外部設備、I/O介面、圖形控制器等部分組成。但是嵌人式系統應用上的特點致使嵌人式系統在軟硬體的組成和實現形式上與通用計算機系統有較大區別。為滿足嵌人式系統在速度、體積和功耗上的要求,操作系統、應用軟體、特殊數據等需要長期保存的數據,通常不使用磁碟這類具有大容量且速度較慢的存儲介質,而大多使用EPROM、E2PROM或快閃記憶體(Flash Memory)。在嵌入式系統中,A/D或D/A模塊主要用於測控方面,這在通用計算機中用得很少。根據實際應用和規模的不同,有些嵌入式系統要採用外部匯流排。隨著嵌入式系統應用領域的迅速擴張,嵌人式系統越來越趨於個性化,根據自身特點採用匯流排的種類也越來越多。另外,為了對嵌人式處理器內部電路進行測試,處理器晶元普遍採用了邊界掃描測試技術(JTAG)。
嵌人式系統的軟體體系是面向嵌人式系統特定的硬體體系和用戶要求而設計的,是嵌人式系統的重要組成部分,是實現嵌人式系統功能的關鍵。嵌入式系統軟體體系和通用計算機軟體體系類似,分成驅動層、操作系統層、中間件層和應用層等四層,各有其特點。
驅動層
驅動層是直接與硬體打交道的一層,它為操作系統和應用提供硬體驅動或底層核心支持。在嵌人式系統中,驅動程序有時也稱為板級支持包(BSP)。BSP具有在嵌入式系統上電后初始化系統的基本硬體環境的功能,基本硬體包括微處理器、存儲器、中斷控制器、DMA、定時器等。驅動層--般可以有三種類型的程序,即板級初始化程序、標準驅動程序和應用驅動程序。
操作系統層
嵌人式系統中的操作系統具有一般操作系統的核心功能,負責嵌人式系統的全部軟硬體資源的分配、調度工作控制、協調併發活動。它仍具有嵌人式的特點,屬於嵌人式操作系統(Embedded Operating System,EOS)。主流的嵌入式操作系統有Windows CE、Palm:OS、Linux、VxWorks.pSOS.QNX.LynxOS等。有了嵌人式操作系統,編寫應用程序就更加快速、高效、穩定。
中間件層
中間件是用於幫助和支持應用軟體開發的軟體,通常包括資料庫、網路協議、圖形支持及相應開發工具等,例如:MySQL、TCP/IP、GU1等都屬於這一類軟體。
應用層
嵌人式應用軟體是針對特定應用領域,用來實現用戶預期目標的軟體。嵌人式應用軟體和普通應用軟體有一定的區別,它不僅要求在準確性、安全性和穩定性等方面能夠滿足實際應用的需要,而且還要儘可能地進行優化,以減少對系統資源的消耗,降低硬體成本。嵌人式系統中的應用軟體是最活躍的力量,每種應用軟體均有特定的應用背景。儘管規模較小,但專業性較強,所以嵌人式應用軟體不像操作系統和支撐軟體那樣受制於國外產品,是我國嵌人式軟體的優勢領域。
嵌入式系統是通過把CPU嵌人目標系統或被控系統中起作用的。但是在不同的嵌入式系統中,嵌入的形式和程度是各不相同的。根據嵌人式系統和通用計算機連接關係的密切程度,嵌人形式可以分為全嵌入方式、半嵌入方式。
如果採用全嵌人方式,則嵌人式系統(或其核心功能)可以不依賴於通用計算機系統,即可單獨工作,典型實例有手機、MP4、車載GPS導航系統等。採用全嵌人方式的嵌人式系統有如下特點。
(1)具有獨立的處理器系統,且具有完整的輸入/輸出系統,能獨立完成系統的功能。
(2)高端CPU支持嵌入式操作系統,可以開發功能複雜的應用程序。
(3)一般為攜帶型手持式設備,其工作環境一般是無人值守、移動空間、高空或其他條件惡劣的環境。
(4)供電方式一般採用電池供電,有些情況下也可以直接採用市電220V供電,由系統自行設計轉換和穩壓電路。較高端的設備往往會把兩種供電方式結合起來,讓用戶使用起來更加靈活。
(5)全嵌入方式適合任何不宜採用通用計算機的場合,如消費電子、家用電器、通信網路設備、工業控制、智能儀器、戰場電子對抗、航天航空武器等,其應用範圍十分廣泛。
如果採用半嵌人方式,則嵌人式系統(或其核心功能)需要和通用計算機系統結合起來才能正常工作,典型實例有醫用B超系統、基於PCI卡的數據採集系統等。採用半嵌入方式的嵌人式系統有如下特點。
(1)一般沒有獨立的處理器,而是借用通用計算機系統的CPU完成計算和/或控制功能;有時即使具有自己的獨立處理器,但是處理器也只是完成一些有限的特定功能,而不具備控制全部系統的功能。
(2)嵌入式系統只是整個系統的--部分,只能完成整個系統的一部分功能,而其他功能需要在通用計算機上完成。通用計算機利用自己豐富的軟體和硬體資源,提供友好的人機操作界面和強大的數據處理能力。
(3)嵌入式系統的功能體現在對前端數據的採集和執行對被控對象的控制,其中的數據分析、處理和存儲等功能由通用計算機系統完成。
(5)嵌入式系統是作為外設連接在通用計算機上的,因此在通用計算機中一般需要提供嵌人式系統的標準驅動程序。
微處理器是整個系統的核心,通常由3大部分組成:控制單元、算術邏輯單元和寄存器。
嵌入式操作系統EOS(Embedded Operating System)是一種用途廣泛的系統軟體,過去它主要應用於工業控制和國防系統領域。EOS負責嵌入式系統的全部軟、硬體資源的分配、調度,控制、協調併發活動;它必須體現其所在系統的特徵,能夠通過裝卸某些模塊來達到系統所要求的功能。目前,已推出一-些應用比較成功的EOS產品系列。隨著Internet技術的發展、信息家電的普及應用及EOS的微型化和專業化,EOS開始從單一的弱功能向高專業化的強功能方向發展。嵌入式操作系統在系統實時高效性、硬體的相關依賴性、軟體固化以及應用的專用性等方面具有較為突出的特點。
嵌人式系統的應用十分廣泛,涉及工業生產、日常生活、工業控制、航空航天等多個領域,而且隨著電子技術和計算機軟體技術的發展,不僅在這些領域中的應用越來越深入,而且在其他傳統的非信息類設備中也逐漸顯現出其用武之地。
基於嵌人式晶元的工業自動化設備將獲得長足的發展,目前已經有大量的8位、16位、32位嵌人式微控制器在應用中。網路化是提高生產效率和產品質量、減少人力資源的主要途徑,如工業過程式控制制、數字機床、電力系統、電網安全、電網設備監測、石油化工系統。就傳統的工業控制產品而言,低端產品往往採用的是8位單片機。隨著計算機技術的發展,32位、64位的處理器已逐漸成為工業控制設備的核心。
在車輛導航、流量控制、信息監測與汽車服務方面,嵌人式技術已經獲得了廣泛的應用,內嵌GPS模塊、GSM模塊的移動定位終端已經在各種運輸行業獲得了成功。目前,GPS設備已經從尖端的科技產品進入了普通百姓的家庭。
家電將成為嵌人式系統最大的應用領域,冰箱、空調等的網路化、智能化將引領人們的生活步人一個嶄新的空間。即使不在家,也可以通過電話、網路對家電進行遠程控制。在這些設備中,嵌入式系統將大有用武之地。
水表、電錶、煤氣表的遠程自動抄表系統,安全防火、防盜系統,嵌有專用控制晶元,這種專用控制晶元將代替傳統的人工操作,完成檢查功能,並實現更高、更準確和更安全的性能。目前在服務領域,如遠程點菜器等已經體現了嵌人式系統的優勢。
公共交通無接觸智能卡(Contactless Smart Card,CSC)發行系統、公共電話卡發行系統、自動售貨機等智能ATM終端已全面走進人們的生活,在不遠的將來手持一張卡就可以行遍天下。
在很多環境惡劣、地況複雜的地區需要進行水文資料實時監測、防洪體系及水土質量監測堤壩安全與地震監測、實時氣象信息和空氣污染監測等時,嵌人式系統將實現無人監測。
嵌人式晶元的發展將使機器人在微型化、高智能方面的優勢更加明顯,同時,會大幅度降低機器人的價格,使其在工業領域和服務領域獲得更廣泛的應用。
以Linux操作系統為例,論述嵌入式系統的開發流程。
建立開發環境
安裝操作系統與交叉編譯器,操作系統一般使用RedhatLinux,選擇定製安裝或全部安裝,通過網路下載相應的GCC交叉編譯器進行安裝(比如,armn-1inux-gcc、arm-uclibc-gcc),或者安裝產品廠家提供的相關交叉編譯器。
配置開發主機的參數
配置MNICOM參數,MNICOM軟體的作用是作為調試嵌入式開發板的信息輸出的監視器和鍵盤輸入的工具。一般情況下的參數為波特率115200 Baud/s,數據位8位,停止位為1,無奇偶校驗,軟體硬體流控設為無。在Windows下的超級終端的配置也是這樣。配置網路主要是配置NFS網路文件系統,需要關閉防火牆以簡化嵌入式網路調試環境設置過程。
建立引導裝載程序BOOTLOADER
從網路上下載一些公開源代碼的BOOTL0ADER,如U-BOOT、BLOB、VIVI、LILO、ARM-Boot、RED-Boot等,根據具體晶元進行移植修改。有些晶元沒有內置引導裝載程序,這樣就需要編寫開發板上FLASH的燒寫程序,也可以在網上下載相應的燒寫程序。果不能燒寫自己的開發板,就需要根據自己的具體電路進行源代碼修改。這是讓系統可以正常運行的第一步。
下載已經移植好的Linux操作系統內核
如MCLiunx、ARM_Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統那是再好不過,下載后再添加特定硬體的驅動程序,然後進行調試修改,對於帶MMU的CPU可以使用模塊方式調試驅動,而對於MCLiunx這樣的系統只能編譯內核進行調試。
建立根文件系統
下載使用BUSYBOX軟體進行功能裁減,產生一個最基本的根文件系統,再根據自己的應用需要添加其他的程序。由於默認的啟動腳本一般都不會符合應用的需要,所以就要修改根文件系統中的啟動腳本,它的存放位置位於/etc目錄下,包括:/etc/init.drc.S、/etc/profile、/etc/.profile及自動掛裝文件系統的配置文件/etc/fstab等,具體情況會隨系統不同而不同。根文件系統在嵌入式系統中-般設為只讀,需要使用mkcramfs genromfs等工具產生燒寫映像文件。
建立應用程序的FLASH磁碟分區
一般使用JFFS2或YAFFS文件系統,這需要在內核中提供這些文件系統的驅動。有的系統使用一個線性FLASHNOR型)512KB~32MB,有的系統使用非線性FLASHNAND型)8MB~512MB,有的系統兩種同時使用,需要根據應用規劃FLASH的分區方案。
開發應用程序
根據需要開發應用程序,把開發成功的應用程序可以放入根文件系統中,也可以放入YAFFS、JFFS2文件系統中,有的應用不使用根文件系統,直接將應用程序和內核設計在一起,這有點類似於uC/OS-II的方式。
燒寫內核、根文件系統和應用程序,發布產品
對嵌入式系統的描述主要是從兩方面出發的,一是性能方面,另一種是功能方面。在系統描述過程中,不僅可以採用一種語言,也可以採用多種語言。同時,這一描述過程也是對軟體模型和系統硬體模型的建立過程。在進行嵌入式系統描述時,為了減少軟硬體協同設計初期中問題的出現,需要做好系統內行為的測試工作。一方面,可以在第一時間發設計中不合理的地方;另一方為系統安全、可靠運行提供了保證。系統描述需要以系統模型為支撐,為了進行正確的描述,應該確保該模型包括四個元素。一是功能特點,也就是指嵌入式系統的各項功能,同時應該重點明確功能和系統的輸入和輸出關係。第二是性能描述,在系統模型中,融入這一因素,能夠比較全面的反映系統的整體結構,並且需要說明系統輸入與輸出的聯繫。第三是約束條件,該要素不僅對嵌入式系統性能缺陷進行了說明,而且還合理的對系統工作環境中的要求進行了規定。第四是技術指標,其能夠對系統存在的問題、質量好壞進行說明,為設計工作開展奠定良好基礎。
在嵌入式系統的軟硬體協同設計中,軟硬綜合技術是重要的技術之一,在軟硬體系統的大體設計方面發揮著重要作用。在對其設計結果進行系統檢測評價的基礎上,可以根據設計要求,有針對性的開展細緻的系統製作工作,並且進行軟硬體的設計,確保其協調一致,進而可提升設計的科學性,對整個系統運行效率提高具有重要意義。
在進行軟硬體功能劃分工作中,主要是科學合理的劃分軟硬體和嵌入式系統功能,並對二者的關係進行明確。其中,成本函數是軟硬體功能劃分的主要依據之一。在運用成本函數方面時,需要考慮多方面因素。例如,模塊之間的併發性、軟體執行時間等。
在協調模擬和系統測試驗證方面,需要藉助硬體描述語言進行嵌入式系統硬體系統的描述工作。為了有效完成設計工作,滿足設計要求,需要對軟體搭配硬體的方法進行合理的應用,以便為接下來的設計工作創造良好的環境,不僅能夠在整體上提高設計效率與質量,而且還能減少設計成本,確保良好的經濟效益。
如今嵌入式系統發展更加的趨於提供更加生動的人機交互界面;對於更多小型電子產品具備更好的移植性,從而實現其自動化,低功耗,智能化。
嵌入式系統在WEB伺服器中的實例
在工業設計中,軟硬體的精簡性對於伺服器有較高的要求,而傳統網路伺服器並不具有簡潔性,且支持網路異構中實現對於計算機的遠程操控。而採用將網路設備嵌入到嵌入式設備中,將大大減少用戶的訪問時間,以及能夠精準的控制外部I/O。而嵌入式WEB伺服器不採用傳統的TCP/IP協議連入網際網路,而是選擇了由TCP/IP簡化的UIP協議棧實現嵌入式WEB伺服器。這樣的嵌入式WEB伺服器不僅具有簡潔性,而且使MCU具有更多的空間去控制外部I/O。
基於嵌入式系統的感測技術
物聯網領域從2009年溫家寶總理提出建立中國感測信息中心開始便逐漸成為眾多學者企業關注的重點,而感測技術作為物聯網領域的重要一環自然是必不可少。作為承擔著信息收集角色的感測器,必然要與嵌入式系統進行有機的結合。智能感測技術具有優秀的信息傳遞能力,智能感測器具備物與物之間的信息交換、物與計算機之間的信息傳遞能力,將廣泛應用與計算機、通信等方面的信息交流和數據傳遞。嵌入式智能感測器在物聯網領域具有重要作用。