999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式web服務(wù)器的實(shí)現(xiàn)

2008-12-31 00:00:00
電腦知識(shí)與技術(shù) 2008年34期

摘要:介紹一種嵌入式web服務(wù)器的設(shè)計(jì)方案。該系統(tǒng)采用Altera公司的Cyclone1C20的平臺(tái)及軟核NiosII,采用uClinux操作系統(tǒng)配置成嵌入式服務(wù)器 。該服務(wù)器能支持工業(yè)設(shè)備、家用電器連入互連網(wǎng),具有成本低、設(shè)計(jì)簡(jiǎn)單、容易升級(jí),并具有很好的動(dòng)態(tài)web頁面功能。能很好地滿足家用電器和工業(yè)設(shè)備接入互聯(lián)網(wǎng)的需求。

關(guān)鍵詞:嵌入式Web服務(wù)器;NiosII cpu;uClinux操作系統(tǒng);CGI

中圖分類號(hào):TP368文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)34-1865-02

Embedded Web Server Based on Nios II

SHU Bin1,2

(1.Jiangsu University, Zhenjiang 212013, China; 2.Zhenjiang College, Zhenjiang 212003, China)

Abstract:A embedded web server design is presented in this paper. In this system, a CYCLONE1C20 is applied as a control unit.An NIOS II embedded system is built on FPGA. An uClinux operation system is transplanted to it. With the embedded web server, the function of long-distance real-time monitor is successfully realized. Server can support the industry equipment and information appliance to access into Internet.It is low cost,simple design and easy to upgrade.

Key words: embedded web; niosⅡcpu; uClinux; CGI

1 引言

隨著計(jì)算機(jī)、通信、自動(dòng)控制、微電子等技術(shù)的發(fā)展,電器設(shè)備上網(wǎng)已經(jīng)成為現(xiàn)實(shí)。與傳統(tǒng)的單片機(jī)相比,嵌入式設(shè)備重要的突破之一就是解決了設(shè)備和internet的互連問題。近年來,嵌入式技術(shù)飛速發(fā)展,種類繁多、功能強(qiáng)大的CPU和片外連接,為網(wǎng)絡(luò)應(yīng)用提供了穩(wěn)定、可靠的硬件環(huán)境;嵌入式操作系統(tǒng)對(duì)這些硬件和以太網(wǎng)也有很好的支持,操作系統(tǒng)的移植大為簡(jiǎn)化,這些就為嵌入式web服務(wù)器的實(shí)現(xiàn)提供了方便。嵌入式web服務(wù)器將監(jiān)控系統(tǒng)中的各種協(xié)議的數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的TCP/IP協(xié)議格式,以便用戶通過以太網(wǎng)遠(yuǎn)程訪問web服務(wù)器,實(shí)現(xiàn)對(duì)設(shè)備的監(jiān)控。

該文結(jié)合快速發(fā)展的嵌入式技術(shù),給出了一種基于嵌入式網(wǎng)絡(luò)化遠(yuǎn)程監(jiān)控系統(tǒng)的web服務(wù)器實(shí)現(xiàn)方案。它采用uClinux操作系統(tǒng),通過CGI實(shí)現(xiàn)了管理人員通過對(duì)網(wǎng)頁上的表單和按鈕的操作來對(duì)對(duì)象的遠(yuǎn)程測(cè)量和控制。

2 系統(tǒng)的硬件組成

一個(gè)完整的嵌入式Web服務(wù)器(Embedded Web Server,EWS)硬件系統(tǒng)以具有Web通信功能的嵌入式微處理器為核心。硬件結(jié)構(gòu)圖如圖1 。

圖1 硬件結(jié)構(gòu)圖

根據(jù)網(wǎng)絡(luò)服務(wù)的要求,選用:

1) Altera公司的CYCLONE1C20,其性價(jià)比高,支持Nios II,芯片有20060個(gè)邏輯(LE)單元數(shù),64個(gè)存儲(chǔ)容量為4K的RAM塊(128×36位),2個(gè)鎖相環(huán), 最大用戶I/O引腳達(dá)301個(gè)。

2) SRAM:兩個(gè)256K×16位的異步SRAM器件(IDT71V416S)作為系統(tǒng)的通用數(shù)據(jù)存儲(chǔ)器。

3) SDRAM:16MB帶PC100功能和自刷新方式的SDRAM器件(MT48LC4M32B2)作為系統(tǒng)內(nèi)存。

4) Flash:8MB Flash存儲(chǔ)器件作為系統(tǒng)程序存儲(chǔ)器。

