CN102088334A - 一种基于fpga的万兆以太网数据接收校验方法 - Google Patents
一种基于fpga的万兆以太网数据接收校验方法 Download PDFInfo
- 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
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的万兆以太网数据接收校验方法。
背景技术
在高速数据通讯系统中,由于数据流(包括有效负载和控制流)在线路上传输时会因温度、射线等外界的干扰,在接收方收到的数据流与发送方发出的数据流出现不一致的现象。为保证接收方能识别出错误的数据流并通知发送方线路上出现误码,则需要对通信过程进行差错控制。目前在线路上使用的差错控制方法有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模块进行校验,校验结果与相应的固定值比较,如匹配则说明此帧在链路传输中没有发生错误。
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)
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)
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 | 华为技术有限公司 | 通过包间隙传输额外信息的方法、系统和设备 |
-
2010
- 2010-12-17 CN CN2010105980385A patent/CN102088334A/zh active Pending
Patent Citations (4)
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)
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)
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 |