当前位置:首页 > 工业控制 > 工业控制
[导读]摘要:在介绍CRC校验原理和传统CRC32串行比特算法的基础上,由串行比特型算法推导出一种CRC32并行算法、并结合SATAⅡ协议的要求,完成了SATAⅡ主控制器设计中CRC生成与校验模块的设计。最后通过在ISE平台上编写Veril

摘要:在介绍CRC校验原理和传统CRC32串行比特算法的基础上,由串行比特型算法推导出一种CRC32并行算法、并结合SATAⅡ协议的要求,完成了SATAⅡ主控制器设计中CRC生成与校验模块的设计。最后通过在ISE平台上编写Verilog硬件描述语言,对SATA协议中帧结构数据进行仿真,验证该CRC32并行算法能够满足SATA接口实时处理的要求。
关键词:CRC32;并行算法;SATA;Verilog

    随着通信和存储技术的发展,数据传输速率在急剧提高。然而由于通道传输特性不理想及可能受到干扰或噪声的影响,数据传输过程中难免会发生错误。如何保证可靠性是正确设计一个通信系统或数据存储系统的关键问题所在。
    信道编码是提高可靠性的必要手段,实现检错功能的差错控制方法很多,包括奇偶校验、重复码校验、校验和检测、行列冗余码校验、恒比码校验、CRC校验等。其中CRC循环冗余校验是一种高效率的差错控制方案,其特点是编码和解码的方法简单、检错纠错能力强,因而应用于许多领域尤其是串行通信中以实现差错控制。
    CRC循环校验算法占用的系统资源少,其实现方法分为软件实现和硬件实现。文中在研究CRC32算法的基础上,结合SATAⅡ协议的具体要求,实现了基于FPCA的CRC32并行算法。

1 CRC校验原理
    CRC校验算法是利用线性编码理论,发送方根据一定的规则,生成要传送的n位信息码的r位校验码(CRC码),并将校验码附在信息码后面,最后发送(n+r)位二进制系列。而接收方利用信息码和校验码之间所遵循的同样规则对接受到的二进制系列进行校验,以判断传送中是否出错。为了便于描述,n位信息码用多项式k(x)表示:

    由于求CRC校验码采用模2加减运算法则,即不带进位和借位的按位加减,这种加减运算实际上就是逻辑上的异或运算,加法和减法在逻辑上是等价的。在模2多项式代数运算中定义的规则有:
   
    式中R(x)即为要求的CRC校验码,xrk(x)+R(x)为发送端向接收端所发送的加入了CRC校验码的信息码,由式(6)可知xrk(x)+R(x)能够被生成多项式G(x)所整除。故接收端对接受到的信息以同样的生成多项式G(x)生成其CRC校验码,如果为0,则表示数据传送过程中未出错,否则出错,应做出相应的处理。

2 CRC32算法介绍
   
CRC32规范中其生成多项式G(x)如下:
   
    常用的CRC校验码生成算法包括串行比特型算法、查表型算法和并行算法。串行比特型算法主要由一个32比特移位寄存器和异或单元组成。每输入一位串行数据,都会与移位寄存器中相应的位进行异或,异或结果保存在相应的位中,并循环移位一位,直到32位串行数据输入完毕,再进行32次循环移位将每一位寄存器中的数据依次输出,输出的32位数据即为CRC32校验值。其硬件实现框图如图1所示。


    串行比特型算法可以很容易通过带反馈的移位寄存器的硬件实现,其吞吐率可以达到200 Mbps,但是远远不能达到高速通信系统的要求。
    对于查表法生成CRC校验码,要预先汁算好所要的有效信息位,并存放信息位表中,然后按信息位的顺序计算好所有校验位,并存放于表中,待要使用时通过查表输出对于的CRC校验值。但这种方法需要较大的存储空间存储长度较大的CRC余数表,并且随着并行位数的增加,余数表的长度按指数增加,对于CRC32规范也不具有现实性。
    因此,SATA协议中需采用并行CRC32算法以达到3 Gbps的吞吐率。

