【发布时间】:2015-11-11 11:08:48
【问题描述】:
我正在使用 FTDI D2XX 驱动程序 API 与 FTDI 设备进行通信。 它给了我一些关于设备的信息,比如 locid、序列号、描述,但这还不够。
如何使用此 API 获取设备号 (/dev/ttyUSBXX) 或总线或端口。
谢谢
【问题讨论】:
-
不知道你在说什么,虽然在 Linux 内核中你有不同的 API 来访问 USB 串行设备:a) TERMIOS 直接在 /dev/ttyXYZ 上工作节点,以及 b) USB IOCTL (libusb)。
-
你好。我将在这里解释更多细节。我用 USB 连接了两个 FTDI 板,每个板都有两个设备。所以从 dmesg 我得到:
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0 usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB1 usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB2 usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB3。当我调用 D2XX API 时,我也得到了四个设备,但它没有告诉我哪个设备是 ttyUSB1,即 ttyUSB2 等。它只给我 locid、序列号和描述。 -
所以,简而言之,我想将 ttyUSB0、ttyUSB1、ttyUSB2、ttyUSB3 分配给我从 D2XX API 获得的设备(我使用 FT_GetDeviceInfoDetail 函数)
-
我不知道 D2XX API 是什么意思。 Linux 内核似乎在这里工作。
-
经过一番搜索,我认为从技术上讲,我的问题没有解决方案。无论如何,仅供参考:当您插入 FTDI 芯片时,Linux 内核会自动加载 VCP 驱动程序 (ftdi_sio)。同一家公司(D2XX)还有另一个驱动程序,这是我使用的。这两个驱动程序不兼容。所以,我必须卸载 (rmmod) ftdi_sio 才能使用 D2XX。 Linux ftdi_sioD2XX API
标签: driver linux-device-driver libusb ftdi d2xx