老古开发网首页
导航:老古开发网首页文章索引文章分类通信网络→[40位以内任意长度的CRC计算及校验的实现]
| -文章搜索 - 最新文章 - |

40位以内任意长度的CRC计算及校验的实现

发布时间:2006年8月13日 点击次数:963
来源:电子工程师   作者:深圳市中兴通讯股份有限公司 尹冬元 梁松海
 

       1 引言
   
       循环冗余校验码,简称CRC码,是常用的检测错误码,它在数据通信中得到了非常广泛的应用。不同CRC码的生成多项式各不相同,CRC码的比特数也不同,且在有的通信协议中要求将余数寄存器先初始化为全0,另外的则须初始化为全1。因此,在程序设计时必须充分利用CRC码的共性及所用DSP的指令特点。 

       2 用TMS320C5000实现不同CRC计算的设计思想

       CRC码的计算及校验都用到模2的多项式除法,而多项式除法可以采用带反馈的移位寄存器来实现,因此,用DSP来实现CRC计算的关键是通过DSP来模拟一个移位寄存器(也就是模拟手写多项式除法)。考虑到TMS320C5000系列DSP的累加器A和B均为40位,因此,可以用一个40位累加器A作为移位寄存器,若CRC码不够40位(设为k位),则仅用到A的最高k位,无用位用0填充。在编码中涉及到码的移位和异或操作,这可以通过C5000的SAFA(算术移位)和XOR(异或)两条指令来实现。C5000还提供了特殊指令bitt和xc,前者利用寄存器T,取出一个16位数据中的第(15-T)位,并送入TC(TC是特殊寄存器中的一位);后者是条件执行语句,它先判断所列条件是否满足,再决定是否执行其后的2条单周期指令或1条双周期指令。

       步骤如下:

       (1)先将CRC移位寄存器(即余数寄存器)A的每一位有效位均初始化为全0或全1(与协议有关),而无用位清0;

       (2)将CRC移位寄存器中的值左移一位,判断移出的第一位与输入序列的最高位异或之后是否为1;

       (3)若是1,则将A与生成多项式进行异或再跳到步骤2处理下一位,否则,直接跳到步骤2继续处理下一位。在手写多项式除法的过程中我们可以发现,生成多项式即除式一共为k+1位,而余数寄存器A里仅有k位有效位,这可视为余数寄存器的k+1位永远为0,因此在实际异或运算时,生成多项式的最高位即k+1位不必参与运算。流程图如图1所示。

       重复(2)、(3)两步,直到输入信息位全部处理完为止,则A的最高k位为进行多项式除后所得的余数,若余数寄存器先初始化为全0,则此时A的最高k位就是CRC校验码,若余数寄存器先初始化为全1,则须将A取反后最高k位才是CRC码。

       3 程序设计思路及设计实例
   
       为了实现上述设计思想,可在程序中用指针AR2指向输入信息(一个字表示16比特),用AR3指向输入信息字的某一位,用AR4表示够一个字的个数(单位为字),AR5表示不够一个字的比特数,即,若参加计算的信息比特数为161,则AR4=10,AR5=1。

                                    

       为了依次取出一个字中的bit15、bit14、...bit0等16位信息位,在程序中用到了一个全局变量bitpos,共占16个字,并将这16个地址的内容依次赋值为0,1,2,......15,而在程序中这些值不能被改变。为了实现循环长度为16的循环寻址,bitpos的地址必须为32字的整数倍,在汇编语言中用下面的语句实现:


 

;若B=1,则将余数寄存器与生成多项式相异或(即模2减)

       CRC码的校验过程与C

RC计算相似,只是参与CRC计算的位须包括信息位及CRC码,若最后余数寄存器的值为全0(当余数寄存器初始化全0时)或某一特定值(当余数寄存器初始化全1时,与CRC码的生成多项式有关),则表示接收正确,否则表示发生错误。

       4 结束语

       通过反复测试,证明了上述40位以内的CRC码计算及校验的设计思想正确,能正确实现CRC-3、CRC-12、CRC-16、CRC-24、CRC-32等任意40位以内的CRC计算及校验。所附程序具有应用简单、指令精简、运算速度快等优点。该设计思路也可以很方便地在其它DSP或单片机及PC机中实现。
 
 


欢迎进入老古论坛进行讨论
[通信网络] 相关文章:
政府推动资费调整 手机有望实现单向收费
简介:
  一场大规模的移动资费调整即将开始。   《中国产经新闻》记者从运营商那里获悉,国家相关部门正在就移动资费调整方案的可行性,征询各大运营商的意见,然后报国家发改委批准。而这次资费调整,呼声一直很高的单向收费将有望实现。    有望实行单向收费   《中国产经新闻》记者从运营商那里了解到,国家相关部门正在就移动资费调整方案的可行性,征询各大运营商的意见,然后上报国家发改委批准。而这一次的资费调整是由政府部门推动的,这将有望打破禁锢已久的单向收费模式。   据了解,在刚推出移动电话的时候,主管部门考虑到移动通信行业的发展,采取了双向收费的模式。在双向......

从太空发送信号
三巨头组3G手机合资研发公司 争夺芯片垄断权
信产部发布通知禁止外商租借电信业务牌照
WiMax收发器灵活匹配客户频带
长距离通信器S1513的矿用安全系统设计
串行总线提高现有集成互连总线速度
简单网络解脱众多传感器连线束缚
新型RapidIO器件实现高速灵活网络交换
在SoC设计中用SystemC虚拟平台预览USB的性能
 
下一个:[新闻热点]原材料价格高涨,元件价格低迷局面即将结束
简介:
在过去的几个月中,电子产业难以处理的价格问题再度浮现。元件供应商不再情愿或者有能力吸收不断上涨的原材料成本,进而纷纷抬高产品价格。而且,预计供应商们会进一步提高价格。 最新的月度ESM景气指数显示,定价权正在迅速转移。在5月份,该指数中的价格分项指数升逾7%,而此前在过去一年中将近上升了18%。 5月ESM景气指数从4月的46.3降至45.4。同样,用于显示电子产业未来活动情况的ESM领先指标从4月时的51.1降至50.2,显示未来产业形势趋软。上述指标下跌的部分原因在于能源和材料(铝,铜和金等)的成本不断上涨。“价格上涨并不是新闻,因为制造商去年就报告价格上涨了12%。”美国供......
 

上一个:[新闻热点]良率提高,众DRAM内存厂商纷入“70纳米时代”

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:否 执行时间:0毫秒