電子與信息工程畢業(yè)論文基于arm的壓力監(jiān)測系統(tǒng)設(shè)計_第1頁
已閱讀1頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p>  本 科 畢 業(yè) 設(shè) 計</p><p>  基于ARM的壓力監(jiān)測系統(tǒng)設(shè)計</p><p>  所在學(xué)院 </p><p>  專業(yè)班級 電子與信息工程 </p><p>  學(xué)生姓名 學(xué)號 &l

2、t;/p><p>  指導(dǎo)教師 職稱 </p><p>  完成日期 年 月 </p><p><b>  摘要</b></p><p>  在石油化工、熱電生產(chǎn)、能源開發(fā)等行業(yè)中,壓力是生產(chǎn)過程中的非常的重要參數(shù),它的應(yīng)用極其廣泛。實

3、時監(jiān)測壓力的變化是實施現(xiàn)代化生產(chǎn)管理的重要環(huán)節(jié),因而壓力監(jiān)測技術(shù)和儀表的發(fā)展歷來受到人的重視。ARM處理器是目前公認的領(lǐng)先的32位嵌入式RISC微處理器,它具有體系結(jié)構(gòu)可擴展、功耗低、成本低和支持處理實時多任務(wù)等特點,成為設(shè)計嵌入式系統(tǒng)時的首選。本系統(tǒng)是結(jié)合了ARM和壓力監(jiān)測模塊實現(xiàn)對壓力的實時采集,通過Minigui的交互界面顯示的壓力監(jiān)測系統(tǒng)。</p><p>  論文先是介紹了國內(nèi)外的研究動態(tài)及發(fā)展趨勢,主

4、要從硬件和軟件兩大塊介紹了該壓力監(jiān)測系統(tǒng)的組成。硬件介紹主要有S3C2410芯片包括內(nèi)置的A/D轉(zhuǎn)換模塊,MPX53型硅壓力傳感器,壓力傳感器模塊,傳感器的選擇。軟件介紹主要有Linux系統(tǒng)的特點,Minigui的介紹,系統(tǒng)設(shè)計的環(huán)境搭建以及壓力監(jiān)測系統(tǒng)的程序說明。最后是關(guān)于壓力監(jiān)測系統(tǒng)的設(shè)計成果,論文所提出的設(shè)計主要用來監(jiān)測壓力,對于實時的要求能夠很好的完成,對于某些環(huán)境的監(jiān)測已經(jīng)可以滿足需求了。但是在大多數(shù)生產(chǎn)過程中,不僅要監(jiān)測壓力

5、,還要通過控制模塊來控制改變壓力,使能自動調(diào)節(jié)到需要的壓力范圍內(nèi)。論文設(shè)計的壓力監(jiān)測系統(tǒng)還不能達到這個要求,需要進一步研究,擴展硬件,加入控制模塊,達到監(jiān)測控制的目的。</p><p>  關(guān)鍵詞:壓力監(jiān)測;ARM;Minigui</p><p><b>  Abstract</b></p><p>  In the petroleum che

6、mical, thermal production, energy development and other industries, the pressure in the production process is very important parameter, its application is extremely broad. Real-time monitoring of the implementation of th

7、e pressure change is an important part of modern production management, and thus pressure monitoring technology and instrument development has always been one of great importance. ARM processor is the recognized leader i

8、n the embedded RISC 32-bit microprocesso</p><p>  Paper first describes the dynamic domestic and foreign research and development trend of the two major pieces of hardware and software introduced the composi

9、tion of the pressure monitoring system. Hardware description are S3C2410 chip includes built-in A / D converter module, MPX53 silicon pressure sensor, pressure sensor module, sensor selection. Software main features of L

10、inux systems, Minigui introduction, system design environment to build, and pressure monitoring system description of the p</p><p>  keywords: Pressure Monitoring;ARM;Minigui</p><p><b>  目

11、錄</b></p><p><b>  前言1</b></p><p>  第1章 國內(nèi)外形勢與前景2</p><p>  第2章 壓力監(jiān)測系統(tǒng)的硬件基礎(chǔ)3</p><p>  2.1 s3c2410芯片介紹3</p><p>  2.2 A/D 轉(zhuǎn)換單元3</p&

12、gt;<p>  2.3 壓力傳感器介紹3</p><p>  第3章 軟件資源介紹5</p><p>  3.1 虛擬機介紹5</p><p>  3.2 Linux系統(tǒng)介紹5</p><p>  3.3 Minigui的介紹6</p><p>  第4章 開發(fā)環(huán)境搭建7</

13、p><p>  4.1 PC環(huán)境的搭建7</p><p>  4.2 交叉編譯環(huán)境的搭建8</p><p>  4.3 Minigui的移植9</p><p>  第5章 人機交互界面的實現(xiàn)15</p><p>  5.1 圖形化界面15</p><p>  5.2 觸摸屏的實

14、現(xiàn)18</p><p>  第6章 設(shè)計成果20</p><p>  6.1 設(shè)計的實現(xiàn)20</p><p>  6.2 調(diào)試過程中問題與解決21</p><p><b>  結(jié)論22</b></p><p><b>  致謝23</b></p>

15、<p><b>  參考文獻24</b></p><p>  附錄:觸摸屏測試程序和觸摸屏IAL:2410.C25</p><p><b>  前言</b></p><p>  壓力監(jiān)測是現(xiàn)代監(jiān)測系統(tǒng)中一個非常重要的參數(shù),在石油化工、熱電生產(chǎn)、能源開發(fā)及科研領(lǐng)域都離不開它。以壓力傳感器為主的監(jiān)測系統(tǒng)現(xiàn)在應(yīng)

