《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > 基于uIP協議棧的嵌入式Web服務器的實現
基于uIP協議棧的嵌入式Web服務器的實現
來源:微型機與應用2011年第4期
張 勇1,朱志紅1,2,田茂勝1,2
(1.華中科技大學 國家數控系統工程技術研究中心,湖北 武漢430074;2.武漢華中數控股份有限公
摘要: 為使數控系統具備網絡訪問功能,通過移植嵌入式TCP/IP協議棧—uIP,并且編寫網絡控制芯片驅動程序接口以及能實現HTTP協議的通用應用程序,使數控系統具備Web服務器的功能。用戶可以使用PC接入Internet,通過標準瀏覽器遠程監測數控系統的運行狀態。
Abstract:
Key words :

摘  要:為使數控系統具備網絡訪問功能,通過移植嵌入式TCP/IP協議棧—uIP,并且編寫網絡控制芯片驅動程序接口以及能實現HTTP協議的通用應用程序,使數控系統具備Web服務器的功能。用戶可以使用PC接入Internet,通過標準瀏覽器遠程監測數控系統的運行狀態。
關鍵詞: uIP協議棧;HTTP協議;Web服務器;數控系統

    數控技術的網絡化是數字制造技術的發展方向,利用網絡技術使數控系統具備遠程監控和故障診斷功能可以極大地提高產品的市場競爭力。TCP/IP協議已經在全球互聯網上取得了巨大成功,通過實現TCP/IP協議使系統直接接入內部網或者互聯網,這種方案利用了現有的網絡線路,避免了成本高昂、繁瑣的布線工作,已成為大多數用戶的選擇。而基于Web服務器的遠程監控技術,可以為用戶提供一個統一、簡潔的操作界面。
    整個設計中的關鍵是TCP/IP協議棧的實現,完全從零開始去實現一個嵌入式TCP/IP協議將耗費大量的時間和資源,導致產品跟不上市場需求。而商業的TCP/IP的網絡組件實現過于復雜,需要占用大量的系統資源,同
時會導致成本的提高,本設計選用精簡的開源uIP協議棧作為網絡通信協議,采用嵌入式的uIP協議棧,編寫基于DOS操作系統的網絡芯片驅動程序接口,在應用層實現HTTP協議,最后將其運用于華中數控的HNC-21系統,使系統具備了遠程監控功能。
1 uIP協議棧分析
    uIP協議棧是專為8/16 bit的嵌入式微處理器設計的小型TCP/IP協議棧,采用BSD授權,遵循RFC標準,完全由C語言編寫,具有良好的互操作性、完整的源代碼和注釋,可免費用于非商業和商業用途。uIP協議棧有多
個版本,本設計采用的是uIP0.9。
    為了減小代碼量,降低對系統資源的要求,uIP的內部實現具有如下特點[1]:只實現了網絡通信所必要的協議機制;不支持內存動態分配機制,使用單一的全局緩沖區收發數據包;各層協議不嚴格獨立,緊密耦合;
應用程序主動參與部分協議棧的功能實現。
    uIP協議處于網絡通信的中間層,其設計重點放在IP(網際互聯協議)、ICMP(網絡控制報文協議)和TCP(傳輸控制協議)的實現上, UDP(用戶數據報協議)和ARP(地址解析協議)實現只是作為可選模塊。其體系結構[2]如圖1所示。

    uIP協議棧提供了三個函數給底層設備驅動程序:uip_periodic()、uip_init()和uip_input()。其中uip_input()和uip_periodic()在內部的實現采用同一個函數,即uip_process(u8_t flag),區別在于調用的參數和使用情況不同。uIP協議棧中應用程序基于事件驅動模式,作為一個獨立的模塊由用戶實現。為了將應用程序掛接到uIP中,用戶需將宏UIP_APPCALL()定義為自己的應用程序函數名。
2 嵌入式Web服務器的實現
    uIP協議棧以函數庫的形式提供,本身不提供底層網絡驅動和上層應用程序。因此為了完成指定的功能,開發者必須添加網卡芯片的驅動模塊和特定的應用程序模塊。
2.1 uIP協議棧的移植
    協議的實現核心是\uip目錄下的7個程序文件[3],本設計中用到uip.c、uip.h、uip_arp.c、uip_arp.h、uip_arch.h  5個文件。其中uip.c和uip.h實現了IP、TCP、ICMP協議,uip_arp.c和uip_arp.h實現了ARP協議。\unix目錄下有5個程序文件,本設計中用到的主要是uip_arch.c和uipopt.h。其中uip_arch.c是校驗和文件,uipopt.h是參數配置文件。
    設計中根據需要修改uipopt.h,使用靜態IP地址,故將UIP_FIXEDADDR設置為1;不支持數據包分割重組,設置UIP_REASSEMBLY為0;不需要UDP協議支持,設置UIP_UDP為0;設置UIP_CONNS為5,允許同時開啟5個TCP連接。因為在應用層只需要實現HTTP協議,設置UIP_LISTENPORTS為1。最后根據實際應用修改MAC地址、IP地址、子網掩碼和網關地址中相應的宏變量。
2.2 網卡驅動程序接口
    本設計中使用的網絡控制芯片是臺灣Realtek公司的RTL8019AS,系統環境是16位的DOS操作系統。設計中遵循Packet Driver接口協議來操作網卡,提供給上層的函數接口包括網絡芯片的初始、發包、收包。
    網卡的初始化接口函數int tapdev_init(void),主要完成獲取網卡句柄和Packet Driver[4-5]提供服務的軟中斷號、注冊網絡數據包的接收程序。函數流程如圖2所示。

    網卡的接收數據包接口函數為unsigned int tapdev_read(void),主要功能是判斷是否有新的數據包到來。如果有,則將數據存儲到全局變量uip_buf中供進一步的處理,并返回數據包的長度。
    網卡的發送數據包接口函數int tapdev_send(void)通過調用Packet Driver的send_pkt()將封裝好的數據包發送到以太網。全局變量uip_len表示要發送的數據包長度。發送數據包的實現代碼如下:
while(times--)
{
    regs.r_ax=PD_SEND;
    regs.r_ds=FP_SEG(tmpbuf); //temp為待發送數據包緩存區
    regs.r_si=FP_OFF(tmpbuf);
    regs.r_cx=uip_len; //待發送數據包長度
    intr(pkt_interrupt,&regs);
    if(regs.r_flags &CARRY)
        continue;
    break;
}
2.3 應用層協議實現
    HTTP(HyperText Transfer Protocol)超文本傳輸協議是用于從WWW服務器傳輸超文本到本地瀏覽器的傳送協議。要實現Web服務器[6]的功能,就需要在應用層實現HTTP協議。HTTP協議采用的是客戶端與服務器模式。在客戶端產生數據請求,在服務器端產生應答數據,然后以Web頁面形式返回給客戶端。為了達到統一通用的要求,Web頁面采用HTML格式傳輸。
    設計中將應用層函數http_call定義為宏UIP_APPCALL, 主程序首先調用函數uip_listen開啟80號端口監聽。如果監測到遠程連接請求,分配一個連接項給客戶端,然后等待客戶端的發送具體的數據請求。在接收到客戶端的數據請求后,根據相應語法解析請求指令,將相關信息以網頁形式返回到客戶端。
    用戶只要通過標準的瀏覽器輸入相應的IP地址就可以查看服務器提供的Web網頁。Web服務器軟件實現框圖如圖3所示。

3 Web服務器的應用
    將設計的Web服務器應用于華中數控HNC-21系統,可遠程監控機床的當前運行位置、參數設置、報警信息等。設置數控系統的IP地址為192.168.0.2,同時設置相應的子網掩碼和默認網關,然后將數控系統接入局域網。在接入同一局域網的PC機上打開瀏覽器窗口,在地址欄中輸入192.168.0.2,出現圖4所示界面,說明Web服務器已運行成功。

    按照本設計中的配置參數,整個系統中核心協議的實現代碼量約為20 KB,核心協議的實現占用的內存約為10 KB,資源占用量很小,能很好地滿足資源有限環境下的應用需求。采用移植精簡的TCP/IP協議棧uIP,使數控系統具有網絡接入功能,是一種低成本、高效的網絡接入方案。通過實現Web服務器的功能,可以讓用戶使用統一、簡潔的界面對數控系統進行遠程監控,降低了用戶的使用難度。

參考文獻
[1] ADAM D.uIP-a free small TCP/IP stack[EB\OL].[2010-06-25].http://www.sic.se/~adam/download/uip-doc-0.6.pdf.
[2] ADAM D.Full TCP/IP for 8-bit architectures[EB\OL].[2010-06-25].http://www.sics.se/~adam/mobisys2003.pdf.
[3] Doxygen. uIP 0.9 reference manual[EB\OL].[2010-06-25].http://www.sics.se/~adam/download/uip0.9-refman.pdf.
[4] FTP Software Inc.PC/TCP packet driver specification[EB\OL].[2010-06-25].http://www.crynwr.com/packet_ driver.html.
[5] 黃皓.ARP協議分析及在網絡安全中的應用實現[D].成都:電子科技大學,2007.
[6] JEREMEY B.嵌入式系統Web服務器-TCP/IP Lean[M].陳向群,譯.北京:機械工業出版社,2003:313-319.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲图片你懂的| 欧美国产丝袜视频| 91久久夜色精品国产网站| 亚洲午夜精品网| 亚洲国产精品久久久久秋霞影院 | 日韩午夜在线观看视频| 亚洲第一在线视频| 亚洲成色777777在线观看影院| 亚洲欧美日韩专区| 亚洲欧美日韩国产综合在线 | 亚洲综合不卡| 亚洲一区在线看| 亚洲免费影院| 午夜精品福利在线| 欧美亚洲一区二区三区| 亚洲欧美另类在线| 香蕉亚洲视频| 久久国产66| 久久久久国产精品一区二区| 久久久福利视频| 麻豆精品精华液| 欧美二区不卡| 欧美日韩三级电影在线| 欧美午夜激情在线| 国产精品乱人伦一区二区| 国产精品一区久久久久| 国产日韩欧美不卡在线| 国产一区二区中文字幕免费看| 国产一区二区三区最好精华液| 伊人夜夜躁av伊人久久| 亚洲国产福利在线| 99视频一区| 亚洲免费影院| 欧美一区二区三区的| 亚洲国产高清一区二区三区| 亚洲麻豆av| 亚洲制服欧美中文字幕中文字幕| 亚洲欧美三级伦理| 久久久视频精品| 美女国产精品| 欧美日韩综合| 国产日韩欧美一区二区三区四区| 一区三区视频| 亚洲美女黄网| 亚洲视频在线观看免费| 欧美一区二区三区在线| 亚洲欧洲日产国码二区| 在线一区二区三区做爰视频网站| 新67194成人永久网站| 久久亚洲精品一区| 欧美精品一区二区三区久久久竹菊| 欧美午夜www高清视频| 国产一区在线看| 亚洲黑丝一区二区| 亚洲一级电影| 亚洲国产精品一区二区尤物区 | 亚洲激情影视| 亚洲欧美日韩国产一区| 最新日韩av| 欧美亚洲专区| 欧美激情导航| 国产日韩av在线播放| 亚洲人成在线影院| 亚洲欧美在线观看| 99热精品在线| 久久久久高清| 欧美视频在线免费看| 国产综合久久| 在线一区二区三区四区五区| 亚洲福利在线观看| 亚洲欧美激情四射在线日 | 亚洲桃色在线一区| 91久久精品美女高潮| 午夜精品在线看| 欧美黄色精品| 国产欧美日韩精品丝袜高跟鞋| 亚洲国产日韩一级| 午夜免费日韩视频| 一区二区三区四区五区精品视频| 久久久精品tv| 国产精品日韩欧美| 亚洲精品视频一区| 亚洲福利久久| 久久成人免费网| 欧美视频在线免费| 亚洲人成人一区二区三区| 欧美一区二视频| 亚洲欧美国产高清va在线播| 欧美激情国产精品| 国内激情久久| 亚洲字幕一区二区| 在线视频精品| 欧美fxxxxxx另类| 国产亚洲精品aa午夜观看| 亚洲视频久久| 一本久久a久久精品亚洲| 久久最新视频| 国产一区二区三区久久悠悠色av| 亚洲午夜精品一区二区三区他趣 | 欧美日韩在线播放| 亚洲国产小视频| 亚洲国产高清在线| 久久视频精品在线| 国产亚洲一本大道中文在线| 亚洲视屏一区| 亚洲一区欧美二区| 欧美日韩午夜视频在线观看| 亚洲欧洲日本mm| 亚洲区一区二| 久久综合狠狠综合久久激情| 好吊日精品视频| 欧美一区二区三区在线观看| 香蕉乱码成人久久天堂爱免费 | 久久久国产一区二区三区| 国产精品午夜春色av| 一区二区av| 亚洲大片免费看| 中国日韩欧美久久久久久久久| 久久久久国产精品一区三寸| 国产日韩视频| 欧美一区二区在线视频| 久久国产免费看| 国产欧美日韩一区| 午夜精品短视频| 久久国产精品久久国产精品| 国产欧美三级| 欧美在线一级视频| 久久久久综合| 激情久久一区| 91久久嫩草影院一区二区| 免费日韩一区二区| 亚洲黄色有码视频| 日韩午夜高潮| 欧美日韩在线另类| 亚洲视频在线观看| 欧美在线亚洲在线| 国内免费精品永久在线视频| 亚洲国产精品久久| 开心色5月久久精品| 亚洲高清久久久| 一区二区三区视频在线观看| 国产精品久久久亚洲一区| 亚洲欧美久久久| 久久久噜噜噜久久人人看| 永久域名在线精品| 99国内精品久久| 欧美网站大全在线观看| 亚洲欧美日韩国产综合精品二区| 久久精品国产在热久久| 在线视频成人| 正在播放日韩| 国产乱码精品一区二区三区不卡| 欧美一区二区三区视频在线 | 欧美视频在线观看| 午夜精品一区二区三区电影天堂| 久久久爽爽爽美女图片| 91久久中文| 亚洲欧美日韩国产中文在线| 国产一在线精品一区在线观看| 亚洲另类一区二区| 国产精品va在线| 亚洲第一在线综合在线| 欧美日韩成人综合天天影院| 亚洲影院色在线观看免费| 久久天天躁夜夜躁狠狠躁2022| 亚洲国产高清自拍| 亚洲专区一区二区三区| 国产一区二区三区电影在线观看| 亚洲三级国产| 国产精品日韩欧美一区| 亚洲激情视频在线观看| 国产精品嫩草久久久久| 亚洲国产精品成人精品| 欧美日韩视频一区二区| 亚洲欧美制服另类日韩| 欧美成人免费全部观看天天性色| 99国产精品国产精品久久| 久久久久se| 一区二区黄色| 欧美99在线视频观看| 亚洲一区二区三区四区在线观看| 久久天堂精品| 一区二区三区日韩欧美| 欧美va亚洲va香蕉在线| 亚洲网友自拍| 免费一级欧美在线大片| 亚洲综合电影一区二区三区| 欧美国产一区在线| 先锋影音网一区二区| 欧美另类videos死尸| 欧美影院视频| 欧美色大人视频| 亚洲国产精品第一区二区| 国产精品成人观看视频免费| 亚洲国产一区二区在线| 国产欧美日韩精品一区| 亚洲一区二区网站| 亚洲国产精品成人久久综合一区| 久久国产99| 亚洲在线1234|