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类入门培训” 的资料,非常好。

通用串行总线 2.0 简介相关推荐

  1. USB(一)——USB通用串行总线基础知识详述

    目录 1. USB简介 2. USB的特性 2.1 USB的性能特点 2.2. USB的电气特性 3.  USB总线系统中的设备 4. USB2.0 传输协议 4.1 包(package)是什么? 4 ...

  2. 2.7通用串行总线 USB Universal Serial Bus

    2.7通用串行总线 USB Universal Serial Bus 1 USB是什么? 2 USB接口特点? 3 USB接口定义 3.1 USB2.0接口定义 3.2 USB3.0接口定义 3.2. ...

  3. linux usb hcd nak,第16章通用串行总线接口(USB)mpc83xx中文手册.doc

    第16章通用串行总线接口(USB)mpc83xx中文手册 第16章 通用串行总线接口 本章介绍MPC8349E的通用串行总线接口(USB).该接口支持许多工业标准.有关这些复杂的工业标准的说明已经超出 ...

  4. 联想笔记本无法识别USB(通用串行总线(USB)的控制器问题)

    首先,我尝试用360驱动大师和驱动人生,更新USB3.0驱动,但是都是提示安装失败,失败的原因是无法找到通用串行总线控制器.同时,我也计划安装通用串行总线控制器,发现网上少之又少,没有这驱动下载.幸好 ...

  5. 多功能时钟电路的设计框图_详解通用串行总线USB,工作原理、接口电路设计

    USB 的英文全称为 Universal Serial Bus,中文含义是通用串行总线,它是一种快速的,双向的,同步传输的廉价的并可以进行热拔插的串行接口.USB 接口使用方便,它可以连接多个不同的设 ...

  6. 小白也能读懂的 ZigBee 3.0 简介

    --作者简介 Michael 前绿米(小米)资深嵌入式软件工程师,7年以上开发经验,曾开发过小米米家网关系统.小米全屋智能家庭中枢M1S等物联网项目: 尤其擅长ZigBee.BLE Mesh.WiFi ...

  7. Universal Serial Bus (USB) - 通用串行总线

    Universal Serial Bus (USB) - 通用串行总线 Universal Serial Bus (USB) is an industry standard that establis ...

  8. Universal Serial Bus (USB ) 通用串行总线

    USB是英文 Universal Serial Bus 的缩写,翻译成中文的含义是" 通用串行总线". USB,是英文 U niversal S erial B us( 通用串行总 ...

  9. 《UG NX8.0中文版完全自学手册》一第1章 UG NX 8.0简介

    本节书摘来自异步社区<UG NX8.0中文版完全自学手册>一书中的第1章,作者 刘昌丽 , 周进,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 UG NX ...

最新文章

  1. SQL Server 一些重要视图3
  2. uniGUI试用笔记(十一)
  3. 常用加密算法的Java实现(一) ——单向加密算法MD5和SHA
  4. P1803 凌乱的yyy / 线段覆盖
  5. html怎么显示返回的图片,想要预览文件或是图片,将后端返回的信息转换为前端可以正常显示的格式...
  6. yum安装 vs 源码编译安装
  7. 出埃及记:摩西劈开红海
  8. 进程queue和线程queue
  9. 【Spring】对象后期处理,BeanPostProcessor
  10. html增值税申报表,关于调整增值税纳税申报有关事项的公告
  11. 防病毒网关、防火墙与防病毒软件功能及部署对比
  12. GDB文件地理数据库和MDB个人地理数据库
  13. PS3模拟器RPCS3无法识别PS3手柄 且无振动的解决办法
  14. AtCoder - ABC 160 - DE(贪心)
  15. 说唱天王 Eminem 自传《The Way I am》3
  16. 慎用!网传一公司用微软雅黑和盗版PS损失近3000万
  17. Cocos2d-x2.0 各种粒子效果详解
  18. xmind打不开java_XMind 无法打开/保存文件
  19. 第六周作业--需求建模
  20. Onvif协议PTZ服务规范(一)PTZ Service Specification

热门文章

  1. 羊、狼、农夫过河 华为OD真题 python
  2. 大话神武服务器维护,神武4月25日维护公告篇:谈门派技能修改
  3. 机器学习3—分类算法之K邻近算法(KNN)
  4. Android anr介绍
  5. TIA博途中通用函数库指令FIFO先入先出的具体使用方法
  6. IDEA(2019.2)启动tomcat时控制台console出现乱码——淇℃伅
  7. oracle中Lpad与Rpad函数
  8. 自媒体怎么做,才能在短时间内变现赚钱?
  9. 数据结构简记✏️ | 二叉树遍历图遍历(动画演示)
  10. 石鼓篆书第一人:吴昌硕数字藏品限量发行!