| USB协议简介 |
|
| 作者:陆志才 文章引用自“微型计算机组成原理”(高教出版社,南开大学2003)点击数: 更新时间:2007-3-10 12:10:23 |
|
| |
|
|
USB协议简介 USB是一种协议总线,即主机与设备之间的通信需要遵循一系列约定。协议内容较多,这里仅作一些简单介绍,深入学习,可参看USB规范(WWW.usb.org)。 为了理解协议中的名称,先看图10.32。该图突出了主机上的客户软件和USB逻辑设备(编程涉及的设备)之间的通信流(Communication Flow),该通信流跨越了USB驱动程序USBD、主控制器驱动程序UHCD、主控制器等硬件接口及其连接。端点(Endpoints)是USB设备的惟一可识别的部分,是主机和设备之间通信流的终点。每一个逻辑设备有若干个独立端点,每一个端点在设计时被分配一个惟一的由设备确定的标识符,称之为端点号。 如图10.32所示,将用于通信流流动的通道称为管道(Pipe),这是忽略了许多中间环节的很形象的称呼,对于理解USB系统中的信息传输很有帮助。图中把3个端点看成了一个接口,关于接口的说明安排在后面。
 1.包格式 包的概念在前面已经介绍了,包是帧的基本成分。常用的包有令牌包、数据包和握手包。对于高速传输,还定义了事务分割专用令牌包(事务分割开始令牌包和事务分割完成令牌包)。 1)令牌包格式 在USB系统中,所有的通信都是由主机发出相应的令牌所引起的。令牌包格式图 10.33所示。 其中PID为包标识,ADDR为设备地址,ENDP为端点号,CRC5是对ADDR和ENDP域进行校验的5位CRC校验码,校验多项式为:G(X)=X5+X2+1。 2)数据包格式 数据包用于主机与设备之间的数据传输。数据包格式如图10.34所示。 其中PID为包标识,DATA为数据位,最多为8 192个位,DATA应是字节的整数倍。CRCl6是对DATA域进行校验的16位CRC校验码,校验多项式为:G(X)=X16+X15+X2+1.

3)握手包格式 握手包用来指示数据被成功接收、命令被接收或被拒绝等事务状态。握手包格式如图10.35所示。 握手包仅由PII)组成。有四种常用握手包(ACK、NAK、STALL和NYET)和一个专用握手包,握手包的类型是通过PID的编码来体现的。 ·ACK包表示接收器已成功接收数据。 ·NAK包表示接收设备不能接收数据或发送设备不能发送数据。 ·STALL包表示端点已终止或不支持控制管道请求。 ·NYET包表示接收器还没有任何响应。 4)帧开始包SOF(Start Of Frame)
[1] [2] [3] [4] [5] 下一页
|
|
本篇文章属于主题:通用串行总线USB,了解更多请点击:通用串行总线USB |
|
|
| 文章录入:admin 责任编辑:admin |
|
上一篇文章: USB总线上数据传输 下一篇文章: USB设备配置简介 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |