Linux 串口设备配置全解析
硬件握手与 UART 芯片
硬件握手是一种可选择但非常实用的功能。它允许两个站点中的任何一个发出信号,表明自己是否准备好接收更多数据,或者另一个站点是否应该暂停发送,直到接收方处理完传入数据为止。用于此目的的线路分别称为“清除发送”(CTS)和“准备发送”(RTS),这也就是硬件握手俗称“RTS/CTS”的由来。
另一种常见的握手方式是“XON/XOFF”握手。它使用两个指定字符(通常是 Ctrl - S 和 Ctrl - Q),分别向远程端发出停止和开始传输数据的信号。这种方法实现起来简单,适用于简易终端,但在处理二进制数据时容易造成混淆,因为你可能希望将这些字符作为数据流的一部分进行传输,而不是将其解释为流量控制字符。此外,它的生效速度也比硬件握手稍慢。因此,在有选择的情况下,硬件握手更清晰、快速,是比 XON/XOFF 更好的选择。
在早期的 IBM PC 中,RS - 232 接口由名为 8250 的 UART 芯片驱动。486 时代的 PC 使用了更新版本的 UART,即 16450,其速度比 8250 略快。几乎所有基于奔腾的机器都配备了更新的 UART 版本 16550。一些品牌(特别是配备罗克韦尔芯片组的内置调制解调器)使用完全不同但能模拟 16550 行为的芯片,也可按相同方式处理。Linux 在其标准串口驱动程序中支持所有这些芯片。
16550 相较于 8250 和 16450 有显著改进,它提供了 16 字节的 FIFO 缓冲区。实际上,16550 是一系列 UART 设备,包括 16550、16550A 和 16550AFN(后来更名为 PC16550DN),它们的区别在于 FIFO 是否能正常工作,其中
超级会员免费看
订阅专栏 解锁全文
1008

被折叠的 条评论
为什么被折叠?



