基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)_第1頁
基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)_第2頁
基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)_第3頁
基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)_第4頁
基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng) 第33頁 共34頁 基于web的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)學(xué)生:劉 仁 指導(dǎo)老師:蔡 碩 摘要: 隨針對(duì)當(dāng)前國內(nèi)國外嵌入式服務(wù)器技術(shù)研究和發(fā)展情況的分析,本報(bào)告提出了將 WEB 服務(wù)器、嵌入式系統(tǒng)以及當(dāng)前的一些嵌入式實(shí)驗(yàn)板板載功能進(jìn)行融合的設(shè)計(jì)思想。設(shè)計(jì)了結(jié)合 WEB 服務(wù)器技術(shù)的嵌入式監(jiān)控系統(tǒng)。該系統(tǒng)具有瀏覽交互式網(wǎng)頁,對(duì)嵌入式平臺(tái)進(jìn)行監(jiān)視和控制等功能。通過本套嵌入式WEB 服務(wù)器系統(tǒng),用戶可以通過 HTTP 協(xié)議方便的訪問相應(yīng)的嵌入式平臺(tái)進(jìn)行有效監(jiān)視的同時(shí)還可以進(jìn)行實(shí)時(shí)的有效控制。該系統(tǒng)對(duì)硬件要求極低、響應(yīng)速度快、安全性好、可擴(kuò)展性強(qiáng)等優(yōu)點(diǎn),具有較高的實(shí)際應(yīng)用價(jià)值

2、。該系統(tǒng)在智能家居、嵌入式組網(wǎng)等方面的應(yīng)用將有較廣闊的發(fā)展前途。關(guān)鍵詞:ARM 嵌入式系統(tǒng);嵌入式 web 監(jiān)控;boa 服務(wù)器;CGI 編程;Linux 操作系統(tǒng)關(guān)鍵詞:自動(dòng)化、奏樂器、VHDL、數(shù)字電路Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embedded internet control system basedon the Web service which integra

3、tes the web server,embedded technology and thefunctions on the embedded experiment Board.This system has the function of browsing the web pages,monitoring theembedded Board and so on.With this embedded WEB server,the users can watchthe embedded system conveniently according the HTTP protocol.At the

4、sametime the users can also monitor the ystem.This system have a lot of longtageslike a low request of the hardware,limited time of response and a stable status.Wewill see that this kind of system used in the application of intelligent familyelectronics,embedded neting and so on would have a good de

5、velopment.Keywords: ARM Embedded System;Embedded Web Server System;BoaServer;CGI Programing;Linux Operating System1 引 言嵌入式系統(tǒng)課程設(shè)計(jì)是本專業(yè)在學(xué)習(xí)完 C 語言、LINUX 操作系統(tǒng)、嵌入式系統(tǒng)原理與接口設(shè)計(jì)、嵌入式操作系統(tǒng)原理之后的專業(yè)課程設(shè)計(jì),屬于專業(yè)課內(nèi)容。通過課程設(shè)計(jì)建立嵌入式系統(tǒng)主體環(huán)節(jié),嵌入式系統(tǒng)的最小結(jié)構(gòu)和系統(tǒng)應(yīng)用設(shè)計(jì)基本技能,培養(yǎng)分析和解決一些簡(jiǎn)單的實(shí)際問題的能力,為今后畢業(yè)設(shè)計(jì)奠定基礎(chǔ)。隨著嵌入式技術(shù)的發(fā)展和高速寬帶網(wǎng)絡(luò)的普及, 利用網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控已為人

6、們廣泛接受, 嵌入式網(wǎng)絡(luò)監(jiān)控技術(shù)正是在此條件下逐步發(fā)展成熟起來的。 用戶使用 Web 瀏覽器, 通過以太網(wǎng)遠(yuǎn)程訪問內(nèi)置 Web 服務(wù)器的監(jiān)控?cái)z像機(jī), 不但可以實(shí)現(xiàn)對(duì)現(xiàn)場(chǎng)的遠(yuǎn)程視頻監(jiān)控, 而且可以向監(jiān)控現(xiàn)場(chǎng)發(fā)送指令。 在整個(gè)系統(tǒng)的實(shí)現(xiàn)過程中, 嵌入式 Web 服務(wù)器起著十分重要的作用。本課題就是基于該項(xiàng)技術(shù),最終編程實(shí)現(xiàn)通過網(wǎng)絡(luò)控制下位機(jī)嵌入式控制器的電機(jī)啟動(dòng)和停止。1.1研究目的和意義1、通過嵌入式課程設(shè)計(jì),熟練掌握 C 語言的編程方法。基于 WEB 的遠(yuǎn)程監(jiān)控的實(shí)現(xiàn),CGI 的編寫和使用,將理論聯(lián)系到實(shí)踐中去,提高我們的動(dòng)腦和動(dòng)手的能力。2、通過基于 WEB 的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì),掌握

