HID

简介

本篇文章是关于 HID 相关协议的介绍,人机交互 Human Interface Device) 其核心优势在于‌免驱兼容‌:操作系统(Windows、Linux、macOS、Android等)内置了标准 HID 驱动,无需安装额外软件即可即插即用

USB HID

注:
  1. 下面关于 USB HID 进行的相关记录学习都是基于 USB2.0 (部分可能会拿 USB3.0 进行对比)
  2. 默认没有提到的都是基于全速模式 也就是理论带宽=12Mbps
接口版本 工作模式 理论带宽
USB2.0 低速模式 (Low-Speed) 1.5Mbps
全速模式 (Full-Speed) 12Mbps
高速模式 (High-Speed) 480Mbps
USB3.0 (USB3.1 Gen1/USB3.2 Gen1) 超高速模式 (SuperSpeed) 5000Mbps
USB3.1 Gen2 (USB3.2 Gen2) 超高速增强模式 (SuperSpeed+) 10000Mbps
USB3.2 Gen2x2 双通道超高速模式 20000Mbps

接口版本 功能分类 线缆颜色 引脚 作用
USB2.0 VBUS(电源+) 1 5V供电
D-(数据-) 2 差分数据
D+(数据+) 绿 3 差分数据
GND(地线) 4 接地
USB3.0 VBUS(电源+) 1 5V供电
D-(数据-) 2 差分数据
D+(数据+) 绿 3 差分数据
GND(地线) 4 接地
SSTX-(发送-) 5 发送差分对
SSTX+(发送+) 6 发送差分对
GND(信号地) 屏蔽层 7 屏蔽接地
SSRX-(接收-) 8 接收差分对
SSRX+(接收+) 9 接收差分对

注:

  1. USB3.0 有 9 个引脚(USB2.0 有 4 个引脚),并且前面 4 个和 USB2.0 完成想通,所以 USB3.0 是完全兼容 USB2.0 的
  2. 我们主机就是通过 D- D+ 的差分信号来区分 USB2.0 3.0 的
  3. D- D+ 是不可以接反的,正常情况下虽然不会烧掉,但是无法工作(D+ D-默认都是低电平)
  4. OTG中会多一根身份识别(ID)线,也就是会多一个引脚,ID引脚,专门用来实现 OTG 双向角色切换,让手机|电脑|平板 / 开发板既能当主机、也能当从机。

注:

  1. 这里以 2.0 为例,当设备插入到主设备后,D+ D- 原本默认都是低电平,然后至少有一个引脚电平被拉高,主机就可以知道我们的设备到底支持哪些工作模式了
  2. 电脑|手机|平板 是如何知道我们的 USB 设备是什么时候连接上的或者什么时候拔掉的?
  • 在我们插上后会拉高 D+ | D- 的电平(默认是低电平 0),当被拉高后保持一段时间以后就被认定为是连接了,拔掉了就是没有这个 D+ | D- 的高电平了,也就被认定是断开了
  1. USB 分为主从设备,必须由主机发起询问,从机才能回应(一般的设计是把我们的电脑|手机|平板这些作为主机,自制的 USB HID 设备作为从机,由电脑|手机|平板 作为主机发起通讯)
  1. 枚举就是一个初始化的行为,是指将一个 USB 设备插入到主机(电脑|手机|平板)后,主机读取 USB 配置信息,并正常使用该 USB 设备的过程
  2. 具体行为如下:
  • 电脑|手机|平板的 USB 接口 D- D+ 默认为低电平,我们插入 USB 设备后,致使 D- 或 D+引脚的电平被拉高,这样电脑就会得到我们插入的 USB 设备支持的工作模式(速率支持多少)
  • 电脑|手机|平板 USB 发出 RESET 信号,USB 设备收到后准备开始初始化
  • 电脑|手机|平板 USB 发出获取信息信号,USB 设备回应信息(重点学习 )
  • 完成枚举过程,正常通讯。