当前位置:文档之家› USB通讯原理 协议摘要

USB通讯原理 协议摘要

USB通讯原理协议摘要

2008-08-01 14:33

概述

USB总线的控制是主从结构,有一个Host和多个Device。Host负责总线的带宽管理(帧的编组),Device枚举,Device的编址。Device对Host在总线上的行为做出回应,如从总线上读取数据或写出数据,处理或生成回应。

USB总线的数据线由两根差分信号线D+ D-构成,Host和Device都挂接在这两条信号线上通讯。

USB协议内容分两大块,一个是对通讯逻辑进行分层定义;一个是对设备的组成逻辑进行分层定义。

通讯逻辑

USB通讯的逻辑结构分成三层:

包(packet):信号层上传送的若干连续位流构成一个包,包由信号层定义;事务(transaction):一组相关的包(packet)构成了个事务,事务由协议层定义;传输(transfer):一组相关的事务构成一个传输,传输由数据传输层定义;端点(endpoint):进行事务处理的实体;接口(interface):进行传输处理的实体;包(packet)的格式:包有四种:令牌包/数据包/握手包/前导包。这四种包还有些子类。一个包是哪种,由PID标识。令牌包

数据包

握手包

PID

注:当USB的令牌包的PID是SOF时,期数据字段必须为11位的帧序列号;

2.0的USB协议中定义了更多的PID。

事务(transaction)的种类:有输入(IN)、输出(OUT)、设置(SETUP)、帧起始(SOF)、帧结尾(EOF),基本和令牌包的种类一致。它并不画出单独的示意图,而体现在传输(transfer)示意图的各个可能的分支里。SOF和EOF 较特殊,协议本身并没有将它们当成一种事务类型。

事务(transaction)的特点:

*数据包的最大长度为1023个字节,一个事务最多只有一个数据包;

*数据处理顺序由Host控制,一个事务的包不会分到不同的帧里;

*事务处理中,包的传输是顺序,如令牌包总在数据包之前传送;

*令牌包都是由Host发出的;

*设备Device根据令牌包决定自己是否发送数据,不能主动发送数据;

帧:是Host对总线进行带宽管理、流量分配的单位,由若干事务(transaction)构成(不是传输),一个帧在时间上看来,是对总线1ms的占用。

传输(transfer):有4种,批量传输(bulk)、控制传输(control)、中断传输(interrupt)、实时传输(isochronous)。

批量传输(bulk):传送大块数据,不要求有周期性的或一定的数据传输速率。它可占用总线所任何可用带宽来传输,如果总线带宽被必须保证带宽的传输占用时,它可以等待。它采用数据检错和重传,还保证数据正确传输。

解读:当主机要开始一次输入的批量传输(bulk transfer)时,向总线上发送一个IN的令牌包(packet),设备收到令牌后,向总线上发送DATA或NAK或STALL,主机如收到DATA,则向总线上发送一个ACK;一次输出的批量传输(bulk transfer)与此类似。

控制传输(control):用于传输命令。所有命令都是Host发起的。所有设备Device 都要支持控制传输。是非周期性的传输,但要优点占用总线。只有控制传输是双向的,而别的传输都是单向的。分成三个阶段(stage):设置阶段、数据(可选)阶段、状态阶段;各个阶段由一个事务处理(transaction)构成。

中断传输(interrupt):用于Host接收Device的事件信息。Host给中断传输的设备分配一定的总线带宽,周期性地通过中断传输接收此设备的信息,达到与传统中断方式相同的目的,(也就是定时查询)。1.1版协议开始支持IN/OUT的中断传输。也是一种可靠的传输方式。

实时传输(isochronous):速率保证,正确性不保证。

USB设备的组成逻辑:以例子说明,一个HID设备,具有鼠标、键盘、游戏杆功能,但同一时刻,鼠标和游戏杆只能选一个。因此,一个设备(设备描述符),可以有两种配置(配置描述符),一种配置由若干接口(接口描述符)(鼠标+键盘键盘+游戏杆)构成,接口interface对应传输transfer,每个接口有多个端点endpoint,对应着事务transaction。所有配置里,都会有一个端口0,用于完成控制传输。

相关主题
文本预览
相关文档 最新文档