在 USB 上使用 CTS/RTS 硬件流控制

在 USB 上使用 CTS/RTS 硬件流控制

我正在尝试使用 Raspberry Pi 运行 Roland MDX-20 铣床。该机器有一个小的输入缓冲区,并使用硬件流控制在完成命令并可以接收新命令时发出信号。我尝试使用设置正确的串行设置

stty -F /dev/ttyUSB0 9600 cs8 -parenb -cstopb -clocal crtscts

但是当我使用 cat 命令发送它时;

cat ~/(my RML file) > /dev/ttyUSB0

所有数据都会立即发送出去。

我有一根 Startech.com USB 串行电缆,其他 Windows 用户报告该电缆工作正常,所以我不认为该电缆有问题,但可能更多的是串行驱动程序?

关于如何解决这个问题有什么想法吗?

谢谢

答案1

startech 网站目前列出了多种 USB <-> 串行电缆产品。这些不同的产品使用不同的芯片组,即至少 FTDI 和 Prolific 的芯片组。而且只有 Prolific 似乎支持硬件流控制。

dmesg您可以通过在连接设备时查看 来检查是否有 Prolific 或 FTDI USB 设备。

验证 USB 电缆后,您可以通过运行来调试硬件流控制statserial在单独的终端中。


如果您的串行设备未直接连接到 USB <-> 串行电缆,那么检查该附加电缆的连接也是有意义的。

答案2

作为找到问题之前的临时解决方法,您可以使用pv限制吞吐量,例如限制为 100 字节/秒:

pv -L 100 -q < ~/my_RML_file > /dev/ttyUSB0

相关内容