本发明专利技术涉及以太网CRC校验方法,在接收以太网一帧数据的同时对接收到的数据逐一字节进行CRC运算,记录运算得到的CRC并存储,将该运算得到的CRC与最后接收数据中的CRC进行比对,实现CRC校验;本发明专利技术的整个CRC计算过程与编解码过程是同步的,不占用额外的时钟周期,极大提高了数据处理的速度和效率。
Ethernet CRC check method
The present invention relates to CRC verification method for Ethernet, Ethernet in receiving a frame of data and the received data byte by byte CRC operation, CRC operation records and stores, the operation of CRC and finally received data to compare CRC, CRC check; the whole calculation process and coding CRC the decoding process is not synchronized, extra clock cycle, which greatly improves the data processing speed and efficiency.
【技术实现步骤摘要】
以太网CRC校验方法
本专利技术属于以太网通信的快速编解码
,涉及一种以太网CRC校验方法。
技术介绍
随着以太网技术在工业领域应用的日益广泛,网络数据通信成为工业数据交互的主要方式,然而工业以太网中很多通讯协议都是该领域独有的,因此,即便主流的网络芯片可以提供数据通信上的帮助,但具体到业务领域还是存在很大的缺陷,比如无法过滤业务数据,无法精确定时发送数据等。百兆以太网数据包在结尾处都会附带一个32位的CRC校验码。CRC即循环冗余校验码,是数据通信领域中最常用的一种差错校验码,信息字段和校验字段的长度可以任意选定,在以太网通信中,它跟在有效报文后面发送。CRC校验的实质是将CRC多项式与待校验字节做移位异或运算,由于一个字节共有256种结果,故运算结果也有256种,CRC查表法就是将此256种结果提前储存在常量数组中,在计算时,只需根据待校验字节所代表的数组位置直接查找结果即可。CRC校验的算法分为两种:串行位算法、并行字节算法。串行位算法是将接收到的每一位数据与CRC生成多项式作一次逻辑运算,直到接收完毕,该方法效率较低,一个时钟周期仅能计算一位数据;并行字节算法效率较高,它以一个字节为单位,将每个字节共256种结果存储在常量数组中,计算时直接查表即可,一个时钟周期可以计算8位数据,但该算法一般都在接收完整一帧数据才开始,当网络数据量较大的时候,依然不能满足要求,因此需要一种效率更高的技术来支撑以太网越来越高速的数据量。
技术实现思路
本专利技术的目的是提供一种以太网CRC校验方法,以解决现有校验方法无法满足以太网数据量越来越大的问题。为实现上述目的,本专利技术的以太网CRC校验方法技术方案如下:在接收以太网一帧数据的同时对接收到的数据逐一字节进行CRC运算,记录运算得到的CRC并存储,将该运算得到的CRC与最后接收数据中的CRC进行比对,实现CRC校验。进一步的,将接收到的数据依次存入一个FIFO的四字节CRC待校验缓冲区,对溢出的每一个字节数据进行查表,得到该字节的CRC并存储带入下一次运算,直到接收数据完成,将最后CRC待校验缓冲区接收到的CRC与计算得到的CRC进行比对,完成CRC校验。所述每接收到一个字节的数据,在存入CRC待校验缓冲区的同时存入数据缓冲区。所述运算得到的CRC与最后接收数据中的CRC进行比对,若是两CRC不同,则传输过程中出现了误码,数据缓冲区存储的数据无效。所述直到接收数据完成是当最后一个字节传输完成,存入CRC待校验缓存区后,CRC待校验缓存区内储存的四个字节数据为待校验的CRC码;同时待校验的CRC码前一字节的最后一个有效数据的CRC校验计算完成,将CRC待校验缓存区内存储的待校验CRC与计算得到的CRC进行比对便可得知该帧数据是否在传输过程中出现了误码。进一步的,在发送数据过程中,每发送一个字节的数据,就查表得到该字节的CRC,并带入下一次运算,直到数据发送结束,形成最终的CRC数据包发送到链路上。所述数据的发送或接收通过PHY芯片的RMII接口完成,FPGA与PHY芯片通过RMII接口连接。本专利技术的以太网CRC校验方法,在收发以太网报文的过程中以查表法为基础,在接收数据、发送数据的同时进行CRC运算,整个计算过程与编解码过程是同步的,不占用额外的时钟周期,极大提高了数据处理的速度和效率;FPGA与PHY芯片通过RMII接口连接,RMII接口在每个时钟周期仅传输两位数据,传输一个字节需要四个周期,而将待校验字节查表,则需要两个时钟周期,因此,从时间效率上分析,可实现接收数据或发送数据的同时进行CRC校验;采用FPGA+PHY的硬件架构,利用FPGA丰富的I/O资源与多个PHY芯片的收发管脚直接相连,并利用FPGA并行处理数据的特性,可同时对多个网口数据进行编解码和CRC校验。附图说明图1是CRC接收校验流程图;图2是CRC发送校验流程图;图3是实施例的硬件架构图。具体实施方式以太网CRC校验如图1、2、3所示,在发送数据编码过程中,每发送一个字节的数据,就查表得到该字节的CRC,并带入下一次运算,直到数据发送结束,形成最终的CRC数据包通过PHY发送到链路上;FPGA接收从PHY发送的数据,在接收数据解码过程中,每接收一个字节的数据,就查表得到该字节的CRC,并带入下一次运算,直到接收解码完成,将接收到的CRC与计算得到的CRC进行比对,完成CRC校验;整个计算过程与编解码过程是同步的,不占用额外的时钟周期,效率更高。如图3所示为硬件架构图,FPGA与CPU相连,与多个PHY芯片通过RMII接口连接,FPGA是硬件编程设计,能实现对各种需求的定制服务,它没有指令周期,完全靠硬件电路的重构来执行所需功能,时序控制精度也很高,另外并行处理的优势,也能实现同时对多个PHY的数据收发。RMII称为媒体独立接口,它是IEEE-802.3定义的以太网行业标准,包括一个数据管理接口,以及一个MAC和PHY之间的管理接口。以太网CRC校验方法在FPGA内部实现,利用FPGA丰富的I/O资源与多个PHY芯片的收发管脚直接相连,并利用其自身并行处理数据的优势,可同时对这多个网口数据进行编解码和CRC校验;另外,FPGA可通过软件进行配置和编程,从而可对特定报文进行解析过滤,因此,可为FPGA后端的CPU释放大量的资源,缩短数据处理的时间,从而防止网络风暴对CPU的稳定运行造成负面影响。本以太网CRC校验方法是建立在CRC查表算法的基础之上,在计算时,只需根据待校验字节所代表的数组位置直接查找结果即可。据此效率上的优势,FPGA可在以太网数据收发的过程中,完成CRC校验。在接收解码过程中,每接收一个字节的数据,即可根据算法得到该字节的CRC,并带入下一次运算,直到接收解码完成;在发送编码过程中,亦采用同样的方式,每发送一个字节的数据,计算一次CRC,直到发送完成,并将计算得到的CRC发送到链路上。1,接收数据过程如图1所示,FPGA对来自PHY芯片的RMII接口的数据进行实时解码,开辟一个32位的变量用来存储每次查表得到的CRC校验码,另外,除了开辟一个储存所有以太网数据的缓冲区以外,还需定义一个可储存四个字节的CRC待校验缓冲区。每收到一个字节在存入数据缓冲区后,同时存入CRC待校验缓冲区。此缓冲区保证先进先出的原则,直到第五个字节压入,第一个字节从缓冲区弹出,方可参与CRC校验运算。RMII接口在每个时钟周期仅传输两位数据,传输一个字节需要四个周期,而将待校验字节查表,则需要两个时钟周期,因此,从时间效率上分析,在解码过程中是完全可以完成CRC查表校验。当最后一个字节解码完成,存入CRC待校验缓存区后,缓冲区内储存的四个字节数据正好为待校验的CRC码;同时,最后一个有效数据(即待校验的CRC码前一字节的最后一个有效数据)的CRC校验计算也正好完成,将两者比较便可得知该帧数据是否在传输过程中出现了误码。2、发送数据过程如图2所示,RMII接口发送的时序与接收近似,每个时钟周期只能发送两位数据,因此,可在其编码发送过程中,对该字节数据进行CRC查表计算,待最后一个字节发送结束,便可将计算得到的CRC校验码发送到链路上。发送数据编码过程和接收数据解码过程在FPGA内部可同时进行,互本文档来自技高网...
【技术保护点】
以太网CRC校验方法,其特征在于,在接收以太网一帧数据的同时对接收到的数据逐一字节进行CRC运算,记录运算得到的CRC并存储,将该运算得到的CRC与最后接收数据中的CRC进行比对,实现CRC校验。
【技术特征摘要】
1.以太网CRC校验方法,其特征在于,在接收以太网一帧数据的同时对接收到的数据逐一字节进行CRC运算,记录运算得到的CRC并存储,将该运算得到的CRC与最后接收数据中的CRC进行比对,实现CRC校验;在接收数据解码过程中,每接收一个字节的数据,就查表得到该字节的CRC,并带入下一次运算,直到接收解码完成;将接收到的数据依次存入一个FIFO的四字节CRC待校验缓冲区,对溢出的每一个字节数据进行查表,得到该字节的CRC并存储带入下一次运算,直到接收数据完成,将最后CRC待校验缓冲区接收到的CRC与计算得到的CRC进行比对,完成CRC校验。2.根据权利要求1所述的以太网CRC校验方法,其特征在于:所述每接收到一个字节的数据,在存入CRC待校验缓冲区的同时存入数据缓冲区。3.根据权利要求2所述的以太网CRC校验方法,其特征在于:所述运算得到的CRC与最后接收数据中的CRC进行比对,...
【专利技术属性】
技术研发人员:郑拓夫,周水斌,闫志辉,宋彦峰,马仪成,
申请(专利权)人:许继集团有限公司,许继电气股份有限公司,许昌许继软件技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。