嵌入式linux遠(yuǎn)程控制需求分析_第1頁(yè)
嵌入式linux遠(yuǎn)程控制需求分析_第2頁(yè)
嵌入式linux遠(yuǎn)程控制需求分析_第3頁(yè)
嵌入式linux遠(yuǎn)程控制需求分析_第4頁(yè)
嵌入式linux遠(yuǎn)程控制需求分析_第5頁(yè)
已閱讀5頁(yè),還剩2頁(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、通過(guò)在已有嵌入式硬件基礎(chǔ)上,利用操作系統(tǒng)ARMLinux建立嵌入式平臺(tái),并在PC機(jī)上由Linux操作系統(tǒng)編寫(xiě)和編譯boa、CGI等一系列應(yīng)用程序,并移植到嵌入式平臺(tái)上,組建嵌入式家庭網(wǎng)關(guān),從而構(gòu)建成一個(gè)基于ARMLinux嵌入式平臺(tái)的、使用Boa作為Web服務(wù)器的遠(yuǎn)程在線控制系統(tǒng), 系統(tǒng)可以通過(guò)IE頁(yè)面對(duì)各種模擬家電設(shè)備進(jìn)行動(dòng)態(tài)的交互控制,在真正意義上實(shí)現(xiàn)了通過(guò)互聯(lián)網(wǎng)進(jìn)行遠(yuǎn)程控制,實(shí)現(xiàn)了智能家電遠(yuǎn)程控制系統(tǒng)的設(shè)計(jì)目標(biāo)。1、 描述系統(tǒng);(1) 遠(yuǎn)程的LED控制(2) 遠(yuǎn)程步進(jìn)電機(jī)控制(3) 遠(yuǎn)程電機(jī)控制要求能夠通過(guò)Internet B/S(瀏覽器/服務(wù)器)結(jié)構(gòu)進(jìn)行訪問(wèn)。加上相應(yīng)的CGI程序能夠通

2、過(guò)GPRS完成控制能夠通過(guò)客戶端完成C/S(客戶端/服務(wù)器)結(jié)構(gòu)的訪問(wèn)2、 可行性分析(使用什么樣的技術(shù)來(lái)完成)根據(jù)現(xiàn)有的試驗(yàn)硬件平臺(tái)GEC2410,對(duì)其軟件系統(tǒng)的移植,根據(jù)硬件電路圖,設(shè)計(jì)相應(yīng)的驅(qū)動(dòng)程序。 B/S體系結(jié)構(gòu)的網(wǎng)絡(luò)控制,可以通過(guò)移植Boa server服務(wù)器和服務(wù)器端CGI(通用網(wǎng)關(guān)接口,用于提交客戶端的請(qǐng)求)本文的主要研究思路本設(shè)計(jì)通過(guò)分析各種已有的嵌入式家庭網(wǎng)關(guān)設(shè)計(jì)事例,總體擬采用以ARM 核的32 位嵌入式微處理器為硬件平臺(tái),結(jié)合通信技術(shù),通過(guò)移植嵌入式操作系統(tǒng),并在其上開(kāi)發(fā)相應(yīng)的驅(qū)動(dòng)程序、應(yīng)用程序和嵌入式WEB 服務(wù)器實(shí)現(xiàn)一個(gè)方便、實(shí)用的家庭網(wǎng)關(guān)。主體研究?jī)?nèi)容如下:1)

