arm嵌入式系統(tǒng)課程設(shè)計(jì)-基于嵌入式系統(tǒng)的煙氣檢測(cè)監(jiān)控系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  1.引言5</b></p><p>  2.課程設(shè)計(jì)目的6</p><p>  3.課程設(shè)計(jì)題目描述和要求6</p><p>  4.課程設(shè)計(jì)報(bào)告內(nèi)容7</p><p>  4.1實(shí)

2、驗(yàn)原理7</p><p>  4.2程序流程圖11</p><p>  4.3主程序代碼12</p><p>  5.調(diào)試過(guò)程及總結(jié)23</p><p>  6.參考文獻(xiàn)24</p><p><b>  引言</b></p><p>  隨著工業(yè)化生產(chǎn)的發(fā)

3、展,人類向賴以生存的環(huán)境排放的氣態(tài)污染物如硫氧化物、氮氧化物等對(duì)人類健康和生態(tài)環(huán)境都帶來(lái)了極大的危害?!氨Pl(wèi)環(huán)境,保衛(wèi)我們生存的地球”不在是一句危言聳聽(tīng)的口號(hào),而是關(guān)系到后代子孫的刻不容緩的大事。人類需要發(fā)展,但發(fā)展的前提條件是擁有適合人類生存的環(huán)境,如何保護(hù)我們賴以生存的環(huán)境是人類關(guān)注的首要大事。對(duì)人類健康、生態(tài)環(huán)境威脅最大且絕對(duì)排放量較大的廢氣主要是含NOx,S02,P,PH3,CO,HF,C2HC13, C2H3C13等污染物的

4、有毒氣體。</p><p>  眾所周知,水泥廠是煙氣排放污染很嚴(yán)重的工廠企業(yè),針對(duì)水泥廠的具體情況,國(guó)家頒布了水泥廠大氣污染物的排放標(biāo)準(zhǔn),為了分析水泥廠所排放煙氣是否符合國(guó)家頒布的水泥廠大氣污染物排放標(biāo)準(zhǔn),需要對(duì)所排放的煙氣進(jìn)行采樣并進(jìn)行含量測(cè)定分析,可是直接采集到的煙氣中水氣含量較多,需要對(duì)其進(jìn)行干燥化,以往采用露點(diǎn)除水法,就是將氣體溫度降到露點(diǎn),氣體中的水氣自動(dòng)凝結(jié)成水,而后將其排除,這種方法比較簡(jiǎn)單,目前

5、也有很多地方在使用該方法,但是,對(duì)于氣體中含有易溶于水的氣體如S02,02時(shí),露點(diǎn)除水就不太適應(yīng),原因是水氣在凝結(jié)成水時(shí),S02氣體將同時(shí)溶于水而產(chǎn)生亞硫酸,氣體的組成成份也發(fā)生了變化,水泥廠所排放的廢氣中主要是NOx,S02,因此,該種方法不適合水泥廠的氣體分析的除水處理。針對(duì)水泥廠的具體問(wèn)題,本文采用氣體霜凍法去除采樣煙氣中的水氣。氣體霜凍除水的主要工作原理主要是水的溫度低于ac,水就凝結(jié)成固態(tài)的霜或者冰;水的溫度高于100℃,水就

6、氣化成為氣體的氣。當(dāng)高溫氣態(tài)的水氣碰到低溫的管壁,高溫快速熱運(yùn)動(dòng)的水分子將與低溫慢速運(yùn)動(dòng)的管壁物質(zhì)分子發(fā)生碰撞進(jìn)行能量交換,當(dāng)水分子的溫度被迅速降到0℃以下,氣體中的水分子在還</p><p><b>  課程設(shè)計(jì)目的</b></p><p>  熟悉S3C2410為硬件核心,嵌入式Linux作為操作系統(tǒng)的控制轉(zhuǎn)換系統(tǒng)。</p><p>  掌

7、握EEPROM 器件的讀/寫方法。</p><p>  掌握數(shù)據(jù)采集模塊的使用方法。</p><p>  熟悉遠(yuǎn)程服務(wù)器對(duì)傳輸數(shù)據(jù)的分析方法。</p><p>  3. 課程設(shè)計(jì)題目描述和要求</p><p>  本次設(shè)計(jì)的基于SUMSANG2410的煙氣監(jiān)控系統(tǒng)正是應(yīng)實(shí)際工程需要,用于監(jiān)測(cè)、控制水泥廠煙氣采樣器,并對(duì)采集到的數(shù)據(jù)進(jìn)行分析

8、。通過(guò)詳細(xì)的調(diào)研工作,分析了當(dāng)前煙氣監(jiān)測(cè)系統(tǒng)的利弊,利用發(fā)展快速的32位微處理器以及嵌入式Linux操作系統(tǒng),結(jié)合氣體霜凍除水方法,自主開(kāi)發(fā)設(shè)計(jì)性能較高、適用范圍較廣的煙氣監(jiān)控系統(tǒng)。利用當(dāng)今發(fā)展快速的嵌入式技術(shù),移植廣泛使用的嵌入式Linux操作系統(tǒng)。設(shè)計(jì)的要求如下:</p><p>  1)以嵌入式技術(shù)為核心的煙氣監(jiān)測(cè)監(jiān)控系統(tǒng);</p><p>  2)完成系統(tǒng)的硬件組成設(shè)計(jì),監(jiān)測(cè)監(jiān)控?zé)?/p>

9、氣排放是否符合煙氣污染排放標(biāo)準(zhǔn),實(shí)現(xiàn)在工業(yè)級(jí)以太網(wǎng)中的互聯(lián)。</p><p>  3)實(shí)現(xiàn)系統(tǒng)軟件的總體功能和功能劃分設(shè)計(jì)總體方案。</p><p>  4. 課程設(shè)計(jì)報(bào)告內(nèi)容</p><p><b>  實(shí)驗(yàn)原理</b></p><p><b>  ARM處理器</b></p>

10、<p>  ARM(Advanced RISC Machines)作為一家芯片設(shè)計(jì)公司,是近年來(lái)在嵌入式系統(tǒng)中非常有影響的微處理器設(shè)計(jì)商,它主要是將芯片設(shè)計(jì)技術(shù)的授權(quán)出售給世界上眾多著名的半導(dǎo)體、軟件和OEM廠商,并且為他們提供ARM相關(guān)技術(shù)及服務(wù)。 ARM CPU是RISC架構(gòu)的CPU,其設(shè)計(jì)主要適合于要求體積小、功耗低和功能較強(qiáng)的處理能力等要求的嵌入式系統(tǒng)。它的主要特點(diǎn)有:</p><p>  

