亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于uIP協(xié)議棧的嵌入式Web服務(wù)器的實(shí)現(xiàn)*

        2011-05-11 11:58:50朱志紅田茂勝
        關(guān)鍵詞:嵌入式設(shè)計(jì)

        張 勇 ,朱志紅 ,2,田茂勝 ,2

        (1.華中科技大學(xué) 國家數(shù)控系統(tǒng)工程技術(shù)研究中心,湖北 武漢430074;2.武漢華中數(shù)控股份有限公司,湖北 武漢430223)

        數(shù)控技術(shù)的網(wǎng)絡(luò)化是數(shù)字制造技術(shù)的發(fā)展方向,利用網(wǎng)絡(luò)技術(shù)使數(shù)控系統(tǒng)具備遠(yuǎn)程監(jiān)控和故障診斷功能可以極大地提高產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。TCP/IP協(xié)議已經(jīng)在全球互聯(lián)網(wǎng)上取得了巨大成功,通過實(shí)現(xiàn)TCP/IP協(xié)議使系統(tǒng)直接接入內(nèi)部網(wǎng)或者互聯(lián)網(wǎng),這種方案利用了現(xiàn)有的網(wǎng)絡(luò)線路,避免了成本高昂、繁瑣的布線工作,已成為大多數(shù)用戶的選擇。而基于Web服務(wù)器的遠(yuǎn)程監(jiān)控技術(shù),可以為用戶提供一個(gè)統(tǒng)一、簡(jiǎn)潔的操作界面。

        整個(gè)設(shè)計(jì)中的關(guān)鍵是TCP/IP協(xié)議棧的實(shí)現(xiàn),完全從零開始去實(shí)現(xiàn)一個(gè)嵌入式TCP/IP協(xié)議將耗費(fèi)大量的時(shí)間和資源,導(dǎo)致產(chǎn)品跟不上市場(chǎng)需求。而商業(yè)的TCP/IP的網(wǎng)絡(luò)組件實(shí)現(xiàn)過于復(fù)雜,需要占用大量的系統(tǒng)資源,同時(shí)會(huì)導(dǎo)致成本的提高,本設(shè)計(jì)選用精簡(jiǎn)的開源uIP協(xié)議棧作為網(wǎng)絡(luò)通信協(xié)議,采用嵌入式的uIP協(xié)議棧,編寫基于DOS操作系統(tǒng)的網(wǎng)絡(luò)芯片驅(qū)動(dòng)程序接口,在應(yīng)用層實(shí)現(xiàn)HTTP協(xié)議,最后將其運(yùn)用于華中數(shù)控的HNC-21系統(tǒng),使系統(tǒng)具備了遠(yuǎn)程監(jiān)控功能。

        1 uIP協(xié)議棧分析

        uIP協(xié)議棧是專為8/16 bit的嵌入式微處理器設(shè)計(jì)的小型TCP/IP協(xié)議棧,采用BSD授權(quán),遵循RFC標(biāo)準(zhǔn),完全由C語言編寫,具有良好的互操作性、完整的源代碼和注釋,可免費(fèi)用于非商業(yè)和商業(yè)用途。uIP協(xié)議棧有多個(gè)版本,本設(shè)計(jì)采用的是uIP0.9。

        為了減小代碼量,降低對(duì)系統(tǒng)資源的要求,uIP的內(nèi)部實(shí)現(xiàn)具有如下特點(diǎn)[1]:只實(shí)現(xiàn)了網(wǎng)絡(luò)通信所必要的協(xié)議機(jī)制;不支持內(nèi)存動(dòng)態(tài)分配機(jī)制,使用單一的全局緩沖區(qū)收發(fā)數(shù)據(jù)包;各層協(xié)議不嚴(yán)格獨(dú)立,緊密耦合;應(yīng)用程序主動(dòng)參與部分協(xié)議棧的功能實(shí)現(xiàn)。

        uIP協(xié)議處于網(wǎng)絡(luò)通信的中間層,其設(shè)計(jì)重點(diǎn)放在IP(網(wǎng)際互聯(lián)協(xié)議)、ICMP(網(wǎng)絡(luò)控制報(bào)文協(xié)議)和 TCP(傳輸控制協(xié)議)的實(shí)現(xiàn)上,UDP(用戶數(shù)據(jù)報(bào)協(xié)議)和 ARP(地址解析協(xié)議)實(shí)現(xiàn)只是作為可選模塊。其體系結(jié)構(gòu)[2]如圖1所示。

        uIP協(xié)議棧提供了三個(gè)函數(shù)給底層設(shè)備驅(qū)動(dòng)程序:uip_periodic()、uip_init()和 uip_input()。 其中 uip_input()和uip_periodic()在內(nèi)部的實(shí)現(xiàn)采用同一個(gè)函數(shù),即uip_process(u8_t flag),區(qū)別在于調(diào)用的參數(shù)和使用情況不同。uIP協(xié)議棧中應(yīng)用程序基于事件驅(qū)動(dòng)模式,作為一個(gè)獨(dú)立的模塊由用戶實(shí)現(xiàn)。為了將應(yīng)用程序掛接到uIP中,用戶需將宏UIP_APPCALL()定義為自己的應(yīng)用程序函數(shù)名。

        2 嵌入式Web服務(wù)器的實(shí)現(xiàn)

        uIP協(xié)議棧以函數(shù)庫的形式提供,本身不提供底層網(wǎng)絡(luò)驅(qū)動(dòng)和上層應(yīng)用程序。因此為了完成指定的功能,開發(fā)者必須添加網(wǎng)卡芯片的驅(qū)動(dòng)模塊和特定的應(yīng)用程序模塊。

        2.1 uIP協(xié)議棧的移植

        協(xié)議的實(shí)現(xiàn)核心是uip目錄下的7個(gè)程序文件[3],本設(shè) 計(jì) 中 用 到 uip.c、uip.h、uip_arp.c、uip_arp.h、uip_arch.h 5個(gè)文件。 其中 uip.c和 uip.h實(shí)現(xiàn)了 IP、TCP、ICMP協(xié)議,uip_arp.c和uip_arp.h實(shí)現(xiàn)了ARP協(xié)議。unix目錄下有5個(gè)程序文件,本設(shè)計(jì)中用到的主要是uip_arch.c和uipopt.h。其中uip_arch.c是校驗(yàn)和文件,uipopt.h是參數(shù)配置文件。

        設(shè)計(jì)中根據(jù)需要修改uipopt.h,使用靜態(tài)IP地址,故將UIP_FIXEDADDR設(shè)置為1;不支持?jǐn)?shù)據(jù)包分割重組,設(shè)置UIP_REASSEMBLY為0;不需要UDP協(xié)議支持,設(shè)置 UIP_UDP為 0;設(shè)置 UIP_CONNS為 5,允許同時(shí)開啟5個(gè)TCP連接。因?yàn)樵趹?yīng)用層只需要實(shí)現(xiàn)HTTP協(xié)議,設(shè)置UIP_LISTENPORTS為1。最后根據(jù)實(shí)際應(yīng)用修改MAC地址、IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)地址中相應(yīng)的宏變量。

        2.2 網(wǎng)卡驅(qū)動(dòng)程序接口

        本設(shè)計(jì)中使用的網(wǎng)絡(luò)控制芯片是臺(tái)灣Realtek公司的RTL8019AS,系統(tǒng)環(huán)境是16位的DOS操作系統(tǒng)。設(shè)計(jì)中遵循Packet Driver接口協(xié)議來操作網(wǎng)卡,提供給上層的函數(shù)接口包括網(wǎng)絡(luò)芯片的初始、發(fā)包、收包。

        網(wǎng)卡的初始化接口函數(shù)int tapdev_init(void),主要完成獲取網(wǎng)卡句柄和Packet Driver[4-5]提供服務(wù)的軟中斷號(hào)、注冊(cè)網(wǎng)絡(luò)數(shù)據(jù)包的接收程序。函數(shù)流程如圖2所示。

        圖2 網(wǎng)卡的初始化流程

        網(wǎng)卡的接收數(shù)據(jù)包接口函數(shù)為unsignedint tapdev_read(void),主要功能是判斷是否有新的數(shù)據(jù)包到來。如果有,則將數(shù)據(jù)存儲(chǔ)到全局變量uip_buf中供進(jìn)一步的處理,并返回?cái)?shù)據(jù)包的長(zhǎng)度。

        網(wǎng)卡的發(fā)送數(shù)據(jù)包接口函數(shù)int tapdev_send(void)通過調(diào)用Packet Driver的send_pkt()將封裝好的數(shù)據(jù)包發(fā)送到以太網(wǎng)。全局變量uip_len表示要發(fā)送的數(shù)據(jù)包長(zhǎng)度。發(fā)送數(shù)據(jù)包的實(shí)現(xiàn)代碼如下:

        2.3 應(yīng)用層協(xié)議實(shí)現(xiàn)

        HTTP(HyperText Transfer Protocol)超文本傳輸協(xié)議是用于從WWW服務(wù)器傳輸超文本到本地瀏覽器的傳送協(xié)議。要實(shí)現(xiàn)Web服務(wù)器[6]的功能,就需要在應(yīng)用層實(shí)現(xiàn)HTTP協(xié)議。HTTP協(xié)議采用的是客戶端與服務(wù)器模式。在客戶端產(chǎn)生數(shù)據(jù)請(qǐng)求,在服務(wù)器端產(chǎn)生應(yīng)答數(shù)據(jù),然后以Web頁面形式返回給客戶端。為了達(dá)到統(tǒng)一通用的要求,Web頁面采用HTML格式傳輸。

        設(shè)計(jì)中將應(yīng)用層函數(shù)http_call定義為宏UIP_APPCALL,主程序首先調(diào)用函數(shù)uip_listen開啟80號(hào)端口監(jiān)聽。如果監(jiān)測(cè)到遠(yuǎn)程連接請(qǐng)求,分配一個(gè)連接項(xiàng)給客戶端,然后等待客戶端的發(fā)送具體的數(shù)據(jù)請(qǐng)求。在接收到客戶端的數(shù)據(jù)請(qǐng)求后,根據(jù)相應(yīng)語法解析請(qǐng)求指令,將相關(guān)信息以網(wǎng)頁形式返回到客戶端。

        用戶只要通過標(biāo)準(zhǔn)的瀏覽器輸入相應(yīng)的IP地址就可以查看服務(wù)器提供的Web網(wǎng)頁。Web服務(wù)器軟件實(shí)現(xiàn)框圖如圖3所示。

        圖3 Web服務(wù)器軟件實(shí)現(xiàn)框圖

        3 Web服務(wù)器的應(yīng)用

        將設(shè)計(jì)的Web服務(wù)器應(yīng)用于華中數(shù)控HNC-21系統(tǒng),可遠(yuǎn)程監(jiān)控機(jī)床的當(dāng)前運(yùn)行位置、參數(shù)設(shè)置、報(bào)警信息等。設(shè)置數(shù)控系統(tǒng)的IP地址為192.168.0.2,同時(shí)設(shè)置相應(yīng)的子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān),然后將數(shù)控系統(tǒng)接入局域網(wǎng)。在接入同一局域網(wǎng)的PC機(jī)上打開瀏覽器窗口,在地址欄中輸入192.168.0.2,出現(xiàn)圖4所示界面,說明Web服務(wù)器已運(yùn)行成功。

        按照本設(shè)計(jì)中的配置參數(shù),整個(gè)系統(tǒng)中核心協(xié)議的實(shí)現(xiàn)代碼量約為20 KB,核心協(xié)議的實(shí)現(xiàn)占用的內(nèi)存約為10 KB,資源占用量很小,能很好地滿足資源有限環(huán)境下的應(yīng)用需求。采用移植精簡(jiǎn)的TCP/IP協(xié)議棧uIP,使數(shù)控系統(tǒng)具有網(wǎng)絡(luò)接入功能,是一種低成本、高效的網(wǎng)絡(luò)接入方案。通過實(shí)現(xiàn)Web服務(wù)器的功能,可以讓用戶使用統(tǒng)一、簡(jiǎn)潔的界面對(duì)數(shù)控系統(tǒng)進(jìn)行遠(yuǎn)程監(jiān)控,降低了用戶的使用難度。

        [1]ADAM D.uIP-a free small TCP/IP stack[EBOL].[2010-06-25].http://www.sic.se/~adam/download/uip-doc-0.6.pdf.

        [2]ADAM D.FullTCP/IP for8-bitarchitectures[EBOL].[2010-06-25].http://www.sics.se/~adam/mobisys2003.pdf.

        [3]Doxygen.uIP 0.9 reference manual[EBOL].[2010-06-25].http://www.sics.se/~adam/download/uip-0.9-refman.pdf.

        [4]FTP Software Inc.PC/TCP packet driver specification[EBOL].[2010-06-25].http://www.crynwr.com/packet_driver.html.

        [5]黃皓.ARP協(xié)議分析及在網(wǎng)絡(luò)安全中的應(yīng)用實(shí)現(xiàn) [D].成都:電子科技大學(xué),2007.

        [6]JEREMEY B.嵌入式系統(tǒng)Web服務(wù)器-TCP/IP Lean[M].陳向群,譯.北京:機(jī)械工業(yè)出版社,2003:313-319.

        猜你喜歡
        嵌入式設(shè)計(jì)
        何為設(shè)計(jì)的守護(hù)之道?
        《豐收的喜悅展示設(shè)計(jì)》
        流行色(2020年1期)2020-04-28 11:16:38
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
        電子制作(2019年7期)2019-04-25 13:17:14
        嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
        電子制作(2018年18期)2018-11-14 01:48:16
        瞞天過海——仿生設(shè)計(jì)萌到家
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        設(shè)計(jì)秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計(jì)叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        Altera加入嵌入式視覺聯(lián)盟
        欧美成免费a级毛片| 国产最新一区二区三区| 国产女主播福利在线观看| 国产国产精品人在线视| 性激烈的欧美三级视频| 国产av成人精品播放| 中文字幕久久熟女人妻av免费| 日本区一区二区三视频| 中文字幕肉感巨大的乳专区| 久久亚洲黄色| 精品日本韩国一区二区三区| 熟女肥臀白浆一区二区| 成在线人免费视频| 亚洲av色福利天堂| 国产人成在线成免费视频| 日本最新一区二区三区在线| 日日碰狠狠添天天爽五月婷| 无码AV高潮喷水无码专区线| 亚洲午夜久久久精品国产| 成人自拍一二在线观看| 成年女人色毛片| 精品国产一级毛片大全| 一本色道久久综合亚州精品 | 日本边添边摸边做边爱| 曰批免费视频播放免费直播| 国产精品视频免费的| 久久国产精品精品国产色| 午夜三级a三级三点在线观看| 亚洲 欧美 激情 小说 另类| 中文字幕人妻丝袜成熟乱| 久久蜜桃资源一区二区| 久久久亚洲欧洲日产国码αv| 狼人国产精品亚洲| 日本一区二区啪啪视频| 风韵少妇性饥渴推油按摩视频| 亚洲美国产亚洲av| 日本一区二区三本视频在线观看| 国产av一区二区三区在线播放| 亚洲性爱视频| 娇柔白嫩呻吟人妻尤物| 蕾丝女同一区二区三区|