16、用越來越廣泛,應(yīng)用在各個領(lǐng)域當中,在結(jié)合先進的微處理器,可以達到很好的實時監(jiān)測目的。</p><p>  ARM作為嵌入式系統(tǒng)的代表,具備很多優(yōu)點,如體積小、接口豐富、高度集成、擴展豐富等,加上Linux的強大的移植性能,良好的網(wǎng)絡(luò)功能,支持各種文件系統(tǒng),軟件代碼小,自動化程度高,響應(yīng)速度快等優(yōu)點,非常適合作為中中小型監(jiān)測系統(tǒng)的平臺[1-2]。ARM在嵌入式系統(tǒng)的應(yīng)用越來越廣泛,因為基于ARM的嵌入式監(jiān)測系統(tǒng)具有

17、成本低、功耗低、實時性能好以及智能程度高等優(yōu)點,在工業(yè)監(jiān)測與控制領(lǐng)域具有較為廣闊的應(yīng)用前景。本文設(shè)計了基于ARM的壓力監(jiān)測系統(tǒng)。</p><p>  第1章 國內(nèi)外形勢與前景</p><p>  最早的壓力測量是意大利人托里拆利與1643年測定了標準大氣壓,壓力值為760毫米汞柱,從此以后把760毫米柱作為標準大氣壓的值。它用的方法是用已知的力平衡未知力測量壓力,u型管壓力計是這種方法的經(jīng)

18、典之作。后來發(fā)展出壓力電氣測量技術(shù),壓力測量開始應(yīng)用電子傳感器、計算機技術(shù)、通信技術(shù)等,自動化越來高,出現(xiàn)了數(shù)字壓力測量儀器,宣布壓力測量技術(shù)進入了數(shù)字時代。70年代,開始出現(xiàn)智能儀表,主要特點是體積小、功能強。能夠自主完成壓力測量任務(wù),對于數(shù)據(jù)處理和復(fù)雜計算的能力進行了提升,有效的提高了測量的準確度。到80年代中后期,集成電路的產(chǎn)生,微型計算機和軟件技術(shù)的迅猛發(fā)展,新一代壓力測量系統(tǒng)產(chǎn)生了,結(jié)合了計算機,使得其性能有了新的飛躍。隨著傳

19、感器技術(shù)的進步,是的傳感器的體積和測量精度不斷提高,從模擬技術(shù)到數(shù)字技術(shù),在加上網(wǎng)絡(luò)技術(shù)的發(fā)展,把異地實時測量變成現(xiàn)實。</p><p>  世界各個發(fā)達國家都是高度重視對于儀表儀器的發(fā)展,美國與國家長期安全和經(jīng)濟繁榮極其相關(guān)的22項技術(shù)中,傳感器處理技術(shù)相關(guān)的項目就占了6項,測量傳感器技術(shù)也已經(jīng)被日本列為二十一世紀的首位發(fā)展技術(shù),在德國,大面積推廣了自動化測量儀器系統(tǒng),歐共制定的第三個發(fā)展總規(guī)劃,將測量技術(shù)作為

20、15個專項之一。</p><p>  國內(nèi)的自動壓力測量系統(tǒng)的技術(shù)開始較晚,但是發(fā)展迅速,從60年代的多點巡回檢測階段到70年代以小型計算機為中心的測量系統(tǒng),到了80年代,已經(jīng)結(jié)合微型計算機建立自動檢測系統(tǒng),自動檢測技術(shù)得到了逐步提高。不過目前我國主要引進國外設(shè)備,而軟件進行二次開發(fā)。在壓力監(jiān)測技術(shù)的領(lǐng)域,壓力傳感器,信號調(diào)理技術(shù),數(shù)據(jù)采集技術(shù)以及數(shù)據(jù)處理技術(shù)得到了飛速的發(fā)展。</p><p&

21、gt;  總的來說,由于中國壓力測量系統(tǒng)起步晚,相對發(fā)達國家還是落后的。但微壓傳感器的性能有了很大提高,壓敏器件的可靠性也達到了比較好的水平。相信隨著科學(xué)的發(fā)展,壓力傳感器技術(shù)的進步,國內(nèi)的壓力測量技術(shù)的水平將會得到長足的進步。</p><p>  第2章 壓力監(jiān)測系統(tǒng)的硬件基礎(chǔ)</p><p>  2.1 s3c2410芯片介紹 </p><p>  S3c2

22、410是三星公司開發(fā)16/32位RISC處理器,主要用于高性價比、低功耗的手持式設(shè)備的應(yīng)用領(lǐng)域。S3c2410在片上集成了豐富的組件:分開的指令Cache和和數(shù)據(jù)Cache(都是16KB)、虛擬存儲管理單元MMU、LCD控制器、NAND Flash 啟動裝載器3通道UART、4通道PWM定時器、SD主卡和MMC卡接口、2個通道的SPI及PLL時鐘發(fā)生器。同時還采用了AMBA新型總線結(jié)構(gòu)[4]。</p><p> 

23、 S3c2410最重要的組成是他的ARM920T RISC處理器。ARM9220T實現(xiàn)了MMU、AMBA總線和Harvard高速緩存體系結(jié)構(gòu),具有獨立的16KB指令Cache和16KB數(shù)據(jù)Cache,每個Cache都是由8字長的行組成[3,5]。</p><p>  2.2 A/D 轉(zhuǎn)換單元 </p><p>  A/D 轉(zhuǎn)換單元,采用 S3C2410 內(nèi)置的 A/D 轉(zhuǎn)換器,它包含一

24、個 8 路模擬輸入混合器,12 位模數(shù)轉(zhuǎn)換。最大轉(zhuǎn)換速率:100KSPS,輸入電壓范圍:0-2.5V 輸入帶寬: 0-100Hz(無采樣和保持電路),低的電源消耗。在本實驗系統(tǒng)中,模擬輸入信號經(jīng)過降壓\偏置處理后輸入 A/D 轉(zhuǎn)換器,然后轉(zhuǎn)換的數(shù)字量給 S3C2410 處理[5]。如圖2.1 信號轉(zhuǎn)換流程所示:</p><p>  圖 2.1 信號轉(zhuǎn)換流程</p><p>  2.3 壓

