基于只读存储器硬件产生循环冗余校验码

第24卷第4期

2003年12月锦州师范学院学报(自然科学版)JournalofJinzhouNormalCollege(NaturalScienceEdition).24No.4VolDec.2003

基于只读存储器硬件产生循环冗余校验码

尹作友,张志强,王 东

(渤海大学信息科学与工程学院,辽宁锦州121000)

摘 要:介绍了只读存储器在电路设计中的特殊使用,主要介绍采用了只读存储器硬件产生循

环冗余校验码的机制和实现方法。

关键词:只读存储器;循环冗余检验码;查表

中图分类号:TP39   文献标识码:A   文章编号:10072533X(20067203

1 引言

,,在过程测控仪表中传统的模拟信号传输方、多信息的数据传输,克服了模拟信号传输的瓶颈现象。在数字通信中,、气候及仪表间转接、通信线路质量变差等多方面影响,使传输的数据出现差错现象。为确保数据传输的正确性,对传输的数据进行校验是通信中非常重要的一环。常用的校验方法有奇偶校验、行列奇偶校验、循环冗余校验等,其中检错能力最强的是循环冗余校验(简称CRC校验),适宜在高可靠性要求的通信中使用。实现CRC码的方法很多,可以由软件或硬件实现,用软件来实现CRC校验码,主要缺点是校验时间长,如一字节的数据信息,要循环移位8次,并进行相应的判断和复杂的运算,才能得到一个完整的CRC值,所以速度慢。用硬件实现时速度快,传统的方法用移位寄存器等硬件构成电路实现,亦可采用具有CRC校验功能的大规模集成电路,但成本高。本文采用只读存储器(ROM)实现CRC校验码的方法。2 循环冗余校验码(CRC)

设M(x)是要传送的信息,将其左移K位,得多项式XK・M(x),然后除以生成多项式G(x)(为k+1个

减法采位),则得到商Q(x)及余数R(x)(K个位)。即:XK・M(x)=Q(x)・G(x)+R(x)。在运算过程中加、

用模2运算,规则是无借位及进位,即对应位采用异或运算,则有:xK・M(x)+R(x)=Q(x)・G(x)+R(x)

K+R(x)=Q(x)・G(x)。显然,由于XK・X・M(x)+R(x)称为循环冗余校验码,R(x)冗余校验位。M(x)信

息最后K位都是“0”,R(x)可直接加到其后面形成信息流,而不必破坏M(x)的信息位。CRC校验的这种特殊性质,给信息传输带来很大方便,收方只要将收到的信息序列编码除以G(x)多项式,若余数为0,则可认为传输无差错。所得到的M+K位信息流中,前M位是传输的有用数据信息,后K位则是CRC的冗余校验位,不同的信息,形成的循环冗余校验码(CRC)是不同的。

3 CRC码的ROM实现原理

CRC生成多项式G(x)是通信时双方预先约定的,能够对信息在传输过程中任何一位出错进行校验,对4位二进制信息码,根据生成多项式形成的条件,其表达式为G(x)=X3+X2+1,按CRC校验原理,一个4位M(X)信息,有一个3位二进制数的CRC位相对应,而一个4位信息M(x)可以为00H、01H、…、0FH

收稿日期:2003-06-23

作者简介:尹作友(19652),男,副教授,从事计算机应用教学科研工作.

68锦州师范学院学报(自然科学版)第24卷中的任何一个,所以应有16个的CRC码,即生成了一个16个信息的CRC码参数表,相当于查表得到,如表所示。

  只读存储器在正常工作时,只能读取存储器中数据,不能把数据写入存储器,为了实现上述4位信息的转换,可采用1634位的ROM,即有4根地址线,4根数据线(实用3根),4根地址线构成16个存储单元。转换前,预先用写入器把每个4位M(X)的CRC位先写到ROM中去,每个4位的M(X)信息编码作为存储单元的地址,对应的单元写入信息所对应的CRC位。在只读存储器正常工作时,把要转换的M(X)信息,直接送给ROM前面地址锁存器的输入端,同时也送到一个数据寄存器的输入端,微处理器发出一个信号给地址锁存器,地址锁存器的输出送到只读存储器的地址输入端,ROM的数据线输出的信息就是信息M(X)所对应的CRC位,即如果来自前端数据总线的信息M(X)为1110,通过地址锁存器送到只读存储器后,只读存储器的输出为010,送到数据锁存器U2,最后微处理器给数据锁存器U1和U2一个信号,使两个数据锁存器同时输出到后面数据总线输出到其它微处理器,硬件框图如图1所示。

对于8位二进制信息码,

常用的是国际电报电话咨询委

员会推荐的CRC-CCITT,其

表达式为G(x)=X16+X15+

2X+1,按CRC字节信息,有一个数(两个字节)的位相对

应,而一个字节信息M(x)可

以为00H、01H、…、0FFH中的

任何一个,所以应有256个双

字节的CRC位,即生成了一个

512字节的CRC参数表。采用图1

的ROM可用256316位的只读存储器,每个元存放16位二进制数,电路实现同上,只是增加了存储器的单元数和每个单元的位数,容量增加。

对于多字节CRC校验码,如果同上述的方法实现,所需的ROM存储单元的数多,要求ROM的存储量大,为了减少ROM的容量,多字节的CRC码可由单字节CRC值经过特定算法来实现。设M(x)为n字节信息,由CRC校验原理可知:

816=Q(X)+=Q(X)+G(X)G(X)G(X)

当M(x)增加一个字节时,Mn+1(x)=x8・Mn(x)+M0(x),则有:

[1**********]8()=+=XQnX+X+G(X)G(X)G(X)G(X)G(X)

8888168=XQn(X)+X+=XQn(X)+q(x)++G(X)G(X)G(X)G(X)

8(X)+=Q′G(X)

以上推理可知,当已知n字节信息的CRC值,求取n+1字节信息的CRC位时,首先由增加的字节异或原CRC的高8位[rnH(x)+rnl(x)],形成一新的字节,求取该字节的CRC位,再与原CRC低8位相异或,便可求得信息的CRC位。这说明,如果能求得单字信息的CRC位,可求取多字节信息的CRC位。而单字节CRC位的求取方法,一种是采用上面所述的直接查表法得到,即将信息以字节为单位划分,由节字值由CRC参数表中查出相应的CRC校验位。设原信息CRC校验值位表示为Rn(x)=X8CRCH+CRCL,CRCH、CRCL分别

 第4期尹作友,张志强,王东:基于只读存储器硬件产生循环冗余校验码69表示CRL检验位的高8位、低8位。另一种方法是双字段CRC查表法,字节M(X)可由多项式表示为M(x)=a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x1+a0,设MH(x)=a7x7+a6x6+a5x5+a4x4,ML(x)=a3x3+a2x2+a1x1+a0则M(x)=MH(x)+ML(x)。即一个字节M(x)可按其高4位和低4位形成的两个字段异或而成。采用分段查表法,可以大大减少ROM的容量,在电路实现上,只要对信息M(X)高4位和低4位分别由不同的ROM查表电路得到CRC值,CRC校验原理可知,字节M(x)的CRC校验位可由下式算出:

16161616==+=RH(X)+RL(X)同样对于多字节的G(X)G(X)G(X)G(X)

CRC位,也可以分成多个,分别通过各自的ROM查表电路,取得CRC位,然后组合在一起,求得总的CRC位。

4 结束语

在实现CRC码时,采用的ROM可以由PROM、EPROM、EEPROM、GAL、EPLD、FPGA等可编辑器件担任,特别是采用FPGA器件担任时,除了速度快以外,相应的其它电路如锁存器、寄存器也可以由FP2

函数发生GA器件担任,这样可大大减少成本,增加电路的可靠性。使用ROM、

器等功能。

参考文献:

[1]王爱英.计算机组成与结构[M].北京:,.

[2]张端.数字电路与逻辑设计[M].:,CylicBasedonRead-onlyMemoryHardware

YIN Zuo2you,ZHANG Zhi2giang,WANG Dong

(BoHaiUinvorsity,Jinzhou121000,china)

Abstract:Thistextintroducesthespecialusageforread-onlymemoryintheelectriccircuitdesigningItismainlyaboutthemethodmechanismforread-onlymemorythehardwareproducingcirculatingre2dundancycheckcode.

Keywords:read-onlymemory;cyclicredundancycheckcode;checktable

第24卷第4期

2003年12月锦州师范学院学报(自然科学版)JournalofJinzhouNormalCollege(NaturalScienceEdition).24No.4VolDec.2003

基于只读存储器硬件产生循环冗余校验码

尹作友,张志强,王 东

(渤海大学信息科学与工程学院,辽宁锦州121000)

摘 要:介绍了只读存储器在电路设计中的特殊使用,主要介绍采用了只读存储器硬件产生循

环冗余校验码的机制和实现方法。

关键词:只读存储器;循环冗余检验码;查表

中图分类号:TP39   文献标识码:A   文章编号:10072533X(20067203

1 引言

,,在过程测控仪表中传统的模拟信号传输方、多信息的数据传输,克服了模拟信号传输的瓶颈现象。在数字通信中,、气候及仪表间转接、通信线路质量变差等多方面影响,使传输的数据出现差错现象。为确保数据传输的正确性,对传输的数据进行校验是通信中非常重要的一环。常用的校验方法有奇偶校验、行列奇偶校验、循环冗余校验等,其中检错能力最强的是循环冗余校验(简称CRC校验),适宜在高可靠性要求的通信中使用。实现CRC码的方法很多,可以由软件或硬件实现,用软件来实现CRC校验码,主要缺点是校验时间长,如一字节的数据信息,要循环移位8次,并进行相应的判断和复杂的运算,才能得到一个完整的CRC值,所以速度慢。用硬件实现时速度快,传统的方法用移位寄存器等硬件构成电路实现,亦可采用具有CRC校验功能的大规模集成电路,但成本高。本文采用只读存储器(ROM)实现CRC校验码的方法。2 循环冗余校验码(CRC)

设M(x)是要传送的信息,将其左移K位,得多项式XK・M(x),然后除以生成多项式G(x)(为k+1个

减法采位),则得到商Q(x)及余数R(x)(K个位)。即:XK・M(x)=Q(x)・G(x)+R(x)。在运算过程中加、

用模2运算,规则是无借位及进位,即对应位采用异或运算,则有:xK・M(x)+R(x)=Q(x)・G(x)+R(x)

K+R(x)=Q(x)・G(x)。显然,由于XK・X・M(x)+R(x)称为循环冗余校验码,R(x)冗余校验位。M(x)信

息最后K位都是“0”,R(x)可直接加到其后面形成信息流,而不必破坏M(x)的信息位。CRC校验的这种特殊性质,给信息传输带来很大方便,收方只要将收到的信息序列编码除以G(x)多项式,若余数为0,则可认为传输无差错。所得到的M+K位信息流中,前M位是传输的有用数据信息,后K位则是CRC的冗余校验位,不同的信息,形成的循环冗余校验码(CRC)是不同的。

3 CRC码的ROM实现原理

CRC生成多项式G(x)是通信时双方预先约定的,能够对信息在传输过程中任何一位出错进行校验,对4位二进制信息码,根据生成多项式形成的条件,其表达式为G(x)=X3+X2+1,按CRC校验原理,一个4位M(X)信息,有一个3位二进制数的CRC位相对应,而一个4位信息M(x)可以为00H、01H、…、0FH

收稿日期:2003-06-23

作者简介:尹作友(19652),男,副教授,从事计算机应用教学科研工作.

68锦州师范学院学报(自然科学版)第24卷中的任何一个,所以应有16个的CRC码,即生成了一个16个信息的CRC码参数表,相当于查表得到,如表所示。

  只读存储器在正常工作时,只能读取存储器中数据,不能把数据写入存储器,为了实现上述4位信息的转换,可采用1634位的ROM,即有4根地址线,4根数据线(实用3根),4根地址线构成16个存储单元。转换前,预先用写入器把每个4位M(X)的CRC位先写到ROM中去,每个4位的M(X)信息编码作为存储单元的地址,对应的单元写入信息所对应的CRC位。在只读存储器正常工作时,把要转换的M(X)信息,直接送给ROM前面地址锁存器的输入端,同时也送到一个数据寄存器的输入端,微处理器发出一个信号给地址锁存器,地址锁存器的输出送到只读存储器的地址输入端,ROM的数据线输出的信息就是信息M(X)所对应的CRC位,即如果来自前端数据总线的信息M(X)为1110,通过地址锁存器送到只读存储器后,只读存储器的输出为010,送到数据锁存器U2,最后微处理器给数据锁存器U1和U2一个信号,使两个数据锁存器同时输出到后面数据总线输出到其它微处理器,硬件框图如图1所示。

对于8位二进制信息码,

常用的是国际电报电话咨询委

员会推荐的CRC-CCITT,其

表达式为G(x)=X16+X15+

2X+1,按CRC字节信息,有一个数(两个字节)的位相对

应,而一个字节信息M(x)可

以为00H、01H、…、0FFH中的

任何一个,所以应有256个双

字节的CRC位,即生成了一个

512字节的CRC参数表。采用图1

的ROM可用256316位的只读存储器,每个元存放16位二进制数,电路实现同上,只是增加了存储器的单元数和每个单元的位数,容量增加。

对于多字节CRC校验码,如果同上述的方法实现,所需的ROM存储单元的数多,要求ROM的存储量大,为了减少ROM的容量,多字节的CRC码可由单字节CRC值经过特定算法来实现。设M(x)为n字节信息,由CRC校验原理可知:

816=Q(X)+=Q(X)+G(X)G(X)G(X)

当M(x)增加一个字节时,Mn+1(x)=x8・Mn(x)+M0(x),则有:

[1**********]8()=+=XQnX+X+G(X)G(X)G(X)G(X)G(X)

8888168=XQn(X)+X+=XQn(X)+q(x)++G(X)G(X)G(X)G(X)

8(X)+=Q′G(X)

以上推理可知,当已知n字节信息的CRC值,求取n+1字节信息的CRC位时,首先由增加的字节异或原CRC的高8位[rnH(x)+rnl(x)],形成一新的字节,求取该字节的CRC位,再与原CRC低8位相异或,便可求得信息的CRC位。这说明,如果能求得单字信息的CRC位,可求取多字节信息的CRC位。而单字节CRC位的求取方法,一种是采用上面所述的直接查表法得到,即将信息以字节为单位划分,由节字值由CRC参数表中查出相应的CRC校验位。设原信息CRC校验值位表示为Rn(x)=X8CRCH+CRCL,CRCH、CRCL分别

 第4期尹作友,张志强,王东:基于只读存储器硬件产生循环冗余校验码69表示CRL检验位的高8位、低8位。另一种方法是双字段CRC查表法,字节M(X)可由多项式表示为M(x)=a7x7+a6x6+a5x5+a4x4+a3x3+a2x2+a1x1+a0,设MH(x)=a7x7+a6x6+a5x5+a4x4,ML(x)=a3x3+a2x2+a1x1+a0则M(x)=MH(x)+ML(x)。即一个字节M(x)可按其高4位和低4位形成的两个字段异或而成。采用分段查表法,可以大大减少ROM的容量,在电路实现上,只要对信息M(X)高4位和低4位分别由不同的ROM查表电路得到CRC值,CRC校验原理可知,字节M(x)的CRC校验位可由下式算出:

16161616==+=RH(X)+RL(X)同样对于多字节的G(X)G(X)G(X)G(X)

CRC位,也可以分成多个,分别通过各自的ROM查表电路,取得CRC位,然后组合在一起,求得总的CRC位。

4 结束语

在实现CRC码时,采用的ROM可以由PROM、EPROM、EEPROM、GAL、EPLD、FPGA等可编辑器件担任,特别是采用FPGA器件担任时,除了速度快以外,相应的其它电路如锁存器、寄存器也可以由FP2

函数发生GA器件担任,这样可大大减少成本,增加电路的可靠性。使用ROM、

器等功能。

参考文献:

[1]王爱英.计算机组成与结构[M].北京:,.

[2]张端.数字电路与逻辑设计[M].:,CylicBasedonRead-onlyMemoryHardware

YIN Zuo2you,ZHANG Zhi2giang,WANG Dong

(BoHaiUinvorsity,Jinzhou121000,china)

Abstract:Thistextintroducesthespecialusageforread-onlymemoryintheelectriccircuitdesigningItismainlyaboutthemethodmechanismforread-onlymemorythehardwareproducingcirculatingre2dundancycheckcode.

Keywords:read-onlymemory;cyclicredundancycheckcode;checktable


相关文章

  • 参观公司心得体会
  • 今天我们在老师的带领下参观了我们这次专业实习的第三站-固高科技(深圳)有限公司,通过公司相关人员的介绍,我详细地了解了该公司的整体运营状况.固高科技创立于1999年,以香港科技大学为依托,是目前亚太地区第一家拥有自主知识产权,专业从事高速.高精度运动控制器产品及其相关产品的设计.制造.营销以及技术服 ...

  • recovery是什么意思
  • 在过去的几年中我们为了国民经济的恢复做了大量的工作。 笼统的说,就是一个刷机的工程界面。如果你装过系统,你可能知道dos界面或者winPE,安装了 Recovery相当于给系统安了一个dos界面。在recovery界面可以选择安装系统,清空数据,ghost备份系统,恢复系统等等。刷 recovery ...

  • 单芯片应用实习报告
  • 班级: 二技电一甲 姓名: 林 桀 民 学号: ad89017 相关知识 mcs-51是 intel 公司所设计的8051系列单芯片总名称 在mcs-51这个大家族里较具知名度的编号有8051 8751 & 8031 实际上这些不同编号的单芯片都使用相同的核心cpu与指令及只是在制造ic时给 ...

  • 单片机实习报告总结
  • 这次实习我们使用控制电路的单片机是at89s51型号的。通过它实现对八盏双色灯发光二极管的控制p0和p2口控制四盏灯。在at89s51的9引脚接复位电路,对电路实现复位控制。在电路中接入74s164译码器和共阴极数码管,通过at89s51的p3口数据的输入对共阴极数码管的控制。同时也可实现双色发光的 ...

  • 计算机实训报告
  • 一、实训目的 1、 贯彻坚强实践环节和理论联系实际的教学原则,增加学生对专业感性认识的深广度,运用所学知识和技能为后续课程奠定较好的基础。 2、通过实习,开阔学生眼界和知识面,获得计算机硬件安装和系统维护的感性认识。与此同时安排适量的讲课或讲座,促进理论同实践的结合,培养学生良好的学风。 3、实习中 ...

  • 计算机组装与维护实习总结
  •   一、实习目的   熟练掌握电脑的组装、bios设置、系统安装、故障排除的过程、了解it业最新发展动态、感受企业文化。   二、实习内容     1、 了解公司情况   杨凌秦众电子信息有限公司 www.ddd-pc.com “全面进军 全面领先”是秦众电子的战略     2、 天韵系列电脑制作工 ...

  • 求职简历自我评价
  • 乐观向上,兴趣广泛,适应能力,强勤奋好学,脚踏实地,认真负责,坚韧不拔,吃苦耐劳,勇于迎接新挑战! 为人诚实可信,个性随和,有良好的亲和力:充满热情.乐观的心态使我的心理承受能力较强:善于与人沟通, 能积极有效地建立沟通渠道,协调内外部关系:工作作风精干.自信.有整体的工作把握能力:具有良好的语言表 ...

  • 计算机硬件实习心得
  • 计算机硬件上所出现的故障.从理论上讲,硬件部分包括运算器,控制器,存储器,输入输出设备.而现在咱们从另一角度,即电脑组装的角度来分析影响计算机性能的各部件的性能易出现的故障. 简单的说,硬件就是看的见摸的着的东西.例如:主机箱(主板,主板上的cpu,内存,硬盘),显示器,键盘,鼠标,音箱,打印机等. ...

  • 汽车车间实习报告
  • 先讲一下总装车间的情况。 总装车间的布局从南到北分别是内饰工段、综合工段、底盘工段和发动机工段。其中发动机工段最终汇入底盘工段,而底盘工段和内饰工段最终汇入综合工段。我曾经参观过东风汽车有限公司商用车总装配厂,整条装配线是直线形的,拉得很长,从头走到尾就要花很长时间。如果在生产线下流发现生产线上流的 ...

  • 数控技术专业毕业生实习报告
  •   学校: 唐山学院东校区   专业: 数控技术   班级: 06级数控技术2班   姓名: 梁超超   指导教师: 李莉   实习单位:唐山市雷天电机制造有限公司   前 言   现代科学技术的发展极大地推动了不同学科的交叉与渗透,引起了工程领域的技术改造与革命。在机械工程领域,由于微电子技术和计 ...