11、(1)采用固定長(zhǎng)的指令格式;</p><p>  (2)使用單周期指令,便于流水線操作執(zhí)行;</p><p>  (3)大量使用寄存器,數(shù)據(jù)處理指令只對(duì)寄存器操作,只有加載/存儲(chǔ)指令可以訪問(wèn)存儲(chǔ)器,以提高指令的執(zhí)行效率;所有的指令都可以跟前面的執(zhí)行效果決定是否被執(zhí)行,從而提高指令的執(zhí)行效率;</p><p>  (5)可用加甸存儲(chǔ)指令批量傳輸數(shù)據(jù),以提高數(shù)據(jù)的傳輸效

12、率;</p><p>  (6)可在一條數(shù)據(jù)處理指令中同時(shí)完成邏輯處理和移位處理;</p><p>  (7)在循環(huán)處理中使用地址的增減來(lái)提高運(yùn)行效率。</p><p>  ARM內(nèi)核中有四個(gè)功能模塊可供生產(chǎn)廠商根據(jù)不同的用戶的不同要求來(lái)配置生產(chǎn)。這四個(gè)模塊分別用T.D.M和I來(lái)表示。</p><p>  T:表示Thumb,該內(nèi)核可從16位

13、指令集擴(kuò)充到32位ARM指令集:</p><p>  D:表示Debug,該內(nèi)核中放置了用于調(diào)試的結(jié)構(gòu),可以使CPU進(jìn)入調(diào)試模式,從而可方便地通過(guò)JTAG進(jìn)行斷點(diǎn)設(shè)置、單步調(diào)試; M:表示Multiplier,該內(nèi)核內(nèi)部帶有8位乘法器;I:表示Embedded ICE Logic,該內(nèi)核可用于實(shí)現(xiàn)斷點(diǎn)觀測(cè)及變量觀測(cè)。 ARM920T支持7種操作模式,可以由軟件配置,分別如下:</p><p

14、>  (1) User mode (usr):7E常程序執(zhí)行模式;</p><p>  (2) FIQ mode (fiq):支持快速數(shù)據(jù)傳送和通道處理;</p><p>  (3) IRQ mode (irq):用于通用中斷處理;</p><p>  (4) Supervisor mode (svc):操作系統(tǒng)保護(hù)模式。</p&g

15、t;<p>  (5) System mode (sys):運(yùn)行特權(quán)模式操作系統(tǒng)任務(wù);</p><p>  (6) Abort mode (abt)數(shù)據(jù)或指令預(yù)取失效后進(jìn)入的狀態(tài);</p><p>  (7) Undefined mode (und):執(zhí)行未定義的指令時(shí)進(jìn)入的模式。</p><p>  對(duì)這些操作模式的支持,使得ARM

16、可以支持虛擬存儲(chǔ)器機(jī)制,支持多種特權(quán)模式,從而可以運(yùn)行多種主流的嵌入式操作系統(tǒng)。A所示。ARM微處理器中共定義了37個(gè)編程可見(jiàn)寄存器,每個(gè)寄存器的長(zhǎng)度均為32位。根據(jù)不同的用途,可將其劃分為以下幾類:</p><p>  (1) 30個(gè)通用寄存器:在任意一種處理器模式下,只有15個(gè)通用寄存器可以使用,編號(hào)分別為r0,...,r14.其中,r13一般作為堆棧指針寄存器(SP: Stack Pointer )。

17、該寄存器由ARM編譯器自動(dòng)使用。r14一般作為鏈接寄存器(LR: Link Register)。當(dāng)系統(tǒng)中發(fā)生子程序調(diào)用時(shí),用r14來(lái)記錄返回地址。如果返回地址己經(jīng)保存在堆棧中,則該寄存器也可以用于其它用途。</p><p>  (2)程序指針(PC: Program Counter): PC即為r15,用于記錄程序當(dāng)前的運(yùn)行地址。ARM處理器每執(zhí)行一條指令,都會(huì)把PC增加4字節(jié)(飾umb模式為兩個(gè)字節(jié))。

18、此外,相應(yīng)的分支指令(如BL等)也會(huì)改變PC的值。</p><p>  (3)當(dāng)前處理器狀態(tài)寄存器(CPSR: Curent Program Status Resister) 各種模式公用該寄存器。</p><p>  (4)狀態(tài)備份寄存器(SPSR:Saved Program Status Resister) SPSR寄存器主要是在處理器異常發(fā)生時(shí),用來(lái)保存CPSR (Curent

19、 Program Status Resister)</p><p>  2) S3C2410的介紹</p><p>  本系統(tǒng)開(kāi)發(fā)前進(jìn)行了大量的調(diào)研工作,基于芯片的性能、功耗、專業(yè)水平等多方面因素,最終選擇了以ARM920T為核心的SAMSUNG S3C2410,作為整個(gè)控制系統(tǒng)的硬件核心部分。S3C2410是SAMSUNG公司針對(duì)工業(yè)級(jí)和民用級(jí)等多種應(yīng)用場(chǎng)合設(shè)計(jì)的一款性價(jià)比較高的1

20、6/32位RISC嵌入式微處理器,其內(nèi)部除了包含ARM公司設(shè)計(jì)的16/32位ARM920T RISC處理內(nèi)核外,S3C2410還包括以下比較重要的功能模塊isi</p><p>  (1) 內(nèi)帶有MMU(Memory Manage Unit)內(nèi)存管理單元,故S3C2410支持WindowsCE、嵌入式Linux和EPOC32等多種嵌入式操作系統(tǒng);</p><p>  (2) 16KB

21、的指令Cache和16KB的數(shù)據(jù)Cache;</p><p>  (3) 完全可編程控制的外部總線接口(External Bus Interface),其存儲(chǔ)空間可分為8個(gè)128M Bank,每個(gè)存儲(chǔ)區(qū)都支持8/16/32字寬進(jìn)行讀寫操作,最大地址訪問(wèn)空間可達(dá)1G;</p><p>  (4) 55個(gè)中斷源;</p><p>  (5) 3個(gè)異步串行口,其中

22、一個(gè)可設(shè)置成紅外口;</p><p>  (6) SPI串行口;</p><p>  (7) 可編程看門狗定時(shí)器;</p><p>  LCD控制器,支持STN和TFT兩種LCD顯示器;</p><p>  5個(gè)16位定時(shí)/計(jì)算器;</p><p>  8路10位的ADC,支持觸摸屏;</p><

23、;p>  (11) 2個(gè)USB主設(shè)備口,1個(gè)USB從設(shè)備; </p><p>  (12) 117位通用I/O口,24個(gè)外部中斷源。</p><p>  同時(shí)S3C2410也提供了較好的電氣特性,其主要指標(biāo)如下:</p><p>  工業(yè)級(jí)體系列正常工作溫度范圍):-40℃-70℃,民用級(jí)(X系列)正常工作溫度范圍:O-70℃ ;</p><

