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

 
主机控制器通信区( 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 寄存器,确定中断原因。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值