USB通讯协议基础说明

一、USB描述符:

描述符什么作用?通过它,设备要告诉主机自己是个什么设备、怎么传数据。

描述符成功返回,USB通信已经成功了一大半。

二、USB设备的枚举过程:

设备回复主机的请求,会返回描述符,也会修改本地设置,这是枚举。

枚举过程:

通过bus hound可以进行数据包监听。

控制传输:建立过程,数据过程,状态过程。建立用来启动数据传输,数据进行数据传输,状态用来确定传输是否成功。

三、USB的包结构和分类:

数据以包为基本单位,包的每个域低位在前,高位在后。

USB的包结构:包是由组成的。不同的包结构也不同,但是却有三个相同的域,都是以同步域开始,接着一个包标识符,最后以一个包结束符结束。同步域既用来告知USB要发数据了也作为同步时钟,包标识符用来说明包的类型,包结束符用来说明包要结束了。

令牌包:启动传输。分为out,in,setup和帧起始四类。out让设备接收数据;in让设备返回数据;setup让设备必须接收数据,有很多out没有的限制,只能向设备的控制端点data0的数据包,同时设备必须接收;CRC校验只校验PID之后的数据。

帧起始(sof)需要特殊说明一下,设备会产生帧,而主机会对‘帧’计数,主机把帧号发送给设备。

数据包:1.1版本有两类,data0和data1。版本2.0另加data2和mdata。数据包发数据就可以了,为什么要分为两类呢?分类的目的在于握手包出错时进行纠错,要了解的前提是必须掌握一个定律这个定律就是:数据包一旦发送成功,数据类型就会进行切换。现在开始举例,发送完数据包了,接收方接收完了却因为握手包出错没有告知发送方已接收完毕,发送方就只能通过对比自己数据包的类型和对方接收的数据包的类型是否一致才能判断是否发送成功,当然不一样就成功了,因为之前说过了,数据包发送成功,包类型就发生变化。

握手包:用来告知数据是否被确认,分为acknak,stall,nyet,后三个是设备的特权。

特殊包:pre、split、ping令牌包和err握手包,除了pre都是新增的。pre的作用是通知集线器打开低速端口;主机给设备发ping包的目的就是想询问设备是否能传输数据;split令牌包是把高速包分裂成全速或低速包;err包用来说明高速事务分裂失败。

**如何处理数据包:**给芯片处理,芯片接收到数据,如果有空间存储,那么接收完数据然后返回ack,同时设置一个标志表示已经正常接收到数据,没有空间返回nak。收到输入数据的请求之后,如果有需要发送的数据,将数据发送出去,然后等待ack,接收到ack,设置标志表示数据已经发送。如果没有数据发送,返回一个nak就可以了。

我们需要做的就是:根据芯片给出的标志,发送数据到端点或从端点接收数据,数据是数据包里的数据,setup包的标志也可能使用到,因为它属于控制传输,而控制传输有些特殊。

四、USB的四种传输类型:

虽然数据传输的基本单位是包,但是却不能随意用包来传送,必须组织成事务进行传送。事务令牌包、数据包、握手包组成。

USB有四种传输类型:批量、中断、等时、控制。前三个每次传输一个事务,控制传输的建立和状态各拥有一个事务,数据可能拥有多个事务。

