基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì) 畢業(yè)論文_第1頁(yè)
基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì) 畢業(yè)論文_第2頁(yè)
基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì) 畢業(yè)論文_第3頁(yè)
基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì) 畢業(yè)論文_第4頁(yè)
基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì) 畢業(yè)論文_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、防 災(zāi) 科 技 學(xué) 院畢 業(yè) 設(shè) 計(jì)題 目基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì)學(xué)生姓名學(xué) 號(hào)105032106系 別防災(zāi)儀器系專(zhuān) 業(yè)測(cè)控技術(shù)與儀器班 級(jí)開(kāi)題時(shí)間2013年12月25日答辯時(shí)間2014年06月07日指導(dǎo)教師職 稱(chēng)教授基于micro2440的wifi網(wǎng)絡(luò)開(kāi)關(guān)設(shè)計(jì)摘要 在互聯(lián)網(wǎng)流行的當(dāng)今社會(huì),用網(wǎng)絡(luò)控制設(shè)備已經(jīng)成為一種必然的趨勢(shì)。本設(shè)計(jì)便是用WIFI設(shè)計(jì)了一個(gè)網(wǎng)絡(luò)開(kāi)關(guān),通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程控制Micro2440 開(kāi)發(fā)板上的資源。本設(shè)計(jì)通過(guò)網(wǎng)頁(yè)發(fā)送控制信號(hào)到嵌入式Linux服務(wù)器,利用CGI(Common Gateway Interface)與Micro2440上的服務(wù)器程序進(jìn)行數(shù)

2、據(jù)交互。位于Micro2440中的主程序收到控制信號(hào)后,根據(jù)控制信號(hào)的不同利用Linux的管道通信方式,控制Micro2440的GPB5、GPB6、GPB7和GPB8,即Micro2440開(kāi)發(fā)板的LED資源和蜂鳴器資源。網(wǎng)絡(luò)控制FRIENDLY ARM的LED燈亮以及蜂鳴器響。本設(shè)計(jì)的核心技術(shù)為Micro 2440.應(yīng)用BOA Web服務(wù)器.以及common gateway interface通用網(wǎng)絡(luò)接口,將本地瀏覽器和網(wǎng)絡(luò)服務(wù)器之間進(jìn)行數(shù)據(jù)傳輸。通過(guò)管道來(lái)控制,通過(guò)linux語(yǔ)言控制本設(shè)計(jì)。在A(yíng)RM收到信息后完成LED燈亮以及PWM響的成果。關(guān)鍵詞:Micro2440 BOA Web服務(wù)器

3、CGI WIFIBased on micro2440 wifi network switch designAuthor Yuan YeTeacher HONG LiABSTACT In current society, the Internet popular, has become an inevitable trend of network control equipment. This design is to use WIFI to design a network switch, remote control on the Micro2440 development Board re

4、sources through the network.The design of the control signal to the embedded Linux server through the Webpage transmission, using CGI (Common Gateway Interface) data interaction with the server on the Micro2440 program. Located in the main program in Micro2440 receiving the control signal, according

5、 to the different pipeline communication using Linux control signals, control of Micro2440 GPB5, GPB6, GPB7 and GPB8, i.e. Micro2440 development Board of the LED resource and the buzzer resources.LED light network control FRIENDLY ARM light and buzzer. The core technology of the design for the appli

6、cation of Micro 2440 BOA Web common gateway interface server. And the universal network interface, will be among the local browser and web server for data transmission. Controlled by the pipeline, through the design of a Linux control language. To complete the LED lights and PWM ring results in the

7、ARM after receiving the information.Keywords: The Micro2440 BOA Web server CGI WIF 目錄第一章 前言11.1 課題的內(nèi)容及意義11.1.1 選題背景11.2 論文組織結(jié)構(gòu)2第二章 功能要求及環(huán)境搭建32.1 功能要求32.2 硬件環(huán)境32.2.1 micro244032.2.2 LED62.2.3 pwm蜂鳴器72.2.4 wifi模塊82.3軟件環(huán)境和技術(shù)82.3.1 Boa web服務(wù)器82.3.3 linux管道102.4 環(huán)境搭建112.4.1 PC機(jī)環(huán)境搭建112.4.2 開(kāi)發(fā)板14第三章 系統(tǒng)的整體設(shè)

8、計(jì)和實(shí)現(xiàn)153.2 CGI控制模塊設(shè)計(jì)153.3 LED控制設(shè)計(jì)183.4 蜂鳴器控制設(shè)計(jì)193.5 用戶(hù)界面設(shè)計(jì)20第四章 總結(jié)與期望244.1 課題工作的總結(jié)244.2 功能拓展24致 謝26參考文獻(xiàn)27防災(zāi)科技學(xué)院畢業(yè)設(shè)計(jì)第一章 前言1.1 課題的內(nèi)容及意義1.1.1 選題背景Micro2440的本質(zhì)就是一個(gè)雙層電路板,采用6層板設(shè)計(jì)的開(kāi)發(fā)板作為核心板。它的底板上面引出了各種常見(jiàn)接口,這些接口主要集中于電路板的一側(cè),并利用2.0mm間距的插線(xiàn)將多余的IO口和系統(tǒng)總線(xiàn)引出,如此方便了用戶(hù)的學(xué)習(xí)開(kāi)發(fā)以及參考使用。 本套餐可完美組合固定,不會(huì)有很多電線(xiàn)“纏身”,運(yùn)行時(shí)只要連好5V電源,開(kāi)機(jī)就可