25、力傳感器介紹</p><p>  在本設(shè)計中采用了MPX53型硅壓力傳感器主要用于測量氣體壓力。其外形及管腳定義如下圖所示:</p><p>  圖 2.2 MPX53實物圖</p><p>  表 2.1 MPX53引腳定義</p><p>  該傳感器測量的是腔體內(nèi)外氣體的壓力差,其輸出電壓與壓力的關(guān)系為近似線性MPX53的工作特性參數(shù)如

26、表2.2 MPX53參數(shù)表所示:</p><p>  表 2.2 MPX53參數(shù)表</p><p>  注:①、零位電壓偏差是指壓力為零時的輸出電壓;</p><p> ?、凇M量程輸出為最大輸出與最小輸出電壓之差。</p><p>  MPX53的電源部分做成可調(diào),用于溫度補償。輸出采用差動放大,以去除共模干擾,1K電位器用于增益調(diào)節(jié)。通常

27、將增益調(diào)至100倍,根據(jù)上面參數(shù),壓力變化1Kpa,輸出電壓變化為120mV。根據(jù)采樣的輸出電壓,采用線性插值法可計算出實際壓力值。</p><p>  模塊上的VIN+、VIN-分別對應(yīng)于MPX53的3腳和1腳,VO+、VO-分別對應(yīng)于MPX53的2腳和4腳,VOUT對應(yīng)于J5。</p><p>  注:應(yīng)在零壓力時采樣一次輸出電壓。以后每次采樣值應(yīng)減去零位值,然后換算為壓力。</

28、p><p>  第3章 軟件資源介紹</p><p>  3.1 虛擬機介紹</p><p>  虛擬機,其實是一個windows下的軟件,它模擬出一個pc機的平臺,可以讓各種系統(tǒng)在上面運行,達到和真實pc機一樣的效果,這就是虛擬的功能。虛擬機是一個很好的軟件開發(fā)平臺,它幾乎可以安裝任何真實pc機能安裝的系統(tǒng),可以獨立運行任何程序,及時是非法的,也不會使的真實的pc機

29、崩潰。這使的在軟件開發(fā)的時候,資料的安全性有了一個很好的保障。</p><p>  對于虛擬機完全可以當成真實的pc使用,甚至上面還模擬出了電源開關(guān),重啟鍵,還有個特殊的功能鍵“暫?!保皶和!钡墓δ芊浅嵱?,在虛擬機的任何狀態(tài)都可以暫停,然后開始之后,可以恢復(fù)到暫停時的狀態(tài),不用關(guān)機重啟。</p><p>  虛擬機還可以連接硬件,如本系統(tǒng)開發(fā)過程用到的網(wǎng)卡橋接功能,虛擬機可以連接到真實

30、的網(wǎng)卡上,使用網(wǎng)卡的功能,甚至可以直接使用網(wǎng)卡。還有串口、USB等硬件的支持,可以切換接入虛擬機還是接入win7。</p><p>  本系統(tǒng)的開發(fā)需要Linux系統(tǒng),但是pc機是win7的,所以要安裝虛擬機,在虛擬機中安裝Linux系統(tǒng),這樣,無論是直接在Linux中編寫程序還是在win7下編寫后放到Linux中編譯都是可以的,這就方便了軟件的開發(fā),大大提高了效率而且不用擔心Linux系統(tǒng)的崩潰引起程序的丟失。

31、</p><p>  3.2 Linux系統(tǒng)介紹</p><p>  Linux系統(tǒng),之所以在嵌入式系統(tǒng)中作為最受歡迎的移植系統(tǒng),最大的原因是Linux的源碼是開放的,這使得軟件開發(fā)有了非常大的自由度。開發(fā)者完全可以根據(jù)自己的喜好,編程習(xí)慣來開發(fā)自己的程序,甚至直接修改Linux的源碼。這使得Linux在嵌入式系統(tǒng)中發(fā)展非常迅速[7-8]。</p><p>  L

32、inux無論在pc機還是在嵌入式開發(fā)平臺上都能非常好的運行,最主要的原因是它的內(nèi)核非常穩(wěn)定,功能非常強大,提供了幾乎包括所有的硬件的支持。而且內(nèi)核本身占用空間小,易于裁減,這使它在嵌入式系統(tǒng)開發(fā)中有非常廣泛的應(yīng)用。</p><p>  Linux作為一個開發(fā)環(huán)境,另一個重要的原因是有著非常優(yōu)秀的完整的開發(fā)工具集。這也是因為它開放源碼的達到的效果。正因為它的開放吸引了成千上萬的開發(fā)者投入到Linux的開發(fā)中,使得L

33、inux在短時間就變成了一個強大的操作系統(tǒng),集合了各種技術(shù),支持各種主流硬件設(shè)備等[6]。</p><p>  當然,商家最關(guān)心的是價格問題。Linux價格低廉,有效降低了產(chǎn)品成本,對于嵌入式系統(tǒng)是實用化來說是至關(guān)重要的。這也是多數(shù)嵌入式系統(tǒng)選擇Linux系統(tǒng)作為運行平臺的重要原因。</p><p>  3.3 Minigui的介紹</p><p>  首先是Mi

34、nigui的定義,Minigui是針對嵌入式設(shè)備的、跨操作系統(tǒng)的圖形界面支持系統(tǒng),是一種嵌入式圖形中間件。Minigui最典型的應(yīng)用就是工業(yè)儀表的控制系統(tǒng)界面,是建立人機交互界面時非常不錯的選擇[9]。</p><p>  Minigui的界面與windows 98系統(tǒng)的窗口圖形風格非常相似,主要元素也是窗口,可以分成四類,分別為主窗口、對話框、控件和主窗口窗片。窗口中還包括了其他的多種元素:邊框、標題欄、標題欄

35、按鈕、滾動條、選定項目、無效項目、高亮項目、突出項目、三維對象等。開發(fā)者可以隨意建立、設(shè)置這些元素,窗口的隨意話、個性化非常強大,可以根據(jù)不同的實際需求來修改窗口界面[10]。</p><p>  Minigui相比其他嵌入式圖形系統(tǒng)具有以下幾大優(yōu)勢:</p><p><b>  1 可伸縮性強</b></p><p>  Minigui的豐富

