USB通信协议介绍

1、概述

USB,Universal Serial Bus(通用串行总线),是一种计算机与外围设备进行数据交互的通信协议。

1.1 USB协议

USB2.0 或 USB3.1, 指的是传输标准; 而USB Type-C 或 USB Type-A, 指的是物理接口

1.2 USB级联

USB集线器最多可以串联5个

总线上最多能连接127个从机有因素限制实际比127个少);

1.3端点

  • 控制端点:USB从机都必须有一个控制端点:端点0,用于对设备进行枚举,以及对设备进行一些基本的控制。它的数据传输方向是双向的,而其他的普通端点的数据方向都是单向的
  • 普通端点:USB从机除了控制端点外,可以有一个或多个普通端点。低速从机做多可以有2个,高速和全速从机最多可以有15个。普通端点需要在设备配置之后才能进行数据传输

1.4通讯方式

USB总线在传输数据时,是按位进行传输的,所以是串行通信,同时USB是小端字节序传输,这意味着,串行传输时,应该先传输数据的LSB(最低有效位)。例如数据0X1234,通过USB总线传输时,会先传输0X34,再传输0X12

通讯方向

USB2.0规范中,USB的数据传输仅支持半双工,因为仅有一对差分信号线,数据方向只能是主机->从机或从机->主机。
USB3.0规范中,USB的数据传输支持全双工,由于硬件上增加了超高速差分信号线,传输协议上也进行了更新,所以同一时刻,数据可以从主机->从机/从机->主机

同步方式

USB以异步传输的方式,USB主机和USB从机的时钟频率都分别由自身提供,但是在USB从机枚举时,会共同确定USB版本,以确定数据传输速率。

令牌包

令牌包用于表明要开启一次USB数据传输。由于USB总线系统是主从结构的,所以无论是数据输入还是数据输出,都是由USB主机向USB从机发送令牌包,表明要进行数据传输。令牌包有以下4种:

  • OUT(输出):告知USB从机,USB主机即将要输出一个数据包
  • IN(输入):告知USB从机,USB主机需要从USB从机获取一个数据包
  • SETUP(建立):告知USB从机,USB主机即将要输出一个数据包,和OUT令牌包不同的是,SETUP令牌包会开启控制传输,USB主机之后将向从机发送一个DATA0类型(只能为此类型)数据包,数据包的目的地是USB从机的控制端点,此端点地址为0,USB从机必须接受此数据包
  • SOF(帧起始):表明这是一个帧起始包,帧起始包在每个帧开始时都会以广播的形式发送

1.5 USB从机枚举简单流程

USB主机识别从机并配置从机的流程被称为枚举。当USB从机连接到USB总线上时,USB主机会检测有USB从机插入,同时USB从机通电并将USB描述符信息从非易失性存储器加载到描述符寄存器中,等到USB主机从寄存器中获取到USB描述符,就能知道USB从机的基本信息,在这个过程中,会给USB从机分配对应的设备地址

USB描述符分为设备描述符,配置描述符,接口描述符,端点描述符,它们具体描述了以下信息:

设备描述符

USB从机有且只有一个设备描述符,主要用于记录设备的基本信息,包括设备包含的配置数量,设备使用的USB协议版本,设备类型,设备版本号,设备序列索引,厂商ID(VID),产品ID(PID),厂商字符串索引,产品字符串索引,端点0的最大包长等

设备描述符可以理解为USB从机的身份标识

配置描述符

USB从机一个设备描述符下可以包含多个配置描述符,主要记录了设备配置包含的接口数量,配置的编号,供电方式,电流需求量,是否支持远程唤醒等

配置描述符使得USB从机可以通过切换配置进行功能的切换,使用上更为灵活

接口描述符

USB从机一个配置描述符下会包含多个接口描述符,主要记录了接口号,接口的端点数,接口使用的类,子类和协议等

接口描述符主要是为了封装端点描述符而存在的抽象概念,可以理解为端点组合

端点描述符

USB从机一个接口描述符下会包含多个端点描述符,主要记录了端点的端点号,数据传输方向,数据传输类型,最大包长度,查询时间间隔等

描述符之间的关系

综合上面对于描述符的介绍,描述符之间是存在层次关系的,如下图,最上层是设备描述符,接着分别是配置描述符,接口描述符,端点描述符。这意味着一个USB从机,可以拥有多种配置,而每种配置都会拥有一些接口,这些接口封装了很多端点,每个端点都用于数据传输,在需要时USB从机可以根据配置切换USB功能,USB主机会根据不同配置包含的端点信息,选择不同的信息传输方式,从而更方便的实现更多的功能。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
### 回答1: USB3300是一个USB PHY芯片,它并不直接支持通信协议,而是提供了与USB 2.0协议规范相符合的电气特性和信号波形,以便与USB主机或USB设备进行通信。USB 2.0协议规范定义了USB设备与主机之间的通信协议,包括握手协议、数据传输协议、错误检测和纠正协议等。USB3300将高速串行数据信号转换为符合USB 2.0协议规范的电气信号,从而使USB主机或设备可以遵循USB 2.0协议规范进行通信。因此,要使用USB3300进行通信,需要配合USB主机或设备控制器来实现USB 2.0协议的通信。 ### 回答2: USB3300通信协议是一种被广泛应用于USB通信接口的协议标准。USB(通用串行总线,Universal Serial Bus)是一种用于计算机和外部设备之间传输数据和连接各种外部设备的接口标准。 USB3300是一种集成电路芯片,用于实现USB 2.0通信接口。它支持高速传输率(480Mbps)和全速传输率(12Mbps),同时兼容低速传输率(1.5Mbps)。该芯片通常嵌入在主机设备、USB控制器和扩展接口之间,用于传输和管理USB数据。 USB3300通信协议USB通信分为四个层次:物理层、数据链路层、网络层和传输层。 在物理层,USB3300通过USB接口与电气和逻辑信号进行转换,负责调整传输速率、幅度和时钟等。 在数据链路层,USB3300负责管理USB通信中的数据的可靠传输,包括错误检测和纠正。 在网络层,USB3300负责管理USB设备的寻址和路由,确保数据的正确传输到目标设备。 在传输层,USB3300负责管理USB控制器和设备驱动程序之间的交互,包括控制、传输和同步等。 通过这些层次的处理,USB3300能够实现稳定可靠的USB通信,并保证设备之间的互通性。它广泛应用于个人电脑、移动设备、打印机、相机等各种USB设备中,为我们的生活和工作提供了便利。 ### 回答3: USB3300是一种高速USB 2.0 PHY接口芯片,用于实现USB主机和外部USB设备之间的通信。USB3300通信协议是指用于控制和管理USB3300芯片的通信规则和规范。 USB3300通信协议主要包括以下几个方面: 1. USB物理层协议:USB3300芯片通过USB物理层协议来处理物理信号的传输和接收。这包括数据包的编解码、时序控制、电气层特性等方面。USB3300通信协议定义了数据包的格式、传输速率、电压和时钟规范等。 2. USB控制器协议:USB3300芯片通过USB控制器协议来处理USB设备的控制和管理。这包括设备的插拔检测、速度设置、端点管理等。USB3300通信协议定义了设备的初始配置、状态转换、命令和控制寄存器等。 3. USB传输层协议:USB3300芯片通过USB传输层协议来处理数据的传输和交换。这包括数据的传输方向、数据包的组合和分解、数据报错校验等。USB3300通信协议定义了数据传输的方式、传输模式、传输速率等。 4. USB协议栈:USB3300芯片通过USB协议栈来实现上层应用程序和USB设备之间的通信。这包括USB设备的驱动程序、协议规则和应用接口等。USB3300通信协议定义了USB设备的协议规范和应用接口规范。 总而言之,USB3300通信协议是一套用于控制和管理USB3300芯片的规范和规则,它定义了USB芯片的物理层协议、控制器协议、传输层协议和应用接口等方面的内容,使USB主机和外部USB设备可以进行可靠和高效的通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AI+程序员在路上

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

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

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

打赏作者

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

抵扣说明:

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

余额充值