24、;p>  內(nèi)核供電電壓1.8V, I/O: 3.3V;</p><p>  正常情況下,最高工作頻率可達(dá)203MHz;四種工作模式:正常模式、低能模式、休眠模式和停止模式。</p><p>  3) 硬件系統(tǒng)的總體設(shè)計(jì)方案</p><p>  轉(zhuǎn)換系統(tǒng)是整個(gè)煙氣監(jiān)控系統(tǒng)的核心部分,主要功能:一是控制去除煙氣中的水氣,二是通過(guò)串口與數(shù)據(jù)采集儀進(jìn)行通訊,三是通過(guò)

25、網(wǎng)絡(luò)將通過(guò)串口得到的數(shù)據(jù)發(fā)送給遠(yuǎn)程服務(wù)器。硬件系統(tǒng)框圖如圖1所示。硬件平臺(tái)的主要配置如下: </p><p>  CPU: SAMSUNG S3C2410(ARM920T內(nèi)核); </p><p>  Flash Memory: 64Mbyte NandFlash;</p><p>  SDRAM: 64Mbyte (32Mbyte*2);</p

26、><p>  系統(tǒng)時(shí)鐘:使用外部12MHz晶體,由CPU內(nèi)部DLL倍頻至203MHz;</p><p>  LCD: 6.4寸TFT 640*480; </p><p>  IOM以太網(wǎng)接口:Cirrus Logic CS8900A; </p><p>  3個(gè)基于標(biāo)準(zhǔn)RS232協(xié)議的COM接口,其中COM3用作擴(kuò)展藍(lán)牙模塊;</p

27、><p><b>  1個(gè)SPI接口;</b></p><p>  USB接口:一個(gè)主設(shè)備接口,一個(gè)從設(shè)備接口:</p><p><b>  LED指示燈;</b></p><p>  整個(gè)系統(tǒng)分為核心板和擴(kuò)展板兩部分。核心板集成了處理器和存儲(chǔ)器以及電源模塊等所必需的支持元件,組成一個(gè)最小的ARM硬件核

28、心系統(tǒng),采用了六層電路板設(shè)計(jì)方案。核心板可作為以后不同產(chǎn)品設(shè)計(jì)的基礎(chǔ)。擴(kuò)展板集成了所需要的大部分接口部件,如RJ-45網(wǎng)絡(luò)接口,USB主/從設(shè)備接口,串口,CF卡接口,系統(tǒng)編程接口等接口。核心板和擴(kuò)展板之間采用標(biāo)準(zhǔn)SIMM插槽連接,外設(shè)和擴(kuò)展板之間采用相應(yīng)的外設(shè)接口連接。</p><p><b>  4) 核心板的設(shè)計(jì)</b></p><p>  核心板是整個(gè)系統(tǒng)的核

29、心部分,主要包括:32位處理器S3C2410、存儲(chǔ)器管理模塊,以及所需要的輔助部件,如晶體振蕩器,電源模塊等等.</p><p>  (1) SDRAM存儲(chǔ)器模塊</p><p>  SDRAM(Synchronous DRAM)即同步DRAM它最大的特色就是可以與CPU的外部工作時(shí)鐘同步,和系統(tǒng)中的CPU、主板使用相同的工作時(shí)鐘,如果CPU的外部工作時(shí)鐘是100MHz,則送至內(nèi)存上的

30、頻率也是100MHZ。這樣將去掉時(shí)間上的延遲,可提高內(nèi)存存取的效率。 SDRAM的工作原理如下:SDRAM是以陣列單元來(lái)存儲(chǔ)數(shù)據(jù)的,因此在存取時(shí)必須提供一個(gè)行地址和一個(gè)列地址來(lái)確定所要訪問(wèn)的數(shù)據(jù)的位置。第一步,地址總線上出現(xiàn)所要訪問(wèn)數(shù)據(jù)的列地址,同時(shí)作為列地址信號(hào)標(biāo)志的RAS(Row Address Strobe)號(hào)有效,將列地址打入SDRAM,SDRAM將整列的數(shù)據(jù)都準(zhǔn)備好,等待著被訪問(wèn);接著地址總線上出現(xiàn)所要訪問(wèn)數(shù)據(jù)的行地址,

31、并通過(guò)行地址信號(hào)的CAS(Column Address Strob目打入SDRAM, SDRAM從在這之前已選中的列中挑選出該行地址所對(duì)應(yīng)的數(shù)據(jù),并將該數(shù)據(jù)輸出或輸入到數(shù)據(jù)總線。具體是輸出還是輸入操作是由WE信號(hào)決定的。本系統(tǒng)的硬件平臺(tái)采用的是兩片Hynix公司的HY57V561620,采用2片構(gòu)成16M X 32bit的SDRAM模塊,具體電路如</p><p>  (2) 閃速存儲(chǔ)器(Flash)模塊&l

32、t;/p><p>  閃速存儲(chǔ)器(Flash Memory)是一類非易失性存儲(chǔ)器,即使在供電電源關(guān)閉后仍能保存片內(nèi)信息;而諸如DRAM, SRAM這類易失性存儲(chǔ)器,當(dāng)關(guān)閉供電電源后,片內(nèi)信息隨即丟失。Flash Memory集其它非易失性存儲(chǔ)器的特點(diǎn):與EPROM相比教,閃速存儲(chǔ)器具有明顯的優(yōu)勢(shì)一系統(tǒng)電可擦除和可重復(fù)編程,而不需要特殊的高電壓;與EEPROM相比較,閃速存儲(chǔ)器具有成本低、密度大的特點(diǎn)。其獨(dú)特的性

33、能使其廣泛地運(yùn)用于包括嵌入式系統(tǒng)在內(nèi)的各個(gè)領(lǐng)域。Flash電路如圖3所示。</p><p>  圖2 SDRM HY57V561620 接口圖</p><p>  圖 3 NAND Flash接口電路</p><p>  5) 電源管理模塊</p><p>  作為工業(yè)產(chǎn)品,電源系統(tǒng)的穩(wěn)定性對(duì)本系統(tǒng)有至關(guān)重要的影響。為了適應(yīng)各種工

34、作環(huán)境,設(shè)計(jì)兩種供電方式,一種是通過(guò)配備的變壓器將220V轉(zhuǎn)換成5V,為整個(gè)協(xié)議轉(zhuǎn)換系統(tǒng)供電,同時(shí)也給自帶的4節(jié)5號(hào)的充電電池充電;另外一種是通過(guò)4節(jié)5號(hào)充電電池為整個(gè)系統(tǒng)供電。在本系統(tǒng)硬件平臺(tái)中,各個(gè)不同的部分對(duì)電壓有不同的要求,需要5V和3.3V兩種不同的電壓。綜合考慮了性能和成本等問(wèn)題,本系統(tǒng)采用了兩級(jí)穩(wěn)壓電源的方案如圖4所示。</p><p>  第一級(jí),將電源的輸入通過(guò)MAX604,提供穩(wěn)定的5V電壓,

