USB 软件、端点和管道

     在实际的实现上,具体的系统要比这复杂,不同层次的实现者对USB有不同要求,这使得我们必须从不同的层次观察UBS系统。UBS系统提出了一些重要的概念来支持现代个人计算机所提出的可靠性要求,所以
USB的分层理解是必须的。它能使不同层次的实现者只关心UBS相关层次的特性功能细节,而不必掌握从硬件结构到软件系统的所有细节。通信服务的协议按照不同的功能分为功能层、设备层和接口层。

     模型中的USB设备、客户软件、USB系统软件和USB主控制器是USB系统的四个执行范围,先对其解释如下:
USB设备:一种位于USB电缆末端的硬件,完成一些有用的终端用户的功能,如打印、扫描等。
客户软件:在主机上执行的USB设备相对应的软件。由操作系统供给或USB设备单独提供。
USB系统软件:操作系统中支持USB的软件。由操作系统提供,独立于USB设备或客户软件。
USB主控制器(主机端的总线接口):允许USB设备连接到主机的硬件和底层软件。
     主机和设备间的连接要求不在一层的实体之间有相互作用。USB总线接口层为主机和设备间提供物理/信号/包的连接。USB设备层的USB系统软件必须具有完成一般USB操作的功能。功能层通过一个特定的与功能模块匹配的客户软件层来实现USB设备的功能。每个USB设备层和功能层都有一个在层内的逻辑通信流,实际上,USB中真正的数据传送是通过USB的总线接口层来完成的。
     由于允许不同的数据流独立地进入一个USB设备,USB能更好地利用整个总线的资源。每个通信流利用一些总线访问的方式来完成与功能模块之间的通信。每个通信流终止于设备上的一个端点。设备的端点是USB设备的唯一的可标识部分,用来标识每个通信流的方向,它是在主机和设备之间的通信流的信息源或终点。对USB系统来说,USB逻辑设备像是端点的一个集合。端点组合成实现接口的端点组,接口是面对此功能块的。系统软件使用与端点0相关的缺省管道(Defualt Pipe)来管理设备。管道(Pipe)是描述设备上的端点和主机上的软件之间的联系的一个抽象通道。客户软件要求在主机的缓冲器和USB设备上的一个端点之间传送。主机控制器(或依赖于传输方向的USB设备)对数据进行打包后往UBS上传送。
USB设备端点和管道
1、设备端点(Device Endpoint)
     每个UBS逻辑设备由各个独立操作的端点的集合构成。但是每个逻辑设备有一个唯一的地址,它是在设备连接USB的时刻由系统分配的地址。软件可经由一个或几个端点与USB设备进行通信。设备上的每个管道端
点有一个唯一的标识—端点号(Endpoint Number)。设备地址和端点号的组合可以唯一地确定每个端点。端点号不为0的端点在被设置前处于未知状态,不能被主机访问。
(1)对0号端点的要求:所有USB设备都要求有一个端点号为0的特殊端点,主机用该端点来初始化设备和配置逻辑设备。端点0提供对设备配置信息和一般的USB控制、状态信息的访问。端点0支持控制传输,一旦设备被连接和加电,端点0就被配置。
(2)对非0号端点的要求:设备可以有除0号端点以外的其他端点,这取决于设备的实现。低速设备在0号端点外,只能有2个额外的端点。而高速设备可具有的额外端点数,仅受限于协议的定义(协议中规定,最多15个额外的输入端点和最多15个额外的输出端点)。除缺省端点0外,其他的端点只有在设备被设置后才可使用,对它们的配置是设备设置过程的一部分。
2、管道
    一个USB管道是设备上的一个端点和主机上软件之间的联系,体现了主机上缓存和端点间传输数据的能力,有两种不同的且互斥的管道通信格式。
(1)流管道(Stream Pipe):流管道中的数据是流的形式,也就是说该数据的内容不具有USB要求的结构。数据从流管道的一端流进的顺序与它们从流管道另一端流出时的顺序是一样的,流管道中的通信流总是单方向的。流管道支持同步传输、中断传输和块传输类型。
(2)消息管道(Mesasge Pipe):消息管道是用请求/数据/状态范例传送数据的管道,通过消息管道的数据是具有某种USB定义的格式的数据流。消息管道与端点的关系同流管道与端点的关系是不同的。首先,主机USB设备发出一个请求;接着,就是数据的传送;最后,是一个状态阶段。为了能够容纳请求/数据/状态的变化,消息管道要求数据有一个格式,此格式保证了命令能够被可靠地传送和确认。消息管道允许双方向的信息流,虽然大多数的通信流是单方向的。

      特别地,缺省控制管道是一个消息管道,用于在主机和USB设备的端点0之间传送控制和状态信息。系统软件用此管道来确定设备标志和配置要求,以及用来配置设备。USB系统软件保证多个请求不会同时发给同一个端点。在某一时刻,一个端点只能为单个信息请求服务。主机上的多个客户软件通过缺省管道能产生请求,但他们以先进先出的顺序被送到端点上。在响应主机事务的数据和状态阶段,端点能控制信息的流动。只有当
端点上的当前信息处理完成后,端点才会正常地发送下一个信息。一个设备信息管道在2个方向(IN或OUT标记)要求有一个单一的设备端点号。对于每个方向,USB不允许信息管道与不同的端点号相联系。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值