批量:批量传输没有规定数据包中数据的意义和结构,具体的结构由设备自己来定义。批量事务流程图如下

                                                           ![](https://images2017.cnblogs.com/blog/1085466/201709/1085466-20170906135839944-851144819.png)

                                                           ![](https://images2017.cnblogs.com/blog/1085466/201709/1085466-20170906140230507-1969415782.png)

**中断:**这种传输要保证查询频率,中断的端点必须在端点描述符里报告查询间隔,主机保证在小于这个时间间隔的范围内进行传输,”中断”就是这个意思!中断传输,也可以用来检测某个状态,条件满足后实行批量传输。

**等时:**适用于数据量大,实时性高的情况,对于少量的数据错误可以接受,如音频和视频的传输,即使出现一点错误也不重传,想想也合理,一首歌老听一个字也没意思对吧。既然不重传,也就不再需要握手包。

                                                                           ![](https://images2017.cnblogs.com/blog/1085466/201709/1085466-20170906142611179-49519324.png)

**控制:**前面已经说过了,分为三个过程:建立、数据、状态。建立过程使用一个事务,发的是setup令牌包,其后只能是data0包,同时握手包只能是ack或者不响应;数据过程可选,如果有,则需要多个事务,使用的事务和批量传输的事务也是一样的,但是传输方向必须是一个方向的,如果方向发生变化则进入状态过程,发送的第一包必须是data1,接下来每次成功发送一包,就从data0包和data1包切换;状态过程使用一个批量事务,方向也是单一的,只使用data1包。

五、端点类型和传输类型的关系:

端点必须有确定的传输类型,什么类型就是什么端点,例如:控制端点、实时端点、中断端点、批量端点。有一个端点比较特殊,那就是端点0,它是USB设备默认的控制端点,插入就存在并可用,设备的描述符和主机传送的命令都是通过端点0

六、端点的最大包长:

传输类型不同,端点的最大包长也不同。

控制端点:低速8,高速64,全速:8/16/32/64

等时端点:全速上限1023,高速1024,等时端点不支持低速

中断端点:低速上限8,全速上限64,高速上限1024

批量端点:高速512,全速8/16/32/64,不支持低速

对于USB开发这些知识,都是必要的!

原文链接: https://www.cnblogs.com/we1238/articles/7478609.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: USB 3.1是一种高速数据传输协议,也被称为USB超级速度+(USB SuperSpeed+)。它是USB技术的新一代标准,提供更高的传输速度和更多的功能。 USB 3.1协议的中文规范涵盖了许多方面。首先,它规定了USB 3.1的物理接口,该接口包括插头和插座,使用Type-C连接器。这种连接器更小巧、更轻便,可正反两面插入,提供更方便的使用体验。 USB 3.1协议还规定了数据传输速度。根据规范,USB 3.1可以提供传输速度高达10 Gbps(Gigabits per second),远远超过了之前的USB 2.0和USB 3.0。这意味着用户可以更快地将文件、图片、音频和视频等数据从电脑传输到移动设备或外部存储设备。 此外,USB 3.1协议还规范了电力传输。根据规范,USB 3.1接口可以提供高达100W的功率输出。这为用户提供了更多的充电和供电选择,比如可以使用USB接口给笔记本电脑供电,同时也支持快速充电和快速数据传输。 USB 3.1协议还增强了数据传输的稳定性和可靠性。它采用了新的传输技术,如波形等化器和前向纠错码(Forward Error Correction),以减少数据传输中的信号干扰和误码率,从而提高传输质量。 总之,USB 3.1协议的中文规范详细描述了USB 3.1的物理接口、数据传输速度、电力传输和数据传输的稳定性。它为用户提供了更快、更稳定、更方便的数据传输和充电体验。 ### 回答2: USB 3.1是一种高速数据传输协议,它是在USB 3.0协议基础上进行改进和增强的。USB 3.1协议规范主要包括以下几个方面的内容: 1. 传输速度:USB 3.1协议支持超高速数据传输,传输速度提高到了10Gbps,比USB 3.0协议的5Gbps有了明显提升。这种高速传输能力可以更快地完成文件的传输和备份。 2. 硬件接口:USB 3.1协议引入了新的硬件接口,该接口使用Type-C连接器,具有可逆插拔性,可以同时支持正反两个方向的插入。这样就解决了以往USB接口插入时需要找对正反面的问题,并且适用于各种设备的连接。 3. 电源传输:USB 3.1协议规范还增加了电源传输能力,支持高达100W的电源输出。这意味着可以通过USB接口为更多的设备提供电源,例如充电宝、笔记本电脑等,提供更多的便利性。 4. 数据传输协议USB 3.1协议采用了更先进的传输协议,支持全双工传输。这意味着可以同时进行发送和接收数据,提高了传输的效率和速度。 总的来说,USB 3.1协议规范通过提高传输速度、引入新的硬件接口、增加电源传输能力和采用更高效的数据传输协议,为用户提供了更快、更便利的数据传输和设备连接方式。它是USB技术的一次重要升级,使人们可以更好地应对日益增长的数据传输需求。 ### 回答3: USB 3.1协议(Universal Serial Bus 3.1)是一种用于数据传输和连接各种设备的通信协议。它是USB技术的最新版本,提供了更高的传输速度和更大的带宽。 USB 3.1协议的中文规范包括了关于物理连接、电气特性、传输速率和协议架构等方面的详细说明。 首先,物理连接方面,USB 3.1使用了Type-C接口,这是一种全新的连接头,具有可逆性,可以在插入时无需考虑插头的正反面。这种接口还支持电源传输和视频传输功能。 其次,电气特性方面,USB 3.1采用了更高的电压和电流,以提供更大的功率传输能力。这使得它能够为设备提供更快的充电速度和更高的功耗支持。 传输速率方面,USB 3.1支持超高速传输,传输速率可达到10 Gbps。这意味着数据的传输速度比以前的版本快了几倍,可以更快地复制和传输大文件。 在协议架构方面,USB 3.1使用了新的传输协议,称为USB 3.1 Gen 2。这个协议支持双向数据传输,可以在设备之间同时发送和接收数据。它还提供了更多的传输通道,以提高多设备同时传输数据的能力。 总结一下,USB 3.1协议中文规范详细描述了该协议的物理连接、电气特性、传输速率和协议架构等方面的内容。它的引入为设备之间的数据传输和连接提供了更高的速度和带宽,为用户带来更好的使用体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值