视频17分50秒有讲为什么起始位通常用低电平,结束位通常用高电平:
参考文章:SPI、UART、RS232、RS485、IIC 5种嵌入式经典通信总线协议精讲
文章目录
为什么串行通信中停止位(停止bit、stop bit)通常使用高电平?
引言
在数字通信中,停止位是至关重要的一部分。它们被用来标识一个数据帧的结束,使接收器能够正确地同步和解析传输的数据。有趣的是,停止位通常被设置为高电平(或逻辑1)。这篇文章将探讨这种设计选择背后的原因。
数据通信和停止位
数据通信简介
在任何形式的数据通信中,都需要一个可靠的方法来标识信息的开始和结束。这种标识使得接收设备可以正确地同步和解析接收到的数据流1。
停止位的定义和作用
在串行通信中,一个完整的数据单元包括起始位、数据位、可选的奇偶校验位和停止位。停止位在数据帧的最后,它的主要功能是为了给接收端提供恢复时间,以便它可以准备好处理下一个字节2。
图1. 串行通信帧结构3
为什么选择高电平作为停止位?
硬件的考虑
对于基于硬件的通信系统,选择高电平作为停止位是有实际考虑的。在很多硬件设备中,当没有数据传输时,线路默认处于高电平状态4。因此,使用高电平作为停止位可以减少线路状态的转换次数,从而降低功耗。
误码率的影响
另一个原因是与误码率有关。在数字通信中,由于各种噪声和干扰,数据传输可能会出现错误。为了提高系统的鲁棒性,设计者通常会尽量选择那些能够最小化误码率的策略。由于高电平比低电平更不易受到噪声干扰,因此选择高电平作为停止位有助于减小误码率5。
总结
总的来说,选择高电平作为停止位的原因主要是基于硬件的限制和对系统稳定性的考虑。这个设计选择展示了工程师如何权衡各种因素,以提高系统的性能和可靠性。
参考资料
串行通信协议通常先发低位还是先发高位?(根据不同协议而定)
在串行通信中,数据是按位顺序传输的,一次只能发送一个比特。通常先发低位再发高位(LSB first, Least Significant Bit first)或者先发高位再发低位(MSB first, Most Significant Bit first)的习惯并没有固定的技术理由,而更多是由历史和兼容性因素决定的。
发送低位在某些情况下有以下几个潜在的好处:
-
简化硬件设计:在早期的计算机和数字系统中,使用先发送低位的方式可能简化了电路设计。例如,如果使用移位寄存器进行串行通信,将最低位放在最靠近输出端的位置可以让设计更加直观。
-
数据处理的便利:在某些应用场景中,先接收到低位可以让接收方开始进行部分处理,而不必等到全部数据都接收完毕。这种情况在需要边接收数据边处理时尤其有用。
-
兼容性考虑:很多早期的标准和设备采用了先发送低位的约定,新设计的系统为了与这些设备兼容,也会遵循相同的传输顺序。
然而,实际上先发送哪个位取决于通信协议的规定。有些协议规定先发送最低位,而其他协议则可能规定先发送最高位。例如,在I2C通信协议中就是先发送高位;而在UART通信中,通常是先发送低位。
选择先发送低位还是高位通常基于如下考虑:
- 设备之间的兼容性。
- 所使用的通信标准或协议。
- 性能要求。
- 硬件设计和成本。
综上所述,并没有绝对的技术原因使得先发送低位比先发送高位更优越,关键在于遵循特定的通信协议和设备的要求。
Tanenbaum, A. S., & Wetherall, D. J. (2011). Computer Networks (5th ed.). Prentice Hall. ↩︎
Tomasi, Wayne. (2003). Advanced Electronic Communications Systems. Pearson Education. ↩︎
Savard, John J. G. (2006). Serial Communications: A C++ Developer’s Guide, 2nd Edition. Wiley Publishing. ↩︎
Proakis, J. G., & Salehi, M. (2008). Digital Communications (5th ed.). McGraw-Hill. ↩︎