嵌入式系統(tǒng)關(guān)鍵技術(shù)分析與開發(fā)應(yīng)用
嵌入式操作系統(tǒng)(Embedded Operating System)種類有一百種以上,代表性的產(chǎn)品有以下幾種:
1) 專用的實(shí)時(shí)操作系統(tǒng)(RTOS)。代表性的產(chǎn)品有QNX、VxWorks、pSos、lynx,還有Hopen,中文名稱為"女媧",它是由中科院開發(fā)的中國人自己的嵌入式OS。傳統(tǒng)上,以往的嵌入式應(yīng)用如果確定了要使用操作系統(tǒng),一般選上述其中之一。其特點(diǎn)是:
o 模塊化。
o 實(shí)時(shí)性好。
o 穩(wěn)定性好。
o 價(jià)格昂貴。由于操作系統(tǒng)本身以及開發(fā)環(huán)境都是專有的,價(jià)格一般都比較高,通常需花費(fèi)10萬元人民幣以上才能建起一個(gè)可用的開發(fā)環(huán)境,對(duì)每一個(gè)應(yīng)用一般還要另外收取版稅。
o 一般不通供源代碼,只提供二進(jìn)制代碼。
o 由于它們都是專用操作系統(tǒng),需要專門的技術(shù)人員掌握開發(fā)技術(shù)和維護(hù),所以軟件的開發(fā)和維護(hù)成本都非常高。
o 支持的硬件數(shù)量有限。
2) Windows CE。
微軟的嵌入式OS。與前述OS最大不同是其應(yīng)用編程接口(API)與Win32 API兼容,這樣Windows上的程序都可以重新編譯后移植到Win CE上來,開發(fā)人員可用開發(fā)Windows同樣的開發(fā)工具來開發(fā)Win CE程序。缺點(diǎn)同樣是源代碼不公開,對(duì)每一個(gè)應(yīng)用都要收取版稅。例如,某機(jī)頂盒采用Win CE,每臺(tái)需交納20-30美圓給微軟,另外,Win CE 體積龐大,占用很多的ROM和RAM。
3) 嵌入式Linux。
這是嵌入式操作系統(tǒng)的一個(gè)新成員,其最大的特點(diǎn)是源代碼公開并且并且遵循GPL協(xié)議,在近一年多以來成為研究熱點(diǎn),據(jù)IDG預(yù)測嵌入式LINUX將占未來兩年的嵌入式操作系統(tǒng)份額的50%,下面重點(diǎn)對(duì)其加以介紹。
o 由于其源代碼公開,人們可以任意修改,以滿足自己的應(yīng)用,并且查錯(cuò)也很容易。
o 遵從GPL,無須為每例應(yīng)用交納許可證費(fèi)。
o 有大量的應(yīng)用軟件可用。其中大部分都遵從GPL,是開放源代碼和免費(fèi)的??梢陨约有薷暮髴?yīng)用于用戶自己的系統(tǒng)。
o 有大量的免費(fèi)的優(yōu)秀的開發(fā)工具,且都遵從GPL,是開放源代碼的。
o 有龐大的開發(fā)人員群體。無需專門的人才,只要懂Unix/Linux和C語言即可。隨著Linux在中國的普及,這類人才越來越多。所以軟件的開發(fā)和維護(hù)成本很低。
o 優(yōu)秀的網(wǎng)絡(luò)功能,這在Internet時(shí)代尤其重要。
o 穩(wěn)定--這是 linux本身具備的一個(gè)很大優(yōu)點(diǎn)。
o 內(nèi)核精悍,運(yùn)行所需資源少,十分適合嵌入式應(yīng)用。
o 支持的硬件數(shù)量龐大。嵌入式Linux和普通linux并無本質(zhì)區(qū)別,
PC上用到的硬件嵌入式Linux幾乎都支持。而且各種硬件的驅(qū)動(dòng)程序源代碼都可以得到,為用戶編寫自己專有硬件的驅(qū)動(dòng)程序帶來很大方便。
在當(dāng)前數(shù)字信息技術(shù)和網(wǎng)絡(luò)技術(shù)高速發(fā)展的后PC(Post-PC)時(shí)代,嵌入式系統(tǒng)已經(jīng)廣泛地滲透到科學(xué)研究、工程設(shè)計(jì)、軍事技術(shù)、各類產(chǎn)業(yè)和商業(yè)文化藝術(shù)以及人們的日常生活等方方面面中。隨著國內(nèi)外各種嵌入式產(chǎn)品的進(jìn)一步開發(fā)和推廣,嵌入式技術(shù)越來越和人們的生活緊密結(jié)合。
1970年左右出現(xiàn)了嵌入式系統(tǒng)的概念,此時(shí)的嵌入式系統(tǒng)很多都不采用操作系統(tǒng),它們只是為了實(shí)現(xiàn)某個(gè)控制功能,使用一個(gè)簡單的循環(huán)控制對(duì)外界的控制請(qǐng)求進(jìn)行處理。當(dāng)應(yīng)用系統(tǒng)越來越復(fù)雜、利用的范圍越來越廣泛的時(shí)候,每添加一項(xiàng)新的功能,都可能需要從頭開始設(shè)計(jì)。沒有操作系統(tǒng)已成為一個(gè)最大的缺點(diǎn)了。
C語言的出現(xiàn)使操作系統(tǒng)開發(fā)變得簡單。從上世紀(jì)80年代開始,出現(xiàn)了各種各樣的商用嵌入式操作系統(tǒng)百家爭鳴的局面,比較著名的有VxWorks、pSOS和Windows CE等等,這些操作系統(tǒng)大部分是為專有系統(tǒng)而開發(fā)的。另外,源代碼開放的嵌入式Linux,由于其強(qiáng)大的網(wǎng)絡(luò)功能和低成本,近來也得到了越來越多的應(yīng)用。
1 嵌入式系統(tǒng)的技術(shù)特點(diǎn)
嵌入式系統(tǒng)通常包括構(gòu)成軟件的基本運(yùn)行環(huán)境的硬件和操作系統(tǒng)兩部分。嵌入式系統(tǒng)的運(yùn)行環(huán)境和應(yīng)用場合決定了嵌入式系統(tǒng)具有區(qū)別于其它操作系統(tǒng)的一些特點(diǎn)。
(1)嵌入式處理器
嵌入式處理器可以分為三類:嵌入式微處理器、嵌入式微控制器、嵌入式DSP(Digital Signal Processor)。嵌入式微處理器就是和通用計(jì)算機(jī)的微處理器對(duì)應(yīng)的CPU。在應(yīng)用中,一般是將微處理器裝配在專門設(shè)計(jì)的電路板上,在母板上只保留和嵌入式相關(guān)的功能即可,這樣可以滿足嵌入式系統(tǒng)體積小和功耗低的要求。目前的嵌入式處理器主要包括:PowerPC、Motorola 68000、ARM系列等等。
嵌入式微控制器又稱為單片機(jī),它將CPU、存儲(chǔ)器(少量的RAM、ROM或兩者都有)和其它外設(shè)封裝在同一片集成電路里。常見的有8051。
嵌入式DSP專門用來對(duì)離散時(shí)間信號(hào)進(jìn)行極快的處理計(jì)算,提高編譯效率和執(zhí)行速度。在數(shù)字濾波、FFT、譜分析、圖像處理的分析等領(lǐng)域,DSP正在大量進(jìn)入嵌入式市場。
什么是嵌入式系統(tǒng)和嵌入式微處理器
嵌入式系統(tǒng)一般指非PC系統(tǒng),它包括硬件和軟件兩部分。硬件包括處理器/微處理器、存儲(chǔ)器及外設(shè)器件和I/O端口、圖形控制器等。軟件部分包括操作系統(tǒng)軟件(OS)(要求實(shí)時(shí)和多任務(wù)操作)和應(yīng)用程序編程。有時(shí)設(shè)計(jì)人員把這兩種軟件組合在一起。應(yīng)用程序控制著系統(tǒng)的運(yùn)作和行為;而操作系統(tǒng)控制著應(yīng)用程序編程與硬件的交互作用。
嵌入式系統(tǒng)的核心是嵌入式微處理器。嵌入式微處理器一般就具備以下4個(gè)特點(diǎn):1)對(duì)實(shí)時(shí)多任務(wù)有很強(qiáng)的支持能力,能完成多任務(wù)并且有較短的中斷響應(yīng)時(shí)間,從而使內(nèi)部的代碼和實(shí)時(shí)內(nèi)核心的執(zhí)行時(shí)間減少到最低限度。2)具有功能很強(qiáng)的存儲(chǔ)區(qū)保護(hù)功能。這是由于嵌入式系統(tǒng)的軟件結(jié)構(gòu)已模塊化,而為了避免在軟件模塊之間出現(xiàn)錯(cuò)誤的交叉作用,需要設(shè)計(jì)強(qiáng)大的存儲(chǔ)區(qū)保護(hù)功能,同時(shí)也有利于軟件診斷。3)可擴(kuò)展的處理器結(jié)構(gòu),以能最迅速地開展出滿足應(yīng)用的最高性能的嵌入式微處理器。4)嵌入式微處理器必須功耗很低,尤其是用于便攜式的無線及移動(dòng)的計(jì)算和通信設(shè)備中靠電池供電的嵌入式系統(tǒng)更是如此,如需要功耗只有mW甚至μW級(jí)。
阻礙嵌入式LINUX系統(tǒng)開發(fā)的因素有哪些
1) 硬件方面:
嵌入式32位微處理器系統(tǒng)具有非常廣闊的市場前景,目前國際上已有廠商推出自己的產(chǎn)品,但是設(shè)計(jì)嵌入式32位微處理器系統(tǒng)對(duì)大多數(shù)開發(fā)者來說卻存在很大困難。嵌入式32位微處理器內(nèi)部結(jié)構(gòu)非常復(fù)雜,工作頻率達(dá)幾十兆甚至幾百兆HZ,所用到的外圍器件如存儲(chǔ)器和網(wǎng)絡(luò)器件也都是工作在很高頻率上的復(fù)雜器件。所以,設(shè)計(jì)和調(diào)試32位微處理器系統(tǒng)硬件,對(duì)任何硬件設(shè)計(jì)人員都是具有挑戰(zhàn)性的工作,產(chǎn)品開發(fā)成本很高周期很長。
2) 軟件方面:
作為比較新的一個(gè)操作系統(tǒng),開發(fā)人員需要研究其工作原理,閱讀大量文檔和源代碼,熟悉許多的開發(fā)工具,才能掌握它;作為開放源代碼軟件,許多用戶感覺技術(shù)服務(wù)難以得到保證;一些用戶必須的文檔缺乏或者寫得不清楚,給用戶開發(fā)帶來困難;軟件和用戶的硬件之間存在較大差距,要使嵌入式Linux順暢運(yùn)行,用戶仍然有許多煩瑣的與硬件接口的底層軟件要做;嵌入式Linux軟件發(fā)布有許多種類,可以提供給用戶選擇的硬件平臺(tái)卻非常缺乏。