CN102088334A - 一种基于fpga的万兆以太网数据接收校验方法 - Google Patents

一种基于fpga的万兆以太网数据接收校验方法 Download PDF

Info

Publication number
CN102088334A
CN102088334A CN2010105980385A CN201010598038A CN102088334A CN 102088334 A CN102088334 A CN 102088334A CN 2010105980385 A CN2010105980385 A CN 2010105980385A CN 201010598038 A CN201010598038 A CN 201010598038A CN 102088334 A CN102088334 A CN 102088334A
Authority
CN
China
Prior art keywords
data
verification
fpga
lane
crc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2010105980385A
Other languages
English (en)
Inventor
张磊
白宗元
李静
纪奎
张英文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TIANJIN SUGON COMPUTER INDUSTRY Co Ltd
Original Assignee
TIANJIN SUGON COMPUTER INDUSTRY Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TIANJIN SUGON COMPUTER INDUSTRY Co Ltd filed Critical TIANJIN SUGON COMPUTER INDUSTRY Co Ltd
Priority to CN2010105980385A priority Critical patent/CN102088334A/zh
Publication of CN102088334A publication Critical patent/CN102088334A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明提供了一种基于FPGA的万兆以太网数据接收校验方法。校验检测采用“CRC Magic Number”与“Magic Number Add Zero”协同并行操作,2路并行流水数据、仅一个64位CRC-32电路,校验MAC层接收端8条lane的有效数据。检测后对FCS填充物进行剔除操作。借助于本发明的技术方案,能够生成并线速进行10G/b接收、实时进行基于CRC32的校验目的,符合万兆以太网MAC层的数据帧,并无延时的将校验后的数据帧推进到下一总线或缓冲区。

Description

一种基于FPGA的万兆以太网数据接收校验方法
技术领域
本发明涉及万兆以太网高速数据通信协议的数据检测领域,具体涉及一种基于FPGA的万兆以太网数据接收校验方法。
背景技术
在高速数据通讯系统中,由于数据流(包括有效负载和控制流)在线路上传输时会因温度、射线等外界的干扰,在接收方收到的数据流与发送方发出的数据流出现不一致的现象。为保证接收方能识别出错误的数据流并通知发送方线路上出现误码,则需要对通信过程进行差错控制。目前在线路上使用的差错控制方法有ARQ(自动请求重传方式)、FEC(前向纠错方式)和HEC(混合纠错)。较多使用的是ARQ方式,此模式的差错控制只需要检错功能。
CRC循环冗余校验码(Cyclic Redundancy Check)是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。由于其误码监测能力强,抗干扰能力优异,被广泛的用于线路的差错控制。
生成CRC码的基本原理:任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。例如:代码1010111对应的多项式为x6+x4+x2+x+1,而多项式为x5+x3+x2+x+1对应的代码101111。
CRC码集选择的原则:若设码字长度为N,信息字段为K位,校验字段为R位(N=K+R),则对于CRC码集中的任一码字,存在且仅存在一个R次多项式g(x),使得
V(x)=A(x)g(x)=xRm(x)+r(x);
其中:m(x)为K-1次信息多项式,r(x)为R-1次校验多项式,
g(x)称为生成多项式:
g(x)=g0+g1x1+g2x2+...+g(R-1)x(R-1)+gRxR
发送方通过指定的g(x)产生CRC码字,接收方则通过该g(x)来验证收到的CRC码字。
下面列出了一些标准的CRC和其多项式:
CRC-4:X4+X+1
CRC-12:x12+x11+x3+x+1
CRC-16:x16+x15+x2+1
CRC-ITU:x16+x12+x5+1
CRC-32:x32+x26+x23+...+x2+x+1
CRC-32c:x32+x28+x27+...+x8+x6+1
为了达到MAC层数据线速10G/b接收、及时进行基于CRC32的校验目的。
发明内容
本发明目的是克服MAC层线速10Gb/s接收上游数据流并进行线速10Gb/s数据检测。
一种基于FPGA的万兆以太网数据接收校验方法,包含以下步骤:
A、上游数据总线或缓冲区数据推进触发状态机启动,进入监测SFD状态;
B、检测有效数据流的SFD的前导码,若起始位置在Lane3,则对齐至Lane7;若起始位置在lane7,则直接执行下一步;
C、采用“CRC Magic Number”与“Magic Number Add Zero”协同并行校验算法,2路并行流水数据、仅一个64位CRC32电路,校验MAC层接收端8条lane的有效数据,校验后得出帧正确与否的结论;
D、数据接收到最后一周期后,若没有上传,之前接受的数据都认为是有效。
本发明的一种技术方案在于:对齐过程需要进行一周期的流水延迟。
本发明的另一技术方案在于:所述CRC Magic Number是指是把帧尾的FCS连同有效数据一起校验得出的一组数字,所述有效数据指的是8个lane8中可能有效的lane数量,其校验结果都为上述所列出的值。
本发明的再一技术方案在于:所述Magic Number Add Zero是指接收状态机在接收时采集到XGMII总线中某个lane为结束标记时,除结束标记在第8个lane情况外,其余7种情况分别把相应无效lane的数据都置为“0”送入64位CRC32模块进行校验,校验结果与相应的固定值比较,如匹配则说明此帧在链路传输中没有发生错误。
借助于本发明的技术方案,能够生成并线速进行10G/b接收、实时进行基于CRC32的校验目的,符合万兆以太网MAC层的数据帧,并无延时的将校验后的数据帧推进到下一总线或缓冲区。
附图说明
图1为MAC层监测SFD、校验及去PADDING的状态机转换过程;
图2为SFD出现在lane0的时序图;
图3为SFD出现在lane4的时序图;
图4为magic number扩展后的特殊值;
图5为利用magic number进行64位CRC-32校验的时序图;
图6本本发明电路时序图。
具体实施方式
下面结合附图和具体实施方式对本发明的方法进行说明。
链路上由上游驱动数据,中游数据分析,再将数据流推进到下游。在图1中,状态机的启动由上游发送请求进行触发,进入到监测SFD的状态。若找到SFD,则认为有效帧已经开始或在下周期开始,这里取决于SFD出现的位置,即图2、3的两种模式;对齐后接收有效数据流并对有效数据流进行CRC-32校验,校验后剔除无效部分进入重新监测SFD的状态。
帧的对齐需要对其中一种情况进行一周期的流水延迟,状态机看到的是寄存后的所有数据流,图2、3即为两种情况。
以往MAC层接收端进行8条数据lane的校验要同时利用含8,16,24,32,40,48,56,64位的CRC32电路,校验速度随快,但校验面积是一个8xN(1=<N<=8)位校验电路的8倍之多。
本发明采用称为“CRC Magic Number”的方法,其过程是把帧尾的FCS连同有效数据一起校验得出的一组数字:0xC704DD7B,这里的有效数据指的是8个lane8中可能有效的lane数量,不管几个lane数据有效,其校验结果都为上述所列出的值。所以,我们可以利用这一特性,把无效数据lane添加全“0”,其结果必定是某一确定的值,这样,就可以只用一个64位的CRC32电路就可以及时对8个lane的有效数据进行校验。
方法如下:接收状态机在接收时采集到XGMII总线中某个lane为结束标记时,除结束标记在第8个lane情况外,其余7种情况分别把相应无效lane的数据都置为“0”(包括结束标记的lane)送入64位CRC32模块进行校验,即图6所示,校验结果与相应的固定值比较,如匹配则说明此帧在链路传输中没有发生错误,把这种方法称为“Magic Number Add Zero”,这里的固定值如图5所示。