7、 S3C2410 實(shí)驗(yàn)箱,直流電機(jī)的工作原理,BOA 服務(wù)器的使用,CGI 的使用和簡(jiǎn)單程序的編寫及調(diào)試方法,最終提高我們的動(dòng)手實(shí)踐能力。3、本課題的研究目的是用 BOA 服務(wù)器、CGI、IE 瀏覽器設(shè)計(jì)一個(gè)通過 IE 瀏覽器監(jiān)控電機(jī)的系統(tǒng),能夠通過兩個(gè)簡(jiǎn)單的按鍵對(duì)電機(jī)進(jìn)行啟動(dòng)和停止的控制,并能夠在 IE 瀏覽器上看到電機(jī)的當(dāng)前狀態(tài)。4、由于基于 WEB 的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)將成為今后遠(yuǎn)程監(jiān)控技術(shù)發(fā)展的主流方向,所以需要設(shè)計(jì)出簡(jiǎn)單實(shí)用,讓人們更滿意的產(chǎn)品。1.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容1基本要求本課題主要設(shè)計(jì)和研究基于WEB的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng),要求在保證可靠運(yùn)行的前提下,電路設(shè)計(jì)盡量簡(jiǎn)潔緊湊,

8、以減小成本、提高系統(tǒng)的效率和安全性。2應(yīng)解決的問題1)設(shè)計(jì)系統(tǒng)網(wǎng)絡(luò)方案2)分析網(wǎng)絡(luò)程序結(jié)構(gòu)和應(yīng)用程序的使用方法3)編程實(shí)現(xiàn)嵌入式系統(tǒng)服務(wù)器功能4)編程實(shí)現(xiàn)嵌入式系統(tǒng)聯(lián)網(wǎng)功能5)編程實(shí)現(xiàn)通過網(wǎng)絡(luò)控制下位機(jī)嵌入式控制器的電機(jī)啟動(dòng)和停止3擴(kuò)展功能演奏時(shí)可以通過按鍵選擇是手動(dòng)演奏還是自動(dòng)演奏,手動(dòng)演奏是通過按鍵進(jìn)行簡(jiǎn)易樂曲的演奏。2 總體方案設(shè)計(jì)2.1 整體方案設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)是基于嵌入式系統(tǒng)和 WEB 服務(wù)器結(jié)合的思想開發(fā)的,其網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖 2.1 所示圖 2.1 系統(tǒng)網(wǎng)絡(luò)拓?fù)鋱D針對(duì)本次課程設(shè)計(jì)提出的系統(tǒng)設(shè)計(jì)如圖 2.2 所示圖 2.2 系統(tǒng)方案框圖2.2 硬件系統(tǒng)設(shè)計(jì)2.3.1 核心處理器的選

9、擇核心處理芯片需要完成處理和支持整個(gè)系統(tǒng)的功能需求,通過運(yùn)行 BOA 服務(wù)器要實(shí)施的接收來自各個(gè)客戶端的請(qǐng)求和信息,并根據(jù)獲得的請(qǐng)求和信息進(jìn)行相應(yīng)的后臺(tái)處理以及信息的反饋。為完成上述功能,實(shí)現(xiàn)服務(wù)器正常運(yùn)行,對(duì)處理芯片進(jìn)行選型,對(duì)比現(xiàn)有處理芯片的優(yōu)缺點(diǎn),選擇 ARM9 S3C2410X 芯片作為設(shè)計(jì)開發(fā)嵌入式服務(wù)器系統(tǒng)的核心處理芯片。S3C2410X 微處理器是一款由 Samsung 公司為手持設(shè)備設(shè)計(jì)的低功耗、高集成度的基于ARM920T 核的微處理器,為了降低系統(tǒng)總成本和減少外圍器件,這款芯片還集成了以下部件:16KB 指令 Cache、16KB 數(shù)據(jù) Cache、MMU、外部存儲(chǔ)器控制器