35、必要時(shí)為外接模塊供電;同時(shí)作為第二級(jí)電源管理的輸入端。其次通過(guò)分壓后,接入S3C2410的內(nèi)部自帶的一路AD,作為電源的監(jiān)控,以便電源電量不足及時(shí)報(bào)警。</p><p>  第二級(jí),通過(guò)采用MAX604電源轉(zhuǎn)換芯片將輸入第一級(jí)輸入電壓轉(zhuǎn)換成3.3V為整個(gè)系統(tǒng)供電。</p><p>  核心板電源部分的原理采用MIC5207電源芯片將來(lái)自擴(kuò)展板的3.3V電壓轉(zhuǎn)換為兩組1.8V電壓供處理器內(nèi)核

36、使用。</p><p>  圖4 電源原理圖</p><p>  輔助電路的介紹:核心板上還有一些輔助電路,包括上拉電阻,濾波電容,以及供處理器使用的主時(shí)鐘晶振,供外設(shè)適用的輔助時(shí)鐘晶振電路等等。它們一起構(gòu)成了ARM的最小硬件系統(tǒng)板。核心板工作在高速信號(hào)下,為了布線方便,減少干擾,采用了六層電路板設(shè)計(jì),第二層為接地面,四層為電源面,其他各層為信號(hào)層。本系統(tǒng)所設(shè)計(jì)的核心板比較小巧,通過(guò)標(biāo)

37、準(zhǔn)芯SIMM插座與母板連接。核心板是一個(gè)最小的ARM9硬件系統(tǒng)板,具有較好的通用性,可以作為不同產(chǎn)品開(kāi)發(fā)設(shè)計(jì)的基礎(chǔ)。</p><p><b>  擴(kuò)展板的設(shè)計(jì)</b></p><p>  擴(kuò)展板主要有兩方面的作用,一方面對(duì)核心板提供支持,如為核心板供電,提供外設(shè)到核心板的連接;另一方面為各種外設(shè)提供了接口,外設(shè)接口的體積比較大,使用中可能會(huì)有變化,設(shè)置在雙層電路板設(shè)計(jì)

38、的母板上比較合適。系統(tǒng)的擴(kuò)展板主要集成以下功能:LCD顯示器接口,觸摸屏的接口,以太網(wǎng)接口,USB接口,串行接口,CF卡接口等。</p><p>  (1) LCD顯示器</p><p>  S3C2410內(nèi)部自帶LCD控制器,支持4位、8位和16位格式的多種類型的彩色LCD.如STN, TFT等。 本系統(tǒng)考慮到實(shí)際的顯示效果和成本,選用了PVI的6.4寸640*480的TFT_LCD。

39、因?yàn)镾3C2410自帶LCD控制器,所以擴(kuò)展起來(lái)很方便: ①VDO-15: 16位數(shù)據(jù)線;</p><p> ?、赩CLK: LCD的時(shí)鐘信號(hào),用于把每一點(diǎn)的數(shù)據(jù)送入移位寄存器;</p><p> ?、踁Line:行信號(hào),用于指示一行數(shù)據(jù)由移位寄存器到顯示驅(qū)動(dòng)芯片傳輸完畢,并使得行指針加1。</p><p> ?、躒Frame:幀信號(hào),用于指示一幀圖像的開(kāi)始,同

40、時(shí)把行指針置于顯示屏的第一行。在16位TFT方式下,就是垂直同步信號(hào)。</p><p> ?、轑CD_VREN:在16位TFr方式下,輸出一允許信號(hào)。用于指示數(shù)據(jù)信號(hào)在時(shí)鐘信號(hào)的同步下,鎖存到引腳。</p><p><b>  (2)觸摸屏</b></p><p>  本系統(tǒng)通過(guò)在LCD顯示器上安裝觸摸屏,當(dāng)用戶點(diǎn)擊觸摸屏?xí)r,系統(tǒng)可以得到點(diǎn)擊的

41、位置,將該位置的坐標(biāo)換算到LCD的坐標(biāo)就可以實(shí)現(xiàn)人機(jī)交互了。本系統(tǒng)是通過(guò)S3C2410自帶的觸摸屏控制接口擴(kuò)展了一個(gè)四線電阻式觸摸屏。通過(guò)給觸摸屏加上偏置電壓,當(dāng)有點(diǎn)擊操作時(shí),使得觸摸屏輸出電壓改變,通過(guò)S3C2410片內(nèi)觸摸屏控制器得到,并進(jìn)而轉(zhuǎn)換成LCD的位置坐標(biāo)。</p><p><b> ?。?)網(wǎng)絡(luò)接口</b></p><p>  網(wǎng)絡(luò)傳輸功能是本系統(tǒng)的重要

42、組成部分,同時(shí)也是嵌入式系統(tǒng)的主要應(yīng)用領(lǐng)域,本系統(tǒng)以Cirus Logic公司的CS8900A芯片作為核心,設(shè)計(jì)并實(shí)現(xiàn)了以太網(wǎng)接口擴(kuò)展模塊。 CS8900A是一款性價(jià)比非常高的符合IEEE802.3標(biāo)準(zhǔn)的以太網(wǎng)控制器。支持標(biāo)準(zhǔn)的ISA總線,內(nèi)部集成有用于10BASE和10BASE5的以太網(wǎng)收發(fā)器。同時(shí)內(nèi)部集成有4KB RAM,具有完善的沖突檢測(cè)和重傳機(jī)制,對(duì)于傳輸幀而言,它提供了自動(dòng)填充和添加CRC校驗(yàn)碼的功能。CS8900A提供三種

43、數(shù)據(jù)傳輸模式:</p><p> ?、?I/O方式:輸入瀚出端口方式,8/16位模式可選,節(jié)省地址空間;</p><p> ?、?MEMORY方式:存儲(chǔ)器映射方式,16位模式,訪問(wèn)效率高; DMA方式:最快捷的方式。每次復(fù)位后,CS8900A默認(rèn)工作于I/O模式。在本系統(tǒng)中,CS8900A工作于MEMORY方式,占用nCS2所選定的地址空間的低4K。將CS8900A的輸出的中斷信號(hào)連接到S

44、3C2410的外部中斷3,利用中斷的方式,及時(shí)處理數(shù)據(jù)。</p><p><b> ?。?)串行接口</b></p><p>  RS-232是PC機(jī)與通信工業(yè)中應(yīng)用最廣泛的一種全雙工串行接口。RS-232被定義為一種低速率串行通訊標(biāo)準(zhǔn)。其傳送距離最大為約15m,最高速率為20kbps,本次開(kāi)發(fā)的系統(tǒng)是利用RS-232串口,對(duì)現(xiàn)有的數(shù)據(jù)采集單元進(jìn)行擴(kuò)展、操作的。系統(tǒng)中

