关于USB接口的类型及结构 usb接口类型图解

USB接口
首先看一看 USB 的接口,当你看到这些接口时 , 你应该知道,哦,那是 USB 接口 。不然学完了USB , USB 接口都不认识那就很尴尬了 。

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
看到这些接口是不是很熟悉?常用的接口有 Type A 接口,这个接口一般直接插在电脑上的,Type B 接口比较少见,目前比较常见的是 Mini-B、Micro-B接口,前者在 MP3 之类的设备中比较常见,当然在我们工程师中的调试器中也经常使用,后者多用于手机等设备 , 不过目前大部分手机接口用 Type-C接口代替了:

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
这种接口可以正反插,并且能提供比其它接口更大的电流,速度更快 , 所以今天可以看到越来越多的设备开始支持 Type-C了 。我们可以看看这些接口内部的引脚分布情况(不包含 Type-C 接口,这个接口引脚很多):

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
第四引脚在某些接口中可能没有,其他引脚都是存在的 。Vbus 和 GND 两个硬件用于供电,提供恒定的 4.4 ~5.25 V电源(当 USB 为设备提供 5.25 V 电源时,数据线工作在 3.3 V),当设备使用总线供电时,将由这两根引脚提供所需电源,当然总线提供的电流比较有限,所以如果说总线不足以提供足够的电源 , 那么就需要使用外部供电 。
【关于USB接口的类型及结构 usb接口类型图解】D-、D+两个引脚用于数据传输,类似串口的Tx、Rx数据线 , 不同的是,USB采用差分方式传输,使用双绞线,并且在线上传输的数据编码远比串口的复杂,这个将在下节介绍 。

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
这里需要注意一下线的颜色,一般的厂家生产USB数据线时会按照标准来生产,但是有些厂家却不一定,红色不一定是电源,黑色不一定就是地,使用的时候需要注意确认 。标准的USB数据线外部一般会有屏蔽线包裹,防止外部干扰,但是有些厂家偷工减料,可能并没有屏蔽线,甚至连D-、D+数据线都没有,只提供电源线 。
(图片来源于网络,外层白色包裹为屏蔽线)因为采用差分传输,并且只有两个引脚,所以总线为半双工传输,即同一时刻只能发送或接收 。同时 USB 采用一主多从模式,即USB网络中只有一个主机,其他都是从机,也就是设备 。
USB 历史版本
USB经过多年的发展,经历了多个版本 , 初始版本 1.0,于1996年完成,支持低速(LS)模式(1.5Mb/s)和全速(FS)模式(12Mb/s) 。USB1.1规范于 1998 年面世,改进了 1.0,但速度上没有改变 。USB2.0 在2000 年问世,增加了新的速度模式,即高速(HS)模式,最高支持 480 Mb/s 。USB3.0在2008年发布,传输速率 5Gb/s 。这些版本保持向后兼容的特性,即USB3.0的主机接口可以接入 USB 1.0、2.0 的设备 , 但是受到设备本身的速度影响,所以最终的速度由低版本速度决定 。

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
通过数据(D+或D-)线上的上拉电阻的位置 , 主机可以识别低速设备和全速设备,而高速设备会在之后移除上拉电阻 。
在 STM32F103 中,支持 USB 2.0接口  , 但是只支持全速模式下的2.0,即最大速度只有 12 Mb/s,换算到字节的话,只有 1.5 MB/s , 除去USB本身的协议开销的话(类似串口中的起始位、结束位开销,但USB比这个复杂的多),最大有效数据带宽差不多在1.2 MB/s(我们接下来要学习的就是全速模式) 。
所以不要认为 USB2.0 的接口一定支持高速模式 。在 STM32F4 中,USB开始支持高速模式,并且支持 OTG,这个模式使得USB 设备既可以当做主机也可以当设备使用 。现在的手机一般都支持 OTG,即通过一根转接线,即可将U盘之类的设备插入手机中使用 , 所以当你的手机触摸屏坏了,别着急,插上无线鼠标键盘套餐 , 照样玩手机 。当然这只是应急使用 , 真正来说,没谁会随身带着鼠标键盘的 。
HUB 与 USB 拓扑结构
除了常见的设备外,在 USB 网络中,还有一种特殊的设备,即 HUB(集线器),这种设备只有一个作用,就是将一个 USB 接口分成多个 USB 接口(最多 7 个)使用,这样即使你的电脑只有一个USB接口,通过 HUB,你也可以实现多个设备的连接 。HUB对于用户而言是透明的(即用户在使用时不用特别去操作它),而为了实现这种透明,HUB所做的工作要比上述复杂的多 。

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
上图是USB连接图,可以看到,通过 HUB,一个 USB 网络中可以连接非常多的设备(最多 127 个,由 USB 设备7位地址决定),并且由于集线器的时间和电缆传播的延迟,最多只能连接五个 HUB,在层次上表现为上图的 7 层(在全速和高速设备中,最大线缆长度为 5 m,低速设备限制为 3 m) 。
USB网络中的所有设备(包括HUB)都有一个地址,范围 0~127,地址 0 是所有设备在接入 USB 网络时使用的默认地址,当设备完成枚举后,即可拥有新的 USB设备地址,之后所有的通信都将采用新地址通信 。也就是说 ,  USB 设备的地址是动态的,类似网络的IP地址 。
USB 层次结构
下面再来看看 USB 层次结构:

关于USB接口的类型及结构 usb接口类型图解

文章插图
文章插图
在开发时,尤其是软件开发,主要的关注对象是上面两层 , 而底层的实现一般来说都是由硬件自动完成的,比如STM32就帮我们实现了这一层,我们只需要获取底层的数据然后进行相应的处理即可 。