dsPIC33F器件中的可编程循环冗余校验(CyclicRedundancyCheck,CRC)模块是可用软件配置的CRC校验和发生器。校验和是与报文或包含若干字节的特定数据块关联的独特数字。无论是用于通信的数据包,还是存储在存储器中的数据块,象校验和这样的信息都可以帮助在处理数据之前先验证数据。
计算校验和最简单的方法是将报文中的所有数据字节相加。但是,当通过翻转或交换多组字节的方式修改报文时,这种校验和计算方法会失效。此外,在报文中的任意位置添加空字节时,这种方法也会失效。
CRC是一种更复杂、但也更可靠的错误校验算法。CRC算法中的主要原理是将报文视为二进制比特流,并将它除以固定的二进制数值。这种除法运算产生的余数将视为校验和。与除法运算一样,CRC计算也是一个迭代过程。唯一的区别在于这些运算是通过基于模2的模运算完成。例如,除法运算被替换为异或运算(即,不带借位的减法)。CRC算法使用多项式来执行所有计算。使用数字表示的除数、被除数和余数构造为带有二进制系数的多项式。
dsPIC33F器件中的可编程CRC模块组织为两个逻辑模块:控制逻辑和CRC引擎。控制逻辑中包含寄存器接口、FIFO、中断发生器和CRC引擎接口。CRC引擎中包含CRC计算器,该计算器使用带异或功能的串行移位器实现。图36-1给出了CRC模块的简化框图。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !