嵌入式USB开发系列(2):USB2.0的概念及术语

USB2.0知识储备(概念及术语)


在嵌入式开发中还是USB1或USB2使用的多,因此下面主要以USB2来进行讲解,用到的也是低速、全速和高速相关协议内容。

1. USB编解码方式-反向故归零(NRZI)

USB编解码方式采用反向故归零(NRZI),外加位填充的方式。
在这里插入图片描述

规则:数据为0,电平翻转,数据为1,电平不翻转。

位填充:在数据进行NRZI编码前,每6个连续的1信号之后都会插入1个0信号,以避免电平不能突变都是同步。

2. USB传输状态

usb2对应有4个状态,分别是J状态(差分)、K状态(差分)、SE0状态(单端)、SE1状态(单端)。

状态 对应的信号
J状态(差分) Low Speed:差分0;Full Speed:差分1
K状态(差分) Low Speed:差分1;Full Speed:差分0
SE0状态(单端) D+和D-都为0V
SE1状态(单端) D+和D-都大于0.8V,

差分0对应线的状态:D+约等于0V,D-约等于3V

差分1对应线的状态:D+约等于3V,D-约等于0V

3. USB的帧

帧的概念:一个时间单位,在低、全速固定值为1ms,高速的时候叫做微帧,时间为125us。

USB主机在一帧内会根据规则为主线的设备分配数据传输时间,如果帧剩余时间能完成这个过程,就为这个过程分配数据传输时间,若不能完成,就分配到下一帧的空闲时间内。

4. USB物理传输有下面几个概念

域、包、事务、传输。对应关系如下 :
在这里插入图片描述

5. 四种传输

  • 控制传输:主机获取设备信息、状态,选择设备配置等的一系列命令式工作。

    这个是所有USB设备,包括主机都必须支持的一种传输,它的特点是数据量不大,但是数据传输的正确性有很高的保障,一般用于信息的获取、命令的控制、参数的配置等等。

  • 中断传输:收发数据量少,周期性传输。

    这个对于USB来说是可选的,它的特点是针对传输数据量比较小,但是对服务周期有要求的数据,USB会为中断传输保留一定的总线带宽,用于保证其在规定的时间周期内得到分配,这种传输特别适用于像键盘、鼠标之类的设备,因为对这样的设备来说,他们的数据量很小,但是需要及时的获取它们的状态,这就需要有固定的获取带宽。

  • 批量传输:利用任何可获取的总线带宽进行数据传输

    这个对于USB来说是可选的,它适合传输大量的,且对时间和速度没有要求的,但必须保证数据的正确性的传输,这样性质的传输可以在总线带宽比较紧张的时候为其它传输方式让出时间,将本身的传输延迟,但是当USB总线比较空闲时,它可以以很快的速度进行传输,来发送大量的数据,比较适用于存储类产品,如U盘、打印机、扫描仪之类的。

  • 等时传输:恒定速录,没有差错控制的传输

    这个对于USB来说是可选的,它适合于数据量大,速率比较恒定,这种传输USB是没有使用差错控制和重传机制的,它不能保证数据每次传输都是成功的,这种传输比较适合于音频,视频类的产品,此时的数据及时发送和传输要远远比数据正确性更重要。

所有的USB传输,都离不开上面的四种传输结构。

6. 其它概念

  • 上传/下传:

    USB主机接收USB设备的数据叫做上传,USB主机发送数据给USB设备叫做下传,上传/下传都是以USB主机为主体,在USB中有很重要的特点就是主机要先发起请求,设备进行传输,设备是不能将数据主动发送给主机的,都是主机主动去要。

  • 地址:

    USB主机管理设备,而为每个连接的设备分配地址,主机最多可以分配127个地址

  • 端点:

    USB设备中实际的物理地址,端点和地址决定了主机和设备之间的通信的物理通道

USB传输特点:物理传输双方角色一定是主机和设备,采用一问一答传输方式,永远主机先发起包请求。

若要实现主机和主机或设备和设备通信,那必须在两者之间使用一个转换模块。

7. USB开发常用的开发工具

  1. USB协议分析仪

    以沁恒的USB协议分析仪为例,如下:
    在这里插入图片描述

USB协议分析仪包含两部分,一本分是这个硬件设备,另一部分是于硬件配套的上位机软件。

在购买的时候一定要看清版本,对于USB1版本的只能捕获低速和全速信号,对于USB2版本不仅支持低速和全速,还支持高速信号。

  1. Bushound软件工具

这是一款用于协议分析的软件工具:
在这里插入图片描述

  1. 逻辑分析仪和示波器
    在这里插入图片描述

8. 如何选择合适的USB产品

任何USB开发都是有相应的需求的,对于嵌入式开发来讲,如何选择USB产品,选择那种协议来进行设计都是至关重要的。

下面列出推荐的选型原则:
在这里插入图片描述

声明

上面内容参考了沁恒的B站教程

猜你喜欢

转载自blog.csdn.net/Zhichao_Zhang/article/details/127171528