9、進(jìn)入精彩的嵌入式世界。所配面板也可單獨(dú)拆卸下來(lái)固定到其他壁面上,特別適合嵌入式愛(ài)好者DIY或中小企業(yè)二次開(kāi)作原型機(jī)使用,也可以直接用于某些顯示終端。本機(jī)可預(yù)裝Linux-2.6.13+Qtopia或WindowsCE5.0,可使用VS2008(包含Visual Basic,Visual C+,Visual C#)進(jìn)行開(kāi)發(fā),也可以運(yùn)行簡(jiǎn)易的uCos2系統(tǒng)或裸機(jī)程序2440test等。為了滿(mǎn)足信號(hào)的完整性要求,核心板部分利用等長(zhǎng)布線(xiàn)這一方法。它將主要的芯片放在頂層,來(lái)方便日后的維修和調(diào)試;其核心板部分采用的是2.0mm間距“U”型排列插針,因此“U”型核心板-U2440指的也是它,此舉方便了拔插以

10、及引出更多的CPU信號(hào)腳。 micro2440的本質(zhì)就是一個(gè)最小系統(tǒng)板,其中包含最基本的電源電路(5V供電)、用戶(hù)調(diào)試指示燈、標(biāo)準(zhǔn)JTAG調(diào)試口、復(fù)位電路、還有核心的CPU和儲(chǔ)物單元等等。NAND FLASH和NOR FLASH是它的FLASH儲(chǔ)物單元的兩種類(lèi)型,利用跳線(xiàn)J1可以選擇從NAND或NOR啟動(dòng)系統(tǒng)。一般NOR FLASH里面放置的是不經(jīng)常更改的BIOS(我們采用的是supervivi),NAND FLASH里面則寫(xiě)完整的系統(tǒng)程序(bootloader、內(nèi)核、文件系統(tǒng)等)1.1.2 研究現(xiàn)狀和發(fā)展趨勢(shì)在人類(lèi)對(duì)生活要求不斷的提高下,網(wǎng)絡(luò)技術(shù)和通用技術(shù)都在不停的發(fā)展,完成智能家居的遠(yuǎn)程控

11、制將會(huì)成為必然的走向。這個(gè)信息時(shí)代的開(kāi)始,送給人們一個(gè)高科技產(chǎn)物,那就是智能家居系統(tǒng)。所有的智能家具都在它的涉及范圍之內(nèi),其中包括了系統(tǒng)和設(shè)備的管理和操作,應(yīng)用了自動(dòng)控制技術(shù),應(yīng)用了通訊網(wǎng)絡(luò)技術(shù)以及計(jì)算機(jī)技術(shù)。使人們得到安全,舒服,便捷的感覺(jué)以及不破壞綠色環(huán)境的需求是本系統(tǒng)的最終目的。檢測(cè)家居設(shè)備的狀態(tài)數(shù)據(jù):例如室內(nèi)溫度,家電情況,防盜門(mén)開(kāi)關(guān)等都算是在只能家居系統(tǒng)的范疇之內(nèi)。用戶(hù)想要遠(yuǎn)程控制的話(huà),可以通過(guò)發(fā)送短信或者網(wǎng)絡(luò)對(duì)家庭系統(tǒng)進(jìn)行遠(yuǎn)程控制或者查看。每當(dāng)發(fā)現(xiàn)異常信號(hào)的時(shí)候,例如防盜門(mén)被打開(kāi),室內(nèi)溫度過(guò)高等。及時(shí)觸發(fā)報(bào)警器,并且在最短時(shí)間內(nèi)通過(guò)網(wǎng)絡(luò)告知用戶(hù)。系統(tǒng)將對(duì)用戶(hù)的室內(nèi)外安全進(jìn)行全方面網(wǎng)

12、絡(luò)實(shí)時(shí)視頻監(jiān)控。本系統(tǒng)以Web編程(CGI)作為核心技術(shù),并建立在micro2440 開(kāi)發(fā)板和嵌入式LINUX操作系統(tǒng)之上制作完成。本系統(tǒng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)易的網(wǎng)絡(luò)控制系統(tǒng)。本系統(tǒng)的特點(diǎn)是原理簡(jiǎn)單,通用性好,并且方便搭建環(huán)境,在改動(dòng)之后可以直接用于各種實(shí)際項(xiàng)目之上。1.2 論文組織結(jié)構(gòu)第一章是前言。本章主要給出畢業(yè)設(shè)計(jì)課題的背景,內(nèi)容,意義和論文的組織結(jié)構(gòu)。第二章是功能要求和環(huán)境搭建。主要講述本次設(shè)計(jì)的主要研究?jī)?nèi)容,以及所需要的環(huán)境搭建。第三章是系統(tǒng)的整體設(shè)計(jì)和實(shí)現(xiàn)。本章主要介紹本設(shè)計(jì)如何設(shè)計(jì)以及實(shí)現(xiàn)最終目標(biāo)的第四章是總結(jié)與期望。本章對(duì)此次設(shè)計(jì)做出了總結(jié),并對(duì)未來(lái)的前途做出期望,功能做出拓展。第二章

13、 功能要求及環(huán)境搭建2.1 功能要求(1)LED、蜂鳴器的驅(qū)動(dòng)程序(2)遠(yuǎn)程控制LED亮滅(3)遠(yuǎn)程控制蜂鳴器響停(4)從客戶(hù)端看到LED燈的狀態(tài)(5)網(wǎng)頁(yè)設(shè)計(jì)友好(6)完成設(shè)計(jì)2.2 硬件環(huán)境2.2.1 Micro2440Micro2440的本質(zhì)就是一個(gè)雙層電路板,采用6層板設(shè)計(jì)的開(kāi)發(fā)板作為核心板。它的底板上面引出了各種常見(jiàn)接口,這些接口主要集中于電路板的一側(cè),并利用2.0mm間距的插線(xiàn)將多余的IO口和系統(tǒng)總線(xiàn)引出,如此方便了用戶(hù)的學(xué)習(xí)開(kāi)發(fā)以及參考使用。 為了滿(mǎn)足信號(hào)的完整性要求,核心板部分利用等長(zhǎng)布線(xiàn)這一方法。它將主要的芯片放在頂層,來(lái)方便日后的維修和調(diào)試;其核心板部分采用的是2.0mm間

14、距“U”型排列插針,因此“U”型核心板-U2440指的也是它,此舉方便了拔插以及引出更多的CPU信號(hào)腳。 micro2440的本質(zhì)就是一個(gè)最小系統(tǒng)板,其中包含最基本的電源電路(5V供電)、用戶(hù)調(diào)試指示燈、標(biāo)準(zhǔn)JTAG調(diào)試口、復(fù)位電路、還有核心的CPU和儲(chǔ)物單元等等。NAND FLASH和NOR FLASH是它的FLASH儲(chǔ)物單元的兩種類(lèi)型,利用跳線(xiàn)J1可以選擇從NAND或NOR啟動(dòng)系統(tǒng)。一般NOR FLASH里面放置的是不經(jīng)常更改的BIOS(我們采用的是supervivi),NAND FLASH里面則寫(xiě)完整的系統(tǒng)程序(bootloader、內(nèi)核、文件系統(tǒng)等)。各個(gè)片選的存儲(chǔ)空間并不相同,在這兩

15、種不同的啟動(dòng)模式中。如下圖:圖2.1 存儲(chǔ)空間分配圖S3C2440 支持兩種啟動(dòng)模式:一種是從 Nand Flash 啟動(dòng)(MINI2440 即是此種);一種是從 Nor Flash啟動(dòng)。各個(gè)片選的存儲(chǔ)空間并不相同,在這兩種不同的啟動(dòng)模式中。Mini2440 使用了兩片外接的 32M bytes 總共 64M bytes 的 SDRAM 芯片:HY57V561620FTP/MT48LC16M16A2),兩個(gè)芯片并接在一起,總線(xiàn)數(shù)據(jù)寬度可以達(dá)到32-bit,這樣就增加了訪(fǎng)問(wèn)速度;兩個(gè)芯片并接在一起,所以使用了nGCS6 作為片選,它們的物理起始地址為 0x30000000,下面是SDRAM部分原