36、功能以及可修改配置的特點,使它無論在低端產(chǎn)品還是在高端嵌入式設(shè)備都能很好的運行,結(jié)合高級控件和皮膚界面技術(shù)可以設(shè)計出華麗的界面。Minigui支持多種操作系統(tǒng),簡單的如uC/OS-II,復(fù)雜的如Linux。</p><p><b>  2 占資源少</b></p><p>  Minigui作為嵌入式圖形庫是屬于輕量級的,對系統(tǒng)資源的要求非常低,這就對于嵌入式系統(tǒng)來說

37、非常重要了。嵌入式系統(tǒng)一般都是體積最小化,硬件配置最低化,這使得對軟件的要求反而嚴格了,Minigui完全可以在這樣的嵌入式系統(tǒng)中運行,這是其他嵌入式圖形系統(tǒng)無法達到的。</p><p><b>  3 高性能</b></p><p>  Minigui的內(nèi)部體系結(jié)構(gòu)完善,有比較良好的圖形接口,對于圖形繪制速度有了保障。</p><p><

38、;b>  4 可配置性</b></p><p>  Minigui可以針對不同的硬件平臺和軟件平臺進行各種不同的多樣化的配置,使得Minigui在系統(tǒng)中的運行達到最優(yōu)化。Minigui的結(jié)合了大量配置選項,在針對實際要實現(xiàn)的功能和運行平臺可以制定不通的Minigui配置。比如Minigui運行模式的選擇,Minigui運行的硬件平臺選擇,Minigui運行的軟件平臺選擇,支持庫的選擇等等,使得M

39、inigui在配置時有很高的靈活性。</p><p>  總之,Minigui是一個高效、靈活、多樣化的嵌入式圖形系統(tǒng)。</p><p>  第4章 開發(fā)環(huán)境搭建</p><p>  4.1 PC環(huán)境的搭建 </p><p>  虛擬機以及red hat 9的安裝。</p><p>  <1>打開虛擬機

40、,選擇“new virtual machine”。</p><p>  <2>接著,直接點“下一步”, 選擇“Custom”,點擊“下一步”。</p><p>  <3>選擇“New-Worstation 5”,點擊“下一步”。</p><p>  <4>選擇“Linux”,在下拉菜單中選擇“Red Hat Linux”,點擊“下

41、一步”。</p><p>  <5>在出現(xiàn)的界面中,點“browse”選擇安裝路徑,修改名字,然后點擊“下一步”,按照系統(tǒng)默認的設(shè)置,一直到配置完成,出現(xiàn)虛擬機。</p><p>  <6>在設(shè)置界面雙擊進入CD-ROM設(shè)置選項窗口,選擇用“ISO”安裝,在下拉菜單中找到系統(tǒng)鏡像的路徑,點擊確定。</p><p>  <7>點擊“

42、Start this virthual machine”,啟動虛擬機,并且開始安裝Linux系統(tǒng)。</p><p>  <8>鼠標單擊虛擬機內(nèi)部界面,按回車進入安裝向?qū)?,提示是否要驗證系統(tǒng)CD ,因為這是系統(tǒng)鏡像,所以選擇跳過“skip”。</p><p>  <9>出現(xiàn)一個安裝是的幫助界面,選擇“下一步”,出現(xiàn)語言選擇,這里的選擇是安裝過程所用的語言,不是系統(tǒng)語言

43、,選擇了簡體中文,當然也可以選擇英語等,選擇“下一步”。</p><p>  <10>選擇鍵盤類型,一般的鍵盤都是美式鍵盤,“U.S English”,選擇后點擊“下一步”。</p><p>  <11>鼠標類型一定要選擇默認的那個,不然會發(fā)現(xiàn)鼠標沒用,然后點擊“下一步”。</p><p>  <12>接下來是選擇安裝類型,選擇定

44、制,點擊“下一步”。</p><p>  <13>然后會出現(xiàn)系統(tǒng)分區(qū),選擇“自動分區(qū)”,然后選擇“刪除系統(tǒng)內(nèi)所有Linux分區(qū)”,點擊“下一步”。</p><p>  <14>引導(dǎo)裝置程序配置,選擇默認就可以了,點擊“下一步”。</p><p>  <15>設(shè)置網(wǎng)絡(luò),依舊選擇默認配置,點擊“下一步”。</p><

45、;p>  <16>防火墻設(shè)置,選擇“無防火墻”,不通過Linux上網(wǎng),用不到,反而會影響到開發(fā)是要用到的NFS和SMB服務(wù)。</p><p>  <17>附加語言的支持,選擇“Chinese(P.R.of China)”,這里選擇的就是系統(tǒng)的語言,當然也可選擇多種語言的支持,點擊“下一步”。</p><p>  <18>時區(qū)選“亞洲/上?!?,點擊“

46、下一步”。</p><p>  <19>設(shè)置ROOT用戶的口令,也就是用戶密碼,默認的用戶名是ROOT。</p><p>  <20>選擇安裝軟件包,選擇全部,這樣比較方便不會缺少某些庫,但是相對的安裝時時間會比較長。</p><p>  <21>安裝過程中會出現(xiàn)“更換光盤”的提示框,按“Ctrl”+“Alt”把鼠標切出Linux

47、窗口,在右下角光盤那雙擊,按要求修改鏡像。然后點擊確定,繼續(xù)Linux的安裝。</p><p>  <22>安裝完成后會提示是否創(chuàng)建引導(dǎo)盤,因為在虛擬機中,沒必要創(chuàng)建引導(dǎo)盤,所以選擇“否,不想創(chuàng)建引導(dǎo)盤”,點擊“下一步”。</p><p>  <23>定制圖形化配置,選擇“真色(24)位”,分辨率“800X600”,單擊“下一步”。</p><p

