当前位置:网站首页 > 编程语言 > 正文

bt1120接口定义(bt1120接口原理)



USB集线器是一种特殊的USB设备,故适用于USB标准设备的描述符,对于这些USB标准的描述符,其一些字段已经通过预定义确定。(本文重点讲述HUB在高速模式下,STT和MTT接口描述符区别,以及接口描述符中bAlternateSetting该字段的使用

USB集线器会根据实际的连接情况会返回三类不同的描述符集:

一:设备工作在低速/全速模式下。

工作在低速或者全速模式下的HUB,其设备描述符的bDeviceProtocol必须为0,同时其接口描述符的bInterfaceProtocol也必须为0。

(以下为配置为全速的CH334H)

二:HUB设备工作在高速模式下

工作在高速模式下的HUB有两种描述符集,分别为单TT和多TT.所有的HUB必须支持单TT,故必须支持单TT描述符集。多TT集线器相对于单TT增加了一个额外的接口描述符(带有对应的端点描述符)。

TT(事务翻译器)主要作用是响应高速拆分事务,在面向下游的端口上的全速/低速设备时将其转换为全速/低速事务连接,使得连接到USB hub的全速USB设备的数据流转换为高速USB设备可以理解的数据流,以便高速USB设备能够与全速USB设备进行通信,它可以确保USB hub中的所有设备都可以与其他设备进行通信,并且可以保持高速USB设备的速度和效率,HUB也被分为单TT和多TT,顾名思义多个TT可以高效的处理多个低全速事务。

1:STT

单TT描述符集中,其设备描述符的bDeviceProtocol必须为1,并且其接口描述符中的bInterfaceProtocol必须为0;

(以下为创惟的HUB,GL850)

2:MTT

多TT描述符集中,设备描述符中的bDeviceProtocol值为2,第一个接口描述符中的bInterfaceProtocol为1,第二个接口描述符中的bInterfaceProtocol值为2。

如果设备配置支持具有两个备用设置的单个接口,则配置描述符后面跟着一个接口描述符,其中包含 bInterfaceNumber 和 bAlternateSetting字段设置为 0,然后是该设置的端点描述符,然后是另一个接口描述符及其关联的端点描述符。第二个接口描述符的 bInterfaceNumber 字段将也设置为 0,但第二个接口描述符的 bAlternateSetting 字段将设置为 1。

(以下为对标创惟产品的沁恒HUB,CH334H)

三:关于接口描述符中bAlternateSetting的使用

bAlternateSetting 用于在同一个接口中的多个描述符中进行切换:

在USB协议中同一个配置中的不同接口不能共用端点

同一个接口下可以有多个接口描述符(备用),用 bAlternateSetting 来识别,

每一个接口都有一个唯一确定的接口编号,但是一个接口却可以由不只一个接口描述符来描述它。USB 允许多个接口描述符来描述同一个接口,且这些描述符都可通过命令切换。控制传输中的 Get_Interface 命令可以用来得到目前正在使用的描述一个确定接口的接口描述符的编号,即对应 bAlternateSetting 字段,而 Set_Interface 命令则以此字段值为参数, 用来使相应的接口描述符描述某个确定的接口

例如:由上述高速模式下STTMTT HUB的不同接口描述符可知,CH334有两个不同的接口描述符,其中STT HUB接口描述符集中bAlternateSetting字段默认状态配置为0,而MTT HUB在设置配置后,主机驱动会选择更高效的MTT方式, 通过01 0B 01 00 00 00 00 00方式设置接口命令bAlternateSetting此字段为1

此处验证,通过修改主机驱动和通过BUSHUND软件对应端点下发设备接口命令01 0B 00 00 00 00 00 00也可以主动修改不同的接口描述符以对应主机选择用STT还是MTT模式

附:以下是部分USB协议原文参考

到此这篇bt1120接口定义(bt1120接口原理)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 如何切换国内ip(如何切换国内的电话)2026-04-06 17:27:06
  • 女神异闻录5战斗系统好玩吗(女神异闻录5战斗bgm叫什么)2026-04-06 17:27:06
  • 京玉窖藏vip15价格(京玉窖藏vip6价格)2026-04-06 17:27:06
  • nsw tee怎么读(teethe怎么读)2026-04-06 17:27:06
  • jflash安装步骤(jflash下载程序步骤)2026-04-06 17:27:06
  • 查看宽带nat类型(宽带nat1)2026-04-06 17:27:06
  • 预适应训练仪功效与作用视频(预适应训练仪使用方法)2026-04-06 17:27:06
  • Ubuntu源文件(ubuntu源文件没有setup.py)2026-04-06 17:27:06
  • 阻塞队列的使用场景(阻塞队列设置的长度)2026-04-06 17:27:06
  • 动态库和静态库调用方法(动态库文件和静态库文件)2026-04-06 17:27:06
  • 全屏图片