5) CF卡:16M的1型Compact Flash(CF)卡,作系統(tǒng)硬盤。

6) 以太網(wǎng)接口:選用LAN91C111。

7) 串口:其電平經(jīng)過MAX232轉(zhuǎn)換后形成RS232總線。

在QUARTUS II軟件中,通過在SOPC Builder系統(tǒng)中添加合適的CPU內(nèi)核、存儲(chǔ)器以及外圍模塊就可以構(gòu)建Nios II系統(tǒng)了。本系統(tǒng)中需加入的主要部件包括:Nios II標(biāo)準(zhǔn)內(nèi)核、SDRAM接口、SRAM接口、FLASH接口、CF卡接口、多個(gè)串口模塊、JATG接口等。添加完畢后,系統(tǒng)會(huì)自動(dòng)生成Nios II CPU。在QUARTUS II開發(fā)環(huán)境中對(duì)該CPU進(jìn)行編譯,并分配FPGA引腳后,就可以啟用QUARTUSII自帶的編程器將CPU下載到FPGA中了。

3 系統(tǒng)的軟件層及關(guān)鍵技術(shù)

軟件結(jié)構(gòu)可分為設(shè)備驅(qū)動(dòng)程序、uClinux內(nèi)核以及系統(tǒng)應(yīng)用程序三部分。其中設(shè)備驅(qū)動(dòng)程序位于最低層。用于驅(qū)動(dòng)控制各個(gè)外圍設(shè)備。uClinux內(nèi)核是操作系統(tǒng)的核心。它除了完成進(jìn)程調(diào)度、內(nèi)存管理等功能外,還集中管理設(shè)備的驅(qū)動(dòng)程序,為系統(tǒng)應(yīng)用層提供統(tǒng)一的編程接口,從而簡(jiǎn)化了用戶應(yīng)用程序的編寫。最上層是應(yīng)用程序?qū)樱彩怯脩襞c系統(tǒng)的交互接口。

3.1 ?滋Linux操作系統(tǒng)移植

Microtronix 公司專門為Nios II處理器提供了?滋Linux操作系統(tǒng)。uClinux的內(nèi)核要比原Linux 2.6內(nèi)核小的多,但卻保留了Linux 操作系統(tǒng)的穩(wěn)定性、優(yōu)異的網(wǎng)絡(luò)能力及多文件系統(tǒng)支持等主要優(yōu)點(diǎn)。在PC機(jī)上安裝Microtronix Linux軟件后,就可以在NIOSII IDE開發(fā)環(huán)境中移植?CLinux操作系統(tǒng)了。操作系統(tǒng)可以分為兩個(gè)部分:內(nèi)核和文件系統(tǒng)。在配置內(nèi)核的時(shí)候,加入的相應(yīng)的設(shè)備驅(qū)動(dòng)。在Nios II IDE中分別編譯好內(nèi)核和文件系統(tǒng)后即可將它們的二進(jìn)制文件下載到FLASH中。

3.2 嵌入式Web服務(wù)器配置

采用uClinux操作系統(tǒng)下的Boa作為測(cè)控系統(tǒng)的嵌入式Web Server。Boa是一個(gè)單線程的HTTP服務(wù)器,它不同于其它傳統(tǒng)的Web服務(wù)器,它不為每個(gè)連接創(chuàng)建一個(gè)進(jìn)程,只有當(dāng)CGI程序運(yùn)行時(shí)才創(chuàng)建一個(gè)新的進(jìn)程。另外,Boa體積非常小,通常只有幾十K字節(jié),非常適合于嵌入式系統(tǒng)中使用。因此系統(tǒng)通過移植Boa來實(shí)現(xiàn)Web服務(wù)器功能 。根據(jù)具體情況,對(duì)Boa做相應(yīng)的配置修改。主要有:

l) Document Root及ChRoot更改為mnt/ideo/www,此目錄為boa服務(wù)器所使用的目錄。

2) Alias選項(xiàng)中添加: “mnt/ideo/www”這樣可以省略服務(wù)器文件夾的絕對(duì)路徑,增加了系統(tǒng)的安全性。

3) 同樣為了增加CGI腳本的安全性同樣要進(jìn)行映射,即修改“ScriptAlias”選項(xiàng):“mnt/ideo/www/cgi-bin”。

在Nios II IDE中修改后保存此文件,在經(jīng)過編譯之后,將文件系統(tǒng)下載到Flash中。則下一次運(yùn)行的時(shí)候,修改內(nèi)容就會(huì)生效。

