USB<>串行通信不在linux上工作

时间:2016-04-06 14:58:48

标签: linux matlab ubuntu usbserial ftdi

我目前正在开展一个项目,在这个项目中,我必须通过USB<>串行连接与定制的声纳板进行通信,并使用cts / rts硬件流控制,波特率为4,499,456。 用于发送和接收数据的MATLAB代码已经可用并在Windows上进行了全面测试。

尝试在linux上执行MATLAB代码时会出现问题(Ubuntu 14.10 / 15.04)。用于切换板上的LED(写入)以及接收信息(读取)的命令都不起作用。 使用pyserial和pylibftdi库的MATLAB代码的Python端口允许写入,但也会挂起接收数据。

有没有人知道它为什么在Windows上运行而不是在Ubuntu上运行?也许是司机问题?或者与Linux上的cts / rts有关的东西?

lsusb输出

Bus 002 Device 004: ID 0403:6014 Future Technology Devices International, Ltd FT232H Single HS USB-UART/FIFO IC

dmesg输出

[11906.209231] usb 2-3: new high-speed USB device number 5 using ehci-pci
[11906.346701] usb 2-3: New USB device found, idVendor=0403, idProduct=6014
[11906.346713] usb 2-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[11906.346720] usb 2-3: Product: USB <-> Serial Converter
[11906.346725] usb 2-3: Manufacturer: FTDI
[11906.346730] usb 2-3: SerialNumber: FT69T4N
[11906.351716] ftdi_sio 2-3:1.0: FTDI USB Serial Device converter detected
[11906.351800] usb 2-3: Detected FT232H
[11906.352234] usb 2-3: FTDI USB Serial Device converter now attached to ttyUSB1

编辑:只是记录我的进度,以防有人遇到同样的问题。问题似乎在于波特率;将其更改为115200允许从设备读取数据,但会将数据发送给它。

1 个答案:

答案 0 :(得分:0)

显然,FTDI驱动程序无法很好地处理非常高/非标准的波特率。我最终使用3,000,000波特率

来解决这个问题