FIFO缓冲区在Windows中的COM端口的作用

adi*_*adi 6 windows buffer serial-port

任何人都可以在Windows中解释FiFo缓冲区检查(来自设备管理器的高级COM端口设置)的作用吗?

检查/取消检查FIFO缓冲区如何影响从COM端口读取数据?

非常感谢您的回复!

Han*_*ant 7

IBM-PC设计中使用的原始UART芯片是8250.当接收器忙于接收下一个字节时,它可以只存储一个接收字节.这对操作系统的串行端口驱动程序的响应性提出了很高的要求,响应了"数据接收"中断.它必须足够快以在接收器覆盖之前读取该字节.不够快会导致溢出错误和无法挽回的数据丢失.高中断率也是有害的.

该设计得到了16550 UART芯片的改进.它有一个更大的缓冲区,FIFO,让操作系统有更多的时间来清空缓冲区,然后才能发生溢出.串行端口驱动程序可以对其进行编程,以在特定填充级别生成中断,从而降低中断速率.

但是芯片设计与软件具有相同的问题,原始的16550在FIFO实现中存在错误.在16550A中修复了软件版本1.1.

问题是,司机无法判断机器是否有16550的错误版本或是好的版本.像这样的简单芯片没有GetVersion()等价物.因此它提供了一个属性页面,允许用户关闭FIFO支持,从而绕过错误.

今天你有错误版本的几率为零.不再需要关闭FIFO.