我应该为使用 Pyserial 通过串口传输的数据实现校验和过程吗?
Posted
技术标签:
【中文标题】我应该为使用 Pyserial 通过串口传输的数据实现校验和过程吗?【英文标题】:Should I implement a checksum process for the data transmited through serial port using Pyserial? 【发布时间】:2016-10-11 02:46:07 【问题描述】:这是我在 *** 上的第一个问题,我还在学习英语。所以我恳求你的宽容。
我正在做一个项目,我需要使用 Python(特别是 Pyserial 库)从 USB 串行端口接收数据。 arduino 通过串行电缆向我发送数据,然后我从 COM 端口接收数据。
我目前正在实施一个基本的校验和过程,以验证传输的数据是否完整到达。从 arduino 中,我添加了我正在传输的数据的值并设置为校验和字段,这也将被传输。然后,在计算机上,我对数据执行相同的操作,并验证总和是否等于校验和字段的值。
我的问题是。我应该担心这个或那个任务已经由 USB 协议执行了吗?
如果有人可以给我一些参考,那对我很有帮助。
这是我目前计算校验和的方式:
s1: 425.2,
s2: 426.4,
s3: 78.2,
s4: 785.2,
chksum: 1715
【问题讨论】:
【参考方案1】:USB 不纠正串行数据。 CPU 用来与串行端口通信的只是一个bus。您认为在 Arduino 和 PC 之间进行通信的协议中添加一些校验和是一个不错的想法。
串行端口使用的一个非常常见的硬件协议是 RS232。它包含一些使用parity 位的错误检测支持。如果奇偶校验位不正确,则接收到的字节将被丢弃。所以我认为这对你没有多大帮助。
【讨论】:
非常感谢您的回答。我会记住这一点。我不能投票,因为我还没有声望。以上是关于我应该为使用 Pyserial 通过串口传输的数据实现校验和过程吗?的主要内容,如果未能解决你的问题,请参考以下文章