精华内容
下载资源
问答
  • 欧姆龙以太网通信协议,pdf文件,官网发布,全英文
  • 六种实时以太网通信协议,Ethernet等等
  • 电网故障信息关联的以太网通信协议扩展了IEC60870-5-103协议,将IEC60870-5-103协议采用RS-485通信方式扩展为以太网通信方式,链路层采用IEC60870-5-104模式,将故障时刻的录波、事故报告、定值、压板设置、开关变位、...
  • 为了将传统的以太网技术应用于工业领域,提出一种工业以太网协议技术——DNet(Determinate Net Protocal)。DNet协议技术使得DCS网络通信中的数据传输满足工业控制的确定性、实时性、可靠性与安全性等要求。
  • 以太网数据包协议格式MAC层ARP层IP层ICMPUDPTCP、UDP数据包大小的限制 MAC层 帧格式: 帧介绍: 帧间隙(IFG): 网络设备和组件在接收一个帧之后,需要一段短暂的时间来恢复并为接收下一帧做准备。 不管 10M/100M/...

    MAC层

    帧格式:
    在这里插入图片描述

    帧介绍:
    在这里插入图片描述帧间隙(IFG):
    网络设备和组件在接收一个帧之后,需要一段短暂的时间来恢复并为接收下一帧做准备。
    不管 10M/100M/1000M的以太网,两帧之间最少要有96bit;公式:IFGmin=96bit/speed (单位:s),则:
    10Mmin 是9600 ns
    100Mmin 是960 ns
    1000Mmin 是 96 ns

    ARP层

    功能:
    地址解析协议(Address Resolution Protocol),其基本功能为透过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

    帧格式:
    在这里插入图片描述
    帧介绍:
    在这里插入图片描述帧传输:
    若当前链路层网络类型为以太网,网络层协议为IP协议,以太网源地址为MAC1,源IP地址为IP1, 以太网目的地址为MAC2,目的IP地址为IP2。
    在这里插入图片描述

    IP层

    帧格式:
    在这里插入图片描述帧介绍:
    在这里插入图片描述

    ICMP

    功能:
    侦测远端主机是否存在,建立及维护路由资料,重导资料传送路径(ICMP重定向),资料流量控制。ICMP在沟通之中,主要是透过不同的类别(Type)与代码(Code) 让机器来识别不同的连线状况。
    帧格式:
    在这里插入图片描述帧介绍:
    在这里插入图片描述

    UDP

    UDP 报头使用两个字节存放端口号,所以端口号的有效范围是从 0 到 65535。一般来说,大于 49151 的端口号都代表动态端口。
    帧格式:
    在这里插入图片描述帧介绍:
    在这里插入图片描述

    TCP、UDP数据包大小的限制

    在这里插入图片描述
    1.在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)-(1500+18),其中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包括帧头和帧尾),即MTU(Maximum Transmission Unit)为1500;  
    2.在网络层,因为IP包的首部要占用20字节,所以这的MTU为1500-20=1480; 
    3.在传输层,对于UDP包的首部要占用8字节,所以这的MTU为1480-8=1472;   
    所以,在应用层,你的Data最大长度为1472。当我们的UDP包中的数据多于MTU(1472)时,发送方的IP层需要分片fragmentation进行传输,而在接收方IP层则需要进行数据报重组,由于UDP是不可靠的传输协议,如果分片丢失导致重组失败,将导致UDP数据包被丢弃。   
    从上面的分析来看,在普通的局域网环境下,UDP的数据最大为1472字节最好(避免分片重组)。   
    但在网络编程中,Internet中的路由器可能有设置成不同的值(小于默认值),Internet上的标准MTU值为576,所以Internet的UDP编程时数据长度最好在576-20-8=548字节以内。

    展开全文
  • S7-300PLC利用S5兼容的通信协议进行工业以太网通信方法
  • 本PDF详细描述了Profinet工业以太网实时通信协议分析,对于学习Profinet通讯有较大的帮助!
  • 以太网通信及设计

    2021-04-09 13:22:48
    以太网通信协议2.1 以太网数据格式2.2 IP协议(Internet Protocol)2.3 UDP协议3. 以太网通信设计3. 以太网传输图片(VGA显示) 1. 以太网简介 1.1 以太网概述 以太网(Ethernet),是当今现有局域网采用的最通用的...

    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

    展开全文
  • 1.以太网数据格式 七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。不仅包括一系列抽象的术语或概念,也包括具体的协议。 ...

    1.以太网数据格式

    • 七层模型,亦称OSI(Open System Interconnection)。参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系。不仅包括一系列抽象的术语或概念,也包括具体的协议。
      在这里插入图片描述
      • 物理层包括,网线接口、PHY芯片等(由IEEE802.3制定,属于MAC)
      • 数据链路层,规定数据传输格式,还包括数据纠错(由IEEE802.3制定,属于MAC)
      • 网络层,通过IP选址建立两个设备之间的连接(IP层)
      • 传输层,包括TCP/UDP传输协议
      • 对于FPGA设计主要关注这4层。
        在这里插入图片描述
    • MAC层具体的帧格式:
      在这里插入图片描述
    • 前导码( 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地址(Media Access Control Address),也叫物理地址和局域网地址,主要用于确认网上设备的地址,类似于身份证号,具有唯一标识占用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、 CRCCCIT,其中在网络通信系统中应用最广泛的是CRC-32标准。
    • 以太网相邻两帧之间的时间间隔, 即帧间隙( IFG,Interpacket Gap) 。 帧间隙的时间就是网络设备和组件在接收一帧之后,需要短暂的时间来恢复并为接收下一帧做准备的时间, IFG的最小值是96 bit time,即在媒介中发送96位原始数据所需要的时间,在不同媒介中IFG的最小值是不一样的。 不管10M/100M/1000M的以太网, 两帧之间最少要有96bit time。速度越快间隙越短。

    2.IP协议

    2.1IP协议

    规定了数据传输时的基本单元和格式。IP协议位于以太网MAC帧格式的数据段, IP协议内容由IP首部和数据字段组成。所有的TCP、 UDP及ICMP数据都以IP数据报格式传输,IP数据包格式如图:
    在这里插入图片描述
    前20个字节和紧跟其后的可选字段是IP数据报的首部,前20个字节是固定的,后面可选字段是可有可无的,首部的每一行以32位( 4个字节)为单位。

    • 版本: 4位IP版本号( Version),这个值设置为二进制的0100时表示IPv4,设置为0110时表示IPv6。
    • 首部长度: 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数据部分(UDP首部+用户数据),以字节为单位我们利用IP首部长度和IP数据报总长度,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节。尽管理论上可以传输长达65535字节的IP数据报,但实际上还要考虑网络的最大承载能力等因素,前面MAC协议规定最大不超过1500字节。若超过1500字节,则会进行分片。一般FPGA写的逻辑发送数据量不大,不进行分片。
    • 标识字段: 16位标识( Identification)字段,用来标识主机发送的每一份数据包。通常每发送一份报文它的值就会加1。
    • 标志字段: 3位标志( Flags)字段,第1位为保留位;第2位表示禁止分片( 1表示不分片0:允许分片);第3位标识更多分片(除了数据报的最后一个分片外,其它分片都为1)。
    • 片偏移: 13位片偏移( Fragment Offset),在接收方进行数据报重组时用来标识分片的顺序。不分片时候置零。
    • 生存时间: 8位生存时间字段, TTL( Time To Live)域防止丢失的数据包在无休止的传播,一般被设置为64或者128。每转发一次就-1。
    • 协议: 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的整数倍。

    2.2 IP首部校验

    IP首部校验和的计算方法(需要融入设计,不然PC端虽然能接受数据但是可能因为校验出错丢掉数据包),其计算步骤如下

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

    例如下图,首先进行16bit的划分,首部校验和强制置零:
    在这里插入图片描述
    按照上述提到的 IP 首部校验和的方法计算 IP 首部校验和,即:
    1、 0x4500 + 0x0032 + 0x0000 + 0x4000 + 0x4011 + 0x0000(计算时强制置0) + 0xc0a8 + 0x017b+ 0xc0a8 + 0x0166 = 0x24974
    2、 0x0002 + 0x4974 = 0x4976
    3、 0x0000 + 0x4976 = 0x4976(此种情况并未出现进位)
    4、 check_sum = ~0x4976(按位取反) = 0xb689

    3.UDP协议

    3.1TCP/UDP区别

    在这里插入图片描述

    • TCP
      • 传输之前3次握手,确保建立了可靠地连接
      • 数据传输时有确认、出错后重传机制
      • 传输完毕后断开连接,节约资源
      • 协议复杂,速度受限,可靠性高
    • UDP
      • 发送之前不建立连接,尽最大可能保证数据能传输好
      • 实时性高,效率高,不用握手实现简单占用资源少
      • 虽然有潜在的不可靠,但是许多场合是可以接受的
      • 适用于Verilog实现

    3.2UDP协议

    在这里插入图片描述

    • 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校验部分不像MAC层是先发被校验部分后发校验值,而是校验内容应该在发送数据之前就计算完毕。在包括校验的UDP组包时不太方便,因此一些要求不严格的场景中接收端并不检测UDP校验和
    • 协议层级关系:
      用户数据打包在UDP协议中, UDP协议又是基于IP协议之上的, IP协议又是走MAC层发送的,即从包含关系来说: MAC帧中的数据段为IP数据报, IP报文中的数据段为UDP报文, UDP报文中的数据段为用户希望传输的数据内容。
      在这里插入图片描述
    展开全文
  • Xilinx ISE 千兆以太网通信基础

    千次阅读 2019-11-05 15:03:09
    有意向对以太网通信协议进行整理,不过可能整理的比较缓慢。感兴趣的话,可以先阅读阅读本文整理的参考文献。 一、以太网协议基础 1.1 以太网协议架构 1.2 以太网数据帧(802.3) ...

     

     

    前言

    为完整对以太网通信相关概念进行阐述,部分图文内容引用自参考文献。所有引用的参考文献都附在文章最后。

    千兆PHY芯片可以参考VSC8601(10/100/1000BASE-T PHY with RGMII MAC Interface)手册。也可以参考RTL8211EGVB 芯片手册。

     

    一、以太网协议基础

    1.1、TCP/IP 和 ISO/OSI

     

    ISO/OSI模型,即开放式通信系统互联参考模型(Open System Interconnection Reference Model),是国际标准化组织(ISO)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架,简称OSI。

    TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议,通过20多年的发展已日渐成熟,并被广泛应用于局域网和广域网中,目前已成为事实上的国际标准。TCP/IP协议簇是一组不同层次上的多个协议的组合,通常被认为是一个四层协议系统,与OSI的七层模型相对应。

    1.2、TCP/IP分层模型

    1.3、数据的封装与分用

    当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图所示。

            TCP传给IP的数据单元称作TCP报文段或简称为TCP段(TCP segment);UDP数据与TCP数据基本一致。唯一的不同是UDP传给IP的信息单元称作U D P数据报(UDP datagram),而且UDP的首部长为8字节。IP传给网络接口层的数据单元称作IP数据报(IP datagram)。通过以太网传输的比特流称作帧(Frame )。

    当目的主机收到一个以太网数据帧时,数据就开始从协议栈中由底向上升,同时去掉各层协议加上的报文首部。每层协议盒都要去检查报文首部中的协议标识,以确定接收数据的上层协议。这个过程称作分用(Demultiplexing)。协议是通过目的端口号、源I P地址和源端口号进行解包的。

    1.4、以太网PHY和MAC

    以太网PHY和MAC对应OSI模型的两个层——物理层和数据链路层。

    物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口(RGMII / GMII / MII)。

    数据链路层则提供寻址机构、数据帧的构建、数据差错检查、传送控制、向网络层提供标准的数据接口等功能。

    问:以太网PHY是什么?

    答:PHY是物理接口收发器,它实现物理层。IEEE-802.3标准定义了以太网PHY。它符合IEEE-802.3k中用于10BaseT(第14条)和100BaseTX(第24条和第25条)的规范。

    问:以太网MAC是什么?

    答:MAC就是媒体接入控制器。以太网MAC由IEEE-802.3以太网标准定义。它实现了一个数据链路层。最新的MAC同时支持10/100/1000Mbps速率。通常情况下,它实现MII/GMII/RGMII接口,来同行业标准PHY器件实现接口。

    1.5、MII/GMII接口

     MII(Medium Independent Interface)即媒体独立接口。MII总线 是在IEEE802.3中规定的一种用于将不同类型的PHY与相同网络控制器(MAC)相连接的通用总线。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。数据接口包括分别用于发送器和接收器的两条独立信道。每条信道都有自己的数据、时钟和控制信号。MII数据接口总共需要16个信号。管理接口是个双信号接口:一个是时钟信号,另一个是数据信号。通过管理接口,上层能监视和控制PHY。

    MII标准接口 用于连快Fast Ethernet MAC-block与PHY。“介质无关”表明在不对MAC硬件重新设计或替换的情况下,任何类型的PHY设备都可以正常工作。在其他速率下工作的与 MII等效的接口有:AUI(10M 以太网)、GMII(Gigabit 以太网)和XAUI(10-Gigabit 以太网)。

    此外还有RMII(Reduced MII)、GMII(Gigabit MII)、RGMII(Reduced GMII)SMII等。所有的这些接口都从MII而来,MII是(Medium Independent Interface)的意思,是指不用考虑媒体是铜轴、光纤、电缆等,因为这些媒体处理的相关工作都有PHY或者叫做MAC的芯片完成。

    MII支持10兆和100兆的操作,一个接口由14根线组成,它的支持还是比较灵活的,但是有一个缺点是因为它一个端口用的信号线太多,如果一个8端口的交换机要用到112根线,16端口就要用到224根线,到 32端口的话就要用到448根线,一般按照这个接口做交换机,是不太现实的,所以现代的交换机的制作都会用到其它的一些从MII简化出来的标准,比如 RMII、SMII、GMII等。

    RMII是简化的MII接口,在数据的收发上它比MII接口少了一倍的信号线,所以它一般要求是50兆的总线时钟。RMII一般用在多端口的交换机,它不是每个端口安排收、发两个时钟,而是所有的数据端口公用一个时钟用于所有端口的收发,这里就节省了不少的端口数目。RMII的一个端口要求7个数据线,比MII少了一倍,所以交换机能够接入多一倍数据的端口。和 MII一样,RMII支持10兆和100兆的总线接口速度。

    SMII是由思科提出的一种媒体接口,它有比RMII更少的信号线数目,S表示串行的意思。因为它只用一根信号线传送发送数据,一根信号线传输接受数据,所以在时钟上为了满足100的需求,它的时钟频率很高,达到了125兆,为什么用125兆,是因为数据线里面会传送一些控制信息。SMII一个端口仅用4根信号线完成100信号的传输,比起RMII差不多又少了一倍的信号线。SMII在工业界的支持力度是很高的。同理,所有端口的数据收发都公用同一个外部的125M时钟。

    GMII是千兆网的MII接口,这个也有相应的RGMII接口,表示简化了的GMII接口。

    RGMII(Reduced Gigabit Media Independent Interface)是Reduced GMII(吉比特介质独立接口)。RGMII 均采用4 位数据接口,工作时钟125MHz,并且在上升沿和下降沿同时传输数据,因此传输速率可达1000Mbps。同时兼容MII 所规定的10/100 Mbps 工作方式,支持传输速率:10M/100M/1000Mb/s ,其对应clk 信号分别为:2.5MHz/25MHz/125MHz。RGMII数据结构符合IEEE 以太网标准,接口定义见IEEE 802.3-2000。采用RGMII 的目的是降低电路成本,使实现这种接口的器件的引脚数从25 个减少到14 个。

                                      

    GMII接口信号
    FPGA发送信号端口
    phy_rst_n 是低电平复位信号
    gmii_tx_clk 是FPGA发送时钟,这里直接使用gmii_rx_clk即可
    gmii_tx_en 发送数据有效标志,与gmii_tx_data对齐
    gmii_tx_er 是错误标志
    gmii_tx_data 是FPGA发送给PHY的数据
    FPGA接收信号端口
    gmii_rx_clk 是PHY发送过来的时钟,FPGA通过该时钟进行采样
    gmii_rx_dv 是接收数据有效标志,与gmii_rx_data对齐
    gmii_rx_er 是错误标志,当它有效时,说明发送帧错误
    gmii_rx_data 是PHY发送过来的数据

    GMII接口按以下时序发送数据

                                      

     

     

     

    1.6、以太网数据帧(802.3)

    以太网数据帧
    以太网数据帧字段含义

     

    1.7、IP数据包格式

    IP数据以数据的形式包含在以太网数据帧中。

    IP数据包格式
    IP数据包字段含义

    1.8 UDP数据包格式

    UDP数据包以数据的形式包含在IP数据包中。

    UDP数据包格式
    UDP数据包字段含义

     

    以太网帧格式如下图所示:

                           

    • 每个以太网帧中允许包含的数据字节个数在46-1500字节范围内;
    • IP包文首部中含的16位总长度是指首部和数据之和的长度,最大数值为65535字节;
    • UDP首部里的用户数据包长度,是指当前以太网帧中的数据长度。

    UDP帧发字节顺序,可按下表顺序发送

                  

                              

               

    IP首部校验和:占16位,只检验数据报的首部、不检验数据部分(仅对IP首部20字节进行校验)。采用二进制反码求和,即将16位数据相加后,再将进位与低16位相加,直到进位为0,最后将16位取反。

    CRC校验:从目的MAC地址开始到数据段,进行校验。

     

    二、硬件架构

    千兆以太网常用物理层接口有GMII和RGMII,应用情况有所差别。GMII占用的引脚较多,RGMII可以很大程序地减少引脚的使用。因此本设计采用RGMII接口进行设计,物理层芯片采用RTL8211E。

     

    2.1、PHY芯片与RGMII简介

    RTL8211E 是由Realtek(瑞昱半导体)公司推出的10Mbit/100Mbit/1000Mbit以太网物理层芯片,有RGMII和GMII两种接口,分别对应芯片RTL8211E和RTL8211EG。RGMII接口的RTL8211E具有48个引脚,相对与64脚的GMII接口的RTL8211EG,节约控制芯片引脚,但是时钟上升沿和下降沿都有数据操作,时序控制比较复杂一些,详细信息见其数据手册。

    可以通过管理配置(控制和状态信息)接口实现对PHY芯片进行配置,通过RGMII方式进行数据传输。

    发送器

    GTX_CLK 吉比特TX..信号的时钟信号(125MHz)
    TXD[3..0] 被发送数据,上升沿发送低四位数据,下降沿发送高四位数据
    TX_CTL 发送控制
    TXEN 发送器使能信号

    注:在千兆速率下,向PHY提供GTXCLK信号,TXD、TXEN、TXER信号与此时钟信号同步。否则,在10/100M速率下,PHY提供TXCLK时钟信号,其它信号与此信号同步。其工作频率为25MHz(100M网络)或2.5MHz(10M网络)。

    接收器:

    RX_CLK 接收时钟信号(从收到的数据中提取,因此与GTX_CLK无关联)
    RXD[3..0] 接收数据,上升沿为低四位数据,下降沿为高四位数据
    RX_CTL 接收控制
    COL 冲突检测(仅用于半双工状态)

    管理配置 :

    MDC 配置接口时钟
    MDIO 配置接口I/O

    管理配置接口控制PHY的特性。该接口有32个寄存器地址,每个地址16位。其中前16个已经在“IEEE 802.3,2000-22.2.4 Management Functions”中规定了用途,其余的则由各器件自己指定。

    PHY芯片RGMII 通信时序:

    PHY芯片管理配置(控制和状态信息)接口时序(芯片型号RTL8211EGVB):

    管理帧格式:

    读写格式:

    MDC为MAC驱动时钟信号,MDIO是串行数据总线,需要连接上拉电阻保证idle状态下高电平。其中前导码包含32个比特“1”,PHY地址根据芯片引脚连接而定,此处为01.turn around域是为了防止读操作时数据冲突,在读操作过程中MAC和PHY均在第1比特处进入高阻态,PHY在第2比特处驱动MDIO接口为低电平以占据总线控制权。注意两点:第一如果时钟信号在读写操作后停止,时钟必须保证至少7个时钟周期持续翻转且MDIO高电平从而保证之前的操作完成。故在设计中可以等待一段时间后再拉低时钟使能信号。第二两个操作之间至少一个idle比特。

     

    2.2、架构设计

    PC通过网线插入RJ-45口中,再经过PHY芯片,PHY芯片与FPGA可以采用RGMII方式进行通信。

                            

    MAC内部设计结构也可以参照Altera的以太网MAC IP核,可见内部主要由发送和接收处理逻辑、缓存部分、配置与统计以及MDIO控制模块五部分组成.

     

     

     

     

     

     

     

     

     

     

    >>点击这里返回导航页<<

    参考文献

    作者 博客
    1、一苇度湖 Verilog实现千兆以太网传输
    2、Pushment 基于RGMII的FPGA千兆以太网设计
    3、ciscomonkey UDP千兆以太网FPGA_verilog实现(三、代码前期准备-时序要求)
      UDP千兆以太网FPGA_verilog实现(四、代码前期准备-UDP和IP协议构建)
      UDP千兆以太网FPGA_verilog实现(五、以太网帧的结构)
    4、时间看得见 千兆UDP学习调试记录(一)
      千兆UDP的Verilog实现源码
    5、LChanceea8 数据链路层之以太网协议
    6、xgbing  Triple-Speed Ethernet(tse)FPGA软核MAC测试
    7、 千兆以太网MAC控制器实现方案 - 基于Xilinx FPGA的千兆以太网控制器的开发
    8、 如何开发FPGA的以太网接口?
    9、没落骑士 FPGA设计千兆以太网MAC(1)——通过MDIO接口配置与检测PHY芯片
      FPGA设计千兆以太网MAC(2)——以太网协议及设计规划
      浅析Xilinx 三速以太网MAC IP核(仿真篇)
    10、我心狂野 以太网PHY和MAC
    11、hankscpp TCP/IP协议簇分层详解
    12、朽月 基于FPGA的千兆以太网的实现(1)
      基于FPGA的千兆以太网的实现(2)
      基于FPGA的千兆以太网的实现(3)
      基于FPGA的千兆以太网的实现(4)
    13、lzx6901152 千兆以太网TCP协议的FPGA实现
    14、always@ 基于FPGA的以太网芯片W5300的tcp/ip协议的开发
    15、Why_csdn_1 W5300网口芯片的FPGA控制协议流程
    16、强迫症高级患者 基于FPGA的千兆以太网传输实例——ARP和UDP的实现
       

     

     

     

     

     

     

     

    展开全文
  • FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议通信说明书,FX5U以太网口MC协议...
  • 基于FINS协议的OMRON PLC与上位机以太网通信的实现,
  • 随着互联网技术的发展、普及与推广,以太网技术得到了迅速的发展,其传输速率的提高和交换技术的应用,解决了以太网通信的非确定性问题,使得工业以太网能够广泛应用于工业信息控制领域,也是工业信息控制未来的发展...
  • 在研究工业网络实时性要求的基础上,给出了工业以太网和实时以太网的定义,深入分析了6种主要实时以太网通信协议,并概要论述了以太网运动控制、网络安全和以太网延伸至现场设备级等关键技术。同时,较全面地概述了...
  • 基于EtherCAT的主站通信控制器设计,系统的介绍了总线的设计方法和设计流程,很好的参看资料
  • 本文介绍构建于UDP协议之上的ZC内部安全通信协议的设计与实现,利用OP— NET网络仿真工具对该协议进行建模,并模拟VxWorks实时操作系统的多任务调度环境,构建基于交换式以太 网的通信性能仿真研究平台。根据ZC的...
  • 谁有 三菱 QJ71E71-100通信协议Melsec以太网通信的例子,网络已通。 GX Work2,PLC Monitor Utility(Mx Communication V4)等工具都可以连接上去。 非常感谢。 String cmd = ""; String OutAddress = "0001"; ...
  • 用于硬实时通信的简单交换以太网协议
  • (1)仿真PLC与仿真HMI通信,...(2)同时仿真两台PLC测试通信,编写程序案例,视频讲解:①S7通信_PUT/GET、USEND+BSEND等②开放式用户通信(TSEND_C+TRCV_C)、(TCON+TSEND+TRCV)等多种协议使用 (3)以及注意事项
  • 1.基于FINS协议的OMRON PLC与上位机以太网通信的实现 [爱学术] https://www.ixueshu.com/document/ef7e2dba18b3938f.html#pdfpreview 2.基于FINS协议的OMRON PLC与上位机通信(进阶完整版) [百度文库]...
  • Linux网络通信环境中的链路层主要负责相邻设备之间的数据帧传输,典型协议以太网协议,典型设备是交换机。 网络层主要偏向数据的传输方向,也就是数据的起点到终点,而链路层更加偏向相邻主机间数据如何传输,也...
  • S7-300 PLC的CPU315-2PN/DP带有PN口,用过ProfInet电缆(工业以太网电缆)可以与上位机进行Modbus TCP通信,上位机发送数据指令给PLC,通过伺服驱动器控制伺服电机达到指定位置。
  • PC端可以与多块FPGA板子进行以太网通信,基于正点原子开发板的例程进行编写调试,要求:PC端发送1122,FPGA发回AABBCC,表示通信测试通过;接着PC端发送3344,FPGA发回数据。FPGA选用正点原子的开拓者,以太网RTL...
  • 1500PLC读写SQL微软数据库S7-1500T-CPU标准应用库官方下载(一)ISO传输协议:ISO 传输连接用于 S7 站之间的数据交换以及与PC 站,S5 站和第三方系统之间的通信。ISO 传输连接的属性:(1)站间的通信是基于 MAC 地址的...
  • 为了实时采集基于DSP的电力电子变换电路控制器的运行数据,通过ARM芯片及以太网PHY控制器芯片提供一种以太网通信解决...考虑到系统简化及数据速率问题,在通信协议方面采用UDP协议,采用LabVIEW设计以太网上位机界面。
  • 前现场总线体系中,基于以太网通信协议除了现场总线应用行规国际标准IEC 61784-1中包含的HSE、Ethernet/IP、Profinet之外,还包括EPA、EtherCAT、Ethernet PowerLink、VnetiIP、TCnet、Modbus/IDA等6个新的提案。...
  • UDP协议在fpga上的实现,verilog代码共有11部分,分为: •arp_rcv.v •arp_send.v •IP_recv.v •IP_send.v •udp_rcv.v •udp_send.v •mac_cache.v •recv_buffer.v •send_buffer.v •toplevel.v •DE2_NET.v

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,528
精华内容 1,411
关键字:

以太网通信协议