1.
HID(Human Interface Device)人机接口设备类别是Windows 最早支持的USB 类别。由其名称可以了解HID 设备是计算机直接与人交互的设备,例如键盘、鼠标和游戏杆等。不过HID 设备不一定要有人机接口,只要符合HID 类别规范,就都是HID 设备。
MSC USB 大容量存储设备类(The USB mass storage device class)是一种计算机和移动设备之间的传输协议,它允许一个通用串行总线(USB)设备来访问主机的计算设备,使两者之间进行文件传输。
USB 海量存储设备类包括通信协议定义和通用串行总线运行的计算。本标准规定了各种存储设备的接口。通过这个标准的计算机连接到的设备包括:移动硬盘、U 盘、数码相机、各种数字音频播放器和便携式媒体播放器、手机。
VCP 是USB 的通信类(CDC),实现USB 转串口的功能,在PC 端通过USB接口是虚拟一个COM 口,实现USB 转串口的数据传输。
2. USB Overview
USB 设备首次与主机相连时,将启动 USB 枚举过程。枚举是设备和主机间进行的信息交换过程,包含用于识别设备的
信息。此外,枚举过程还分配设备地址、读取描述符(作为提供有关设备信息的数据结构),并分配和加载设备驱动程
序。整个过程需要数秒时间。 下图 显示的是通用枚举过程流程图。两个文件属于主机端,用于枚举和加载驱动程序过程。
- INF — 包含了安装设备时所需全部信息(驱动程序的名称和位置、 Windows 注册信息和驱动程序版本信息)的文
本文件。
- SYS — 驱动程序需要该文件才可有效与 USB 设备进行通信。
设备被枚举后, 主机将负责总线上的全部设备之间的数据通信流向。因此,如果没有主控制器的请求,所有设备均无法
传输数据。
数据从主机转移到外设的操作是 OUT 传输。数据从外设转移到主机的操作是 IN 传输。
3. USB 通信过程经过了 D+和 D-线上的各种不同信号状态。某些状态发送数据,而其他则作为特殊信号状态使用。下面
内容介绍了这些状态,它们的参考列表如下表所示。
差分 0 和差分 1: 这两个状态用于通过 USB 进行的通用数据通信。当 D+线为高电平、 D-线为低电平时,该状态为差
分 1。当 D+线为低电平、 D-线为高电平时,该状态为差分 0。
J 状态和 K 状态: 除了差分信号外, USB 规范还定义了其他两个差分状态: J 状态和 K 状态。它们的定义由设备速度
决定。在全速和高速设备上, J 状态为差分 1 而 K 状态是差分 0。在低速设备上,该情况则相反。
单端 0( SE0): 在 D+和 D-均为低电平时所发生的状态。该状态表示一个复位、断连或数据包的结束。
单端 1( SE1): 在 D+和 D-均为高电平时发生的状态。不会故意生成该状态,并且不能在 USB 设计中出现。
闲置: 必须在发送一个数据包的前后发生的状态。如果一个数据线为低电平,而另一个数据线为高电平,则表示闲置
状态。高电平和低电平的定义由设备的速度决定。在全速设备上,闲置状态是指 D+为高电平、 D-为低电平。在低速设
备上,该情况则相反。
恢复: 用于使设备从挂起状态唤醒。通过发送一个 K 状态实现该操作。
数据包的开始( SOP): 当 D+和 D-线从闲置状态转换到 K 状态时,将在开始低速或全速数据包前发生。
数据包的结束( EOP): 在低速或全速数据包结束时发生。当 SE0 状态持续两位时间(后面的内容将介绍位时间)以
及 J 状态持续 1 位时间时,将发生 EOP。
复位: 在 SE0 状态持续 10 ms 时发生。在 SE0 至少持续 2.5 ms 后,该设备会复位,并开始进入复位状态。
保持活动( Keep Alive): 在低速设备中使用的信号。低速设备缺少了一个帧起始数据包(用于防止挂起状态)。
每次经过 1 ms,它们都会使用一个 EOP 来防止设备进入挂起状态。
4.不同 USB 端口和连接器
Mini 和 Micro 连接器具有五个(而不是 4 个)引脚。额外引脚是 ID 引脚,用于识别 OTG 应用中的主机和
设备。
2. 全速设备硬件电路
a b
设计目的:主机判断是低速设备还是全 速设备。D+被上拉是全速设备,D-被上拉是低速设备。
SoftConnect USB 连接可通过一个 1.5kΩ 上拉电阻将 D+(对于全速设备)拉为高电平来实现。在确立与 USB 连接之前,软件可以使用 SoftConnect 特性来完成其初始化序列。该特性还可以在无需拔下 电缆的情况下执行 USB 总线连接的重新初始化。 在使用 SoftConnect 特性时,CONNECT 信号应控制一个外部开关,这个开关与 D+和+3.3V 之间的 1.5kΩ 电阻相连。然后,通过使用 SIE 设置设备状态命令来对 CON 位执行写操作,从而 实现软件对 CONNECT 信号的控制。
GoodLink GoodLink 技术可用于指示 USB 连接是否良好。在成功地对设备进行清点和配置之后,LED 指示器将永久接通。在挂起期间,LED 是关闭的。 该特性对 USB 设备的状态提供一个用户友好的指示。它是一个非常有用的区域诊断工具, 可以将故障设备分离出来。 在使用 GoodLink 特性时,UP_LED 信号用于控制 LED。UP_LED 信号使用 SIE 配置设备命 令来控制
图a 当USBCON置0的时,USB_D+为高,设备为全速。
图b 反之
在LPC1768D-被上拉是低速设备,发现主机(HOST)不能和Device连接。还需要进一步研究
2. lpc1768_rt-thread-3.0.3+usbDevice (virtual serial port)
3. USB2.0 串行通用总线2.0 介绍
AN57294 USB 101 An Introduction to Universal Serial Bus 2.0
https://download.csdn.net/download/nicole088/10769976
4. 引用
[转载] https://blog.csdn.net/king_jie0210/article/details/76713938 ( Originator king_jie0210)
作者整理了 ST官网的“USB CDC类入门培训” 的资料,非常好。