您的位置 首页 分销

根据8位机嵌入式TCP通讯速度研究方案

电子产品世界,为电子工程师提供全面的电子产品信息和行业解决方案,是电子工程师的技术中心和交流中心,是电子产品的市场中心,EEPW 20年的品牌历史,是电子工程师的网络家园

本文经过对TCP协议详细低层完成进程中各个环节对时刻耗费的剖析,找出了进步体系功率,进步通讯速度的办法。实践证明这样的规划进步了体系的功率,进步数据传输率,降低了网络上传送冗余分组的数量,显着改善了体系功用。特别适用于高速、低数据量的收集或测控体系。

0导言

长久以来,串行RS 232和RS 485通讯技能一直是主动化仪器、外表中常用的通讯规范。但近年来,跟着核算机技能、网络技能、通讯技能的开展及其在工业主动化体系中的运用,使得工业主动化体系和仪器、外表范畴加快了向智能化、数字化和网络化方向开展的进程。呈现了电力线通讯技能、无线红外和蓝牙通讯技能、根据USB接口的通讯技能、现场总线技能以及嵌入式Internet接入技能等新技能。其间根据嵌入式Internet接入技能的网络化仪器是近年提出的全新概念,它是仪器检测技能与现代核算机技能、网络通讯技能、微电子技能深度交融的产品口。检测仪器接入Internet,成为履行丈量和操控使命的仪器Web站点,这种网络化仪器能够像一般仪器那样按设定程序对相关物理量进行主动测控、存储和显现等,一起答应已授权的用户经过Internet长途对仪器进行操作、监控、故障诊断等。在详细的运用中,呈现了不少问题,其间之一便是传输率和体系利用率不高,本文正是在这种布景下发生的。

1 TCP通讯硬件接口

典型的8位机选用TCP协议接入Internet的以太网网络接口如图1所示。RTL8019AS以其优异的性价比,成为现在单片机以太网体系的首选以太网接口芯片。该芯片契合IEEE802.3 10Base2和10BaseT规范,具有主动奇偶检测和纠错功用,支撑全双作业业形式。如图1中,RTL8019AS作业于8位跳线形式,数据线SD0~SD7与8位单片机(51系列)的数据线(AD0~AD7)相连,地址线A0~A4与8位单片机的地址线(A0~A4)相连。读写信号经74S04发生。RTL8019AS的基地址(合作引脚34(AEN))为0x8000H,对应RTL8019AS内部地址0x300H.RTL8019AS经过网络变压器HR901170A和RJ45接口与以太网相衔接入internet,阻隔网络上的搅扰信号。


图1 RTL8019AS与8位单片机的接口图

2单片机体系中TCP通讯问题剖析

TCP协议是TCP/IP协议簇的中心,也是最杂乱的协议。但由于其共同的主动检错和重发机制,完成了数据的牢靠通讯,但也正是由于其杂乱性,在8位机上完成TCP协议通讯耗时就比较多,传输速率低下。TCP协议的数据通讯进程,以客户机为例进行剖析。图2是典型的收集体系TCP数据通讯的时刻序列图。在树立衔接后,由客户机向服务器发送数据。假定此刻客户机的启始序列号为100,每次固定发送100字的样数据。服务器担任承受该数据,但不下发任何送数据,只承认所接纳的数据,其启始序列号为50.关于单片机体系,由于其处理速度和内存资源的约束,一般的处理流程如图3.


图2 TCL数据通讯的时刻序列


图3 单片机体系发送数据流程图

由于服务器(一般为装有windows体系的微机或工业核算机)并不是收到数据就直接发送承认,而是继续等候承受序列中的其他数据。这就会常常触发服务器的承受延时的承认算法,这将导致剩余的数据不能在200 ms内发送。关于高速交互的采样体系而言,这将发生显着的时延。Host Requirements RFC声明TCP有必要完成Nagle算法,但有必要为用户供给一种办法来封闭该算法在某个衔接上的履行。该算法要求TCP衔接上最多只能有一个未被承认的未完成的小分组,在该分组的承认抵达之前不能发送其他的小分组。实践运用Sniffer监听软件也得到相同的成果,在接纳到下位机的数据包后,上位机延时200 ms后,发送承认包,其传输速度为10 packet/s,实践网络利用率缺乏1%。由图3可见,只需进步服务器承认发送的速度,就能够进步通讯的速度。关于本体系选用33M的主频(C051F单片机)发送一个分组(1 024 B)和承受一个承认分组(60 B)总用时为3~3.5 ms,封闭Nagle算法后,运用Sniffer监听剖析数据包,体系上位机在收到数据包后,当即发送承认包,期间只要0.3 ms左右的网络延时,体系速率进步到设定的20 ms发送一次采样数据,即100 packet/s,体系利用率进步为为本来的10倍。

