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

本文介绍了基于OHCI协议的S3C2440 USB Host Driver中如何进行端点选择和服务,详细阐述了ED(Endpoint Descriptor)和TD(Transfer Descriptor)的工作原理,包括数据传输顺序、错误处理和传输完成的条件。重点讲解了ED的skip和halted位、TD的内存地址和数据toggle值等关键概念。
摘要由CSDN通过智能技术生成

OpenHCI通过两级仲裁在端点中选择哪一个服务。第一级是表级。每一个需要服务的端点类型在相应的类型表里。HC选择服务哪一个表。而在表内,端点都有差不多公平的机会被访问到。HCD通知设置HcPeriodicStart限制从帧开始到开始要服务周期表的时间。周期表服务时,当前帧下,中断表优先于同步表。当周期表服务完,控制和批量有可能会接着服务。

ED作为锚点,供一列TD依附在其上。当HC访问ED且找到一个有效的TD地址,HC完成与指定ED的单笔事务,TD表明了内存地址。

当一个TD所定义的所有数据都传输完,TD从他的ED上解下,且连到完成队列。


ED描述符


FA就是设备地址

EN就是端点地址

D为方向

S为速度

K为skip表明HC服务时,是否要跳过当前ED

F为格式(F=1为的话,使用的是ITD)

MPS最大包数据尺寸

H就是halted位,一般TD错误会设置该位

C就是toggleCarry位,一个TD退休,向该位写上一个数据的data toggle value

HeadP指向第一个要处理的TD

NextED若非0,表明表上下一个ED

HC处理一个ED,先检查skip和halted位决定ED的下一步任何操作是否允许。若任何一位设置,HC继续访问该表上下一个ED。如果任何一个都没设置,HC就会比较HeadP和TailP,若不等,那么由HeadP指向的TD定义了一个buffer,HC会与该buffer通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值