16、理圖。 圖2.2 SDRAM 部分原理圖Mini244具備兩種Flash,一種是 Nor Flash,型號(hào)為 SST39VF1601(AMD29LV160DB與此引腳兼容),大小為 2Mbyte;另一種是 Nand Flash,型號(hào)為 K9F1G08,大小為128M(舊版本為 K9F1208,大小為 64Mbyte)。Nand Flash不具有地址線(xiàn),它通過(guò)專(zhuān)門(mén)的控制接口與CPU 連接在一起,數(shù)據(jù)總線(xiàn)為 8位,但Nand Flash 讀寫(xiě)數(shù)據(jù)的速度不會(huì)很慢。大部分的優(yōu)盤(pán)或者SD 卡等都是 Nand Flash 制成的設(shè)備。 在圖2.3中可以看出, Nor Flash使用了A1-A22 共 22

17、 條地址總線(xiàn)和 16 條數(shù)據(jù)總線(xiàn)與 CPU 相連,地址是從 A1 開(kāi)始的,這意味著它每次最小的讀寫(xiě)單位是 2-byte,因此根據(jù)原理圖,該設(shè)計(jì)總共可以兼容支持最大 8Mbyte 的 Nor Flash,實(shí)際我們的開(kāi)發(fā)板上只用了 A1-A20 條地址線(xiàn),因?yàn)榕cA21、A22 相連的 SST39V1601的相應(yīng)引腳是懸空的。圖2.3 Nor Flash原理圖本開(kāi)發(fā)板的電源系統(tǒng)直接使用外接的5V電源,通過(guò)降壓芯片產(chǎn)生整個(gè)系統(tǒng)所需要的三種電壓:3.3V、1.8V、1.25V。 而開(kāi)發(fā)板并非面向手持移動(dòng)設(shè)備設(shè)計(jì), 因此它并不具備完善的電源管理電路。整個(gè)系統(tǒng)的電源通斷是由撥動(dòng)開(kāi)關(guān)S1控制的,不能通過(guò)軟件進(jìn)

18、行開(kāi)關(guān)機(jī)。開(kāi)發(fā)板Micro 2440有兩種USB接口, 一個(gè)是USB Host, 它和普通 PC的 USB接口是一樣的,可以連接USB外設(shè),比如 USB攝像頭、 USB鍵盤(pán)、 USB鼠標(biāo)、 優(yōu)盤(pán)等; 另外一種是USB Slave,一般使用它將程序下載到開(kāi)發(fā)板中。2.2.2 LED資源LED (light emitting diode),它的基本結(jié)構(gòu)是:將一塊電致發(fā)光的半導(dǎo)體材料置于一個(gè)有引線(xiàn)的架子上,然后四周用環(huán)氧樹(shù)脂密封,用來(lái)保護(hù)內(nèi)部芯線(xiàn),所以 LED 的抗震性能好。在micro2440SRCDRIVERSLEDdriver中編譯程序,使其在初始狀態(tài)下全滅。當(dāng)收到命令時(shí)按要求亮起。圖2.4

19、LED原理圖如圖2.4所示,LED1與GPB5相連,LED2與GPB6相連,LED3與GPB7相連,LED4與GPB8相連,并且都是共陽(yáng)極。當(dāng)IO口的輸出為低時(shí),對(duì)應(yīng)的LED會(huì)亮起。2.2.3蜂鳴器圖2.5 電路原理圖如圖2.5所示,蜂鳴器發(fā)聲原理便是將GPB0設(shè)為T(mén)imer0時(shí)的輸出,Timer0輸出會(huì)是占空比50%的方波。Timer0的輸出頻率就是發(fā)聲頻率。另外使用Timer3作為延時(shí)計(jì)時(shí),周期1ms,重復(fù)n次來(lái)實(shí)現(xiàn)一個(gè)n ms的延時(shí),來(lái)控制發(fā)聲時(shí)間。2.2.4 wifi模塊 首先來(lái)介紹一下wifi。Wi-Fi 。所謂無(wú)線(xiàn)保真技術(shù),就是一種用無(wú)線(xiàn)方式將個(gè)人電腦以及手持設(shè)備等等終端連接起來(lái)的

20、技術(shù),它的本質(zhì)就是一個(gè)高頻無(wú)線(xiàn)電信號(hào)。無(wú)線(xiàn)保真是一個(gè)由Wi-Fi聯(lián)盟所持有的無(wú)線(xiàn)網(wǎng)絡(luò)通信技術(shù)品牌。目的是改善標(biāo)準(zhǔn)的無(wú)線(xiàn)網(wǎng)路產(chǎn)品之間的互通性。現(xiàn)時(shí)一般人會(huì)把Wi-Fi及IEEE 802.11混為一談。甚至把Wi-Fi等同于無(wú)線(xiàn)網(wǎng)際網(wǎng)路。無(wú)線(xiàn)網(wǎng)絡(luò)是一種商業(yè)認(rèn)證,也是一種無(wú)線(xiàn)聯(lián)網(wǎng)技術(shù)。它在無(wú)線(xiàn)局域網(wǎng)的范疇內(nèi)指的是“無(wú)線(xiàn)相容性認(rèn)證”;在以前人們通過(guò)網(wǎng)線(xiàn)連接電腦來(lái)上網(wǎng),現(xiàn)在則是利用無(wú)線(xiàn)電波來(lái)上網(wǎng),這便是無(wú)線(xiàn)保真;其中常見(jiàn)的就是無(wú)線(xiàn)路由器,在這個(gè)無(wú)線(xiàn)路由器的電波覆蓋的有效范圍都可以采用無(wú)線(xiàn)保真連接方式進(jìn)行聯(lián)網(wǎng),如果無(wú)線(xiàn)路由器連接了一條ADSL線(xiàn)路或者別的上網(wǎng)線(xiàn)路,則又被稱(chēng)為熱點(diǎn)。無(wú)線(xiàn)網(wǎng)絡(luò)上網(wǎng)是現(xiàn)在非常廣泛

21、的一種無(wú)線(xiàn)網(wǎng)絡(luò)傳輸技術(shù),它也可以理解為無(wú)線(xiàn)上網(wǎng),幾乎所有的平板電腦,筆記本電腦以及智能手機(jī)都可以做到無(wú)線(xiàn)保真上網(wǎng)。其實(shí)根本上無(wú)線(xiàn)上網(wǎng)便是把有線(xiàn)信號(hào)改變成無(wú)線(xiàn)信號(hào)而已,使用路由器接受無(wú)線(xiàn)信號(hào)供給對(duì)應(yīng)的平板電腦筆記本電腦以及智能手機(jī)。智能手機(jī)在上網(wǎng)的時(shí)候,如果連接Wi-Fi,便可以省去高額的上網(wǎng)費(fèi)用。無(wú)線(xiàn)網(wǎng)絡(luò)無(wú)線(xiàn)上網(wǎng)傳輸速度非常快,最快可以達(dá)到54Mbs,這非常適合于在大城市中應(yīng)用,它也有它的缺點(diǎn),在安全性能上不如藍(lán)牙,無(wú)線(xiàn)通信質(zhì)量也并不是很好,但這并不影響無(wú)線(xiàn)網(wǎng)絡(luò)在當(dāng)今社會(huì)中的廣泛應(yīng)用。無(wú)線(xiàn)保真非常適合辦公用戶(hù)的需要,因?yàn)樗⒉恍枰季€(xiàn),所以并不受布線(xiàn)條件的干擾;而且它的發(fā)射功率都在100mv以