3、收集、分析國(guó)內(nèi)外嵌入式系統(tǒng)的標(biāo)準(zhǔn)文檔與資料,特別是嵌入式Linux 系統(tǒng)的資料,對(duì)其關(guān)鍵技術(shù)、特點(diǎn)和應(yīng)用前景進(jìn)行比較、分析,形成自己的結(jié)論;2) 基于嵌入式開(kāi)發(fā)系統(tǒng)硬件,通過(guò)移植、完善,建立擁有源代碼的嵌入式Linux系統(tǒng)平臺(tái);3) 建立擁有源代碼的TCP/IP 協(xié)議棧;4) 建立擁有源代碼的WEB服務(wù)支持,并實(shí)現(xiàn)遠(yuǎn)程交互式網(wǎng)頁(yè)訪問(wèn)。5) 支持遠(yuǎn)程控制的智能家電系統(tǒng)原型的設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)的軟件結(jié)構(gòu)系統(tǒng)采用在嵌入式操作系統(tǒng)(本系統(tǒng)采用ARMLinux)的基礎(chǔ)下通過(guò)WEB 方式,即利用B/S 結(jié)構(gòu),在嵌入式設(shè)備上運(yùn)行一個(gè)支持腳本或CGI 功能的WEB 服務(wù)器,生成動(dòng)態(tài)頁(yè)面,在用戶端只需要通過(guò)WEB

4、 瀏覽器以網(wǎng)頁(yè)訪問(wèn)的方式對(duì)嵌入式設(shè)備進(jìn)行查看,并進(jìn)行相應(yīng)控制。其基本軟件結(jié)構(gòu)如圖3。圖3 系統(tǒng)軟件結(jié)構(gòu)主要工作流程如下;1) 首先, 由客戶端發(fā)出請(qǐng)求給WEB 服務(wù)器。2) WEB 服務(wù)器對(duì)客戶請(qǐng)求進(jìn)行判斷。如果該請(qǐng)求是一個(gè)HTML 文件或圖像等靜態(tài)文件,WEB 服務(wù)器就將文件直接傳送給客戶端的瀏覽器。如果客戶請(qǐng)求是一個(gè)動(dòng)態(tài)請(qǐng)求, WEB 服務(wù)器將激活相應(yīng)CGI 的程序。3) WEB 服務(wù)器守護(hù)進(jìn)程創(chuàng)建一個(gè)子進(jìn)程, 該子進(jìn)程將CGI 請(qǐng)求的有關(guān)數(shù)據(jù)設(shè)置成環(huán)境變量,在外部CGI 程序與服務(wù)器間建立兩條標(biāo)準(zhǔn)的I/O 數(shù)據(jù)通道。4) WEB 服務(wù)器啟動(dòng)URL 指定的CGI 程序。CGI 程序通過(guò)環(huán)境

5、變量和標(biāo)準(zhǔn)輸人Stdin 讀取客戶端的輸入數(shù)據(jù)并進(jìn)行處理, 并可根據(jù)請(qǐng)求調(diào)用相應(yīng)的外部程序。5) CGI 程序處理完畢后通過(guò)標(biāo)準(zhǔn)輸出Stdout,將處理結(jié)果傳遞給服務(wù)器守護(hù)進(jìn)程, 守護(hù)進(jìn)程再將處理結(jié)果以HTML 格式傳送回客戶端。(三) 系統(tǒng)的軟件的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)1. 交互式WEB 服務(wù)器的實(shí)現(xiàn)(1)WEB 服務(wù)器技術(shù)分析常用的嵌入式WEB 服務(wù)器軟件有l(wèi)ighttpd、thttpd、shttp 和boa。通過(guò)軟件性能、CGI 功能等比較,由于boa 源代碼開(kāi)放、性能優(yōu)秀、支持CGI,特別適合應(yīng)用在嵌入式系統(tǒng)中,且最大的優(yōu)點(diǎn)就是速度快,則本設(shè)計(jì)采用boa 構(gòu)建WEB 服務(wù)器。Boa 是一款運(yùn)行