10、、LCD 控制器、NAND FLASH 控制器、4 個(gè) DMA 通道、3 個(gè) UART 通道、1 個(gè) IIC 總線控制器、1 個(gè) IIS總線控制器、4 個(gè) PWM 定時(shí)器、1 個(gè)內(nèi)部定時(shí)器、通用 IO 口、實(shí)時(shí)時(shí)鐘、8 通道 10 位ADC 和觸摸屏接口、USB 主、USB 從、SD/MMC 卡接口等。2.3 軟件環(huán)境選擇2.3.1 操作系統(tǒng)的選擇當(dāng)選定了硬件系統(tǒng)后,為了配合硬件達(dá)到系統(tǒng)的最優(yōu)控制要求,對(duì)市面上常用的嵌入式系統(tǒng)進(jìn)行分析比較。(1) 價(jià)格比較:Linux 是完全免費(fèi)的操作系統(tǒng),只需遵循 GPL 聲明,不需支付任何費(fèi)用;WinCE 是微軟的商用嵌入式操作系統(tǒng),使用它需要支付 Win

11、CE 及其開發(fā)環(huán)境的費(fèi)用,開發(fā)出來的每套產(chǎn)品也需交納一定費(fèi)用。uc/osII 系統(tǒng),可以免費(fèi)用于學(xué)習(xí)或科研,但開發(fā)商使用產(chǎn)品或銷售都是收費(fèi)的。(2) 開放性比較:Linux 是源代碼完全開放的操作系統(tǒng),可以自由下載,并且在遵循GPL 聲明的前提下可以自由地修改、移植,為系統(tǒng)的開發(fā)和調(diào)試帶來極大的便利;winCE是部分源碼開放的商用操作系統(tǒng),如果要修改其中的代碼,需獲得微軟公司的授權(quán);uc/osII 也是開放的實(shí)時(shí)操作系統(tǒng)。(3) 文件系統(tǒng)的比較:Linux 支持絕大部分文件系統(tǒng),只需選擇相應(yīng)的文件系統(tǒng)即可;WinCE 僅支持 Windows 系列的 FAT16、有限文件系統(tǒng);uc/osII 本

12、身沒有包括文件系統(tǒng),需購買或移植。Linux 與 ARM 處理器從以上可以看出,Linux 系統(tǒng)在諸多方面都存在優(yōu)勢(shì),而且本身的 ARM 處理器與 Linux 也有著緊密的聯(lián)系。因此采用 Linux 操作系統(tǒng)。2.3.2 服務(wù)器的選擇典型的嵌入式 Web 服務(wù)器有 Boa 和 thttpd 兩種,它們和 Apache 等高性能的 Web 服務(wù)器主要的區(qū)別在于它們一般是單進(jìn)程服務(wù)器,只有在完成一個(gè)用戶請(qǐng)求后才能響應(yīng)另一個(gè)用戶的請(qǐng)求,而無法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場(chǎng)合里已經(jīng)足夠了。Boa 是一個(gè)非常小巧的 Web 服務(wù)器,可執(zhí)行代碼只有約 60KB。它是一個(gè)單任務(wù) Web服務(wù)器,只能依次完

13、成用戶的請(qǐng)求,而不會(huì) fork 出新的進(jìn)程來處理并發(fā)連接請(qǐng)求。但 Boa支持 CGI,能夠?yàn)?CGI 程序 fork 出一個(gè)進(jìn)程來執(zhí)行。Boa 的設(shè)計(jì)目標(biāo)是速度和安全,在其站點(diǎn)公布的性能測(cè)驗(yàn)中,Boa 的性能要好于 Apache 服務(wù)器。經(jīng)過上述的對(duì)比和判斷,選擇Boa 作為系統(tǒng)的嵌 入式服務(wù)器。綜合以上的討論以及選擇,根據(jù)系統(tǒng)的實(shí)際需求,最終確定了采用 S3C2410X 為核心處理器,Linux 為嵌入式操作系統(tǒng),boa 為服務(wù)器以及相應(yīng)的 http 瀏覽器的系統(tǒng)設(shè)計(jì)方案。3 硬件設(shè)計(jì)3.1 系統(tǒng)硬件平臺(tái)介紹我們所介紹的硬件平臺(tái)是基于 ARM 體系結(jié)構(gòu),由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-

14、NetARM2410-S 實(shí)驗(yàn)儀器。 UP-NetARM2410-S 的 CPU 為 ARM920T 內(nèi)核的三星S3c2410 芯片,由于有 MMU(內(nèi)存管理單元)可以運(yùn)行標(biāo)準(zhǔn)的 ARM-LINUX 內(nèi)核。通過這個(gè)平臺(tái),我們可以實(shí)現(xiàn)嵌入式 LINUX 中的針對(duì)無 MMU 的開發(fā)過程。3.2 s3c2410 芯片介紹圖 3.1 芯片結(jié)構(gòu)圖3.3 ARM 處理器的外圍設(shè)備3.3.1 電源電路設(shè)備提供 12v 的電源,經(jīng) LM1085-3.3V 和 AS1117-1.8V 分別得到 3.3V 和 1.8V 的工作電壓。開發(fā)板上的芯片多數(shù)使用了 3.3V 電壓,而 1.8V 是供給 S3C2410 內(nèi)

