我曾经参与过一个项目 , 其中来自传感器的数据被破坏并且无法验证传感器数据是否正确!在今天的文章中 , 让我们看看嵌入式开发人员在数据完整性方面的几种方法 。
技巧1 – 至少使用奇偶校验
奇偶校验是一种数据完整性机制 , 它查看数据流中1的数量 , 然后调整奇偶校验位以使 1 的总数为奇数或偶数 。 例如 , 假设传感器传输 16 位宽且奇校验的数据消息 。 其中一位 , 通常是最低有效位 (LSB) 将用于设置奇偶校验 。 如果要发送的数据是:1000 1000 1000 100x
然后为了奇校验 , 将 x 设置为 1 , 这样数据中有五个1 。 如果奇偶校验是偶数 , 那么 x 将被设置为 0 , 因为数据中已经有四个1 。
奇偶校验适用于检测单个位翻转 。 如果零变成一或一变成零 , 则可以检测到奇偶校验错误 。 但是 , 如果两个或更多位翻转 , 则可能无法检测到错误 。 为此 , 需要更强大的技术 。
技巧2 – 使用校验和
校验和是一种算法 , 旨在检测数据集中自然或随机发生的错误 。 通常在一组数据上计算校验和 , 然后得出数据的校验和 。 数据集通常包含数据中的校验和 , 因此嵌入式开发人员在计算校验和时会忽略这些字节 , 然后将计算出的校验和与数据附带的校验和进行比较 , 以查看它们是否匹配 。
重要的是要认识到并非所有校验和都相同 , 并且可以检测到不同的错误 。 例如 , 一个校验和可能能够检测到单个位已经改变 , 但不同的校验和可能能够检测几个位是否同时改变 。 仅仅因为发现校验和匹配并不能保证数据中没有错误!校验和也擅长检测随机错误 , 但不一定会检测到故意更改 , 例如有人试图破坏系统 。 开发人员需要仔细选择他们选择用于其应用程序的校验和 。
技巧3 – 使用循环冗余校验 (CRC)
CRC实际上是一个校验和 , 但它是一种非常特殊的校验和 。 CRC 是使用多项式除法计算校验和的校验和 。 可以想象 , 在嵌入式系统上 , 尤其是基于微控制器的嵌入式系统上 , 执行多项式除法的计算成本很高!不过 , 还有一些额外的好处 , 即 CRC 可以检测到比简单校验和更大范围的错误 。 CRC 非常有效 , 以至于许多微控制器供应商将包括一个基于硬件的 CRC 计算器 , 以允许开发人员有效地使用 CRC 。 不幸的是 , 它是否包含在内是非常偶然的 , 因此开发人员需要仔细阅读他们的微控制器数据表 。
结论
【传感器|嵌入式开发:在嵌入式系统中验证传感器和通信数据的3个技巧】在数据收集和分析不断增长的世界中 , 重要的是要意识到我们的系统不能只信任总线上的每一点数据 。 电磁干扰、宇宙射线和其他来源会导致位翻转并损坏 , 如果没有某种机制来检测这些位翻转 , 则可能会对数据采取行动 , 虽然在许多情况下这没什么大不了的 , 但有时它可能对系统造成灾难性影响 , 所以嵌入式开发人员尤其要注意 , 我们今天讨论的三种技术简单且易于实施 , 并且可以对进出系统的所有数据进行简单的完整性检查 。
- 传感器|这也许是2022年最值得买的一款入门级投影仪
- 《纸人3》确认开发中!初代开启五折特惠 仅售29元
- 为了“扭”出完美的奥利奥,麻省理工研究团队开发了一个分离装置
- AR光学显示解决方案|致力于开发AR光学显示解决方案,Dispelix与Avegant达成合作
- 云游戏|筑基元宇宙底层技术,云游戏开发商Playable Worlds完成超2500万美元融资
- 国内手机影像内卷结束了?新传感器登场,手机不再反向升级
- vivo|vivo X80影像官宣:全球首发全新大底传感器
- 传感器|国内手机影像内卷结束了?新传感器登场,手机不再反向升级
- 传感器|蓝厂要爆发了?首发IMX866及GNV两大传感器,终结影像内卷
- 电子商务|零代码引领下的“全民开发”浪潮,正成为企业数字化转型加速器