3.3 CGI技術(shù)

CGI是人們?cè)趯で骔eb服務(wù)器與客戶機(jī)之間信息簡(jiǎn)單交互的過程中形成的一個(gè)公用的標(biāo)準(zhǔn)。在嵌入式Web開發(fā)中,可以使它作為服務(wù)器應(yīng)用程序和處理函數(shù)之間的一個(gè)接口。要使用CGI程序,一般使用HTML中的FORM結(jié)構(gòu):

內(nèi)容
其METHOD屬性指明提交數(shù)據(jù)的方法(POST或GET),由ACTION屬性指定相關(guān)的CGI程序。處理表單的CGI程序主要包括3部分,即數(shù)據(jù)輸入、數(shù)據(jù)處理和處理結(jié)果輸出。

3.3.1 信息進(jìn)入CGI程序

1) 數(shù)據(jù)的URL編碼。Web瀏覽器向服務(wù)器發(fā)送數(shù)據(jù)采用URL編碼的形式進(jìn)行,參數(shù)形式為:變量名1=變量值1變量名2=變量值2……,其中“變量名”是Form中的name屬性值;而 “變量值”是用戶輸入的數(shù)據(jù),或者所選擇的數(shù)據(jù)。同時(shí)用戶數(shù)據(jù)中的所有空格換成“+”號(hào)。

2) 獲得輸入數(shù)據(jù)。根據(jù)屬性METHOD指明提交數(shù)據(jù)的方法。服務(wù)器程序接收數(shù)據(jù)的途徑有環(huán)境變量和標(biāo)準(zhǔn)輸入。通過環(huán)境變量REQUEST_METHOD來判斷傳送數(shù)據(jù)的方式是GET還是POST。在“METHOD=GET”時(shí),表單的數(shù)據(jù)保存在環(huán)境變量QUERY_STRING中,用庫函數(shù)getenv()來把環(huán)境變量的值作為一個(gè)字符串來存取,如果是 “METHOD=POST”,表單信息將通過STDIN來讀取,使用環(huán)境變量CONTENT_LENGTH,被傳送的長(zhǎng)度放在此變量中。

3.3.2 數(shù)據(jù)處理在GET方式下的解碼相當(dāng)于對(duì)QUERY_STRING的解碼。首先從QUERY_STRING變量中讀出字符串。隨后對(duì)整個(gè)字符串進(jìn)行掃描,在“”處斷開參數(shù)串,變量名是等號(hào)前的內(nèi)容,而變量值是等號(hào)后的內(nèi)容。循環(huán)分開所有的變量;在POST方式下,首先用atoi ( getenv (“CONTENT_LENGTH”))得到傳送數(shù)據(jù)的長(zhǎng)度,再結(jié)合feof (stdin),采用與GET下解碼類似的方式,循環(huán)分開所有的變量。

3.3.3表單數(shù)據(jù)處理結(jié)果輸出

CGI程序通過stdout將輸出信息傳送給Web服務(wù)器。傳送的格式通常是純文本或者HTML檔。輸出的信息包括兩部分:

1) 輸出HTTP響應(yīng)的頭部信息由若干ASCII文本構(gòu)成,并用一個(gè)空行“n”將頭部信息信息體隔開。返回?cái)?shù)據(jù)的類型很多,它們均MIME(Multipurpose InternetMail Extensions)類型。

2) 輸出HTTP響應(yīng)的正文內(nèi)容,也就是CGI程序的執(zhí)行結(jié)果。

需要注意的是,在編寫過cgi程序并成功編譯后,要將其移動(dòng)至cF卡相關(guān)目錄,也就是上面所介紹的boa web server所設(shè)置的“/home/httpd/cgi”中,并將其后綴更改為“.cgi”,屬性改為“可執(zhí)行”,這樣,web server才可以正確識(shí)別并執(zhí)行此cgi程序。

4 嵌入式web服務(wù)器的實(shí)例

下面是一個(gè)利用該服務(wù)器對(duì)遠(yuǎn)程設(shè)備溫度測(cè)量的例子。在上位機(jī)的網(wǎng)頁瀏覽器上輸入該嵌入式web服務(wù)器的網(wǎng)址,就可以打開該系統(tǒng)的主頁。在網(wǎng)頁上(圖3 監(jiān)控主頁)按要求輸入監(jiān)控號(hào)后,將執(zhí)行temp.cgi.exe程序采集溫度,并將溫度以網(wǎng)頁元素的形式返回給瀏覽器,如圖4所示。

