USB相关知识

1.基本介绍

USB:universal serial bus通用串行总线.
已经有各种通信接口了,为啥还要发展出这玩意呢?其实是为了方便用户的使用,因为早期的电脑鼠标键盘等需要不同的接口,这使得计算机变得复杂,为了方便用户使用,对外的接口大部分用USB代替,故称之为通用。所以USB的发展是历史趋势所需。

2.USB接口

2.1 分类

按物理接口类型分,可分为type-A, type-B, type-C(支持正反插),字母越大体积越小。如下图所示:
在这里插入图片描述
之所以用不同的接口,是不同的应用场合需求所致。
当然还有其他类型的接口,由于没有以上三种常用,这里就不介绍了。
按标准分,可分为USB1.0,USB2.0,USB3,USB4(最新)。不同的版本传输速率和最大功率不一样,数字越大,性能越优。总结如下:
在这里插入图片描述
之所以速率,功率有了提升,其实还是从硬件上做了改变。比如为什么USB 3.0会比USB2.0的速率要快呢?主要是在接口上增加了5条线路,一路GND,两对差分的Rx,Tx,这实现了高速。
下面来区分下不同的接口标准。以DELL主机为例说明。
1:是TYPE-A型USB2.0接口标准
2:是TYPE-A型USB2.0接口标准,支持关机充电,不过需在BIOS里进行修改激活,默认为关。(图标为开关机,也是此作用。)
3:SS(Super speed)是TYPE-A型USB3.0接口标准,内芯一般为蓝色。相对了USB2.0,USB3.0有9pin,增加的5pin就是它提速的原因。
4:是TYPE-C型USB3.0接口标准。
在这里插入图片描述

2.2 接口定义

Type-A的定义如下:
Type-A
Type-B的定义如下:
在这里插入图片描述
管脚定义如下:
供电是5V,+D,-D是差分数据线。
差分信号1:D+>2.8V,D-<0.3V;D±D->200mV为1
差分信号0:D->2.8V,D+<0.3V。D±D-<-200mV为0
在这里插入图片描述
typeA 和Type B 引脚数量和定义相同,只是引脚的空间位置不同。
USB3.0的定义:
在这里插入图片描述在这里插入图片描述
USB3.0接口是可以兼容USB2.0的,使用USB2.0时,用D+,D-,半双工差分的方式,不过速度也会降低到USB2.0,使用USB3.0时,采用RX+,RX-,TX+,TX-采用全双工差分的方式.

Type-C的定义如下:
在这里插入图片描述
type-c的引脚定义不同,比前两种更小型化,可实现正反插。type-c接口支持usb3.1协议以上的。
type-c引脚定义里有CC1,CC2,SBU1,SBU2.
CC1,CC2:Configuration channel,配置通道。用来配置传输方向,供电设配,外设选择等。
在这里插入图片描述
SBU1,SBU2:Sideband use边带使用,适用于传输非USB信号,它们用于模拟音频模式,也可用于其他模式。

DFP(Downstream Facing Part)下行端口,可以理解为Host。
UFP(UPstream Facing Part)上行端口,可以理解为Device,UFP从Vbus中取电,并可提供数据。

3.USB协议与传输

3.1 USB协议的作用

为什么要有USB协议呢?因为USB是通用接口,它要用到其它对接的功能如串口,键盘鼠标接口,就需要协议去安排配置每一种功能。这就分为很多class,如下表所示。
在这里插入图片描述
每一种设备都有对应的class地址。

3.2 USB协议内容

3.2.1 USB的传输过程

  • 主机检测USB设备属性
    主机检测+D,-D上有压差(>200mV),就认为有设备接入了。然后给设备发送一个令牌包,设备检测到令牌包后进行解析,在主机的允许下,发送自己的设备信息。
  • 主机给设备分配地址
    主机在了解设备后,根据class给设备分配地址。设备获得地址后,在主机的允许下,发送配置字。
  • 主机下达任务给设备
    主机在接收到设备的配置字后,开始下达事务,发送数据包。设备进行解析,完成事务。
    每一次主机与设备的交流,都需要握手包,表示对方的信息收到了。
    以上涉及到一些概念,如包,事务等,下面一节进行介绍。

3.2.2 相关概念

