目前,越来越多的单片机使用B类安全程序来检测安全要求极高的应用中的故障。检测单片机程序存储器中故障的主要方法是使用由IEC 60730标准定义的循环冗余校验(Cyclic Redundancy Check,CRC)。
CRC 可用于防止因程序存储器损坏而导致的应用故障,方法是执行周期性校验来确定校验值是否已变化。
本应用笔记将介绍如何实现软件CRC(作为B 类安全软件库的一部分)以及实现所选单片机(本文档主要针对PIC16F161X系列)中使用的硬件CRC。
CRC采用一种与多项式长除法极为类似的方法来确定一个惟一校验值,此校验值类似于多项式长除法中的余数。这可通过选择一个非常具体的除数来实现,此除数称为CRC多项式。CRC多项式是为确定任意给定数据流中的最大错误量而选择的惟一多项式。本应用笔记中使用的CRC多项式为CRC-16-ANSI,如图2所示。另一种常用的CRC算法为CRC-16-CCITT。此算法主要用于通信CRC。
在B类应用中使用校验值的方法如下:先运行一个初始 CRC,然后周期性地运行CRC 来确认校验值未发生变化
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !