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

转载 2012年03月22日 09:57:00
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。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寄存器,确定中断原因。

相关文章推荐

基于OHCI的USB主机 HCCA

  • 2013年06月22日 20:20
  • 177KB
  • 下载

USB主机控制器驱动——OHCI分析

首先,整个驱动框架的开始,是基于 platform 平台总线的。 struct platform_device s3c_device_usb = { .name = "s3c2410-ohci...

基于OHCI的USB主机 —— 目录

我的《基于OHCI的USB主机》系列文章已经完毕了,我觉得需要建立一个目录,以便需要的人可以迅速找到所需要的文章。本文档的目标就是建立一个该系列文章的目录,可能还会对每个部分进行简单介绍。 第一...

1.3 基于OHCI的USB主机 —— 总体构架

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/228153 ...

1.1基于OHCI的USB主机 —— 前言

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/328233 ...

1.2基于OHCI的USB主机 —— 背景介绍

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/226133 ...

3.17 基于OHCI的USB主机 —— 中断处理程序

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/261181 ...

4.3 基于OHCI的USB主机 —— USB标准请求

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/269441 ...

基于OHCI的USB主机

  • 2013年06月23日 22:17
  • 177KB
  • 下载

基于AT91RM9200 OHCI的USB主机

  • 2014年05月21日 10:56
  • 514KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:3.3 基于OHCI的USB主机 —— OHCI(HCCA)
举报原因:
原因补充:

(最多只允许输入30个字)