45、S3C2410具有3個(gè)標(biāo)準(zhǔn)的UART,為了盡可能的擴(kuò)展對(duì)外接口。根據(jù)MAX3232芯片的功能,即每塊MAX3232可以擴(kuò)展2個(gè)獨(dú)立的RS-232串口,故本系統(tǒng)通過(guò)2塊MAX3232芯片擴(kuò)展了3個(gè)RS-232串口,其中兩個(gè)作為與數(shù)據(jù)采集單元連接的接口,另外一個(gè)作為藍(lán)牙模塊的接口。</p><p>  數(shù)據(jù)采集模塊設(shè)計(jì)方案</p><p>  數(shù)據(jù)采集模塊的硬件開(kāi)發(fā)平臺(tái)采用的是PHILIPS公

46、司的LPC2100系列的32位微處理器,LPC2100系列是世界上首款可以加密的ARM芯片。本次設(shè)計(jì)選用的是LPC2114。LPC2114是基于一個(gè)支持實(shí)時(shí)仿真和跟蹤的16/32位ARMTCDMI-S CPU,并帶有128/256K字節(jié)(KB)嵌入的高速Flash存儲(chǔ)器。128位寬度的存儲(chǔ)器接口和獨(dú)特的加速結(jié)構(gòu)使32位代碼能夠在最大時(shí)鐘速率下運(yùn)行。對(duì)代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式,將代碼規(guī)模降低超過(guò)30%,而性能的損

47、失卻很小。由于LPC2114采用非常小的64腳封裝、極低的功耗、多個(gè)32位定時(shí)器、4路10位ADC、PWM輸出以及多達(dá)9個(gè)外部中斷,這使它們特別適用于工業(yè)控制、醫(yī)療系統(tǒng)、訪問(wèn)控制和電子收款機(jī)(POS)等應(yīng)用領(lǐng)域。由于內(nèi)置了寬范圍的串行通信接口,它們也非常適合于通信網(wǎng)關(guān)、協(xié)議轉(zhuǎn)換器、嵌入式軟件調(diào)制解調(diào)器以及其它各種類型的應(yīng)用。后續(xù)的器件還將提供以太網(wǎng)、802.11以及USB功能。LP02114的主要特性如下:</p><

48、;p>  (1) 16/32位ARM7TDMI-S核,超小LQFP和HVQFN封裝;</p><p>  (2) 16/32/64KB片內(nèi)SRAM:</p><p>  (3) 128/256KB片內(nèi)Flash程序存儲(chǔ)器;</p><p>  (4) 128位寬度接Q/加速器可實(shí)現(xiàn)高達(dá)60MIlz工作頻率;</p><p>  

