在路上...

The development of life
我们一直都在努力,有您的支持,将走得更远...

站内搜索: Google

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

USB规范定义function 为主机提供单个功能的设备。

 

    hub是一个包含有一个或多个到USB设备的接口或内部连接的设备。同时这个设备还带有使该设备能与每个外设通信的硬件设施。集线器重复接收通信,同时也有处理以下状况的能力;管理电源、发送和响应状态和控制消息以及防止全速数据输出到低速设备。

 

    device是一个function(功能)或一个hub(集线器),除了复合设备(复合设备有一个集线器和一个或多个功能)。每个设备有一个唯一的总线地址,同样要除了复合设备,每个设备的集线器和功能有不同的地址。一个具有多个功能的外设是一个复合设备。在大部分情况下,外设和设备这两个词可以替换使用。

 

    每一个USB 设备会有一个或者多个的逻辑连接点在里面。 每个连接点叫端点。在usb 的规范中用4位地址标识端点地址,每个设备最多有16个端点。端点0 都被用来传送配置和控制信息。

    管道实现了在主机的一个内存缓冲区和设备的端点之间的数据传输, 连接端点0叫做缺省管道。管道是具有多个特征的信道,如带宽分配,包大小,管道类别以及数据流向。管道有两种类型分别是流管道,(stream pipe)和消息管道(message pipe)。流管道传输的数据包的内容不具有usb 要求的结构,它是单向传输的;流管道支持批量、等时和中断传输方式。而消息
管道与流管道具有不同的行为。首先,由主机发请求给usb设备,然后在适当的方向上传输数据,最后是到达一个状态阶段。为了保证三个阶段的数据传输,消息管道定义了一个数据结构使命令可靠地被识别和传输。消息管道是双向的,它只支持控制传输方式。

 

    四种传输方式
    usb提供了四种传输方式, 以适应各种设备的需要。这四种传输方式分别是:控制传输方式:控制传输是双向传输,数据量通常较小,主要用来进行查询、配置和给usb 设备发送通用的命令。

    控制传输:主要用在主计算机和usb外设中端点0之间。
    等时传输方式:等时传输提供了确定的带宽和间隔时间。它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传送率的即时应用中。例如进行语音业务传输时,使用等时传输方式是很好的选择。
    中断传输方式:中断方式传送是单向的并且对于主机来说只有输入的方式。中断传输方式主要用于定时查询设备是否有中断数据要传送,该传输方式应用在少量的、分散的、不可预测的数据传输。键盘、游戏杆和鼠标就属于这一类型。
    大量传输方式:主要应用在没有带宽和间隔时间要求的大量数据的传送和接收,它要求保证传输。打印机和扫描仪属于这种类型。
    在开发usb设备时通过设置接口芯片中相应的寄存器使端点处于不同的工作方式。

 

    usb通信协议
    usb的物理协议规定了在总线上传输的数据格式,一个全速的数据帧有1500字节,而对于低速的帧有187字节。帧的作用是分配带宽给不同的数据传送方式。
    一个最小的usb数据块叫做包,包通常有同步信号,包标识,地址、传送的数据和CRC。包的ID由八
位组成,其中后四位是纠错位。根据包功能的不同,在USB1.1中定义了以下四类十种:

token :          OUT   IN    SOF  SETUP

data :            DATA0    DATA1

handshake :  ACK   NAK   STALL

special :        PRE

    在usb 2.0中又增加了几种类型的包以满足高速传输的需要。其中data类型增加了DATA2和MDATA,handeshake 类型增加了NYET,special类型则增加了ERR , SPLIT , PING , Reserved 。

    事务是在主机和设备之间不连续地数据交换。一个事务通常由主机开始,一般分三个阶段,第一阶段发送token包,第二阶段发送是data包( 可以向上也可以向下) ,在数据包传送完之后,就会由设备返回一个handshake 包。

 

    最大带宽计算:

    全速 : 数据有效负载长度为64、128 或256 时其最大带宽值最大,为1.28Mbyte/s。

    高速 : 当数据有效负载长度为1024 时其最大带宽值最大,为5.7344Mbyte/s。

 
posted on 2009-09-06 23:24  palam  阅读(511)  评论(0编辑  收藏  举报