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)    

官方资料

https://usb.org/

相关资料