22、下,連手機(jī)的發(fā)射功率都不到,所以無(wú)線(xiàn)保真上網(wǎng)也更為安全健康。Wifi模塊為串口或TTL電平轉(zhuǎn)WIFI通信的一種傳輸轉(zhuǎn)換產(chǎn)品,Uart-Wifi模塊是基于Uart接口的符合wifi無(wú)線(xiàn)網(wǎng)絡(luò)標(biāo)準(zhǔn)的嵌入式模塊,里面含有無(wú)線(xiàn)網(wǎng)絡(luò)協(xié)議IEEE802.11協(xié)議棧以及TCP/IP協(xié)議棧,能夠?qū)崿F(xiàn)用戶(hù)串口或TTL電平數(shù)據(jù)到無(wú)線(xiàn)網(wǎng)絡(luò)之間的轉(zhuǎn)換。本設(shè)計(jì)使用wif模塊是ri3070L。2.3軟件環(huán)境和技術(shù)2.3.1 Boa web服務(wù)器在A(yíng)RM-Linux下,主要有3個(gè)嵌入式Web服務(wù)器:HTTPD、THTTPD和BOA。它們與Apache等高性能Web服務(wù)器的主要區(qū)別在于它們一般是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶(hù)

23、請(qǐng)求后才能響應(yīng)另一個(gè)用戶(hù)的請(qǐng)求,無(wú)法并行響應(yīng),但對(duì)其在數(shù)字家庭中的應(yīng)用已經(jīng)足夠了。相比其它兩種,BOA服務(wù)器運(yùn)行時(shí)所占資源最小。Boa并不同于其他的Web服務(wù)器,每當(dāng)發(fā)現(xiàn)連接請(qǐng)求時(shí),BOA服務(wù)器不會(huì)創(chuàng)立進(jìn)程為單個(gè)連接,也不會(huì)復(fù)制自身進(jìn)程來(lái)處理多個(gè)鏈接,而是建立HTTP請(qǐng)求列表處理多路HTTP連接請(qǐng)求,BOA服務(wù)器創(chuàng)建新的進(jìn)程只會(huì)為了CGI程序,,這樣在很大程度上節(jié)約了系統(tǒng)資源。因此,Boa具有很高的HTTP請(qǐng)求處理速度和效率, 在嵌入式系統(tǒng)中具有很高的應(yīng)用價(jià)值。 Boa服務(wù)器也擁有其他Web服務(wù)器的功能,也能接受客戶(hù)端請(qǐng)求,分析請(qǐng)求和響應(yīng)請(qǐng)求,并向客戶(hù)端反饋結(jié)果。 Boa服務(wù)器會(huì)根據(jù)不同的請(qǐng)求

24、方法,從而做出不同的響應(yīng)。如果HEAD直接向?yàn)g覽器請(qǐng)求的方法首先返回一個(gè)響應(yīng);如果請(qǐng)求方法為GET的響應(yīng)返回最前,同時(shí),客戶(hù)端請(qǐng)求的目標(biāo)文件的URL從服務(wù)器上讀取,并傳送給客戶(hù)端瀏覽器;如果請(qǐng)求方法是POST,發(fā)送客戶(hù)端來(lái)發(fā)送給相應(yīng)的CGI程序,作為參數(shù)來(lái)執(zhí)行CGI程序,并將結(jié)果發(fā)送給客戶(hù)端的瀏覽器形式的消息。Boa的功能的實(shí)現(xiàn)是通過(guò)建立的連接,綁定端口,監(jiān)聽(tīng),請(qǐng)求處理等。圖2.6 Boa執(zhí)行流程圖2.3.2 CGI CGI是通用網(wǎng)關(guān)接口,為服務(wù)器和用戶(hù)程序之間的連接,它可以使你的網(wǎng)站更加生動(dòng),很多工具,如網(wǎng)絡(luò)上的搜索引擎,留言板,BBS等都是CGI程序。CGI是溝通HTML表單和服務(wù)器程序接

25、口(interface)。CGI并不是一種語(yǔ)言,但也可以算是一組規(guī)范的其他語(yǔ)言的應(yīng)用程序。從理論上講,你可以使用任何編程語(yǔ)言來(lái)編寫(xiě)CGI程序,只要在編程以?xún)?nèi)符合CGI的規(guī)范定義的一些事情就是可以的。由于C語(yǔ)言做的很好的平臺(tái)中立性(在幾乎所有的系統(tǒng)平臺(tái)都有相應(yīng)的編譯器),并且讓大多數(shù)程序員所熟悉,因此,編寫(xiě)CGI的首選語(yǔ)言就是C。2.3.3 linux管道在Linux中,管道是一種很常見(jiàn)的溝通機(jī)制。從根本上說(shuō),管道是一種文件,但管道是從一般的文件不同,管道可以克服這兩個(gè)文件的缺點(diǎn)。其表現(xiàn)如下:在Linux中,管道是一種很常見(jiàn)的溝通機(jī)制。從根本上說(shuō),管道是一種文件,但管道是從一般的文件不同,管道可

26、以克服這兩個(gè)文件的缺點(diǎn)。其性能如下:(1) 限制管道的大小。實(shí)際上,管道是一個(gè)固定大小的緩沖區(qū)。在Linux中,緩沖區(qū)是1頁(yè),4K字節(jié)的大小,讓它并不會(huì)不加檢驗(yàn)的增長(zhǎng)大小。使用單個(gè)固定緩沖區(qū)可能會(huì)造成問(wèn)題,例如寫(xiě)管道時(shí)可能變滿(mǎn),當(dāng)這種情況發(fā)生,然后寫(xiě)管道write()調(diào)用將默認(rèn)被阻塞,等待某些數(shù)據(jù)被讀取后,為了使足夠的空間對(duì)于write()調(diào)用。(2) 讀取進(jìn)程也可能工作得比寫(xiě)進(jìn)程快。當(dāng)所有當(dāng)前進(jìn)程數(shù)據(jù)已被讀取時(shí),管道變空。當(dāng)這種情況發(fā)生時(shí),一個(gè)隨后的read()調(diào)用將默認(rèn)地被阻塞,等待某些數(shù)據(jù)被寫(xiě)入,這解決了read()調(diào)用返回文件結(jié)束的問(wèn)題。Linux的管道分為2種:有名管道和無(wú)名管道。1