6、在類(lèi)Unix 系統(tǒng)中的小型WEB 服務(wù)器,特別適合在嵌入式場(chǎng)合使用,它是一個(gè)單任務(wù)的WEB Sever 服務(wù)器,它產(chǎn)生獨(dú)立的進(jìn)程來(lái)處理CGI 程序,因此占用較少的系統(tǒng)資源,boa 的優(yōu)點(diǎn)在于其快速性和可靠性。它與其他服務(wù)器的區(qū)別是:調(diào)用返回結(jié)果調(diào)用返回結(jié)果 返回結(jié)果傳遞參數(shù)調(diào)用CGIStdoutStdin客戶機(jī)WEB瀏覽器WEB服務(wù)器CGI程序驅(qū)動(dòng)程序硬件設(shè)備11沒(méi)有CGI 程序設(shè)置REMOTE_HOST 環(huán)境變量;在boa 中沒(méi)有Server-Side(SSI)項(xiàng),要產(chǎn)生動(dòng)態(tài)的往頁(yè)只有通過(guò)CGI。(2)boa 服務(wù)器的體系結(jié)構(gòu)Boa 服務(wù)器處理用戶請(qǐng)求并返回?cái)?shù)據(jù)給瀏覽器,其動(dòng)態(tài)的訪問(wèn)服務(wù)器需

7、要用到CGI,其體系結(jié)構(gòu)如圖4。圖4 boa 服務(wù)器體系結(jié)構(gòu)(3)boa 服務(wù)器的工作流程Boa 服務(wù)器首先進(jìn)行初始的配置,然后建立socket 連接,調(diào)用select 函數(shù)來(lái)監(jiān)視文件描述符的狀態(tài),通過(guò)調(diào)用相應(yīng)函數(shù)來(lái)處理請(qǐng)求。其工作流程如圖5。圖5 boa 工作流程12(4)boa 服務(wù)器的實(shí)現(xiàn)boa 的實(shí)現(xiàn)如下:第一步,完成boa 程序的移植。從/下載Boa 源碼,在Linux操作系統(tǒng)下將其解壓并進(jìn)入源碼目錄的src 子目錄。# tar -zxvf boa-0.94.13.tar.gz# cd boa-0.94.13/src# ./configure 生成M

8、akefile 文件。然后修改Makefile 文件,找到CC=/gcc,將其改成CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc,(其作用是編輯編譯器路徑,而在本機(jī)上路徑為:/usr/local/arm/2.95.3/bin/)找到CPP = gccE,將其改成CPP =/usr/local/arm/2.95.3/bin/ arm-linux-gccE,保存退出。運(yùn)行make 進(jìn)行編譯,在boa-0.94.13/src 目錄下就得到了boa 可執(zhí)行指令,并將調(diào)試信息剝?nèi)ァ? make# /usr/local/arm/2.95.3/bin/arm-linu

9、x-strip boa第二步,完成boa 的配置,使其能支持CGI 程序的運(yùn)行。boa 需要在/etc 目錄下建立一個(gè)boa 目錄,里面放入Boa 的主要配置文件boa.conf。在boa 源碼目錄下已有一個(gè)示例boa.conf,可以在其基礎(chǔ)上進(jìn)行修改,本文只對(duì)修改的地方做下介紹,其具體情況可參附錄A。1) 作為哪個(gè)用戶運(yùn)行,即它擁有該用戶的權(quán)限,一般都是nobody,需要在/etc/passwd 中有nobody 用戶。即:User nobody但在后來(lái)的實(shí)踐中發(fā)現(xiàn),該用戶無(wú)法實(shí)現(xiàn)POST(),無(wú)法上傳文件,無(wú)法訪問(wèn)共享內(nèi)存,所以在本系統(tǒng)中,修改 User nobody 為 User roo

10、t 。2) 作為哪個(gè)用戶組運(yùn)行,即它擁有該用戶組的權(quán)限,一般都是nogroup,要在/etc/group 文件中有nogroup 組。即:Group nogroup3) 服務(wù)器名字,默認(rèn)是注釋掉,本系統(tǒng)則需要。ServerName 4) 指明CGI 腳本的虛擬路徑對(duì)應(yīng)的實(shí)際路徑。一般所有的CGI 腳本都要13放在實(shí)際路徑里,用戶訪問(wèn)執(zhí)行時(shí)輸入站點(diǎn)+虛擬路徑+CGI 腳本名。該項(xiàng)默認(rèn)為未打開(kāi),執(zhí)行Boa 會(huì)異常退出,提示“gethostbyname:No such file ordirectory”,所以必須打開(kāi),需執(zhí)行如下命令。ScriptAlias /cgi-bin/

