没有合适的资源?快使用搜索试试~ 我知道了~
ISP1161x(表示ISP1161 和ISP1161A)是一个单片通用串行总线(USB)主机控制器(HC)和设备控 制器(DC),它符合通用串行总线2.0 规范(全速)。这两个USB 控制器——主机控制器和设备控制器,共 用一个微处理器总线接口。这些控制器有相同的数据总线,但I/O 地址不同。它们也有各自的中断请求输 出管脚和独立的直接存储器存取(DMA)通道,DMA 通道含有各自的DMA 请求输出管脚(DREQ)和 DMA 应答输入管脚(DACK)。这就使微处理器在应用中可以对USB 主机控制器和USB 设备控制器同时 进行控制。
资源推荐
资源详情
资源评论
广州周立功单片机发展有限公司 Tel:(020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
1
ISP1161x 嵌入式编程指南
1. 简介 .............................................................................................................................................3
2. ISP1161X 软件模块.....................................................................................................................3
2.1
仅为主机模式........................................................................................................................3
2.2
仅为设备模式........................................................................................................................4
2.3
同时用作主机和设备模式 ....................................................................................................5
3. ISP1161X 硬件模块.....................................................................................................................5
3.1
主机控制器硬件模块 ............................................................................................................5
3.2
设备控制器硬件模块 ............................................................................................................6
4. ISP1161X 软件系统结构.............................................................................................................8
4.1
USB 主机软件系统结构 ........................................................................................................8
4.2
主机堆栈系统结构 ................................................................................................................9
4.3
USB 设备软件系统结构 ......................................................................................................11
5. 编程 ISP1161X 的主机控制器.................................................................................................11
5.1
可软件访问的硬件构件 ......................................................................................................11
5.2
HC 控制和状态寄存器 ........................................................................................................12
5.2.1 16 位和 32 位寄存器的写和读.....................................................................................13
5.3
ATL 和 ITL 缓冲区的写和读...............................................................................................15
5.4
典型的硬件初始化时序 ......................................................................................................15
5.4.1 检测主机控制器...........................................................................................................16
5.4.2 软件复位主机控制器...................................................................................................17
5.4.3 配置 HcHardwareConfiguration 寄存器 ......................................................................19
5.4.4 配置中断.......................................................................................................................20
5.4.5 配置 HcFmInterval 寄存器 ..........................................................................................23
5.4.6 配置根集线器寄存器...................................................................................................24
5.4.7 设置 ITL 和 AT L 缓冲区长度 .....................................................................................26
5.4.8 设置 INT1 中断服务程序 ............................................................................................26
5.4.9 设置主机控制器为可操作的状态...............................................................................27
5.4.10 设置主机控制器来执行 USB 枚举 ...........................................................................28
5.5
主机控制器驱动程序操作流程 ..........................................................................................31
5.6
访问 AT L 缓冲区.................................................................................................................31
5.6.1 使用 SOFITLInt 与 ATLInt..........................................................................................31
5.6.2 启动硬件扫描 AT L 缓冲区 .........................................................................................33
5.7
访问 ITL 缓冲区..................................................................................................................35
5.8
可操作模式下主机控制器的流程图 ..................................................................................37
5.9
设置传输 PTD .....................................................................................................................38
5.9.1 控制传输.......................................................................................................................40
5.9.2 批量、中断和同步传输...............................................................................................41
广州周立功单片机发展有限公司 Tel:(020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
2
5.10 数据结构链表的处理.........................................................................................................42
5.11
错误处理 ............................................................................................................................43
6. 编程 ISP1161X 的设备控制器.................................................................................................43
6.1
设备控制器的固件结构 ......................................................................................................43
6.1.1 硬件抽象层-HAL4SYS.C..........................................................................................44
6.1.2 硬件抽象层-HAL4D13.C..........................................................................................44
6.1.3 中断服务例程-ISR.C.................................................................................................44
6.1.4 协议层-CHAP_9.C ....................................................................................................44
6.1.5 协议层-D13BUS.C ....................................................................................................44
6.1.6 主循环-MAINLOOP.C ..............................................................................................44
6.2
固件到其它 CPU 平台的端口连接 ....................................................................................45
6.3
在查询模式下开发固件 ......................................................................................................45
6.4
硬件抽象层..........................................................................................................................45
6.4.1 系统的硬件抽象层.......................................................................................................45
6.4.2 ISP1161x 设备控制器的硬件抽象层 ...........................................................................46
6.5
中断服务例程......................................................................................................................47
6.5.1 总线复位.......................................................................................................................51
6.5.2 挂起变化.......................................................................................................................51
6.5.3 EOT 处理器...................................................................................................................51
6.5.4 控制端点处理器...........................................................................................................51
6.5.5 控制 OUT 处理器 ........................................................................................................52
6.5.6 控制 IN 处理器 ............................................................................................................54
6.5.7 批量端点处理器...........................................................................................................55
6.5.8 ISO 端点处理器 ............................................................................................................60
6.6
主循环..................................................................................................................................64
6.7
标准的设备请求..................................................................................................................65
6.7.1 清除特性请求...............................................................................................................65
6.7.2 取出状态请求...............................................................................................................67
6.7.3 设置地址请求...............................................................................................................67
6.7.4 取出配置请求...............................................................................................................68
6.7.5 取出描述符请求...........................................................................................................69
6.7.6 设置配置请求...............................................................................................................70
6.7.7 取出和设置接口请求...................................................................................................71
6.7.8 设置特性请求...............................................................................................................72
6.7.9 类请求...........................................................................................................................72
6.8
厂商请求..............................................................................................................................72
6.8.1 厂商请求批量传输.......................................................................................................73
6.8.2 CATC 捕获一个 PIO OUT 传输...................................................................................73
6.8.3 CATC 捕获一个 PIO IN 传输.......................................................................................74
6.8.4 厂商请求 ISO 传输 ......................................................................................................74
6.8.5 CATC 捕获一个 ISO OUT 传输...................................................................................75
6.8.6 CATC 捕获一个 ISO IN 传输.......................................................................................75
广州周立功单片机发展有限公司 Tel:(020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
3
1. 简介
ISP1161x(表示 ISP1161 和 ISP1161A)是一个单片通用串行总线(USB)主机控制器(HC)和设备控
制器(DC),它符合通用串行总线 2.0 规范(全速)。这两个 USB 控制器——主机控制器和设备控制器,共
用一个微处理器总线接口。这些控制器有相同的数据总线,但 I/O 地址不同。它们也有各自的中断请求输
出管脚和独立的直接存储器存取(DMA)通道,DMA 通道含有各自的 DMA 请求输出管脚(DREQ)和
DMA 应答输入管脚(DACK)。这就使微处理器在应用中可以对 USB 主机控制器和 USB 设备控制器同时
进行控制。
ISP1161x 为 USB 主机控制器提供两个下行端口,为 USB 设备控制器提供一个上行端口。每一个下行
端口都有它自身的过流(OC)检测输入管脚和电源转换控制输出管脚。上行端口有它自身的 V
BUS
检测输
入管脚。ISP1161x 还分别为 USB 主机控制器和 USB 设备控制器提供单独的唤醒输入管脚和挂起状态输出
管脚,这就使电源管理起来很灵活。主机控制器的下行端口可与任意一个符合 USB 规范的 USB 设备和包
含 USB 上行端口的 USB 集线器相连。类似地,设备控制器的上行端口可与任意一个符合 USB 规范的 USB
主机和包含 USB 下行端口的 USB 集线器相连。
主机控制器根据发布的 USB 1.0a 开放式主机控制器接口规范修改得到,请参考本文档其它部分中的
OHCI。
设备控制器符合大多数 USB 器件的分类规格,比如:成像类、海量存储器件、通信器件、打印设备以
及人机接口设备。ISP1161x 十分适用于仅需要一个 USB 主机、一个 USB 设备或一个综合可配置为 USB 主
机和 USB 设备功能的嵌入式系统和便携式设备。ISP1161x 在系统中的使用非常灵活,应用时甚至可将其内
置到系统中。例如,内置有 ISP1161x 的系统不但可以与含有 USB 下行端口的 PC 机或 USB 集线器相连,
而且还可以与含有 USB 上行端口的设备相连:如 USB 打印机、USB 相机、USB 键盘和 USB 鼠标等。因
此,ISP1161x 实现了嵌入式系统的点对点连接。其中最引人注意的例子是将一个 ISP1161x 的主机控制器和
一个 ISP1161x 的设备控制器相连。
2. ISP1161x 软件模块
ISP1161x 有 3 种工作模式(仅为主机模式、仅为设备模式以及同时用作主机和设备模式),每种模式
采用不同的软件模块进行操作。
2.1 仅为主机模式
仅为主机模式的软件模块由主机堆栈、一个或多个类驱动程序、零或多个设备驱动程序以及应用软件
组成。图 2-1 所示为数据流程和此软件模块中各部分软件组件的调用次序。
广州周立功单片机发展有限公司 Tel:(020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
4
图 2.1 ISP1161x 仅为主机模式的软件模块
由于单个 USB 主机控制器可与多个 USB 从机设备相连,因此仅为主机模式的软件模块可包含多个类
驱动程序,其中每个类驱动程序服务一种类型的 USB 从机设备。通常,应用软件通过直接访问类驱动程序
来执行 USB 操作。然而,在某些情况下,类驱动程序和应用软件之间的多个层、被描述为(dubbed)设备
驱动程序会有意义。例如,用户可以使有不同类型打印机的设备驱动程序,这些设备驱动程序访问一个通
用的 USB 打印机类驱动程序来实现打印机操作。
2.2 仅为设备模式
仅为设备模式的软件模块由设备堆栈、一个类驱动程序和应用软件组成。数据流程和此软件模块中各
部分软件组件的调用次序如图 2-2 所示。
图 2.2 ISP1161x 仅为设备模式的软件模块
由于一个 USB 从机设备执行一个单一的类功能,因此一个 USB 从机设备只能有一个类驱动程序。当
执行 USB 操作时,应用软件访问类驱动程序。
广州周立功单片机发展有限公司 Tel:(020)38730976 38730977 Fax:38730925 http://www.zlgmcu.com
5
2.3 同时用作主机和设备模式
ISP1161x 的大多数通用模式为同时用作主机和设备模式。该模式的软件模块通过结合仅为主机模式和
仅为设备模式的软件模块为一个单一的模块来实现。软件模块如图 2-3 所示。
图 2.3 ISP1161x 同时用作主机和设备模式的软件模块
在这种模式下,ISP1161x 就像单独用作 USB 主机和设备控制器那样工作。该模式的软件模块中的主机
端部分与设备端部分相互独立。也就是说,设备端的软件与主机端的软件可完全独立运行。
3. ISP1161x 硬件模块
3.1 主机控制器硬件模块
OHCI 主机控制器和 ISP1161x 之间的主要差别是:OHCI 主机控制器是一个总线主器件而 ISP1161x 不
是。在 OHCI 主机控制器内,系统存储器中的 USB 数据包通过 OHCI 主机控制器的总线主机 DMA 被发送
和接收。然而,在 ISP1161x 中,ISP1161x 内部的 ITL 和 AT L 缓冲区和系统存储器之间的 USB 数据包的传
输由微处理器控制执行。ISP1161x 无需使用 I/O 总线接口和总线主机 DMA,因而它也被称为“从机主机控
制器”。这是因为 ISP1161x 非常适用于选择主机控制器 IC 的低成本和设计简单的嵌入式应用中。
剩余74页未读,继续阅读
资源评论
zhangwei3084
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功