国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

嵌入式T C P/I P協(xié)議棧的設(shè)計(jì)與應(yīng)用

2017-04-17 13:12:03中國船舶重工集團(tuán)第715研究所
電子世界 2017年16期
關(guān)鍵詞:PC機(jī)網(wǎng)絡(luò)通信數(shù)據(jù)包

中國船舶重工集團(tuán)第715研究所 許 光

嵌入式T C P/I P協(xié)議棧的設(shè)計(jì)與應(yīng)用

中國船舶重工集團(tuán)第715研究所 許 光

本文介紹了一種嵌入式TCP/IP協(xié)議棧的設(shè)計(jì)方法,使用ARM7處理器和網(wǎng)絡(luò)控制器ENC28J60搭建硬件平臺進(jìn)行了協(xié)議棧的移植,整個(gè)設(shè)計(jì)具有一定的參考價(jià)值。

嵌入式TCP/IP協(xié)議棧;ENC28J60;ARM7

1 引言

隨著計(jì)算機(jī)技術(shù)和網(wǎng)絡(luò)通信技術(shù)的發(fā)展,采用網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)的遠(yuǎn)程傳輸已經(jīng)成為工業(yè)領(lǐng)域的重要發(fā)展方向。與此同時(shí),以MCU、MPU等構(gòu)成的嵌入式系統(tǒng)也已經(jīng)廣泛地應(yīng)用于工業(yè)、家電等各個(gè)領(lǐng)域,嵌入式系統(tǒng)對網(wǎng)絡(luò)應(yīng)用的要求也越來越高,因此在嵌入式系統(tǒng)中實(shí)現(xiàn)網(wǎng)絡(luò)通信已經(jīng)成為電子設(shè)計(jì)領(lǐng)域的研究熱點(diǎn)[1]。

傳統(tǒng)的TCP/ IP協(xié)議在實(shí)現(xiàn)時(shí)需要占大量的存儲空間,這對于資源相對緊張的嵌入式系統(tǒng)而言顯得非常的龐大,研究并設(shè)計(jì)一個(gè)適合于嵌入式系統(tǒng)的簡易的TCP/ IP協(xié)議棧來實(shí)現(xiàn)嵌入式系統(tǒng)的網(wǎng)絡(luò)通信功能具有重要的現(xiàn)實(shí)意義。

2 嵌入式TCP/IP協(xié)議棧的設(shè)計(jì)

2.1 整體設(shè)計(jì)框架

我們的應(yīng)用環(huán)境中需要使用TCP協(xié)議與設(shè)備進(jìn)行通信,鑒于整個(gè)TCP/IP協(xié)議的分層體系,我們只要實(shí)現(xiàn)幾個(gè)核心功能協(xié)議即可,圍繞著這個(gè)設(shè)計(jì)思想即可進(jìn)行協(xié)議棧的裁剪與壓縮,整個(gè)設(shè)計(jì)的重點(diǎn)一目了然:即需要實(shí)現(xiàn)ARP、IP、ICMP以及TCP,通信不涉及應(yīng)用層的協(xié)議,所以應(yīng)用層不作具體實(shí)現(xiàn),此外針對特定的硬件平臺需要提供網(wǎng)絡(luò)驅(qū)動層的接口。

2.2 網(wǎng)絡(luò)驅(qū)動設(shè)計(jì)

網(wǎng)絡(luò)驅(qū)動主要功能是設(shè)置網(wǎng)絡(luò)控制器ENC28J60,實(shí)現(xiàn)它發(fā)送和接收以太網(wǎng)數(shù)據(jù)包的功能。這個(gè)部分需要為上層協(xié)議提供三個(gè)功能:初始化接口ENC28J60_Init()、數(shù)據(jù)包發(fā)送功能ENC28J60_ SendPkt()以及數(shù)據(jù)包接收功能ENC28J60_RecPkt(),這也是實(shí)現(xiàn)系統(tǒng)的整個(gè)網(wǎng)絡(luò)通信的基礎(chǔ)[2]。

