关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于SATAII协议的CRC32并行算法的研究

基于SATAII协议的CRC32并行算法的研究

作者:时间:2012-12-20来源:网络收藏

协议中CRC生成校验模块采用有限状态机来识别传输数据流中的原语,从而完成CRC值的生成与校验。其状态机结构图如图3所示。

本文引用地址:http://www.eepw.com.cn/article/159619.htm

k.JPG


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

a.JPG

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

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


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