简单了解USB通信协议

通信网络

634人已加入

描述

一、拓扑结构

在一个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.中断传输:适合数据量小、需要周期性通信的应用,如鼠标、键盘

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分