您的位置:首页 > 理论基础 > 数据结构算法

[OHCI]数据结构

2015-11-01 17:17 309 查看

简述

USB OHCI需要通过Host Controller和Host Controller Driver来对USB bus的使用进行仲裁。

OHCI的在Endpoint之间的仲裁有两个级别,第一个级别是从ED的List的级别进行仲裁,每一类ED有一个List来维护,在List内,每一个ED是有相同级别的。这里的这种方式的仲裁,需要回顾下OHCI的框架。HCD用一个叫做HcPeriodicStart的时间,来决定在一个Frame内多久后开始Periodic传输。而在Non Periodic传输时,Bus是服务于Control和Bulk传输的,而在Periodic传输时,会优先考虑Interrupt传输。

OHCI架构中提到过TD的Done Queue,当一个TD的所有数据都传送完毕,TD将从ED剥离,链接到Done Queue,Host Controller Driver然后会处理Done Queue,并提供complete信息给这次传输的发起者。看来这里是相当于一个流控的作用了。

Endpoint Descriptor





Transfer Descriptor

TD,是一段数据缓存(0到8192 bytes),用来从ED取数据或向ED发送数据。

TD分为两类:General(用于Control, Bulk, Interrupt传输)和Isochronous。

General TD

16byte的结构来描述一个General TD。





Isochronous TD

32byte的结构来描述一个Isochronous TD。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: