USB通讯协议基础说明

      最后更新:2022-07-02 23:22:55 手机定位技术交流文章

      一、USB描述符:

      描述器做什么?通过它,设备告诉主机它是什么,如何传输数据。

      描述符成功返回,USB通信大部分时间都成功。

      USB设备的编列过程:

      设备响应主机的请求,返回描述符,并修改本地设置,即列举。

      枚举过程:

      一个巴士猎犬可以用于监视数据包。

      控制传输: 建立过程, 数据过程, 状态过程.建立数据传输, 数据进行数据传输, 状态确定数据传输是否成功.

      USB的包结构和分类:

      数据被包成一个基本单元,每个包域都是低级的前面和高级的后面。

      USB包结构: 包由一个域组成.不同的包装结构也是不同的,但有三个同样的领域,都是以同步域开始,接着一个包标识符,最后以一个包结束。同步区是用来通知USB发送数据和作为同步时钟,数据包标识符用于描述数据包的类型,包末端用来表示包末端。

      令牌包:启动传输。分为out,in,有四个类型的设置和帧开始。输出允许设备接收数据;in允许设备返回数据;setup允许设备必须接收数据,外面有许多限制,数据0的数据包只能发送到设备的控制端口,同时,设备必须接收; CRC仅在检查PID后检查数据。

      帧启动(sof)需要一个特殊的描述,设备生成帧,主机会计数'帧',主机发送帧数到设备。

      数据包:有两个版本,数据0和数据1。版本2.添加数据2和mdata。数据包足够发送数据,为什么有两个类别?分类的目的是在处理错误时纠正错误,理解的前提是掌握一个规则,即一旦数据包成功发送,数据类型将被转换。现在开始举例,发送完数据包了,如收件人已收到,但未通知发件人由于手提包中的错误而收到,发送者只能通过与其他接收者的数据包的类型比较来决定是否成功发送。当然,它不同了。因为之前说过了,数据包发送成功,包类型就发生变化。

      手提包: 要确定数据是否被确认,它被分成 ack,nak,stall,nyet,最后三个是设备的特权。

      特别包:预包,分包, ping卡包和Err手提包,除前外,所有都添加了。前功能是通知接收器打开低速端口;主机是发送设备的 ping包,询问设备是否能够传输数据;分割到许可包是将高速包分割成全速或低速包;错误包是指示高速事务分割失败。

      **如何处理包:**用于芯片处理,芯片接收到数据,如果有空间存储,然后你收到数据,然后退回,同时,设置一个标志以表示数据正常收到,没有地方可以回去。收到输入数据的请求后,如果需要发送数据,将数据发送出去,然后等待ack,接收到ack,设置标志以表示数据已经发送。如果没有数据发送,请你回去,阿肯。

      我们需要做的是:根据芯片提供的符号,发送数据到端点或从端点接收数据,数据是数据包中,设置包的符号也可以使用,因为它属于控制传输,控制传输是特殊的。

      四种USB传输方式:

      虽然数据传输的基本单元是数据包,但它们不能任意传输,必须组织成交易。 交易由许可证包、数据包和手提包组成。

      USB有四个类型的传输:批发、中断、时间和控制。

      批量:批量传输不指定数据的含义和结构,具体结构由设备本身定义。 批量交易流程图如下

      **中断:**此传输保证查询频率,中断端口必须在端口描述器中报告查询间隔,主机保证传输将在较短的时间间隔内进行,这就是中断的含义!中断传输,它也可以用来检测一个状态,一旦条件得到满足, 批发传输就进行.

      对于少数数据错误,如音频和视频传输,即使出现单个错误,也不会被重发。 歌曲并不意味着单词,因为它不会被重发,所以不需要摇动手提包。

      控制:我刚才说过,它分为三个过程: 建立 、 数据和状态.建立使用交易的流程,发出安装订单包,那么只有数据0包,同时,手提包只能是无反应的,数据处理是可选的,如果有,则需要多个事务,所使用的交易与批发传输的交易相同,但传输的方向必须是一条方向,如果方向改变,则进入状态过程,首先发送的包必须是数据1,接下来,每次成功就发送一个包,将数据0包转换为数据1包;状态过程使用批量事务,方向也是单一的,只使用数据1包。

      终端类型与传输类型之间的关系:

      终端必须具有某种类型的传输,是什么类型,是什么目的,例如: 控制端子, 实时端子, 中断端子, 批量端子.最后有一个特别的点,那就是端点0,这是USB设备的默认控制点,插入就存在并可用,设备的描述符和主机的命令通过终端0传输。

      端点的最大包装长度:

      传输类型不同, 端点的最大数据包长度也不同.

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

      时间终端: 全速限制1023, 高速1024, 时间终端不支持低速

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

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

      这些知识是开发USB所需要的!

      来源: https://ww.cnblogs.com/we1238/articles/7478609.html

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29062.html

          热门文章

          文章分类