简单了解USB通信协议

目录

一、拓扑结构

二、逻辑部件

三、电气特性

四、插入检测机制

五、描述符

六、枚举过程

七、传输数据的层次结构

八、包

1.包的类型:

2.包的组成:

3.数据包类型的pid切换机制( data pid toggle )

九、事务

十、传输

1.控制传输:

2.批量传输:

3.同步传输:

4.中断传输:


一、拓扑结构

        在一个USB通信系统中,只能有一个主机存在,USB通信只存在于主机和设备之间 ,每次通信都必须由主机发起 ,而设备和设备之间无法通信 。如图1,USB系统是一个分层的星型拓扑结构,可以使用hub来扩展设备。

图1

二、逻辑部件

      如图2, 在设备端的通信传输最终呈现在端点上, 端点在物理上就是一块特殊的内存区域 ,它特殊就特殊在:既可以被CPU访问(也就是通过写程序用地址访问),也 可以被USB硬件引擎访问( 因此称之为 硬件缓冲区)。 最底层通信管道就是在设备的端点和主机应用程序的缓存之间进行。

图2

三、电气特性

     使用差分线传输, 差分线上的信号不是原始数据,是经过了NRZI编码的 (关于NRZI编码此处不展开了,很简单的编码,网上也有非常多的资料) ,并且还加了位填充 (防止长时间电平不变化不利于信号接收的同步)

四、插入检测机制

        主机端,差分线D+、D-都做了弱下拉处理。设备端,会在D+或D-上进行上拉处理,具体的,全速和高速设备对D+上拉,低速设备对D-上拉。因此 主机通过判断差分线的电平来进行插入检测,任意一根线的电平被拉高说明有设备插入 。

五、描述符

        描述符就是设备记录自己的信息, 在程序中以结构体作为容器进行存储 。对USB1.1来说,有 设备描述符、配置描述符 、接口描述符、端点描述符、字符串描述符。具体细节不展开

六、枚举过程

        枚举使用控制传输,这里只罗列一下大概的内容:

1.设备插入后,主机对设备复位。 设备复位后地址变为0,主机使用地址0与其通信 ,获取设备描述符的前8个字节,主机就此得知端点0的最大包长度

2.主机再次对设备复位,给设备分配一个地址。此后访问该设备使用分配的地址而不是地址0

3.主机再次获取设备描述符,需要获取设备描述符的全部字节

4.主机获取配置描述符,然后根据配置描述符中描述的配置集合总长度,获取配置集合

以上过程参考图3

图3

七、传输数据的层次结构

参考图4,

1.结构从上到下为Transfer(传输) Transaction(事务) Packet(包)

2.一次传输可以包含一个或多个事务 ( 控制传输包含三个过程,建立过程和状态过程分别是一个事务,中间的数据过程可能包含多个事务 ;其他三种传输,批量传输、同步传输、中断传输,一次传输只包含一个事务), 一个事务一般包含两个或三个包 (令牌包、数据包、握手包, 同步传输中的事务没有握手包 )

图4

八、包

        包是传输的最基本单元

1.包的类型:

        分为令牌包、数据包、握手包,SOF包(表示帧首)属于令牌包

2.包的组成:

参考图5,

(1)由四个部分组成:SOP, SYNC, Packet Content, EOP;其中SOP SYNC EOP为总线信号

**注意这里的SOP是包起始信号(start of packet),和SOF包是两回事(start of frame) **

图5

(2)包的内容即以上Packet Content的展开

一个包可能总共包含五个域,其中 PID域指示了当前包的类型 ,如图6, 不同类型的包其包内容包含1到5个域之间 ,此处具体不展开

图6

3.数据包类型的pid切换机制( data pid toggle )

        数据包有4种pid:DATA0、DATA1、DATA2、DATAM。在传输数据包的过程中,如果发送或者接收成功,发生数据包类型的pid切换,这是一个传输检错机制 ,此处不展开

九、事务

1.事务由两个或三个包组成:

        令牌包、数据包、握手包

2.同步传输中的事务没有握手包

3.批量传输、同步传输、中断传输的一次传输就是一个事务组成;控制传输由三个过程(stage)组成:建立过程和状态过程各自为一个事务,数据过程则可能包含多个事务

十、传输

四种类型的传输:控制传输、批量传输、同步传输、中断传输

1.控制传输:

        每个USB设备都必须有控制端点,支持控制传输来进行命令和状态的传输。USB主机驱动将通过控制传输与USB设备的控制端点通信,完成USB设备的枚举和配置

2.批量传输:

        适合大数据量传输但对实时性没有严格要求的应用,如U盘

3.同步传输:

        不做握手,速度快,数据易丢失。适合对实时性要求高但可以容忍少量数据错误的应用,如音频视频

4.中断传输:

        适合数据量小、需要周期性通信的应用,如鼠标、键盘

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江鸟的坚持

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

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

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

打赏作者

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

抵扣说明:

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

余额充值