USB 协议 (五) 枚举

USB 1.0 2.0 3.0 的 枚举 总线过程
  • usb 1.0 2.0
    在这里插入图片描述
1.0 -> 2.0
更改了 reset 时间 :10ms 到 不做要求
  • usb 2.0 3.0

在这里插入图片描述

2.0 -> 3.0
更改了 reset 的必要性 : 从必要到可选
更改了驱动能力 : 100 mA -> 150 mA
增加
	host 设置 isochronous delay , 并通知设备
	host 通知设备 system exit latency using the Set SEL request
USB2.0 枚举
枚举过程中的一次 control transfer : get device descriptor
枚举过程中包括很多个 control transfer (例如 get device 描述符 就是一个 control transfer)

这个 control transfer 中 包括 三个阶段 // 以 get device 描述符 为例
	SETUP阶段
		一个 usb 控制 事务
			令牌包 + DATA0 数据包(XXX) + 握手包 // 数据中为8字节的USB标准设备请求
	DATA阶段 // N个 usb 控制 事务
		第一个 usb 控制 事务
			令牌包 + DATA1数据包 + 握手包
		第二个 usb 控制 事务
			令牌包 + DATA0数据包 + 握手包
		...
	STATUS阶段
		一个 usb 控制 事务
			令牌包 + DATA1数据包 + 握手包

枚举过程中的一次 control transfer : set address
枚举过程中包括很多个 control transfer (例如 set address 就是一个 control transfer)

这个 control transfer 中 包括 两个阶段 // 以 set address 为例
	SETUP阶段
		一个 usb 控制 事务
			令牌包(主机发出) + DATA0 数据包(XXX)(主机发出) + 握手包(设备发出) // 数据中为8字节的USB标准设备请求
	STATUS阶段
		一个 usb 控制 事务
			令牌包(主机发出) + DATA1数据包(设备发出) + 握手包(主机发出)

下图 为 set address ,设置的地址值为 14 ,对应 该文中的 “3.3 如果第一阶段数据传输方向为主机到设备(数据长度为0)”
在这里插入图片描述

一次 control transfer 中的 “USB标准设备请求”
XXX 包是个数据包,除了PID域,8个字节数据,是 一次控制传输的最重点数据
这8个字节 是 控制传输的SETUP过程(DATA0 数据包(XXX)) 通过 默认控制端点0发出的.
8个字节由5个字段构成(字段是标准请求命令的数据部分)
结构如下(括号中的数字表示字节数,首字母bm,b,w分别表示位图、字节,双字节):
bmRequestType(1)+bRequest(1)+wvalue(2)+wIndex(2)+wLength(2)

在这里插入图片描述
在这里插入图片描述

USB 2.0 USB mouse 插入打印
  • ok6410
# usb 1-1: new full-speed USB device number 4 using s3c2410-ohci
input: GTech MI wireless mouse Mouse as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input10
input: GTech MI wireless mouse as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input11
input: GTech MI wireless mouse Consumer Control as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input12
input: GTech MI wireless mouse System Control as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input13
hid-generic 0003:2717:5001.0003: input: USB HID v1.10 Mouse [GTech MI wireless mouse] on usb-s3c24xx-1/input0

# 
# usb 1-1: USB disconnect, device number 4

动态打印支持的模块
usbhid
ohci_s3c2410
ohci_hcd
usbcore


