一种自适应速率CRC码的实现方法及其装置制造方法及图纸

技术编号:3934272 阅读:195 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种自适应速率CRC码的实现方法和装置,技术特征在于:对输入的总线数据序列进行检测,获取总线的数据传输速率;将接收到的总线数据与初始CRC码的异或运算得到不同速率下的CRC码运算结果;依据获取数据传输速率,从上一步得到的CRC码运算结果中得到最终的CRC码。本方法适用于高速串行总线通信中不同数据传输速率下的CRC码计算。本发明专利技术的有益效果:能够显著提高实现CRC码时的运算性能,解决了串行总线通信数据传输中快速校验的问题。本发明专利技术方法可以有效提高串行总线传输速率,节省芯片逻辑资源,而且低速时使用的资源少,降低了芯片的功耗。

【技术实现步骤摘要】

本专利技术涉及一种自适应速率CRC码的实现方法及其装置,尤其涉及一种IEEE1394 标准高速串行总线的自适应速率CRC码的实现方法和装置。
技术介绍
循环冗余码(CRC)是串行总线通信中常用的校验码,在发送端生成CRC码,在接收 端则根据CRC码对传输数据检错,以确定在数据传输过程中是否有错误发生。IEEE1394,又称FireWire (火线),是1987年Apple公司发布的一种高速、实时的 串行总线标准。其以计算机为中心,集计算、娱乐、通信及各种多媒体应用为一体,将微机产 业和家电产业联系起来。IEEE1394具有100Mbps、200Mbps、400Mbps、800Mbps不同的速率。 IEEE1394 总线通信采用 CRC-32 特征多项式 ΑΜ+Χ^+χΜ+χΜ+χΜ+χυ+Χ^+Χ^+Χ^χτ+Χ^Χ^Χ2+ Χ+1。现有技术中,在进行CRC的校验前,先将串行数据转换成相同宽度的数据,然后采 用固定输入宽度的线性反馈异或单元实现CRC码。由于ΙΕΕΕ1394高速串行总线在传输速 度不同时物理/链路接口数据宽度不同,采用固定输入宽度CRC码会导致处理效率不高或 者占用较多的逻辑资源。
技术实现思路
要解决的技术问题为了避免现有技术的不足之处,本专利技术提出一种自适应速率CRC码的实现方法及 其装置,特别适用于ΙΕΕΕ1394标准高速串行总线链路层控制器中的CRC校验。技术方案一种自适应速率CRC码的实现方法,其特征在于步骤如下步骤1 采用ΙΕΕΕ1394标准的CRC算法来生成和校验总线通信中的数据包;将接 收到的需要做CRC校验的数据的最高位与初始CRC码的最高位进行异或,若为0则初始CRC 码左移一位得到新的CRC码,若为1则初始CRC码左移一位后与32’ h04CllDB7异或运算, 得到本次数据新的CRC码;步骤2 然后将接收到下一个数据的最高位与上一位得到新的CRC码的最高位 进行异或,若为O则该CRC码左移一位得到新的CRC码,若为1则该CRC码左移一位后与 32,h04CllDB7异或运算,得到本次数据新的CRC码;步骤3 从步骤1中接收到的第一个数据中的速率代码得到数据传输速率,当速率 为IOOMbps时,步骤2得到的新的CRC码作为步骤1新的初始CRC码,重复十六次,得到最 终的CRC码;当速率为200Mbps时,重复步骤2三次得到的新的CRC码作为步骤1新的初始 CRC码,重复八次,得到最终的CRC码;当速率为400Mbps时,重复步骤2七次得到的新的CRC 码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码;当速率为800Mbps时,重复步 骤2七次得到的新的CRC码作为步骤1新的初始CRC码,重复四次,得到最终的CRC码。3一种上述的自适应速率CRC码的实现方法的装置,其特征在于包括速率检测器、 CRC校验单元和数据选择器;所述CRC校验单元包括若干个相同的异或单元;速率检测器的 输出端与CRC校验单元内若干个相同的异或单元的速率输入端联接,并与数据选择器的速 率输入端联接,若干个相同的异或单元的数据输入端与输入数据联接,各个异或单元的CRC 码输出端与下一级异或单元的CRC码输入端联接,数据选择器的输出端反馈联接第一个异 或单元的CRC码输入端;数据传输速率为100Mbps,200Mbps,400Mbps/800Mbps时,输入数据 的位宽分别为两位,四位和八位,即第二级、第四级和第八级异或单元的CRC码输出端与数 据选择器的CRC码输入端连接。当数据传输速率为400Mbps时,且输入数据宽度为八位,CRC校验单元内中若干个 相同的异或单元为八个。当数据传输速率为800Mbps时,且输入数据宽度为八位,CRC校验单元内中若干个 相同的异或单元为八个。当数据传输速率200Mbps时,且输入数据宽度为四位,CRC校验单元内中若干个相 同的异或单元为四个。当数据传输速率为IOOMbps时,且输入数据宽度为两位,CRC校验单元内中若干个 相同的异或单元为二个。传输速率检测器,用于对输入的总线数据序列进行检测,获取总线的数据传输速 率,将速率结果发送到CRC校验单元和数据选通器;CRC校验单元中有八个相同的异或单元,可以根据传输速率检测器检测到的数据 传输速率自适应的配置内部使用的异或单元的个数当数据传输速率为400Mbps时,CRC校 验单元中使用八个异或单元处理八位宽输入数据;当数据传输速率800Mbps时,总线数据 宽度仍为八位,而频率提高了一倍,因此也采用八个异或单元处理八位输入数据;数据传输 速率为200Mbps时,CRC校验单元中使用了四个异或单元处理四位宽输入数据;数据传输速 率为IOOMbps时,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 本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:冯志华高社生王党辉薛丽王建超杨可
申请(专利权)人:西北工业大学
类型:发明
国别省市:87

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1