USB:修订间差异
跳转到导航
跳转到搜索
创建页面,内容为“== 说明 == USB可用于计算机连接各种外设,是一种串行总线接口标准,也是一种输入输出接口规范。 == 软件 == === USB上位机库 === * [https://libusb.info/ libusb] * [https://github.com/signal11/hidapi.git hidapi] ==== libusb ==== 为USB设备提供通用访问的C库。 对于采用Windows操作系统的设备,需要使用[http://sourceforge.net/projects/libusbk/ libusbK]定制设备驱动。 === 嵌入式USB设备库…” |
|||
第23行: | 第23行: | ||
网址:http://www.linux-usb.org/usb-ids.html | 网址:http://www.linux-usb.org/usb-ids.html | ||
== 笔记 == | |||
=== 定位USB串口设备路径 === | |||
在将USB作为内部总线时,通常需要支定位USB串口设备,使用串口号通常是不稳的。 | |||
本人通过总线号加设备路径(设备号)区分设备,如<code>1-2.1.4</code>表示USB总线(根设备)1,设备路径为2.1.4(第1层的集线器的端口为2,第2层的集线器的端口为1,第三层的集线器的端口为4)。 | |||
[[文件:Usb-path-ttyusb0.png|居中|有框]] | |||
本方法不仅可用于串口设备,还可用于其它设备,理论上的所有的USB设备均可使用此方法定位。 | |||
如果使用libusb访问usb设备,可采用以下函数获取相关信息: | |||
* 总线号:<code>uint8_t libusb_get_bus_number(libusb_device *dev)</code> | |||
* 设备路径(设备号):<code>int libusb_get_port_path (libusb_context * ctx,libusb_device *dev,uint8_t *port_numbers,uint8_t port_numbers_len)</code> 或<code>int libusb_get_port_numbers(libusb_device *dev,uint8_t *port_numbers,int port_numbers_len)</code> | |||
== 官方资料 == | == 官方资料 == |
2024年3月26日 (二) 09:32的版本
说明
USB可用于计算机连接各种外设,是一种串行总线接口标准,也是一种输入输出接口规范。
软件
USB上位机库
libusb
为USB设备提供通用访问的C库。
对于采用Windows操作系统的设备,需要使用libusbK定制设备驱动。
嵌入式USB设备库
usb.ids
usb.ids收集了各种USB设备的ID信息,包括但不限于制造商ID(VID)、设备ID、子系统ID与设备类ID。操作系统可通过各种ID信息识别一个USB设备。
网址:http://www.linux-usb.org/usb-ids.html
笔记
定位USB串口设备路径
在将USB作为内部总线时,通常需要支定位USB串口设备,使用串口号通常是不稳的。
本人通过总线号加设备路径(设备号)区分设备,如1-2.1.4
表示USB总线(根设备)1,设备路径为2.1.4(第1层的集线器的端口为2,第2层的集线器的端口为1,第三层的集线器的端口为4)。

本方法不仅可用于串口设备,还可用于其它设备,理论上的所有的USB设备均可使用此方法定位。
如果使用libusb访问usb设备,可采用以下函数获取相关信息:
- 总线号:
uint8_t libusb_get_bus_number(libusb_device *dev)
- 设备路径(设备号):
int libusb_get_port_path (libusb_context * ctx,libusb_device *dev,uint8_t *port_numbers,uint8_t port_numbers_len)
或int libusb_get_port_numbers(libusb_device *dev,uint8_t *port_numbers,int port_numbers_len)
官方资料
相关资料
- linux-usb:http://www.linux-usb.org/