我了解 UART 方案通常使用 8N1,即 1 个起始位、8 个数据位和 1 个停止位。像这样的东西:
0 xxxxxxx 1
其中 0 是起始位,x 是数据,1 是停止位。在连续发送多个帧的情况下,您将拥有以下内容:
0 xxxxxxx 10 xxxxxxx 10 xxxxxxx 1
我的问题是:接收器如何分辨开始/停止位和数据位之间的区别?为了说明这一点,假设数据字节 0xAA 一遍又一遍。这看起来像:
0 10101010 10 10101010 10 10101010 10 10101010 10 10101010 1
我将开始/停止位加粗以强调,但在我看来,确实没有办法将这些与数据位区分开来。
当然,如果接收器自很久以前就与发射器建立了可靠的无差错连接,那么我可以看到这不会成为问题。或者,如果字节没有被背靠背发送,那么这不会是一个问题。但是我使用过一个接一个地连续传输字节的 8N1 电路,我可以在传输过程中断开/重新连接电线,接收器总是会立即跳回正确接收。这怎么可能?