• 沒有找到結果。

带 On-The-Go 支持的通用串行总线 (USB OTG)

在文檔中 的 64/80/100 引脚 (頁 197-200)

PIC24FJ256GB110 系列器件包含全速和低速兼容的 USB 串行接口引擎 (Serial Interface Engine, SIE),

并带有On-The-Go(OTG)功能。OTG 功能使器件可 用作 USB 外设器件,也可以用作具有有限主机功能的 USB 嵌入式主机。OTG 功能允许器件用 OTG 的主机协 商协议 (HNP)在器件与主机操作间动态切换。

关于OTG操作的详细信息,请参见USB-IF公布的“USB 2.0 规范 On-The-Go 补充信息”。关于 USB 操作的更多 详细信息,请参见 “通用串行总线规范”v2.0。

USB OTG 模块提供以下特性:

• 器件和主机模式下的 USB 功能与应用程序控制模 式下的OTG 功能切换

• 可用软件选择的模块速度:全速 (12 Mbps)或 低速 (1.5 Mbps,仅在主机模式下可用)

• 支持所有 4 种 USB 传输类型:控制、中断、批量和 同步

• 总共 32 个单向端点可构成 16 个双向端点

• 用于数据 RAM 快速操作的 DMA 接口

• 最多 16 个单向端点传输队列,无需服务

• 集成的片上 USB 收发器,通过数字接口支持片外 收发器

• 使用片上比较器的集成 VBUS生成和升压生成,通 过数字接口支持外部VBUS比较器和稳压器

• 片上总线上拉和下拉电阻配置

图17-1 给出了 USB OTG 模块的简化框图。

USB OTG 模块可用作 USB 外设器件或 USB 主机,并 且可通过软件控制在器件和主机模式间动态切换。两种 模式使用相同的数据路径和缓冲器描述符进行数据的发 送和接收。

讨论USB 操作时,本章使用以控制器为中心的命名法说 明单片机与USB 间数据传输的方向。 Rx (接收)用于 说明将数据从 USB 移动到单片机的传输, Tx (发送)

用于说明将数据从单片机移动到USB 的传输。表 17-1 给出了这种命名法的数据方向与 USB 令牌交换间的关 系。

17-1: USB 主机或目标器件以控制器为

中心的数据方向

本章将介绍在应用中实现USB OTG 功能需要的最基本 操作。对USB 协议及其 OTG 补充信息的完整详细的讨 论超出了本数据手册的范围。我们假定用户对 USB 架 构和最新版该协议已有基本了解。

这里并未囊括正确的USB 操作的所有步骤 (如器件枚 举)。建议应用程序开发人员用正确的器件驱动程序实 现所有必需的功能。Microchip 提供许多特定于应用的 资 源,例 如 USB 固 件 和 驱 动 程 序 支 持。请 访 问 www.microchip.com 获得最新的固件和驱动程序支持。

注: 本数据手册总结了PIC24F 器件的功能。但 是不应把本手册当作无所不包的参考手册 来使用。更多信息,请参见《PIC24F 系列 参考手册》的“第

27 章 USB On-The-Go

(OTG)”。

USB 模式

方向

接收 发送

器件 OUT 或 SETUP IN

主机 IN OUT 或 SETUP

PIC24FJ256GB110 系列

DS39897B_CN 第196 页

初稿

 2009 Microchip Technology Inc.

17-1: USB OTG 模块框图

48 MHz USB 时钟

VUSB D+(1)

D-(1)

USBID(1)

VBUS

收发器

VBUSON(1)

比较器 USB SRP 充电

SRP 放电

寄存器和 控制 接口

收发器电源3.3V

电压

系统 RAM 全速上拉

主机下拉

主机下拉

1: 引脚与数字 I/O 及其他器件功能复用。

VMIO(1) VPIO(1) DMH(1) DPH(1) DMLN(1) DPLN(1) RCV(1)

VBUS 升压 辅助 外部收发器接口

USBOEN(1)

USB 3.3V 稳压器 VCMPST1(1)

VCMPST2(1) VBUSST(1) VCPCON(1)

SIE USB

 2009 Microchip Technology Inc.

初稿

DS39897B_CN 第 197 页

PIC24FJ256GB110 系列

17.1 USB 缓冲器描述符和 BDT

端点缓冲器控制是通过叫做缓冲器描述符表 (Buffer Descriptor Table,BDT)的结构处理的。它为用户提供 了灵活的方法,用于构造和控制不同长度和配置的端点 缓冲器。

BDT 可位于任何可用的 512 字节对齐的数据 RAM 块 中。BDT 指针 (U1BDTP1)包含 BDT 的高位地址字 节,设置 BDT 在 RAM 中的位置。用户必须设置该指 针,以指示该表的位置。

BDT 由缓冲器描述符(Buffer Descriptor,BD)组成,

后者用于定义和控制USB RAM 空间中的实际缓冲器。

每个BD 都包含两个 16 位 “软”(非固定地址)寄存 器、BDnSTAT 和 BDnADR,其中 n 代表 64 个可能的 BD(范围从 0 到 63)之一。 BDnSTAT 是 BDn 的状态 寄存器,而BDnADR 指定与 BDn 相关的缓冲器的起始 地址。

根据所用的端点缓冲配置,对于总共256 字节,最多有 64 组缓冲器描述符。 BDT 至少要有 8 个字节长。这是 因为 USB 规范要求每个器件都必须有带输入和输出的 端点0,用于初始设置。

BDT 中的端点映射取决于三个变量:

• 端点号 (0 到 15)

• 端点方向 (接收或发送)

• 乒乓设置 (U1CNFG1<1:0>)

图17-2 例举了如何用这些变量在 BDT 中映射端点。

在主机模式下,只使用端点0 缓冲器描述符。所有传输都 使用端点0 缓冲器描述符和端点控制寄存器(U1EP0)。

对于接收到的数据包,所连接器件的源端点用USB 状态 寄存器中的ENDPT3:ENDPT0 (U1STAT<7:4>)的值表 示。对于发送的数据包,所连接器件的目标端点用写入令 牌寄存器 (U1TOK)的值表示。

17-2:

端点缓冲模式的

BDT 映射

EP1 发送偶数 EP1 接收偶数

EP1 接收奇数

EP1 发送奇数 描述符

描述符

描述符

描述符 EP1 发送

EP15 发送 EP1 发送 EP0 接收 PPB1:PPB0 =00

EP0 发送

EP1 发送 无乒乓

EP15 发送 EP0 发送 EP0 接收偶数 PPB1:PPB0 =01

EP0 接收奇数

EP1 发送 EP0 OUT 上的

EP15 发送奇数 EP0 发送偶数 EP0 接收偶数 PPB1:PPB0 =10

EP0 接收奇数

EP0 发送奇数 所有EP 上的

描述符

描述符

描述符 描述符

描述符

描述符

描述符 描述符

描述符

描述符

描述符

描述符

注: 存储器区域未按比例显示。

描述符

描述符

描述符

缓冲器 乒乓缓冲器 乒乓缓冲器

EP1 发送偶数 EP1 接收偶数

EP1 接收奇数

EP1 发送奇数 描述符

描述符

描述符

描述符

EP15 发送奇数 EP0 接收 PPB1:PPB0 =11

EP0 发送 所有其他EP 上的

描述符 描述符

描述符 乒乓缓冲器

(EP0 除外)

总BDT 空间: 总BDT 空间: 总BDT 空间: 总BDT 空间:

128 字节 132 字节 256 字节 248 字节

描述符

在文檔中 的 64/80/100 引脚 (頁 197-200)