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