基于uIP與AJAX的動(dòng)態(tài)Web服務(wù)器設計
摘要:針對遠程信息監測系統中數據的實(shí)時(shí)采集更新問(wèn)題,將AJAX和CGI應用到嵌入式Web服務(wù)器的設計中,實(shí)現了服務(wù)器與瀏覽器之間的動(dòng)態(tài)信息交互。本文首先分析了uIP協(xié)議棧,并在協(xié)議棧之上設計了Web服務(wù)器,然后利用CGI服務(wù)程序處理來(lái)自客戶(hù)端的XMLHttpRequest對象請求,實(shí)現動(dòng)態(tài)Web功能?,F場(chǎng)實(shí)驗結果表明,嵌入式Web服務(wù)器降低了服務(wù)器端的資源開(kāi)銷(xiāo),提高了響應速度。
關(guān)鍵詞:uIP協(xié)議棧;AJAX技術(shù);嵌入式Web服務(wù)器;通用網(wǎng)關(guān)接口
引言
遠程信息監測系統是通過(guò)網(wǎng)絡(luò )遠程收集目標信息并監控目標對象運行狀態(tài)的嵌入式系統。遠程信息監測系統中嵌入式Web服務(wù)器的使用,可以使用戶(hù)通過(guò)瀏覽器訪(fǎng)問(wèn)遠端的嵌入式設備,這樣能夠大大提高系統的易用性和可維護性。目前,在遠程監測系統中普遍采用的實(shí)時(shí)數據采集方法是在網(wǎng)頁(yè)上嵌入Applet或ActiveX控件,但是這種方法不僅會(huì )威脅到客戶(hù)端的安全,還增加了服務(wù)器的負擔,從而限制了Web服務(wù)器的實(shí)現和應用。為了滿(mǎn)足資源有限的嵌入式系統的需要,本文采用微型TCP/IP協(xié)議棧uIP,在協(xié)議棧之上設計實(shí)現了基于CGI的動(dòng)態(tài)Web服務(wù)器,并將AJAX技術(shù)應用到客戶(hù)端與服務(wù)器的實(shí)時(shí)數據交互中。AJAX技術(shù)的實(shí)現是將JavaScript程序內嵌在網(wǎng)頁(yè)中,不需要在瀏覽器上另外安裝插件,降低了系統成本和Web服務(wù)器實(shí)現的難度。
1 uIP協(xié)議棧分析
uIP是專(zhuān)為8/16位嵌入式微處理器設計的輕量級TCP/IP協(xié)議棧。uIP本身的源代碼和占用的內存資源都非常少,其源代碼只有幾KB,RAM僅占幾百字節。uIP采用BSD授權,遵循RFC標準,完全由C語(yǔ)言編寫(xiě),具有良好的可移植性,可免費用于非商業(yè)和商業(yè)用途。uIP協(xié)議棧有多個(gè)版本,本設計采用的是uIP 1.0。
為了減少對系統資源的要求,uIP的內部實(shí)現主要采用以下設計措施:
①不支持動(dòng)態(tài)內存分配機制,使用單一的全局緩沖區uip_buf收發(fā)網(wǎng)絡(luò )數據;
②著(zhù)重實(shí)現了與完整TCP/IP通信所必需的ARP(地址解析協(xié)議)、IP(網(wǎng)際互聯(lián)協(xié)議)、TCP(傳輸控制協(xié)議),而UDP(用戶(hù)數據包協(xié)議)、ICM P(網(wǎng)絡(luò )控制報文協(xié)議)只作為可選模塊;
③各層協(xié)議緊密耦合,應用協(xié)議也參與了部分協(xié)議棧功能的實(shí)現。
uIP的體系結構如圖1所示。由圖1可以看出,uIP協(xié)議棧處于網(wǎng)絡(luò )通信的中間層,用戶(hù)需要為uIP提供底層網(wǎng)卡驅動(dòng)程序和定時(shí)器驅動(dòng)程序。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
評論