基于OHCI协议的S3C2440 USB Host Driver之协议介绍(一)

本文详细介绍了OHCI(USB主机控制器接口)的工作原理,包括周期性和非周期性传输类型,HC与HCD之间的通信渠道,ED和TD的数据结构,以及如何在HC和HCD中管理这些元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是OHCI

USB协议规定为四种传输类型--中断传输、控制传输、同步传输、批量传输。这里分为2种,周期传输和非周期传输。周期传输包括中断传输和同步传输,这是因为周期传输是要在1帧里的一段时间里必须进行的;非周期传输包括批量和控制传输,它们只要带宽空闲就可以传输。

在HC与HCD之间有2条通信渠道:第一条是在HC里的可操作寄存器;第二条是HCCA。

数据结构有2种:ED和TD

HCD负责分配ED和删除ED。HCD负责创建TD,HC负责删除TD。

ED包括HC与端点通信的必要信息,如MPS、端点地址,端点速度,数据流方向。ED链接成一个表。

一列TD链接在某个ED上,以ED作为锚点。TD包含了必要信息,描述了需要传输的数据包。信息有数据奇偶位,共享内存地址,完成状态代码。每一个TD描述了一个或多个数据包。每一个TD所描述的数据缓存可以从0到8192字节,是一个可以跨越页界限的物理页。


HC中的头指针指向批量和控制ED列表。HCD先初始化这些头指针,然后HC才可以访问。HCD需要先禁止HC处理指定的表,然后更新这些指针,再次使能HC。

HCCA中有指向中断ED表的头指针。第一个同步ED链接在最后一个中断ED上。有32个中断头指针。某一帧里,通过使用Frame Counter的低5位作为HCCA里的32个中断ED表的入口索引。


上图是一种情况,越接近于根,遍历的机会就越多,轮询率就越高。比如在根的一个ED。32个表都可以索引到,索引每帧都可以访问到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值