在網(wǎng)頁中插入如下代碼:

則瀏覽器將在60 s后自動(dòng)刷新本頁,向服務(wù)器重發(fā)讀取數(shù)據(jù)請(qǐng)求,以獲得工業(yè)現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)溫度情況。

5 結(jié)束語

本文介紹的基于Nios II和?滋Linux操作系統(tǒng)的嵌入式Web服務(wù)器達(dá)到了預(yù)期效果,用戶可以通過IE瀏覽器瀏覽存儲(chǔ)在FLASH芯片中的網(wǎng)頁。根據(jù)具體的控制要求,設(shè)計(jì)不同的cgi程序,達(dá)到不同的目的。CPU本身是以軟核的方式實(shí)現(xiàn),其功能可根據(jù)需要進(jìn)行定制,設(shè)計(jì)簡(jiǎn)單、容易升級(jí), 靈活方便。

參考文獻(xiàn):

[1] 彭澄廉,周博,邱衛(wèi)東,等.挑戰(zhàn)Soc—基于NIOS的SOPC設(shè)計(jì)與實(shí)踐[M].北京:清華大學(xué)出版社,2004.

[2] 黃布毅,李冬富.動(dòng)態(tài)Web技術(shù)在實(shí)時(shí)監(jiān)測(cè)系統(tǒng)中的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2007,5-2,37-39.

[3] 楊剛,32位嵌入式系統(tǒng)與Soc設(shè)計(jì)導(dǎo)論[M].北京:電子工業(yè)出版社,2006.

[4] 農(nóng)孫博,范正剛.LINUX平臺(tái)下的WEB編程[M].北京:人民郵電出版社,2000.

主站蜘蛛池模板: 国产午夜福利片在线观看| 欧美另类视频一区二区三区| 日本欧美视频在线观看| 国产精品无码AⅤ在线观看播放| 日韩 欧美 小说 综合网 另类| 国产在线精品人成导航| 亚洲无码视频喷水| 国产精品浪潮Av| 日韩一级毛一欧美一国产| 免费人成又黄又爽的视频网站| 国产成人麻豆精品| 午夜福利无码一区二区| 美女无遮挡被啪啪到高潮免费| 亚洲swag精品自拍一区| 亚洲成a人片77777在线播放| 人妻中文久热无码丝袜| 国产精品污污在线观看网站| 91欧洲国产日韩在线人成| 国产亚洲精品自在久久不卡| 欧美日韩精品在线播放| 精品视频一区二区三区在线播| 高清亚洲欧美在线看| 国产精品无码久久久久AV| 国产一区二区三区在线观看免费| 亚洲国产清纯| 亚洲永久视频| 国产极品美女在线观看| 免费无码一区二区| 国产精品久久久精品三级| 这里只有精品国产| 国产女人爽到高潮的免费视频| 手机成人午夜在线视频| 亚洲美女视频一区| 天天躁夜夜躁狠狠躁躁88| 99国产精品国产高清一区二区| 欧美色99| 久久精品亚洲专区| 久久婷婷综合色一区二区| 国产一区二区三区精品欧美日韩| 午夜视频日本| 久久精品中文无码资源站| 国产午夜福利在线小视频| 国产精品无码AⅤ在线观看播放| 国产一级无码不卡视频| 91在线国内在线播放老师 | 国产jizz| 国产精品夜夜嗨视频免费视频| 精品国产免费观看一区| 亚洲色图欧美一区| 在线五月婷婷| 69免费在线视频| 5555国产在线观看| 亚欧美国产综合| 白浆免费视频国产精品视频| 88av在线播放| 国产视频a| 国产超碰一区二区三区| 国产香蕉在线视频| 欧美日韩va| 在线看片中文字幕| 国产精品成人第一区| 国产精品综合色区在线观看| 91精品人妻互换| 日韩毛片免费| 亚洲清纯自偷自拍另类专区| 精品一区二区三区波多野结衣 | 亚洲天堂日韩av电影| 婷婷六月综合网| 国产九九精品视频| 久久天天躁夜夜躁狠狠| 国产欧美视频综合二区| 国产精品福利一区二区久久| 欧美日韩综合网| 久久精品国产在热久久2019 | 欧美精品在线免费| 欧美成人第一页| 国产凹凸一区在线观看视频| 久久中文字幕av不卡一区二区| 人人看人人鲁狠狠高清| 538国产视频| 亚洲三级电影在线播放| 中字无码av在线电影|