27、、無(wú)名管道 無(wú)名管道是最初最原始的管道通信方法,如圖2.6所示,它具有以下特點(diǎn): 它只能用于具有親緣關(guān)系的進(jìn)程之間的通信,可用范圍相對(duì)較??; 它具有固定的讀寫(xiě)端口,所以它是雙半工的通信模式; 管道并非普通文件,只存儲(chǔ)于內(nèi)存之中,并不屬于任何文件系統(tǒng),它也是特殊的文件,它的讀寫(xiě)也可以用普通的函數(shù)表達(dá)。2、有名管道(FIFO) 有名管道是對(duì)無(wú)名管道的一種改進(jìn),如圖2.6所示,它具有以下特點(diǎn): 它的應(yīng)用范圍較廣,并不相干的兩個(gè)進(jìn)程可以實(shí)現(xiàn)彼此通信; 有名管道在文件系統(tǒng)中可見(jiàn),想要指出它只要它的路徑名就可以了。有名管道使用便捷,在建立有名管道之后,可以將兩個(gè)進(jìn)程當(dāng)做普通文件來(lái)讀寫(xiě); FIFO嚴(yán)格地遵循

28、先進(jìn)先出規(guī)則,對(duì)管道及FIFO的讀總是從開(kāi)始處返回?cái)?shù)據(jù),對(duì)它們的寫(xiě)則是把數(shù)據(jù)添加到末尾,它們不支持如 lseek()等文件定位操作。圖2.6 無(wú)名管道和有名管道2.4 環(huán)境搭建2.4.1 PC機(jī)環(huán)境搭建(1)安裝系統(tǒng)第一步在windows中安裝好虛擬機(jī),之后運(yùn)行程序。然后通過(guò)NEW Virtuai Machine,打開(kāi)新建虛擬機(jī)向?qū)?,選擇Cunton。點(diǎn)擊nest進(jìn)入下一步,一直選擇nest直到?jīng)]有nest的時(shí)候選擇I will install the operating system later,這一步是要安裝好虛擬機(jī)在安裝系統(tǒng)。在接下來(lái)的界面中選擇linux,同時(shí)Version選擇中選擇R

29、ed Hat Enterprise Linux 5。再次點(diǎn)擊nest。然后在上面選擇RHEL5點(diǎn)擊nest。根據(jù)PC機(jī)是單核還是雙核選擇one和two。點(diǎn)擊nest。根據(jù)內(nèi)存選擇給虛擬機(jī)分配的內(nèi)存大小,點(diǎn)擊nest。之后選擇use bridged networking,也就是網(wǎng)絡(luò)連接方式。繼續(xù)一直點(diǎn)擊nest,直到出現(xiàn)填數(shù)字的地方。那是根據(jù)磁盤(pán)大小分配,一般選擇15G,下面的選擇split virtual disk into 2GB files。Next,選擇安裝位置,推薦在之前安裝的目錄中。點(diǎn)擊next,點(diǎn)擊finish。進(jìn)入虛擬機(jī)啟動(dòng)狀態(tài),這時(shí)顯示找不到操作系統(tǒng)。此時(shí)用虛擬機(jī)的光驅(qū)來(lái)加載R

30、HEL5的安裝鏡像文件,再通過(guò)下拉菜單,在Device中選擇CD/DVD,并在Connect項(xiàng)中Use ISO image file;并在browse中選擇鏡像文件點(diǎn)擊OK。之后重啟虛擬機(jī)。跳過(guò)檢測(cè),進(jìn)入RHEL5的安裝界面,NEXT,點(diǎn)擊簡(jiǎn)體中文。點(diǎn)擊NEXT,鍵盤(pán)語(yǔ)言選擇美國(guó)英語(yǔ)式。點(diǎn)擊下一步,出現(xiàn)安裝號(hào)碼,跳過(guò)安裝號(hào)碼。遇到初始化磁盤(pán)的窗口時(shí)選擇是。默認(rèn)使用原有的分區(qū)方案,點(diǎn)擊下一步,出現(xiàn)確認(rèn)的對(duì)話(huà)框時(shí)選擇是。這時(shí)進(jìn)入了網(wǎng)絡(luò)配置界面,使用默認(rèn)分配,點(diǎn)擊下一步。遇到時(shí)區(qū)問(wèn)題時(shí)根據(jù)地點(diǎn)不同自行更改。之后點(diǎn)擊下一步輸入root賬戶(hù)密碼確認(rèn)。當(dāng)進(jìn)入軟件定制的安裝時(shí)。選定軟件開(kāi)發(fā)與網(wǎng)絡(luò)服務(wù)器這兩項(xiàng)

31、額外功能,現(xiàn)在定制。在軟件包安裝中,將服務(wù)器的選擇還有基本系統(tǒng)全部選上,開(kāi)發(fā)中把老的軟件開(kāi)發(fā)選上。其他用默認(rèn)就可以。單機(jī)下一步,會(huì)開(kāi)始一段檢測(cè),完畢后進(jìn)去配置界面點(diǎn)擊下一步開(kāi)始進(jìn)行RHEL5的安裝。過(guò)程需要時(shí)間,在此之中請(qǐng)耐心等候,安裝結(jié)束后,點(diǎn)擊重新引導(dǎo),之后點(diǎn)擊前進(jìn),將防火墻禁用。前進(jìn),禁用SELinux。之后分別選擇不啟用kdunp,并對(duì)好本地時(shí)間。前進(jìn),創(chuàng)建一個(gè)用戶(hù),測(cè)試聲卡,不安裝附加光盤(pán),整個(gè)安裝到此完成。在下次開(kāi)啟時(shí)就會(huì)看到登陸界面了。(2)搭建交叉編譯環(huán)境在 Linux 平臺(tái)下,要為開(kāi)發(fā)板編譯內(nèi)核,圖形界面 Qtopia,bootloader,還有其他一些應(yīng)用程序,均需要交叉編

32、譯工具鏈。Step1:將光盤(pán)目錄 linux中的 arm-linux-gcc-4.4.3.tgz 復(fù)制到某個(gè)目錄下如 tmp,然后進(jìn)入到該目錄,執(zhí)行解壓命令: #cd /tmp #tar xvzf arm-linux-gcc-4.4.3.tgz C / 注意:C 后面有個(gè)空格,并且 C 是大寫(xiě)的,它是英文單詞“Change”的第一個(gè)字母,在此是改變目錄的意思。 執(zhí)行該命令,將把 arm-linux-gcc 安裝到/usr/loca/arm/4.4.3 目錄。Step2:把編譯器路徑加入系統(tǒng)環(huán)境變量,運(yùn)行命令 #gedit /root/.bashrc 編輯/root/.bashrc 文件,在最后

