[OHCI]数据结构

来源:互联网 发布:淘宝商品搜索排名 编辑:程序博客网 时间:2024/06/18 08:06

简述

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。
这里写图片描述
这里写图片描述

0 0
原创粉丝点击