2.3 ARP的設(shè)計(jì)

ARP協(xié)議主要用于IP地址和采用不同網(wǎng)絡(luò)技術(shù)的硬件地址的解析與映射,所以該協(xié)議的核心任務(wù)就是能夠?qū)ζ渌麢C(jī)器發(fā)來的ARP請求報(bào)文進(jìn)行一個(gè)應(yīng)答,以便于下一步能夠進(jìn)行通信連接和傳輸。所以在我們這個(gè)協(xié)議棧中我們需要實(shí)現(xiàn)ARP的請求和應(yīng)答功能。

2.4 IP和ICMP的設(shè)計(jì)

IP協(xié)議的主要功能就是實(shí)現(xiàn)IP數(shù)據(jù)報(bào)的封裝與解封裝,另外一個(gè)重要的功能就是驗(yàn)證IP數(shù)據(jù)報(bào)的首部是否正確,鑒于實(shí)際使用的嵌入式系統(tǒng)的數(shù)據(jù)傳輸量不是很大(一般每次通信只有幾十個(gè)字節(jié)),我們在IP協(xié)議的設(shè)計(jì)中對于IP數(shù)據(jù)包的頭部使用固定的長度(即20個(gè)字節(jié)),另外IP數(shù)據(jù)報(bào)也不進(jìn)行分組傳輸。此外,為了檢測網(wǎng)絡(luò)的連通性,我們也需要實(shí)現(xiàn)ICMP協(xié)議,這樣通過PC機(jī)的PING測試即可知道設(shè)備是否連接正常。

2.5 TCP的設(shè)計(jì)

在TCP/IP協(xié)議體系中,TCP協(xié)議是最重要的一個(gè)協(xié)議,在實(shí)現(xiàn)上也是比較復(fù)雜的一個(gè)協(xié)議,針對我們這個(gè)特定的系統(tǒng),我們將TCP協(xié)議進(jìn)行一些簡化處理:第一,對于打開的TCP端口僅僅處于被動連接狀態(tài),即當(dāng)有連接請求到來時(shí)才進(jìn)行通信,空閑時(shí)只進(jìn)行端口的查詢,所以硬件系統(tǒng)只作為服務(wù)器的角色進(jìn)行工作;第二,去掉了“滑動窗口”和擁塞控制機(jī)制;第三,發(fā)生數(shù)據(jù)丟失時(shí)不發(fā)送錯(cuò)誤報(bào)告也不進(jìn)行數(shù)據(jù)的重傳。經(jīng)過簡化之后,TCP協(xié)議在實(shí)現(xiàn)上就變得相對容易,但是核心功能依然完備[3]。

3 硬件平臺簡介

系統(tǒng)的硬件部分主要核心處理器ARM7和網(wǎng)絡(luò)控制器ENC28J60組成。ARM7負(fù)責(zé)運(yùn)行整個(gè)TCP/IP協(xié)議棧軟件,同時(shí)需要對收發(fā)的數(shù)據(jù)包進(jìn)行處理;ENC28J60負(fù)責(zé)發(fā)送和接收網(wǎng)絡(luò)數(shù)據(jù)包,整個(gè)硬件平臺采用3.3V的統(tǒng)一電源進(jìn)行供電,ARM7通過SPI接口與ENC28J60通信,最終實(shí)現(xiàn)設(shè)備與PC機(jī)的交互。

4 TCP/IP協(xié)議棧在LPC2103上的移植與測試