15、核使用的。5V 電壓供給 LCD、電機(jī)、總線等電路使用。圖 3.2 電源電路3.3.2 硬件復(fù)位電路硬件復(fù)位電路由IMP811T構(gòu)成,實(shí)現(xiàn)對(duì)電源電壓的監(jiān)控和手動(dòng)復(fù)位操作。2410-S主板復(fù)位電路設(shè)置專用邏輯:IMP811T 的復(fù)位電平可以使CPU JTAG(nTRST和板級(jí)系統(tǒng)(nRESET)全部復(fù)位;來自仿真器的ICE_nSRST 信號(hào)只能使板級(jí)復(fù)位;來自仿真器的ICE_nTRST 可以使JTAG(nTRST)復(fù)位,通過跳線選擇是否使板級(jí)nRESET復(fù)位。nRESET反相后得到RESET 信號(hào)。硬件復(fù)位電路如圖3.3所示圖3.3 硬件復(fù)位4 軟件設(shè)計(jì)4.1 設(shè)計(jì)思想基于 web 的嵌入式監(jiān)控

16、系統(tǒng)設(shè)計(jì)主要的功能有簡(jiǎn)單的網(wǎng)頁瀏覽,實(shí)現(xiàn)簡(jiǎn)單應(yīng)用功能(客戶端與服務(wù)器的交互)以及服務(wù)器端的控制功能。因此軟件的設(shè)計(jì)分為三個(gè)部分:boa 服務(wù)器的搭建、應(yīng)用程序設(shè)計(jì)和驅(qū)動(dòng)程序的加載。4.2 BOA 服務(wù)器的簡(jiǎn)介與搭建4.2.1 嵌入式 Web 服務(wù)器 Boa 的特點(diǎn)Boa 是一款單任務(wù)的 HTTP 服務(wù)器, 與其他傳統(tǒng)的 Web 服務(wù)器不同的是當(dāng)有連接請(qǐng)求到來時(shí), 它并不為每個(gè)連接單獨(dú)創(chuàng)建進(jìn)程, 也不通過復(fù)制自身進(jìn)程來處理多鏈接, 而是通過建立 HTTP 請(qǐng)求列表來處理多路 HTTP 連接請(qǐng)求, 同時(shí)它只為 CGI 程序創(chuàng)建新的進(jìn)程,這樣就在最大程度上節(jié)省了系統(tǒng)資源, 這對(duì)嵌入式系統(tǒng)來說至關(guān)重要

17、。同時(shí)它還具有自動(dòng)生成目錄、自動(dòng)解壓文件等功能, 因此 Boa 具有很高的 HTTP 請(qǐng)求處理速度和效率, 在嵌入式系統(tǒng)中具有很高的應(yīng)用價(jià)值。4.2.2 Boa 的功能實(shí)現(xiàn)嵌入式 Web 服務(wù)器 Boa 和普通 Web 服務(wù)器一樣, 能夠完成接收客戶端請(qǐng)求、分析請(qǐng)求、響應(yīng)請(qǐng)求、向客 戶端返回請(qǐng)求結(jié)果等任務(wù)。 它的工作過程主要包括:( a) 完成 Web 服務(wù)器的初始化工作, 如創(chuàng)建環(huán)境變量、創(chuàng)建 TCP 套接字、綁定端口、開始偵聽、進(jìn)入循環(huán)結(jié)構(gòu), 以及等待接收客戶瀏覽器的連接請(qǐng)求;( b) 當(dāng)有客戶端連接請(qǐng)求時(shí),Web 服務(wù)器負(fù)責(zé)接收客戶端請(qǐng)求, 并保存相關(guān)請(qǐng)求信息;( c) 在接收到客戶端的

18、連接請(qǐng)求之后,分析客戶端請(qǐng)求, 解析出請(qǐng)求的方法、URL 目標(biāo)、可選的查詢信息及表單信息, 同時(shí)根據(jù)請(qǐng)求做出相應(yīng)的處理;( d)Web 服務(wù)器完成相應(yīng)處理后, 向客戶端瀏覽器發(fā)送響應(yīng)信息, 關(guān)閉與客戶機(jī)的TCP 連接。嵌入式 Web 服務(wù)器 Boa 根據(jù)請(qǐng)求方法的不同,做出不同的響應(yīng)。如果請(qǐng)求方法為HEAD, 則直接向?yàn)g覽器返回響應(yīng)首部;如果請(qǐng)求方法為 GET, 則在返回響應(yīng)首部的同時(shí), 將客戶端請(qǐng)求的 URL 目標(biāo)文件從服務(wù)器上讀出, 并且發(fā)送給客戶端瀏覽器;如果請(qǐng)求方法為 POST, 則將客戶發(fā)送過來的表單信息傳送給相應(yīng)的 CGI 程序, 作為 CGI 的參數(shù)來執(zhí)行 CGI 程序, 并將執(zhí)