Claims (4)

1.一种基于FPGA的万兆以太网数据接收校验方法,其特征在于:包含以下步骤:
A、上游数据总线或缓冲区数据推进触发状态机启动,进入监测SFD状态;
B、检测有效数据流的SFD的前导码,若起始位置在Lane3,则对齐至Lane7;若起始位置在lane7,则直接执行下一步;
C、采用“CRC Magic Number”与“Magic Number Add Zero”协同并行校验算法,2路并行流水数据、仅一个64位CRC32电路,校验MAC层接收端8条lane的有效数据,校验后得出帧正确与否的结论;
D、数据接收到最后一周期后,若没有上传,之前接受的数据都认为是有效。
2.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于:对齐过程需要进行一周期的流水延迟。
3.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于:所述CRC Magic Number是指是把帧尾的FCS连同有效数据一起校验得出的一组数字,所述有效数据指的是8个lane8中可能有效的lane数量,其校验结果都为上述所列出的值。
4.如权利要求1所述一种基于FPGA的万兆以太网数据接收校验方法,其特征在于:所述Magic Number Add Zero是指接收状态机在接收时采集到XGMII总线中某个lane为结束标记时,除结束标记在第8个lane情况外,其余7种情况分别把相应无效lane的数据都置为“0”送入64位CRC32模块进行校验,校验结果与相应的固定值比较,如匹配则说明此帧在链路传输中没有发生错误。
CN2010105980385A 2010-12-17 2010-12-17 一种基于fpga的万兆以太网数据接收校验方法 Pending CN102088334A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105980385A CN102088334A (zh) 2010-12-17 2010-12-17 一种基于fpga的万兆以太网数据接收校验方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105980385A CN102088334A (zh) 2010-12-17 2010-12-17 一种基于fpga的万兆以太网数据接收校验方法

Publications (1)

Publication Number Publication Date
CN102088334A true CN102088334A (zh) 2011-06-08

Family

ID=44099959

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105980385A Pending CN102088334A (zh) 2010-12-17 2010-12-17 一种基于fpga的万兆以太网数据接收校验方法

Country Status (1)

