【正文】
nt of the embedded systems that is absolutely justifiable. In this case it is first of all a question of remote maintenance, remote configuration and similar tasks. There are not many simultaneous requests expected.The DIL/NetPCs DNP/1110 – Using the Embedded LinuxList of FiguresFigure 1: TCP/IP stack and HTTP programming model Figure 2: Functional principle from Web server and browser Figure 3: Single steps of the ServerSideScriptingFigure 4: Embedded Web Server Module with StrongARM and LinuxListingsListing : HTTP GETrequestListing : HTTP response as result of the GETrequest from listing ContactSSV Embedded SystemsHeisterbergallee 72D30453 HannoverTel. +49(0)511400000Fax. +49(0)5114000040Email: salesWeb: Document History ()Revision Date Name First Version KDWThis document is meant only for the internal application. The contents of this document can change any time without announcement. There is taken over no guarantee for the accuracy of the statements. Copyright 169。AS IS39。大多數(shù)售賣咖啡的機(jī)器仍然不能提供全世界的聯(lián)網(wǎng)。對(duì)很多發(fā)展工程來說,僅僅是通過網(wǎng)絡(luò)瀏覽器經(jīng)Internet,或是經(jīng)過局域網(wǎng)進(jìn)行組成和系統(tǒng)的遠(yuǎn)程維護(hù)和診斷,負(fù)擔(dān)非常之重。剩余的時(shí)間用前面的面板和一些功能鍵組成一個(gè)小的LC顯示結(jié)束經(jīng)典用戶界面的制作。經(jīng)過網(wǎng)絡(luò)瀏覽器獲得進(jìn)入一個(gè)嵌入式系統(tǒng)最主要的功能單元是網(wǎng)絡(luò)服務(wù)器。這樣發(fā)生了基于HTTP(HTTP —Hypertext Transfer Protocol, WWW服務(wù)程序所用的協(xié)議)。網(wǎng)絡(luò)服務(wù)器(HTTP服務(wù)器端)和瀏覽器(HTTP客戶端)構(gòu)建了TCP/IP的應(yīng)用軟件。其間全世界數(shù)以百萬計(jì)的用戶在廣域網(wǎng)中使用基于HTTP進(jìn)行沖浪。這種狀況在嵌入式系統(tǒng)中也越來越多。1. 基于TCP/IP的HTTP作為通信平臺(tái)HTTP是一個(gè)基于TCP/IP協(xié)議層之上的簡(jiǎn)單的協(xié)議。TCP是一個(gè)通過下屬的IP(IP -Internet Protocol, 網(wǎng)際協(xié)議)協(xié)議傳輸數(shù)據(jù)的相對(duì)復(fù)雜和高質(zhì)量的協(xié)議。因此經(jīng)過HTTP的數(shù)據(jù)傳輸可以始終被保護(hù)。Figure 1: TCP/IP stack and HTTP programming modelHTTP基于一種簡(jiǎn)單的客戶/服務(wù)器的概念。默認(rèn)的端口號(hào)是80。他等待客戶端的請(qǐng)求。這種HTML文件可能不得不由CGI(CGI-Common Gateway Interface , 公共網(wǎng)關(guān)接口)動(dòng)態(tài)產(chǎn)生。HTTP的請(qǐng)求通常由幾行文本組成,通過TCP傳送到服務(wù)器。第一行表明了請(qǐng)求類型(GET),請(qǐng)求對(duì)象(/)以及使用HTTP的版本(HTTP/)。第三行包括了關(guān)于客戶端軟件的信息。依照請(qǐng)求的類型以及應(yīng)用的客戶端軟件可以寫出更多行。GET / HTTP/Accept]: image/gif, image/jpeg, */* User selling agent: Mozilla/Host: Listing : HTTP GETrequestHTTP/ 200 OKDate: Mon, 06 Dec 1999 20:55:12 GMT Server: Apache/ (Linux)Contentlength: 82Contenttype: text/htmlhtmlheadtitleTestSeite/title/headbodyTestSeite/body/htmlListing : HTTP response as result of the GETrequest from listing 作為對(duì)HTTP請(qǐng)求的回答主要由兩部分組成。跟著又一個(gè)內(nèi)容對(duì)象(可選擇)。標(biāo)題的第一行特別重要。如果發(fā)生錯(cuò)誤,只傳送標(biāo)題或標(biāo)題的一部分作為回答。Picture 。通過這個(gè)請(qǐng)求,必須有一個(gè)明確的文件作為回答(見Picture )。然后嘗試找到一個(gè)需要的文件(Step2)。如果網(wǎng)絡(luò)服務(wù)器不能在文件系統(tǒng)中找到合適的文件,一個(gè)錯(cuò)誤信息(只包含標(biāo)題的HTTP響應(yīng))簡(jiǎn)單地作為響應(yīng)發(fā)送到客戶端。它的基礎(chǔ)是用HTML頁的靜態(tài)文件構(gòu)建的。這些文件是GIF或JPEG格式的這些有代表性地圖片。在網(wǎng)絡(luò)瀏覽器接收到網(wǎng)絡(luò)服務(wù)器的HTML文件之后,這個(gè)文件將被評(píng)價(jià)然后為外部參考搜索。請(qǐng)注意,這樣一個(gè)參考由網(wǎng)絡(luò)服務(wù)器的名字或IP地址組成(例如“”),需要文件的名字也是如此(例如“”)。換句話說,一個(gè)HTML文件能夠定位在服務(wù)器“ssv-”上,但通過這個(gè)HTML文件外部涉及到的需要的圖像定位在網(wǎng)絡(luò)服務(wù)器“”上。所有通過網(wǎng)絡(luò)服務(wù)器的必須得文件被瀏覽器請(qǐng)求,就像Picture 。網(wǎng)絡(luò)服務(wù)器更進(jìn)一步的基本功能是我們前面提到的公共網(wǎng)關(guān)接口(CGI-Common Gateway Interface , 公共網(wǎng)關(guān)接口)。作為窗體填料結(jié)果的數(shù)據(jù)將經(jīng)HTTP-GET或POST-request被傳送到網(wǎng)絡(luò)服務(wù)器(見Picture )。這個(gè)程序需要放在網(wǎng)絡(luò)服務(wù)器上。GET-或POST-請(qǐng)求的結(jié)果是網(wǎng)絡(luò)服務(wù)器啟動(dòng)位于“/cgi-bin”目錄中的CGI程序,根據(jù)參數(shù)傳遞標(biāo)準(zhǔn)的數(shù)據(jù)(Step2)。然后網(wǎng)絡(luò)服務(wù)器把數(shù)據(jù)全部傳送到網(wǎng)絡(luò)瀏覽器作為響應(yīng)(Step4)。它將在首先通過瀏覽器進(jìn)入的時(shí)候產(chǎn)生動(dòng)態(tài)頁面。最多關(guān)于固件的版本和服務(wù)的信息是通過HTML格式存儲(chǔ)的。在請(qǐng)求的時(shí)刻有兩種產(chǎn)生HTML頁的不同技術(shù):第一種是所謂的服務(wù)器方腳本,第二種是CGI設(shè)計(jì)。如果需要,這些代碼將在服務(wù)器方被執(zhí)行。在Linux團(tuán)體中主要使用PHP(PHP:一種新型的CGI網(wǎng)絡(luò)程序編寫語言。微軟中意的是VBScript。美國(guó)的Sun公司將這種技術(shù)命名為JSP。在服務(wù)器的文件被傳送到客戶端之前,一段特殊的程序用動(dòng)態(tài)產(chǎn)生的標(biāo)準(zhǔn)HTML取代整個(gè)腳本代碼。Figure 3: Single steps of the ServerSideScriptingPicture 3展示了服務(wù)器方腳本的簡(jiǎn)單步驟。網(wǎng)絡(luò)服務(wù)器認(rèn)可需要文件的明確的擴(kuò)展名(例如用*.ASP或*.PHP代替*.HTM或*.HTML),然后啟動(dòng)一個(gè)腳本引擎(見Step2)。包括的腳本代碼將被動(dòng)態(tài)產(chǎn)生的HTML所代替。如果服務(wù)器方腳本被期望用于嵌入式網(wǎng)絡(luò)服務(wù)器,那么你不得不考慮必要的附加資源。一個(gè)腳本引擎和嵌入式網(wǎng)絡(luò)服務(wù)器被存儲(chǔ)在嵌入式系統(tǒng)的閃存芯片中。4. Linux下網(wǎng)絡(luò)服務(wù)器的運(yùn)行一旦談起關(guān)于網(wǎng)絡(luò)服務(wù)器在和Linux連接中的問題,大部分人馬上想到了Apache。Apache是對(duì)傳說中的NCSA服務(wù)器的增進(jìn)。它是從“A Patchy Server”構(gòu)造而來,因?yàn)榈谝粋€(gè)版本由不同的代碼和補(bǔ)丁文件裝配起來。這些服務(wù)器的大多數(shù)固定在GPL(類似Apache)之下,可以免費(fèi)使用。每一個(gè)網(wǎng)絡(luò)服務(wù)器都有其優(yōu)缺點(diǎn)。對(duì)一個(gè)嵌入式網(wǎng)絡(luò)服務(wù)器來說最重要的事情是實(shí)際資源的需求。其間有許多高性能的32位386/486微控制器或基于ARM的擁有8M RAM和2M Flash-ROM的嵌入式系統(tǒng)(Picture 4)。HTML頁和程序同樣存在ROM中用來產(chǎn)生網(wǎng)頁。很好理解它沒有位置給一個(gè)像Apache一樣強(qiáng)大的網(wǎng)絡(luò)服務(wù)器。它不需要通過網(wǎng)絡(luò)服務(wù)器和瀏覽器形象化一個(gè)影印機(jī)的計(jì)數(shù)器或一個(gè)過濾器的狀態(tài)。兩個(gè)典型的代表是boa(起初,兩個(gè)網(wǎng)絡(luò)服務(wù)器都用于和運(yùn)行在Linux下的嵌入式系統(tǒng)連接。順便說一下,它們的源代碼對(duì)用戶是開放的。對(duì)于網(wǎng)頁的動(dòng)態(tài)產(chǎn)生,兩個(gè)服務(wù)器都只提供了CGI作為增補(bǔ)。嵌入式網(wǎng)絡(luò)服務(wù)器和Apache很大的差別在于,相對(duì)有限構(gòu)造設(shè)置,同時(shí)發(fā)生請(qǐng)求數(shù)量的最大可能。在這個(gè)過程里所有進(jìn)一步的步驟都將被執(zhí)行。但是另一方面,許多網(wǎng)絡(luò)瀏覽器能夠同時(shí)進(jìn)入這樣一個(gè)網(wǎng)絡(luò)服務(wù)器中。如果兩個(gè)用戶同時(shí)需要進(jìn)入一個(gè)嵌入式網(wǎng)絡(luò)服務(wù)器,其中之一則不得不等待片刻。這種情況首先是一個(gè)遠(yuǎn)程保持、遠(yuǎn)程配置和相似任務(wù)的問題。圖的明細(xì)表:圖一:TCP/IP層和HTTP設(shè)計(jì)模型圖二:來自網(wǎng)絡(luò)服務(wù)器和瀏覽器的功能原理圖三:服務(wù)器方腳本的單步圖四:以強(qiáng)大的ARM和Linux的嵌入式網(wǎng)絡(luò)服務(wù)器清單列表:1. A:HTTP的GET請(qǐng)求1. B:利用嵌入式Linux的數(shù)字集成邏輯(DIL)/網(wǎng)絡(luò)計(jì)算機(jī)(NetPCs)DNP/1110