[USB接口]

USB设备的接口、端点以及数据传输问题

[复制链接]
1448|0
手机看帖
扫描二维码
随时随地手机跟帖
一骑红尘追梦中|  楼主 | 2017-12-29 18:17 | 显示全部楼层 |阅读模式
USB设备是定义成CDC类,想实现多种功能接口,高速描述符结构体中情况分析如下:
1、设备描述符中bNumConfigurations=1,即高速模式下配置描述符为1个(还有设备限定描述符);
2、配置描述符中bNumInterfaces=2,定义了两个接口描述符;
3、但在整个高速描述符结构体中有三个接口描述符:IAD、通信类接口描述符请求、数据类接口描述符请求,IAD的功能定义为CDC;通信类接口描述符中的bInterfaceClass为CDC,bInterfaceSubClass为ACM;数据类接口描述符中的bInterfaceClass为CDC类;
4、CDC功能描述符;
5、三个端点描述符,其中一个为第一个备用设置断点;
USB设备接到LinuxPC的信息如下:
usb 2-4: new high-speed USB device number 5 using ehci-pci
usb 2-4: config 1 interface 0 altsetting 0 endpoint 0x84 has an invalid bInterval 255, changing to 11
usb 2-4: config 1 interface 1 altsetting 0 bulk endpoint 0x1 has invalid maxpacket 64
usb 2-4: config 1 interface 1 altsetting 0 bulk endpoint 0x82 has invalid maxpacket 64
usb 2-4: New USB device found, idVendor=xxxx, idProduct=xxxx
usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 2-4: Product: EL Composite device
usb 2-4: Manufacturer: Expres Logic
usb 2-4: SerialNumber: 0001
cdc_acm 2-4:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
在应用程序中也是将USB设备注册成了CDC类,想请教:
1)配置描述符中指定两个接口,为什么会有三个接口描述符?IAD的作用只是为了实现一个设备具有多功能接口的吗?
2)可以修改接口描述符来指定这个设备的接口实现一种设备功能,即一个接口实现通信类设备,一个接口实现Image图像设备?

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

45

帖子

0

粉丝