33、一行添加: export PATH=$PATH: /opt/FriendlyARM/toolschain/4.4.3/bin重新登錄系統(tǒng)(不必重啟機(jī)器,開(kāi)始-logout 即可),使以上設(shè)置生效,在命令行輸入 arm-linux-gcc v,會(huì)出現(xiàn)如下信息,這說(shuō)明交叉編譯環(huán)境已經(jīng)成功安裝。圖2.7 安裝成功圖(3)配置NFS服務(wù)器通過(guò)命令啟動(dòng)和停止 nfs 服務(wù) 在命令行下運(yùn)行: #/etc/init.d/nfs start 這將啟動(dòng) nfs 服務(wù),可以輸入以下命令檢驗(yàn) nfs 該服務(wù)是否啟動(dòng)。 # mount -t nfs localhost: /opt/micro2440 /mnt/ 如果

34、沒(méi)有出現(xiàn)錯(cuò)誤信息,您將可以瀏覽到 /mnt 目錄中的內(nèi)容和/opt/micro2440 是一致的。 使用這個(gè)命令可以停止 nfs 服務(wù): #/etc/init.d/nfs stop設(shè)置共享目錄 運(yùn)行命令 #gedit /etc/exports 編輯 nfs 服務(wù)的配置文件(注意:第一次打開(kāi)時(shí)該文件是空的),添加以下內(nèi)容: /opt/micro2440 *(rw,sync,no_root_squash) 其中: /opt/micro2440表示 nfs 共享目錄,它可以作為開(kāi)發(fā)板的根文件系統(tǒng)通過(guò) nfs 掛接; * 表示所有的客戶(hù)機(jī)都可以?huà)旖哟四夸?rw 表示掛接此目錄的客戶(hù)機(jī)對(duì)該目錄有讀寫(xiě)的權(quán)

35、力 no_root_squash 表示允許掛接此目錄的客戶(hù)機(jī)享有該主機(jī)的 root 身份2.4.2 BOA服務(wù)器的移植嵌入式Linux Web 服務(wù)器的移植方法如下所示:(1)下載BOA-0. 94. 13. tar. gz源碼,下載地址: http: /www. Boa. org/。將下載的文件放入用戶(hù)目錄(如/ccp),解壓#tar xzf Boa-0. 94. 13. tar.gz。(2)生成Makefile文件。Boa-0. 94. 13. tar.gz經(jīng)解壓后生成Boa-0. 94. 13目錄,運(yùn)行該目錄下的src/configure文件,執(zhí)行命令#. /configure。(3)修

36、改Makefile文件: #viMakefile。修改CC = gcc為CC = arm-linux-gcc。修改CPP = gcc-E為CPP = arm-linux-gcc-E。(4)進(jìn)入Boa-0. 94. 13/src目錄,運(yùn)行make,進(jìn)行編譯。執(zhí)行命令#make,得到的可執(zhí)行程序?yàn)锽oa,再執(zhí)行命令#arm-linux-strip Boa將調(diào)試信息剝?nèi)ァ?5)把編譯后的Boa放入根文件系統(tǒng)的/bin目錄下。(6) BOA配置。在BOA源碼Boa-0. 94. 13目錄下已有一個(gè)示例Boa. con,f可以在其基礎(chǔ)上進(jìn)行修改。修改如下:Group:修改Group nogroup為Gr

37、oup 0。ScriptAlias:修改ScriptAlias/cgi-bin/usr/lib/cgi-bin/為ScriptAlias /cgi-bin/var/www/cgi-bin/。ServerName:修改#ServerName www. . here為ServerNamewww. your. org. here。如果文件系統(tǒng)是只讀的(如cramfs),需要在Boa. conf里注釋掉#AccessLog /var/log/Boa/access_log。此外,還需要將mime. types文件復(fù)制至根文件系統(tǒng)/etc目錄下,通常從linux主機(jī)的/etc目錄下直接復(fù)制

38、即可。(7)重新編譯文件系統(tǒng),然后下載到ARM板。完成上述操作后,在A(yíng)RM板上運(yùn)行BOA程序,正常情況下就可以在PC上通過(guò)IE瀏覽器訪(fǎng)問(wèn)開(kāi)發(fā)板上的Web Server。第三章 系統(tǒng)的整體設(shè)計(jì)和實(shí)現(xiàn)3.1 整體設(shè)計(jì)本設(shè)計(jì)的總體思想是通過(guò)wifi網(wǎng)絡(luò)來(lái)控制micro2440.其原理如圖3.1。正如圖中所講,我們利用PC機(jī)發(fā)送信號(hào)通過(guò)網(wǎng)絡(luò)傳到wifi模塊,wifi模塊再發(fā)送信號(hào)到micro2440,之后micro2440控制LED亮滅以及蜂鳴器響停??刂浦笠矔?huì)反饋信號(hào)到micro2440,反饋信號(hào)原路返回到pc機(jī)上告知用戶(hù)。系統(tǒng)整體設(shè)計(jì)框圖如下所示:圖3.1 系統(tǒng)整體設(shè)計(jì)圖3.2 CGI控制模塊設(shè)

39、計(jì)CGI是一個(gè)標(biāo)準(zhǔn)的Web服務(wù)器的交互接口的外部擴(kuò)展應(yīng)用程序,它本身就是一個(gè)服務(wù)器端程序。當(dāng)用戶(hù)的瀏覽器中,在將請(qǐng)求發(fā)送到服務(wù)器時(shí),通常會(huì)請(qǐng)求一個(gè)網(wǎng)頁(yè)文件,但對(duì)于CGI,請(qǐng)求執(zhí)行的CGI程序,它動(dòng)態(tài)生成網(wǎng)頁(yè)代碼。在這種方式中,用戶(hù)可以在瀏覽器上看到實(shí)際上是動(dòng)態(tài)生成的網(wǎng)頁(yè)CGI程序。 CGI程序一般完成Web網(wǎng)頁(yè)中的數(shù)據(jù)處理,查詢(xún)等,可以使用任何編程語(yǔ)言(如Fortran,Pascal中,C等)來(lái)寫(xiě),也可以在服務(wù)器系統(tǒng)上使用了一個(gè)支持表單(form)腳本語(yǔ)言來(lái)寫(xiě)。但對(duì)于BOA的Web服務(wù)器,不支持任何腳本,CGI程序只支持C代碼。用C語(yǔ)言編寫(xiě)CGI程序的執(zhí)行速度,安全性和效率都很高。CGI數(shù)據(jù)是