49、(5) 通過(guò)片內(nèi)boot裝載程序?qū)崿F(xiàn)在系統(tǒng)編程(is巧和在應(yīng)用編程(IAP);</p><p>  (6) Embedded ICE可實(shí)現(xiàn)斷點(diǎn)和觀察點(diǎn);</p><p>  (7) 嵌入式跟蹤宏單元(ETM)支持對(duì)執(zhí)行代碼進(jìn)行無(wú)干擾的高速實(shí)時(shí)跟蹤;</p><p>  (8) 10位A/D轉(zhuǎn)換器,轉(zhuǎn)換時(shí)間低至2.44ps;</p><p&

50、gt;  (9) CAN接口,帶有先進(jìn)的驗(yàn)收濾波器;</p><p>  (10)多個(gè)串行接口,包括2個(gè)16C550工業(yè)標(biāo)準(zhǔn)UART、高速I2C接口(400KHz)和2個(gè)SPI接口。</p><p>  數(shù)據(jù)采集模塊的電路設(shè)計(jì):數(shù)據(jù)采集模塊的電路框圖如圖5所示</p><p>  圖 5 數(shù)據(jù)采集模塊</p><p><b>  

51、(1)電源電路</b></p><p>  LPC2114使用兩組電源,I/O口供電電源為3.3V,內(nèi)核以及外設(shè)供電電源為1.8V,所以系統(tǒng)設(shè)計(jì)為3.3V應(yīng)用系統(tǒng)。通過(guò)7805M05穩(wěn)壓到5V,使用LDO芯片(低壓差電源芯片)穩(wěn)壓輸出3.3V和1.8V電壓。LDO芯片采用的是LM1117MPX-3.3和LM1117MPX-1.8,輸出電流800MA,輸出電壓精度在1%以內(nèi),還有電流限制和熱保護(hù)功能。如

52、圖六:為L(zhǎng)M1117MPX-3.3和LM1117MPX-1.8電源電路圖 </p><p><b>  (2)復(fù)位電路</b></p><p>  由于ARM芯片的高速、低功耗、低工作電壓導(dǎo)致其噪聲容限低,對(duì)電源的紋波、瞬態(tài)響應(yīng)性能、時(shí)鐘源的穩(wěn)定性、電源監(jiān)控可靠性等諸多方

53、面也提出了更高的要求。本次開(kāi)發(fā)的電源監(jiān)控芯片采用的是MAX708SD,提高了系統(tǒng)的可靠性。由子使用JTAG調(diào)試,使用了74HC125進(jìn)行驅(qū)動(dòng)。</p><p><b>  (3)系統(tǒng)時(shí)鐘電路</b></p><p>  LPC2114可以使用外部晶振或者外部時(shí)鐘源,內(nèi)部PLL電路可調(diào)整系統(tǒng)時(shí)鐘,使得系統(tǒng)運(yùn)行速度更快(CPU最大操作時(shí)鐘為60MHz),倘若不使用片內(nèi)PL

54、L功能以及ISP下載功能,則外部晶振頻率范圍是1MHz-30MHz,外部時(shí)鐘頻率范圍是1MHz-50MHz;若使用了片內(nèi)PLL功能或者ISP下載功能,則外部晶振頻率范圍是IOMHz-25MHz,外部時(shí)鐘范圍是IOMHz--25MHz晶振。 </p><p>  本次設(shè)計(jì)使用的外部11.0592MHz,原因是這樣使得串口波特率更精確,同時(shí)支持LPC2114芯片內(nèi)部PLL功能和ISP功能。</p>

55、<p><b>  (4)串口電路</b></p><p>  由于系統(tǒng)是3.3V,所以使用了MAX3232進(jìn)行RS232電平轉(zhuǎn)換,MAX3232是3.3V工作電源的RS232轉(zhuǎn)換芯片。如圖七,串口電路圖。</p><p>  嵌入式Linux操作系統(tǒng)的移植</p><p>  Linux操作系統(tǒng)是一個(gè)完整的、功能強(qiáng)大的操作系統(tǒng)、

56、提供了大量的實(shí)用程序和各種各樣的軟件。這些軟件的正確性和有效性都經(jīng)過(guò)了實(shí)際應(yīng)用檢驗(yàn),可以根據(jù)需要,利用Linux提供的豐富的軟件支持,迅速構(gòu)建嵌入式應(yīng)用的軟件環(huán)境。</p><p><b>  交叉編譯環(huán)境的建立</b></p><p>  (1)建立嵌入式Linux交叉開(kāi)發(fā)環(huán)境;</p><p>  本次系統(tǒng)開(kāi)發(fā)語(yǔ)言主要使用基于嵌入式Unux

57、的C語(yǔ)言,所有的工具都是遵循GPL許可的,可以下載所有的源代碼,也可以直接下載別人編譯好的二進(jìn)制工具,這樣就可以不需要經(jīng)過(guò)自己編譯的過(guò)程,基于交叉編譯的方法,本系統(tǒng)的開(kāi)發(fā)機(jī)使用的是普通的個(gè)人電腦PC機(jī),操作系統(tǒng)采用的是Red Hat 9.0。采用Red Hat的好處是,安裝方便,集成度高,穩(wěn)定性強(qiáng)。</p><p>  對(duì)于建立交叉編譯的環(huán)境,是借用深圳遠(yuǎn)峰公司提供的針對(duì)嵌入式Linux的開(kāi)發(fā)包,YUANFE

58、NG.tar.gz.。具體的安裝過(guò)程如下:</p><p>  #tar -zxvf YF2410.tar.gz</p><p>  #cd/YF2410</p><p>  執(zhí)行腳本文件,安裝交叉編譯環(huán)境</p><p>  #./YFINSTALL.sh</p><p>  安裝完畢,為了方便使用arm-lin

59、ux-gee編譯系統(tǒng),我們修改/etc/profile文件找到pathmunge /usr/local/sbin在其下面添加一行pathmunge/usr/local/amr/2.95.3/bin,到此完成了整個(gè)編譯環(huán)境的安裝。軟件開(kāi)發(fā)的主要過(guò)程如下: ①在PC機(jī)上利用arm-linux-gcc對(duì)程序進(jìn)行編寫、編譯;</p><p> ?、谕ㄟ^(guò)JTAG接口,或者網(wǎng)口,將程序下載到目標(biāo)板。</p&g

60、t;<p><b>  (2)配置開(kāi)發(fā)主機(jī)</b></p><p>  本次開(kāi)發(fā)選用的開(kāi)發(fā)主機(jī)采用的是PC機(jī),主要配置:P4處理器,40G硬盤,256M內(nèi)存,操作系統(tǒng):Red Hat9.0, Linux內(nèi)核:2.4.180,配置開(kāi)發(fā)主機(jī)的minicom,一般的參數(shù)為波特率115200,數(shù)據(jù)位8位,停止位1位,</p><p>  無(wú)奇偶校驗(yàn),軟件硬件

61、流控都設(shè)為無(wú)。 配置網(wǎng)絡(luò),主要是配置NFS網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程。</p><p>  Boot Loader的移植</p><p>  芯片的Bootloader代碼就是芯片復(fù)位后進(jìn)入操作系統(tǒng)之前執(zhí)行的一段代碼,主要是為運(yùn)行操作系統(tǒng)提供基本的運(yùn)行環(huán)境,如初始化CPU堆棧、初始化存儲(chǔ)器系統(tǒng)等。Bootloader代碼與CPU芯片的內(nèi)核結(jié)構(gòu)、具體芯片和

62、使用的操作系統(tǒng)等因素有關(guān)。其功能有點(diǎn)類似于PC機(jī)的BIOS 程序,但是由于嵌入式系統(tǒng)的軟硬件都要比PC機(jī)的簡(jiǎn)單,所以它的Bootloader代碼要比BIOS程序簡(jiǎn)單得多。</p><p>  嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM中運(yùn)行。ROM中的程序執(zhí)行前,需要對(duì)系統(tǒng)硬件和軟件運(yùn)行環(huán)境進(jìn)行初始化。這些工作是用匯編語(yǔ)言和C語(yǔ)言編寫的Bootloader代碼完成的。在ARM處理器的嵌入式系統(tǒng)中,Bootlo

63、ader代碼的作用主要有以下幾點(diǎn);</p><p>  (1)初始化CPU各種模式的堆棧和寄存器;</p><p>  (2)初始化系統(tǒng)中要使用的各種片內(nèi)外設(shè);</p><p>  (3)初始化目標(biāo)板;</p><p>  (4)引導(dǎo)操作系統(tǒng)。</p><p>  Bootloader代碼是嵌入式系統(tǒng)中應(yīng)用程序的開(kāi)頭部

64、分,它與應(yīng)用程序一起固化在ROM中,并首先在系統(tǒng)上運(yùn)行。設(shè)計(jì)好Bootloader代碼是設(shè)計(jì)嵌入式程序的關(guān)鍵,也是系統(tǒng)能夠正常工作的前提。Bootloader代碼所執(zhí)行的操作主要依賴CPU內(nèi)核的類型,以及正在開(kāi)發(fā)的嵌入式系統(tǒng)軟件中需要使用CPU芯片上的哪些資源o Bootloader代碼的一般流程(即Bootloader代碼應(yīng)該進(jìn)行的操們,如圖6所示。</p><p>  圖8 Bootloader執(zhí)行流程

65、框圖</p><p>  當(dāng)系統(tǒng)上電或者reset按鈕被按下,系統(tǒng)就會(huì)從Bootloader開(kāi)始運(yùn)行,S3C2410會(huì)自動(dòng)將PC指針恢復(fù)為0,從0x0000地址開(kāi)始執(zhí)行。接著設(shè)置中斷向量表,中斷通常是對(duì)OS設(shè)備驅(qū)動(dòng)程序提供服務(wù)的,因此在Bootloader的執(zhí)行全過(guò)程中可以不必響應(yīng)任何中斷,此處通過(guò)設(shè)置ARM的中斷向量寄存器,屏蔽中斷,不響應(yīng)中斷。然后對(duì)CPU和存儲(chǔ)空間進(jìn)行初始化和設(shè)置,同時(shí)通過(guò)設(shè)置時(shí)鐘,將S3C

66、2410在本系統(tǒng)中設(shè)置成工作頻率在203MHz。為了方便調(diào)試和下載操作系統(tǒng)和用戶程序,Bootloader對(duì)串口和網(wǎng)口進(jìn)行了初始化。通過(guò)串口,可以查看系統(tǒng)啟動(dòng)的過(guò)程和狀態(tài),同時(shí),也為用戶提供一個(gè)操作平臺(tái),修改IP設(shè)置等。網(wǎng)口主要是為下載操作系統(tǒng)提供一個(gè)高速快捷的通道。 在修改完Bootloader的源程序后,要對(duì)其進(jìn)行編輯生成bin文件,并用過(guò)JTAG下載到目標(biāo)板上,即實(shí)現(xiàn)了整個(gè)的Bootloader移植。</p><

67、;p>  驅(qū)動(dòng)程序及應(yīng)用程序的設(shè)計(jì)</p><p>  設(shè)備驅(qū)動(dòng)程序是操作系統(tǒng)內(nèi)核和機(jī)器硬件之間的接口,設(shè)備驅(qū)動(dòng)程序?yàn)閼?yīng)用程序屏蔽了硬件的細(xì)節(jié)。在Linux系統(tǒng)中,硬件設(shè)備被認(rèn)為是一種設(shè)備文件,應(yīng)用程序可以像操作普通文件一樣對(duì)硬件設(shè)備進(jìn)行操作。設(shè)備驅(qū)動(dòng)程序是內(nèi)核的一部分,具有下面功能:</p><p>  (1)對(duì)設(shè)備初始化和釋放:</p><p>  (2)

