您的位置:首页 > 其它

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

2009-12-04 16:44 405 查看
主机控制器通信区(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寄存器,确定中断原因。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  主机 USB OHCI mdash HCCA