Country Link
CN (1) CN102088334A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729312A (zh) * 2012-10-11 2014-04-16 中国航空工业集团公司第六三一研究所 基于异步fifo的多路异步数据同步方法
CN111722832A (zh) * 2020-06-19 2020-09-29 西安微电子技术研究所 一种卫星载荷数据模拟源测试方法及装置
CN115914415A (zh) * 2022-11-11 2023-04-04 贵州电网有限责任公司 一种rs485通信故障检测方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1381968A (zh) * 2001-04-18 2002-11-27 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
GB2408660A (en) * 2003-11-25 2005-06-01 Samsung Electronics Co Ltd Constructing a wireless LAN frame by splitting MAC frame, attaching CRC, preamble and header to each segment and combining into WLAN frame
CN101184030A (zh) * 2007-11-06 2008-05-21 浙江工业大学 基于fpga的以太网接口驱动装置
CN101345613A (zh) * 2007-07-11 2009-01-14 华为技术有限公司 通过包间隙传输额外信息的方法、系统和设备

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1381968A (zh) * 2001-04-18 2002-11-27 信息产业部武汉邮电科学研究院 以太网直接与物理信道适配的接口装置和方法
GB2408660A (en) * 2003-11-25 2005-06-01 Samsung Electronics Co Ltd Constructing a wireless LAN frame by splitting MAC frame, attaching CRC, preamble and header to each segment and combining into WLAN frame
CN101345613A (zh) * 2007-07-11 2009-01-14 华为技术有限公司 通过包间隙传输额外信息的方法、系统和设备
CN101184030A (zh) * 2007-11-06 2008-05-21 浙江工业大学 基于fpga的以太网接口驱动装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
彭建辉: "10G以太网接口并行CRC校验的一种简化算法", 《微计算机信息》, vol. 22, no. 20, 20 July 2006 (2006-07-20) *
曹政等: "万兆以太网MAC层控制器设计与实现", 《小型微型计算机系统》, vol. 28, no. 6, 30 June 2007 (2007-06-30), pages 974 - 978 *
曹政等: "万兆以太网媒体访问控制层研究", 《计算机工程》, vol. 33, no. 17, 30 September 2007 (2007-09-30), pages 31 - 42 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729312A (zh) * 2012-10-11 2014-04-16 中国航空工业集团公司第六三一研究所 基于异步fifo的多路异步数据同步方法
CN103729312B (zh) * 2012-10-11 2016-12-21 中国航空工业集团公司第六三一研究所 基于异步fifo的多路异步数据同步方法
CN111722832A (zh) * 2020-06-19 2020-09-29 西安微电子技术研究所 一种卫星载荷数据模拟源测试方法及装置
CN111722832B (zh) * 2020-06-19 2022-08-02 西安微电子技术研究所 一种卫星载荷数据模拟源测试方法及装置
CN115914415A (zh) * 2022-11-11 2023-04-04 贵州电网有限责任公司 一种rs485通信故障检测方法及系统

Similar Documents

Publication Publication Date Title
WO2021008248A1 (zh) 数据帧接收方法和装置以及通信方法和系统
CN105871623B (zh) 一种现场总线的偶发性故障诊断方法
CN111030747B (zh) 一种基于FPGA的SpaceFibre节点IP核
US11265011B2 (en) Forward error correction including correction capability determinations based on symbol errors of error bit based codewords
US8514885B2 (en) Using variable length packets to embed extra network control information
CN102957511B (zh) 一种数据传输的自适应降速方法
EP2692080B1 (en) Error handling in a passive optical network
CN104009830B (zh) 基于有限集合网络编码arq的大规模接收端数据广播方法
CN101494585B (zh) 一种实现通用路由封装隧道可靠传输的方法及设备
CN103959722A (zh) 改进以太网网络的系统
CN106817192A (zh) 一种错误估计的方法、基站及终端
CN105871512B (zh) 一种数据传输方法及装置
CN106094800A (zh) 一种新型can fd控制器的管理系统
CN102088334A (zh) 一种基于fpga的万兆以太网数据接收校验方法
CN103368689A (zh) 一种数据传输方法及系统
CN103152652B (zh) 一种基于柯西rs编码的视频帧数据网络传输方法
CN104618057B (zh) 一种分组传送网无损伤保护倒换方法及系统
CN102055555B (zh) 一种基于fpga的万兆以太网数据帧的填充校验方法
Schley et al. Fault localizing end-to-end flow control protocol for networks-on-chip
CN107070804A (zh) 入队标记和出队标记相结合的显示拥塞标记方法及装置
CN103346862B (zh) 一种分级保护的片上网络数据传输装置及方法
CN114244482A (zh) 一种can总线容错设计方法
KR20140026527A (ko) 패킷 경로의 신호감쇠 검측 방법, 장치 및 시스템
Yamaguchi et al. Fault-tolerance design for multicast using convolutional-code-based FEC and its analytical evaluation
EP2306666B1 (en) Reduction of frame error rate in a node of a wireless packet-switched communication network

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20110608