48、>  <24>一個安裝完成的窗口,單擊“后退”,系統(tǒng)會重新系統(tǒng),這樣,虛擬機和Red Hat 9就安裝完成了。系統(tǒng)重新啟動后會自己進入Linux界面,就可以開始進行下一步工作了。</p><p>  4.2 交叉編譯環(huán)境的搭建</p><p>  首先要知道什么是交叉編譯環(huán)境,個人的理解通俗的說就是在電腦上編譯程序,然后把程序送到開發(fā)板上運行調(diào)試,能方便的完成這一過程的

49、環(huán)境叫做交叉編譯環(huán)境。那為什么要建立交叉編譯環(huán)境呢?設(shè)計程序都是在電腦上,但是所設(shè)計的程序是為了滿足開發(fā)板實現(xiàn)某些功能,所以最終的程序要在開發(fā)板上運行的。程序不大可能一次性就能滿足要求的,所以測試后要修改,又無法在開發(fā)板上完成,這就是要建立交叉編譯環(huán)境的原因了。</p><p>  下面是交叉編譯環(huán)境搭建的步驟:</p><p>  <1>最關(guān)鍵的就是要有一套交叉編譯工具,在網(wǎng)

50、上下載了cross-2.95.3,版本有很多,但要找到比較適合的,不是最新就是最好的。要編譯的是Minigui-1.3.3,所以這個交叉編譯器的版本比較適合。</p><p>  <2>下載了交叉編譯工具,但是在Win7 環(huán)境下是不能用的,所以要放到虛擬機的Linux系統(tǒng)里面,這是就要用到windows和Linux通信用的SMB服務(wù)了。下面就是要快速建立SMB服務(wù)。</p><p&

51、gt;  <3>進入Linux系統(tǒng),點擊左下角小紅帽圖標,打開菜單一道系統(tǒng)設(shè)置,到下一菜單選擇服務(wù)器設(shè)置,選擇Samba服務(wù)器設(shè)置。</p><p>  <4>在出現(xiàn)的Samba服務(wù)器設(shè)置窗口,點擊“增加”,然后在目錄欄鍵入“/”,基本權(quán)限選擇“讀/寫”,點擊“確定”。設(shè)置訪問目錄為根目錄,可讀可寫。</p><p>  <5>重要的還要添加一個SMB服

52、務(wù)的用戶,不然是無法訪問的。單擊首選項,選擇“Samba”用戶。</p><p>  <6>點擊添加用戶,的設(shè)置為,用戶名:smb 口令:123456 然后可以點擊確定,這樣SMB服務(wù)就設(shè)置好了。</p><p>  <7>設(shè)置完服務(wù)器后要開啟它,在終端輸入命令/etc/init.d/smb start。</p><p>  圖4.1

53、啟動SMB服務(wù)</p><p>  <8>用ifconfig命令設(shè)置虛擬機的IP,在外部系統(tǒng)也要設(shè)置IP,兩個IP要在同一網(wǎng)段內(nèi),這樣才能讓兩個系統(tǒng)實現(xiàn)通信,共享文件。</p><p>  <9>外部系統(tǒng)(這是win7)的開始菜單,運行命令欄輸入“\\虛擬機IP”,然后就會出現(xiàn)一個共享窗口,可以把cross-2.95.3這個交叉編譯工具復(fù)制到Linux中。</

54、p><p>  <10>進入虛擬機,通過終端找到cross-2.95.3,用tar jxf cross-2.95.3.tar.bz2命令解壓,解壓縮后生成一個 2.95.3 目錄,里面就是交叉編譯工具。要注意的是它的 include 為 2.95.3/ARM-Linux/include ,對應(yīng)的 lib 為 2.95.3/ARM-Linux/lib。</p><p>  <

55、11>修改環(huán)境變量,讓系統(tǒng)可以使用交叉編譯工具在 .bashrc 最后面加上一句 。</p><p>  [user]# cd $HOME </p><p>  [user]# vi .bashrc </p><p>  export PATH="$PATH:/sbin:/usr/local/ARM/2.95.3/bin:/usr/local/bin

56、:/usr/local" </p><p>  [user]# source .bashrc </p><p>  <12>然后就是連接開發(fā)板了,開發(fā)板的系統(tǒng)燒寫就不多做說明了,現(xiàn)在默認它有一個可用的系統(tǒng),然后通過串口線和交叉網(wǎng)線和電腦進行連接,串口線主要開發(fā)板和電腦之間的通信,交叉網(wǎng)線是兩者間傳輸數(shù)據(jù)的作用,這也是傳輸速率所決定的。</p><

57、;p>  <13>兩者間的通信要通過超級終端來實現(xiàn),可以用Linux中的minicom,也可以用win7下的SecureCRT這個軟件。論文用的后者。</p><p>  <14>快速連接設(shè)置,主要用波特率115200,數(shù)據(jù)位8,奇偶校驗無,停止位1.流控制無。點擊連接,然后打開開發(fā)板電源,在SecureCRT中就可以看到開發(fā)板啟動時的信息了。</p><p>

58、;  <15>然后要開啟Linux的NFS服務(wù),點擊小紅帽圖標,依次選擇系統(tǒng)設(shè)置->服務(wù)器設(shè)置->NFS服務(wù)器 在NFS共享目錄鍵入/home/nfs 主機:192.168.0.*,基本權(quán)限為“讀/寫”。單擊確定就設(shè)置完成了。</p><p>  <16>然后要開啟NFS服務(wù),在終端中鍵入/etc/init.d/nfs start。</p><p>

59、  圖 4.2 啟動 nfs服務(wù)</p><p>  <17>切換到SecureCRT,進入開發(fā)板的根目錄下,修改開發(fā)板的IP,使用ping命令檢查網(wǎng)絡(luò)連接情況。</p><p>  <18>用mount命令把Linux的/hone/nfs 掛載到/mnt/,命令為mount –t nfs 192.168.0.100:/home/nfs /mnt,這樣直接可以在開發(fā)