40、利用標(biāo)準(zhǔn)輸入/輸出STDIN/STD-OUT的方式傳播的。當(dāng)用戶(hù)提交的HtmlForm,Web瀏覽器,首先,在表格的數(shù)據(jù)進(jìn)行編碼,名稱(chēng)/值對(duì)的形式,并將其發(fā)送到Web服務(wù)器,然后由Web服務(wù)器的CGI程序通過(guò)。它的格式為“NAME1=VALUE1&NAME2=VALUE2”。如果參數(shù)值是空白的,那么,取而代之的是一個(gè)“+”特殊字符“XX”,而不是為特殊字符,XX十六進(jìn)制ASCII碼。這些特殊字符包括“”,“=”,以及ASCII值在中國(guó)128個(gè)字符。這種包裝后的信息,如果該方法設(shè)置為POST,則程序從CON獲取數(shù)據(jù) - TENT_LENGTH環(huán)境字長(zhǎng)的數(shù)量,然后從標(biāo)準(zhǔn)輸入讀取字符串,對(duì)應(yīng)的數(shù)據(jù)的

41、長(zhǎng)度可以提交。如果對(duì)GET方法設(shè)置,數(shù)據(jù)將被發(fā)送到QUERY_STRING環(huán)境變量中,通過(guò)調(diào)用函數(shù)的getenv(“QUERY_STRING”)可以被讀取。通過(guò)傳送給Web服務(wù)器的標(biāo)準(zhǔn)輸出(stdout)輸出信息的CGI程序。傳送給Web服務(wù)器的信息可以具有各種格式,通常是一個(gè)純文本或HTML的形式,這樣他們就可以直觀(guān)地得到在頁(yè)面上所要求的結(jié)果。 CGI程序產(chǎn)生的輸出由兩部分組成:報(bào)頭信息和實(shí)際信息。由兩部分之間有一個(gè)空行分隔。主要類(lèi)型的頭信息有3個(gè): Content-type、Location和Status。如果CGI程序要返回HTML,則語(yǔ)句printf(“Contenttype: tex

42、t/htmlnn”)通知服務(wù)器后面輸出的是HTML代碼;如果要返回純文本,則語(yǔ)句printf(“Contenttype: text/htmlnn”)通知服務(wù)器,隨后輸出的是純ASCII文本形式的信息。所以,Content-type用以向服務(wù)器表明返回?cái)?shù)據(jù)的類(lèi)型,希望另一端的客戶(hù)能據(jù)此作處理。如果CGI程序出了問(wèn)題, Status標(biāo)題就用于了解一些信息。各種狀態(tài)代碼代表不同含義。如果CGI程序不希望產(chǎn)生一個(gè)新的HTML返回給用戶(hù),并指向到其他的位置,可以使用位置的標(biāo)題,它會(huì)在瀏覽器引導(dǎo)到一個(gè)新的位置,只要位置。某個(gè)地方,如果你想在原來(lái)的頁(yè)面出現(xiàn)無(wú)論是作為一個(gè)結(jié)果,也可以使用位置,只要輸入鏈接網(wǎng)址

43、后面添加必要的數(shù)據(jù),數(shù)據(jù)和問(wèn)號(hào)(?)來(lái)隔離處理。如果有多個(gè)數(shù)據(jù)時(shí),可以使用NAME1= VAL - UE 1NAME 2=值“的形式。當(dāng)然,做一個(gè)網(wǎng)頁(yè)的腳本(如JavaScript)來(lái)分析數(shù)據(jù),以便把他們?cè)谡_的地方網(wǎng)頁(yè)。圖3.2 程序圖這里采用POST的方法傳輸表單數(shù)據(jù),然后在主函數(shù)中讀取表單值,根據(jù)表單的值對(duì)LED和蜂鳴器進(jìn)行控制。具體過(guò)程如下所示:len = getenv(CONTENT_LENGTH);if(len != NULL) unsigned int content_len = 0;char *data;content_len = atoi(len);data = malloc

44、(content_len + 1);read(0, data, content_len);sscanf(data,led%d,&led_num);sscanf(data,view%d,&flag);free(data);else led_num=0;printf(flag=%dn,flag);3.3 LED控制設(shè)計(jì)在嵌入式Linux中,對(duì)LED的控制需要驅(qū)動(dòng)程序,LED驅(qū)動(dòng)程序中,用戶(hù)直接接觸到的是ioctl控制。應(yīng)用程序?qū)?lái)調(diào)用的ioctl函數(shù)*file為應(yīng)用層返回的文件句柄,cmd為操作命令,arg為傳入的參數(shù)。static int sbc2440_leds_ioctl( struct i

45、node *inode, struct file *file, unsigned int cmd, unsigned long arg) switch(cmd) case 0: case 1: if (arg 4) return -EINVAL; s3c2410_gpio_setpin(led_tablearg, !cmd); return 0; default: return -EINVAL; 本設(shè)計(jì)在config.ini文件中,存儲(chǔ)了LED的狀態(tài),當(dāng)接收到CGI傳輸?shù)膶?duì)LED狀態(tài)的改變時(shí),修改config.ini中存儲(chǔ)的LED狀態(tài),void config(int *led_config,i

46、nt led_num)FILE *fp;if(fp=fopen(config.ini,r+)=NULL)printf(fopen Error!Return/a);exit(1);fscanf(fp,led1=%d,led2=%d,led3=%d,led4=%d,led5=%d,led_config,led_config+1,led_config+2,led_config+3,led_config+4);if(led_num 0)if(led_configled_num-1=1)led_configled_num-1 = 0;else led_configled_num-1 = 1;fseek(

47、fp,7*(led_num-1)+5,SEEK_SET);fprintf(fp,%d,led_configled_num-1);fclose(fp);然后根據(jù)對(duì)LED的實(shí)際狀態(tài)進(jìn)行修改。void led_fun(int *led_config)unsigned int led_num = 0;int led_fd = open(/dev/leds0, O_RDWR);/ open LED Deviceif (led_fd 0)led_fd = open(/dev/leds,0);for (led_num = 0; led_num 4; led_num+)ioctl(led_fd, led_co

48、nfigled_num, led_num);close(led_fd);3.4 蜂鳴器控制設(shè)計(jì)Linux支持多種IPC機(jī)制,其中就有信號(hào)與管道。通過(guò)網(wǎng)頁(yè)來(lái)控制蜂鳴器就是通過(guò)管道機(jī)制來(lái)實(shí)現(xiàn)的,其中蜂鳴器是共享資源。mypwm是后臺(tái)程序, 它啟動(dòng)的時(shí)候就創(chuàng)建了一個(gè)有名管道/tmp/pwm-control(這個(gè)名字是可以自由改動(dòng)),并一直檢測(cè)輸入該管道的數(shù)據(jù),根據(jù)不同的參數(shù)(蜂鳴器開(kāi)關(guān)狀態(tài)key和頻率freq)來(lái)改變蜂鳴器的狀態(tài)。main.cgi是一個(gè)網(wǎng)關(guān)程序,它接收從網(wǎng)頁(yè)發(fā)送過(guò)來(lái)的字符形式指令并對(duì)這些指令進(jìn)行賦值轉(zhuǎn)換為實(shí)際數(shù)字,然后調(diào)用echo命令輸送到管道/tmp/pwm-control以此實(shí)現(xiàn)