主机与设备的每一次传输都由许多事务组成,每个事务又包括许多包,每个包又由多个域组成。那么什么是事务?什么是包,域呢?
1)事务
事务有三种:IN,OUT,SETUP
IN事务:设备向主机发送数据
OUT事务:主机向设备发送数据
SETUP事务:主机向设备发送数据,但与OUT事务不同的是,只有一种数据形式。
2)
多个包构成了事务。包有四种类型:令牌包、数据包、握手包和特殊包,数据格式如下:
在这里插入图片描述

  • 令牌包:用来启动一个事务,表示主机与设备建立沟通。
    可分为输入包、输出包、设置包和帧起始包(注意这里的输入包是用于设置输入命令的,输出包是用来设置输出命令的,而不是放据数的)。
    输入输出和设置包格式如下:
    SYNC+PID+ADDR+ENDP+CRC5(五位的校验码)
    帧起始包的格式:
    SYNC+PID+11位FRAM+CRC5(五位的校验码)
  • 数据包:用来传输数据。
    分为DATA0包和DATA1包,当USB发送数据的时候,当一次发送的数据长度大于相应端点的容量时,就需要把数据包分为多个包,分批发送,DATA0包和DATA1包交替发送。但也有例外情况,在同步传输中,所有的数据包都是为DATA0
    格式如下:
    SYNC+PID+0~1023字节+CRC16
  • 握手包:主机或设备用来响应接收到了数据。
    格式如下:
    SYNC+PID
    3)
    从上面可以看出,每一种包包括不同的域。
    域是USB数据最小的单位,由若干位组成,包括以下几种。
  • 同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步。
  • 标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式,USB的标识码有16种。
  • 地址域(ADDR):七位地址,代表了设备在主机上的地址,地址0000000被命名为零地址,是任何一个设备第一次连接到主机时,在被主机配置、枚举前的默认地址。
  • 端点域(ENDP),四位,由此可知一个USB设备有的端点数量最大为16个。
  • 帧号域(FRAM),11位,每一个帧都有一个特定的帧号,帧号域最大容量0x800,对于同步传输有重要意义。
  • 数据域(DATA):长度为0~1023字节,在不同的传输类型中,数据域的长度各不相同,但必须为整数个字节的长度。
  • 校验域(CRC):对令牌包和数据包中非PID域进行校验的一种方法,CRC校验在通讯中应用很泛,是一种很好的校验方法,注意CRC码的除法是模2运算,不同于10进制中的除法。
    4)其他概念
    端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点)
    :时间概念,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。
    upstream、downstream(上行、下行):设备到主机为上行,主机到设备为下行。

3.3 USB传输

3.3.1 USB总线

USB总线是一种轮询方式总线,主机控制usb总线的所有数据传输。
USB系统包括三类硬件设备:USB主机,USB设备,USB集线器。
USB主机:包括USB系统软件,客户软件和总线接口三种功能模块。主要是一些驱动程序和界面应用软件
USB设备:用来接收USB总线上的数据包
USB集线器:USB口扩展器,用来连接各种USB设备。

3.3.2 传输相关概念

USB的传输结构:由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压,而电源线和地线可向设备提供5V电压。
USB的传输方向:数据在USB线里传送是由低位到高位发送的。
USB的编码方案:USB采用不归零取反来传输数据,当传输线上的差分数据输入0时就取反,输入1时就保持原值,为了确保信号发送的准确性,当在USB总线上发送一个包时,传输设备就要进行位插入动作(即在数据流中每连续6个1后就插入一个0)。

3.3.3 传输类型

包括四种传输类型:控制传输中断传输批量传输同步传输
控制传输:是一种双向传输,分为三个阶段,包括请求传输方向,发送数据,确定数据发送完成。作用是当设备接入系统时,系统软件用于控制设备的控制命令,这种数据不允许出错或丢失。
批量传输(块传输):单向传输,有最低优先级。通常用于发送大量数据时使用。中断数据流用于传输少量随机输入信号,包括事件通知信号、输入字符或坐标等。
同步传输:一种实时的、不可靠的传输,不支持错误重发机制。
几种传输方式的比较如下
在这里插入图片描述

4. USB芯片

之前在设计USB转串口时,就出错过,USB芯片有两种,一种仅仅是USB总线接口芯片,不能在非主机时使用串口功能,如CH375,另一种是USB转串口的芯片如CP2102,下面分别介绍。

4.1 USB接口芯片(CH375)

下面是CH375B的引脚定义图,你看,明明就有TXD,RXD,所以我就误以为可用作串口。后来看到手册里说,仅仅在主机模式下,才能用作串口,技术支持说,当芯片放在板卡上连接到计算机时,计算机就是主机,好家伙,这不就是不能用这个功能吗,误导人啊。
在这里插入图片描述
那就是此芯片只能用在并口模式下。有两点需要注意:

  1. 在并口模式下,TXD需要接地
  2. 在5V供电时,据线输出是5V。所以若要跟处理器如FPGA,MCU相连,注意要电平转换。
    CH375与计算机和处理器相连的原理框图如下。

在这里插入图片描述
并口方式的原理连接图如下:
在这里插入图片描述

4.2 USB转串口芯片(CP2102)

此芯片包含晶振和内部3V(内部包含5V到3V的调节器),所以供电为5V,输出为3V.可以看到此芯片只有串口功能,而不能进行并口通信。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值