RSS

linux下USB设备的自动检测

来源: 作者: 时间:2007-06-04 Tag: 点击:

USB设备检测的一般过程
USB设备检测也是通过/proc目录下的USB文件系统进行的。为了使一个USB设备能够正常工作,必须要现在系统中插入USB桥接器模块。在检测开始时,一般要先检测是否存在/proc/bus/usb目录,若不存在则尝试插入USB桥接模块。

现在一般的USB桥接器模块有两种类型,UHCI和OHCI。在决定插入那一个桥接器模块时,可以察看/proc/pci文件来决定。打开此文件,您若发现 USB节为 I/O at 0xHHHH格式(例如出现 I/O at 0xe000 [0xe01f]),HHHH为16进制数,则桥接器类型为UHCI。若是它为32 bit memory at 0xHH000000形式(例如出现32 bit memory at 0xee000000),HH为16进制数,则桥接器类型为OHCI。但是若您的桥接器类型不满足上述任何一种情况,唯一的解决办法就是您尝试插入这两种模块,直到成功为止。一般而言,UHCI类型的桥接器它的插入模块是uhci或usb-uhci(由内核版本决定);而对于OHCI类型的桥接器它的插入模块是ohci或usb-ohci。

您在正确的插入了桥接器模块之后,这时/proc文件系统下就会出现USB设备目录,不过这时这个目录是空的,没有任何文件。这时您就必须挂接usbdevfs文件系统,然后通过此文件系统检测连接的设备。在成功挂接usb文件系统之后,就会生成文件 /proc/bus/usb/devices,/proc/bus/usb/drivers和目录/proc/bus/usb/busNo。挂接 usbdevfs文件您可以通过如下操作实现:
mount -t usbdevfs none /proc/bus/usb
或在/etc/fstab上加入
none /proc/bus/usb usbdevfs defaults 0 0

然后通过/proc/bus/usb/devices文件的内容,您就可以获得连接的设备信息,包括设备标识和制造商标是等信息。

usb设备类型描述:


设备规范           设备类码           接口类码
应用程序特定       -                  0xFE
声音接口           0x00               0x01
通信设备           0x02               -
CDC控制接口        -                  0x02
CDC数据接口        -                  0x0A
HID                0x00               0x03
HUB                0x09               0x09
批量存储设备       0x00               0x08
监视器             same as HID        same as HID
电源设备           same as HID        same as HID
物理设备           -                  0x05
打印机             -                  0x07
供应商特定         -                  0xFF



5.2 usb文件系统简介
T = 总线拓扑结构(Lev, Prnt, Port, Cnt, 等),是指USB设备和主机之间的连接方式
B = 带宽 (仅用于USB主控制器)
D = 设备描述信息
P = 产品标识信息
S = 串描述符
C = 配置描述信息 (* 表示活动配置)
I = 接口描述信息
E = 终端点描述信息

一般格式:
d = 十进制数
x = 十六进制数
s = 字符串

拓扑信息

T:  Bus=dd Lev=dd Prnt=dd Port=dd Cnt=dd Dev#=ddd Spd=ddd MxCh=dd
|   |       |       |         |        |        |         |         |__最大子设备|   |       |       |         |        |        |         |__设备速度(Mbps)
|   |       |       |         |        |        |__设备编号
|   |       |       |         |        |__这层的设备数
|   |       |       |         |__此设备的父连接器/端口
|   |       |       |__父设备号
|   |       |__此总线在拓扑结构中的层次
|   |__总线编号
|__拓扑信息标志

带宽信息

B:  Alloc=ddd/ddd us (xx%), #Int=ddd, #Iso=ddd
|   |                            |           |__同步请求编号
|   |                            |__中断请求号
|   |__分配给此总线的总带宽
|__带宽信息标志

1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
教程下载