# s3c2410-ohci s3c2410-ohci: rhsc
usb usb1: usb wakeup-resume
usb usb1: usb auto-resume
s3c2410-ohci s3c2410-ohci: wakeup root hub
hub 1-0:1.0: hub_resume
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,16b5695b,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00010101 CSC PPS CCS
usb usb1-port1: status 0101 change 0001
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2301,0x0010,0x0001,16b5695b,0000)
s3c2410-ohci s3c2410-ohci: rhsc
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0002,16b5695b,0004)
hub 1-0:1.0: state 7 ports 2 chg 0002 evt 0000
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,16b5695b,0004)
usb usb1-port1: status 0101, change 0000, 12 Mb/s
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2303,0x0004,0x0001,00f4222b,0000)
s3c2410-ohci s3c2410-ohci: rhsc
s3c2410-ohci s3c2410-ohci: rhsc
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,00f4222b,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2301,0x0014,0x0001,00f4222b,0000)
usb 1-1: new full-speed USB device number 4 using s3c2410-ohci
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2303,0x0004,0x0001,00f4222b,0000)
s3c2410-ohci s3c2410-ohci: rhsc
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,00f4222b,0004)
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00100103 PRSC PPS PES CCS
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2301,0x0014,0x0001,00f4222b,0000)
usb 1-1: skipped 1 descriptor after interface
usb 1-1: default language 0x0409
usb 1-1: udev 4, busnum 1, minor = 3
usb 1-1: usb_probe_device
usb 1-1: configuration #1 chosen from 1 choice
usb 1-1: adding 1-1:1.0 (config #1, interface 0)
usbhid 1-1:1.0: usb_probe_interface
usbhid 1-1:1.0: usb_probe_interface - got id
input: GTech MI wireless mouse Mouse as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input10
input: GTech MI wireless mouse as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input11
input: GTech MI wireless mouse Consumer Control as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input12
s3c2410-ohci s3c2410-ohci: link ed fd0534d8 branch 0 [16us.], interval 2
input: GTech MI wireless mouse System Control as /devices/platform/s3c2410-ohci/usb1/1-1/1-1:1.0/0003:2717:5001.0003/input/input13
hid-generic 0003:2717:5001.0003: input: USB HID v1.10 Mouse [GTech MI wireless mouse] on usb-s3c24xx-1/input0
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,43ef6e6f,0004)



拔出
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 
# 
# 
# s3c2410-ohci s3c2410-ohci: rhsc
hub 1-0:1.0: state 7 ports 2 chg 0000 evt 0002
s3c2410-ohci s3c2410-ohci: urb 18a25830 path 1 ep1in 5c160000 cc 5 --> status -62
s3c2410-ohci s3c2410-ohci: urb 18a25830 td e317df41 (1) cc 5, len=0/8
s3c2410-ohci s3c2410-ohci: unlink ed fd0534d8 branch 0 [16us.], interval 2
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,59b0b091,0004)
usbhid 1-1:1.0: retrying intr urb
s3c2410-ohci s3c2410-ohci: link ed fd0534d8 branch 0 [16us.], interval 2
s3c2410-ohci s3c2410-ohci: urb 18a25830 path 1 ep1in 5c160000 cc 5 --> status -62
s3c2410-ohci s3c2410-ohci: urb 18a25830 td 9170fc27 (1) cc 5, len=0/8
s3c2410-ohci s3c2410-ohci: unlink ed fd0534d8 branch 0 [16us.], interval 2
s3c2410-ohci s3c2410-ohci: GetStatus roothub.portstatus [0] = 0x00030100 PESC CSC PPS
usbhid 1-1:1.0: retrying intr urb
s3c2410-ohci s3c2410-ohci: link ed fd0534d8 branch 0 [16us.], interval 2
s3c2410-ohci s3c2410-ohci: urb 18a25830 path 1 ep1in 5c160000 cc 5 --> status -62
s3c2410-ohci s3c2410-ohci: urb 18a25830 td e317df41 (1) cc 5, len=0/8
s3c2410-ohci s3c2410-ohci: unlink ed fd0534d8 branch 0 [16us.], interval 2
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2301,0x0010,0x0001,59b0b091,0000)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0x2301,0x0011,0x0001,59b0b091,0000)
usb usb1-port1: status 0100, change 0003, 12 Mb/s
usb 1-1: USB disconnect, device number 4
usb 1-1: unregistering device
usb 1-1: unregistering interface 1-1:1.0
usb 1-1: usb_disable_device nuking all URBs
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,7a4db320,0004)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,7a4db320,0004)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,7a4db320,0004)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,7a4db320,0004)
s3c2410-ohci s3c2410-ohci: s3c2410_hub_control(3628197c,0xa300,0x0000,0x0001,7a4db320,0004)
usb usb1-port1: debounce total 100ms stable 100ms status 0x100
hub 1-0:1.0: hub_suspend
usb usb1: bus auto-suspend, wakeup 1
s3c2410-ohci s3c2410-ohci: suspend root hub

  • x86主机