49、對(duì)蜂鳴器的控制。1、打開(kāi)蜂鳴器void open_buzzer(void)fd = open(/dev/pwm, 0);if (fd = 0) ioctl(fd, PWM_IOCTL_STOP);close(fd);fd = -1;3、設(shè)置蜂鳴器頻率void set_buzzer_freq(int freq)/ this IOCTL command is the key to set frequencyint ret = ioctl(fd, PWM_IOCTL_SET_FREQ, freq);if(ret 0) perror(set the frequency of the buzzer);e

50、xit(1);3.5 用戶(hù)界面設(shè)計(jì)用戶(hù)界面設(shè)計(jì)盡量保證界面布局簡(jiǎn)潔,邏輯性好,用戶(hù)容易下手。對(duì)重要的操作返回結(jié)果。界面盡量整體美觀(guān)。圖3.3 本次設(shè)計(jì)界面圖3.6系統(tǒng)調(diào)試1、編譯文件編譯main.cgi: #arm-linux-gcc -o main.cgi main.c led.c 編譯pwmk控制程序:#arm-linuxg-cc o mypwm mypwm.c2、將文件復(fù)制到開(kāi)發(fā)板(1)在開(kāi)發(fā)板中建立以下目錄:/home/www/cig-bin和/home/www/image(2)修改BOA服務(wù)器的配置文件boa.conf網(wǎng)頁(yè)文件路徑DocumentRoot /home/www CGI腳

51、本路徑ScriptAlias /cgi-bin/ /home/www/cgi-bin/ (3)將main.cgi復(fù)制到目錄/home/www/cgi-bin(4)將mypwm文件復(fù)制到目錄/home/www3、將WIFI模塊連接到開(kāi)發(fā)板上 將WIFI模塊連接到開(kāi)發(fā)板上,并與無(wú)線(xiàn)路由器相連,獲取IP與PC機(jī)組成局域網(wǎng)。 圖3.4 WIFI模塊與開(kāi)發(fā)板相連4、后臺(tái)運(yùn)行mypwm控制蜂鳴器的程序mypwm需要在后臺(tái)運(yùn)行并創(chuàng)建有名管道pwm-control#nohup ./mypwm &5、登錄系統(tǒng)在PC機(jī)上運(yùn)行Web瀏覽器(如IE,Google Chrome等),在地址欄輸入開(kāi)發(fā)板的IP地址(本設(shè)計(jì)

52、所使用開(kāi)發(fā)板的IP地址為30)。進(jìn)入控制頁(yè)面,顯示當(dāng)前時(shí)間。圖3.5 顯示時(shí)間蜂鳴器控制,單擊open打開(kāi)蜂鳴器,close關(guān)閉蜂鳴器。圖3.6 蜂鳴器控制LED控制,四個(gè)按鈕依次對(duì)應(yīng)開(kāi)發(fā)板上的四個(gè)LED,點(diǎn)擊按鈕控制LED的亮滅圖3.7 LED控制第四章 總結(jié)與期望4.1 課題工作的總結(jié)經(jīng)過(guò)一段時(shí)間的工作和學(xué)習(xí)。終于完成了基于micro2440的wifi網(wǎng)絡(luò)的設(shè)計(jì),項(xiàng)目所要求的功能全部完成。通過(guò)這次設(shè)計(jì)得到很多的知識(shí),不單單是課題中涉及到的那些軟硬件知識(shí)還有自學(xué)的能力以及接觸新鮮事物的經(jīng)驗(yàn)。接手題目以后從互聯(lián)網(wǎng)上對(duì)micro2440進(jìn)行了詳細(xì)的學(xué)習(xí),并通過(guò)實(shí)物對(duì)其進(jìn)一步

53、的了解。通過(guò)了解我認(rèn)識(shí)到micro2440是一門(mén)當(dāng)今應(yīng)用非常流行的技術(shù),整個(gè)產(chǎn)業(yè)每年都會(huì)有巨大的產(chǎn)值并且在不斷的更新。在閱讀了大量的資料后確定了題目的設(shè)計(jì)方案。整個(gè)設(shè)計(jì)中應(yīng)用了Boa Web服務(wù)器,CGI程序,linux語(yǔ)言等多種課本之外的知識(shí),在學(xué)習(xí)這些知識(shí)中所遇到的種種困難和教訓(xùn)都是我在此次設(shè)計(jì)中得到的寶貴經(jīng)驗(yàn)。這些經(jīng)驗(yàn)是:(1) 設(shè)計(jì)之前應(yīng)該進(jìn)行大量的資料收集和分析,確定一個(gè)清晰的設(shè)計(jì)思路。(2) 在編寫(xiě)軟件時(shí),不僅要實(shí)現(xiàn)功能,還要盡可能的優(yōu)化易懂。(3) 很多時(shí)候靠自己很難研究明白,詢(xún)問(wèn)他人也是一個(gè)很好的解決辦法。(4) 因?yàn)榈谝淮谓佑|這些知識(shí),導(dǎo)致在編程過(guò)程中遇到了重重困難,上手很慢

54、。(5) 信號(hào)問(wèn)題,所以導(dǎo)致網(wǎng)盤(pán)經(jīng)常失靈。隨著課題的進(jìn)展,對(duì)micro2440的了解越來(lái)越深入。認(rèn)為micro2440的功能今后會(huì)進(jìn)一步發(fā)展。Micro2440今后也會(huì)得到更加廣泛的運(yùn)用。 設(shè)計(jì)完成了,但是所謂活到老學(xué)到老,我堅(jiān)信通過(guò)這次設(shè)計(jì)學(xué)習(xí)的知識(shí)獲得的經(jīng)驗(yàn)以及得到的心得都將成為我以后成功路上的基石。4.2 功能拓展在當(dāng)今這個(gè)網(wǎng)絡(luò)發(fā)展飛快的今天,wifi網(wǎng)絡(luò)的應(yīng)用會(huì)越來(lái)越廣泛。隨著現(xiàn)在社會(huì)互聯(lián)網(wǎng)的發(fā)達(dá),通過(guò)wifi網(wǎng)絡(luò)去控制家電等各種電子產(chǎn)品成為一種趨勢(shì)?,F(xiàn)在很多工作也圍繞著wifi展開(kāi)。在本設(shè)計(jì)中,以micro2440為模板,通過(guò)wifi網(wǎng)絡(luò)來(lái)控制其LED燈亮以及蜂鳴器響。其中運(yùn)用Boa Web服務(wù)器,CGI程序以及l(fā)inux語(yǔ)言等多種新興軟件。雖然在本設(shè)計(jì)中僅僅利用控制系統(tǒng)發(fā)出指令,通過(guò)wifi網(wǎng)絡(luò)產(chǎn)生驅(qū)動(dòng)信號(hào),從而控制LED燈以及蜂鳴器。但是在未來(lái)的生活中,w

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論