3.3 基于OHCI的USB主机 —— OHCI(HCCA)

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://lancelot.blog.51cto.com/393579/238666
 
主机控制器通信区(HCCA)是一个256字节对齐的内存数据结构,被系统软件用于与HC进行通信,收发相关控制和状态信息。系统软件通过HcHCCA寄存器设置HCCA的地址到HC。该结构允许软件给HC的函数指明方向,而不需要从HC读取,除非不寻常的状况发生(例如发生错误)。通常与HC的交互可以通过读取HCCA结构的值或者写入HC操作寄存器来完成。
 
HC周期性的将HcDoneHead寄存器的值写入到内存HccaDoneHead,以便主机软件可以处理已完成的TD。通常HcDoneHead在每一帧的开始,并且中断延时计数器为0时完成数据更新。在HcDoneHead被写入到HccaDoneHead之后,HC设置HcDoneHead寄存器的值为0,并且设置HcInterruptStatus寄存器的WD位为1。在写完HccaDoneHead之后,HC可以开始建立新的已完成队列,但是新的队列只有在HCD清除了WDH位以后才可以进行。
 
在HC产生的中断上,HCD检查HccaDoneHead值。如果该值为0,则该中断不是HccaDoneHead更新所产生,而是需要访问HcInterruptStatus寄存器以确定正确的中断原因。如果HccaDoneHead非0,表明该中断是由于已完成队列产生,如果最低位的值非0,则表明同时还产生了中断,需要访问HcInterruptStatus寄存器,确定中断原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值