OHCI-10a中文版.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OHCI-10a中文版

3.架构总览 3.1 介绍 图表3-1显示了USB4部分主要关注区域。它们分别是应用软件/USB驱动,主机控制器驱动(HCD),主机控制器(HC),和USB设备。应用软件/USB驱动和主机控制器驱动(HCD)由软件方式实现。主机控制器和USB设备由硬件实现。OpenHCI指定了HCD和HC之间的接口和各自的基本操作。 HCD和HC前后合作地工作,实现在应用端软件和USB设备之间传输数据。数据从应用软件端的共享内存区传输到USB设备端,以及反向传输。 3.2数据传输类型 USB文件定义了四种传输类型。每种类型都被优化设计,使之适合应用软件与USB设备的需求。四种类型分别为: 中断传输——小数据量传输,用来从USB设备向应用软件传输信息。HCD通过向设备周期性发送满足设备需求的tokens来轮询USB设备。 同步传输——固定数据速率下周期数据传输。数据传输在发送方与接收方之间是有时间关系的。 控制传输——非周期性数据传输,用来在应用软件和USB设备之间进行配置、命令、状态类型信息的传输。 批量传输——非周期性数据传输,用来在应用软件和USB设备之间传输大容量信息。 在OpenHCI中数据传输类型被分为两大类:周期性与非周期性。周期传输有中断传输和同步传输,因为它们周期执行。非周期传输有控制传输和批量传输,因为它们不定时执行,而是基于时间空闲基础。 3.3 主机控制器接口 3.3.1 通讯通道 在HC和HCD之间有两个通讯通道。第一个通道使用一组HC上的操作寄存器。在这个通道上HC是所有通讯的目标。操作寄存器包括控制、状态和列表指针寄存器。在在才哦做寄存器组中有一个指针指向一块共享内存区地址,叫做主机控制器通讯区域(HCCA)。HCCA是第二个通讯通道。在这个通道上所有通讯HC都处于主机地位。HCCA包含了指向中断端点描述列表的首指针,完成队列的首指针,以及和SOF处理有关的状态信息。 3.3.2 数据结构 组成接口通讯最基础的结构体是端点描述符(ED)和传输描述符(TD)。 HCD为系统中每一个端点分配一个端点描述符。端点描述符包含HC与端点通讯所必须的信息。这些信息包括数据切换信息,共享内存缓冲地址,和完成状态码。传输描述符包含一个或多个数据包的描述信息。每个传输描述符的数据缓冲大小范围从0-8192字节,最多为一个物理页面。传输描述符连接成一个队列:先进先处理。 每个数据传输类型有它自己需处理的端点描述符列表。表3-3,典型列表结构,表现数据结构的关系。 这些指向批量和控制端点描述列表的头指针被保存在HC的操作寄存器中。HCD初始化这些指针,在HC访问他们之前。当这些指针需要更新时,HCD应该停止HC处理特定列表,更新指针,然后重新使能HC。 这些指向中断端点描述列表的头指针被保存在HCCA中。这里没有为同步传输设立单独的头指针。第一个同步端点描述简单地连接到最后一个中断端点描述。共有32个中断头指针。一个为特殊帧使用的头指针决定于Frame Counter最后5位,即HCCA内中断数组的偏移。 中断端点描述组织成为由头指针作为叶子节点的树形结构。中断端点的期望轮询速率是由安排端点描述符在树结构中的相应深度实现的。 表3-5是中断端点安排例子。该表分别展示了2个端点描述符1ms间隔轮询,2个端点描述符2ms间隔轮询,1个端点描述符4ms间隔轮询,2个端点描述符8ms间隔轮询,2个端点16ms间隔轮询,和2个端点32ms间隔轮询。请注意在该例子中,未使用的中断端点标志被忽略,以及连接到层次中下个可用端点上。 3.4主机控制器驱动职责 这个章节概述了HCD的职责。 3.4.1 主机控制器管理 HCD管理HC的操作。通过与HC中的操作寄存器直接通讯和在HCCA中建立中断端点描述符列表头指针来完成操作。 3.4.2 带宽分配 所有对USB的访问都由HCD安排。HCD为每个周期端点分配部分有效带宽。如果没有足够的带宽,新连接周期端点将被阻止访问总线。 部分带宽为非周期传输保留。这个确保每个帧周期中发生的批量和控制传输。USB帧周期定义为1ms。 OpenHCI带宽分配策略如图3-6显示。每帧由HC向USB总线发送SOF同步包开始。随后是HC执行非周期传输,直到帧间隔计数器达到HCD设置的值,此时标志着HC开始执行周期传输。周期传输完成后,帧内多余时间通过再次执行非周期传输耗尽。 3.4.3 列表管理 USB数据包的传输机制是通过传输描述符队列,这些队列连接在端点描述符列表上。HCD建立这些数据结构体,然后将控制权交给HC来处理。 HCD负责端点描述符队列的入队与出队。入队即将端点描述符添加到恰当列表的队尾。这个操作可以与HC处理列表同时发生,不需要任何锁定机制。端点描述符出队之前,HCD可能禁止HC处理整个端点描述符列表,来保证HC未访

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档