通信协议之USB

前言

USB也是当前应用比较广泛的设备,本文将挑重点对其做一些概要性的介绍,更详细的了解可以去网上找《圈圈带你学USB》这本书,属于介绍USB的经典之作。

USB分类

1按协议分
Usb1.1 :usb1.1是标准的USB规范,高速方式的传输速率为12Mbps,低速方式的传输速率为1.5Mbps,b/s位传输速度,bps位传输速率。
USB2.0:由USB规范1.1规范演变而来,传输速率达到了480Mbps,足以满足大多数外设的速率要求。
Usb3.0 理论速度大概是5Gbps,实际的话只能根本大不到,但是要比USB2.0快的多
USB3.1 理论速度10Gbps,
注:USB1.0,USB2.0最大输出电流500mA,USB3.0和usb3.1最大输出电流是900mA
2按接口分
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Mini USB和micro usb都分为 TYPE-A 和TPYE-B类型,现在经常见的基本都是B类型的

硬件结构

1.引脚
在这里插入图片描述
USB使用的是四线制,如上图所示,数据传输通过一个差分双绞线进行传输,另外两根是VCC和GND,为了区分,USB电缆中的线用不同颜色标注。
2电平信号
USB是利用差分信号来表示逻辑1和逻辑0的,定义如下

逻辑1      D+大于2.8V and D- <0.3V
逻辑0      D-大于2.8V and D+ <0.3V

3.USB设备插入检测
在这里插入图片描述
如图示,默认主机侧USBD+和D-接了一个下拉电阻,即线上成低电平,当接入低速设备时(低速设备D-接了一个上拉电阻),若检测到D-变为高电平且持续一段时间,则认为接入低速设备,同理,由于全速设备D+接了一个上拉电阻,则检测到D+变为高电平持续一段时间,认为全速设备接入。此处要说明的是低速设备指的是传输速率1.5Mbps,全速设备指的是12Mbps,高速设备指的是480Mbps.USB总线会根据外设情况自由地切换传输速度。

四种传输类型

1.控制传输
控制传输,支持外设与主机之间的控制,状态,配置等信息的传输,为外设与主机之间提供一个控制通道,每种外设都支持控制传输类型,这样主机与外设之间就可以传送配置和命令状态信息。
2.同步传输
又称等时传输,支持有周期性,有限的时延和带宽,且数据传输速率不变的外设与主机间的数据传输,该类型五差错校验,故不能保证正确的数据传输,支持像计算机-电话集成系统和音频系统与主机的数据传输。
3.中断传输
支持像游戏手柄,鼠标和键盘等输入设备,这些设备与主机间数据传输量小,无周期性,但对响应时间敏感,要求马上响应。
4.块传输
支持打印机,扫描仪,数码相机等外设,这些外设与主机间传输的数据量大,USB满足带宽的情况下才进行该类型的数据传输。

描述符

1.USB加载传输
a.当USB设备接入HUB或ROOT HUB后,主机控制器和主机软件能自动检测到设备的接入。
b.然后主机软件读取一系列的数据用于确认设备特征,即读取各种描述符
c.之后主机分配给外设一个单独的地址。地址是动态分配的,每次可能不同。
d.在分配完地址之后对设备进行初始化,初始化完成以后就可以对设备进行IO操作了。
2.什么是描述符
USB的描述符实质上就是对于一个具体设备所有属性,配置,能力等等所有信息的综合,这是一个将数据与数据处理过程分开来的典型例子;设备描述符:主要是指明设备的类型,使用的协议,VID,PID,设备版本号等。

设备描述符:  代表一个USB设备
配置描述符:  说明各个配置的特性,所含接口个数(例如配置成低功耗模式和高功耗模式各占一个配置)
接口描述符:  说明接口的特性(例如光驱使用文件传输时,使用大容量存储接口,播放CD时使用其音频接口)
端点描述符:  数据传输就是在主机和USB设备各个端点之间进行通信的,端点一般由USB接口芯片提供,每个端点的传输方向一般固定。0端点比较特殊(IN,OUT)且只支持控制传输。
字符串描述符:说明一些专用信息,如制造商名称,设备序列号,对USB设备而言可选。

通常一个设备描述符包含多个配置描述符,一个配置描述符包含多个接口描述符,一个接口描述符包含多个端点描述符。

其他一些知识点

1.USB存不存在总线仲裁
当多个从设备主动申请总线访问时需要考虑总线仲裁,但是USB通信是master-slave*N的结构,无论是发送还是接受都是主机先发起,所以不存在总线仲裁的问题。
2.ST进行USB相应库
目前ST标准外设库里面是没有USB库的,CUBE开发库里面有,但是呢,USB有独立于标准外设库之外的相应库使用,名字是“USB-FS 设备固件库”,下面这个链接是使用CUBEMX生成自定义HID的教程
https://blog.csdn.net/weixin_44341293/article/details/88375857

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

foreverwlh

你的鼓励将是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值