19、行結(jié)果發(fā)送給客戶端瀏覽器。 Boa 的功能實(shí)現(xiàn)也是通過建立連接、綁定端口、進(jìn)行偵聽、請(qǐng)求處理等來實(shí)現(xiàn)的。4.2.3 BOA 的搭建與移植(1)準(zhǔn)備源代碼、解壓軟件包,安裝源代碼到 boa 網(wǎng)站 下載 boa-0.94.13.tar.gz 源代碼,或者使用光盤的boa-0.94.13.tar.gz 軟件包。$ tar xzvf boa-0.94-13.tar.gz(2)進(jìn)入 src 目錄,編譯源代碼。解壓后 src 目錄下有 Makefile.in 文件,但沒有 Makefile 文件,為了編譯源代碼,需要先生成 Makefile 文件,在 src 目錄下運(yùn)行

20、 configure 命令$ ./configure生成的 Makefile 文件是針對(duì) X86 平臺(tái)的,為了生成能夠在 ARM 上運(yùn)行的 boa,需要修改 Makefile 文件。將 Makefile 的 3132 行內(nèi)容:CC = gccCPP = gcc E應(yīng)用(在交叉編譯時(shí)使用):然后輸入 make 命令進(jìn)行編譯,在 src 目錄下就會(huì)生成 boa 文件。$ make然后將該文件添加到文件系統(tǒng)中,重新下載文件系統(tǒng)。如果不幸出現(xiàn)icky Linux kernelbug!的錯(cuò)誤,請(qǐng)將 src 下 boa.c 的第 226 行注釋掉,重新編譯下載即可。(3)安裝 boa 服務(wù)器主要是配置 b

21、oa 服務(wù)器。boa 啟動(dòng)時(shí)需要一個(gè)配置文件 boa.conf,該文件的缺省目錄由src/defines.h 文件的 SERVER_ROOT 定義,或者在啟動(dòng) boa 的時(shí)候通過參數(shù)-c指定。其中指定的默認(rèn)目錄是:/etc/boa/(4)登錄 boa 服務(wù)器在 PC 機(jī)瀏覽器地址欄輸入目標(biāo)系統(tǒng)的 IP 地址(1),訪問存在于目標(biāo)系統(tǒng)中的網(wǎng)頁。4.3 應(yīng)用程序設(shè)計(jì)4.3.1 程序設(shè)計(jì)依賴關(guān)系通過對(duì)系統(tǒng)的分析以及對(duì)服務(wù)器的了解,系統(tǒng)確定了以下的軟件開發(fā)系統(tǒng)方案,如圖4.1 所示圖 4.1 軟件依賴關(guān)系4.3.2 應(yīng)用程序流程圖乘法功能圖 4.2 乘法功能實(shí)現(xiàn)流程圖

22、程序段電機(jī)程序的流程圖圖 4.3 電機(jī)部分流程圖4.4 驅(qū)動(dòng)程序設(shè)計(jì)驅(qū)動(dòng)部分主要有兩部分組成:電機(jī)驅(qū)動(dòng)和網(wǎng)卡驅(qū)動(dòng),其中以電機(jī)驅(qū)動(dòng)為主。由于在本套系統(tǒng)設(shè)計(jì)中,不可能每次開機(jī)都要由操作人員將驅(qū)動(dòng)加入內(nèi)核,這樣既不方便又費(fèi)時(shí)費(fèi)力,所以系統(tǒng)采用將驅(qū)動(dòng)編譯進(jìn)內(nèi)核的模式。4.4.1 電機(jī)驅(qū)動(dòng)電機(jī)驅(qū)動(dòng)程序流程1、開啟設(shè)備時(shí),配置 IO 口為定時(shí)器工作方式2、配置定時(shí)器的各控制寄存器3、在 s3c2410_dcm_ioctl 中提供調(diào)速功能接口4、應(yīng)用程序 dcm_main.c 中調(diào)用5、實(shí)現(xiàn)直流電機(jī)速度的調(diào)整4.4.2 驅(qū)動(dòng)加載過程以電機(jī)驅(qū)動(dòng)為例:編譯直流電機(jī)cd /arm2410s/kernel-2410

