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