奇偶校验是一种数据完整性机制,它查看数据流中 1 的数量,然后调整奇偶校验位以使 1 的总数为奇数或偶数。例如,假设传感器传输 16 位宽且奇校验的数据消息。其中一位,通常是最低有效位 (LSB) 将用于设置奇偶校验。如果要发送的数据是:
1000 1000 1000 100x
然后为了奇校验,将 x 设置为 1,这样数据中有五个 1。如果奇偶校验是偶数,那么 x 将被设置为 0,因为数据中已经有四个 1。
奇偶校验适用于检测单个位翻转。如果零变成一或一变成零,则可以检测到奇偶校验错误。但是,如果两个或更多位翻转,则可能无法检测到错误。对于这种情况,需要更强大的技术。
校验和是一种算法,旨在检测数据集中自然或随机发生的错误。通常在一组数据上计算校验和,然后得出数据的校验和。数据集通常包含数据中的校验和,因此在计算校验和时会忽略这些字节。然后将计算出的校验和与数据附带的校验和进行比较,以查看它们是否匹配。
重要的是要认识到并非所有校验和都相同,并且可以检测到不同的错误。例如,一个校验和可能能够检测到单个位已经改变,但不同的校验和可能能够检测几个位是否同时改变。仅仅因为发现校验和匹配并不能保证数据中没有错误!校验和也擅长检测随机错误,但不一定会检测到故意更改,例如有人试图破坏系统。嵌入式开发人员需要仔细选择他们选择用于其应用程序的校验和。
CRC实际上是一个校验和,但它是一种非常特殊的校验和。CRC 是使用多项式除法计算校验和的校验和。可以想象,在嵌入式系统上,尤其是基于微控制器的嵌入式系统上,执行多项式除法的计算成本很高!不过,还有一些额外的好处,即 CRC 可以检测到比简单校验和更大范围的错误。CRC 非常有效,以至于许多微控制器供应商将包括一个基于硬件的 CRC 计算器,以允许开发人员有效地使用 CRC。不幸的是,它是否包含在内是非常偶然的,因此开发人员需要仔细阅读他们的微控制器数据表。
在数据收集和分析不断增长的世界中,嵌入式开发人员要意识到我们的系统无法信任总线上的每一点数据。电磁干扰、宇宙射线和其他来源可能导致位翻转并损坏。如果没有某种机制来检测这些位翻转,则可能会对数据采取行动,虽然在许多情况下这没什么大不了的,但有时它可能对系统造成灾难性影响。我们今天讨论的三种技术简单且易于实施,并且可以对进出系统的所有数据进行简单的完整性检查。
本文题目:对嵌入式系统至关重要的数据完整性
文章地址:http://www.csdahua.cn/qtweb/news7/423007.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网