60、板上運行/home/nfs目錄下的程序了。</p><p>  <19>用arm-Linux-gcc編譯一個簡單的hello.c的程序,放入nfs目錄下,在開發(fā)板上運行,能顯示“hello world”字樣,至此,交叉編譯環(huán)境就搭建好了。</p><p>  4.3 Minigui的移植</p><p>  <1>通過SMB服務(wù),把libM

61、inigui-1.3.3.tar.gz,Minigui-res-1.3.3.tar.gz,mde-1.3.0.tar.gz,mg-samples-1.3.0.tar.gz,qvfb-1.0.tar.gz這幾個壓縮包放到虛擬機的某個目錄下,用tar zxf *.tar.gz 命令分別解壓。</p><p>  <2>編譯 libMinigui ,這個是 Minigui 運行所必需的庫文件,必須編譯成功

62、 。</p><p>  [user]# cd libMinigui-1.3.3 </p><p>  [user]# ./configure</p><p>  必須注意編譯過程中顯示對庫的支持,其中 –lttf –lpng 這兩個庫必須是 yes ,不然程序是無法編譯成功的。 ttf 庫是 TrueType 字體庫,png 庫是 png 圖形庫,Minigui

63、 程序基本都要這兩個庫,后面為板子交叉編譯時也必須有這兩個庫,不然程序是無法執(zhí)行的。 </p><p>  <3>然后是安裝命令:</p><p>  [user]# make</p><p>  [Root]# make install</p><p>  <4>庫安裝完了,接著是安裝資源文件命令:</p&g

64、t;<p>  [Root]# cd Minigui-res-1.3.3 </p><p>  [Root]# make install</p><p>  <5>基本的安裝完成了,現(xiàn)在檢查一下目錄 /usr/local/lib 下是不是有一些與Minigui有關(guān)的庫文件,如libMinigui-1.3.so.3.0.0 ,libmgext-1.3.so.3.0

65、.0,還有一些.a和.la的文件以及一些鏈接文件。里面還應(yīng)該有名為Minigui的目錄 , Minigui/res是Minigui的資源文件。/usr/local/include 里面也應(yīng)該多了一個 Minigui 目錄,里面有一些 .h 文件,在Minigui程序中要用到這些頭文件。 </p><p>  <6>由于新安裝了庫文件,要讓系統(tǒng)知道調(diào)用庫的路徑,所以要修改/etc/ld.so.conf

66、 文件,在里面最后新加入一行 /usr/local/lib, 然后執(zhí)行:</p><p>  [Root]# ldconfig</p><p>  <7>修改Minigui的配置文件Minigui.cfg:</p><p>  [Root]# vi /usr/local/etc/Minigui.cfg</p><p>  gal

67、_engine=fbcon改成gal_engine=qvfb,</p><p>  ial_engine=console改成ial_engine=qvfb</p><p>  defaultmode=640x480-16bpp改成defaultmode=320X240-8bpp(這里又多種設(shè)置,哪中都可以,只要設(shè)置qvfb的時候和這的設(shè)置保持一致就可以了)。</p><

68、p>  <8>通過下面的命令安裝qvfb這個仿真軟件:</p><p>  [user]# tar zxf qvfb-1.0.tar.gz </p><p>  [user]# cd qvfb-1.0 </p><p>  [user]# ./configure </p><p>  [user]# make </p&

69、gt;<p>  [user]# make install</p><p>  <9>上面的步驟就是搭建Minigui的仿真環(huán)境,通過qvfb可以仿真出編譯好的Minigui程序。</p><p>  <10>Minigui提供了標準的實例程序,在mg-samples中,所以要解壓:</p><p>  [user]# tar

70、zxf mg-samples-1.3.0.tar.gz </p><p>  [user]# ./configure </p><p>  [user]# make </p><p>  [user]# cd src</p><p>  <11>在src目錄下,仿真是不能直接運行程序的,要先開啟qvfb:</p>&

71、lt;p>  [user]# qvfb &</p><p>  在 qvfb 中選 File –> Configure,修改其設(shè)置,要和Minigui.cfg這個配置文件相一致。</p><p>  <12>這是會出現(xiàn)一個黑黑的窗口,然后就可以執(zhí)行實例程序了。</p><p>  [user]# ./helloword</p&g

72、t;<p>  在qvfb上可以看到效果,這時Minigui的仿真環(huán)境才算搭建完成。下面就要搭建Minigui的交叉編譯環(huán)境了。</p><p>  <13> Minigui 的交叉編譯需要的庫文件是要自己交叉編譯出來,交叉編譯工具中是沒有的,交叉編譯出庫文件放到交叉編譯工具的路徑中,在交叉編譯程序時才能找到相應(yīng)的庫。通過SMB服務(wù)把zlib-1.2.3.tar.gz,libpng-1.

73、0.10rc1.tar.gz,jpegsrc.v6 b .tar.gz,freetype-1.3.1.tar.gz,popt-1.7.tar.gz這幾個庫的壓縮文件放到Linux相應(yīng)的目錄中。</p><p>  <14>通過tar zxf *.tar.gz分別解壓幾個壓縮包,首先安裝 zlib 庫,這個是后面的庫的編譯基礎(chǔ)。由于 zlib 庫的沒有交叉編譯的configure腳本,只能手動編譯,臨時

74、把 gcc 修改成指向交叉編譯器 arm-Linux-gcc。</p><p>  [Root]# cd /usr/bin </p><p>  [Root]# mv gcc gcc_back </p><p>  [Root]# ln -s /usr/local/ARM/2.95.3/bin/arm-Linux-gcc ./gcc </p><

75、p>  [Root]# mv ld ld_back </p><p>  [Root]# ln -s /usr/local/ARM/2.95.3/bin/ARM-Linux-ld ./ld</p><p>  <15>修改完后回到zlib-1.2.3的目錄下:</p><p>  [user]# ./configure --prefix=/usr