設(shè)計(jì)完協(xié)議棧之后我們需要將其移植到硬件平臺中,為了便于數(shù)據(jù)的管理,在ARM7中具體實(shí)現(xiàn)時(shí),我們使用一個(gè)全局的Buf數(shù)組來存放一個(gè)完整的MAC數(shù)據(jù)幀,每次發(fā)送數(shù)據(jù)包之前,都按照數(shù)據(jù)幀的格式將這個(gè)數(shù)據(jù)幀填充完畢,然后調(diào)用ENC28J60_ SendPkt()發(fā)送出去;同樣,當(dāng)ENC28J60收到數(shù)據(jù)時(shí),我們?nèi)匀粚⒄麄€(gè)數(shù)據(jù)幀讀入這個(gè)全局緩沖區(qū)中,然后依次進(jìn)行數(shù)據(jù)的解封裝操作。最后,為了驗(yàn)證程序的正確性,我們將設(shè)計(jì)的程序下載到的硬件平臺中,用網(wǎng)線將硬件平臺與計(jì)算機(jī)相連,同時(shí)借助于Wireshark進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲與分析。通過在PC機(jī)上執(zhí)行簡單的PING測試可以驗(yàn)證整個(gè)系統(tǒng)的連通性,然后通過網(wǎng)絡(luò)調(diào)試助手測試TCP的通信功能[4]。

5 結(jié)語

本文設(shè)計(jì)了一個(gè)面向嵌入式系統(tǒng)的TCP/IP協(xié)議棧,運(yùn)輸層使用TCP協(xié)議進(jìn)行通信,所以數(shù)據(jù)傳輸也能得到保證,整個(gè)設(shè)計(jì)具有很好的參考價(jià)值。

[1]張青青.LwIP協(xié)議棧的移植[J].信息系統(tǒng)工程,2015(8):139.

[2]Microchip Technology Inc.ENC28J60數(shù)據(jù)手冊[OL].http:// www.microchip.com/.

[3]謝希仁.計(jì)算機(jī)網(wǎng)絡(luò)(第6版)[M].北京:電子工業(yè)出版,2013,6.

[4]W.Richard Stevens.TCP/IP詳解卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2000,4.

Design and application of Embedded TCP/IP stack

XU Guang
(Institute of 715,China Shipbuilding Industry Corporation)

This paper introduces a method of designing an embedded TCP/IP stack.The article also shows how to run the stack in ARM7 process with the network controller ENC28j60.The method has certain reference value.

Embedded TCP/IP stack;ENC28J60;ARM7

猜你喜歡
PC機(jī)網(wǎng)絡(luò)通信數(shù)據(jù)包
基于網(wǎng)絡(luò)通信的智能照明系統(tǒng)設(shè)計(jì)
電子制作(2019年15期)2019-08-27 01:11:48
SmartSniff
網(wǎng)絡(luò)通信中信息隱藏技術(shù)的應(yīng)用
基于網(wǎng)絡(luò)通信的校園智能音箱設(shè)計(jì)
電子制作(2018年1期)2018-04-04 01:48:30
基于PC機(jī)與單片機(jī)的多機(jī)通信技術(shù)及抗干擾方法
談計(jì)算機(jī)網(wǎng)絡(luò)通信常見問題及技術(shù)發(fā)展
電子制作(2017年17期)2017-12-18 06:41:06
基于三菱FXPLC的感應(yīng)淬火機(jī)床與PC機(jī)的串行通信實(shí)現(xiàn)
VC.NET下實(shí)現(xiàn)dsPIC單片機(jī)與PC機(jī)的通信
電子制作(2017年23期)2017-02-02 07:16:47
基于Libpcap的網(wǎng)絡(luò)數(shù)據(jù)包捕獲器的設(shè)計(jì)與實(shí)現(xiàn)
視覺注意的數(shù)據(jù)包優(yōu)先級排序策略研究
武邑县| 改则县| 涡阳县| 雅江县| 丹寨县| 来凤县| 哈尔滨市| 黑山县| 武宣县| 苏州市| 白朗县| 浦城县| 玛曲县| 平湖市| 南丰县| 上饶市| 安庆市| 沁阳市| 黔江区| 桃园县| 同德县| 阿勒泰市| 莎车县| 枝江市| 宁安市| 桃园县| 洱源县| 保靖县| 无锡市| 曲麻莱县| 仲巴县| 灵宝市| 肃南| 德兴市| 高清| 平远县| 班玛县| 包头市| 杭锦后旗| 保定市| 洛川县|