68、把數(shù)據(jù)從內(nèi)核傳送到硬件和從硬件讀取數(shù)據(jù);</p><p>  (3)讀取應(yīng)用程序傳送給設(shè)備文件的數(shù)據(jù)和回送應(yīng)用程序請(qǐng)求的數(shù)據(jù);</p><p>  (4)檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。</p><p>  在Unux操作系統(tǒng)下有三類主要的設(shè)備文件類型:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備和塊設(shè)備的主要區(qū)別是:在對(duì)字符設(shè)備進(jìn)行讀寫操作時(shí),實(shí)際的硬件I/O一般都緊接著發(fā)生了

69、,塊設(shè)備則不然,它利用一塊系統(tǒng)內(nèi)存作緩沖區(qū),當(dāng)用戶進(jìn)程對(duì)設(shè)備請(qǐng)求能滿足用戶的要求,就返回請(qǐng)求的數(shù)據(jù),如果不能,就調(diào)用請(qǐng)求函數(shù)來(lái)進(jìn)行實(shí)際的陽(yáng)操作。塊設(shè)備是主要針對(duì)磁盤等慢速設(shè)備設(shè)計(jì)的,以免耗費(fèi)過(guò)多的CPU時(shí)間來(lái)等待。前面提到,用戶進(jìn)程是通過(guò)設(shè)備文件來(lái)與實(shí)際的硬件打交道。每個(gè)設(shè)備文件都有其文件屬性,用來(lái)表示是字符設(shè)備、塊設(shè)備還是網(wǎng)絡(luò)設(shè)備,另外每個(gè)文件都有兩個(gè)設(shè)備號(hào),第一個(gè)是主設(shè)備號(hào),標(biāo)識(shí)驅(qū)動(dòng)程序;第二個(gè)是從設(shè)備號(hào),標(biāo)識(shí)使用同一個(gè)設(shè)備驅(qū)動(dòng)程序

70、的不同的硬件設(shè)備,比如有兩個(gè)軟盤,就可以用從設(shè)備號(hào)來(lái)區(qū)分他們。設(shè)備文件的主設(shè)備號(hào)必須與設(shè)備驅(qū)動(dòng)程序在登記時(shí)申請(qǐng)的主設(shè)備號(hào)一致,否則用戶進(jìn)程將無(wú)法訪問(wèn)到驅(qū)動(dòng)程序。</p><p>  本次所設(shè)計(jì)的系統(tǒng)包含的驅(qū)動(dòng)程序主要有SPI驅(qū)動(dòng)程序、非標(biāo)準(zhǔn)LCD顯示器驅(qū)動(dòng)和觸摸屏驅(qū)動(dòng)等。</p><p>  LCD顯示器驅(qū)動(dòng)程序設(shè)計(jì)</p><p>  開(kāi)發(fā)LCD驅(qū)動(dòng)程序的主要工作

71、包括:</p><p>  (1)編寫初始化函數(shù)</p><p>  初始化函數(shù)首先初始化LCD控制器,通過(guò)寫寄存器設(shè)置顯示模式和顯示顏色數(shù),然后分配LCD顯示緩沖區(qū)。在Linux中可以用kmaloco函數(shù)分配一段連續(xù)的空間。緩沖區(qū)的大小為:點(diǎn)陣行數(shù)x點(diǎn)陣列數(shù)X用于表示一個(gè)象素得比特?cái)?shù)l80緩沖區(qū)通常分配在大容量的片外SDRAM中,起始地址保存在LCD控制寄存器中。</p>

72、<p><b>  (2)編寫成員函數(shù)</b></p><p>  編寫fbjnfo中函數(shù)指針fb ops對(duì)應(yīng)的成員函數(shù)</p><p>  struct fb_ops{</p><p>  int (*fb_gelJix)(structfb_fix- screeninfo*fix,int con,struct fb_in

73、fo *info);</p><p>  int (*fb_get var)(struct fb_var screeninfo *var, int con ,struct fb_info *info);</p><p>  int (*fbse set var)(struct fb_ var screeninfo *var, int construc

74、t fb_info *info);</p><p><b>  };</b></p><p>  (3)讀/寫(read/write )相當(dāng)于讀寫屏幕緩沖區(qū)。</p><p>  (4)映射(map)操作, 由于Linux工作于保護(hù)模式,每個(gè)應(yīng)用進(jìn)程都有自己的虛擬地址空間,在應(yīng)用程序中是不能直接訪問(wèn)物理緩沖地址的。為此,Linux在文件操

75、作接口file operations中提供了mmap操作,可以將文件的內(nèi)容映射到用戶空間。對(duì)于幀緩沖設(shè)備,則可通過(guò)映射操作將屏幕緩沖區(qū)的物理地址映射到用戶空間的一段虛擬地址中,用戶可以通過(guò)讀寫這段地址訪問(wèn)屏幕緩沖區(qū),在屏幕上繪圖。</p><p>  (5)10控制,對(duì)于緩沖設(shè)備,通過(guò)對(duì)設(shè)備文件的ioctlo調(diào)用可以讀1W設(shè)置顯示設(shè)備或者屏幕的參數(shù),如:分辨率、顯示顏色數(shù)、屏幕大小等,ioctlo的實(shí)現(xiàn)由底層驅(qū)

76、動(dòng)來(lái)完成。</p><p>  SPI總線驅(qū)動(dòng)程序設(shè)計(jì)</p><p>  在硬件設(shè)計(jì)中,SPI接口是通過(guò)S3C2410內(nèi)部自帶的SPI資源擴(kuò)展的,用來(lái)與數(shù)據(jù)采集單元進(jìn)行數(shù)據(jù)的讀取及控制其驅(qū)動(dòng)程序;</p><p>  本程序中的file_operation結(jié)構(gòu)如下:</p><p>  static struct file_operat

