现在的位置: 首页 > 综合 > 正文

USB系统的结构

2014年08月29日 ⁄ 综合 ⁄ 共 1455字 ⁄ 字号 评论关闭

      在终端用户来看,USB系统就是外设通过一根USB电缆和PC机连接起来。USB在外设和PC机之间提供通信服务,通常把外设称为USB设备(设备端),把其所连接的PC机称为USB主机(主控制端),且把指向USB主
机的数据传输称为上行通信,把指向usB设备的数据传输称为下行通信。
      对开发人员来说,USB设备到主机的连接可以被分为三个逻辑层:功能层、设备、USB总线接口层,且每一层都由主机和USB设备的不同功能模块组成。
     在USB主机内部含有USB主控制器,负责完成主机和USB设备之间的物理数据传输。主控制器内部包含一个USB根集线器,用于给USB系统提供一个或多个连接点。USB的数据传输是基于令牌的,其所有的通信(不论是上行通信还是下行通信)都由USB主机启动,所以USB主机在整个数据传输过程中占据着主导地位。USB规定在USB系统中只允许存在一个主机。从开发人员的角度看,它可被分为三个不同的功能模块:客户软件、USB系统软件、USB总线接口。

1、客户软件:
     客户软件主要负责和USB设备的功能单元进行通信,以实现其特定功能,一般由开发人员自行开发,包括USB设备驱动程序和界面应用程序两部分。USB设备驱动程序负责和USB系统软件进行接口。通常,它向USB总线驱动程序发出I/O请求包(IRP)以启动一次USB数据传输。界面应用程序负责和USB设备驱动程序进行接口,以操纵USB设备,并向用户提供可视化的操作。

2、USB系统软件:
      USB系统软件主要负责和USB逻辑设备进行配置通信,并管理客户软件启动的数据传输,一般包括USB总线驱动程序和USB主控制器驱动程序,这些软件通常由操作系统提供。
      在一个USB设备使用前,必须对其进行一些初始化操作,如为其分配所需要的主机资源、设置其USB参数等,这被称为USB设备的配置。在该过程中,USB总线驱动程序会检测USB设备的特性,并建立与其通信的管道。另外,USB总线驱动程序理解USB通信机制,并知道如何和USB设备进行数据传输。当USB总线驱动程序接收到USB设备驱动程序发来的请求包时,会把这些I/O请求的数据重新进行组织,使它们具有USB特定格式—事务处理。

       事务处理是主机和USB设备间数据传输的基本单元,由一些具有特定格式的信息包组成。在这些信息包中含有进行USB数据传输所需要的全部信息,如USB设备地址、传输类型、传输方向等。客户软件的一次传输可能需要多个事务处理,其具体个数由传输数据量的大小、所使用管道的类型等因素来决定。
      USB主控制器驱动程序(HCD)的存在,使得客户软件在进行数据传输时不必知道USB主控制硬件的具体实现细节。HCD负责把USB总线驱动程序建立的事务处理安排在USB总线上,方法是建立一系列的事务处理列表。事务处理列表以帧(全速传输)或小帧(高速传输)为单位,其中可以包含一个或多个事务处理,它们可以和一个或多个USB设备进行通信。客户软件一次传输所建立的多个事务处理可能被安排在一个或多个事务处理列表中,这取决于事务处理的类型、当前USB总线带宽等因素。

3、USB总线接口:
      USB总线接口包括主控制器和根集线器两部分。根集线器为USB系统提供连接起点。主控制器负责完成主机和USB设备间数据的实际传输,负责读取HCD建立的事务处理列表,并将它们安排在一系列长度为1ms的帧(全速传输)或125us的小帧(高速传输)中,发送到USB总线上。

 

抱歉!评论已关闭.