23、smake menuconfig進(jìn)入 Main Menu / Character devices 菜單,選擇 DC MOTOR模塊加載:編譯內(nèi)核模塊:make depmakemake modules直流電機(jī)模塊的編譯結(jié)果為:/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o2、加載模塊在超級(jí)終端中,通過加載 NFS 運(yùn)行編譯結(jié)果:mount t nfs 21:/arm2410s /hostInsmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o5 系統(tǒng)整體調(diào)

24、試與分析系統(tǒng)的調(diào)試分了 x86 和 arm 架構(gòu)下的調(diào)試,其中以進(jìn)階方式進(jìn)行開發(fā)測(cè)試,根據(jù)實(shí)現(xiàn)難度分為三步:第一步先實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁瀏覽,然后通過乘法操作的簡(jiǎn)單設(shè)計(jì)來實(shí)現(xiàn)人機(jī)交互最后通過電機(jī)控制的設(shè)計(jì)完成整個(gè)服務(wù)器監(jiān)控系統(tǒng)的設(shè)計(jì)。5.1 linux 平臺(tái)下的調(diào)試5.1.1 簡(jiǎn)單網(wǎng)頁瀏覽的調(diào)試與分析結(jié)果:網(wǎng)頁正常顯示分析:遇到的問題主要集中在 BOA 服務(wù)器的搭建上,經(jīng)過仔細(xì)學(xué)習(xí)參考資料成功解決了問題。5.1.2 基于 web 的乘法操作的調(diào)試與分析結(jié)果:網(wǎng)頁可以正常顯示但在調(diào)試的開始階段遇到了程序不能正常運(yùn)行的問題,但經(jīng)過同一起努力在兩天后解決了問題。分析:存在的問題主要是服務(wù)器調(diào)用結(jié)構(gòu)不理解導(dǎo)

25、致的 cgi 程序無法正常調(diào)用,結(jié)果顯示為亂碼等問題,在正確理解了服務(wù)器、cgi-c 編程的原理后,使網(wǎng)頁能夠正確運(yùn)作。5.1.3 電機(jī)控制的調(diào)試與分析由于牽涉到硬件設(shè)備的調(diào)試所以在 X86 環(huán)境下只進(jìn)行了程序的編寫和編譯,而沒有實(shí)際的進(jìn)行調(diào)試。5.2 嵌入式平臺(tái)下的調(diào)試5.2.1 客戶端與服務(wù)器交互的調(diào)試與分析由于/etc 目錄只允許讀不允許寫,但我們搭建的 BOA 服務(wù)器的運(yùn)行要求在/etc 目錄下有 mime.types(用來指明不同文件的擴(kuò)展名對(duì)應(yīng)的 MIME 類型)并且還要在/etc/boa/下有相應(yīng)的配置文件 BOA.conf,則需要我們重新生成根文件系統(tǒng)等,將我們需要的文件填到相

26、應(yīng)的位置,然后再重新生成鏡像文件并燒寫文件系統(tǒng)。將編寫好的 html 程序(名稱改為 index.html,因?yàn)檫@是輸入地址后默認(rèn)的訪問文件) 放到目錄 var/www 下。需要的 c 語言程序用 arm-linux-gcc 編譯生成相應(yīng)的 cgi 程序,到目錄/var/www/cgi-bin 下。啟動(dòng) boa 服務(wù)器,在根目錄下輸入 ifconfig 命令可以查找到服務(wù)器的 ip 地址,在客戶端的地址欄輸入該地址,就可以訪問到相應(yīng)的網(wǎng)頁,通過該網(wǎng)頁用戶可以監(jiān)控電機(jī)。5.2.2 電機(jī)控制的調(diào)試與分析Linux 下的直流電機(jī)程序包括模塊驅(qū)動(dòng)程序和應(yīng)用程序兩部分。Module 驅(qū)動(dòng)程序?qū)崿F(xiàn)了以下方