77、ions cpm_spi_fops={</p><p><b>  NULI,</b></p><p>  cpnr_spi_read, //對(duì)SPI進(jìn)行讀操作</p><p>  cpm_spi_write, //對(duì)SPI進(jìn)行寫操作</p><p><b>  NULL,</b>&

78、lt;/p><p><b>  NULL,</b></p><p><b>  NULL,</b></p><p><b>  NULL,</b></p><p>  cpm_spi_open,//打開(kāi)SPI設(shè)備</p><p>  Cpm_spi_clo

79、se,//關(guān)閉SPI設(shè)備,釋放資源</p><p><b>  NULL</b></p><p><b>  };</b></p><p>  相對(duì)于上面結(jié)構(gòu),即有相應(yīng)的函數(shù):</p><p>  static int cpmes_spi_open(struct inode *,struct fi

80、le*);</p><p>  static int cpm_spi_close(struct inode *,struct file*);</p><p>  static ssize_t cpm_spi_read(struct file *,char *,size_t,loff_t *);</p><p>  static ssize_t cpmes_spie

81、e_write(struct file *,char *,size_t,loff_t *);</p><p>  另外還使用void cpm_spiwe_init(void)函數(shù)進(jìn)行初始化,并注冊(cè)設(shè)備的函數(shù)。使用 static void cpm_spi_terrupt(void)函數(shù)實(shí)現(xiàn)中斷。</p><p>  SPI使用中斷與系統(tǒng)交換數(shù)據(jù),驅(qū)動(dòng)函數(shù)需要使用內(nèi)存來(lái)緩存接收到的數(shù)據(jù)和將要發(fā)

82、送的數(shù)據(jù),中斷和內(nèi)存等資源是由Linux系統(tǒng)統(tǒng)一管理的,設(shè)備驅(qū)動(dòng)程序在初始化時(shí),需要申請(qǐng)資源。資源不用的時(shí)候,應(yīng)該釋放,以利于資源的共享。在Linux系統(tǒng)里,對(duì)中斷的處理是屬于系統(tǒng)的核心部分,設(shè)備驅(qū)動(dòng)程序通過(guò)調(diào)用requestes_irq()函數(shù)來(lái)申請(qǐng)中斷,通過(guò)free_irq()函數(shù)釋放中斷資源。</p><p><b>  觸摸屏驅(qū)動(dòng)程序設(shè)計(jì)</b></p><p&g

83、t;  本次設(shè)計(jì)所選用的觸摸屏驅(qū)動(dòng)芯片是ADS7843,是12位AID轉(zhuǎn)換芯片,適合用在4線制觸摸屏,通過(guò)標(biāo)準(zhǔn)SPI協(xié)議和CPU通信。當(dāng)按下觸摸屏?xí)r,ADS7843向CPU發(fā)送中斷請(qǐng)求,CPU接到請(qǐng)求后,應(yīng)該延時(shí)一下再響應(yīng)其請(qǐng)求,目的是為了消除抖動(dòng)使得采樣更準(zhǔn)確。對(duì)觸摸屏的控制主要就是對(duì)SPI接口的操作。完成SPI接口驅(qū)動(dòng)的編寫之后,就能夠與觸摸屏控制器建立通信。在Linux內(nèi)核運(yùn)行完畢之后,SPI接口要打開(kāi),并且已經(jīng)分配了一部分內(nèi)存供

84、它使用。同時(shí),SPI的中斷程序己經(jīng)加入等待隊(duì)列,一旦SPI接口有中斷,SPI的中斷服務(wù)程序就被喚醒,開(kāi)始運(yùn)行。這部分的工作是在系統(tǒng)啟動(dòng)過(guò)程中運(yùn)行的初始化函數(shù)來(lái)完成的。下面將結(jié)合源代碼來(lái)討論初始化函數(shù)的編寫。主要用到的數(shù)據(jù)結(jié)構(gòu):</p><p>  typedef struct{ unsigned int penStatus;/*觸摸屏狀態(tài):PEN_UP, PEN_DOWN,PEN_SAMPLE*/<

85、/p><p>  TS_RET buf[MAX_TS_BUF;/*保護(hù)*/</p><p>  unsigned int head,tail;/*隊(duì)列事件的對(duì)頭和隊(duì)尾*/</p><p>  wait_queue_heades_t wq;</p><p><b>  }TS_DEV;</b></p><

86、p>  typedef struct{</p><p>  unsigned short pressure;</p><p>  unsigned short x;</p><p>  unsigned short y;</p><p>  unsigned short pad;</p><p>

87、; ?。齌S_RET; /改結(jié)構(gòu)用于保存觸摸屏的返回值 </p><p><b>  應(yīng)用程序的設(shè)計(jì)</b></p><p>  本系統(tǒng)的軟件是基于LINUX操作系統(tǒng)開(kāi)發(fā)的,層次結(jié)構(gòu)如下圖所示: </p><p>  圖9 應(yīng)用程序?qū)哟谓Y(jié)構(gòu)圖</p><p>  用戶進(jìn)程: 用戶進(jìn)程就是運(yùn)行在操作系統(tǒng)

88、之上的本系統(tǒng)的應(yīng)用程序。</p><p>  系統(tǒng)調(diào)用接口: 為了在程序中實(shí)現(xiàn)特定的任務(wù),可以通過(guò)系統(tǒng)的調(diào)用接口來(lái)調(diào)用系統(tǒng)內(nèi)核中特定的過(guò)程,以實(shí)現(xiàn)特定的服務(wù)。系統(tǒng)調(diào)用運(yùn)行在內(nèi)核模式,而一般的進(jìn)程運(yùn)行在用戶模式。</p><p><b>  調(diào)試過(guò)程及總結(jié)</b></p><p>  這次設(shè)計(jì)涉及到了嵌入式及計(jì)算機(jī)網(wǎng)絡(luò)的很多知識(shí),有嵌入式系統(tǒng)的各

89、類應(yīng)用,還有無(wú)線局域網(wǎng)的設(shè)計(jì)與搭建;在硬件方面,主要在于核心板的設(shè)計(jì)部分,數(shù)據(jù)采集部分,電源供電部分;在軟件方面,就在于對(duì)核心系統(tǒng)的移植,驅(qū)動(dòng)程序的編寫等等。硬件方面只要選好所用的芯片,搭建好電路,調(diào)試正確即可;但在程序設(shè)計(jì)以及無(wú)線網(wǎng)絡(luò)的搭建就。</p><p>  雖然這次課程設(shè)計(jì)沒(méi)有很好的完成,有些遺憾,但是從中還是學(xué)到了不少知識(shí),最后謝謝老師細(xì)心輔導(dǎo)。</p><p><b&g

90、t;  參考文獻(xiàn)</b></p><p>  [1]袁志勇,王景存.嵌入式系統(tǒng)原理與應(yīng)用技術(shù).北京:北京航天航空大學(xué)出版社,2009 </p><p>  [2]杜春雷.ARM體系結(jié)構(gòu)與編程.北京:清華大學(xué)出版社,2003.</p><p>  [3]黃力,覃紀(jì)武.嵌入式Linux的現(xiàn)狀與前景研究.電腦知識(shí)與技術(shù),2005.</p><

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論