Need of checksum in serial communication(串口通信中对校验和的需求)
问题描述
我目前正在做一个项目,涉及从PC(USB到C#编码的串口应用程序)到嵌入式平台(STM32F4)的串口COM。 我发现在某些情况下,在通信帧中必须有一个校验和。 通信配置:
波特率=115200,
无奇偶校验位
One StopBit
无握手
帧长度:16字节
是否值得在我的应用程序中添加校验和?我应该(不)拥有此校验和的原因是什么?
感谢您的答复。
推荐答案
是,您必须有校验和。唯一可接受的非业余人士解决方案是基于CRC的适当校验和。最常用的行业标准是"CRC-16-CCITT"(多项式0x1021)。这将捕获任何单比特错误、大多数双比特错误和一些突发错误。
即使您只在办公环境中使用RS-232(?),但由劣质消费电子产品引起的任何EMI都可能导致故障和错误数据。这种劣质电子产品随处可见:例如,你个人电脑中的电子产品EMC性能差的情况并不少见。尤其是,有无数的USB转串口适配器,其质量简直糟糕透顶。
UART硬件本身没有值得一提的错误检测:它是20世纪60年代的古老技术。在硬件层面上,它只根据起始位和停止位检查数据完整性,并将忽略两者之间的任何错误。(奇偶校验同样很差)。
或者,您也可以改为使用USB转RS-485适配器,并使用RS-485,因为它有差分信号,所以更加坚固。但这需要你在目标端也有RS-485收发机。
这篇关于串口通信中对校验和的需求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:串口通信中对校验和的需求


基础教程推荐
- JSON.NET 中基于属性的类型解析 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01