CN101976214B - 一种自适应速率crc码的实现方法及其装置 - Google Patents
一种自适应速率crc码的实现方法及其装置 Download PDFInfo
- Publication number
- CN101976214B CN101976214B CN 201010500766 CN201010500766A CN101976214B CN 101976214 B CN101976214 B CN 101976214B CN 201010500766 CN201010500766 CN 201010500766 CN 201010500766 A CN201010500766 A CN 201010500766A CN 101976214 B CN101976214 B CN 101976214B
- Authority
- CN
- China
- Prior art keywords
- sign indicating
- indicating number
- crc
- crc sign
- xor
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明涉及一种自适应速率CRC码的实现方法和装置,技术特征在于:对输入的总线数据序列进行检测,获取总线的数据传输速率;将接收到的总线数据与初始CRC码的异或运算得到不同速率下的CRC码运算结果;依据获取数据传输速率,从上一步得到的CRC码运算结果中得到最终的CRC码。本方法适用于高速串行总线通信中不同数据传输速率下的CRC码计算。本发明的有益效果:能够显著提高实现CRC码时的运算性能,解决了串行总线通信数据传输中快速校验的问题。本发明方法可以有效提高串行总线传输速率,节省芯片逻辑资源,而且低速时使用的资源少,降低了芯片的功耗。
Description
技术领域
本发明涉及一种自适应速率CRC码的实现方法及其装置,尤其涉及一种IEEE1394标准高速串行总线的自适应速率CRC码的实现方法和装置。
背景技术
循环冗余码(CRC)是串行总线通信中常用的校验码,在发送端生成CRC码,在接收端则根据CRC码对传输数据检错,以确定在数据传输过程中是否有错误发生。
IEEE1394,又称FireWire(火线),是1987年Apple公司发布的一种高速、实时的串行总线标准。其以计算机为中心,集计算、娱乐、通信及各种多媒体应用为一体,将微机产业和家电产业联系起来。IEEE1394具有100Mbps、200Mbps、400Mbps、800Mbps不同的速率。IEEE1394总线通信采用CRC-32特征多项式:X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1。
现有技术中,在进行CRC的校验前,先将串行数据转换成相同宽度的数据,然后采用固定输入宽度的线性反馈异或单元实现CRC码。由于IEEE1394高速串行总线在传输速度不同时物理/链路接口数据宽度不同,采用固定输入宽度CRC码会导致处理效率不高或者占用较多的逻辑资源。
发明内容
要解决的技术问题
为了避免现有技术的不足之处,本发明提出一种自适应速率CRC码的实现方法及其装置,特别适用于IEEE1394标准高速串行总线链路层控制器中的CRC校验。
技术方案
一种自适应速率CRC码的实现方法,其特征在于步骤如下:
步骤1:采用IEEE1394标准的CRC算法来生成和校验总线通信中的数据包;将接收到的需要做CRC校验的数据的最高位与初始CRC码的最高位进行异或,若为0则初始CRC码左移一位得到新的CRC码,若为1则初始CRC码左移一位后与32’h04C11DB7异或运算,得到本次数据新的CRC码;
步骤2:然后将接收到下一个数据的最高位与上一位得到新的CRC码的最高位进行异或,若为0则该CRC码左移一位得到新的CRC码,若为1则该CRC码左移一位后与32’h04C11DB7异或运算,得到本次数据新的CRC码;
步骤3:从步骤1中接收到的第一个数据中的速率代码得到数据传输速率,当速率为100Mbps时,步骤2得到的新的CRC码作为步骤1新的初始CRC码,重复十六次,得到最终的CRC码;当速率为200Mbps时,重复步骤2三次得到的新的CRC码作为步骤1新的初始CRC码,重复八次,得到最终的CRC码;当速率为400Mbps时,重复步骤2七次得到的新的CRC码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码;当速率为800Mbps时,重复步骤2七次得到的新的CRC码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码。
一种上述的自适应速率CRC码的实现方法的装置,其特征在于包括速率检测器、CRC校验单元和数据选择器;所述CRC校验单元包括若干个相同的异或单元;速率检测器的输出端与CRC校验单元内若干个相同的异或单元的速率输入端联接,并与数据选择器的速率输入端联接,若干个相同的异或单元的数据输入端与输入数据联接,各个异或单元的CRC码输出端与下一级异或单元的CRC码输入端联接,数据选择器的输出端反馈联接第一个异或单元的CRC码输入端;数据传输速率为100Mbps,200Mbps,400Mbps/800Mbps时,输入数据的位宽分别为两位,四位和八位,即第二级、第四级和第八级异或单元的CRC码输出端与数据选择器的CRC码输入端连接。
当数据传输速率为400Mbps时,且输入数据宽度为八位,CRC校验单元内中若干个相同的异或单元为八个。
当数据传输速率为800Mbps时,且输入数据宽度为八位,CRC校验单元内中若干个相同的异或单元为八个。
当数据传输速率200Mbps时,且输入数据宽度为四位,CRC校验单元内中若干个相同的异或单元为四个。
当数据传输速率为100Mbps时,且输入数据宽度为两位,CRC校验单元内中若干个相同的异或单元为二个。
传输速率检测器,用于对输入的总线数据序列进行检测,获取总线的数据传输速率,将速率结果发送到CRC校验单元和数据选通器;
CRC校验单元中有八个相同的异或单元,可以根据传输速率检测器检测到的数据传输速率自适应的配置内部使用的异或单元的个数:当数据传输速率为400Mbps时,CRC校验单元中使用八个异或单元处理八位宽输入数据;当数据传输速率800Mbps时,总线数据宽度仍为八位,而频率提高了一倍,因此也采用八个异或单元处理八位输入数据;数据传输速率为200Mbps时,CRC校验单元中使用了四个异或单元处理四位宽输入数据;数据传输速率为100Mbps时,CRC校验单元中使用两个异或单元处理两位宽输入数据,同一装置可以得到不同速率下的CRC码运算结果,最后将CRC码运算结果发送到数据选通器;
数据选通器,用于从CRC校验单元发送来的四种速率下的CRC码运算结果中,选择出与传输速率检测器检测到的数据传输速率相匹配的CRC码作为最终的CRC码输出。
有益效果
本发明提出的自适应速率CRC码的实现方法及其装置,实现了自适应速率的CRC硬件校验。其在传输速率检测器作用下识别串行总线数据传输速率,自动配置CRC校验单元个数,由数据选通器输出最终的CRC码。本发明方法可以有效提高串行总线传输速率,节省芯片逻辑资源,而且低速时使用的资源少,降低了芯片的功耗。
附图说明
图1是自适应速率的CRC码实现方法流程图。
图2是自适应速率的CRC码实现装置结构示意图。
图3是自适应速率的CRC码实现装置异或单元电路示意图。
图4是自适应速率的CRC码产生电路示意图。
图5是自适应速率的CRC码校验电路示意图。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
如图1所示,为最高数据传输速率为800Mbps时的CRC码实现结构图。
一种自适应速率CRC码的实现装置包括传输速率检测器10和CRC校验单元20,还包括数据选通器30,其中CRC校验单元20包括八个异或单元:异或单元21、异或单元22、异或单元23、异或单元24、异或单元25、异或单元26、异或单元27、异或单元28。
传输速率检测器10的速率输出端与CRC校验单元20中八个相同的异或单元和数据选通器30的速率输入端连接,输入的八位数据的每一位按照从高位到低位的顺序分别与CRC校验单元20中的异或单元21至异或单元28的数据输入端连接,CRC校验单元20中除异或单元28外的每一个异或单元的CRC码输出端与下一个异或单元的CRC码输入端连接,CRC校验单元20中异或单元22、24、28的CRC码输出端分别与数据选通器30的三个CRC码输入端连接,数据选通器30的CRC码输出端与CRC校验单元20中的异或单元21的CRC码输入端连接。
传输速率检测器10,用于对输入的总线数据序列进行检测,获取总线的数据传输速率,将速率结果发送到CRC校验单元20和数据选通器30。
CRC校验单元20中包含了八个异或单元。如图3所示为异或单元22的结构示意图,每个异或单元的结构都与异或单元22的结构一样,不同在于速率比较器的比较值不同:在异或单元21、22中,速率比较器的比较值为2’b01;在异或单元23、24中,速率比较器的比较值为2’b10;在异或单元25、26、27、28中,速率比较器的比较值为2’b11。在本方案的CRC码实施装置中,异或单元电路将输入数据与输入的CRC码的最高位进行异或,若为0,则输入的CRC码左移一位,否则,输入的CRC码左移一位后再与生成多项式码32’h04C11DB7异或,得到输出的CRC码。数据的后续各位依次与上一位输出的CRC码的最高位进行异或,得到输出的CRC码。CRC校验单元20中第一个异或单元21CRC码的输入为数据选通器30反馈的CRC码,其初始值为32’hFFFFFFFF;后面的异或单元22至异或单元28的输入CRC码为上一个异或单元的输出CRC码。每个异或单元将对应输入数据位和输入CRC码运算后得到输出CRC码,异或单元21至异或单元27将输出CRC码发送到下一个异或单元。异或单元22、24、28的输出CRC码发送到数据选通器30,经过数据选通器30选择后输出CRC码作为新的初始CRC码与后续的位进行运算。CRC校验单元根据传输速率检测器10检测到的数据传输速率自适应的配置内部所使用的异或单元个数:当数据传输速率为400Mbps时,CRC校验单元20中使用了全部八个异或单元,每次处理八位数据,重复四次共处理完成32位数据得到CRC校验结果;当数据传输速率800Mbps时,总线数据宽度仍为八位,而频率提高了一倍,因此也采用八个异或单元;数据传输速率为200Mbps时使用了四个异或单元(异或单元21、22、23、24),每次处理四位数据,重复八次共处理完成32位数据得到CRC校验结果;数据传输速率为100Mbps时使用两个异或单元(异或单元21、22),每次处理两位数据,重复16次共处理完成32位数据得到CRC校验结果。
数据选通器30,用于从CRC校验单元20发送来的四种速率下的CRC码中选择出与传输速率检测器10检测到的数据传输速率相匹配的CRC码作为最终的CRC码输出。
采用本自适应速率CRC码的实现装置的IEEE1394总线发送单元的CRC产生电路如图4所示,将运算出的CRC码取反作为输出结果。
采用本自适应速率CRC码的实现装置的IEEE1394总线接收单元的CRC校验电路如图5所示,根据运算出的CRC码与32’hC704DD7B比较,相同表明数据通过CRC校验。
Claims (6)
1.一种自适应速率CRC码的实现方法,其特征在于步骤如下:
步骤1:采用IEEE1394标准的CRC算法来生成和校验总线通信中的数据包;将接收到的需要做CRC校验的数据的最高位与初始CRC码的最高位进行异或,若为0则初始CRC码左移一位得到新的CRC码,若为1则初始CRC码左移一位后与32’h04C11DB7异或运算,得到本次数据新的CRC码;
步骤2:然后将接收到下一个数据的最高位与上一位得到新的CRC码的最高位进行异或,若为0则该CRC码左移一位得到新的CRC码,若为1则该CRC码左移一位后与32’h04C11DB7异或运算,得到本次数据新的CRC码;
步骤3:从步骤1中接收到的第一个数据中的速率代码得到数据传输速率,当速率为100Mbps时,步骤2得到的新的CRC码作为步骤1新的初始CRC码,重复十六次,得到最终的CRC码;当速率为200Mbps时,重复步骤2三次得到的新的CRC码作为步骤1新的初始CRC码,重复八次,得到最终的CRC码;当速率为400Mbps时,重复步骤2七次得到的新的CRC码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码;当速率为800Mbps时,重复步骤2七次得到的新的CRC码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码。
2.一种实现权利要求1所述的自适应速率CRC码的实现方法的装置,其特征在于包括速率检测器、CRC校验单元和数据选择器;所述CRC校验单元包括若干个相同的异或单元;速率检测器的输出端与CRC校验单元内若干个相同的异或单元的速率输入端联接,并与数据选择器的速率输入端联接,若干个相同的异或单元的数据输入端与输入数据联接,各个异或单元的CRC码输出端与下一级异或单元的CRC码输入端联接,数据选择器的输出端反馈联接第一个异或单元的CRC码输入端;数据传输速率为100Mbps,200Mbps,400Mbps/800Mbps时,输入数据的位宽分别 为两位,四位和八位,即第二级、第四级和第八级异或单元的CRC码输出端与数据选择器的CRC码输入端连接。
3.根据权利要求2所述的装置,其特征在于:当数据传输速率为400Mbps时,且输入数据宽度为八位,CRC校验单元内中相同的异或单元为八个。
4.根据权利要求2所述的装置,其特征在于:当数据传输速率为800Mbps时,且输入数据宽度为八位,CRC校验单元内中相同的异或单元为八个。
5.根据权利要求2所述的装置,其特征在于:当数据传输速率200Mbps时,且输入数据宽度为四位,CRC校验单元内中相同的异或单元为四个。
6.根据权利要求2所述的装置,其特征在于:当数据传输速率为100Mbps时,且输入数据宽度为两位,CRC校验单元内中相同的异或单元为二个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010500766 CN101976214B (zh) | 2010-09-30 | 2010-09-30 | 一种自适应速率crc码的实现方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010500766 CN101976214B (zh) | 2010-09-30 | 2010-09-30 | 一种自适应速率crc码的实现方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101976214A CN101976214A (zh) | 2011-02-16 |
CN101976214B true CN101976214B (zh) | 2012-12-19 |
Family
ID=43576101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010500766 Expired - Fee Related CN101976214B (zh) | 2010-09-30 | 2010-09-30 | 一种自适应速率crc码的实现方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101976214B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678028A (zh) * | 2013-12-16 | 2014-03-26 | 重庆川仪自动化股份有限公司 | 一种ram内存检测方法及装置 |
CN112332950B (zh) * | 2020-10-12 | 2023-03-14 | 深圳市华奥通通信技术有限公司 | 数据传输速率的自适应方法、系统、设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601913A (zh) * | 2003-09-23 | 2005-03-30 | 旺宏电子股份有限公司 | 平行化循环冗余码计算方法及系统 |
CN1633030A (zh) * | 2003-12-22 | 2005-06-29 | 普天信息技术研究院 | 一种循环冗余校验的快速计算方法 |
-
2010
- 2010-09-30 CN CN 201010500766 patent/CN101976214B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601913A (zh) * | 2003-09-23 | 2005-03-30 | 旺宏电子股份有限公司 | 平行化循环冗余码计算方法及系统 |
CN1633030A (zh) * | 2003-12-22 | 2005-06-29 | 普天信息技术研究院 | 一种循环冗余校验的快速计算方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101976214A (zh) | 2011-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101425871B (zh) | 多元纠错码发射接收装置及数据传输系统以及相关方法 | |
US20160204873A1 (en) | Two-level coset coding scheme for gigabit ethernet over plastic optical fiber | |
CN102546089B (zh) | 循环冗余校验crc码的实现方法及装置 | |
CN102111242B (zh) | 一种降低电力线载波通信中窄带噪声干扰的方法 | |
CN102957511B (zh) | 一种数据传输的自适应降速方法 | |
Zhan et al. | A novel error correction mechanism for energy-efficient cyber-physical systems in smart building | |
CN105119694A (zh) | 一种计算高速网络中crc值的方法及系统 | |
CN105322973A (zh) | 一种rs码编码器及编码方法 | |
CN108282265A (zh) | 纠错编码方法、装置、设备及计算机可读存储介质 | |
CN110943762A (zh) | 一种基于差分曼彻斯特编码的直流电源线载波通讯方法和空调 | |
CN101976214B (zh) | 一种自适应速率crc码的实现方法及其装置 | |
KR101518831B1 (ko) | 통신시스템에서 순환중복검사 첨부를 위한 장치 | |
CN105721107B (zh) | 一种分块计算crc以提高时钟频率的装置和方法 | |
CN107370567A (zh) | 一种Turbo解码方法 | |
CN102195743B (zh) | 动态实时喷泉码编码方案 | |
CN102130744B (zh) | 计算循环冗余校验码的方法和装置 | |
CN201846342U (zh) | 一种自适应速率crc码的实现装置 | |
CN103763064A (zh) | 适用于超高速通讯系统的循环冗余校验码生成方法与电路 | |
CN110611553A (zh) | 用于编码和解码数据包的方法和设备 | |
CN102655441A (zh) | 一种通信自动纠错编码方法和系统 | |
CN1633075A (zh) | 以太网信号处理器及以太网信号处理方法 | |
CN108631931A (zh) | 一种构造极化码序列的方法及装置 | |
CN102487282A (zh) | 一种实现可变长crc运算的电路 | |
Sanger et al. | Reliable data delivery mechanism on irrigation monitoring system | |
Wang et al. | The capability of error correction for burst-noise channels using error estimating code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121219 Termination date: 20150930 |
|
EXPY | Termination of patent right or utility model |