引言
嵌入式Web Server具有靈活性、前沿性和解決問題的有效性等優(yōu)點,在網(wǎng)絡智能設備中發(fā)揮著越來越重要的作用。本文依托GPRS(通用分組無線電業(yè)務)網(wǎng)絡來實現(xiàn)嵌入式Web Server的方法,實現(xiàn)了遠程無線接人嵌入式Web Server。
嵌入式Web Server是一個簡單易用的網(wǎng)絡服務器,用戶可通過IE訪問服務器的IP看到Web頁面。嵌入式Web Server的原理是把Web Server作為一個數(shù)據(jù)載體,Web Server監(jiān)聽用戶端的服務請求,根據(jù)用戶請求類型提供相應的服務,用戶端使用Web瀏覽器和Web服務器進行通信。Web服務器在接收到用戶端請求后,處理用戶請求并返回需要的數(shù)據(jù),一個完整的HTYP服務一般由以下幾個階段組成:客戶和服務器建立TCP連接;客戶向服務器發(fā)送請求;如果請求被接收,則服務器發(fā)送應答,在應答中包含狀態(tài)碼和所要的文件;客戶和服務器關閉連接。嵌入式Web Serv-er可將本地的信息和數(shù)據(jù)通過網(wǎng)絡傳遞給遠端發(fā)出請求的客戶,這對遠程監(jiān)控的實現(xiàn)很有意義。
GPRS是在現(xiàn)有的GSM(全球移動通信系統(tǒng))網(wǎng)絡的基礎上增加一些硬件設備和進行軟件升級而形成的一個新的網(wǎng)絡邏輯實體,它是GSM Phase2+規(guī)范實現(xiàn)的內(nèi)容之一,是基于GSM的移動分組數(shù)據(jù)業(yè)務,支持IP協(xié)議和X.25協(xié)議。具有永遠在線、快速登錄、按量計費、切換自如、高速傳送、安全可靠等優(yōu)點。每一個移動臺登錄GPRS網(wǎng)絡后均會被GPRS服務器分配一個IP地址。通過此IP地址和對應端口即可訪問位于GPRS網(wǎng)絡上的嵌入式Web Server。
無線嵌入式Web Server在不需布線的情況下可以實現(xiàn)無線互聯(lián),并兼有Web的友好界面,實現(xiàn)GPRS在HTTP應用層上通信,方便二次開發(fā)和平臺移植。
1無線嵌人式Web Server
目前中國移動GPRS網(wǎng)絡路由分配給移動臺的是內(nèi)部IP,所以只能實現(xiàn)路由內(nèi)部局域網(wǎng)的訪問,即由一臺通過GPRS Modem上網(wǎng)的MCU來訪問嵌入式Web Server,系統(tǒng)的網(wǎng)絡結構圖如圖1。
1.1 GR47 GPRS模塊
Sony Ericsson公司提供的具有內(nèi)置YCP/IP協(xié)議棧的GR47模塊,其功能強大,使用方便,性能穩(wěn)定,具有良好的技術服務支持,性價比高,向用戶提供了標準的AT命令接口和豐富的AT指令集,用戶可以很方便地將其集成到各種數(shù)據(jù)終端之中。它的優(yōu)勢是始終保持在線連接、數(shù)據(jù)傳輸快速穩(wěn)定,具備快速GPRS技術,根據(jù)實際測試,掉線概率非常小。
使用AT命令操作GR47建立和斷開一個TCP/IP會話的步驟如下:
a)定義一個PDP上下文:
AT+CGDCONT=1,"IP","CMNET"<CR>=>OK
b)激活已定義的PDP上下文:
AT*E2IPA=1.1<CR>=>OK
c)查詢模塊和移動GPRS服務器的IP地址:
AT*E2IPI=0<CR>=>*E2IPI:10.165.192.25
AT*E2IPI=1<CR>=>*E2IPI:211.137.64.163
d)監(jiān)聽80端口,模塊處于在線數(shù)據(jù)狀態(tài)AT*E2IPL1=80,1,50,1
e)設置DTR低電平(TTL)并延遲一段時間。置高=>OK,此時模塊將返回在線命令狀態(tài)。
f)返回在線數(shù)據(jù)狀態(tài):
ATO<CR>=>OK
g)將DTR線置低,延遲再置高,重新返回到在線命令狀態(tài)。
h)返回在線命令狀態(tài)后斷開IP連接:
AT*E2IPA=0.1<CR>=>OK
AT*E2IPC<CR>=>OK
GR47登錄GPRS網(wǎng)絡后,使用AT*E2IPL命令設置監(jiān)聽80端口,等待客戶端HTTP連接。
1.2嵌入式Web Server的實現(xiàn)
GPRS模塊GR47集成了TCP/IP協(xié)議,并且可以通過監(jiān)聽指令得到80端口數(shù)據(jù),所以只需在MCU中軟件實現(xiàn)HTTP協(xié)議,解析HTTP數(shù)據(jù)后,即可實現(xiàn)HTTP連接。MCU采用TI公司的MSP430F149單片機,它是16位超低功耗、高性能的混合信號處理器,具有處理能力強、運行速度快、資源豐富、開發(fā)方便等優(yōu)點,具有很高的性價比。
硬件結構框圖見圖2,F(xiàn)lash存儲器用來存儲頁面和圖片等固化資源,MCU與GR47通過串口通信。
1.3客戶端訪問Web Server的實現(xiàn)
目前,中國移動GPRS對移動終端分配的是動態(tài)局域網(wǎng)IP,以武漢市為例,GR47通過AT指令查詢模塊和移動GPRS服務器的IP地址為:
AT*E2IPI=0<CR>=>*E2IPI:10.165.192.25
AT*E2IPI=1<CR>=>*E2IPI:211.137.64.163
模塊獲得IP后,需通過其他方式來通知客戶端(PC或可以連接GPRS的移動設備),以短信或向一臺固定IP的PC機通知客戶端模塊獲得的IP,客戶端可以通過此IP連接遠端的Web Server。
[!--empirenews.page--]2 HTTP協(xié)議解析和軟件設計
2.1 HTTP協(xié)議
HTTP(超文本傳輸協(xié)議)是WWW上的協(xié)議。HTTP協(xié)議使Web服務器和瀏覽器可以通過Web交換數(shù)據(jù)。它是一種請求、響應協(xié)議,即服務器等待并響應客戶方請求。當用戶通過其瀏覽器訪問一個頁面時,瀏覽器發(fā)送一個HTTP請求給HTTP服務器,服務器會響應這個請求,將指定的網(wǎng)頁傳送回去,用戶就可以瀏覽網(wǎng)頁。
HTTP協(xié)議不維護與客戶方的連接,它使用可靠的TCP連接,通常采用TCP80端口。HTTP非常簡單,請求和應答是1行或多行文本,它的結束標志是一個換行符。如果請求成功,信息就沿該連接發(fā)送,直至傳送完成斷開連接。
客戶/服務器傳輸過程可分為4個基本步驟:瀏覽器與服務器建立連接;瀏覽器向服務器請求文檔;服務器響應瀏覽器請求;斷開連接。
2.1.1 HTTP報文結構
HTTP報文包括請求報文和響應報文兩種報文類型,其中,請求報文由客戶端如瀏覽器向Web服務器發(fā)送,用于請求服務器提供某個類型的服務;而響應報文則是在服務器接到請求報文之后,返回給客戶端的消息,表明服務器所作出的響應。
1)請求報文格式
請求報文一般包括請求行、首部和實體(有時包含)3部分。其中,請求行包括請求方法、URL(統(tǒng)一資源定位地址)和HTTP協(xié)議版本號3部分,其報文格式如圖3所示。在請求行中,請求方法是客戶端向服務器端發(fā)出的命令,URL是所請求網(wǎng)頁資源的地址,HTTP版本是指報文所使用的HTTP協(xié)議版本號。常用的請求方法有Get和Post兩種:Get方法通常只是用于請求服務器上的URL所指定的資源;Post方法用于客戶端向服務器端提供信息,所提供的信息位于請求報文的實體部分。
2)響應報文的格式
響應報文一般包括狀態(tài)行、首部和實體(有時包含)3部分,其報文格式如圖4所示。在響應報文中,狀態(tài)行定義了響應報文的狀態(tài),并由響應狀態(tài)碼和響應狀態(tài)碼說明字段反應。其中,200系列的代碼用于指示成功的請求。
HTTP報文中的首部由多個首部行組成,用以在客戶端與服務器之間交換一些附加的信息。每個首部行由首部名、冒號、空格和首部值組成,并以回車換行符(\r\n)結尾。首部與實體之間有一空行進行間隔。
2.1.2 HTTP協(xié)議解析
HTTP協(xié)議解析過程分為接收和發(fā)送兩部分。HTTP協(xié)議解析流程圖如圖5所示。
MCU接收HTTP方法并設定方法標志位,計算URL,然后判斷HTTP方法。若HTTP方法為Get,則判斷是否存在對應的網(wǎng)頁,如果存在,則確定接收HTTP方法并設定方法標志,然后返回;如果不存在對應的網(wǎng)頁,直接返回。若HTTP方法為Post,則接收并處理控制數(shù)據(jù),然后返回。
2.2總體軟件
軟件采用C430編寫,其工作過程為:上電開始;MCU初始化;判斷GR47是否在線,若不在線繼續(xù)等待,若在線就發(fā)送模塊IP,GR47處于監(jiān)聽80端口狀態(tài);判斷HTTP是否接入,若未接人GR47,繼續(xù)處于監(jiān)聽80端口狀態(tài),若接入,MCU對HTTP協(xié)議解析;GR47發(fā)送數(shù)據(jù),數(shù)據(jù)發(fā)送完畢,HTTP連接斷開。軟件總體流程圖如圖6所示。
3結束語
隨著IPV6的實施,Internet上每個移動臺和PC將分配到一個唯一的IP,對通過GPRS、CDMA(碼分多址)或其他無線網(wǎng)絡技術登錄的嵌入式Web Server,Internet上任一移動臺或PC都能對其進行訪問。無線嵌入式Web Server具有廣闊的應用和發(fā)展空間。