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

2018年12月04日 来源:

40位以内任意长度的CRC计算及校验的实现 - 通信/络

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

4 结束语

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

三相调压器
磁控溅射镀膜机
打野猪机
相关文章
  • 打太极拳为何打出骨关节炎
    打太极拳为何打出骨关节炎

    黑龙江省医院骨关节外科主任吕伟年逾六旬的方先生从工作岗位上退下来后一直觉得闷得慌,便在朋友们的推荐下,加入了太极拳发烧友小圈子。刚接触太极拳时,方先生就被它刚柔相济、婉转灵活、行云流水、连绵不绝的运动特点迷住了,于是他每天从早到晚刻苦...

  • 土耳其矿难283人死总理幕僚对示威者动粗
    土耳其矿难283人死总理幕僚对示威者动粗

    土耳其矿难283人死 总理幕僚对示威者动粗惹争议中新5月16日电 据外媒15道,土耳其称,该国当地时间13日发生的煤矿爆炸起火事故已造成283人死亡。与此同时,数万土耳其民众由于不满矿难,走上街头示威游行。土耳其总理埃尔多安的一名幕僚由于脚踢示威者,更是...

  • 影帝任达华庆生容祖儿Twins张敬轩神秘现身揭阳新闻
    影帝任达华庆生容祖儿Twins张敬轩神秘现身揭阳新闻

    影帝任达华昨晚出席香港电影导演会春茗后,接着便赶赴英皇集团主席杨受成博士邀约一众传媒的晚宴,席间杨老板联同高层吴雨、霍汶希和艺人容祖儿、蔡卓妍、钟欣潼、张敬轩神秘替他预祝生日,给他惊喜,他表示非常高兴大家为他贺寿。任达华加入英皇大家庭...

  • 省文化厅对三个代表重要思想学习活动作出动员部署
    省文化厅对三个代表重要思想学习活动作出动员部署

    省委召开兴起学习三个代表重要思想新高潮电视会议后,省文化厅高度重视,立即召开党组会议进行研究,并下发了《关于在省级文化系统兴起学习贯彻三个代表重要思想新高潮的通知》。6月26日,省文化厅党组理论学习中心组在自学的基础上,率先对《三个代表重...

  • 高招录取现场退档考生中九成为专业不服从调剂
    高招录取现场退档考生中九成为专业不服从调剂

    图为高招录取现场。何晓刚 摄高招是如何录取的,考生的档案怎么被投到志愿高校?昨天,我省普通高校招生录取工作正式开始。经省招办允许,昨探访了我省高招录取现场,听取省招办负责人介绍高招录取的流程。信息管理组把好第一关昨天下午,来到高招录取现...

  • 虎妈猫爸开播倒计时田雨首谈家庭教育观
    虎妈猫爸开播倒计时田雨首谈家庭教育观

    田雨《虎妈猫爸》剧照田雨饰演薛子峰搜狐娱乐讯 由姚晓峰执导,赵薇、佟大为、田雨等实力派演员主演的都市话题家庭喜剧《虎妈猫爸》将于5月3日登陆东方卫视、天津卫视。曾在热播剧《大丈夫》中,扮演“任大伟”一角而被众人熟知的演员田雨,此次在电视剧...