999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2014-01-21 00:53:24顏詩洋
電子設(shè)計工程 2014年22期
關(guān)鍵詞:嵌入式設(shè)備

顏詩洋

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

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

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

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

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

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

1)應(yīng)用層

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

2)傳輸層

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

3)網(wǎng)絡(luò)層

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

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

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

4)鏈路層

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2.6 協(xié)議棧的總體結(jié)構(gòu)

在協(xié)議棧運(yùn)行的初始階段,需要進(jìn)行系統(tǒng)初始化,并啟動所有定時器。接下來,判斷以太網(wǎng)數(shù)據(jù)有沒有到達(dá),若到達(dá),則進(jìn)行相應(yīng)的處理。對于以太網(wǎng)數(shù)據(jù)包進(jìn)行處理的流程圖在圖3中給出。若ARP定時器定時時間到,且沒有ARP應(yīng)答,則重新發(fā)送ARP請求。若TCP在連接狀態(tài)且無活動一定時間,則啟動關(guān)閉連接。同時,如果TCP超時重發(fā)時間到,則啟動TCP超時重發(fā)機(jī)制。根據(jù)TCP/IP協(xié)議的規(guī)定,到達(dá)一定時間后,ARP表項(xiàng)就會老化,啟動更新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位機(jī)C8051F340及8位以太網(wǎng)卡CP2200搭建平臺,對TCP/IP協(xié)議棧進(jìn)行測試。需移植本協(xié)議棧,并編寫網(wǎng)卡驅(qū)動程序,除網(wǎng)卡初始化部分外,網(wǎng)卡驅(qū)動被封裝成兩個函數(shù),eth_send()和eth_receive()。其中,eth_send()發(fā)送以太網(wǎng)數(shù)據(jù)包,在上層發(fā)送數(shù)據(jù)時被調(diào)用。eth_receive()接收以太網(wǎng)數(shù)據(jù)包,接收到數(shù)據(jù)包后,即啟動數(shù)據(jù)接收流程。系統(tǒng)初始化后,設(shè)置嵌入式設(shè)備的IP地址為固定IP地址,編寫HTTP協(xié)議作為應(yīng)用層,構(gòu)建Web服務(wù)器。測試結(jié)果如圖4所示。

圖4 測試結(jié)果圖Fig.4 Diagram of testing result

4 結(jié)論

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

[1]陳立家,焦戰(zhàn)立,熊文龍.基于精簡TCP/IP協(xié)議棧網(wǎng)絡(luò)服務(wù)器的實(shí)現(xiàn) [J].武漢理工大學(xué)學(xué)報:交通科學(xué)與工程版,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].范建華,等,譯.北京:機(jī)械工業(yè)出版社,2000.

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

[4]王海燕,魏洪波.嵌入式WEB中TCP/IP協(xié)議棧的設(shè)計與實(shí)現(xiàn)[J].微計算機(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].計算機(jī)工程與應(yīng)用,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.

猜你喜歡
嵌入式設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于VB6.0+Access2010開發(fā)的設(shè)備管理信息系統(tǒng)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
如何在設(shè)備采購中節(jié)省成本
原來他們都是可穿戴設(shè)備
主站蜘蛛池模板: 日本高清免费一本在线观看| 亚洲天堂网视频| 精品伊人久久久香线蕉 | 91久久国产热精品免费| 久久精品日日躁夜夜躁欧美| 最新亚洲av女人的天堂| 精品无码一区二区三区在线视频| 中文字幕日韩久久综合影院| 欧美中文字幕一区| 亚洲av中文无码乱人伦在线r| 一级高清毛片免费a级高清毛片| 人妻无码一区二区视频| 精品自拍视频在线观看| 97国产在线视频| 制服丝袜一区二区三区在线| av大片在线无码免费| 日韩免费毛片视频| 一级成人a毛片免费播放| 日本精品影院| 99在线观看精品视频| 华人在线亚洲欧美精品| 91精品国产综合久久不国产大片| 久久精品国产国语对白| 538国产视频| 97人妻精品专区久久久久| 亚洲精品爱草草视频在线| 一区二区欧美日韩高清免费| 97在线碰| 国产精品55夜色66夜色| 亚洲国产无码有码| 2021国产乱人伦在线播放| 国产在线啪| 亚亚洲乱码一二三四区| 亚洲区视频在线观看| 99精品免费在线| 成人噜噜噜视频在线观看| 国产精品v欧美| 丰满人妻被猛烈进入无码| 亚洲91精品视频| 欧美第九页| 欧美一级黄色影院| 亚洲三级色| 精品夜恋影院亚洲欧洲| 国产精品自拍露脸视频| 热思思久久免费视频| 最新国产网站| 国产一在线观看| 欧美精品在线观看视频| 免费一级毛片在线播放傲雪网| 精品人妻AV区| 午夜国产精品视频黄| 国产尤物视频网址导航| 五月天久久综合| 欧美日韩中文字幕在线| 色老头综合网| 中文字幕伦视频| 国产精品嫩草影院av| 国产丰满成熟女性性满足视频| 99热这里只有精品免费国产| 婷婷六月激情综合一区| 亚洲国产成人自拍| 亚洲天堂伊人| 久久性妇女精品免费| 在线不卡免费视频| 真人高潮娇喘嗯啊在线观看| 自拍欧美亚洲| 国产一级一级毛片永久| 国产v精品成人免费视频71pao | 全免费a级毛片免费看不卡| 99精品久久精品| 小蝌蚪亚洲精品国产| 无码专区在线观看| 成人精品视频一区二区在线| 91精品啪在线观看国产91| 午夜日b视频| 成人久久18免费网站| 国产精品高清国产三级囯产AV| 国产av色站网站| 亚洲成人手机在线| 亚洲日韩精品综合在线一区二区| 亚洲不卡av中文在线| 国产簧片免费在线播放|