27、法:static struct file_operations s3c2410_dcm_fops = owner:THIS_MODULE,open: s3c2410_dcm_open,ioctl: s3c2410_dcm_ioctl,release:s3c2410_dcm_release,;開啟設(shè)備時(shí),配置 IO 口為定時(shí)器工作方式:(GPBCON &= 0xf; GPBCON |= 0xa;配置定時(shí)器的各控制寄存器:( TCFG0 &= (0x00ff0000);TCFG0 |= (DCM_TCFG0);TCFG1 &= (0xf);TCNTB0 = DCM_TCNT

28、B0; /* less than 10ms */TCMPB0 = DCM_TCNTB0/2;TCON &=(0xf);TCON |= (0x2);TCON &=(0xf);TCON |= (0x19); )在 s3c2410_dcm_ioctl 中提供調(diào)速功能接口:case DCM_IOCTRL_SETPWM:return dcm_setpwm(int)arg);應(yīng)用程序 dcm_main.c 中調(diào)用:ioctl(dcm_fd, DCM_IOCTRL_SETPWM, (setpwm * factor);實(shí)現(xiàn)直流電機(jī)速度的調(diào)整。a.編譯直流電機(jī)模塊cd /arm2410s/ker

29、nel-2410smake menuconfig進(jìn)入 Main Menu / Character devices 菜單,選擇 DC MOTOR 為模塊加載:b.編譯內(nèi)核模塊:make depmakemake modules直流電機(jī)模塊的編譯結(jié)果為:/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.oc. 編譯應(yīng)用程序cd /arm2410s/exp/basic/10_dcmotor/make生成 dcm_maind.掛載驅(qū)動(dòng)模塊insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.

30、oe.運(yùn)行程序mount t nfs 192.168.0.xxx:/arm2410s /hostinsmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.ocd /host/exp/basic/10_dcmotor/./dcm_main程序運(yùn)行結(jié)果:直流電機(jī)轉(zhuǎn)動(dòng) 1 秒,停轉(zhuǎn) 1 秒。由于是根據(jù)原有變速程序稍做改動(dòng)完成的程序,所以遇到的問題不是很多,經(jīng)過幾次嘗試就得到了期望的結(jié)果。5.3 調(diào)試結(jié)果分析5.3.1 調(diào)試結(jié)果1、靜態(tài)網(wǎng)頁圖 5.1 靜態(tài)網(wǎng)頁2、乘法網(wǎng)頁圖 5.2 乘法網(wǎng)頁3、電機(jī)控制網(wǎng)頁圖 5.3 電機(jī)控制網(wǎng)頁圖 5.4 返回結(jié)

31、果5.3.2 結(jié)果分析經(jīng)過 x86 下的調(diào)試和基于 ARM 的下載與調(diào)試后,系統(tǒng)能夠?qū)崿F(xiàn)靜態(tài)網(wǎng)頁瀏覽,簡(jiǎn)單人機(jī)交互以及電機(jī)控制的功能,系統(tǒng)工作穩(wěn)定,響應(yīng)速度快,組網(wǎng)方便快捷,如果與 DNS 服務(wù)器或者 WINS 服務(wù)器相結(jié)合即可實(shí)現(xiàn)用主機(jī)名就能登錄相應(yīng)平臺(tái)的功能。6 設(shè)計(jì)總結(jié)經(jīng)過三個(gè)周的學(xué)習(xí)與努力,經(jīng)過系統(tǒng)分析、方案論證、 硬件和軟件設(shè)計(jì)、 調(diào)試 等階段完成了基于 web 的嵌入式遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)制作。在這三個(gè)周的課程設(shè)計(jì)中,我得到了老師和同學(xué)很大的幫助,有時(shí)候覺得進(jìn)行不下去了,老師或同學(xué)一句話就能讓我茅塞頓開。即使聽不懂,他們也會(huì)耐心的講解。在系統(tǒng)的設(shè)計(jì)制作過程中,確實(shí)遇到了各種各樣的問題

32、,如調(diào)試思路正確但是沒有能夠進(jìn)行找到合適的方法進(jìn)行進(jìn)一步的實(shí)驗(yàn),設(shè)計(jì)中對(duì)于程序的編寫以及目錄結(jié)構(gòu)的認(rèn)知上存在偏差,其主要原因還是基礎(chǔ)功不扎實(shí),把握系統(tǒng)的能力不足,這為我們以后的學(xué)習(xí)和工作提了一個(gè)醒。在問題的解決過程中,也提高了組員的動(dòng)手動(dòng)腦能力,學(xué)到了許多在書本上學(xué)不到的知識(shí)。在具體的設(shè)計(jì)當(dāng)中解決了諸如 boa 服務(wù)器的搭建,C 程序的修改及 CGI編程的理解,程序的調(diào)試和系統(tǒng)的整體認(rèn)識(shí)等問題,小組成員收獲很大。致謝在這次課程設(shè)計(jì)中,學(xué)校和學(xué)院給予了大力的支持,提供了與設(shè)計(jì)有關(guān)的環(huán)境,方便了課程設(shè)計(jì)的順利進(jìn)行。在這其中我確實(shí)學(xué)到了很多知識(shí),在此僅代表個(gè)人衷心的感謝學(xué)校和學(xué)院的大力支持。本論文是

