没有合适的资源?快使用搜索试试~ 我知道了~
首页EHCI驱动分析 .docx
资源详情
资源评论
资源推荐

EHCI 驱动分析

目录
主机控制器概述
主机控制器
关键数据结构
系统架构
规范概述( !""#)$
架构概述( ""#)$
定义的寄存器接口 %
定义的 &' %
操作模型( ! &)
(&&
) **+, '*,-
./&
) **010+, '" 2 &$
3(*
, !
4&"&"& 3
4/ ""#3
&
实现的接口 %
&"56%
&"56
&"56
*' &"56*'
37&"5678
&7&"56&73
&& &"56&& 33
$7&"5678 3
9&"56
% & &"56 & 3
主要场景分析
如何发现设备的插拔
如何完成提交的
1
如何支持 '0 设备

1.USB 主机控制器(Host Controller)概述
1.1 主机控制器(Host Controller)
:+;" +' 通用主机控制接口<%0
:=+;=+' 开放主机控制接口<%0
:>+;> &+' 用于 % 高速设备的“增强主机控制接口”
的拓扑结构决定了主机控制器就是最高统帅,没有主机控制器的要求设备永远不能
主动发数据。所以主机控制器在 的世界里扮演着重要的角色,它是幕后操纵者。
比如说 发送 包获取设备描述符是怎么发出去的?
这个过程包含很多信息,比如:如何在 -@和 -5这两根线上传过去的、又传过来的。 这
一切的工作都是主机控制器给我们做的。 控制器的规范有很多种,这里只介绍嵌
入式使用的 >+ 和 =+。这个 >+ 主要针对高速的 设备。如果要操作全速和低速可
以考虑 =+。
• 什么是 USB controller?
设备和主机的接口就是 ,一个主机可以支持多个 比
如分别属于不同厂商的。那么 本身是做什么的?控制器:用于
控制。控制什么?控制所有的 设备的通信。
( 把要做的事情分配给主机控制器,然后自己想干什么就干什么去,主机控制器替他
去完成剩下的事情,事情办完了再通知 (。否则让 ( 去盯着每一个设备做每一件事情,
那是不现实的。
控制器的主要工作是什么?把数扔出去,把数拿回来。绝对不应该偷偷加工数据。
主机控制器控制总线上包的传输, 使用 或 3 的帧。在每帧的开始时,主机控
制器产生一个帧开始包=A; 'A 。
=A 包用于同步帧的开始和跟踪帧的数目。包在帧中被传输,或由 到 -" 事
务,或由 -" 到 事务。传输总是由 发起轮询传输。回此每条 总线只
能有一个 。每个包的传输都有一个状态阶段同同步传输除外,数据接收者可以在其
中返回 .B应答接收,C.B重试,,.DD错误条件或什么也没有混乱数据阶段,设备不
可用或已经断开。

• 主机控制器 Driver 的工作是什么?
让主机控制器工作起来,发挥它的潜力。 让控制器发数据、收数据 。主机控制器主要
包含以下几步:
按照主机控制器的要求组织结构体
将结构体在合适的时间、放在合适的地方
**
等待完成信号
主机控制器 -" 开发过程就是上面这几步。
1.2 关键数据结构
关键数据结构关系如下图所示:

3
剩余63页未读,继续阅读














安全验证
文档复制为VIP权益,开通VIP直接复制

评论0