HID class request.

1.get report.

HID class request.

2.set report

HID class request.

report request.

HID class request.

Get report范例:

下面这张图是Host跟Device来要设备描述符.

HID class request.

USB主机向设备控制器请求数据时,用户需要预先准备相关的数据到指定的断点缓存.在将数据写入缓冲区后,用户需要写入实际数据长度到指定的MAXPLD寄存器.

一旦这个寄存器被写入数据,内部信号IN_Rdy会被置位,当收到主机发送过来的IN token之后,缓冲数据将透过相应断点被发送,在传送指定数据之后,信号'IN_Rdy'会由硬件自动清除.

HID class request.

整个数据传输可以分为三个部分.

1.SETUP-->这个阶段用来表明data传输方向以及请求什么数据(Device ACK)

2.IN-->传输data(Host ACK)

3.OUT-->0byte空封包结束传输(Device ACK)

Set report范例:

HID class request.

USB主机要发送数据到设备控制器的OUT断点(可以是控制断点EP0也可以是自定义OUTPUT断点),硬件将这些数据存在指定的断点缓存里,通信完成后,硬件在相关的MAXPLD寄存器记录数据长度,并清除'OUT_Rdy'信号,这将会避免硬件在用户没有取走当前数据时接收下一个数据.一旦用户处理了这次通信时,由软件写入相关的寄存器MAXPLD来设置'OUT_Rdy'信号以接收下一次通信.

HID class request.

整个传输分为两个部分.

1.SETUP-->同上(Device ACK)

2.IN-->设备发送0byte空封包来结束此次通信(Host ACK)

Notethat:从USB主机到USB设备的中断输出数据传输是可选的,当不支持中断输出数据传输时,USB主机通过控制管道将数据传输给USB设备.

上一篇:[JOI 2015 Final] 分蛋糕 2


下一篇:js传递数组