但是关于有些运用场合,每次采样的数据量并不大(小于100 B),选用封闭Nagle算法来进步传输率是不抱负的,由于这样增加了网络上传输的分组的数量,一起增大了客户机(下位机)处理这些多出来的分组的时刻耗费,降低了体系利用率,增大了传输犯错率,大幅度的削减了继续传输时刻。试验中,当选用高频单片机(100M主频),将数据通讯速率进步到1 000 packet/s,发现传输过错的数据包抵达5%,一起传输继续时刻由本来的大于48 h不间断,削减为缺乏2 h,体系利用率也只要不到2%,一起已无法继续进步传输速度(由硬件条件约束)。为处理这个问题,同过剖析详细TCP通讯的各环节对时刻的耗费进程,寻求在已有的硬件基础上,经过软件来处理问题。

首先是数据分组打包。这儿的耗时与要打包的数据量和主频有关。为了便于核算,以下都用最简略的MCS-8051单片机为例进行剖析。关于发送100 B的数据,外界晶振为12M的51单片机,其一个机器周期为1μs.典型的打包代码(包含TCP包和IP包)的履行总周期约为2 200个机器周期(详细巨细与编写软件所运用的语言和编译器有关),用时为2.2 ms.

其次是数据备份。TCP协议需求超时重发,因此备份已宣布而未收到承认的数据分组是必要的。这儿的耗时与数据量和主频以及数据本备份的存储器类型有关。关于100 B数据和40 B的头部(包含TCP包的20 B头部和IP包的20 B头部),一共140 B的数据备份,选用外部存储器,典型代码的履行周期为1 130个机器周期,用时为1.13 ms.

再次是发送数据分组。这儿的耗时也与数据量和主频有关。典型发送分组代码的履行总周期为2 200个机器周期,耗时为2.2 ms.

最终承认分组。这儿要做的作业有:检测接口芯片,判别分组类型,拆分IP包,拆分TCP包,典型代码的履行周期为4 130个机器周期,用时4.13 ms.

一共用时9.66 ms,其间承受承认分组耗时最多,占总用时的42.8%。

3改善后的TCP通讯计划

由上面剖析能够看出,关于小分组来说,接纳承认分组的进程比较杂乱,因此耗时也最多。因此操控服务器承认分组的发送数量,成为进步功率的要害。

研讨发现经过调整Nagle算法的延时时刻(每个接口的推迟ACK定时器可经过设定注册表表项TCPDelAckTicks的值(HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interface\)来调整,该注册表表项在MicrosoftWindows NT 4.0 Service Pack 4中初次引入)和采样单片机的发送流程来操控服务器发送承认的数量。

如图4所示,这儿发送数据分组并没有等候承认分组这个进程。当有承认抵达时,所做的作业正常状况下和图3所示的体系没什么差异,仅仅在当丢掉了分组后的反常状况呈现后,才在更新衔接状况时处理了超时检测和犯错重发等事情。之后在数据打包后也没有备份,这儿是选用了大存储器数据偏移技能,也便是说在一个分组的承认未抵达时,其原始数据是不会被掩盖的,新的分组打包在这以后的内存单元中,这样就节省了数据备份所耗费的时刻,不过无形中增大了对内存的需求。但本运用针对的是小分组状况,所以实践需求的内存并不大。实践作业中,为了使体系安稳作业,应树立2个TCP衔接,一个用于服务器(上位机)发送操控指令和进行参数设定运用,一个用于客户机(下位机)上传采样数据运用。尽管TCP能够双向传送数据,可实践作业中,发现这样在高速通讯下犯错率比双衔接单向数据通讯要高出许多,首要是由于客户机(下位机)对TCP头部的承认号和序列号的调整简单犯错所造成的。实践运用3~5个采样分组发送一个承认分组。由于延时太短表现不了功率的进步,但延时太长,假如犯错,将发生很多重发分组的状况,影响网络功用,一起也增大了对内存的需求量。经过运用Snifferr软件进行监听比较,在相同的采样速率下,在改善前,发送包速率为500packet/s,接纳承认包速率为500 packte/s,犯错率5%,继续传输时刻小于2 h;改善后,发送包速率为500 packet/s,接纳承认包速率为183 packet/s,犯错率小于0.1%,继续时刻大于48 h.一起,相同的硬件条件下,理论上能够进一步进步采样速率。


图4 改善后的体系发送数据流程

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/326329.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部