RS232控制台通信 - 将波特率设置为1 MBaud

时间:2014-03-12 17:46:47

标签: linux bash serial-port stty

在bash脚本中,我使用以下内容:

$ stty -F /dev/ttyUSB0 921600 raw
$ echo -n "some test data" >/dev/ttyUSB0

它按预期工作。 使用PL2303 USB转RS232适配器:

$ lsusb
...
Bus 006 Device 010: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 006 Device 011: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port

现在我尝试用1MBd做同样的事情,但得到了一个错误:

$ stty -F /dev/ttyUSB0 1000000 raw
stty: /dev/ttyUSB0: unable to perform all requested operations

当我尝试500kBd时,同样的消息。尝试250kBd的错误信息是不同的:

$ stty -F /dev/ttyUSB0 250000 raw
stty: invalid argument `250000'
Try `stty --help' for more information.

here所示,它是PL2303 linux驱动程序中的一个问题。

我正在使用Kubuntu12.04,32位。不幸的是,我不知道如何在我的系统上修复该驱动程序(获取驱动程序源代码,修补程序代码,编译,安装......嗯,也许我会学习一下并尝试一下 - 欢迎提出建议)。

但也许有更新的驱动程序易于安装?

或者有人知道另一个USB转RS232适配器工作在1MBd(需要通过rts / cts进行硬件流量控制,这对PL2303非常有效)吗?

1 个答案:

答案 0 :(得分:0)

在意识到»Prolific和FTDI是竞争对手«后,我买了Ftdi US232R-10,这是一款基于FT232R的设备,指定传输速率为1MBd。

使用此适配器,我通过传输一些GiB数据成功测试了1MBd的通信,没有任何错误(包括使用Rts / Cts硬件流控制)。

使用stty配置此设备:

$ stty -F /dev/ttyUSB0 1000000 raw

成功运作。