[19204.025543] xhci_hcd 0000:00:14.0: Port change event, 3-8, id 8, portsc: 0x206e1
[19204.025563] xhci_hcd 0000:00:14.0: handle_port_status: starting usb3 port polling.
[19204.025852] hub 3-0:1.0: state 7 ports 10 chg 0000 evt 0100
[19204.025876] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x206e1, return 0x10101
[19204.026006] xhci_hcd 0000:00:14.0: clear port8 connect change, portsc: 0x6e1
[19204.026028] usb usb3-port8: status 0101, change 0001, 12 Mb/s
[19204.026040] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x6e1, return 0x101
[19204.060035] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x6e1, return 0x101
[19204.096065] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x6e1, return 0x101
[19204.104031] xhci_hcd 0000:00:14.0: xhci_hub_status_data: stopping usb3 port polling
[19204.132066] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x6e1, return 0x101
[19204.172082] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x6e1, return 0x101
[19204.172117] usb usb3-port8: debounce total 100ms stable 100ms status 0x101
[19204.172133] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.172165] xhci_hcd 0000:00:14.0: Slot 8 output ctx = 0x1faa6000 (dma)
[19204.172174] xhci_hcd 0000:00:14.0: Slot 8 input ctx = 0x1f71a000 (dma)
[19204.172185] xhci_hcd 0000:00:14.0: Set slot id 8 dcbaa entry 00000000149c4714 to 0x1faa6000
[19204.172241] xhci_hcd 0000:00:14.0: set port reset, actual port 3-8 status  = 0x791
[19204.227281] xhci_hcd 0000:00:14.0: Port change event, 3-8, id 8, portsc: 0x200603
[19204.227303] xhci_hcd 0000:00:14.0: handle_port_status: starting usb3 port polling.
[19204.244115] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x200603, return 0x100103
[19204.244156] xhci_hcd 0000:00:14.0: clear port8 reset change, portsc: 0x603
[19204.304131] usb 3-8: new full-speed USB device number 9 using xhci_hcd
[19204.304150] xhci_hcd 0000:00:14.0: Set root hub portnum to 8
[19204.304157] xhci_hcd 0000:00:14.0: Set fake root hub portnum to 8
[19204.304163] xhci_hcd 0000:00:14.0: udev->tt = 000000004e0d80b6
[19204.304170] xhci_hcd 0000:00:14.0: udev->ttport = 0x8
[19204.304178] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.304201] xhci_hcd 0000:00:14.0: Successful setup context command
[19204.304210] xhci_hcd 0000:00:14.0: Op regs DCBAA ptr = 0x0000010e4a8000
[19204.304217] xhci_hcd 0000:00:14.0: Slot ID 8 dcbaa entry @00000000149c4714 = 0x0000001faa6000
[19204.304225] xhci_hcd 0000:00:14.0: Output Context DMA address = 0x1faa6000
[19204.304231] xhci_hcd 0000:00:14.0: Internal device address = 0
[19204.304518] xhci_hcd 0000:00:14.0: Waiting for status stage event
[19204.304559] xhci_hcd 0000:00:14.0: set port reset, actual port 3-8 status  = 0x791
[19204.352131] xhci_hcd 0000:00:14.0: xhci_hub_status_data: stopping usb3 port polling
[19204.359592] xhci_hcd 0000:00:14.0: Port change event, 3-8, id 8, portsc: 0x200603
[19204.359610] xhci_hcd 0000:00:14.0: handle_port_status: starting usb3 port polling.
[19204.372170] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x200603, return 0x100103
[19204.372211] xhci_hcd 0000:00:14.0: clear port8 reset change, portsc: 0x603
[19204.432182] xhci_hcd 0000:00:14.0: Resetting device with slot ID 8
[19204.432200] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.432213] xhci_hcd 0000:00:14.0: Completed reset device command.
[19204.432224] xhci_hcd 0000:00:14.0: Can't reset device (slot ID 8) in default state
[19204.432231] xhci_hcd 0000:00:14.0: Not freeing device rings.
[19204.432239] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.432395] xhci_hcd 0000:00:14.0: Successful setup address command
[19204.432411] xhci_hcd 0000:00:14.0: Op regs DCBAA ptr = 0x0000010e4a8000
[19204.432419] xhci_hcd 0000:00:14.0: Slot ID 8 dcbaa entry @00000000149c4714 = 0x0000001faa6000
[19204.432429] xhci_hcd 0000:00:14.0: Output Context DMA address = 0x1faa6000
[19204.432435] xhci_hcd 0000:00:14.0: Internal device address = 8
[19204.453286] usb 3-8: skipped 1 descriptor after interface
[19204.453512] xhci_hcd 0000:00:14.0: Waiting for status stage event
[19204.453547] usb 3-8: default language 0x0409
[19204.454003] xhci_hcd 0000:00:14.0: Waiting for status stage event
[19204.454293] xhci_hcd 0000:00:14.0: Waiting for status stage event
[19204.454330] usb 3-8: udev 9, busnum 3, minor = 264
[19204.454340] usb 3-8: New USB device found, idVendor=2717, idProduct=5001, bcdDevice= 1.00
[19204.454348] usb 3-8: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[19204.454355] usb 3-8: Product: MI wireless mouse
[19204.454360] usb 3-8: Manufacturer: GTech
[19204.454654] usb 3-8: usb_probe_device
[19204.454667] usb 3-8: configuration #1 chosen from 1 choice
[19204.454685] xhci_hcd 0000:00:14.0: add ep 0x81, slot id 8, new drop flags = 0x0, new add flags = 0x8
[19204.454694] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 000000003f484a32
[19204.454705] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.454904] xhci_hcd 0000:00:14.0: Successful Endpoint Configure command
[19204.454943] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.454957] xhci_hcd 0000:00:14.0: Stopped on No-op or Link TRB for slot 8 ep 2
[19204.454971] xhci_hcd 0000:00:14.0: // Ding dong!
[19204.455400] usb 3-8: adding 3-8:1.0 (config #1, interface 0)
[19204.455485] usbhid 3-8:1.0: usb_probe_interface
[19204.455492] usbhid 3-8:1.0: usb_probe_interface - got id
[19204.459790] input: GTech MI wireless mouse Mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:2717:5001.0007/input/input41
[19204.516381] input: GTech MI wireless mouse as /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:2717:5001.0007/input/input42
[19204.517098] input: GTech MI wireless mouse Consumer Control as /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:2717:5001.0007/input/input43
[19204.517845] input: GTech MI wireless mouse System Control as /devices/pci0000:00/0000:00:14.0/usb3/3-8/3-8:1.0/0003:2717:5001.0007/input/input44
[19204.518469] usbhid 3-8:1.0: looking for a minor, starting at 0
[19204.518783] hid-generic 0003:2717:5001.0007: starting pid init
[19204.518794] hid-generic 0003:2717:5001.0007: not a PID device, no output report
[19204.518834] hid-generic 0003:2717:5001.0007: input,hiddev0,hidraw0: USB HID v1.10 Mouse [GTech MI wireless mouse] on usb-0000:00:14.0-8/input0
[19204.596205] xhci_hcd 0000:00:14.0: xhci_hub_status_data: stopping usb3 port polling

------------------------

[19222.137815] xhci_hcd 0000:00:14.0: Port change event, 3-8, id 8, portsc: 0x202a0
[19222.137837] xhci_hcd 0000:00:14.0: handle_port_status: starting usb3 port polling.
[19222.138148] hub 3-0:1.0: state 7 ports 10 chg 0000 evt 0100
[19222.138172] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x202a0, return 0x10100
[19222.138306] xhci_hcd 0000:00:14.0: clear port8 connect change, portsc: 0x2a0
[19222.138328] usb usb3-port8: status 0100, change 0001, 12 Mb/s
[19222.138338] usb 3-8: USB disconnect, device number 9
[19222.138345] usb 3-8: unregistering device
[19222.138350] usb 3-8: unregistering interface 3-8:1.0
[19222.138530] xhci_hcd 0000:00:14.0: Cancel URB 000000006b4cfb67, dev 8, ep 0x81, starting at offset 0x4a2c000
[19222.138547] xhci_hcd 0000:00:14.0: // Ding dong!
[19222.138554] xhci_hcd 0000:00:14.0: shutdown urb ffff8a1d8eedd6c0 ep1in-intr
[19222.138569] xhci_hcd 0000:00:14.0: Stopped on Transfer TRB for slot 8 ep 2
[19222.138578] xhci_hcd 0000:00:14.0: Removing canceled TD starting at 0x4a2c000 (dma) in stream 0 URB 000000006b4cfb67
[19222.138589] xhci_hcd 0000:00:14.0: Set TR Deq ptr 0x4a2c010, cycle 1

[19222.138596] xhci_hcd 0000:00:14.0: // Ding dong!
[19222.138602] xhci_hcd 0000:00:14.0: xhci_giveback_invalidated_tds: Keep cancelled URB 000000006b4cfb67 TD as cancel_status is 2
[19222.138612] xhci_hcd 0000:00:14.0: Successful Set TR Deq Ptr cmd, deq = @04a2c010
[19222.138619] xhci_hcd 0000:00:14.0: xhci_handle_cmd_set_deq: Giveback cancelled URB 000000006b4cfb67 TD
[19222.138626] xhci_hcd 0000:00:14.0: Giveback URB 000000006b4cfb67, len = 0, expected = 8, status = -115
[19222.211316] xhci_hcd 0000:00:14.0: xhci_hub_status_data: stopping usb3 port polling
[19222.231393] usbhid 3-8:1.0: removing 0 minor
[19222.233828] usb 3-8: usb_disable_device nuking all URBs
[19222.233834] xhci_hcd 0000:00:14.0: xhci_drop_endpoint called for udev 000000003f484a32
[19222.233844] xhci_hcd 0000:00:14.0: drop ep 0x81, slot id 8, new drop flags = 0x8, new add flags = 0x0
[19222.233847] xhci_hcd 0000:00:14.0: xhci_check_bandwidth called for udev 000000003f484a32
[19222.233850] xhci_hcd 0000:00:14.0: // Ding dong!
[19222.234540] xhci_hcd 0000:00:14.0: Successful Endpoint Configure command
[19222.234649] xhci_hcd 0000:00:14.0: // Ding dong!
[19222.234673] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x2a0, return 0x100
[19222.267359] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x2a0, return 0x100
[19222.303371] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x2a0, return 0x100
[19222.339403] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x2a0, return 0x100
[19222.375416] xhci_hcd 0000:00:14.0: Get port status 3-8 read: 0x2a0, return 0x100
[19222.375429] usb usb3-port8: debounce total 100ms stable 100ms status 0x100

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
USB(Universal Serial Bus)是一种用于连接电脑和外部设备的标准接口,它有自己的通信协议USB枚举是指在插入USB设备时,计算机系统自动检测并识别该设备的过程。 首先,当我们将USB设备插入计算机的USB端口时,计算机会发送一个复位信号给USB设备,以便设备知道计算机已经察觉到它的存在。USB设备在接收到复位信号后会执行一些初始化操作,并返回一个握手信号给计算机。 接下来,计算机会发送一个叫作Get Descriptor的命令给USB设备,这个命令的作用是要求USB设备返回一些描述该设备的信息,比如设备的厂商ID、产品ID、设备类别等。USB设备收到这个命令后会返回这些信息给计算机。 然后,计算机会发送一个Set Configuration的命令给USB设备,这个命令的目的是告诉USB设备要使用哪种配置,因为有些USB设备可以有多种不同的配置。USB设备在接收到Set Configuration命令后会根据配置来进行初始化,并返回一个确认信号给计算机。 最后,计算机会发送一些其他的命令给USB设备,比如读取和写入数据的命令,以及其他特定的设备命令,这些命令的具体内容取决于USB设备的功能和应用。 通过上述的过程,USB设备和计算机建立起了通信链接,USB设备可以向计算机提供相应的功能和服务。USB枚举过程中的各个步骤确保了设备和计算机之间的正常通信和数据传输。 总结来说,USB枚举过程是计算机通过一系列的命令向USB设备发出请求,USB设备根据这些请求进行相应的操作,并返回相应的结果给计算机,以实现设备和计算机之间的通信和数据传输。这个过程是USB协议中非常重要的一部分,保证了USB设备的插拔即用的特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值