3 CRC32并行算法推导
   
CRC32并行算法可由串行比特型算法推导而出。
    令需进行校验的32位数据以Q0表示,32位移位寄存器初始值用M0表示即:
    Q0=[D0D1D2D3…D31]T       (8)
    M0=[C0C1C2C3…C31]T       (9)
    自反馈的移位运算可以采用状态转移矩阵表示,i+1次移位后寄存器的状态Qi+1与i次移位后寄存器的状态Qi之间的关系可通过状态矩阵A表示为:Qi+1=AQi,进一步又可得到第i次的状态Qi可通过初始状态Q0表示为:
   
    式中状态转移矩阵A可由式(7)和CRC32串行实现框图推导得到。首先32位数据串行输入,与移位寄存器相关位中的初始值进行模2加减运算,32次移位后数据输入完毕,即:
   
    然后再进行32次移位,移位寄存器中的内容即为所求的CRC校验值,则:
   
    由式(13)可知:CRC校验值只与CRC校验初始值M0和需校验数据Q0有关,其中A64和A32可以由MATLAB计算得出。通过计算,可以得出CRC校验最高位为:
   

4 SATA协议中CRC32算法实现
    SATA总线主要由应用层、传输层、链路层和物理层组成,其中传输层主要用于传输数据命令,链路层则是对数据进行编码和解码以保证数据在链路中正确传输。SATA总线链路中的信息包含两种结构:原语(Primitive)和帧(Frame),两者都以双字为最小的单位,其结构如图2所示。


    帧结构由多个双字组成,包括帧头(SOF)、帧数据、帧尾(EOF)和用于控制码流的控制原语HOLD原语和HOLDA原语。SATA协议中CRC校验模块需自动识别出数据流中的原语,并不计算这些原语的CRC值。在发送信息时,需要由帧数据生成CRC码,即所有非原语数据都要进行CRC编码,并且将生成的CRC值插入到帧尾(EOF)之前进行传输。在接受到数据时,需要对帧数据进行CRC校验,从而判断数据在链路中传输是否出错。在SATA协议中规定CRC校验初始值0x52325032,并且在帧头和帧尾中的数据不能超过2 046个双字。
    SATA协议中CRC生成校验模块采用有限状态机来识别传输数据流中的原语,从而完成CRC值的生成与校验。其状态机结构图如图3所示。


    其中状态STATE0检测帧头并装入STATE1状态;在STATE1中,当输入数据为帧尾时,则转入STATE3状态,否则转入STATE2状态,在STATE1状态下输出帧头,并设置CRC初始值为0x52325032h;在STATE2中,当输入为帧尾时,则转入STATE3状态,否则转入STATE2状态,对非原语数据进行CRC值生成,并保存到寄存器中,输出为数据或保持原语;在STATE3中输出最终的CRC值,并转入STATE4状态;在STATE4中输出帧尾,并转入STATTE0状态等待下一次数据的输入。
    输入一帧数据,并由式(14)进行计算,得出输入数据对应的CRC计算值如表1所示。

    其对应的系统仿真结果如图4所示。
    仿真结果显示,CRC数据校验与表1中的理论值一致,CRC生成模块能够自动识别数据流中的原语和数据,并能有数据生成正确的CRC校验值。其中每双字数据生成CRC值仅需一个时钟周期,系统输出延时仅为一个时钟周期,相对于串行CRC生成算法,CRC32并行算法更能满足SATA协议对时钟频率的要求。

5 结束语
   
文中介绍了CRC校验原理和常用CRC32实现算法,并根据比特型算法推导出一种CRC32并行算法的实现方案,该方案实现简单,实现的并行算法相对于串行算法具有速度快,运算简单,并且易于硬件实现等优点。本文还将将CRC32并行算法与SATA协议相结合,实现了满足SATA协议规范的CRC生成和校验模块,并成功应用于SATAⅡ主控制器的设计中。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