文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>OHCI笔记(一)(未整理)

OHCI笔记(一)(未整理)

时间:2007-04-11  来源:einsn

3.2数据传输类型:

周期的,中断与同步

非周期的:控制与批量

 

3.3主机控制接口

   通信接口:在HC与HCD之间有两个通信接口

       一个是在HC中的操作寄存器集,包括控制状态及指针链表寄存器,其中有个指针指向共享内存区域的(HCCA)

      HCCA就是第二个通信接口:包括中断端点描述符头指针链表,已处理队列头指针,SOF帧处理状态。

数据结构:

建立了两个基本块用于通信:端点描述符(ED)及传输描述符(TD)

HCD给每个端点分配端点描述符,包含了HC与端点通信所需要的信息。最大包大小,端点地址,速度,方向等信息,所有端点描述符链接成一条链表。

一个传输描述队列链接具体端点的端点描述符,包含了传输数据包所需的详细信息:data toggle(数据包切换)共享共存的地址和完成状态代码,每个传输描述符包含了一个或多个数据包的信息,TD的数据缓冲区大小在0—8192Bytes,所有TD组成队列,队列中的第一个优先处理。

Bulk和Control端点描述符的头指针,保存在HC的操作寄存器中,HCD初始化他们,如果这些指针需要被更新的话,HCD首先要暂停HC,等更新完再重新使能。

 

 

中断和同步的ED的heappoints保存在HCCA中,它并没有特别地分开同步的头指针,同步端点描述符的第一个只是被简单地链接到最后一个中断端点描述符。总共有32个中断头指针。这些头指针的具体为哪些帧工作是由帧计数器最后5位偏移量决定的*。

这些中断端点描述符组织成树结构状,头指针是树的叶子。中断端点的轮询周期要看所列端点描述符树的深度 轮询速率最快的将被放到树根,因为多个链表将向他集中。中断端点占位符表明有0个或多个端点描述符被列队。

 

3.4主机控制器驱动(HCD)的责任

1.管理主机控制器

2带宽分配

3.链表管理

  USB的传输机制是通过传输描述符队列与端点描述符链表链接来实现的。HCD创建这些数据结构,然后传递给HC来处理。

4.根集线器

  根集线器被集成到HC中,

 

3.5 主机控制器(HC)的责任

3.5.1 USB状态:UsbOperational,UsbReset,UsbSuspend,UsbResume

3.5.2帧管理

HC跟踪当前帧的计数器和周期,在每个帧的起始,HC在USB总线上产生SOF包,并从系统内存中更新帧计数器,HC还决定当前帧是否有足够的时间来发送下一帧。

3.5.3链表处理

HC操作被HCD入队的端点描述符各传输描述符。

中断传输和同步传输中,HC从当前帧的中断描述符的头指针开始**。。

批量传输和控制传输,HC从各次上次剩下的链表开始。当HC到达链表的结尾时,它加载头指针继续处理。HC处理n个控制传输的同时处理一个批量传输。N由HCD设置。

 

当一个传输描述符结束,不管成功还是错误,HC将其移入已处理的队列。这个已处理队列被周期地通过HCCA 从HC传输到HCD

 

4.数据结构:

**

链表的优先级在每个周期性的间隔时端点被服务时被修改。在每一帧,每一个帧的间隔时间被保留为处理控制和批量链表,这个间隔在每个帧的起始处。HC通过设定HcPeriodStart **当某个周期性传输具有总线的更高优先级时。在周期性链表处理期间,当前帧的中断链表先于同步帧的链表。当周期性的链表处理完成后,控制或批量链表被恢复。

 

关于某个端点的描述符信息是给HC管理和访问端点时用的。端点的地址,最大数据包大小,等是端点描述符中的典型参数。另外,ED还用作传输描述符队列的anchor(锚,制动器)。TD附于定义了一个内存缓冲区的ED,该缓冲区的数据传给或传自该端点的。当HC访问一个ED,而且发现一个有效的TD地址,HC完成单一的传输存于缓冲区的数据。

当所有TD所定义的所有数据被传输完后,TD将从ED断开,并连接到已处理队列中去。HC控制器驱动(HCD)处理这个已处理的队列,并提供完成的信息给发起传输请求者。

相关阅读 更多 +
排行榜 更多 +
奇境小镇MOD作弊菜单

奇境小镇MOD作弊菜单

角色扮演 下载
黑暗荒野2无限金币版

黑暗荒野2无限金币版

角色扮演 下载
骑战烈火之剑作弊菜单版

骑战烈火之剑作弊菜单版

角色扮演 下载