33、在指導(dǎo)老師蔡爍的悉心指導(dǎo)和嚴(yán)格要求下完成的。在整個(gè)課程設(shè)計(jì)過程中,蔡爍老師時(shí)時(shí)督促和引導(dǎo),并在設(shè)計(jì)過程中進(jìn)行了方向指導(dǎo),在總體方向不出錯(cuò)的基礎(chǔ)上,施展自己的所學(xué),發(fā)揮個(gè)人的所長(zhǎng)。他不僅在學(xué)習(xí)上和生活上給予了我們多方面的指導(dǎo)和無微不至的關(guān)懷,而且他淵博的學(xué)識(shí)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度、孜孜不倦的工作作風(fēng)和寬以待人的處事風(fēng)格使我終身受益,并且還從中學(xué)會(huì)了分析問題和解決問題的方法此外,在本次設(shè)計(jì)過程中,還得到了其他老師和的熱情關(guān)心和幫助,值此論文完成之際,謹(jǐn)向老師表示崇高的敬意和最誠摯的謝意。參考文獻(xiàn)1鄭靈翔編著 嵌入式 LINUX 系統(tǒng)設(shè)計(jì) 北京航空航天大學(xué) 2008 年2孫紀(jì)坤、張小全編著 嵌入式 LIN

34、UX 系統(tǒng)開發(fā)技術(shù)詳解-基于 ARM人民郵電出版社 2007.9、3王進(jìn)德 編著 嵌入式 LINUX 程序設(shè)計(jì)與應(yīng)用案例 中國電力出版社 2007.54鄭慕德 編著 嵌入式微型計(jì)算機(jī)系統(tǒng)實(shí)例教程-ARM 與 LINUX 科學(xué)出版社2006.75劉淼 編著 嵌入式系統(tǒng)接口設(shè)計(jì)與 LINUX 驅(qū)動(dòng)程序開發(fā) 北京航空航天大學(xué)出版社,2006.56魏洪興等編著 嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā) II-基于 ARM9 微處理器與 LINUX 操作系統(tǒng) 清華大學(xué)出版社 2005.127魏洪興等編著 嵌入式系統(tǒng)設(shè)計(jì)與實(shí)例開發(fā)實(shí)驗(yàn)教材 II-基于 ARM9 微處理器與LINUX 操作系統(tǒng)清華大學(xué)出版社 2005.12

35、8金敏等編著 嵌入式組成、原理與設(shè)計(jì)編程 人民郵電出版社 2007.6附錄 1 主要程序清單乘法網(wǎng)頁的HTML表單:<html><head><title>測(cè)試</title></head><body><h1 align="center">&nbsp;測(cè)試</h1><FORM ACTION="/cgi-bin/mul1.cgi"><P>請(qǐng)?jiān)谙旅嫣钊氤藬?shù)和被乘數(shù),按下確定后可以看到結(jié)果 <INPUT NAME="m&

36、quot; SIZE="5"><INPUT NAME="n" SIZE="5"><BR><INPUT TYPE="SUBMIT" VALUE="確定"></FORM><p align="center"> </p></body></html>乘法程序清單:#include <stdio.h>#include <stdlib.h>int main(void

37、)char *data;long m,n;printf("%s%c%c","Content-Type:text/html;charset=gb2312nn",13,10);printf("<TITLE>乘法結(jié)果</TITLE> ");printf("<H3>乘法結(jié)果</H3> ");data = getenv("QUERY_STRING");if(data = NULL)printf("<P>錯(cuò)誤!數(shù)據(jù)沒有被輸入或者數(shù)據(jù)傳輸有

38、問題");else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)printf("<P>錯(cuò)誤!輸入數(shù)據(jù)非法。表單中輸入的必須是數(shù)字。");elseprintf("<P>%ld和%ld的成績(jī)是:%ld。",m,n,m*n);return 0;電機(jī)網(wǎng)頁的HTML表單:<html><head><title>監(jiān)控電機(jī)</title></head><body><form name

39、="form1" action="/cgi-bin/dianji.cgi" method="POST"><table align="center"><tr><td align="center" colspan="2"></td></tr><tr><td align="right">輸入start啟動(dòng)電機(jī),輸入stop停止電機(jī)</td><td>&

40、lt;input type="text" name="Username"></td></tr><tr><td align="right"><input type="submit" value="確定"></td><td align="right"><input type="reset" value="取消"></td><

41、;/tr></table></form></body></html>電機(jī)程序清單:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <fcntl.h>#include <sys/ioctl.h>#define DCM_IOCTRL_SETPWM#define DCM_TCNTB0#define ERROR printf("error")static int dcm_fd=-1;char *DCM_DEV="/dev/dcm/0raw"char* getcgidata(FILE* fp,char* requestmethod);int main()char *input;char *req_method;char name5;int i=0;int j=0;int k;int status=1;in

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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)論