精华内容
下载资源
问答
  • 电网故障信息关联的以太网通信协议扩展了IEC60870-5-103协议,将IEC60870-5-103协议采用RS-485通信方式扩展为以太网通信方式,链路层采用IEC60870-5-104模式,将故障时刻录波、事故报告、定值、压板设置、开关变位、...
  • 摘要: 本文介绍了基于现场可编程门阵列(FPGA) 的以太网MAC 子层协议的硬件实现方法. 硬件结构上由控制模 块、发送模块和接收模块3个部分组成,发送模块和接收模块采用状态机控制数据发送和接收过程,完成数据封装...
  • 过去,在工程项目开发中,PLC和上位机间的通信采用RS-232C或者RS-485串行方式,这种方法很难满足数据量大、通信距离远、实时性要求高的控制系统。随着互联网技术的发展、普及与推广,以太网技术得到了迅速的发展,...
  • 网关应用层采用Modbus/RTU主从式协议,以太网传输层采用UDP协议。文中介绍了网关硬件、软总体设计,重点介绍了Zigbee/Modbus地址映射和收发缓冲区设计。网关硬件设计基于Rabbit3000MCU和SZ05-ZBEE ZigBee模块,软件设计...
  • 基于FINS协议的OMRON PLC与上位机以太网...过去,在工程项目开发中,PLC和上位机间的通信采用RS-232C或者RS-485串行方式,这种要领很难满足数据量大、通信距离远、实时性要求高的控制系统。随着互联网技能的发展、普




    基于FINS协议的OMRON PLC与上位机以太网通信的实现[多图]

    0 引言

    在当代工业自动化控制系统中,可编程逻辑控制器(PLC)作为常用的现场控制设备,上位机作为数据采集及人机界面的一种已经得到广泛运用。过去,在工程项目开发中,PLC和上位机间的通信常采用RS-232C或者RS-485串行方式,这种要领很难满足数据量大、通信距离远、实时性要求高的控制系统。随着互联网技能的发展、普及与推广,以太网技能得到了快速的发展,其传输速率的提高和交换技能的运用 ,处理了以太网通信的非确定性疑问,使得工业以太网能够广泛运用 于工业信息控制领域,也是工业信息控制未来的发展趋势。

    FINS(factory interface network service)通信协议是欧姆龙公司开发的用于工业自动化控制网络的指令/响应系统。运用 FINS指令可实现各种网络间的无缝通信,包括用于信息网络的 Etherne(以太网),用于控制网络的Controller Link和SYSMAC LINK。通过编程发送FINS指令,上位机或PLC就能够读写另一个PLC数据区的内容,甚至控制其运行状态,从而简化了用户程序。FINS协议支撑工业以太网,这就为OMRON PLC与上位机以太网通信的实现提供了可能。 1 OMRON PLC与上位机通信方式

    目前,在欧姆龙PLC网络组成中,上位机和PLC的通信可以采用RS232C/485串行通信、Controller Link通信和工业以太网通信三种方式。它们的主要性能参数如表1所示。

    图片看不清楚?请点击这里查看原图(大图)。

    文献[3]介绍了采用RS232C/485串行通信的方案,其通信速率仅为9600b/s,速率较慢,很难适应当代数据量大、通信距离较远、实时性要求较高的控制系统。

    文献[2]中给出了基于FINS协议的Controller Link通信的设计方案,其最高速率可以达到2Mb/s,整个网络的最大传输距离为500m,硬件上须要在上位机安装CLK支撑卡,其扩展性及运用 的灵活性没有工业以太网好。

    在三种通信方式中,工业以太网的优势是相当明显的。其传输速率可以达到10/100Mb/s(取决于实际网络环境);两个节点之间的传输距离可以达到 100m,对于整个网络的传输距离没有限定;网络内最大节点数可以达到254个,可以实现1(PLC):N(PC)、N:N、N:1等多种网络形式。这些都为构架各种规模的工业网络信息系统提供了有利的条件,具有良好的扩展性、实用性、灵活性。



    目前运用的上位机都配有以太网卡,所以上位机侧无需添加额外的硬件设备。因此,采用工业以太网方式对提高工厂的自动化信息控制水平具有很大的现实意义。

    2 以太网FINS通信

    在以太网FINS通信中,各种数据信息是以UDP/IP包或者TCP/IP包的方式在以太网上发送和接收的。其中,在Internet层远程设备运用的是 IP地址,而在运用 层运用的则是FINS节点地址。传输层中定义了本地UDP或TCP端口号,它为运用 层(即FINS通信)提供通信端口,其默认配置为 9600。用户可以根据实际情况自行修改,但是在同一网络中,各设备的通信端口号必须保持一致。图1 FINS以太网通信协议模型

    图片看不清楚?请点击这里查看原图(大图)。

    通常以太网通信运用的是IP地址,而在FINS通信中则是运用网络号、节点号以及单元号来对不同设备(包括PLC、PC等现场设备)执行 地址定义的。这就为不同网络之间各种设备的通信提供了统一的寻址方式。在以太网FINS通信中,欧姆龙的以太网单元一项主要的功能就是能在IP地址和Fins节点地址之间执行 转换,其转换方式有自动转换、IP地址表和复合地址表三种方式,其地址转换数量依据模块型号和转换方式的不同还有相应的限定。以太网FINS通信服务是一种基于UDP/IP的通信方式,称为FINS/UDP方式,欧姆龙相关 的以太网产品都支撑这种方式。此外,CS1W-ETN21和CJ1W- ETN21以太网通信模块还支撑 TCP/IP协议,称为FINS/TCP方式。

    2.1 FI NS/UDP方式

    FINS/UDP方式是一种运用 UDP/IP协议的FINS通信方式。UDP/IP是一种无连接的通信协议。当一条信息从一个节点发到另一个时,这两个节点是没有明确连接的对等联系的。UDP协议具有较快的传输速度,但是数据通信的可靠性没有TCP协议高。

    图片看不清楚?请点击这里查看原图(大图)。

    如图2所示,是一个在以太网中发送和接收所运用的UDP帧结构。FINS/UDP



    方式运用的是一种嵌套格式数据包,即Ethernet报头、IP报头、 UDP报头和FINS帧。一个UDP数据段(FINS 帧)超过1472字节将被分成若干个数据包来传送。分开的UDP数据将在UDP/IP协议层自动组合。通常不须要关注运用 层的数据分段,但是在一个多层 IP网络中1427字节的UDP包可能无法 发送。在这种系统中就须要运用 FINS/TCP方式。

    2.2 FINS帧结构

    FINS 帧分为FINS指令帧和FINS响应帧两种形式。指令帧在发送FINS指令时运用,响应帧则在接收到FINS指令后对其返回响应时运用。它们都是由一个 FINS报头(存储传输控制信息)、一个FINS指令域(存储一个FINS指令)以及一个FINS参数/数据域(存储指令参数和发送/响应数据)所组成的。响应帧FINS指令域的内容与所接收到的指令帧的FINS指令域相同。详细结构见图3、图4。

    图片看不清楚?请点击这里查看原图(大图)。

    ICF为信息控制域,用于标明指令和响应;RSV为系统保存;GCT为网关允许数目;DNA为目的网络号;DA1为目的节点号;DA2为目的单元号;SNA为源网络号;SA1为源节点号;SA2为源单元号;SID为服务和响应的标识号,可任意配置,指令和响应对应相同;MRC和SRC分别为 FINS指令的主指令和从指令;参数/数据域,用于标明所操作的数据地址、范围等,在响应帧中前两个字节MRES和SRES构成响应码,用来诊断不正确信息。

    3 FinsGateway和SYSMAC Compolet控件介绍

    FinsGateway是OMRON FINS通信协议的驱动程序,它为计算机上的32位Windows操作系统提供一个工业自动化网络环境。FinsGateway集成了不同的网络协议,并为FINS通信和数据链接提供驱动程序和接口库函数。它通过建立高性能的虚拟存储区EventMemory,为不同的用户程序提供数据的接入和共享。运用 FinsGateway,计算机可以通过各层网络(包括网络互联)访问网络上的PLC,通过接口库函数,用户还可以开发程序。



    SYSMAC Compolet是欧姆龙公司专门为FINS通信开发的Active X控件,它是架构在FinsGateway这个驱动程序下的VB控件,对Fins指令做了进一步集成和优化。SYSMAC Compolet为SYSMAC C/CS1/CV系列的PLC提供运用 程序编程接口,在开发时只须要调用该控件,编写程序更便捷,语句更基本,配合运用 FinsGateway,通过计算机就可以方便地控制访问PLC,直接对其操作而不须要掌握相应的Fins指令知识。

    4 OMRON PLC与上位机以太网通信的实现

    OMRON PLC与上位机的以太网通信依靠发送FINS指令实现。上位机发送FINS指令可以直接读取或写入PLC相应的数据,PLC部分无需编写接收和发送程序。文献[1]给出了运用VC++异步套接字类CAsyncSocket与OMRON PLC执行 以太网通信的要领。本例中采用FINS/UDP方式,详细如图7所示。上位机运用 Visual Basic 6.0执行 程序开发,详细实现向PLC发送FINS指令(读取内存区域,指令代码0101)读取DM100开始的150个字数据的功能。相较于文献[1] 介绍的要领,本文中为不同层次的运用者提供了三种要领来实现这一个功能,添加了系统开发的挑选性。图7上位机与PLC通过以太网通信



    在执行 上位机程序编程之前首先要完成上位机和PLC的以太网单元的配置。

    (1)配置上位机的IP地址为10.72.18.11,子网掩码为255.255.255.0,它的FINS节点号默认为11。

    (2)通过欧姆龙CX-Programmer软件,在IO表中将PLC CSIW-ETN11以太网单元的IP地址配置为10.72.18.19,子网掩码为255.255.255.0,FINS节点号配置为19。地址转换方式配置为自动生成(动态)。FINS/UDP端口为9600(默认)。保存后下传至PLC。

    下面主要介绍三种要领来实现上述功能。

    4.1 运用 Micosoft Wi nsock控件

    在VB中新建一个Standard.EXE文件。添加Winsock控件,对象命名为"Winsock1",发送Fins命令程序如下:

    编译保存后即可。

    4.2 运用 FinsGateway中的OMRON FinsMessaging Control

    (1)在上位机中安装Finsgateway软件,并在Service Manager中启动CPU_UNIT和ETN_UNIT。

    (2)ETN UNIT属性中,在"UDP Nodes"中手动添加PLC的IP地址(10.72.18.19)和FINS地址(0.19.0)。在"Commuincation Unit Settings"中配置端口号(9600)和FINS-IP地址转换方式为自动生成(动态)。

    (3)在VB中新建一个standard.EXE文件。添加OMRON FinsGateway FinsMessaging Control,对象名为"FinsMsgl"。

    (4)在form区添加一个Command button(命名为"Command1")作为发送Fins指令之用;同时添加一个textbox(命名为"Text1")作为显示所接受数据之用。

    (5)在"Conmand1"中的"Click"事件中添加如下代码:

    Private Sub Command1_C1ick()FinsMsg1.sendFinsCommand0,19,0,"0101820064000096"End Sub

    在"FinsMsg1"中的"OnReceive"事件中添加如下代码:

    Private Sub FinsMsg1_OnReceive ()

    Dim net As Integer,node As Integer,unit AsInteger

    Text1.Text=Fins Msg1.receive Message(net,node,unit,vbString) End Sub

    编译保存后即可。

    4.3 运用 FinsGateway和SYSMAC Compolet

    (1)在上位机中安装Fins Gateway和SYSMACCompolet软件。启动FinsGateway的Service Manager,并启动CPU UNIT和ETN UNIT。

    (2)同4.2中第(2)点。

    (3)在VB中新建一个Standard.EXE文件。添加OMRON SYSMAC CS Control,对象名为"SYSMAC CS11"。

    (4)在对象"SYSMACCS11"属性中,挑选 "Communication"标签,选中"ActivateCoCommunication"并配置 PLC的Fins地址(0.19.0)。

    (5)在form区添加一个Command button(命名为"Command1")作为发送Fins指令之用;同时添加一个text box(命名为"Text1")作为显示所接受数据之用。

    (6)在"Conmand1"中的"Click"事件中添加如下代码:


    Private Sub Command1_Click()

    Text1.Text=SYSMAC_CS1 1.readArea(plcAreaDM,100,150,vbString) End Sub

    编译保存后即可。

    5 结束语

    工业以太网作为工业现场信息采集的主要网络具有速率高、通信距离远、抗干扰性好等特性,已经得到广泛运用 。本文所介绍的三种OMRON PLC与上位机以太网通信的要领均在实际工程中验证成功。这三种要领从本质上来说其实是一样的,但详细运用和实现流程有所不同。第一种要领不须要另外购置欧姆龙相关 软件,但须要对FINS通信底层协议以及Fins帧结构及其封装流程有比较彻底的了解,程序编写较为复杂,适用于有一定开发体会的高级用户。第二种要领须要掌握Fin s帧结构以及FinsGateway的相关 配置,但是对发送指令和接收数据的程序编写较为基本,适用于中级用户。在第三种要领中,运用了SYSMAC Compolet中基本易懂的编程语言,即可完成上位机的程序开发,整个程序编写流程基本明了,可以大幅缩减通信程序的开发时间,适用于那些开发体会



    展开全文
  • 该协议由西门子推出,目的是使用现有标准并丰富工业通信协议的相关细节,主要用于控制系统之间数据传输。它具有大带宽特点,非常适合传输大量数据。基于ISO / IEC 8073标准,定义了不同传输方法。当PLC之间进行...
    0x00 概述Sinec H1是第一个基于以太网的工业协议,可提供传输层功能。该协议由西门子推出,目的是使用现有标准并丰富工业通信协议的相关细节,主要用于控制系统之间的数据传输。它具有大带宽特点,非常适合传输大量数据。基于ISO / IEC 8073标准,定义了不同的传输方法。当PLC之间进行通讯时,采用在OSI第4层上的对等数据传输模式,称为传输层连接;当上位机与PLC之间通讯时,在OSI的第7层上进行TF (Technology Function)通信。TF(Technology Function)通信服务通常在监控上位机和PLC之间使用,以进行数据采集和控制,在典型的H1网络中,可以使用具有该功能的上位机连接一个或多个PLC。上位机系统必须具有以下功能:可在PLC中读取和写入数据。虽然该协议推出时间较早,但是其用法简单传输数据量大,现在依然存在于大多数工业现场,尤其是和上位机SCADA进行数据交换时应用广泛。各个厂家在SCADA的通信驱动中集成了该协议,但有的命名为Siemens S7驱动而未提及Sinec H1相关内容。具有Sinec H1 传输通信接口板的Simatic S5和S7系列PLC,例如CP1430,CP143,CP535,CP443-1均支持Sinec H1协议,编址方式为TSAP节点、访问块、word形式、数据长度。0x01 协议分析分析Sinec H1协议的测试环境如下图:

    74138ff932962c0c578d914d45924144.png

    关于该协议的信息在网上极少,无公开的报文设计类文档,因此无从知晓数据帧格式。面对这种情况。有如下突破的思路:A.获取到支持该协议的CP板卡的固件,逆向固件获取处理该协议的相关流程信息;B.获取支持该协议的上位机驱动文件,通过逆向驱动文件获取处理该协议的相关细节;A思路尝试。选取CP443-1通信扩展模块尝试下载其固件,访问西门子官网搜索CP443-1的firmware,如下页面:

    469146a93490f15a530402994db71781.png

    点击下载后,出现了不美妙的一幕。

    436c01824135dd6937a38ea1bc8c296d.png

    显示为限制出口的软件,需要再次注册,即使再次注册最终也是没能成功下载到该软件,因此此路不通,暂时放弃。转战B路线,在测试环境中找到了上位机SCADA与下位机CP443-1模块利用H1协议通信的驱动程序,命名为s7drv。遂将此文件拷贝出,利用IDA进行分析,如下图:

    04be5a41e3014e390ea108df833b2cef.png

    逆向出的文件很清爽,有完整的文件命名,便于阅读理解。依照main函数找到main_loop,再次深入其中找到处理协议的相关函数Polling_Data,在其中看到轮询数据的处理BUF内存入的数据格式,构造出格式后通过send_to_lan发送至网内。811d3594a23f29e8b149f5dfc58fdf7f.png追踪send_to_lan函数,查看是否还有其余处理程序调用该函数。得到如下图示:

    03272716ddaf68b40b212302772acf0b.png

    得知有6个函数块调用该发送函数,猜测功能分别为:fa441bf586e432a2f6239628ed99abb0.png针对于6个不同功能的操作函数,梳理其对应的数据结构如下图:

    f9aa2675d4e649795d4fba32cd9fda21.png

    绿底色的数据结构为固定值,可以推测为标志符、长度之类,青底色的结构可以看作是对应函数操作的功能码,其余无填充色的部分均为随着应用场景变化的部分。在查找资料过程中发现了Wireshark中对于该协议可解析,且可以获取到对应插件的源码,因此对照源码再次梳理以上数据结构。在block_type_vals[]字段中定义了以下4中类型:

    e3518bc9fe3efa9c2e0c71e01e641390.png

    在value_string opcode_vals[]中定义了4中类型:

    fe58ba890fd600b4f24d21b3e2107772.png

    在value_string org_vals[]中定义了多种类型,对应访问PLC中的各种不同类型的数据块及其片区。

    d02a73397b3f649ab250c6b68bab548a.png

    根据以上较为明显的定义,阅读解析协议的插件代码并对照以上逆向分析出的数据结构,得到如下数据帧结构,不同底色的数据内容可划分为一个类别,按照类别理解每个块的功能结构。

    dd4b30f9c0a5dd2d988824efaa2fde00.png

    至此推测分析该协议的数据帧格式步骤已完成,接下来通过抓取现场数据报文验证分析过程是否准确,抓取一段时间过滤后的报文如下图所示。

    45c4d489b44e1fe9cd30b64d34685883.png

    可看到Wireshark解析报文info标记为S5,解析内容均为读操作(包含响应与请求),选取几个报文精细分解。

    3c2cbe2d2b1cfa0ecca2769ebbc9fde9.png

    该报文中访问DB38号块,访问地址为0000,长度为0001,结合逆向结果可知该报文在实际的应用场景中为轮询WRFlag状态,响应帧见下:

    9ab5c3469503aac03ae20c7e2c42a885.png

    整个帧结构为响应帧,在操作类型和第2个子块类型中均为读操作的响应帧结构。附带的响应数据为0。以下该数据帧结构为读取DB36号块,偏移为0,长度为751的请求帧结构。对照逆向的代码,在该应用场景下为轮询PLC内部数据的操作。

    3f3ed49cc0c3cdbb84b863400c2f59cf.png

    到此我们通过逆向SCADA内部的西门子H1驱动结合Wireshark插件源码,给出了报文格式,再根据现场抓取的报文结合分析了数据格式及其现场应用的实际意义与功能。但仍有以下问题:1.Sinec H1为通用协议,支持的操作较多,但在驱动内部仅出现了几个类型的操作?2.在驱动内部仅能看到固定值的操作DB块号,36/38/39/40,其余的功能数据内存块或者编号呢?根据经验推测:该SCADA的驱动为厂商定制开发,结合Sinec H1协议支持的功能只保留对以上提及DB块的特定操作,减少工程组态的工作量,也可以在针对特定行业开发固定工程模板,提高工程效率。0x02 模糊测试目前网络上流行的各类工控协议FUZZ入门测试均以Modbus为例,本文的Sinec H1协议经过分析其结构简单,同样适合初学者上手操作。因此本文从入门普及的角度,对该协议做以简单FUZZ测试解析。本文选取的FUZZ框架为boofuzz(其余广泛流传的文章中均以sulley、Peach为例),boofuzz的详细信息下载地址https://github.com/jtpereyda/boofuzz。Boofuzz是Sulley模糊测试框架的继承者。除了修复了许多错误,boofuzz还提升了可扩展性。主要特性有以下几点:1.轻松快速的数据生成方式;2.失败后的目标重置;3.记录测试数据;4.在线文档;5.支持任意通信媒介;6.内置支持串行模糊测试、以太网、IP层和UDP广播;7.更好地记录测试数据——统一、彻底、清晰;8.测试结果通过CSV导出;9.方便的安装体验;先需要在脚本运行的PC机上安装boofuzz,

    9b6a2ee8b842022fbc4ee5a7d4b3ccb2.png

    根据以上分析的H1协议帧结构编写fuzz脚本,fuzz对象为下位机PLC系统,因此在参数设置中均以PLC为目标对象。如下所示:611c28b13615b9ef8d27fbc670c2c9ac.png注意:A.将Sinec H1协议中固定字段值设置为无需fuzz属性,fuzzable=false;B.脚本代码依照解析出的协议子块内容编写,便于维护与阅读;C.在connecttion参数中需要注意,该协议不能重用连接,必须等待1次完成连接fuzz后再次启用1个连接;D.同上,在fuzz过程中发现了下位机PLC处理fuzz包的过程缓慢(猜测PLC接收到不在认可范围内的包处理流程复杂,还需断开连接操作),因此restart_sleep_time值要根据实际情况调整;0x03 总结本文主要以西门子早期的协议Sinec H1为背景,介绍了协议分析和针对工控协议fuzz测试的大致思路和应用实践,旨在通过这些分享让更多人了解工控安全中协议方面的入门姿势,也希望通过本文为寻找Sinec H1协议相关资料的研究者们提供些许帮助。如若能帮助到需要的人,甚感欣慰。原文来源:绿盟科技研究通讯

    ce45f1416f1ba4017e7f5203d5c631d9.png

    展开全文
  • 本文简要介绍了如何利用Xilinx公司MicroBlaze微处理器软核,以及相应嵌入式操作系统Xilkemel和Lwip协议功能函数,采用片上系统设计理念,来设计完成基于FPGA嵌入式以太网与Matlab通信平台数据传送交互系统。...
  • 为了实时采集基于DSP电力电子变换电路控制器运行数据,通过ARM芯片及以太网PHY控制器芯片提供一种以太网通信解决...考虑到系统简化及数据速率问题,在通信协议方面采用UDP协议,采用LabVIEW设计以太网上位机界面。
  • 本文简要介绍了如何利用Xilinx公司MicroBlaze微处理器软核,以及相应嵌入式操作系统Xilkernel和Lwip协议功能函数,采用片上系统设计理念,来设计完成基于FPGA嵌入式以太网与Matlab通信平台数据传送交互系统...
  • 本文研究了TCP/IP通信协议在Xilinx公司FPGA上的实现,介绍了其软硬件的系统组成及原理,通过建立一个例子加以说明和应用这个设计平台,证明了此平台设计可行性,并且完成了FPGA与Matlab的通信,为数据的实时显示及...
  • 研究了一套基于嵌入式以太网的地质雷达通信系统,系统以STM32F407芯片为硬件核心,采用TCP网络传输协议,以双绞线或无线方式实现数字量雷达信号传输。结果表明:系统较好实现了雷达通信,提升数据可靠性,大大改善了雷达...
  • 工业组网通信协议可以由串口、现场总线、工业以太网来实现,根据实际项目需求去采用其中最合适一种方式来实现通信协议。 一、 三种方式优劣 从性能以及多站特点RS485是作为串口首选,现场总线以CAN总线...

            工业组网通信协议可以由串口、现场总线、工业以太网来实现,根据实际的项目需求去采用其中最合适的一种方式来实现通信协议。

    一、 三种方式的优劣

            从性能以及多站的特点RS485是作为串口的首选,现场总线以CAN总线为例,所以下面对CAN、RS485以及工业以太网作对比。

    1. RS485接口标准

            RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。半双工串行通信,数据最高传输速率为10Mbps,在总线上允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立起设备网络,但RS-485总线上任何时候只能有一发送器发送,即一主多从。

    2. CAN总线

            CAN总线是国际标准的工业级现场总线,传输可靠,实时性高;传输距离最远可以达到10KM,传输速率达到1Mbps;单条总线最多可接110个节点,并可方便的扩充节点数;多主结构,各节点的地位平等,方便区域组网,总线利用率高;实时性高,非破坏总线仲裁技术,优先级高的节点无延时;出错的CAN节点会自动关闭并切断和总线的联系,不影响总线的通讯;报文为短帧结构并有硬件CRC校验,受干扰概率小,数据出错率极低;自动检测报文发送成功与否,可硬件自动重发,传输可靠性很高;硬件报文滤波功能,只接收必要信息,减轻cpu负担,简化软件编制。

    3. 工业以太网的优势与不足

    优势:

            基于TCP/IP的以太网是一种标准开放式的网络,由其组成的系统兼容性和互操作性好,资源共享能力强,可以很容易的实现将控制现场的数据与信息系统上的资源共享;数据的传输距离长、传输速率高;易与Internet连接,低成本、易组网,与计算机、服务器的接口十分方便,受到了广泛的技术支持。

    不足:

            以太网采用的是带有冲突检测的载波侦听多路访问协议(CSMA /CD),无法保证数据传输的实时性要求,是一种非确定性的网络系统; 安全可靠性问题,以太网采用超时重发机制,单点的故障容易扩散,造成整个网络系统的瘫痪;对工业环境的适应能力问题,目前工业以太网的鲁棒性和抗干扰能力等都是值得关注的问题,很难适应环境恶劣的工业现场;本质安全问题,在存在易燃、易爆、有毒等环境的工业现场必须要采用安全防爆技术;总线供电问题。在环境恶劣危险场合,总线供电具有十分重要的意义。

    4. RS485、CAN总线与工业以太网的比较

    4.1 RS485总线与CAN总线比较

             速度与距离: CAN与RS485以1Mbit/S的高速率传输的距离都不超过100 米,可谓高速上的距离差不多。但是在低速时CAN以5Kbit/S时,距离可达10KM,而485再低的速率也只能到1219米左右(都无中继)。可见CAN在长距离的传输上拥有绝对的优势。以太网百兆无中继最远120米(如使用AMP可达300米)。

            总线利用率:RS485是单主从结构,就是一个总线上只能有一台主机,通讯都由它发起的,它没有下命令,下面的节点不能发送,而且要发完即答,受到答复后,主机才向下一个节点询问,这样是为了防止多个节点向总线发送数据,而造成数据错乱。而CAN-Bus和以太网是多主从结构,每个节点都有CAN控制器,多个节点发送时,以发送的ID号自动进行仲裁,这样就可以实现总线数据不错乱,而且一个节点发完,另一个节点可以探测到总线空闲,而马上发送,这样省去了主机的询问,提高了总线利用率,增强了快速性。所以在汽车等实时性要求高的系统,都是用CAN总线,或者其他类似的总线。

            错误检测机制:RS485只规定了物理层,而没有数据链路层,所以它对错误是无法识别的,除非一些短路等物理错误。这样容易造成一个节点破坏了,拼命向总线发数据(一直发1),这样造成整个总线瘫痪。所以RS485一旦坏一个节点,这个总线网络都挂。而CAN总线有CAN控制器,可以对总线任何错误进行检测,如果自身错误超过128个,就自动闭锁。保护总线。如果检测到其他节点错误或者自身错误,都会向总线发送错误帧,来提示其他节点,这个数据是错误的。大家小心。这样CAN总线一旦有一个节点CPU程序跑飞了,它的控制器自动闭锁。保护总线。所以在安全性要求高的网路,CAN是很强的。

            CAN具有完善的通信协议,可由CAN控制器芯片及其接口芯片来实现, 从而大大降低了系统的开发难度,缩短了开发周期,这些是只仅仅有电气协议的RS-485所无法比拟的。

    下表为RS485与CAN总线性能对比:

    4.2  工业以太网和CAN现场总线的网络协议规范比较

            CAN现场总线作为一种面向工业底层控制的通信网络,其局限性也是显而易见的。首先,它不能与Internet互连,不能实现远程信息共享。其次,它不易与上位控制机直接接口,现有的CAN接口卡与以太网网卡相比大都价格昂贵。还有, CAN现场总线无论是其通信距离还是通信速率都无法和以太网相比。

            工业以太网和CAN现场总线的网络协议规范都遵循ISO /OSI参考模型的基本层次结构。工业以太网采用IEEE802参考模型,相当于OSI模型的最低两层,即物理层和数据链路层,其中数据链路层包含介质访问控制子层(MAC)和逻辑链路控制子层(LLC) 。CAN现场总线的ISO /OSI参考模型也是分为两层,并与工业以太网的分层结构完全相同,但是二者在各层的物理实现及通信机理上却有很大的差别。工业以太网和CAN现场总线的各层在具体网络协议实现上的分析比较如下表所示。

     

    二、 通信协议的可靠性保证

            RS485不像工业以太网以及CAN现场总线,它只提供了物理接口,需要添加可靠性机制来保证数据的可靠性,通常使用的有奇偶校验、循环冗余检测(CRC)以及检验和方法(传输层使用的正是这种方式)。

            CRC常用于链路层,相比检验和方法CRC占用的CPU资源更大,在以太网中CRC是由适配器中专用的硬件实现,它能够快速执行更复杂的CRC操作。在以太网中传输层之所以加入检验和方法是因为怕可能数据包传到在某一链路中恰巧该链路不支持CRC,考虑到CPU的执行效率所以并没有在传输层加入CRC而是检验和方法。但现在一些基于串口的通信协议像Modbus-RTU之类大多数是采用CRC-16检验,所以具体使用哪种方式可以根据数据交互量以及CPU处理速率来决定。

            以上保证的只是链路层上的可靠性,在链路层之上应该添加容错机制,许多协议最常用的便是超时重传机制,因为数据在链路层之上基本不存在比特出错的情况,所以我们考虑的只有丢包情况,各种协议的重传机制大同小异。UDP使用rdt3.0协议是保证在比特出错和丢包的信道数据可靠,在比特不会出错的情况下rdt3.0协议也就是一个重传机制。

    展开全文
  • 以太网通信及设计

    2021-04-09 13:22:48
    以太网(Ethernet),是当今现有局域网采用的最通用的通信协议标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。 优点:成本低、通信速率高、抗干扰性强 以太网分类 标准以太网:10Mbit/s 快速...

    1. 以太网简介

    1.1 以太网概述

    以太网(Ethernet),是当今现有局域网采用的最通用的通信协议标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。
    优点:成本低、通信速率高、抗干扰性强
    以太网分类
    标准以太网:10Mbit/s
    快速以太网:100Mbit/s
    千兆以太网:1000Mbit/s
    万兆以太网:10Gbit/s
    以太网接口
    以太网通信离不开连接端口的支持,网络数据连接的端口就是以太网。
    以太网接口类型有RJ45接口,RJ11接口(电话线接口),SC光纤接口等。其中RJ45接口使我们现在最常见的网络设备接口(如:电脑网口)。
    在这里插入图片描述
    RJ45接口定义
    在这里插入图片描述

    1.2 MII接口与时序

    PHY芯片
    PHY芯片在发送数据时,首先将MAC(FPGA)发过来的并行数据转化为串行流数据,按照物理层的编码规则把数据编码转换为模拟信号通过网口发送出去,接收数据的流程反之。
    当我们给网卡接入网线的时候,PHY芯片不断发出脉冲信号来检测对端是否有设备,他们通过标准的“语言”交流,互相协商并确定连接速度、双工模式、是否采用流控等。通常情况下,协商的结果是两个设备中能同时支持的最大速度和最好的双工模式。这个技术被称为Auto Negotiation,即自动协商。
    MII接口
    MII:Media Independent Interface(媒体独立接口),它是IEEE-802.3定义的以太网行业标准。
    在这里插入图片描述
    MII接口发送时序
    在这里插入图片描述
    MII接口接收时序
    在这里插入图片描述

    2. 以太网通信协议

    2.1 以太网数据格式

    OSI七层模型
    在这里插入图片描述
    以太网数据包
    在这里插入图片描述
    以太网帧格式
    在这里插入图片描述
    MAC(Media Access Control)地址:媒体访问控制地址
    前导码(Preamble):为了实现底层数据的正确阐述,物理层使用7个字节同步码(0和1交替(55-55-55-55-55-55-55))实现数据的同步。

    帧起始界定符(SFD,Start Frame Delimiter):使用1个字节的SFD(固定值为0xd5)来表示一帧的开始,即后面紧跟着传输的就是以太网的帧头。

    目的MAC地址:即接收端物理MAC地址,占用6个字节。MAC地址从应用上可分为单播地址、组播地址和广播地址。单播地址:第一个字节的最低位为0,比如00-00-00-11-11-11,一般用于标志唯一的设备;组播地址:第一个字节的最低位为1,比如01-00-00-11-11-11,一般用于标志同属一组的多个设备;广播地址:所有48bit全为1,即FF-FF-FF-FF-FF-FF,它用于标志同一网段中的所有设备。

    源MAC地址:即发送端物理MAC地址,占用6个字节。

    长度/类型:上图中的长度/类型具有两个意义,当这两个字节的值小于1536(十六进制为0x0600)时,代表该以太网中数据段的长度;如果这两个字节的值大于1536,则表示该以太网中的数据属于哪个上层协议,例如0x0800代表IP协议(网际协议)、0x0806代表ARP协议(地址解析协议)等。

    数据:以太网中的数据段长度最小46个字节,最大1500个字节。最大值1500称为以太网的最大传输单元(MTU,Maximum Transmission Unit),之所以限制最大传输单元是因为在多个计算机的数据帧排队等待传输时,如果某个数据帧太大的话,那么其它数据帧等待的时间就会加长,导致体验变差,这就像一个十字路口的红绿灯,你可以让绿灯持续亮一小时,但是等红灯的人一定不愿意的。另外还要考虑网络I/O控制器缓存区资源以及网络最大的承载能力等因素,因此最大传输单元是由各种综合因素决定的。为了避免增加额外的配置,通常以太网的有效数据字段小于1500个字节。

    帧检验序列(FCS,Frame Check Sequence):为了确保数据的正确传输,在数据的尾部加入了4个字节的循环冗余校验码(CRC校验)来检测数据是否传输错误。CRC数据校验从以太网帧头开始即不包含前导码和帧起始界定符。通用的CRC标准有CRC-8、CRC-16、CRC-32、CRC-CCIT,其中在网络通信系统中应用最广泛的是CRC-32标准。

    帧间隙(IFG,Frame Check Sequence)
    为了接收下一帧准备的时间,IFG的最小值是96 bit time
    10Mbit/s最小时间为:96x100ns=9600ns
    100Mbit/s最小时间为:96x10ns=960ns
    1000Mbit/s最小时间为:96x1ns=96ns

    2.2 IP协议(Internet Protocol)

    IP协议(互联网协议/网际协议)
    IP协议是TCP/IP协议族中的核心协议,IP协议规定了数据传输的基本单元和格式。IP协议位于以太网MAC帧格式的数据段,IP协议内容由IP首部和数据字段组成。所有的TCP、UDP及ICMP数据都以IP数据报格式传输。
    IP报文格式
    在这里插入图片描述
    前20个字节和紧跟其后的可选字段是IP数据报的首部,前20个字节是固定的,后面可选字段是可有可无的,首部的每一行以32位(4个字节)为单位。
    版本:4位IP版本号(Version),这个值设置为二进制的0100时表示IPv4,设置为0110时表示IPv6,目前使用比较多的IP协议版本号是4。

    首部长度:4位首部长度(IHL,Internet Header Length),表示IP首部一共有多少个32位(4个字节)。在没有可选字段时,IP首部长度为20个字节,因此首部长度的值为5。

    服务类型:8位服务类型(TOS,Type of service),该字段被划分成两个子字段:3位优先级字段(现在已经基本忽略掉了)和4位TOS字段,最后一位固定为0。服务类型为0时表示一般服务。

    总长度:16位IP数据报总长度(Total Length),包括IP首部和IP数据部分,以字节为单位。我们利用IP首部长度和IP数据报总长度,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节。尽管理论上可以传输长达65535字节的IP数据报,但实际上还要考虑网络的最大承载能力等因素。

    标识字段:16位标识(Identification)字段,用来标识主机发送的每一份数据报。通常每发送一份报文它的值就会加1。

    标志字段:3位标志(Flags)字段,第1位为保留位;第2位表示禁止分片(1表示不分片 0:允许分片);第3位标识更多分片(除了数据报的最后一个分片外,其它分片都为1)。

    片偏移:13位片偏移(Fragment Offset),在接收方进行数据报重组时用来标识分片的顺序。

    生存时间:8位生存时间字段,TTL(Time To Live)域防止丢失的数据包在无休止的传播,一般被设置为64或者128。

    协议:8位协议(Protocol)类型,表示此数据报所携带上层数据使用的协议类型,ICMP为1,TCP为6,UDP为17。

    首部校验和:16位首部校验和(Header Checksum),该字段只校验数据报的首部,不包含数据部分;校验IP数据报头部是否被破坏、篡改和丢失等。

    源IP地址:32位源IP地址(Source Address),即发送端的IP地址,如192.168.1.123。

    目的IP地址:32位目的IP地址(Destination Address),即接收端的IP地址,如
    192.168.1.102。

    可选字段:是数据报中的一个可变长度的可选信息,选项字段以32bit为界,不足时插入值为0的填充字节,保证IP首部始终是32bit的整数倍。

    IP首部校验和计算方法
    1、将16位校验和字段置为0,然后将IP首部按照16位分成多个单元;
    2、对各个单元采用反码加法运算(即高位溢出位会加到低位,通常的补码运算是直接丢掉溢出的高位);
    3、此时仍然可能出现进位的情况,将得到的和再次分成高16位和低16位进行累加;
    4、最后将得到的和的反码填入校验和字段。
    在这里插入图片描述

    2.3 UDP协议

    TCP和UDP的区别
    在这里插入图片描述
    UDP协议
    在这里插入图片描述
    UDP首部共8个字节,同IP首部一样,也是一行以32位(4个字节)为单位。
    源端口号:16位发送端端口号,用于区分不同服务的端口,端口号的范围从0到65535。

    目的端口号:16位接收端端口号。

    UDP长度:16位UDP长度,包含UDP首部长度+数据长度,单位是字节(byte)。

    UDP校验和:16位UDP校验和。UDP计算校验和的方法和计算IP数据报首部校验和的方法相似,但不同的是IP数据报的校验和只检验IP数据报的首部,而UDP校验和包含三个部分:UDP伪首部,UDP首部和UDP的数据部分。伪首部的数据是从IP数据报头和UDP数据报头获取的,包括源IP地址,目的IP地址,协议类型和UDP长度,其目的是让UDP两次检查数据是否已经正确到达目的地,只是单纯为了做校验用的。在大多数使用场景中接收端并不检测UDP校验和,因此这里不做过多介绍。
    在这里插入图片描述
    用户数据打包在UDP协议中,UDP协议又是基于IP协议之上的,IP协议又是走MAC层发送的,即从包含关系来说:MAC帧中的数据段为IP数据报,IP报文中的数据段为UDP报文,UDP报文中的数据段为用户希望传输的数据内容。

    3. 以太网通信设计

    上位机通过网口调试助手发送数据给FPGA,FPGA开发板通过以太网接口接收数据,并将接收到的数据发送给上位机,完成以太网数据的环回。
    系统框图
    在这里插入图片描述
    以太网发送模块状态机
    在这里插入图片描述
    以太网接收模块状态机
    在这里插入图片描述
    源码
    免费下载资源:以太网通信设计rtl

    3. 以太网传输图片(VGA显示)

    使用开发板上的网口接收上位机传输的图片(分辨率为640*480),然后将图片存储在SDRAM中,并通过VGA接口在显示器屏幕上显示。
    系统框图
    在这里插入图片描述
    显然,实现结构是在前面的基础上进行扩展,相关模块的讲解,请参考FPGA技术相关知识。
    源码
    免费下载资源:以太网传输图片(VGA显示)rtl

    展开全文
  • 本文提出了基于FPGA嵌入式以太网与Matlab通信系统设计和研究,采用Xilinx公司MicroBlaze嵌入式微处理器软核,利用它和相应外设IP核一起完成SOPC设计并且完成与Simulink数据传输,最后动态显示以太网传输...
  • 车载以太网与传统以太网的主要区别在于二者...下图是基于车载以太网的车载网络所使用各种通信协议,在这篇文章中我将简要介绍一下位于7层上DHCP协议。车载以太网涉包含各种协议DHCP全称是Dynamic Host Co...
  • VB写跟PLC以太网通信的程序,用VB写跟PLC以太网通信的程序,采用winsock控件,modbus协议,施耐德PLC(型号BMX P342020)。
  • 以太网MAC协议--CSMA/CD协议

    千次阅读 2016-11-17 15:06:21
    以太网MAC协议–CSMA/CD协议@(计算机网络)为了通信的方便,以太网采用了两种重要措施:CSMA/CD协议 采用无连接工作方式:传输数据之前不用建立连接 对发送帧不进行编号,也不要求接收方发回确认帧。这样做...
  • 下图是基于车载以太网的车载网络所使用各种通信协议,在这篇文章中我将简要介绍一下位于7层上DHCP协议。 车载以太网涉包含各种协议 DHCP全称是Dynamic Host Configuration Protocol,翻译作动态主机配置...
  • 关键词:工业以太网 光纤环路 交换机 ARM随着以太网技术的迅速发展及其在商用领域的应用日渐广泛,越来越多的工业控制设备也逐渐使用以太网采用TCP/IP协议作为主要的通信标准。虽然应用于工业控制领域的...
  • 介绍了基于DSP嵌入式以太网系统数据传输方法,采用TMS320F2812DSP为主处理器,通过以 太网控制器硬件驱动和嵌入式ulP协议移植,实现了以以太网控制芯片CS89O0A与TMS320F2812数字 信号处理器为核心DSP...
  • 基于以上事实,本文提出了基于FPGA嵌入式以太网与Matlab通信系统设计和研究,采用Xilinx公司MicroBlaze嵌入式微处理器软核,利用它和相应外设IP核一起完成SOPC设计并且完成与Simulink数据传输,最后动态...
  • 工业自动化控制系统日益采用以太网(Ethenet)和TCP/IP协议作为最主要的通信方式。以太网作为目前应用最广泛、成长最快的局域网技术,在工业自动化领域得到了超乎寻常的发展。 在工业控制系统中,若现场控制器采用了...
  • 以太网(Ethernet)是当今现有局域网采用的最通用的通信协议标准,是局域网的一种,其主要是通过MAC地址识别各个结点。 那什么是MAC地址呢? MAC地址(Media Access Control Address)是一种标识符,用来标记网络中...
  • 简介变电站作用是将长距离传输高电压降为民用电压(如110KV电压变为380V)。一个电网除了需要各级变电站,同时还需要一个完备通讯...各种类型数据,或各种协议的数据都可以通过一些成熟产品转换成TCP/IP协
  • VxWorks是美国Wind River公司推出一款专门为实时系统设计开发操作系统内核,为程序员提供了高效实时多任务调度、中断管理,实时系统资源以及实时任务间通信。它是一种功能强大而且比较复杂操作系统,...
  • MPI通讯是当通信速率要求不高、通信数据量不大时,可以采用的一种简单经济的通讯方式。MPI通信可使用PLC S7-200/300/400、操作面板TP/OP及上位机MPI/PROFIBUS通信卡,如CP5512/CP5611/CP5613等进行数据交换。MPI...
  • 在这个网络终端上运行μC/OSⅡ嵌入式操作系统、LWIP网络通信协议和应用软件,就能实现多种网络通信功能。 关键词:以太网;网络终端;可编程芯片上系统 1 引言 近年来随着Internet网络快速发展,以太网因其宽带、扩展...
  • 工业以太网一般使用IEEE 802.3中定义的以太网标准。针对自动化系统网络节点辅助采用了服务质量( QOS)...大多数PROFINET通信是通过没有被修改的以太网和TCP/IP包来完成。这使得可以无限制地把办公网络应用集成
  •  以太网具有传输速度高、低耗、易于安装和兼容性好等方面优势,由于它支持几乎所有流行网络协议,所以在商业系统中被广泛采用.近些年来,随着网络技术发展,以太网进入了控制领域,形成了新型的以太网控制网络技术...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 696
精华内容 278
关键字:

以太网采用的通信协议