网络稳定性测试在线,网络测试小助手完成套接字的创建使用过程分析
2023-08-25
很多朋友对循环冗余检查算法,循环冗余检查确保正确的数据通信不是很了解,每日小编刚好整理了这方面的知识,今天就来带大家一探究竟。
在工业环境中运行的电子系统必须经常承受极端温度、电噪声环境或其他恶劣条件,然而,它们的正常运行是非常重要的。例如,如果发送到控制机械臂位置的DAC的数据被破坏,机械臂可能会向意想不到的方向移动。这不仅危险而且昂贵:想象一下,在生产线上,你的手臂撞到了一辆新车的侧面,或者更糟,撞到了生产工人。
有几种方法可以确保您在采取行动之前收到正确的数据。最简单的方法是让控制器读回发送的数据。如果接收的数据与发送的数据不匹配,则其中一个数据被损坏,必须发送并验证新数据。这种方法是可靠的,但也有很大的开销:每条数据都必须经过验证,使传输的数据量增加一倍。
另一种方法是循环冗余校验(CRC),即对每个数据包发送一个校验和。接收设备将指示是否存在问题,因此控制器不需要验证接收。校验和通常通过对数据应用多项式方程来生成。当应用于24位字时,CRC-8产生8位校验和。将校验和与数据结合,将所有32位传输到可以分析该组合的设备并指示错误(虽然不是完美的解决方案),比读写方法更有效。
ADI公司的许多DAC以包错误校验(PEC)的形式实现CRC。当不需要PEC功能时,将写入24位数据。为了增加PEC功能,24位数据被相应的8位校验和扩展。如果收到的校验和与数据不匹配,输出引脚会降低以指示错误。控制器清除错误,使引脚返回高电平,然后重新发送数据。图1显示了如何使用SPI接口应用数据的示例。表1列出了可以使用包错误检查的ADI器件示例。
图一。SPI写操作有无包错误检查。表1。使用包错误检查的模拟设备示例
产品型号描述AD5360/AD536116通道、16/14位10V DACAD5362/AD53638通道、16/14位10V DACAD5748工业电流/电压输出驱动器AD5749工业电流输出驱动器AD5750/AD5750-1具有可编程范围的工业电流/电压输出驱动器AD5751工业电流/电压输出驱动器AD5755/AD57354通道、16位
CRC-8算法使用多项式C(x)=x8 x2 x1 1。对于x=2,这相当于二进制值100000111。为了产生校验和,24位数据向左移位8位,产生一个以8个逻辑0结尾的32位数。对齐CRC多项式,使其MSB与32位数据的最左侧逻辑1相邻。对数据应用异或(XOR)函数以生成新的(更短的)数。(匹配的数字表示逻辑0,不匹配的数字表示逻辑1。
CRC多项式再次对齐,使其MSB与第一个结果的最左侧逻辑1相邻,并重复该过程。最终,原始数据将减少到小于CRC多项式的值。这是一个8位校验和。图2展示了如何开发校验和。
图二。生成一个24位数的校验和(0x654321)。结论图2所示的示例使用(十六进制)值0x654321作为示例24位数据字。对数据应用CRC-8多项式会产生0x86的校验和。当数据和校验和发送到兼容的ADI产品时,只有当两种数据都正确到达时,才会接受数据。这种方法提高了数据传输的可靠性,并确保损坏的数据几乎永远不会被接受。审计郭婷
以上知识分享希望能够帮助到大家!
版权声明:本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们
推荐阅读
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
2023-08-25
栏目热点
网络稳定性测试在线,网络测试小助手完成套接字的创建使用过程分析
LilyGoT手表键盘C3迷你电脑套件
索泰ZBOXEdgeCI342迷你电脑正式上市
谷歌在最新的视频预告片中展示了PixelWatch的独特设计
三星与设计师Juun.J合作推出限量版可折叠产品和配件
从2023年起Fitbit设备将需要Google帐户
TOKKCAMC2+智能WiFi独立日 夜视摄像头
三星正在与全球时尚品牌JUUN.J合作
OnePlusNordWatch的颜色选项通过泄露的渲染揭示
就在第一款Nothing手机发布之前一种新的TWS芽设计浮出水面