11、 /var/www/cgi-bin/其它默認(rèn)設(shè)置即可。在本系統(tǒng)中,還需要?jiǎng)?chuàng)建日志文件所在目錄/var/log/boa,創(chuàng)建HTML 文檔的主目錄/var/www,將mime.types 文件拷貝到/etc 目錄,創(chuàng)建CGI 腳本所在目錄/var/www/cgi-bin/。mime.types 文件用來(lái)指明不同文件擴(kuò)展名對(duì)應(yīng)的MIME 類(lèi)型,一般可以直接從Linux 主機(jī)上拷貝一個(gè),大部分也都是在主機(jī)的/etc 目錄下。第三步,測(cè)試Boa 能否正常工作,靜態(tài)HTML 頁(yè)面能否正常訪問(wèn),CGI 腳本能否正常運(yùn)行。將boa 可執(zhí)行程序和其他配置文件轉(zhuǎn)入到嵌入式系統(tǒng)中后,運(yùn)行boa,即可通過(guò)其他機(jī)器就

12、可以訪問(wèn)了。如在IE 中輸入30(嵌入式系統(tǒng)IP)就可以訪問(wèn)到index 頁(yè)面了。2. 2. CGI 程序設(shè)計(jì)在大多數(shù)嵌入式WEB 應(yīng)用中,都需要提供動(dòng)態(tài)內(nèi)容顯示或交互式操作,以便對(duì)設(shè)備進(jìn)行遠(yuǎn)程控制。而簡(jiǎn)單的靜態(tài)頁(yè)面所提供的內(nèi)容是不變的,也無(wú)法完成交互操作。公共網(wǎng)關(guān)接口(CGI)能夠從根本上解決這種情況,使WEB 的客戶端和服務(wù)器之間具有交互功能,使得嵌入式系統(tǒng)的遠(yuǎn)程控制得以實(shí)現(xiàn)。CGI 是一個(gè)用于定義WEB 服務(wù)器與外部擴(kuò)展應(yīng)用程序之間通信方式的標(biāo)準(zhǔn)或接口規(guī)范。它規(guī)定了一組標(biāo)準(zhǔn)的環(huán)境變量和參數(shù)格式,定義了從HTML 腳本到服務(wù)器上執(zhí)行進(jìn)程的一個(gè)與平臺(tái)無(wú)關(guān)的網(wǎng)關(guān)。CGI 接口提供在超文本(HTML)文件編寫(xiě)時(shí),可以結(jié)合其他外部的程序語(yǔ)言(如C 語(yǔ)言),用來(lái)解釋處理來(lái)自客戶端輸入的表單信息,并在服務(wù)器上產(chǎn)生相應(yīng)的處理,或者將由此產(chǎn)生的處理結(jié)果作為響應(yīng),用恰當(dāng)?shù)男畔@示一個(gè)新的客戶界面,達(dá)到信息交互的目的。用戶輸入數(shù)據(jù)可以通過(guò)三種方式傳給CGI 程序:通過(guò)環(huán)境變量(GET 方式)、通過(guò)命令行參數(shù)方式或者通過(guò)CGI 程序的標(biāo)準(zhǔn)輸入方式(stdin,POST 方式)。當(dāng)使用GET 方式時(shí),CGI 通過(guò)環(huán)境變量QUERY_STRING 獲取客戶端傳輸數(shù)據(jù),格式如“name=user”、“mima=m121”,在表單(Form)中使用GET 方法,

溫馨提示

  • 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ù)網(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)論