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

        ?

        微型嵌入式TCP/IP協(xié)議棧開發(fā)

        2014-01-21 00:53:24顏詩洋
        電子設計工程 2014年22期
        關鍵詞:嵌入式設備

        顏詩洋

        (河海大學 計 算機與信息學院,江蘇 南 京 2 10098)

        網(wǎng)絡技術是影響人類的重大技術之一,隨著網(wǎng)絡技術的不斷發(fā)展,出現(xiàn)了各種網(wǎng)絡接入設備。但是,以特定功能為中心的小型嵌入式系統(tǒng)的網(wǎng)絡化越來越引起人們的注意。對于單片機技術為核心小型嵌入式設備,如何將其接入到互聯(lián)網(wǎng),以實現(xiàn)信息與資源的共享成為研究的熱點問題。

        目前嵌入式網(wǎng)絡的主要實現(xiàn)方法,就是在嵌入式設備中實現(xiàn)TCP/IP協(xié)議棧。TCP/IP協(xié)議是網(wǎng)絡互聯(lián)的標準協(xié)議,如果能夠在嵌入式設備中實現(xiàn)TCP/IP協(xié)議棧,也就能夠實現(xiàn)了嵌入式設備之間及與其他接入設備的網(wǎng)絡互聯(lián)。文中針對8位及16位機,開發(fā)了一種微型TCP/IP協(xié)議棧,實現(xiàn)了該協(xié)議族中主要的協(xié)議,并對其進行了測試。

        1 TCP/IP協(xié)議棧介紹

        TCP/IP協(xié)議最先是在UNIX系統(tǒng)里實現(xiàn)的,后來的LINUX、DOS、Windows也實現(xiàn)了TCP/IP,隨后TCP/IP協(xié)議也被移植到其它嵌入式的處理器上。由于資源的原因,不可能在8位機上直接移植LINUX的協(xié)議棧。完整的TCP/IP協(xié)議族有幾百種通信協(xié)議組成,在小型嵌入式設備中,只需根據(jù)需要移植幾種最重要的協(xié)議即可。

        下面對本文需要實現(xiàn)的不同層內的協(xié)議進行介紹:

        1)應用層

        應用層基本上是根據(jù)需求來進行設計,如果需要網(wǎng)頁服務,則需要實現(xiàn)HTTP協(xié)議,類似的如果需要實現(xiàn)Email功能,則要實現(xiàn)相應的SMTP協(xié)議。

        2)傳輸層

        實現(xiàn)傳輸層協(xié)議需要與應用層的協(xié)議相適應[1]。如果只實現(xiàn)了UDP協(xié)議而沒有實現(xiàn)TCP協(xié)議,則應用層與TCP協(xié)議對應的HTTP,FTP,TELNET都無法實現(xiàn),只能實現(xiàn)TFTP等協(xié)議[2]。為了能實現(xiàn)更多的應用層協(xié)議,滿足實際需求,本文實現(xiàn)了傳輸層的TCP與UDP協(xié)議。

        3)網(wǎng)絡層

        網(wǎng)絡層的IP協(xié)議是整個TCP/IP協(xié)議族中最核心和最重要的協(xié)議[2],它是不同網(wǎng)絡之間進行互聯(lián)的必要條件,也是其他高層協(xié)議賴以運行的基礎,為了使TCP/IP協(xié)議棧能夠完成基本工作,必須實現(xiàn)IP協(xié)議。

        而對于網(wǎng)絡層的ICMP協(xié)議,出于對系統(tǒng)資源的考慮,在嵌入式Web服務器應用中,只要實現(xiàn)回送請求和回送應答就足夠了。

        一般都認為ARP協(xié)議屬于網(wǎng)絡層,在以太網(wǎng)的協(xié)議中,數(shù)據(jù)傳輸都要以網(wǎng)卡的MAC地址作為唯一的標識,因此需要將IP地址轉換為物理上的MAC地址,對于TCP/IP協(xié)議棧來說,這種轉換是必不可少的,因此要實現(xiàn)ARP協(xié)議。

        4)鏈路層

        由于現(xiàn)代集成電路技術的發(fā)展,出現(xiàn)了很多集成以太網(wǎng)協(xié)議的網(wǎng)卡,這些網(wǎng)卡能夠在硬件上實現(xiàn)以太網(wǎng)的協(xié)議,只要開發(fā)相應的驅動程序即可。

        2 TCP/IP協(xié)議棧開發(fā)與實現(xiàn)

        2.1 ARP協(xié)議的實現(xiàn)

        ARP(Address Resolution Protocol)稱作地址解析協(xié)議,是TCP/IP協(xié)議族中重要的組成部分,主要負責將IP地址轉換成物理MAC地址,ARP協(xié)議的基本功能就是根據(jù)IP地址,能夠查詢相應的物理MAC地址,從而保證可靠的通信。

        通用計算機系統(tǒng)中,ARP高速緩存一般設計成雙向數(shù)據(jù)鏈的形式,這樣整個緩存可以方便地進行動態(tài)增減。但對資源有限的嵌入式系統(tǒng)來說,這顯然是不現(xiàn)實的。因此ARP的地址緩存采用了線性數(shù)組形式的結構。它在內存中是連續(xù)線性存儲的,這樣做的優(yōu)點是查找速度快。

        ARP定時器在ARP協(xié)議的實現(xiàn)時是必要的,當嵌入式設備發(fā)送ARP請求后,網(wǎng)絡上并無反應,這時,如果ARP定時時間到,就應當重新發(fā)送ARP請求。

        對ARP表的維護在ARP協(xié)議的實現(xiàn)中也是至關重要的,ARP表就是IP地址和MAC地址對應的表項[3],在嵌入式系統(tǒng)中,可以設置ARP表老化的時間為20分鐘,如果20分鐘時間到,則將ARP表項移除,從新的ARP請求—回應關系來獲取新表項。

        2.2 IP協(xié)議的實現(xiàn)

        IP協(xié)議是TCP/IP協(xié)議族中最為核心的協(xié)議,所有TCP,UDP,ICMP都要通過IP封包的形式實現(xiàn)傳輸,但是IP提供的是無連接,不可靠的服務。

        在通過計算機的網(wǎng)絡實現(xiàn)中,IP比較復雜,但在嵌入式TCP/IP協(xié)議棧中,只需實現(xiàn)IP的發(fā)送,接受,和轉交即可。在通用計算機中,可以處理帶IP選項和IP分片數(shù)據(jù)包[3],但在嵌入式設備中,沒有大量的數(shù)據(jù)要處理,這兩項功能可以不實現(xiàn),而且對于鏈路層是以太網(wǎng)的協(xié)議棧,完全可以不考慮分片和重組的功能,這樣大大節(jié)省了寶貴的RAM資源,對于TCP/IP協(xié)議棧的功能沒有太大影響。

        2.3 ICMP協(xié)議的實現(xiàn)

        ICMP協(xié)議是TCP/IP協(xié)議族在網(wǎng)絡層的一個子協(xié)議,用于在IP主機、路由器之間傳遞控制消息??刂葡⑹侵妇W(wǎng)路通不通、主機是否可達、路由是否可用等網(wǎng)絡本身的消息。這些控制消息雖然并不傳輸用戶數(shù)據(jù),但是對于用戶數(shù)據(jù)的傳遞起著重要的作用。作為服務器方的小型嵌入式設備,只需實現(xiàn)ICMP的回顯請求和應答報文即可[4]。PING是最常用的基于ICMP的服務,為了使用戶測試網(wǎng)絡連接,應當能對PING請求做出應答。

        2.4 UDP協(xié)議的實現(xiàn)

        UDP與TCP協(xié)議同屬傳輸層,但是,與TCP協(xié)議不同的是,UDP協(xié)議提供的是無連接,不可靠的傳輸,因此,UDP主要是為那些需要一種簡單卻快速的運輸協(xié)議的應用而設計的。UDP協(xié)議沒有復雜的機制,只要按照協(xié)議標準實現(xiàn)即可。

        2.5 TCP協(xié)議的實現(xiàn)

        TCP協(xié)議提供的是面向連接,可靠的通信服務。因此,TCP的實現(xiàn)機制比較復雜。TCP通過端口號來實現(xiàn)各種應用之間的端到端的連接。在TCP協(xié)議中,往返時間估計、定時重傳、滑動窗口協(xié)議、流量控制、擁塞控制、TCP連接狀態(tài)等都是比較重要的機制。對于通用計算機來說,由于沒有資源的限制,一般都實現(xiàn)了滑動窗口協(xié)議,但是對于8位及16位嵌入式設備來說,由于資源的限制,實現(xiàn)比較困難。在8位和16位嵌入式系統(tǒng)中流量控制和擁塞控制也不需要考慮。TCP連接狀態(tài)是TCP有限狀態(tài)機的必要條件。嵌入式設備是需要作為服務器,因此,可以將標準TCP有限狀態(tài)機中的FIN_SENT,FIN_WAIT1,FIN_WAIT2,TIME_WAIT狀態(tài)都略去,只實現(xiàn)服務器端的狀態(tài)轉換機制。這樣,既節(jié)省了系統(tǒng)開銷,同時也保證了所有的數(shù)據(jù)段都能安全正確地到達目的端[4]。本協(xié)議棧實現(xiàn)了TCP的超時重傳機制,提高了傳輸?shù)目煽啃浴?/p>

        圖1 TCP連接狀態(tài)轉換圖Fig.1 State diagram of the TCP connection

        2.6 協(xié)議棧的總體結構

        在協(xié)議棧運行的初始階段,需要進行系統(tǒng)初始化,并啟動所有定時器。接下來,判斷以太網(wǎng)數(shù)據(jù)有沒有到達,若到達,則進行相應的處理。對于以太網(wǎng)數(shù)據(jù)包進行處理的流程圖在圖3中給出。若ARP定時器定時時間到,且沒有ARP應答,則重新發(fā)送ARP請求。若TCP在連接狀態(tài)且無活動一定時間,則啟動關閉連接。同時,如果TCP超時重發(fā)時間到,則啟動TCP超時重發(fā)機制。根據(jù)TCP/IP協(xié)議的規(guī)定,到達一定時間后,ARP表項就會老化,啟動更新ARP表。

        圖2 協(xié)議??傮w流程圖Fig.2 Flowchart of the TCP/IP stack

        圖3 數(shù)據(jù)接收流程圖Fig.3 Flowchart of data receiving

        3 測試

        采用Silicon labs公司的8位機C8051F340及8位以太網(wǎng)卡CP2200搭建平臺,對TCP/IP協(xié)議棧進行測試。需移植本協(xié)議棧,并編寫網(wǎng)卡驅動程序,除網(wǎng)卡初始化部分外,網(wǎng)卡驅動被封裝成兩個函數(shù),eth_send()和eth_receive()。其中,eth_send()發(fā)送以太網(wǎng)數(shù)據(jù)包,在上層發(fā)送數(shù)據(jù)時被調用。eth_receive()接收以太網(wǎng)數(shù)據(jù)包,接收到數(shù)據(jù)包后,即啟動數(shù)據(jù)接收流程。系統(tǒng)初始化后,設置嵌入式設備的IP地址為固定IP地址,編寫HTTP協(xié)議作為應用層,構建Web服務器。測試結果如圖4所示。

        圖4 測試結果圖Fig.4 Diagram of testing result

        4 結論

        本文針對TCP/IP協(xié)議和嵌入式設備的特點,對TCP/IP協(xié)議族進行了裁剪,使之能夠為嵌入式設備提供服務,同時保證TCP/IP基本功能能夠實現(xiàn)。不同于其他精簡協(xié)議棧[5],為了能夠實現(xiàn)Web服務器功能以及其他重要應用層協(xié)議,實現(xiàn)了TCP協(xié)議?;贑8051F340和CP2200的平臺,對Web服務器進行了測試,測試成功。如果條件成熟,可以考慮將協(xié)議棧移植到無線平臺,這樣,各種信息家電和工業(yè)設備的就可以更加方便的接入網(wǎng)絡。

        [1]陳立家,焦戰(zhàn)立,熊文龍.基于精簡TCP/IP協(xié)議棧網(wǎng)絡服務器的實現(xiàn) [J].武漢理工大學學報:交通科學與工程版,2007,31(3):565-568.CHEN Li-jia,JIAO Zhan-li,XIONG Wen-long.Web Server Based on A Reduced TCP/IP Stack[J].Journal of Wuhan U-niversity of Technology:Transportation Science&Engineering,2007,31(3):565-568.

        [2]Stevens W R.TCP/IP詳解(卷1:協(xié)議)[M].范建華,等,譯.北京:機械工業(yè)出版社,2000.

        [3]Scaglia S.嵌入式WEB中TCP/IP基礎,實現(xiàn)及應用[M].潘琢金,等,譯.北京:北京航空航天大學出版社,2008.

        [4]王海燕,魏洪波.嵌入式WEB中TCP/IP協(xié)議棧的設計與實現(xiàn)[J].微計算機信息,2007,23(1-2):59-73.WANG Hai-yan,WEI Hong-bo.Design and Realization of TCP/IP Protocol Stack in the Embedded Web Server[J].Microcomputer Information,2007,23(1-2):59-73.

        [5]CHENG Lei,HU Jing-chun.Design and Implementation of Simplified TCP/IP Stack Based on Embedded Network Interface [J].Advances in Intelligent and Soft Computing,2012(2):147-153.

        [6]李明,康靜秋,賈智平.嵌入式TCP/IP協(xié)議棧的研究與開發(fā)[J].計算機工程與應用,2002(16):118-135.LI Ming,KANG Jing-qiu,JIA Zhi-ping.The research and development of embedded TCP/IP stack[J].Computer Engineering and Applications,2002(16):118-135.

        [7]LI Yun-chen,Chiang Meiling.LyraNET:a zero-copy TCP/IP protocol stack for embedded operating systems[C]//The 11th IEEE International Conference on Embedded and Real-time Computing Systems and Applications,Hong Kong,2005:123-128.

        猜你喜歡
        嵌入式設備
        諧響應分析在設備減振中的應用
        TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應用
        電子制作(2019年7期)2019-04-25 13:17:14
        基于VB6.0+Access2010開發(fā)的設備管理信息系統(tǒng)
        嵌入式系統(tǒng)通信技術的應用
        電子制作(2018年18期)2018-11-14 01:48:16
        基于MPU6050簡單控制設備
        電子制作(2018年11期)2018-08-04 03:26:08
        搭建基于Qt的嵌入式開發(fā)平臺
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        500kV輸變電設備運行維護探討
        如何在設備采購中節(jié)省成本
        原來他們都是可穿戴設備
        消費者報道(2014年7期)2014-07-31 11:23:57
        国产日韩精品中文字无码| 一区二区三区四区草逼福利视频| 日本真人添下面视频免费| 亚洲高清一区二区精品| 无套内射在线无码播放| 免费中文熟妇在线影片| 国产91福利在线精品剧情尤物| 国产精品视频免费一区二区三区| 久久国产精品婷婷激情| 夜夜揉揉日日人人青青| 激情综合欧美| 亚洲精品久久久中文字| 在线观看中文字幕二区| 亚洲一区二区三区无码久久| 亚洲第一网站免费视频| 日本经典中文字幕人妻| 国产桃色一区二区三区| 日韩人妻无码精品久久免费一 | 日本一区二区三级在线观看 | 天天做天天爱天天综合网| 无码无在线观看| 国产一区二区av免费观看| 精品区2区3区4区产品乱码9| 欧美亚洲日本在线| 国产av一区二区三区香蕉| 中出人妻希奇杰卡西av| 88久久精品无码一区二区毛片| 国产成人精品日本亚洲专区6| 久久青青草原一区网站| 俺去啦最新地址| 中文字幕av日韩精品一区二区| 国产免费人成视频在线观看播放| 日本一区三区三区在线观看| 男男啪啪激烈高潮cc漫画免费| av色综合网站| 国产av精选一区二区| 先锋五月婷婷丁香草草| 国产在线一区二区三区av| 91精品久久久久含羞草| 韩国三级黄色一区二区| 免费va国产高清大片在线|