76、/local/ARM/2.95.3/ARM-Linux/ --shared</p><p>  [user]# make </p><p>  [Root]# make install</p><p>  安裝完后目錄 /usr/local/ARM/2.95.3/ARM-Linux/ [include,lib] , include 中有 zlib.h 之類的頭文件

77、,lib 中有 libz.so.1.2.3 ,然后gcc改回去。</p><p>  <16>安裝 png 庫, Minigui 里很多圖都是 png 的,如果沒有這個庫, Minigui 將無法正常工作。libpng 沒有有效的 configure 腳本,手動修改 Makefile 文件,把 Scripts 下的 makefile 拷出來 。</p><p>  [user

78、]# cd libpng-1.0.10rc1 </p><p>  [user]# cp scripts/makefile.Linux Makefile </p><p>  [user]# vi Makefile</p><p><b>  主要修改的地方:</b></p><p>  CC=arm-Linux-g

79、cc</p><p>  prefix=/usr/local/ARM/2.95.3/ARM-Linux</p><p>  ZLIBLIB=/usr/local/ARM/2.95.3/ARM-Linux/lib </p><p>  ZLIBINC=/usr/local/ARM/2.95.3/ARM-Linux/include </p><p

80、>  <17>安裝這個庫:</p><p>  [user]# make </p><p>  [user]# make install</p><p>  <18>接下來安裝jpeg庫:</p><p>  [user]# cd jpeg-6b</p><p>  [user]# m

81、ake</p><p>  [Root]# mkdir –p /usr/local/ARM/2.95.3/ARM-Linux/man/man1 </p><p>  [Root]# make install</p><p>  <19>安裝libttf 庫,這個是 TrueType 字體的支持庫,用來顯示文字的:</p><p>

82、  [user]# cd freetype-1.3.1 </p><p>  [user]# mkdir –p /opt/st2410/libttf/extend </p><p>  [user]# cp freetype-1.3.1/lib/* freetype-1.3.1/lib/arch/ansi/* libttf/ / [user]#cp freetype-1.

83、3.1/lib/extend/* libttf/extend/ </p><p>  <20>上面是準備,下面要編譯安裝了:</p><p>  [user]# cd libttf </p><p>  [user]# arm-Linux-gcc -c -fPIC -O2 freetype.c </p><

84、p>  [user]# arm-Linux-gcc -c -fPIC -O2 -I./ extend/*.c //把 extend 下所有的 .c 文件全部編譯 </p><p>  [user]# arm-Linux-gcc --shared -o libttf.so *.o //生成最后的動態(tài)鏈接庫 </p><p>  [Root] mkdir –p /usr/lo

85、cal/ARM/2.95.3/ARM-Linux/include/freetype1/freetype</p><p>  cp *.h extend/*.h /usr/local/ARM/2.95.3/ARM-Linux/include/freetype1/freetype</p><p>  [Root] cp libttf.so /usr/local/ARM/2.95.3/A

86、RM-Linux/lib</p><p>  <21>這樣,最重要的幾個庫基本安裝完成了,但是在編譯程序時會發(fā)現(xiàn)提示找不到共享庫,用-L指定路徑也沒用,所以還要修改下ljpeg lpng lttf的連接:</p><p>  [Root]# cd /usr/lib </p><p>  [Root]# mv libjpeg.so libjpeg.so

87、_back </p><p>  [Root]# ln –s /usr/local/ARM/2.95.3/ARM-Linux/lib/libjpeg.so ./libjpeg.so </p><p>  [Root]# mv libpng.so libpng.so_back </p><p>  [Root]# ln –s /usr/local/ARM/

88、2.95.3/ARM-Linux/lib/libpng.so ./libpng.so </p><p>  [Root]# mv libttf.so libttf.so_back </p><p>  [Root]# ln –s /usr/local/ARM/2.95.3/ARM-Linux/lib/libttf.so ./libttf.so</p><p>

89、;  <22>完成之后就可以編譯libMinigui了:</p><p>  [user]# cd libMinigui-1.3.3 </p><p>  [user]# make menuconfig</p><p>  詳細的libMinigui配置單就不列出來了,主要要注意的就是對觸摸屏支持上選擇SMDK2410。</p><

90、p>  <23>保存退出之后,它就開始檢測的系統(tǒng)了,注意下面的輸出:</p><p>  checking for FrameBuffer console support... yes </p><p>  checking for TT_FreeType_Version in -lttf... yes //True Type字體 </p><

91、;p>  checking for jpeg_std_error in -ljpeg... yes // jpeg 支持 </p><p>  checking for png_check_sig in -lpng... yes //png 圖形支持,重要?。?! </p><p>  checking for pow in -lm... yes

92、</p><p>  如果有 no 的話,缺少哪個庫就重新安裝哪個庫,一定都要yes。接著是安裝:</p><p>  [user]# make</p><p>  [Root]# make install</p><p>  <24>最后,安裝 popt 庫,這個庫在編譯 mde 程序時需要使用,不然編譯沒法通過 :<

93、/p><p>  [user]# cd popt-1.7 </p><p>  [user]# ./configure --prefix=/usr/local/ARM/2.95.3/ARM-Linux/ --host=ARM-Linux --enable-shared --enable-static </p><p>  [user]# make </p>

94、<p>  [Root]# make install</p><p>  這樣Minigui的交叉編譯環(huán)境設(shè)置好了。</p><p>  <25>最終的程序是在開發(fā)板上運行的,所以要把Minigui移植到開發(fā)板上去:</p><p>  [Root]# mkdir –p /opt/rootfs/usr/local/[lib,etc] <

95、/p><p>  把 /usr/local/ARM/2.95.3/ARM-Linux/lib 中相應(yīng)的庫拷到 /opt/rootfs/usr/ local/lib 目錄下去,下面是拷的庫文件: </p><p>  libmgext-1.3.so.3 libpng.so.2 libz.so libjpeg.la libmgext-1.3.so.3

96、.0.0 libMinigui.la libpng.so.2.1.0.10rc1 libttf.so libz.so.1libjpeg.so libMinigui.so libvcongui-1.3.so.3 libz.so.1.2.3 libjpeg.so.62 libmgext.la libm.so libpopt.la libvcongui-1.3.so

97、.3.0.0 Minigui libjpeg.so.62.0.0 libmgext.so libm.so.6 libpopt.so shared libm-2.2.3.so libMinigui-1.3.so.3 libpopt.so.0 libvcongui.la libMinigui-1.3.so.3.0.0 libpng.so lib</p><p>  同時修改

98、/opt/rootfs/etc/ld.so.conf ,在里面最后新加入一行 /usr/local/lib</p><p>  然后執(zhí)行 [Root] ldconfig –r /opt/rootfs。</p><p>  <26>下面把資源文件也拷過來, 它被裝在了 /usr/local/lib 目錄下,一個叫 Minigui 的目錄,并修改Minigui.cfg:</

99、p><p>  [Root]# cp –r –a /usr/local/lib/Minigui /opt/rootfs/usr/local/</p><p>  [Root]# cp /usr/local/etc/Minigui.cfg /opt/rootfs/usr/local/etc/</p><p>  gal_engine=fbcon</p>

100、<p>  ial_engine=dummy</p><p>  defaultmode=640x480-8bpp</p><p><b>  保存退出。</b></p><p>  <27>安裝Minigui的圖形界面,一個叫mginit的程序,在mde包里:</p><p>  [user]#

101、 cd mde-1.3.0/mginit</p><p>  [user]# vi mginit.c</p><p>  在 297 行處,把下面代碼注釋掉保存,退出即可。因為觸屏未知,所以把About 信息去掉。</p><p>  /*************** </p><p>  AboutMinigui (); </p>

102、;<p>  AboutMDE (); </p><p>  **************/ </p><p><b>  <28>編譯安裝:</b></p><p>  [user]# ./configure --prefix=/opt/rootfs/usr/local --host=ARM-Linux </p

