第 12 卷 第 1 期 太 赫 兹 科 学 与 电 子 信 息 学 报 Vo1.12,No.1 2014 年 2 月 Journal of Terahertz Science and Electronic Information Technology Feb.,2014 文 章 编 号 :2095-4980(2014)01-0136-05 基 于 TMS320C6455 DSP 的 PCI 接 口 设 计 熊 璐 ( 中 国 电 子 科 技 集 团 公 司 第 10 研 究 所, 四 川 成 都 610036) 摘 要 :TMS320C6455 是 TI 公 司 的 一 款 高 性 能 数 字 信 号 处 理 芯 片 (DSP), 具 有 丰 富 的 外 部 接 口 本 文 介 绍 了 该 芯 片 外 围 设 备 组 件 互 连 (PCI) 接 口 控 制 器 的 性 能 特 点,DSP 内 部 的 工 作 机 制, 地 址 映 射 方 式, 详 细 分 析 了 2 种 工 作 方 式 的 总 线 传 输 特 点 和 性 能, 并 给 出 了 将 其 应 用 于 卫 星 基 带 信 号 接 收 卡 的 设 计 实 例 通 过 使 用 TMS320C6455 DSP 的 PCI 控 制 器 简 化 了 硬 件 接 口 设 计, 具 有 灵 活 高 效 的 特 点, 已 在 工 程 应 用 中 取 得 了 良 好 效 果 关 键 词 :TMS320C6455 接 口 ; 外 围 设 备 组 件 互 连 ; 地 址 映 射 ; 总 线 传 输 ; 中 断 中 图 分 类 号 :TN111 文 献 标 识 码 :A doi:10.11805/tkda201401.0136 Peripheral Component Interconnect interface design based on TMS320C6455 Digital Signal Processing XIONG Lu (The 10th Research Inst. of the CETC,Chengdu Sichuan 610036,China) Abstract:TMS320C6455 is a kind of high-performance fixed-point Digital Signal Processing(DSP), which integrates various peripherals. This paper firstly introduces the features of the Peripheral Component Interconnect(PCI) interface controller, the way to communicate with other modules in DSP and the address mapping of slave/master work mode. Then bus transfer characteristics and performance of two work modes is analyzed in detail and the application of its PCI interface controller on satellites baseband signal receiver is also given. TMS320C6455 s PCI interface controller can simplify the hardware design, and have the characteristics of flexible and efficient, therefore it has good application prospects in engineering practice. Key words:tms320c6455;peripheral Component Interconnect;address mapping;bus transfer; interrupt PCI 总 线 是 一 种 高 性 能 局 部 总 线, 其 数 据 总 线 为 32 bit, 可 扩 展 为 64 bit, 最 大 数 据 传 输 速 率 为 128 MBps~ 528 MBps 由 于 PCI 局 部 总 线 独 立 于 处 理 器 的 独 特 设 计 和 其 高 性 能 低 成 本 开 放 性 等 方 面 的 优 势, 它 已 在 嵌 入 式 计 算 机 和 工 业 控 制 计 算 机 方 面 具 有 广 泛 的 应 用 前 景 [1] 在 一 些 航 天 通 信 雷 达 的 应 用 中, 为 了 实 时 监 控 信 号 处 理 设 备 的 状 态 并 对 设 备 进 行 管 理 控 制, 往 往 需 要 将 信 号 处 理 的 各 种 数 据 通 过 PCI 总 线 传 送 到 上 位 机 中, 进 行 后 续 的 分 析 和 处 理 但 由 于 PCI 协 议 的 复 杂 性, 在 开 发 PCI 总 线 的 外 设 时 一 般 使 用 专 用 PCI 接 口 芯 片 进 行 数 据 传 输 TMS320C6455( 以 下 简 称 C6455 DSP) 是 TI 公 司 的 一 款 高 性 能 DSP, 不 仅 具 有 高 速 的 数 据 运 算 能 力, 而 且 有 丰 富 的 外 部 接 口, 如 外 部 存 储 器 EMIF 接 口 PCI 接 口 高 速 串 行 接 口 Serial RapidIO 三 速 以 太 网 MAC 控 制 器 等 [2] 使 用 C6455 DSP 所 提 供 PCI 接 口, 可 以 简 化 信 号 处 理 设 备 的 硬 件 设 计, 提 高 DSP 利 用 率, 使 这 种 数 据 交 换 变 得 简 单 容 易 1 C6455 DSP PCI 接 口 特 点 C6455 DSP 集 成 的 PCI 总 线 控 制 器, 具 有 以 下 特 点 [3] :a) 遵 循 PCI 规 范 r2.3;b) 提 供 独 立 的 PCI 接 口 功 能 ;c) 数 据 位 宽 32 bit;d) 总 线 时 钟 高 达 66 MHz;e) 优 化 的 突 发 传 输 功 能, 支 持 cache 行 为 16,32,64,128 字 节 [4] ;f) 支 持 主 收 稿 日 期 :2012-12-10; 修 回 日 期 :2013-01-23
第 1 期 熊 璐 : 基 于 TMS320C6455 DSP 的 PCI 接 口 设 计 137 模 式 / 从 模 式 2 种 数 据 传 输 工 作 模 式 2 C6455 的 PCI 控 制 器 与 DSP 内 部 的 通 信 方 式 L2 cache SRAM L1P cache SRAM L1D cache SRAM C6455 megamodule EMDA external EMIF PCI 控 制 器 与 EDMA 控 制 器 CPU 主 控 模 块 其 他 DSP 资 源 ( 如 EMIF,DSP 内 部 存 储 器 等 ) PCI 外 部 存 储 器 和 外 部 主 PCI module 控 设 备 的 连 接 关 系 如 图 1 所 示 PCI 总 线 通 过 数 据 交 换 中 心 资 PCI bus 源 (Data Switched Central Resource,DSCR) 与 DSP 的 内 部 资 源 相 连 当 C6455 DSP 作 为 主 设 备 时, 如 果 传 输 地 址 范 围 在 主 host 设 备 存 储 映 射 范 围 内,PCI 控 制 器 将 发 起 传 输, 在 PCI 总 线 上 Fig.1 Device module connection of C6455 DSP PCI controller 产 生 相 应 的 PCI 地 址 和 传 输 请 求 外 部 PCI 从 设 备 收 到 请 求 图 1 C6455 DSP PCI 模 块 设 备 连 接 框 图 后, 将 进 行 后 续 响 应 当 C6455 DSP 作 为 从 设 备 时, 如 果 外 部 PCI 主 设 备 发 起 传 输,PCI 控 制 器 内 部 地 址 译 码 模 块 将 对 PCI 总 线 上 的 地 址 进 行 译 码, 如 果 地 址 在 从 设 备 存 储 映 射 的 范 围 内,PCI 控 制 器 将 把 PCI 地 址 转 换 为 C6455 DSP 内 部 地 址, 由 其 内 部 交 换 结 构 发 送 到 其 他 从 模 块 上 C6455 DSP 内 部 总 线 的 每 一 个 从 模 块 对 此 地 址 进 行 译 码, 判 断 地 址 是 否 访 问 自 己 如 果 是, 则 进 行 相 应 的 后 续 响 应 如, 外 部 PCI 设 备 在 访 问 外 部 存 储 空 间 时,EMIF 将 使 用 C6455 DSP 内 部 地 址 来 寻 址 外 部 存 储 器 3 PCI 地 址 映 射 机 制 要 使 C6455 DSP PCI 控 制 器 能 够 正 常 的 进 行 总 线 操 作, 需 要 深 入 理 解 其 地 址 映 射 机 制 并 进 行 正 确 配 置 3.1 从 模 式 地 址 映 射 在 从 模 式 下,C6455 DSP 的 PCI 接 口 可 通 过 6 组 PCI size slave windows 地 址 转 换 寄 存 器 (PCI Address Translation Registers) 和 PCI address PCI 基 地 址 掩 码 寄 存 器 (PCI Base Address Mask translation registers (0 to 5) Registers), 将 DSP 的 内 部 任 何 存 储 空 间 或 寄 存 器 映 射 DSP PCI base address PCI 到 主 机 的 PCI 空 间 中 mask registers (0 to 5) C6455 DSP 从 模 式 窗 口 配 置 如 图 2 所 示 DSP 内 存 空 间 (DSP ) 为 C6455 DSP 内 部 的 内 存 空 间 PCI 内 存 空 间 (PCI ) 为 主 设 备 的 内 存 PCI base address registers (0 to 5) 空 间 PCI Address Translation Registers 配 置 为 C6455 starting address starting address DSP 中 需 要 映 射 的 存 储 空 间 的 起 始 地 址 PCI Base Fig.2 Slave mode configuration of C6455 DSP 图 2 C6455 DSP 从 模 式 窗 口 配 置 Address Registers 中 是 DSP 映 射 到 主 设 备 中 PCI 存 储 空 间 的 起 始 地 址, 一 般 由 主 设 备 在 系 统 启 动 枚 举 PCI 设 备 时 写 入 PCI Base Address Mask Registers 配 置 了 当 前 从 模 式 窗 口 需 要 映 射 的 存 储 空 间 大 小, 如 大 小 为 8 MB, 则 值 为 十 六 进 制 数 0xFF80 0000 在 主 设 备 配 置 PCI Base Address Registers 之 前,DSP 必 须 完 成 PCI Base Address Mask Registers 的 设 置, 这 样 主 设 备 才 能 在 启 动 时 正 确 的 为 DSP 的 PCI 分 配 存 储 空 间 资 源 3.2 主 模 式 地 址 映 射 DSP switch fabric 通 过 主 模 式 地 址 映 射,C6455 DSP 能 够 从 设 备 的 存 储 空 间 访 问 PCI 端 在 C6455 DSP 的 内 存 映 射 中, 为 PCI 分 配 了 256 MB 大 小 的 存 储 空 间 这 256 MB 大 小 的 存 储 空 间, 又 被 分 为 32 个 8 MB 固 定 大 小 的 存 储 映 射 窗 口 这 些 窗 口 被 称 为 主 模 式 窗 口 或 PCI 地 址 窗 口 通 过 配 置 每 一 个 主 模 式 窗 口, 可 以 使 8 MB 的 PCI 存 储 空 间 对 应 到 DSP 的 地 址 空 间 中 每 一 个 主 模 式 窗 口 对 应 了 8 MB DSP 的 PCI 存 储 地 址 空 间, 如, 窗 口 0 对 应 DSP 中 的 地 址 为 0x4000000~ 0x407FFFFF, 窗 口 1 对 应 下 一 个 8 MB, 即 0x40800000~0x40FFFFFF 每 一 个 窗 口 通 过 地 址 转 换 寄 存 器 (Address Substitution Register) 将 8 MB 的 PCI 存 储 空 间 和 DSP 的 PCI 存 储 地 址 空 间 对 应 起 来, 如 图 3 所 示 C6455 DSP 共 有 32 个 地 址 转 换 寄 存 器 (PCIADDSUBn,n=0~31) 每 一 个 寄 存 器 有 32 bit, 31 bit~23 bit 为 size
138 太 赫 兹 科 学 与 电 子 信 息 学 报 第 12 卷 对 应 PCI 内 存 空 间 地 址 的 高 字 节 (Most Significant Byte, MSB), 其 他 23 bit 表 示 窗 口 大 小 当 DSP 内 存 地 址 为 0x40801234 时, 该 地 址 的 27 bit~23 bit 为 00001, 因 此 对 应 PCI 窗 口 1 若 PCIADDSUB1 为 0x12800000, 当 DSP 访 问 地 址 0x40801234, 则 相 当 于 访 问 地 址 为 0x12801234 的 PCI 内 存 空 间 size =8 MB PCI master window PCI address substitution registers (0 to 31) fixed starting addresses for 32 windows in DSP PCI space DSP size =8 MB 4 设 计 实 例 4.1 硬 件 框 图 starting address Fig.3 Master mode configuration of C6455 DSP 图 3 C6455 DSP 主 模 式 窗 口 配 置 图 4 为 某 基 于 CPCI 的 卫 星 信 号 接 收 板 卡 的 硬 件 原 理 框 图 CPCI 总 线 采 用 PCI 总 线 的 电 气 标 准, 继 承 了 PCI 总 线 的 高 传 输 率 能 力, 并 兼 容 PCI 规 范, 还 具 备 高 速 的 数 据 传 输 率 高 可 靠 性 的 物 理 结 构 [5] 该 接 收 板 完 成 载 波 捕 获 跟 踪, 遥 测 测 距 信 号 解 调, 速 度 距 离 数 据 提 取 等 功 能 中 频 信 号 通 过 A/D 采 样 后, 由 FPGA1 和 FPGA2 完 成 信 号 的 载 波 跟 踪 位 同 步, 解 调, 编 译 码 等 [6] C6455 DSP 完 成 与 信 号 处 理 相 关 的 各 种 运 算, 如 FFT 变 换, 距 离 速 度 值 计 算 等 C6455 DSP 同 时 将 解 调 的 数 据 和 FPGA 中 各 工 作 模 块 的 状 态 通 过 PCI 总 线 上 报 到 上 位 机 的 人 机 交 互 界 面 中 即 监 控 软 件 中 上 位 机 可 通 过 软 件 向 C6455 DSP 发 送 控 制 命 令, 改 变 DSP C6455 和 FPGA 的 工 作 参 数 IF signal A/D EMIF FPGA1 FPGA2 DSP C6455 FLASH RJ45 PH DDR Fig.4 Block diagram of hardware 图 4 硬 件 原 理 框 图 CPCI bus host 4.2 系 统 初 始 化 在 系 统 启 动 后,C6455 从 片 外 ROM 中 加 载 程 序 后, 将 用 户 设 定 的 PCI 配 置 信 息 写 入 PCI 配 置 寄 存 器 中 PCI 配 置 寄 存 器 存 在 于 配 置 空 间 中, 用 于 设 备 的 识 别 域, 有 供 应 商 ID 域 设 备 ID 域 版 本 域 头 标 类 型 域 分 类 代 码 域 上 位 机 作 为 主 设 备 通 过 总 线 枚 举 发 现 PCI 设 备 C6455 并 为 其 分 配 映 射 的 内 存 空 间 系 统 初 始 化 时,DSP 是 工 作 在 从 模 式 下, 上 位 机 为 C6455 的 PCIBAR0 到 PCIBAR5 分 配 相 应 PCI 内 存 空 间 如 图 5 所 示,DSP 中 PCI 控 制 器 相 关 寄 存 器 映 射 到 DSP 地 址 空 间 的 基 地 址 为 0x02C00000, 在 PCIBAR2 的 地 址 范 围 中 当 上 位 机 需 要 访 问 C6455 的 内 部 寄 存 器 时, 只 需 要 读 写 PCIBAR2 并 加 上 相 应 的 偏 移 地 址 就 可 以 了 DSP 上 报 PCI 的 数 据 和 上 位 机 控 制 命 令 缓 存 在 DSP 的 L2 偏 移 地 址 为 0x00900000 的 内 存 0x00800000 0x00900000 0x00980000 0x02C00000 DSP address space L2 program data command PCI registers PCI address space PCIBAR0 PCIBAR1 PCIBAR2 PCIBAR3 PCIBAR4 Fig.5 Address mapping diagram 中,L2 的 起 始 地 址 为 0x00800000 用 于 程 序 运 行, 映 射 到 图 5 地 址 空 间 映 射 图 PCIBAR0 中 4.3 PCI 接 口 数 据 传 输 设 计 在 实 际 应 用 中, 为 了 向 用 户 提 供 良 好 的 人 机 界 面, 上 位 机 选 用 了 Windows XP 操 作 系 统 但 是, 在 PCI 中 断 较 多 数 据 量 大 的 时 候, 由 于 Windows 操 作 系 统 的 非 实 时 buffer0 buffer1 buffer2 buffer7 性 和 PCI 总 线 利 用 率 不 高 的 原 因, 导 致 总 线 数 据 的 传 输 速 率 往 往 很 难 达 到 系 统 要 求 如 何 降 低 系 统 CPU 的 负 荷, Fig.6 Transfer cache mode of FIFO 图 6FIFO 传 输 缓 存 方 式 提 高 PCI 总 线 数 据 的 传 输 速 率, 成 了 类 似 应 用 设 计 的 关 键 为 了 解 决 上 述 问 题, 当 需 要 上 报 数 据 时,C6455 DSP PCI 控 制 器 工 作 在 主 模 式 下, 定 时 将 DSP 的 解 调 数 据 上 报 到 上 位 机 中, 并 在 Windows 的 PCI 驱 动 中 用 先 进 先 出 (First In First Out,FIFO) 的 缓 存 方 式 防 止 数 据 丢 失
第 1 期 熊 璐 : 基 于 TMS320C6455 DSP 的 PCI 接 口 设 计 139 C6455 DSP 工 作 在 主 模 式 的 时 候 是 发 起 总 线 数 据 传 输 的 主 设 备, 因 此 不 需 要 上 位 机 CPU 参 与 PCI 总 线 数 据 的 传 输, 大 大 减 轻 了 上 位 机 系 统 负 荷 为 了 在 C6455 DSP 进 行 PCI 数 据 传 输 时 不 影 响 DSP 运 行 的 其 他 任 务, 采 用 了 EDMA(Enhanced DMA) 控 制 器 进 行 数 据 传 输 EDMA 是 TMS320C6x 系 列 DSP 的 一 种 重 要 的 数 据 访 问 方 式 [8] 支 持 多 种 灵 活 传 输 方 式, 在 数 据 传 输 时 不 需 要 DSP 的 CPU 模 块 参 与, 因 此 减 小 了 DSP 处 理 数 据 负 担 C6455 DSP 有 64 个 EDMA 通 道, 每 一 个 通 道 都 有 个 事 件 与 之 关 联, 由 具 体 的 事 件 触 发 相 应 的 通 道 进 行 数 据 传 输 本 设 计 中,Windows 的 驱 动 程 序 采 用 DriverWorks 进 行 开 发 当 DSP 工 作 在 主 模 式 时,Windows 上 位 机 在 Windows 驱 动 中 为 解 调 数 据 分 配 了 8 个 固 定 的 内 存 块, 将 这 8 个 固 定 内 存 块 在 上 位 机 内 存 空 间 中 的 地 址 依 次 写 入 C6455 DSP 寄 存 器 PCIADDSUB0-PCIADDSUB8 中 C6455 DSP 通 过 访 问 相 应 的 主 模 式 窗 口 就 可 以 读 写 对 应 的 缓 存 当 DSP 准 备 好 一 帧 数 据 后, 触 发 EDMA 控 制 器, 把 数 据 依 次 搬 移 到 这 些 缓 存 中, 并 为 每 一 块 缓 存 赋 予 数 据 有 效 标 志 EDMA 搬 移 完 一 帧 数 据 后,DSP 向 上 位 机 发 中 断, 上 位 机 收 到 中 断 后, 应 用 程 序 根 据 驱 动 中 每 块 缓 存 的 数 据 有 效 标 志 来 读 取 相 应 数 据 这 样 在 上 位 机 Windows 应 用 程 序 无 法 及 时 响 应 中 断 时, 数 据 仍 保 存 在 驱 动 缓 存 中, 在 下 次 中 断 到 来 后, 将 上 次 未 读 出 的 数 据 读 出, 而 不 会 发 生 数 据 丢 失 4.4 参 数 控 制 及 工 作 流 程 当 上 位 机 要 改 变 C6455 DSP 和 FPGA 的 参 数 设 置 时, 通 过 PCI 向 C6455 DSP 发 送 中 断,C6455 DSP 收 到 中 断 后, 读 取 上 位 机 内 存 中 的 命 令 数 据 并 进 行 相 应 的 后 续 处 理 表 1 为 与 中 断 相 关 的 C6455 DSP 寄 存 器 表 1 C6455 DSP 中 断 相 关 寄 存 器 Table1 Interrupt related registers of C6455 DSP register name description PCISTATSET PCI status set register PCISTATCLR PCI status clear register PCIHINTSET host interrupt enable set register PCIHINTCLR host interrupt enable clear register PCIBINTSET back end application interrupt enable set register PCIBINTCLR back end application interrupt enable clear register (PCIHINTSET=0x01000000) Is it DSP s interrupt? clear interrupt (PCIHINTCLR = 0x01000000)? disable interrupt (PCISTATCLR = 0x80000000) (PCIBINTSET = 0x80000000) Is it host s interrupt? go to interrupt service routine read data from PCI BAR0 clear interrupt (PCISTATCLR = 0x80000000) (PCIHINTSET=0x01000000) read data from L2 cache 上 位 机 接 收 中 断 通 信 流 程 图 如 图 7 所 示 图 8 为 DSP 中 断 响 应 流 程 DSP 的 PCI 中 断 对 应 DSP 中 断 事 件 INTERRUPT EVENT 15, 在 本 例 中 将 INTERRUPT EVENT 15 映 射 到 外 部 中 断 7 上 这 样, 当 上 位 机 向 PCISTATSET 写 入 0x80000000 对 DSP 发 送 中 断 时,DSP 程 序 指 针 将 自 己 跳 转 到 中 断 7 的 中 断 服 务 程 序 函 数 5 结 论 Fig.7 Flow chart of host communication by receiving interrupts 图 7 上 位 机 接 收 中 断 通 信 流 程 图 Fig.8 Flow chart of DSP interrupts response 图 8 DSP 中 断 响 应 流 程 使 用 C6455 DSP 的 总 线 接 口 不 需 要 专 用 的 PCI 接 口 芯 片, 节 省 了 成 本, 简 化 电 路 复 杂 度, 使 DSP 和 上 位 机 之
140 太 赫 兹 科 学 与 电 子 信 息 学 报 第 12 卷 间 的 数 据 传 输 更 加 高 效 通 过 测 试, 本 文 中 基 于 C6455 DSP 的 接 收 机 板 卡 对 卫 星 下 行 数 据 上 报 速 率 最 高 可 达 37 MBps, 满 足 工 程 要 求, 已 应 用 于 工 程 中, 并 取 得 了 良 好 的 效 果 参 考 文 献 : [ 1 ] 赖 小 红, 陈 长 龄, 张 艳 荣. PCI 功 能 软 接 口 快 速 设 计 [J]. 太 赫 兹 科 学 与 电 子 信 息 学 报, 2004,6(2):140-142. (LAI Xiaohong, CHEN Changling,ZHANG anrong. Quick Developing of PCI Interface Program[J]. Journal of Terahertz Science and Electronic Information Technology, 2004,6(2):140-142.) [ 2 ] Texas Instruments Incorporated. TMS320C6455 Fixed-Point Digital Signal Processor[Z]. 2006. [ 3 ] Texas Instruments Incorporated. TMS320C645x DSP Peripheral Component Interconnect(PCI) User's Guide,SPRUE60A[Z]. 2006, [ 4 ] Tom Shanley,Don Anderson. PCI 系 统 结 构 [M]. 北 京 : 电 子 工 业 出 版 社, 2000. (Tom Shanley,Don Anderson. PCI System Architecture[M]. Beijing:Publishing House of electronics industry, 2000.) [ 5 ] 赵 峰, 苏 涛, 何 学 辉, 等. 主 机 与 CPCI 总 线 通 用 信 号 处 理 板 的 通 信 [J]. 太 赫 兹 科 学 与 电 子 信 息 学 报, 2005,3(1):51-55. ZHAO Feng,SU Tao,HE Xuehui,et al. Communication Between Host and Signal Processing Module Based on CPCI Bus[J]. Journal of Terahertz Science and Electronic Information Technology, 2005,3(1):51-55.) [ 6 ] 刘 进 军. 采 用 CPCI 总 线 的 通 用 高 速 数 传 接 收 机 [J]. 电 讯 技 术, 2012,10(10):1644-1647. (LIU Jinjun. A General High-rate Data Transmission Receiver Base on CPCI BUS[J]. Telecommunication Engineering, 2012,10(10):1644-1647.) [ 7 ] 杨 柳, 蔡 超, 周 成 平, 等. TMS320C6155 PCI 协 处 理 卡 WDM 驱 动 程 序 设 计 [J]. 现 代 电 子 技 术, 2010(24):51-54. (ANG Liu,CAI Chao,ZHOU Chengping,et al. WDM Driver Design of PCI Co-processing Card for TMS320C6455[J]. 2010(24):51-54.) [ 8 ] Texas Instruments Incorporated. TMS320C645x DSP Enhanced DMA(EDMA3) Controller User Guide,SPRU966C[Z]. 2011. 作 者 简 介 : 熊 璐 (1981-), 女, 四 川 省 南 部 县 人, 硕 士, 主 要 研 究 方 向 为 PCI 总 线 接 口 Windows 驱 动 硬 件 设 计 工 作.email:xluluck@163.com.