版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
嵌入式系統(tǒng)在多點溫度控制中的應用目錄TOC\o"1-3"\h\z第一章概述 31.1引言 31.2選題意義 31.3課題的實現 51.4論文的章節(jié)安排 6第二章嵌入式系統(tǒng) 82.1嵌入式系統(tǒng)的根本概念 82.1.1嵌入式系統(tǒng)的歷史 82.1.2何為嵌入式系統(tǒng) 92.1.3嵌入式實時操作系統(tǒng) 102.2嵌入式系統(tǒng)的組成 112.2.1嵌入式處理器 112.2.2嵌入式操作系統(tǒng) 122.3嵌入式系統(tǒng)的開發(fā) 152.4嵌入式系統(tǒng)的應用 162.5嵌入式系統(tǒng)的未來開展趨勢 16第三章系統(tǒng)開發(fā)環(huán)境與技術 183.1系統(tǒng)的開發(fā)環(huán)境 183.1.1SM5964概述 183.1.2嵌入式操作系統(tǒng)μC/OS-II 19嵌入式系統(tǒng)軟/硬件協(xié)同設計技術 25嵌入式系統(tǒng)的測試技術 27第四章系統(tǒng)的設計與實現 294.1系統(tǒng)的硬件設計 294.2系統(tǒng)的移植 334.3系統(tǒng)的軟件設計與實現 354.3.1設計總述 354.3.2任務的劃分 364.3.3人機交互模塊的詳細設計 384.3.5溫度測量及控制模塊詳細設計 434.3.6遠程加載程序的設計 47第五章PC側程序的設計 505.1PC機側串行通信程序的設計 50程序設計的關鍵技術 515.1.2通信協(xié)議的制定 525.1.2PC機側通信程序的實現 535.2PC側ISP功能控制模塊設計 585.2.1PC機側傳輸協(xié)議約定 585.2.2控制界面和流程圖設計 59第六章結論 616.1總結 616.2進一步的研究 61第一章概述1.1引言嵌入式系統(tǒng)被定義為:以應用為中心,以計算機技術為根底,軟硬件可裁剪,適應應用系統(tǒng)對功能、可靠性、本錢、體積、功耗嚴格要求的專用計算機系統(tǒng)。實際上嵌入式系統(tǒng)是計算機的一種應用形式,是將先進的計算機技術、半導體技術和電子技術與各個行業(yè)的具體應用相結合后的產物,具有軟件代碼小、高度自動化、響應速度快等特點。因此它是一個技術密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。特別適合于要求實時的和多任務的系統(tǒng)。從美國微軟發(fā)布“維納斯方案〞白皮書到中國中科院推出的“女媧方案〞,整個世界仿佛在一夜之間掀起了嵌入式開發(fā)與應用的熱潮,人們開始關注嵌入式技術的開展和應用情況。嵌入式系統(tǒng)的研究和開發(fā)也隨之走入了高校和研究所,成為人們的學科,并且相應地開發(fā)出了嵌入式操作系統(tǒng),嵌入式瀏覽器和嵌入式數據庫等產品。在當前數字信息技術和網絡技術高速開展的后PC〔Post-PC〕時代,嵌入式系統(tǒng)已經廣泛地滲透到科學研究、工程設計、軍事技術、各類產業(yè)和商業(yè)文化藝術以及人們的日常生活等方方面面中。隨著國內外各種嵌入式產品的進一步開發(fā)和推廣,嵌入式技術越來越和人們的生活緊密結合。如今嵌入式系統(tǒng)的應用越來越廣泛,那么嵌入式系統(tǒng)應用緣何能在近年來的信息技術應用中脫穎而出,成為眾多商家角逐的對象。其實原因很簡單,因為這里面蘊藏著巨大的市場,巨大的商業(yè)利益,單就電視應用而言,目前全球有2億多有線電視用戶,中國也有8000多萬戶,而且每年還在以600萬的速度遞增。如今,在這塊領域里,還沒有一家公司有成熟的產品,也沒有標準的操作系統(tǒng),更沒有一個可以主導市場的壟斷者。在這種局勢下,雖然競爭將異常劇烈,但突圍的可能性也較大,只要能夠培養(yǎng)出自己的技術能力和市場開拓能力,是有可能取得巨大成功的。如今嵌入式系統(tǒng)已經成為IT界的又一新焦點,它正處在一個飛速開展和劇烈競爭的時代,它被廣泛應用到金融、航天、電信、網絡、信息家電、醫(yī)療、工業(yè)控制、軍事等各個領域。1.2選題意義微機控制系統(tǒng)是一種實時系統(tǒng),所謂實時系統(tǒng)是指系統(tǒng)能及時地響應外部事件的請求,在許可的時間限制內完成對該事件的處理,并控制相應的設備完成實時操作。為了滿足處理實時事件的要求,絕大局部單片微機都具有中斷功能。它允許在發(fā)生某一事件時〔例如外部設備運行完成、定時時間到等〕,為了對這一事件進行處理,中止現行程序的運行而進入處理該事件的程序,處理完再返回原程序執(zhí)行。隨著單片微機應用的日益深入和廣泛,應用的水平越來越高,應用系統(tǒng)的功能也越來越復雜,一個系統(tǒng)經常需要控制多個對象,并且這些對象都要求實時操作。特別是現在已開始大量使用多機系統(tǒng),它們一般為主從結構的多機控制系統(tǒng)。從機完成數據采集、計算、控制等功能。主機可向從機發(fā)命令,修改從機的參數,而從機可向主機回送結果和數據。在這樣的系統(tǒng)中,主從機通信與從機的數據采集、計算、控制等必須并行進行,即從機在通信和執(zhí)行主機的命令時,也不能影響其它操作。因此,較復雜的單片微機實時系統(tǒng)特別是多機系統(tǒng),均要求單片微機系統(tǒng)具有同時進行多種實時操作的能力,我們稱之為并行處理。另外,在系統(tǒng)軟件設計中,多采用單任務順序機制。程序由一個主循環(huán)控制,通過判斷不同的標志輪循調用各功能函數,在主循環(huán)中調用的模塊按順序運行?!舱撌銮度胧较到y(tǒng)與一般系統(tǒng)的差異,優(yōu)缺點〕本課題基于嵌入式系統(tǒng)的開發(fā)及應用,利用嵌入式系統(tǒng)的設計方法及測試技術,結合RTOS的選取原那么,選用了源碼公開的嵌入式實時操作系統(tǒng)μC/OS-II,結合實際應用,設計了一個實現對多點溫度進行控制的嵌入式系統(tǒng)。復雜的微機控制系統(tǒng)使用常規(guī)的順序程序設計方法加上中斷來實現功能是比擬困難的,主要表達在以下幾個方面:(1).實時性差:由于計算機在處理中斷時,一般不允許響應低級和同級中斷,為了提高實時性,要求中斷處理程序盡量短。但是有許多實時操作的處理比擬復雜,需要較長的CPU執(zhí)行時間。如果用中斷來完成這些處理,那么在處理時,無法響應低級或同級中斷。如果采用中斷置標志的方法,讓主程序來進行處理,那么一方面會增加程序的復雜性,另一方面也難以做到實時處理,因為主程序不可能在執(zhí)行其它程序時,隨時去檢查這些標志位而轉向不同的處理程序。(2).難以實現并行操作的相互通信:在功能較強的實時系統(tǒng)中,除了主程序有時需要與中斷間進行信息交換外,各個并行操作之間有時也需相互通信。這些用常規(guī)方法是難以實現的。(3).結構復雜、移植性差、維護困難:單片微機功能的復雜化,使軟件越來越復雜,特別是為了實現并行操作,需使用大量的中斷和標志,使程序結構十分混亂,難以設計和調試。同時由于程序采用線性結構,使得程序難于修改或者移植,因此缺乏靈活性、通用性和可維護性。為了解決以上的問題,可以把應用軟件按所完成的功能分成一個個獨立的、但可以并行運行的任務,如串行口通信任務、數據采集任務、數據計算任務、定時打印任務等。這樣,整個應用軟件有各個任務所組成,設計、調試時可分別進行。修改時只可修改個別任務即可,從而提高了軟件的可移植性。為了提高系統(tǒng)的可靠性,并有效地實現任務間的相互通信,當應用程序處理的任務較多,尤其要求同時執(zhí)行兩個以上的工作和任務時,在軟件設計中引入實時多任務操作系統(tǒng)(RealTimeOperatingSystem,RTOS)將非常必要。提倡在嵌入式應用中使用RTOS的最主要原因是提高系統(tǒng)的可靠性。長期以來,在國內傳統(tǒng)的開發(fā)方式是:針對某一應用,畫程序流程圖、編制應用程序。通常是線性程序,此機制的優(yōu)勢在于流程直觀。這種方法的缺點是:除中斷效勞程序以外,各程序模塊沒有優(yōu)先級的區(qū)別,被主循環(huán)簡單地輪轉調用,實時性差,響應時間無法預料;而且,當一個任務申請不到資源,或循環(huán)過程中由于某種原因無法跳出循環(huán)時,其他任務將得不到響應,當程序很小時,雖然可通過設置Watchdog,利用中斷等方法來解決上述矛盾。如果程序變得較大,將大大增加開發(fā)時間和調試難度,復雜度不堪想象。正是上述的缺點,在干擾嚴重的情況下,系統(tǒng)平安性差。另一重要原因是提高開發(fā)效率,縮短開發(fā)周期。系統(tǒng)中引入RTOS之后,有RTOS完成任務管理、任務間通信、中斷管理等功能。嵌入式系統(tǒng)中的多任務操作系統(tǒng)在應用系統(tǒng)啟動后,首先運行的是背景程序,用戶的應用程序是運行于其上的各個具體任務,多任務操作系統(tǒng)允許靈活地分配系統(tǒng)資源〔中央處理器、存儲器等等〕給各個任務,各程序模塊〔或者任務〕就如同中斷程序一樣并行運行,這樣就可以簡化那些復雜而且時間要求嚴格的工程的軟件設計,同時也提高了可靠性。目前較流行的嵌入式實時多任務操作系統(tǒng)國外主要有VxWorks、QNX、pSOS、WindowsCE等。另外,國內也有許多自主開發(fā)的實時操作系統(tǒng),如科銀京成〔CoreTek〕公司的嵌入式軟件開發(fā)平臺DeltaSystem,中科院推出的Hopen嵌入式操作系統(tǒng),浙江大學自主研制開發(fā)的全中文的嵌入式操作系統(tǒng)HBOS系統(tǒng)等。這些操作系統(tǒng)性能優(yōu)越,易于移植,但均屬于商業(yè)操作系統(tǒng),需支付昂貴的版稅。另外也有兩個優(yōu)秀的自由軟件操作系統(tǒng)是μC/OS-II和嵌入式Linux,它們也具有相當好的性能,且源代碼開放,免費使用,以上這些操作系統(tǒng)大多都有完善的開發(fā)環(huán)境和工具。用戶在進行嵌入式系統(tǒng)的設計時,根據具體應用和實際情況,選擇適合自己的實時操作系統(tǒng)。1.3課題的實現〔本課題基于嵌入式系統(tǒng)的開發(fā)及應用,利用嵌入式系統(tǒng)的設計方法及測試技術,結合RTOS的選取原那么,選用了源碼公開的嵌入式實時操作系統(tǒng)μC/OS-II,結合實際應用,設計了一個實現對多點溫度進行控制的嵌入式系統(tǒng)?!衬壳熬捅惧X而言,在較長的一段時間,很多測控應用領域,微處理器只需8位或16位單片機就可勝任,對于這樣低端的產品開發(fā),要完成較復雜的任務,可采用微內核的多任務操作系統(tǒng)如μC/OS-II、RTX、CMX等來完成軟件設計。在應用中,已經能夠明顯減少系統(tǒng)的軟件設計工作量,并提高了系統(tǒng)的可靠性??紤]到系統(tǒng)實際應用,在硬件設計方面,微控制器選用了臺灣Syncmos公司生產的8位微控制器SM5964,它是80C52微控制器家族的派生產品,其強大的片內資源,只需選用少量的外圍器件即可實現系統(tǒng)的要求。溫度測量利用Pt〔100Ω〕熱敏電阻,測量的模擬信號經模數轉換模塊轉換后送入微處理進行處理。模數轉換器選用凌特公司(LinearTechnology)推出的20位無延遲模數轉換器LTC2430,此模塊可直接對測量的毫伏級信號進行處理,并能夠到達精度要求。其它也選用了與通信和輸出控制相關的器件。軟件的設計基于軟件開發(fā)平臺μC/OS-II,它是由Labrosse先生編寫的一個開放式內核,最主要的特點就是源碼公開,此RTOS的更多優(yōu)點在第三章有詳細論述。一方面它是免費的,另一方面用戶可以根據自己的需要對它進行修改。由于它沒有功能強大的軟件包,基于具體應用需要自己編寫驅動程序,為使其能夠正常工作,要根據具體的硬件平臺完成相應的移植工作。μC/OS-II是一個占先式的內核,即已經準備就緒的高優(yōu)先級任務可以剝奪正在運行的低優(yōu)先級任務的CPU使用權。這個特點使得它的實時性比非占先式的內核要好。在設計中,給予不同任務不同的優(yōu)先級,提高了系統(tǒng)的實時性。對溫度控制方面,采用了一種基于時間最優(yōu)控制的PID算法實現對溫度控制。除了實現對溫度的采集、處理、控制之外,本課題一方面利用SM5964的ISP功能,實現了PC機利用ISP技術進行對系統(tǒng)遠程加載和升級。另一方面,利用RS232串行通信技術,實現了PC機與系統(tǒng)的通信,并可對系統(tǒng)進行遠程控制。從而實現了微機控制系統(tǒng)中主從式控制系統(tǒng)結構。1.4論文的章節(jié)安排論文的結構及內容安排如下:概述概述局部由嵌入式系統(tǒng)成為當今IT行業(yè)又一熱點開始,結合當前微機控制領域存在的問題,論述了在此領域引入嵌入式操作系統(tǒng)的必要性,引出課題的意義。最后給出課題的實現方案。嵌入式系統(tǒng)本章首先對嵌入式系統(tǒng)的歷史進行論述,引出其當前的定義,并提出了RTOS所要解決的幾個問題。然后提出了嵌入式系統(tǒng)的兩大組成局部:嵌入式處理器和嵌入式實時操作系統(tǒng),分析了當前嵌入式處理器的分類以及當前流行嵌入式操作系統(tǒng)的特點。最后論述了嵌入式系統(tǒng)的開發(fā)工具及應用狀況,并對嵌入式系統(tǒng)的未來開展趨勢加以展望。系統(tǒng)的開發(fā)環(huán)境及相關技術本章根據第二章的論述,結合課題的需要,首先對系統(tǒng)選用的主控芯片SM5964的特性進行了介紹,并根據嵌入式操作系統(tǒng)的選取原那么,對系統(tǒng)選用的RTOSμC/OS-II的特點進行了論述。然后根據系統(tǒng)實際應用介紹了對實時內核進行的擴展。最后,闡述了系統(tǒng)設計中使用的嵌入式系統(tǒng)軟/硬件協(xié)同設計技術和測試技術。系統(tǒng)的設計與實現本章中論述了本課題的核心,詳細論述了實現對多點溫度進行控制的嵌入式系統(tǒng)的設計。從對系統(tǒng)的硬件設計進行論述開始,然后完成根據具體的硬件平臺進行操作系統(tǒng)的移植工作。最后對系統(tǒng)的軟件設計進行了詳細的闡述,在軟件設計中,把系統(tǒng)的軟件分成人機交互、串行通信、溫度的測量及控制、遠程加載等四大模塊,并對每一??斓木唧w實現進行了詳細論述。PC側程序的設計本章中論述了對系統(tǒng)進行遠程監(jiān)控和ISP功能主控側程序的實現,模擬實現了主從式微機控制系統(tǒng)主控方的程序設計。首先論述了VC++對多線程的支持以及多線程編程中的關鍵問題,然后詳細闡述了主機側通信功能和ISP功能的設計。系統(tǒng)的擴展及總結本章簡要介紹了在系統(tǒng)中實現文件系統(tǒng)和網絡功能的方法,對整個課題給予總結。第二章嵌入式系統(tǒng)嵌入式系統(tǒng)的開展和應用是現代信息社會的一個重要特征,已經被用于各行各業(yè),也深入地影響到人們的生活和工作,本章較為全面地介紹和研究了嵌入式系統(tǒng)的根本概念和原理,并對嵌入式系統(tǒng)的開展方向和趨勢作一定的論述,對于了解嵌入式系統(tǒng)及其開發(fā)和研究將起到一定的作用。2.1嵌入式系統(tǒng)的根本概念嵌入式系統(tǒng)的歷史雖然嵌入式系統(tǒng)是近幾年才風行起來的,但從20世紀70年代單片機的出現到今天各式各樣的嵌入式微處理器、微控制器的大規(guī)模應用,嵌入式系統(tǒng)已經有近30年的開展歷史。作為一個系統(tǒng),往往是在硬件和軟件雙螺旋式交替開展的支撐下逐漸趨于穩(wěn)定和成熟,嵌入式系統(tǒng)也不例外。嵌入式系統(tǒng)最初的應用是基于單片機的。20世紀70年代單片機的出現,使得汽車、家電、工業(yè)機器、通信裝置以及成千上萬種產品可以通過內嵌電子裝置來獲得更佳的使用性能,更容易使用,更快、更廉價。這些裝置已經初步具備嵌入式的應用特點,但是這時的應用只是使用8位的芯片,執(zhí)行一些單線程的程序,還談不上“系統(tǒng)〞的概念。從80年代早期開始,嵌入式系統(tǒng)的程序員開始用商業(yè)級的“操作系統(tǒng)〞編寫嵌入式應用軟件,這使得開發(fā)人員可以進一步縮短開發(fā)周期,降低開發(fā)本錢并提高開發(fā)效率。1981年,ReadySystem開發(fā)出世界上第一個商業(yè)嵌入式實時內核〔VTRX32〕。這個實時內核包含了許多傳統(tǒng)操作系統(tǒng)的特征,包括任務管理、任務間通信、同步與相互排斥、中斷支持、內存管理、時鐘管理等功能。如IntegratedSystemIncorporation(ISI)(現已被風河公司收購)的pSOS和WindRiver(風河)的VxWorks、QNX公司的QNX等。這些嵌入式操作系統(tǒng)都具有嵌入式的典型特點:系統(tǒng)內核很小,具有可裁減性、可擴充性和可移植性,可以移植到各種處理器上;較強的實時性和可靠性,適合嵌入式應用。這些嵌入式實時多任務操作系統(tǒng)的出現,使得應用開發(fā)人員從小范圍的開發(fā)中解放出來,同時也促使嵌入式有了更為廣闊的應用空間。90年代以后,隨著對實時性要求的提高,軟件規(guī)模不斷上升,實時內核逐漸開展為實時多任務操作系統(tǒng)〔RTOS〕,并作為一種軟件平臺逐步成為目前國際嵌入式系統(tǒng)的主流。這時候更多的公司看到了嵌入式系統(tǒng)的廣闊開展前景,開始大力開展自己的嵌入式操作系統(tǒng)。除了上面的幾家老牌公司以外,還出現了PalmOS、WindowsCE、嵌入式Linux、Lynx、Nucleus以及國內的Hopen、DeltaOS等嵌入式操作系統(tǒng)。隨著嵌入式技術的開展前景日益廣闊,嵌入式操作系統(tǒng)軟越來越多?,F在RTOS已經在全球形成了1個產業(yè),更具美國EMF(電子市場分析)報告,1999年全球RTOS市場產值達3.6億美元,而相關的整個嵌入式開發(fā)工具〔包括仿真器、邏輯分析儀、軟件編譯器和調試器〕那么高達9億美元。何為嵌入式系統(tǒng)隨著嵌入式技術的開展和應用,出現了不同的嵌入式系統(tǒng)的定義,目前國內一個普遍被認同的定義是:以應用為中心,以計算機技術為根底,軟硬件可裁減,適應應用系統(tǒng)對功能、可靠性、本錢、體積、功耗嚴格要求的計算機系統(tǒng)。可以從以下幾個方面來理解國內對嵌入式系統(tǒng)的定義:嵌入式系統(tǒng)式面向用戶、面向產品、面向應用的,它必須與具體的應用相結合才會具有生命力、才具有優(yōu)勢。即嵌入式系統(tǒng)是與應用緊密結合的,它具有很強的專用性,必須結合實際系統(tǒng)需求進行合理的裁減利用。嵌入是系統(tǒng)式將先進的計算機技術、半導體技術和電子技術以及各個行業(yè)的具體應用相結合后的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創(chuàng)新的知識集成系統(tǒng)。所以,介入嵌入式系統(tǒng)的行業(yè),必須有一個正確的定位。例如PalmOS之所以在PDA領域占有70%以上的市場,就是因為其立足于個人電子消費品,著重開展圖形界面和多任務管理;而風河〔WindRiver〕的VxWorks之所以在火星車上得以應用,那么是因為其高實時性和高可靠性。3.嵌入式系統(tǒng)必須根據應用需求可對軟硬件進行裁減,滿足應用系統(tǒng)的功能、可靠性、本錢、體積等要求。所以,如果能建立相對通用的軟硬件根底,然后在其上開發(fā)出適應各種需要的系統(tǒng),是一個比擬好的開發(fā)模式。目前,國內外有很多微內核大小不等的嵌入式操作系統(tǒng),可以根據實際的使用進行功能擴展或者裁減,從而加速嵌入式系統(tǒng)的開發(fā)?,F在當講到嵌入式系統(tǒng)時,一般是指近年來比擬熱的具有操作系統(tǒng)的嵌入式系統(tǒng)。其根本結構如圖1所示。嵌入式實時應用程序嵌入式實時應用程序嵌入式實時操作系統(tǒng)硬件平臺應用程序與操作系統(tǒng)的接口操作系統(tǒng)與硬件接口圖1嵌入式系統(tǒng)的根本結構嵌入式實時操作系統(tǒng)實時操作系統(tǒng)〔RealTimeOperatingSystem,RTOS〕是根據操作系統(tǒng)的工作特性而言的,是指具有實時性,能支持實時控制系統(tǒng)工作的操作系統(tǒng)。它的首要任務是調度一切可利用的資源完成實時控制任務,提高可靠性,其次才著眼于提高系統(tǒng)的使用效率,要滿足對時間的限制和要求。RTOS是嵌入式應用軟件的根底和開發(fā)平臺,它應具有如下的功能:1).任務管理〔多任務和基于優(yōu)先級的任務調度〕;2).任務間的同步和通信〔信號量、郵箱和消息隊列〕;3).存儲器優(yōu)化管理〔含ROM的管理〕4).實時時鐘效勞5).中斷管理效勞實時操作系統(tǒng)中的任務〔Task〕等同于分實操作系統(tǒng)中的進程〔Process〕的概念。系統(tǒng)中的任務有四種狀態(tài):運行〔Executing〕、就緒〔Ready〕、掛起〔Suspended〕、睡眠〔Dormant〕。運行:獲得CPU控制權;就緒:進入任務等待隊列,通過調度轉為運行狀態(tài);掛起:任務發(fā)生阻塞,從任務等待隊列中移出,等待系統(tǒng)實時事件的發(fā)生而喚醒,從而轉為就緒或運行狀態(tài);睡眠:任務完成或者錯誤等原因被刪除的任務。在任意時刻,只有一個任務處于運行狀態(tài)。RTOS是操作系統(tǒng)研究的一個重要分支,它與一般商用多任務OS如Unix、Windows等有共同的一面,也有不同的一面。對商用多任務OS,其目的是方便用戶管理計算機資源,追求系統(tǒng)資源最大利用率;而RTOS追求的是調度的實時性、時間響應時間的可確定性、系統(tǒng)的高度可靠性。評價一個實時操作系統(tǒng)一般可以從任務調度、內存管理、任務通訊、內存開銷、任務切換時間、最大中斷禁止時間等幾個方面來衡量。因此,RTOS要解決的幾個主要問題如下:=1\*GB2⑴任務調度機制:RTOS的實時性和多任務能力在很大程度上取決于它的任務調度機制。從調度策略上來講,分優(yōu)先級調度策略和時間片輪轉調度策略;從調度方式上來講,分可搶占、不可搶占、選擇可搶占調度方式;從時間片上來看,分固定與可變時間片輪轉。單純從基于優(yōu)先級的搶占式調度方式而言,又存在多種優(yōu)先級計算方法。在大多數商用的實時系統(tǒng)中,為了讓操作系統(tǒng)能夠在有突發(fā)事件時,迅速取得系統(tǒng)控制權以便對時間作出反響,所以大都提供了“搶占式任務調度〞的功能,也就是操作系統(tǒng)有權終止應用程序〔應用任務〕的執(zhí)行,并且將執(zhí)行權交給擁有最高優(yōu)先級的任務。=2\*GB2⑵內存管理如同分時操作系統(tǒng)一樣,實時操作系統(tǒng)使用內存管理單元〔MMU〕進行內存管理。實時操作系統(tǒng)內存管理模式可以分為實模式與保護模式〔主要對Intelx86而言〕。目前主流的實時操作系統(tǒng)一般都可以提供兩種模式,讓用戶根據應用自主選擇。=3\*GB2⑶最小內存開銷RTOS的設計過程中,最小內存開銷是一個較重要的指標,這是因為在工業(yè)控制領域中的某些工控機〔如上下位機控制系統(tǒng)中的下位機〕,由于基于降低本錢的考慮,其內存的配置一般都不大,而在這有限的空間內不僅要裝載實時操作系統(tǒng),還要裝載用戶程序。因此,在RTOS的設計中,其占用內存大小是一個很重要的指標,這是RTOS設計與其它操作系統(tǒng)設計的明顯區(qū)別之一。=4\*GB2⑷最大中斷禁止時間與中斷延遲時間當RTOS運行在核心態(tài)或執(zhí)行某些系統(tǒng)調用的時候,是不會因為外部中斷的到來而中斷執(zhí)行的。只用當RTOS重新回到用戶態(tài)才響應外部中斷請求,這一過程所需要的最大時間就是最大中斷禁止時間。中斷延遲〔InterruptLatency〕時間是指系統(tǒng)確認中斷開始直到執(zhí)行中斷效勞程序的第一條指令為止整個處理過程所需要的時間。實時操作系統(tǒng)的中斷延遲時間有以下三個因素決定:處理器硬件電路的延遲時間,通常這個時間可以忽略;實時操作系統(tǒng)處理中斷并將控制權轉移給相關處理程序所需要的時間;實時操作系統(tǒng)的中斷禁止時間。=5\*GB2⑸任務切換時間(Context-SwitchingTime)當由于某種原因使一個任務退出運行時,RTOS保存它的運行現場信息、插入相應隊列、并根據一定的調度算法重新選擇一個新任務使之投入運行,這一過程所需時間稱為任務切換時間。更準確地說,任務切換時間是實時操作系統(tǒng)將控制權從一個任務的執(zhí)行中取回,然后交給另一個任務所需的時間。它包括保存目前正在執(zhí)行任務的現場信息所需要的時間、RTOS決定下一個調度任務所需的調度時間以及RTOS把另外一個任務調入系統(tǒng)執(zhí)行所需要的時間。在上述幾項中,最大中斷禁止時間和任務切換時間是評價一個RTOS實時性最重要的兩個技術指標。2.2嵌入式系統(tǒng)的組成一個嵌入式系統(tǒng)是一個有特定功能或用途的計算機軟硬件的集合體,其硬件的核心部件是嵌入式處理器,包括微控制器〔MCU〕、數字信號處理器〔DSP〕、嵌入式微處理器〔MPU〕、嵌入式片上系統(tǒng)〔SystemOnChip〕等。而軟件的核心部件式嵌入式操作系統(tǒng),目前流行的嵌入式操作系統(tǒng)有VxWorks、pSOS、QNX、WindowsCE、PalmOS、QNX、Linux等。嵌入式處理器目前據不完全統(tǒng)計,全世界嵌入式處理器的品種總量已經超過1000多種,流行的體系結構有30多個系列?,F在幾乎每個半導體制造商都生產嵌入式處理器,根據其現狀,大致分為以下幾類:1).嵌入式微處理器〔EmbeddedMicroprocessorUnit,EMPU〕嵌入式處理器的根底是通用CPU,在應用中,將微處理器裝配在專門設計的電路板上,只保存和嵌入式應應用有關的母板功能,這樣可以大幅度減少系統(tǒng)體積和功耗。為了滿足嵌入式應用的特殊要求,嵌入式微處理器具有體積小、重量輕、本錢低、可靠性高等優(yōu)點,但是設計中需外加ROM、RAM、總線接口、各種外設等器件,從而降低了系統(tǒng)的可靠性,技術保密性也較差。嵌入式處理器目前主要有Aml86/88、386EX、SC-400、PowerPC、68000、MIPS、ARM系列等。2).嵌入式微控制器〔MicrocontrollerUnit,MCU〕嵌入式微控制器又稱單片機,顧名思義,就是將整個計算機系統(tǒng)集成到一片芯片中。嵌入式微控制器一般以某種微處理器內核為核心,芯片內部集成ROM/EPROM、RAM、總線、總線邏輯、定時/計數器、WatchDog、I/O、串行口、脈沖調制輸出、A/D、D/A、Flash等各種必要功能和外設。和嵌入式微處理器相比,微控制器的最大特點是單片化,體積大大減少,從而使功耗和本錢下降、可靠性提高。嵌入式微控制器是目前嵌入式系統(tǒng)工業(yè)的主流。微控制器的片上外設資源一般比擬豐富,適合于控制,故稱為微控制器。嵌入式微控制器目前的品種和數量最多,比擬有代表性的通用系列有8051、P51XA、MCS-251/96、MC68HC05/11/16、68300等,3).嵌入式DSP處理器〔EmbeddedDigitalSignalProcessor,EDSP〕DSP處理器對系統(tǒng)結構和指令進行了特殊設計,使其適合于執(zhí)行DSP算法,編譯效率較高,指令執(zhí)行速度快。在數字濾波、FFT、譜分析等方面DSP算法正大量進入嵌入式領域,DSP應用正從在單片機中以普通指令實現DSP功能,過渡到采用嵌入式DSP處理器。嵌入式DSP處理器有兩個開展來源,一是DSP處理器經過單片化、EMC改造、增加片上外設稱為嵌入式DSP處理器;二是在通用單片機或SOC中增加DSP協(xié)處理器。目前嵌入式DSP處理器比擬有代表性的產品是TexasInstruments的TMS320系列和Motorola的DSP56000系列。4).嵌入式片上系統(tǒng)〔SystemOnChip,SOC〕隨著EDI的推廣、VLSI設計的普及以及半導體工藝的迅速開展,可以結合許多功能區(qū)塊,將功能做在一個芯片上而構成一個更為復雜的系統(tǒng),這就是SOC。它結合了微內核,像ARMRISC、MIPSRISC、DSP或是其它的微處理器核心,外加通信接口單元,像USB、TCP/IP通信單元、GPRS通信接口、GSM通信接口、藍牙模塊等等。這樣開發(fā)的應用系統(tǒng)電路板變得很簡潔,對于減小體積和功耗、提高可靠性非常有利。SOC分為通用和專用兩類,通用系列包括Siemens的TriCore,Motorola的M-Core,某些ARM系列器件。專用SOC一般專用于某個或某類系統(tǒng)中,一個有代表性的產品是Philips的SmartXA,它將XA單片機內核和支持超過2048位復雜RSA算法的CCU單元制作在一塊硅片上,形成一個可加載JAVA或者C語言的專用SOC,可用于公眾互聯網如Internet平安方面。嵌入式操作系統(tǒng)嵌入式操作系統(tǒng)并不是一個新生的事物,從20世紀80年代起,國際上就有一些IT組織、公司開始進行商用嵌入式操作系統(tǒng)和專用操作系統(tǒng)的研究,它作為嵌入式系統(tǒng)靈魂,大大提高了嵌入式系統(tǒng)的開發(fā)效率,一改以往嵌入式軟件設計只能針對具體的應用從頭做起的歷史。在嵌入式操作系統(tǒng)之上開發(fā)嵌入式系統(tǒng)將減少系統(tǒng)開發(fā)的工作量,增強了嵌入式應用軟件的可移植性,使嵌入式系統(tǒng)的開發(fā)方法更具科學性,可以說嵌入式操作系統(tǒng)的出現為嵌入式系統(tǒng)的開展鋪平了道路。嵌入式操作系統(tǒng)是一段在嵌入式系統(tǒng)啟動后首先執(zhí)行的背景程序,用戶的應用程序是運行于其上的各個任務,它根據各個任務的要求,進行資源〔包括存儲器、外設等〕管理、消息管理、任務調度、異常處理等工作。在有嵌入式操作系統(tǒng)支持的系統(tǒng)中,每個任務有一個優(yōu)先級,根據各個任務的優(yōu)先級,動態(tài)地切換各個任務,保證對實時性的要求。開發(fā)人員在編寫程序時,可以分別編寫各個任務,不必同時將所有任務運行的各種可能情況記在心中,這樣大大減少了程序編寫的工作量,而且減少了出錯的可能,保證最終程序具有高可靠性。經過多年的開展,目前世界上已經有一大批十分成熟的實時嵌入式操作系統(tǒng),比擬流行的嵌入式操作系統(tǒng)如下:=1\*GB2⑴VxWorksVxWorks操作系統(tǒng)是美國WindRiver公司于1983年設計開發(fā)的一種實時嵌入式操作系統(tǒng)〔RTOS〕,由于具有高性能的系統(tǒng)內核和友好的用戶開發(fā)環(huán)境,在實時嵌入式系統(tǒng)領域牢牢占據著一席之地。如美國JPL實驗室研制的著名“索杰納〞火星車采用的就是VxWorks操作系統(tǒng)。VxWorks的突出特點:可靠性、實時性和可裁減性。它是目前嵌入式系統(tǒng)領域中使用最廣泛、市場占有率最高的操作系統(tǒng)。它支持多種處理器,如x86、i960、SunSparc、MotorolaMc68xxx、MIPSRX000、PowerPC等。大多數的VxWorksAPI是專有的,采用GNU的編譯和調試器,具有集成開發(fā)環(huán)境Tornado系列。它屬于商業(yè)型操作系統(tǒng),目前國內很多大的公司都采用此操作系統(tǒng)進行嵌入式系統(tǒng)的開發(fā),如中興通訊、華為等。=2\*GB2⑵pSOSpSOS原屬ISI公司的產品,但ISI已經被WindRiver公司兼并,現在pSOS屬于WindRiver公司的產品。該系統(tǒng)是一個模塊化、高性能的實時操作系統(tǒng),專為嵌入式微處理器設計,提供一個完全的多任務環(huán)境,在定制的或者商業(yè)化的硬件上具有高性能和高可靠性,可以讓開發(fā)者根據操作系統(tǒng)的功能和內存需求定制每一個應用所需的系統(tǒng)。開發(fā)者可以利用它來實現從簡單的單個獨立設備到復雜的、網絡化的多處理器系統(tǒng)。=3\*GB2⑶WindowsEmbeddedWindowsEmbedded產品家族是Microsoft的產品,主要是用于建立支持具有豐富應用程序和效勞的32嵌入時系統(tǒng),從而針對廣泛的用戶需求提供靈活解決方案。此外,同支持更快的“產品上市速度〞并降低開發(fā)本錢,WindowsEmbedded產品家族還能保證開發(fā)人員立于競爭前沿。目前WindowsEmbedded產品家族主要有WindowsCE3.0和WindowsNTEmbedded4.0。=4\*GB2⑷PalmOSPalmOS是著名的網絡設備制造商3COM旗下的PalmComputing掌上電腦公司的產品,在PDA市場上占有很大的市場份額。它具有開放的操作系統(tǒng)應用程序接口〔API〕,開發(fā)商可以根據需要自行開發(fā)所需要的應用程序。從全球范圍來看,由于Handspring公司和SONY公司也被授權使用PalmOS操作系統(tǒng),致使PalmOS的市場份額占到將近90%。PalmOS的優(yōu)勢在于可以讓用戶靈活方便地定制操作系統(tǒng)以適合自己的習慣,而且其市場運作經驗豐富,資本雄厚,目前也正在通過第三方軟件商進行軟件的中文化工作。=5\*GB2⑸OS-9Microwave的OS-9是為微處理器關鍵實時任務而設計的操作系統(tǒng),廣泛應用于高科技產品中,包括消費電子產品、工業(yè)自動化、無線通信產品、醫(yī)療儀器、數字電視/多媒體設備。它提供了很好的平安性和容錯性。與其它的嵌入式系統(tǒng)相比,它的靈活性和可升級性非常突出。=6\*GB2⑹LynxOS.1c標準。LynxOS支持線程的概念,提供256個全局用戶線程優(yōu)先級;提供一些傳統(tǒng)的、非實時系統(tǒng)的效勞特性,包括基于調用需求的虛擬內存、一個基于Motif的用戶圖形界面、與工業(yè)標準兼容的網絡系統(tǒng)以及應用開發(fā)工具。=7\*GB2⑺QNXQNX是加拿大QNX公司的產品。QNX是在x86體系上開發(fā)出來的,這和別的RTOS不太一樣,別的大多RTOS都是從68K的CPU上開發(fā)成熟,然后再移植到x86體系上來的,但是QNX是直接在x86上面開發(fā),只是近年才在68K等CPU上使用。QNX是一個實時的、可擴充的操作系統(tǒng),它局部遵循PosIX相關標準,如PosIX.1b實時擴展。它提供了一個很小的微內核以及一些可選的配合進程。其內核僅提供4種效勞:進程調度、進程間通信、底層網絡通信和中斷處理。其進程在獨立的地址空間運行。所有其它OS效勞,都表達為協(xié)作的用戶進程,因此QNX內核非常小巧〔QNX4.x大約為12KB〕,而且運行速度極快。這個靈活的結構可以使用戶根據實際的需求,將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或者包括幾百個處理器的超級虛擬機操作系統(tǒng)。由于QNX具有強大的圖形界面功能,因此很適合作為機頂盒、手持設備〔掌上電腦、〕、GPS設備的實時操作系統(tǒng)使用。=8\*GB2⑻嵌入式Linux自由免費軟件Linux的出現對目前商用嵌入式操作系統(tǒng)帶來了沖擊。它可以移植到多個有不同結構的CPU和硬件平臺上,具有很好的穩(wěn)定性、各種性能的升級能力強,而且開發(fā)更容易。國際上許多大型跨國企業(yè),已經選中了Linux操作系統(tǒng)作為開發(fā)嵌入式產品的工具。如韓國三星公司、美國Transmeta公司等。國內也有很多廠家推出了基于Linux的嵌入式系統(tǒng),如中科紅旗軟件技術既開發(fā)了嵌入式Linux系統(tǒng)根本開發(fā)平臺,有提供了可供裁減的嵌入式Linux圖形用戶界面、窗口系統(tǒng)和網絡瀏覽器,并與其它廠商合作開發(fā)了許多產品,包括PDA、機頂盒、彩票機等。=9\*GB2⑼μC/OS-IIμC/OS-II是源代碼公開的實時嵌入式內核,是由美國人JeanJ.Labrosse撰寫,其性能完全可以與商業(yè)產品競爭。它是基于μC/OS的,在1992年以來已經有很多成功的商業(yè)應用。它可在絕大多數8位、16位、32位甚至64位微處理器、微控制器、數字信號處理器〔DSP〕上運行。鑒于它的很多的優(yōu)點,我在系統(tǒng)設計中選用了此操作系統(tǒng),關于它的更詳細的信息將在第下一章中論述。另外,國內也有許多自主開發(fā)的實時操作系統(tǒng),如科銀京成〔CoreTek〕公司的嵌入式軟件開發(fā)平臺DeltaSystem,中科院推出的Hopen嵌入式操作系統(tǒng),浙江大學自主研制開發(fā)的全中文的嵌入式操作系統(tǒng)HBOS系統(tǒng)等。面對如此眾多的嵌入式操作系統(tǒng),嵌入式開發(fā)人員要根據自己的實際應用,進行合理的選擇。進行選擇時,一般主要考慮以下幾個方面:=1\*GB2⑴操作系統(tǒng)的硬件支持這主要從兩個方面考慮:是否支持目標硬件平臺;可移植性;=2\*GB2⑵開發(fā)工具的支持程度選擇實時操作系統(tǒng)時,要考慮與之相關的工具。微處理器、在線仿真器〔ICE〕、編譯器、匯編器、連接器、調試器以及模擬器等都不同程度影響著操作系統(tǒng)。=3\*GB2⑶能否滿足應用需求主要考慮以下幾個方面:對操作系統(tǒng)性能的要求:內核存儲空間要求、網絡化支持等;中文內核支持,國內產品要考慮對中文的支持;標準兼容性,要考慮應用行業(yè)的標準性;技術支持,購置RTOS之后,還需要技術支持,要考慮供給商的技術支持渠道及時間性等;源代碼還是目標碼;許可,獲得RTOS使用許可進行開發(fā)產品時,要考慮供給商的收費方式。如果考慮了以上的各種因素之后,找不到適宜的實時操作系統(tǒng),可以自建一個。自建實時操作系統(tǒng)有兩種方式,一種是完全從內核開始,寫自己的RTOS,這對于一般的用戶和開發(fā)人員而言,是不可想象的。另一種就是在免費的源代碼公開的內核上寫自己的RTOS,如Linux和μC/OS-II。2.3嵌入式系統(tǒng)的開發(fā)嵌入式系統(tǒng)的開發(fā)包括嵌入式處理器的開發(fā)〔目前國內還主要靠國外的產品〕和嵌入式操作系統(tǒng)以及相關的應用軟件的開發(fā)。嵌入式處理器是一個復雜系統(tǒng),要在短時間內掌握并開發(fā)出所有功能是不現實的,而市場競爭那么要求產品能夠快速上市,這一矛盾要求嵌入式處理器能夠有容易掌握和使用的開發(fā)工具平臺,提高用戶和程序員的時間投入回報。面對成百上千種處理器,選擇是一個問題,學習掌握處理器結構及其應用更需要時間,因此以開發(fā)工具和技術咨詢?yōu)楦椎恼w解決方案是迫切需要的。目前嵌入式系統(tǒng)的開發(fā)工具平臺主要包括以下幾種:1).實時在線仿真系統(tǒng)ICE(In-CircuitEmulator)實時在線仿真系統(tǒng)〔ICE〕是進行嵌入式應用系統(tǒng)調試最有效的開發(fā)工具。ICE首先可以通過實際執(zhí)行,對應用程序進行原理性檢驗,排除人的思維難以發(fā)現的設計邏輯錯誤。另一主要功能是在應用系統(tǒng)中仿真微控制器的實時執(zhí)行,發(fā)現和排除由于硬件干擾等引起的異常執(zhí)行行為。2).高級語言編譯器〔CompilerTools〕C語言作為一種通用的高級語言,大幅度提高了嵌入式系統(tǒng)工程師的工作效率,使之能夠充分發(fā)揮出嵌入式處理器日益提高的性能,縮短產品進入市場時間。另外,C語言便于移植和修改,使產品的升級和繼承更迅速。更重要的是采用C語言編寫的程序易于在不同的開發(fā)者之間進行交流,從而促進嵌入式系統(tǒng)開發(fā)的產業(yè)化。C++語言強大的類、繼承等功能更便于實現復雜的程序功能。EC++保存了C++的主要優(yōu)點,提供了對C++的向上兼容性,并滿足嵌入式系統(tǒng)設計的一些特殊要求。C/C++/EC++被引入嵌入式系統(tǒng),使得嵌入式開發(fā)和個人計算機、小型機等之間在開發(fā)上的差異正在逐漸消除,軟件工程中的很多經驗、方法甚至庫函數可以移植到嵌入式系統(tǒng)。另一種高級語言JAVA,它是為設備獨立的嵌入式系統(tǒng)設計的,可以提高程序的繼承性,由于目前基于JAVA的嵌入式開發(fā)工具代碼生成長度要比嵌入式C編譯工具差10倍以上,故其應用還不夠廣泛。在嵌入式開發(fā)中采用高級語言,還使得硬件的開發(fā)和軟件的開發(fā)可以分工,從事嵌入式軟件開發(fā)不再必須精通系統(tǒng)硬件和相應的匯編指令集。3).源程序模擬器〔Simulator〕源程序模擬器是在廣泛使用的、人機接口完備的工作平臺上,如小型機和PC,通過軟件手段模擬執(zhí)行某種嵌入式處理器內核編寫的源程序測試工具。簡單的模擬器可以通過指令解釋方式逐條執(zhí)行源程序,分配虛擬存儲空間和外設,供程序員檢查;高級的模擬器可以利用計算機的外部接口模擬處理器的I/O電氣信號。模擬器軟件獨立于處理器硬件,一般與編譯器集成在同一個環(huán)境中,是一種有效的源程序檢驗和測試工具。2.4嵌入式系統(tǒng)的應用嵌入式系統(tǒng)在辦公自動化、建筑設計、機械設計與制造、醫(yī)療、監(jiān)視、衛(wèi)生設備、交通運輸、通信、信息家電、工業(yè)控制和金融等系統(tǒng)中都有著廣泛的應用。例如,辦公設備中的掃描儀、打印機;家電中的機頂盒、冰箱、洗衣機;生活中的、PDA、電梯;平安控制中的防火控制系統(tǒng)、平安報警系統(tǒng)、平安監(jiān)視設備、平安保險柜;制造控制中的制造工廠自動化、給水、廢水處理、發(fā)電設備;醫(yī)療中的X光設備、CT機;交通運輸中的飛機、火車、公共汽車、輪船、雷達系統(tǒng)、自動售票系統(tǒng);通信中的機、交換機、衛(wèi)星和信息交換系統(tǒng);其它還有地震測試儀、機器人等等。這些我們在生活中都是能夠經常接觸到而且與我們的生活息息相關的,其中有些系統(tǒng)嵌入式應用程度低一些,因此我們可能感覺不到。隨著嵌入式軟件開發(fā)水平的提高,相信將來我們的日常生活將充滿嵌入式,我們將會每天都能隨時隨地享受到嵌入式給我們帶來的方便和快捷。2.5嵌入式系統(tǒng)的未來開展趨勢信息時代、數字時代使得嵌入式系統(tǒng)獲得了巨大的開展機遇,為嵌入式市場展現了美好的前景,同時也對嵌入式生產廠商提出了新的挑戰(zhàn)。從中可以看出未來嵌入式系統(tǒng)的幾大開展趨勢:1).嵌入式開發(fā)是一項系統(tǒng)工程,因此要求嵌入式系統(tǒng)廠商不僅提供嵌入式軟硬件系統(tǒng)本身,同時還應提供強大的硬件開發(fā)環(huán)境和軟件包支持。目前很多廠商已經充分考慮到這一點,在主推系統(tǒng)的同時,將開發(fā)環(huán)境也作為重點推廣。比方三星在推廣ARM7、ARM9芯片的同時還提供開發(fā)板和板級支持包〔BSP〕, 而WindowsCE在主推系統(tǒng)的同時也提供EmbeddedVC++作為開發(fā)工具,還有VxWorks的Tornado開發(fā)環(huán)境、DeltaOS的Limda開發(fā)環(huán)境等都是這一典型趨勢的表達。當然,這也是市場競爭的結果。2).網絡化、信息化的要求隨著英特網技術的成熟、帶寬的提高而日益提高,使得以往單一功能的設備、、冰箱、微波爐等功能不再單一,結構日益復雜。這就要求芯片設計廠商在芯片上集成更多的功能。為了滿足應用功能的升級,設計師們一方面采用更強大的嵌入式處理器如32位、64位RISC芯片或信號處理器DSP增強處理能力,同時增加功能接口〔如USB〕,擴展總線類型〔如CANBUS〕,加強對多媒體、圖形等的處理,逐步實施片上系統(tǒng)〔SOC〕的概念。軟件方面,采用時實多任務編程技術和交叉開發(fā)工具技術來控制功能復雜性、簡化應用程序的設計,保障軟件質量和縮短開發(fā)周期〔如HP〕.3).網絡互連成為必然趨勢。未來的嵌入式設備為了適應網絡開展的要求,必然要求硬件上提供各種網絡通信接口,傳統(tǒng)的單片機對于網絡支持得不夠,而新一代嵌入式處理器已經開始內嵌網絡接口,除了支持TCP/IP協(xié)議,有的還支持IEEE1394、USB、CAN、Bluetooth或IrDA通信接口中的一種或者幾種,同時也提供相應的通信協(xié)議軟件和物理層驅動軟件。軟件方面,系統(tǒng)內置支持網絡模塊,甚至可以在設備上嵌入Web瀏覽器,真正實現隨時隨地用各種設備上網。4).精簡系統(tǒng)內核、算法,降低功耗和軟硬件本錢。未來的嵌入式產品是軟硬件緊密結合的設備,為了降低功耗和本錢,需要設計者盡量精簡設備內核,只保存和系統(tǒng)緊密相關的軟硬件,利用最低的資源實現最適當的功能,這就要求設計者選用最正確的編程模型和不斷改良算法,優(yōu)化編譯器的性能。因此,軟件開發(fā)人員既要有豐富的硬件知識,又需要開展先進的嵌入式軟件系統(tǒng)技術,如JIVA、Web和WAP等。5).提供有好的多媒體人機界面。嵌入式設備能與用戶緊密接觸,最重要的因素就是它能提供友好的用戶界面、圖形界面和靈活的控制方式,使得人們感覺嵌入式設備就像一個熟悉的老朋友。這方面的要求使得嵌入式軟件設計者要在圖形界面,多媒體技術上多下功夫。手寫文字輸入、語音撥號上網、收發(fā)電子郵件以及彩色圖形、圖像都會使使用者獲得自由的感受。目前一些先進的PDA在顯示屏幕上也實現漢字輸入、短消息語音發(fā)布,但一般的嵌入式設備距離這個要求還有很長的路要走。第三章系統(tǒng)開發(fā)環(huán)境與技術3.1系統(tǒng)的開發(fā)環(huán)境考慮到系統(tǒng)的性能、本錢、可靠性等因素,系統(tǒng)的主控芯片選用了臺灣Syncmos公司生產的以80C52為內核的8位微控制器SM5964。它具有豐富的片內資源,只需添加少量的外圍器件即可滿足系統(tǒng)設計的需要。根據上一章中闡述的嵌入式操作系統(tǒng)的選取原那么,軟件開發(fā)平臺選用了源代碼公開的RTOSμC/OS-II。下面對其詳細介紹。SM5964概述SM5964微控制器是系統(tǒng)的核心器件,它是80C52微控制器家族的派生產品,其硬件特征和強大的指令系統(tǒng)使它成為一種性能價格比高的控制器。除具有通用80C52優(yōu)點之外,其特點如下:集成度高:它具有豐富的片內資源,包括3個16位定時器、1個看門狗定時器、全雙工串口通道等,其PDIP封裝具有32個I/O口而PLCC/QFP封裝那么具有多達36個I/O口。存儲量大:它內置了64KBFlashROM和1KBRAM。ISP特性:它具有在系統(tǒng)可編程(ISP)功能,可以通過串口或者并口利用ISP功能實現系統(tǒng)的程序在線修改或升級。片內有多達4KB的存儲空間供ISP編程之用。PWM特性:片上有5路PWM通道可供用戶使用。另外它的主頻可以高達40MHz,SM5964處理器的模塊圖如圖3-1所示:圖3-1SM5964模塊圖嵌入式操作系統(tǒng)μC/OS-II在進行嵌入式系統(tǒng)設計時,選擇適合自己的實時操作系統(tǒng)是至關重要的,我結合具體的應用,考慮開發(fā)本錢等因素,根據嵌入式操作系統(tǒng)的選取原那么并基于μC/OS-II的許多特點,選用了源代碼公開的實時操作系統(tǒng)μC/OS-II。.1μC/OS-II的主要特點它是由Labrosse先生編寫的一個開放式內核,主要特點如下:公開源代碼:源代碼全部公開,這樣使系統(tǒng)變得透明,很容易就能把操作系統(tǒng)移植的各個不同的硬件平臺上,并可根據需要進行擴充??梢浦残裕害藽/OS-II絕大局部源碼是用ANSIC寫的,可移植性〔Portable〕較強。它可以在絕大多數8位、16位、32位甚至64位微處理器、微控制器、數字信號處理器〔DSP〕上運行??晒袒害藽/OS-II是為嵌入式應用而設計的,可以嵌入到開發(fā)者的產品中成為產品的一局部??刹脺p:可以根據具體的應用,對內核進行裁減,其內核最小可到達2KB。占先式:μC/OS-II完全是占先式〔Preemptive〕的實時內核,總是運行在就緒條件下優(yōu)先級最高的任務。大多數商業(yè)內核也是占先式的,μC/OS-II在性能上與它們類似。多任務:μC/OS-II可以管理64個任務,系統(tǒng)本身保存8個,應用程序最多可以有56個任務,賦予每個任務的優(yōu)先級必須不同??纱_定性:全部μC/OS-II的函數調用與效勞的執(zhí)行時間具有其可確定性。μC/OS-II的系統(tǒng)效勞的執(zhí)行時間不依賴于應用程序任務的多少。任務棧:每個任務有自己單獨的棧,μC/OS-II允許每個任務有不同的棧空間,以便壓低應用程序對RAM的需求。使用μC/OS-II的??臻g校驗函數,可以確定每個任務到底需要多少??臻g。系統(tǒng)效勞:μC/OS-II提供很多系統(tǒng)效勞,例如郵箱、消息隊列、信號量、塊大小固定的內存的申請和釋放、時間相關函數等。中斷管理:中斷可以使正在執(zhí)行的任務暫時掛起,如果優(yōu)先級更高的任務被該中斷喚醒,那么高優(yōu)先級的任務在中斷嵌套全部退出后立即執(zhí)行,中斷嵌套層數可達255層。穩(wěn)定性與可靠性:μC/OS-II自1992年以來已經有很多成功的商業(yè)應用,其穩(wěn)定性和可靠性都有很好的保證。.2μC/OS-II硬件和軟件體系結構μC/OS-II的內核是占先式〔Preemptive〕內核,即總是讓就緒態(tài)的高優(yōu)先級的任務先運行,中斷效勞程序可以搶占CPU,當中斷效勞程序完成時,內核讓此時優(yōu)先級最高的任務運行。這樣使系統(tǒng)的響應時間得到最優(yōu)化,而且是可知的。它完成了任務管理、任務間的通信和同步、內存管理、時間管理和中斷管理。其硬件和軟件體系結構如圖3-2所示圖3-21).任務的管理它包括任務的創(chuàng)立、刪除、掛起和恢復等。在嵌入式系統(tǒng)中每個任務是一個無限的循環(huán),它看起來像其他C的函數一樣,有函數返回類型,有形式參數變量,但是任務是絕不會返回的,故返回參數必須定義為Void。格式如下:voidTask1(void*ppdata){for(;;){/*用戶代碼*//*調用μC/OS-II的某種系統(tǒng)效勞*/}}任務的創(chuàng)立函數如下:INT8UOSTaskCreate(void(*task)(void*pd),void*ppdata,OS_STK*ptos,INT8Uprio);其中:task是任務代碼的指針;ppdata是當任務開始執(zhí)行時傳遞給任務的參數指針;ptos是分配給任務的堆棧的棧頂指針;prio是分配給任務的優(yōu)先級。任務刪除函數為:INT8UOSTaskDel(INT8Uprio)。任務掛起函數為:INT8UOSTaskSuspend(INT8Uprio)。任務恢復函數為:INT8UOSTaskResume(INT8Uprio)。系統(tǒng)中每個任務有掛起、就緒、運行及休眠等狀態(tài),各狀態(tài)之間的轉換關系如圖3-3所示。圖3-32).任務間的通信在μC/OS-II中,有多種方法可以保護任務之間的共享數據和提供任務之間的通信,下面介紹三種:一是利用宏OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()來關閉中斷和翻開中斷。當兩個任務或者一個任務和一個中斷效勞子程序共享某些數據時,可以采用這種方法。二是利用函數OSSchedLock()和OSSchedUnlock()對任務調度函數上鎖和開鎖,禁止任務調度。用這種方法也可以實現數據的共享。三是任務間的通信和同步采用信號量、郵箱和消息隊列來實現的。3).內存管理采用把連續(xù)的大塊按分區(qū)來管理。每個分區(qū)中包含有正整數個大小相同的內存塊,μC/OS-II對malloc()和free()函數進行了改良,使得它們可以分配和釋放固定大小的內存塊。用戶的應用程序可以從不同的內存分區(qū)中取得不同大小的內存塊,但是特定的內存塊在釋放時必須重新放回它以前所屬于的內存分區(qū)。采用這種內存管理方法,解決了內存碎片問題。主要相關函數:建立內存分區(qū)〔OSMemCreate()〕,分配內存塊〔OSMemGet()〕,釋放內存塊〔OSMemPut()〕。4).時間管理μC/OS-II要求用戶提供定時中斷來實現延時與超時控制等功能,這個定時中斷成為時鐘節(jié)拍,它一般每秒發(fā)生10至100次,時鐘節(jié)拍的頻率越高,系統(tǒng)的負荷越嚴重。其實際大小可由用戶的應用程序來決定。時間管理主要是完成任務的延時及系統(tǒng)時間的更改。.3針對應用對內核進行的擴充由于μC/OS-II僅是一個實時內核,不像其它的實時操作系統(tǒng)那樣提供給用戶的只是一些API函數接口,把它移植到目標硬件平臺只是系統(tǒng)設計工作的開始,還需要針對實際的應用需求對其進行功能擴展,包括底層的硬件驅動、文件系統(tǒng)、用戶圖形接口〔GUI〕、網絡功能等,從而建立一個實用的RTOS。下面僅對外設及驅動程序進行論述。外設驅動程序可以對系統(tǒng)提供訪問外圍設備的接口,把操作系統(tǒng)〔軟件〕和外圍設備〔硬件〕別離開來。當外圍設備改變的時候,只需更換相應的驅動程序,不必修改操作系統(tǒng)的內核以及運行在操作系統(tǒng)的軟件。下面僅建立用到的外設驅動程序標準接口。=1\*GB2⑴串行口〔UART〕串行口符合RS-232標準,通信的最高速度可以到達115200bps。建立的接口函數如下:Uart_Init定義:voidUart_Init(INT16Umclk,INT16Ubaud);功能:初始化串行口,設置串行口通信的波特率參數說明:mclk:系統(tǒng)的主時鐘頻率。baud:所設定的串行口通信波特率Uart_SendStr定義:voidUart_SendStr(char*str,…..);功能:輸出字符串到串口參數說明:str:輸出到串行口的字符串。Uart_Getch定義:charUart_Getch();功能:接收串口的數據,收到數據時返回,返回串口接收到的數據。Uart_Sendch定義:voidUart_Sendch(chardata)功能:向串口發(fā)送數據參數說明:data:發(fā)送的數據=2\*GB2⑵液晶顯示驅動程序系統(tǒng)設計中選用的LCD是北京精電蓬遠顯示技術公司生產的MGLS-12864,內部有控制電路,在系統(tǒng)的內存里開辟了一塊內存作為液晶屏顯示的后臺緩沖區(qū)LCDBuffer,用于保存要顯示的內容。對于不同的液晶屏顯示只需要改動LCD128.C和LCD128.H中的程序即可。液晶模塊有兩種工作模式:圖形方式和文本方式。在圖形方式下,模塊上的緩沖區(qū)映射的是液晶屏上顯示的圖形點陣;在文本方式下,模塊上的緩沖區(qū)對應的是液晶屏上顯示的文本字符,包括英文字符和英文標點符號。在此對漢字顯示僅作演示之用。液晶屏的操作主要包括:初始化、設置工作模式〔文本或者圖形〕、更新顯示。接口函數如下:LCD_Init定義:voidLCD_Init(void);功能:初始化LCD,在系統(tǒng)啟動時此函數被調用。LCD_Pritf定義:voidLCD_Printf(char*str,…);功能:在LCD的文本方式下輸出字符串。參數說明:str:所輸出的字符串LCD_ChangeMode定義:voidLCD_ChangeMode(INT8Umode);功能:改變LCD的工作模式參數說明:mode:設定的LCD的顯示模式,0表示文本模式,1表示圖形模式LCD_Refresh定義:voidLCD_Refresh(INT8Ucol,INT8Urow,char*str)功能:更新LCD的顯示,把后臺緩沖區(qū)LCDBuffer[][]中的內容更新到LCD的顯示屏上。參數說明:col:顯示字符串的起始列數。row:顯示字符串的起始列數。str:需要顯示的內容=3\*GB2⑶鍵盤驅動程序鍵盤的相關驅動函數如下:GetKey定義:INT8UGetKey();功能:獲得被按下的鍵數,返回值中指示出哪個鍵被按下。GetScanKey定義:INT8UGetScanKey()功能:對各個按鍵進行掃描,從而確定其狀態(tài)。相應位指示其是否被按下〔1表示按下,0表示斷開〕。=4\*GB2⑷A/D驅動程序系統(tǒng)中采用20位模數轉換器LTC2430,完成對溫度信號的測量,將模擬信號轉換成相應的數字信號之后,傳給處理器進行相關的處理。根據其轉換特性,設計的函數接口如下:2430_Check定義:INT8U2430_Check();功能:檢查本次模數轉換是否完成。返回值為0時,正在進行轉換,否那么轉換結束。2430_ReadValue定義:INT16U2430_ReadValue()功能:讀取轉換結果并返回其值。傳統(tǒng)的嵌入式系統(tǒng)的設計方法如圖3-4所示,硬件和軟件的分為兩個獨立的局部,有硬件工程師和軟件工程師按照擬定的設計流程分別完成。這種設計方法只能改善硬件/軟件各自的性能,而有限的設計空間不可能對系統(tǒng)做出較好的性能綜合優(yōu)化。20世紀90年代初,國外有些學者提出“這種傳統(tǒng)的設計方法,只是早期計算機技術落伍的產物,它不能求出適合于某個專用系統(tǒng)的最正確計算機應用系統(tǒng)的解〞。因為,從理論上來說,每一個應用系統(tǒng)的,都存在一個適合于該系統(tǒng)的硬件、軟件功能的最正確結合,如何從應用系統(tǒng)的需求出發(fā),依據一定的指導原那么和分配算法對硬件/軟件功能進行分析及合理的劃分,從而使得系統(tǒng)的整體信能、運行時間、能量損耗。存儲能量到達最正確狀態(tài),已成為硬件/軟件協(xié)同設計的重要研究內容之一。需求分析總體設計需求分析總體設計嵌入式系統(tǒng)硬件開發(fā)嵌入式系統(tǒng)軟件開發(fā)嵌入式系統(tǒng)集成、測試、驗證圖3-4傳統(tǒng)嵌入式系統(tǒng)的設計方法應用系統(tǒng)的多樣性和復雜性,使硬件/軟件的功能劃分與分配、系統(tǒng)優(yōu)化、系統(tǒng)綜合、模擬仿真存在許多研究解決的問題,因而使國際上這個領域的研究日益活潑。系統(tǒng)協(xié)同設計與傳統(tǒng)的設計相比有以下兩個顯著的區(qū)別:描述硬件和軟件使用統(tǒng)一的表示形式。硬件/軟件劃分可以選擇多種方案,直到滿足要求。顯然,這種設計方法對于具體的應用系統(tǒng)而言,容易獲得滿足綜合性能指標的最正確解決方案。傳統(tǒng)方法雖然也可以改良硬件軟件性能,但由于這種改良是各自獨立進行的,不一定使系統(tǒng)綜合性能到達最正確。傳統(tǒng)的嵌入式系統(tǒng)的開發(fā)采用的是軟件開發(fā)與硬件開發(fā)別離的方式,其過程可以描述如下:需求分析軟硬件分別設計、開發(fā)、調試、測試、系統(tǒng)集成,軟硬件集成。集成測試假設系統(tǒng)正確,那么結束、否那么繼續(xù)進行。假設出現錯誤,需要對軟硬件分別驗證和修改。返回3,繼續(xù)進行集成測試。雖然在系統(tǒng)設計的初始階段考慮了軟硬件的接口問題,但由于軟硬件分別開發(fā),各自局部的修改和缺陷很容易導致系統(tǒng)集成出現錯誤、由于設計方法的限制,這些錯誤不但難于定位,而且更重要的是,對他們的修改往往會涉及整個軟件結構和硬件配置的改動,顯然,這是災難性的。為防止上述問題,一種新的開發(fā)方法應運而生軟硬件協(xié)同設計方法。一個典型的硬件/軟件協(xié)同設計過程如圖3-5所示。首先,應方該用獨立于任何硬件和軟件的功能性規(guī)格方法對系統(tǒng)進行描述,采用的的方法包括有限態(tài)自動機〔FSM〕、統(tǒng)一化的規(guī)格語言〔CSP、VHDL〕或其他基于圖形的表示工具,其作用是對硬件/軟件統(tǒng)一表示,便于性能的劃分和綜合,然后,在此根底上對硬件/軟件進行劃分,即對硬件/軟件的功能模塊進行分配。但是,這種分配不是隨意的,而是從系統(tǒng)的要求和限制條件出發(fā),依據算法進行的。完成對硬件、軟件的功能劃分之后,需對劃分的結果進行評估。方法之一是性能評估,另一種方法是對硬件、軟件綜合之后的系統(tǒng)依據指令級評價參數做出評估。如果評估結果不滿足要求,說明劃分方案的選擇是不合理的,需要重新劃分硬件/軟件模塊,以上過程重復直到系統(tǒng)獲得一個滿意的硬件/軟件實現為止。軟硬件協(xié)同設計過程可以歸納為:需求分析軟硬件協(xié)同設計軟硬件實現軟硬件協(xié)同測試和驗證這種方法的特點在于協(xié)同設計〔Co-design〕、協(xié)同測試〔Co-test〕和協(xié)同驗證〔Co-verification〕時,充分考慮了軟硬件的關系,并在每個層次上給以測試驗證,使得盡早發(fā)現和解決問題,防止災難性錯誤的出現。系統(tǒng)功能描述系統(tǒng)功能描述硬件\軟件劃分〔軟硬統(tǒng)一表示〕軟件組合接口綜合硬件綜合系統(tǒng)集成圖3-5嵌入式系統(tǒng)的硬件\軟件設計方法嵌入式系統(tǒng)軟件的測試必須考慮時間和硬件影響的問題。對于硬件,一般是采用專門的測試儀器進行測試;而對于實時嵌入式軟件,那么需要有關的測試技術和測試工具的支持,需要采取特定的測試策略。測試技術指的是軟件測試的專門途徑,以及提供的能夠更加有效的運用這些途徑的特定技術。測試技術主要有回歸測試〔基于代碼的測試或白盒測試〕、第三方的驗證和確認測試〔功能測試或黑盒測試〕及維護中的修改或升級測試〔回歸測試〕等。目前,大量的實時嵌入式軟件是面向對象編程和基于部件開發(fā)的,它們對時空和宿主機、目標機的交叉開發(fā)方式以及可能的分布運行環(huán)境等的約束限制給運用上述技術帶來了新的問題和挑戰(zhàn)。1).白盒測試和黑盒測試一般來說,軟件測試有兩種根本的測試方式,即白盒測試方法和黑盒測試方法,嵌入式軟件測試也不例外。白盒測試或基于代碼的測試檢查的是程序的內部設計。根據源代碼的組織結構查找軟件缺陷,一般要求軟件測試人員對軟件的結構和作用有詳細的了解。白盒測試和代碼覆蓋率密切相關,可以在白盒測試的同時計算出測試的代碼覆蓋率,保證測試的充分性。把100%的代碼都測試到是幾乎不可能的,所以要選擇最主要的代碼進行白盒測試。由于嚴格的平安性和可行性的要求,嵌入式軟件測試同非嵌入式軟件測試相比,通常要求要有更高的代碼覆蓋率。對于嵌入式軟件,白盒測試一般在目標硬件上進行,更為實際的方式是在開發(fā)環(huán)境中通過硬件仿真進行,所以選取的測試工具應該支持在宿主環(huán)境中的測試。黑盒測試在有些情況下也稱為功能測試。這種測試方法根據軟件的用途和外部特征查找軟件缺陷,不需要了解程序的內部結構。黑盒測試的最大優(yōu)點在于不依賴于代碼,而是從實際使用的角度進行測試,通過黑盒測試可以發(fā)現白盒測試發(fā)現不了的問題。因為黑盒測試與需求密切相關,需求規(guī)格說明的質量會直接影響到測試結果。黑盒只能限制在需求的范圍內進行。在進行嵌入式軟件測試時,要把系統(tǒng)的預期用途作為重要依據,根據需求對負載、定時、性能的要求,判斷軟件是否滿足這些需求標準。為了保證正確的測試,還需要檢驗軟硬件之間的接口。嵌入式軟件測試的一個重要方面是極限測試。在使用環(huán)境中,通常要求嵌入式軟件的失效過程要平衡,所以,黑盒測試不僅要檢查軟件工作過程,也要檢查軟件的失效過程。2).目標環(huán)境測試和宿主環(huán)境測試在嵌入式軟件測試中,常常要在基于目標的測試和基于宿主的測試之間做出折衷?;谀繕说臏y試消耗較多的經費和時間,而基于宿主的測試代價較小,但必竟是在模擬的環(huán)境中進行的。目前是把更多的測試轉移到宿主環(huán)境中進行,但是,目標環(huán)境的復雜性和獨特性不可能完全模擬。在兩個環(huán)境中可以發(fā)現不同的軟件缺陷,重要的是對目標環(huán)境和宿主環(huán)境的測試內容有所選擇。在宿主環(huán)境中,可以進行邏輯或界面的測試、其它非實時的測試和與硬件無關的測試。在模擬或宿主環(huán)境中的測試消耗的時間通常比擬少,用調試工具可以更快的完成高度和測試任務。而與時間問題有關的白盒測試、中斷測試、硬件接口測試只能在目標環(huán)境中進行。在軟件測試周期中,基于目標的測試是在比擬晚的“硬件\軟件集成測試〞階段開始的,如果不更早的在模擬環(huán)境中進行白盒測試,而是等到“硬件\軟件集成測試〞階段進行全部的白盒測試,將消耗更多的財力和人力。第四章系統(tǒng)的設計與實現在這一章中,根據第二章和第三章的論述,設計出一個實現對溫度進行測量和控制的嵌入式系統(tǒng)。系統(tǒng)具有對外界兩點溫度進行采集的能力,采集的模擬信號經A/D模塊轉換成相應的數字量,送入微處理器進行處理。采集到的每一路溫度都要與系統(tǒng)此路溫度設定值進行比擬,然后根據結果調用適宜的控制算法,并通過控制相應的繼電器的占空比實現對溫度的控制、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版奶粉生產廢棄物資源化利用服務合同范本頁24篇
- 2025版教育培訓機構品牌授權及門店移交合同3篇
- 二零二五年度農機零部件進出口貿易合同
- 2025年度綠色環(huán)保內墻涂料工程高品質施工服務合同4篇
- 二零二五年度面粉原料進口關稅減免申請合同4篇
- 二零二五年度二手房買賣合同補充條款協(xié)議書(含交易透明)3篇
- 二零二五年度文化演出活動贊助合同正規(guī)范本
- 二零二四年度嬰幼兒專用奶粉代理權租賃合同范本3篇
- 二零二五年度企業(yè)人力資源戰(zhàn)略規(guī)劃與實施合同范本9篇
- 2025年度個人與個人藝術品拍賣合同范本4篇
- 農民工工資表格
- 【寒假預習】專題04 閱讀理解 20篇 集訓-2025年人教版(PEP)六年級英語下冊寒假提前學(含答案)
- 2024年智能監(jiān)獄安防監(jiān)控工程合同3篇
- 2024年度窯爐施工協(xié)議詳例細則版B版
- 幼兒園籃球課培訓
- 護理查房高鉀血癥
- 項目監(jiān)理策劃方案匯報
- 《職業(yè)培訓師的培訓》課件
- 建筑企業(yè)新年開工儀式方案
- 一例產后出血的個案護理
- 急診與災難醫(yī)學課件 03 呼吸困難大課何琳zhenshi
評論
0/150
提交評論