103、><p>  [user]# make</p><p>  [user]# make install</p><p>  [Root]# mkdir –p /opt/rootfs/usr/local/lib/shared/Miniguiapps</p><p>  [Root]# cp –r –a mde-1.3.0/* /opt/root

104、fs/usr/local/lib/shared/Miniguiapps</p><p>  然后到 /opt/rootfs/usr/local/lib/shared/Miniguiapps 的各個程序目錄下去,把不用的 .c .h .o Makefile 之類的全刪除掉。</p><p>  <29>修改開機啟動的配置文件Linuxrc加入啟動mginit語句:</p&g

105、t;<p>  [Root]# vi /opt/rootfs/Linuxrc </p><p>  mknod /dev/ttyp5 c 3 5 </p><p>  mknod /dev/ptyp5 c 2 5 </p><p>  cd /usr/local/lib/shared/Miniguiapps/mginit </p>&

106、lt;p><b>  ./mginit</b></p><p>  <30>用mdcramfs工具制作出根文件系統(tǒng),燒寫到開發(fā)上去,用交叉編譯的helloworld程序測試,能成功,至此說明Minigui的交叉編譯環(huán)境就搭建成功了[11]。</p><p>  第5章 人機交互界面的實現(xiàn)</p><p>  5.1 圖形化

107、界面</p><p>  通過Minigui的強大功能,以window的窗口風格建立友好人機交互見面,方便用戶查看和操作。Minigui提供了窗口、控件、畫圖等功能,能很好的建立起一個友好的多樣化的圖形化界面。現(xiàn)在的大部分人都已習(xí)慣了了windows系統(tǒng)的窗口化界面,所以本系統(tǒng)也建立了一個窗口化界面,給人熟悉,方便的操作[12-13]。</p><p>  進入系統(tǒng),出現(xiàn)的第一個界面是一個

108、歡迎界面,主要介紹說明了主窗口的幾個菜單的功能。如圖5.1 歡迎界面:</p><p>  圖 5.1 歡迎界面</p><p>  歡迎界面的程序代碼為:</p><p>  case MSG_PAINT: </p><p>  hdc = BeginPaint(hWnd); </p><p>  

109、int startx=10,starty=40,gap=30;</p><p>  TextOut (hdc, 100, 10, "歡迎使用本系統(tǒng)");</p><p>  TextOut (hdc,startx,starty, "使用說明:");</p><p>  TextOut (hdc,startx,starty+ga

110、p*1, " 選擇文件->開始,進入控制界面");</p><p>  TextOut (hdc,startx,starty+gap*2, " 選擇文件->退出,退出本系統(tǒng) ");</p><p>  TextOut (hdc,startx,starty+gap*3, " 選擇幫助->關(guān)于,顯示相關(guān)信息")

111、;</p><p>  EndPaint(hWnd, hdc);</p><p><b>  break;</b></p><p>  和經(jīng)典的windows窗口一樣,在標題欄下有菜單欄,點擊相應(yīng)的菜單可以顯示下拉菜單,具體和圖5.1 歡迎界面中的說明一樣。在文件下設(shè)立了兩個子菜單,一個是“開始”,一個是“退出”,幫助下設(shè)置了一個“關(guān)于”的子菜

112、單。幫助->關(guān)于是顯示作者、指導(dǎo)老師等信息。如圖5.2 系統(tǒng)信息:</p><p>  圖 5.2 系統(tǒng)信息</p><p>  顯示系統(tǒng)信息的程序代碼為:</p><p>  case ID_ABOUT:</p><p>  MessageBox(hWnd,"作者: 楊敏強 指導(dǎo)老師:趙秋亮 時間:2011.5.2

113、0","版本",MB_OK);</p><p><b>  break;</b></p><p>  在歡迎界面選擇文件->開始,進入壓力監(jiān)測系統(tǒng)的控制主界面,在這里設(shè)置了一些信息,方便用戶讀取,如圖5.3 壓力監(jiān)測控制面:</p><p>  圖 5.3壓力監(jiān)測控制面</p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論