串口通信中对校验和的需求串口、中对、需求、通信

2023-09-03 14:55:35 作者:可惜没如果

我目前正在做一个项目,涉及从PC(USB到C#编码的串口应用程序)到嵌入式平台(STM32F4)的串口COM。 我发现在某些情况下,在通信帧中必须有一个校验和。 通信配置:

波特率=115200,

基于VC环境的变频器联网控制

无奇偶校验位

One StopBit

无握手

帧长度:16字节

是否值得在我的应用程序中添加校验和?我应该(不)拥有此校验和的原因是什么?

感谢您的答复。

推荐答案

是,您必须有校验和。唯一可接受的非业余人士解决方案是基于CRC的适当校验和。最常用的行业标准是"CRC-16-CCITT"(多项式0x1021)。这将捕获任何单比特错误、大多数双比特错误和一些突发错误。

即使您只在办公环境中使用RS-232(?),但由劣质消费电子产品引起的任何EMI都可能导致故障和错误数据。这种劣质电子产品随处可见:例如,你个人电脑中的电子产品EMC性能差的情况并不少见。尤其是,有无数的USB转串口适配器,其质量简直糟糕透顶。

UART硬件本身没有值得一提的错误检测:它是20世纪60年代的古老技术。在硬件层面上,它只根据起始位和停止位检查数据完整性,并将忽略两者之间的任何错误。(奇偶校验同样很差)。

或者,您也可以改为使用USB转RS-485适配器,并使用RS-485,因为它有差分信号,所以更加坚固。但这需要你在目标端也有RS-485收发机。

 
精彩推荐
图片推荐