MSP430F5XX 中文翻译第十章 CRC16.doc_第1页
MSP430F5XX 中文翻译第十章 CRC16.doc_第2页
MSP430F5XX 中文翻译第十章 CRC16.doc_第3页
MSP430F5XX 中文翻译第十章 CRC16.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10章 CRC模块循环冗余校验模块(CRC)给数据序列提供一个数字签名。本章将主要描述CRC模块的操作。10.1 CRC模块介绍10.2 CRC校验生成10.3 CRC模块寄存器10.1 CRC模块介绍该模块可以为序列数据提供一种签名,称为校验。该校验字的生成是通过将数据的0、4、11、15位反馈来实现的。如表10-1所示,crc校验字的生成遵循的是CRC-CCITT-BR多项式,如式10:CRC初始种子相同,对相同的数据序列将生成相同的校验字,反之生成的校验字将会不一样。10.2 CRC校验和的生成首先通过向寄存器CRCINIRES中写入16位的初值(种子)作为CRC发生器的初始值。任何要参与CRC运算的数据必须按照与源生成CRC校验的相同顺序写入CRC数据输入寄存器(CRCDI或CRCDIRB)来运算。从CRCINIRES寄存器中读出的实际校验字与预期的校验字比较。校验生成器只描述了一种如何进行校验字运算的方法。通过外部工具计算出来的校验字称为数据序列的校验和,将该校验和存储在存储器中,用来检验CRC运算结果的正确性。10.2.1 CRC机制为了能够并行处理CRC运行,线性反馈移位寄存器(LFSR)的主要原理是XOR树。在8位数据从最低位依次移入LFSR生成校验字的过程中,执行相同的操作。校验字的生成运算开始之前,必须往CRCINIRES寄存器写入校验初值,做为种子。此时,软件或硬件才能够传输数据到CRCDI寄存器中。数据参与CRC校验运算,然后可以读取保存在CRCINIRES寄存器中的有效结果。生成校验字的数据支持字模式或字节模式。如果使用字模式来处理,则偶地址中的低字节在第一个时钟(MCLK)周期使用,高字节在第二个时钟周期时使用,因此字模式的处理需要花费两个时钟周期。而字节模式处理则只需要消耗一个时钟周期就能完成。在字模式或字节模式下写入到CRCDIRB的数据在CRC运算之前,是按照位序来处理的。字节中的每个位都反向。在字模式或字节模式下写入到CRCDI中的数据字节在CRC处理之前是不会反向的。如果校验和自身(反向位序)参与CRC运算,那么在CRCINIRES寄存器中得到的结果应该为零。10.2.2 汇编例程10.2.2.1 通用汇编例程下面的范例说明了CRC模块的使用。 PUSH R4 ; Save registersPUSH R5MOV #StartAddress,R4 ; StartAddress EndAddressMOV #EndAddress,R5MOV &INIT, &CRCINIRES ; INIT to CRCINIRESL1 MOV R4+,&CRCDI ; Item to Data In registerCMP R5,R4 ; End address reached?JLO L1 ; NoMOV &Check_Sum,&CRCDI ; Yes, Include checksumTST &CRCINIRES ; Result = 0?JNZ CRC_ERROR ; No, CRCRES 0: error. ; Yes, CRCRES=0: ; information ok.POP R5 ; Restore registersPOP R410.2.2.2 参考数据序列下面的序列详细的描述了CRC的生成法则,数据序列可以使用字或字节访问,及正向或反向的CRC数据输入。Mov #0ffffh,&CRCINIRES; initialize CRCMov #00031h,&CRCCDI_L; “1”Mov #00032h,&CRCCDI_L; “2”Mov #00033h,&CRCCDI_L; “3”Mov #00034h,&CRCCDI_L; “4”Mov #00035h,&CRCCDI_L; “5”Mov #00036h,&CRCCDI_L; “6”Mov #00037h,&CRCCDI_L; “7”Mov #00038h,&CRCCDI_L; “8”Mov #00039h,&CRCCDI_L; “9”Cmp #089f6h,&CRCINIRES ; compare result; CRCRESR contains 06f91hJeq &success; no errorBr &error; to error handlerMov #0ffffH,&CRCINIRES; initialize CRCMov.w #03231h,&CRCDI; ”1”&”2”Mov.w #03433h,&CRCDI; ”3”&”4”Mov.w #03635h,&CRCDI; ”5”&”6”Mov.w #03837h,&CRCDI; ”7”&”8”Mov.b #039h,&CRCDI_L; ”9”Cmp #089f6h,&CRCINIRES ; compare result; CRCRESR contains 06f91hJeq &success; no errorBr &error; to error handlerMov #0ffffh,&CRCINIRES; initialize CRCMov #00031h,&CRCCDIRB_L; “1”Mov #00032h,&CRCCDIRB_L; “2”Mov #00033h,&CRCCDIRB_L; “3”Mov #00034h,&CRCCDIRB_L; “4”Mov #00035h,&CRCCDIRB_L; “5”Mov #00036h,&CRCCDIRB_L; “6”Mov #00037h,&CRCCDIRB_L; “7”Mov #00038h,&CRCCDIRB_L; “8”Mov #00039h,&CRCCDIRB_L; “9”Cmp #029B1h,&CRCINIRES ; compare result; CRCRESR contains 08D94hJeq &success; no errorBr &error; to error handlerMov #0ffffH,&CRCINIRES; initialize CRCMov.w #03231h,&CRCDIRB; ”1”&”2”Mov.w #03433h,&CRCDIRB; ”3”&”4”Mov.w #03635h,&CRCDIRB; ”5”&”6”Mov.w #03837h,&CRCDIRB; ”7”&”8”Mov.b #039h,&CRCDIRB_L; ”9”Cmp #029B1h,&CRCINIRES ; compare result; CRCRESR contains 08D94hJeq &success; no errorBr &error; to error handler10.3 CRC模块寄存器CRC模块寄存器如表10-1所示。寄存器缩写读写类型访问形式初始状态CRC数据输入CRCDI读/写字0000hCRCDI_L读/写字节00hCRCDI_H读/写字节00hCRCDIRB读/写字0000hCRCDIRB_L读/写字节00hCRCDIRB_H读/写字节00hCRC初始化及结果CRCINIRES读/写字FFFFhCRCINIRES_L读/写字节FFhCRCINIRES_H读/写字节FFhCRC结果CRCRESR读/写字FFFFhCRCRESR_L读/写字节FFhCRCRESR_H读/写字节FFhCRCDI CRC数据输入15141312111098CRCDI76543210CRCDICRCDI Bits15-0 CRC数据输入。CRCDI内的数据会以CRC-CCITT标准和CRCINIRES寄存器内的数据根据相应多项式累加到一起。CRCDIRB CRC数据输入反向寄存器15141312111098CRCDIRB76543210CRCDIRBCRCDIRB Bits15-0 CRC数据反向输入。CRCDI内的数据会以CRC-CCITT标准和CRCINIRES寄存器内的数据根据相应多项式累加到一起CRCINIRES CRC初始化及结果寄存器15141312111098CRCINIRES76543210CRCINIRESCRCINIRESBits15-0CRC初始化以及结果。该寄存器保存的是当前CRC校验的结果。如果对该寄存器进行写操作,则会对CRC校验产生初始

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论