5

在 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

现在我尝试对 1 MBd 执行相同的操作,但出现错误:

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

当我尝试使用 500 kBd 时,也会出现相同的消息。尝试 250 kBd 的错误消息是不同的:

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

如此处所示,这是 PL2303 linux 驱动程序中的一个问题。

我正在开发 Kubuntu 12.04,32 位。不幸的是,我不知道如何在我的系统上修复该驱动程序(获取驱动程序源、修补 em、编译、安装……嗯,也许我学到了一点并试一试——欢迎提供建议)。

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

或者是否有人知道可以在 1 MBd 下工作的备用 USB 到 RS232 适配器(需要通过 rts/cts 进行硬件流控制,它与 PL2303 配合得很好)?

4

1 回答 1

1

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

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

使用 stty 配置此设备,例如:

$ stty -F /dev/ttyUSB0 1000000 raw

工作成功。

于 2014-04-07T07:35:14.053 回答