说到实时以太网,大多数工程师都比较陌生,什么是实时?为什么实时?其实就是一层面纱,今天我们来给您揭开!
关键字:数据 源端 工业控制
引用地址:揭开实时以太网神秘的面纱
大多数工程师平时接触的以太网基本都是TCP协议。因为觉得以太网TCP协议比UDP协议高级,理由就是数据在传输过程中不容易丢,但工业上的实时以太网很多都是不基于连接的UDP协议,这是为什么呢?我们先看下他们的区别。
1.1 1.TCP与UDP的基本特性
1.1.1 1.1 TCP(Transmission Control Protocol,传输控制协议)
TCP(Transmission Control Protocol,传输控制协议)是面向连接的协议,也就是说,在收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次握手才能建立起来。
TCP连接三次握手过程
1.主机A通过向主机B 发送一个含有同步序列号的标志位的数据段给主机B ,向主机B 请求建立连接,通过这个数据段,主机A告诉主机B 两件事:我想要和你通信;你可以用哪个序列号作为起始数据段来回应我.;
2.主机B 收到主机A的请求后,用一个带有确认应答(ACK)和同步序列号(SYN)标志位的数据段响应主机A,也告诉主机A两件事:我已经收到你的请求了,你可以传输数据了;你要用哪个序列号作为起始数据段来回应我;
3.主机A收到这个数据段后,再发送一个确认应答,确认已收到主机B 的数据段:"我已收到回复,我现在要开始传输实际数据了;
这样3次握手就完成了,主机A和主机B 就可以传输数据了。如图1所示。
图1 TCP建立连接3次握手过程
TCP断开四次握手过程
TCP建立连接要进行3次握手,而断开连接要进行4次;
1 .当主机A完成数据传输后,将控制位FIN置1,提出停止TCP连接的请求;
2.主机B收到FIN后对其作出响应,确认这一方向上的TCP连接将关闭,将ACK置1;
3 .由B 端再提出反方向的关闭请求,将FIN置1;
4.主机A对主机B的请求进行确认,将ACK置1,双方向的关闭结束。
如图2所示。
图2 TCP连接断开的4次握手过程
由TCP的三次握手和四次断开可以看出,TCP使用面向连接的通信方式,为了提高数据通信的可靠性,在通讯有效数据之外添加了一套复杂的验证流程,从而加大了网络的负载和系统的开销,降低了通讯的效率。并且在通讯过程中一旦出现异常断开,重新建立连接前,需要先断开连接,释放资源,造成极大的耗时。所以TCP一般用于对实时性没有要求的通讯场合,比如网页浏览、邮箱数据、文件传送等。
1.1.2 1.2 UDP(User Data Protocol,用户数据报协议)
UDP是一个非连接的协议,传输数据之前,源端和终端不建立连接,当它想传送时就抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息,或者可以大家共享一个广播地址,成为UDP组播功能,类似CAN总线那种通讯,发到组播地址上的信息,将被所有组成员收到。如图3所示。
图3 UDP的两种通讯方式
UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
UDP使用尽最大努力交付,但发送端的链路层不保证可靠交付,因此发送主机不需要维持复杂的链接状态表(这里面有许多参数)。UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并。
UDP一般用于实时性高的工业控制场合。比如现在绝大多数的实时以太网都使用UDP通讯。轨道交通中的IEC61375-3-4更是以UDP作为实时过程数据的通讯,而用TCP用于参数配置和固件升级使用。
1.1.3 1.3 TCP与UDP的对比
表1 TCP与UDP的对比
对比 | TCP | UDP |
是否基于连接 | 是,需要耗费额外资源建立连接 | 否,除有效数据外不需要额外开销 |
对系统资源要求 | 多 | 少 |
数据到达性 | 由TCP协议保证 | 由用户应用层保证 |
速度 | 慢 | 快 |
实时性 | 低 | 高 |
连接维持(易断开性) | 需要,容易连接断开 | 不需要 |
断线后重连速度 | 需要再次握手,速度较慢 | 无等待,立即重连 |
1.2 2 实时以太网项目中的方案对比
1.2.1 2.1 TCP方案
使用的TCP方案中,由于工业现场的网络干扰等问题,在通讯过程中无法保证TCP连接可靠的保持,而在每一次断开TCP连接并尝试重连的过程中,都会经历上述的4次断开握手和3次连接握手的流程(如果是某些异常断开的TCP还需要经历超时重传和保活计数的流程),而在网络状况不佳的情况下完成上述流程是有很大可能超出系统应用层的超时限制,所以会出现了频繁出错的问题,导致实时性很差。
1.2.2 2.2 UDP方案
而UDP方案基于上述介绍过的UDP的特性,在出现异常后UDP可以省去TCP繁琐的握手流程,很快的恢复通讯,把需要发送的有效数据及时发送出去,从保证了系统要求的响应需要。
使用UDP方案的数据完整性是由上层应用协议来保证的。即使通讯过程中某帧数据丢失,但发送方能在未收到对方响应前利用重发机制重新把丢失的数据再次发送,以太网100Mbps的速率保证很短的传输时间,所以很快就可以保证数据到达。不容易超出系统应用层的超时限制。
比如轨道交通实时以太网的通讯协议中,就使用20548端口UDP组播地址作为过程数据实时控制。如图4所示。
图4 轨道交通中的实时以太网
以ECNN为例,主机通过UDP组播的方式,1包即将发给所有从机的内容都发下去,如图5所示。从机收到后,响应报文到组播地址,不但可以被主机收到,而且可以被网络中的记录设备(黑匣子)记录,便于故障时候进行分析。
图5 轨道交通实时以太网通讯过程
1.3 总结
综上所述,结合实际情况,使用UDP方案更符合实时以太网的实际需求。ZLG致远电子研发的ZNE-100TA串口转以太网模块,具备完整的TCP、UDP、UDP组播功能,高达1.15Mbps的串口传输速度,完全可以满足绝大多数实时以太网的通讯要求。严格完整的物理层测试,可以解决用户对于物理链路层设计的烦恼。如图6所示。
图6 ZNE-100TA模块物理层测试(部分)
上一篇:GMIC 2016:Qualcomm全面展现 “无线物联之道”
下一篇:Molex 为 PROFIBUS 控制器推出 SST™ PB3-CPX 模块
推荐阅读最新更新时间:2024-05-07 17:15
串口接收数据并对数据进行处理
正点原子的串口中断函数如下: void USART1_IRQHandler(void) //串口1中断服务程序 { u8 Res; #if SYSTEM_SUPPORT_OS //如果SYSTEM_SUPPORT_OS为真,则需要支持OS. OSIntEnter(); #endif if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断(接收到的数据必须是0x0d 0x0a结尾) { Res =USART_ReceiveData(USART1); //读取接收到的数据 if((US
[单片机]
一种Windows2000下连续输出数据的PCI卡
在视频 输出 、声呐仿真等实际应用中,经常要求计算机能根据要求稳定输出连续 数据 流。然而,当计算机工作于Windows2000操作系统下时,由于该操作系统是一个多任务的非实时操作系统,当它收到外部设备发来的中断时,需要延迟一定时间间隔后,才开始执行中断服务程序。这样,从计算机I/O口直接输出的数据流只能是间歇的数据流,无法提供连续数据流,不能满足实际应用的需要。 幸运的是,许多实际应用只需要低速的连续数据流。可以利用 PCI 总线的高速数据传输特性,在PCI接口后加入一个大容量FIFO存储器,高速的PCI数据流从FIFO存储器的输入端输入,在FIFO的输出端就能获得低速的连续数据流。这样屏蔽了Windows2000
[工业控制]
大数据在视频监控存储的应用与挑战
作为云时代海量数据的来源之一,安防视频监控行业随着智慧城市和智能交通的快速发展、移动互联设备的快速激增,产生了海量的非结构化视音频数据,带动了大数据的存储、管理、分析等应用。面向云时代,业界同仁一拥而上、热血沸腾,无论是IT供应商、存储厂商、还是解决方案提供商都不甘落后,雨后春笋般的纷纷提出基于计算、存储、网络等多层次虚拟化的数据中心解决方案,投入大量资源,推出云存储、云计算等系统产品。 文/天地伟业产品总监 程岳寅 面对大数据,视频监控行业面临哪些难题?我们如何应用云计算、大数据相关技术来获取数据背后隐含的信息?未来的挑战和前景如何?我将从以上几方面发表个人观点,意在抛砖引玉、引发业界同仁在产业发展的进一步思考和讨论。
[安防电子]
XC6118电压检测器特性/电路框图/数据资料
XC6118系列是高精度, 低功耗, 采用CMOS工艺和激光微调技术生产的电压检测器。
XC6118系列的电压检测引脚端子和芯片工作电压输入引脚端子是相互独立的,使得该芯片系列也可以检测其他的电压源。 由于该系列芯片的检测电压端子和芯片工作电压输入端子相互独立,即使当检测电压变为零时,该芯片的输出仍维持在一个稳定的输出状态。
XC6118系列内置延迟电路,通过外部电容可以任意设定IC延迟时间值。
XC6118系列有CMOS和N沟道开沟两种输出模式供选择。
特点:
电路框图:
[电源管理]
ICS工业控制系统安全风险分析
本文将从IT 领域熟悉的信息安全管理体系的基本理论和潜在威胁的角度,借鉴国际上有关工业控制系统安全保护要求及标准,分析当前我国工业控制系统存在的风险,并提出一套基于ICS 系统的威胁发现与识别模型。
一、工业控制系统介绍
工业控制系统(Industrial Control Systems, ICS),是由各种自动化控制组件以及对实时数据进行采集、监测的过程控制组件,共同构成的确保工业基础设施自动化运行、过程控制与监控的业务流程管控系统。其核心组件包括数据采集与监控系统(SCADA)、分布式控制系统(DCS)、可编程逻辑控制器(PLC)、远程终端(RTU)、智能电子设备(IED),以及确保各组件通信的接口技术。
[嵌入式]
基于PIC的无线数据传输发射机设计
摘要:以PIC单片机和CC1000为核心器件,设计并实现无线数据传输发射机;介绍PIC16C73芯片和CC1000芯片的性能,详细讨论发射机的硬件和软件系统设计并予以实现。
关键词:无线数据 传输发射机 PIC CC1000
本文介绍以PIC16C73和CC1000为基本部件,设计并实现无线数据传输发射机的过程。
1 PIC16C73及CC1000简介
PIC16C73是Microchip公司生产的一种高性价比的8位嵌入式微控制器。
CC1000是为在无线条件下应用所设计的一种极低功率单芯片射频收发器。它主要是为315、433、868和915MHz的ISM和SRD设备所设计,可以编程工作在300~1000MHz范围之
[单片机]
STM32数据手册开发实现按键输入功能
上一篇我们讲解了如何通过数据手册和库函数手册开发STM32的LED驱动(也就是通用GPIO的输出功能),今天我们讲解其输入功能实现。接上篇寄存器介绍(STM32根据数据手册完成LED驱动开发(寄存器版和库函数版介绍),GPIO有关寄存器有7个,本节用到端口配置低寄存器(因为根据电路原理图设计,用到引脚PC5),端口输入数据寄存器。 就开发驱动流程讲,先要看硬件电路接口,定义错了接口,啥功能都实现不了。根据硬件连接情况,我们分析并使用KEY0进行设计。KEY0 的一端接地,一端接单片机PC5引脚,表示我们的按键是按下采集低电平信号,也就是读取的数据是0。好,那么我们按照上节课讲解的八种工作模式,我们肯定是输入模式,但是是哪一种呢
[单片机]
小米新旗舰首发骁龙8+:绝非半代小升级 数据功耗表现亮眼
5月20日晚间消息,今日高通举办骁龙之夜发布会,正式推出第一代骁龙8+移动平台,随后小米集团合伙人、总裁王翔登台,宣布小米新旗舰将率先搭载第一代骁龙8+移动平台。 骁龙8+采用了台积电4nm制程工艺,CPU的Cortex-X2超大核最高主频提升到了3.2GHz,性能提升的同时,骁龙8+的功耗也有很大优化,官方称,CPU功耗相比骁龙8降低了约30%,GPU功耗降低最高也有30%,平台整体的功耗相比骁龙8下降在15%左右。 小米集团合伙人、总裁王翔表示随后登台,表示从第一代小米手机开始,几乎高通每一代旗舰平台都在小米手机上率先应用,今年小米12系列也率先应用骁龙8旗舰平台。并且“上市首月,小米12和12Pro凭借
[手机便携]