HPI 接 口 在 TI SOC 的 应 用 详 解 德 州 仪 器 半 导 体 技 术 ( 上 海 ) 有 限 公 司 DSP 技 术 支 持 工 程 师 唐 超 伦 摘 要 本 文 从 总 体 上 介 绍 HPI(Host Peripheral Interface) 接 口 的 工 作 模 式, 与 上 位 主 机 的 连 接 方 式, 主 机 访 问 的 操 作 流 程 ; 归 纳 了 应 用 当 中 常 见 问 题, 并 提 供 了 分 析 解 决 办 法 简 介 HPI 接 口 是 TI 为 处 理 器 之 间 直 接 互 连 通 讯 定 义 的 一 种 异 步 接 口, 大 多 数 TI DSP 芯 片 上 都 有 HPI 接 口 HPI 接 口 是 从 (Slave) 端 口, 接 在 主 机 的 扩 展 内 存 总 线 上,DSP 不 能 通 过 HPI 向 主 机 (Host) 的 访 问, 只 能 被 主 机 读 写 两 个 DSP 的 HPI 接 口 之 间 不 能 通 讯 两 个 DSP 之 间 互 连, 可 以 将 一 个 DSP( 从 ) 的 HPI 接 到 另 一 个 DSP( 主 ) 的 扩 展 内 存 接 口 (EMIF) 上 [1] 1. HPI 工 作 模 式 不 同 系 列 DSP 上 的 HPI 接 口 版 本 有 所 不 同, 区 别 体 现 在 DSP 对 HPI 的 控 制 上, 如 C6727 上 的 UHPI 可 通 过 寄 存 器 使 能 与 关 闭 HPI 接 口, 对 主 机 访 问 DSP 内 存 空 间 的 控 制, 以 及 对 HPI 接 口 信 号 的 功 能 复 用 上 但 从 主 机 访 问 的 角 度, HPI 的 工 作 模 式 分 为 : 复 用 模 式 (Multiplexed-Mode) 和 非 复 用 模 式 (Non-multiplexed-Mode) 复 用 模 式 下 没 有 地 址 线, 主 机 访 问 DSP 的 地 址 信 息 是 以 数 据 方 式 送 到 HPIA(HPI 地 址 寄 存 ) 从 硬 件 信 号 的 角 度, 地 址, 数 据 信 号 是 由 同 一 组 数 据 线 传 递, 所 以 称 为 复 用 模 式 非 复 用 模 式 的 数 据 线 与 地 址 线 是 分 开 的, 与 内 存 接 口 连 接 相 似 非 复 用 模 式 不 需 要 操 作 HPIA 寄 存 器, 主 机 访 问 的 地 址 信 息 通 过 地 址 总 线 直 接 送 给 HPI 所 有 的 HPI 接 口 都 支 持 复 用 模 式, 但 不 是 所 有 芯 片 的 HPI 接 口 都 支 持 非 复 用 模 式 ( 参 考 相 应 的 芯 片 手 册 确 定 是 否 支 持 ) 除 了 有 无 HPIA 的 操 作 区 别 外, 两 种 模 式 的 操 作 没 有 区 别 因 为 非 复 用 模 式 的 操 作 是 复 用 模 式 操 作 的 子 集, 为 方 便 起 见, 本 文 以 复 用 模 式 展 开 讨 论 2. HPI 硬 件 信 号 连 接 HPI 接 口 复 用 模 式 连 线 如 图 1 所 示, 根 据 在 应 用 当 中 的 必 要 性 分 为 : 必 要 的, 和 可 选 的 两 组 信 号 可 选 的 信 号 以 虚 线 表 示 1
Host ALE Address ALE HCNTRL[1:0] HHWIL DSP R/W HR/W Data Strobes BE Ready Interrupt Data[15:0] HDS1 HDS2 HCS BE HRDY HINT HD[0:n] HSTROB 图 1. HPI 接 口 复 用 模 式 硬 件 连 接 数 据 线 HD[0:n]: 在 复 用 模 式 下, 数 据 线 的 宽 度 一 般 为 CPU 位 宽 的 一 半, 一 个 HPI 访 问 分 为 高 低 半 字 的 两 次 访 问, 如 C5000 是 16-bit CPU,HPI 数 据 线 为 8 位,C6000 是 32-bit CPU, 其 HPI 数 据 线 为 16 位 C64x 系 列 的 HPI 支 持 32 位, 在 32 位 模 式 下 一 个 HPI 访 问 不 需 要 分 为 高 低 半 字 两 次 访 问 组 成 一 个 完 整 的 访 问 HCNTL0/1,HWIL:HCNTL0/1 选 择 要 访 问 的 HPI 寄 存 器,HWIL 控 制 访 问 寄 存 器 的 高 低 半 字, 必 须 先 高 后 低 一 个 寄 存 器 的 高 低 半 字 的 两 次 访 问 一 定 要 连 续 完 成, 中 间 不 能 插 入 其 它 的 HPI 操 作 只 有 HPIC 可 以 只 访 问 半 个 字 HR/W: 指 示 对 HPI 寄 存 器 进 行 读, 还 是 写 操 作 如 果 主 机 的 读, 写 信 号 是 分 开 的, 可 以 利 用 其 中 一 个 信 号, 但 要 注 意 做 上 拉 或 下 拉 处 理 以 控 制 其 在 三 态 时 的 电 平 HCS,HDS1/2: 这 三 个 信 号 根 据 图 2 的 逻 辑 产 生 内 部 HSTROBE 信 号, 其 逻 辑 关 系 是 要 求 HDS1 和 HDS2 信 号 相 反,HCS 低 有 效 HSTROB 下 降 沿 的 时 间 点 反 应 的 是 三 个 信 号 中 最 后 跳 变 的 信 号 HPI 在 HSTROB 的 下 降 沿 采 样 控 制 信 号 HR/W,HCNTL0/1,HWIL 以 判 断 主 机 要 对 哪 个 寄 存 器 进 行 读, 或 者 写 操 作 命 令 注 意 控 制 信 号 在 HSTROBE 的 下 降 沿 之 前 需 要 最 少 5ns 的 setup 稳 定 时 间, 而 HDS1/2 和 HCS 到 HSTROBE 信 号 内 部 门 电 路 的 延 时 是 皮 秒 级 的, 所 以 控 制 信 号 的 setup 时 间 需 要 外 部 时 序 保 证 图 2. HSTROBE 信 号 产 生 逻 辑 HRDY:HPI 的 输 出 信 号, 指 示 当 前 操 作 状 态, 用 做 硬 件 流 量 控 制 握 手 信 号 HINT: 通 过 HPI, 主 机 与 DSP 之 间 可 以 互 发 中 断 HINT 是 HPI 送 给 主 机 的 中 断 信 号, DSP 对 HPIC[HINT] 位 写 1,HINT 信 号 线 上 送 出 高 电 平 信 号, 主 机 可 利 用 此 信 号 做 为 中 2
断 信 号 输 入 DSP 不 能 清 除 HPIC[HINT] 状 态, 主 机 在 响 应 中 断 后, 需 要 对 HPIC[HINT] 位 写 1 清 除 状 态,DSP 才 能 再 次 对 HPIC[HINT] 置 位 发 中 断 主 机 通 过 写 HPIC[DSPINT] 置 1 给 DSP 产 生 中 断,DSP 在 响 应 中 断 后, 需 要 对 HPIC[DSPINT] 写 1 清 除 状 态, 主 机 才 能 继 续 操 作 HPIC[DSPINT] 给 DSP 发 中 断 通 过 HPI 传 输 数 据, 结 合 互 发 中 断 做 为 软 件 层 的 握 手 信 号, 可 有 效 提 高 通 讯 的 效 率 与 灵 活 性 ALE: 存 在 于 地 址, 数 据 线 复 用 的 主 机 上 用 来 指 示 地 址 信 号 周 期, 这 种 总 线 复 用 的 主 机 很 少 见, 所 以 通 常 将 ALE 固 定 上 拉 处 理, 只 用 HSTROBE 采 样 控 制 信 号 BE:Byte Enable 信 号, 这 个 信 号 只 出 现 在 32 位 的 C6000 DSP 上 因 为 应 用 当 中 通 常 都 是 对 整 个 32-bit 字 进 行 访 问, 所 以 直 接 做 上 拉 使 能 处 理 3. HPI 寄 存 器 地 址 映 射 HPI 口 提 供 给 主 机 端 访 问 的 寄 存 器 只 有 4 个, 通 过 HCNTL[1:0] 选 择. 表 1. HPI 寄 存 器 访 问 选 择 HCNTL1 HCNTL0 寄 存 器 选 择 0 0 HPIC 0 1 HPID( 地 址 自 增 模 式 ) 1 0 HPIA 1 1 HPID( 地 址 非 自 增 模 式 ) 由 于 在 复 用 模 式 下 数 据 线 通 常 只 有 寄 存 器 宽 度 的 一 半, 所 以 一 个 完 整 的 数 据 访 问 由 高 低 半 字 两 次 访 问 组 成, 由 HWIL 信 号 控 制,HWIL 信 号 必 须 是 先 低 后 高 通 常 将 HWIL 和 HCNTL[1:0] 接 在 主 机 的 地 址 线 上, 将 4 个 寄 存 器 映 射 为 主 机 端 的 8 个 内 存 单 元, 下 表 中 的 地 址 线 连 接 方 法 将 8 半 字 寄 存 器 映 射 到 主 机 的 8 个 连 续 的 内 存 单 元 这 里 的 地 址 线 是 用 来 选 择 HPI 的 寄 存 器, 与 非 复 用 模 式 下 的 地 址 线 直 接 访 问 DSP 的 内 存 空 间 是 完 全 不 同 的 作 用 表 2. HPI 寄 存 器 地 址 映 射 Addr Offset HCNTL[1:0] HWIL Register A[2:1] A[0] 0 00 0 HPIC first half word 1 00 1 HPIC second half word 2 01 0 HPID first half word 3 01 1 HPID second half word 地 址 自 增 模 式 4 10 0 HPIA first half word 5 10 1 HPIA second half word 6 11 0 HPID first half word 7 11 1 HPID second half word 地 址 非 自 增 模 式 4. HPI 寄 存 器 功 能 说 明 HPIC (HPI Control Register) HPI 控 制 寄 存 器 HPIC 的 位 图 如 表 3 所 示,C6000 系 列 DSP 的 HPI 寄 存 器 是 32 位 的, 也 只 有 低 16 位 有 效, 与 C5000 系 列 DSP 的 HPIC 寄 存 器 定 义 的 功 能 保 持 一 致 不 同 版 本 的 HPI 接 口 的 HPIC 位 定 义 的 主 要 不 同 之 处 在 于 软 件 握 手 HRDY 位 的 有 无, 其 它 位 名 称 可 能 存 在 细 小 差 异, 但 功 能 定 义 都 是 一 样 的 3
4 表 3. HPI Control Register 15 12 11 10 9 8 Reserved HPIASEL Reserved DUALHPIA HBOBSTAT R-0 R/W-0 R/W-0 R/W-0 R-0 7 6 5 4 3 2 1 0 HPIRST Reserved FETCH HRDY HINT DSPINT HWOB R-1h R-2h R/W-0 R-1 R/W-1(Host) R/W-0 R/W-0 R/W1C-0(CPU) 主 机 在 对 HPI 进 行 访 问 前 可 以 通 过 HPIC 配 置 字 节 序 (HWOB) 和 地 址 寄 存 器 模 式 (DUALHPIA) 默 认 的 配 置 为 HWOB=0, 即 先 访 问 高 半 ;DUALHPIA=0, 即 单 地 址 寄 存 器 模 式, 读 和 写 操 作 使 用 同 一 个 HPIA; 通 常 都 采 用 默 认 的 HPIC 寄 存 器 配 置 HWOB 与 硬 件 信 号 HWIL 是 没 有 联 系 的,HWIL 信 号 必 须 保 证 先 低 后 高 分 别 访 问 两 个 半 字 单 元 至 于 先 访 问 一 个 字 当 中 的 高 或 低 半 字, 是 由 HWOB 控 制 的 HPIA (HPI Address Register) 物 理 上 存 在 HPIAR,HPIAW 两 个 地 址 寄 存 器 HPIAR 是 读 操 作 地 址 寄 存 器 ;HPIAW 是 写 操 作 地 址 寄 存 器 由 HPIC 的 DUALHPIA 位 来 决 定 是 采 用 双 地 址 寄 存 器 模 式 还 是 单 地 址 寄 存 器 模 式 如 果 采 用 双 地 址 寄 存 器 模 式, 在 对 HPIA 操 作 之 前, 通 过 设 置 HPIC 的 HPISEL 位 选 择 下 一 个 要 访 问 的 HPIA 通 常 为 了 简 化 在 读 写 操 作 转 换 时 对 HPIC 的 操 作, 选 用 单 地 址 寄 存 器 模 式 HPIA 的 地 址 信 息 在 不 同 系 列 DSP 上 有 所 不 同 : 在 C5000 上, 数 据 空 间,I/O 空 间 只 能 按 16 位 字 寻 址, 程 序 空 间 按 字 节 寻 址 HPI 的 DMA 访 问 属 于 I/O 空 间,HPIA 的 值 代 表 16 位 字 地 址 如 主 机 端 要 访 问 DSP 内 存 字 节 地 址 0x100, 则 要 往 HPIA 写 的 地 址 值 是 0x80 在 用 HPI 启 动 时, 要 注 意 DSP 代 码 是 按 字 节 地 址 链 接 的, 即 代 码 段 的 地 址 是 字 节 地 址, 主 机 端 要 将 代 码 段 的 地 址 信 息 除 以 2 再 送 到 HPIA 在 C64 上,HPIA 的 值 代 表 字 节 地 址, 但 是 HPI 访 问 的 数 据 是 32 位 的, 所 以 HPI 会 忽 略 HPIA 地 址 值 的 低 两 位 在 C64+ 的 DSP 上,HPIA 代 表 32 位 字 地 址,HPI 会 将 字 地 址 左 移 两 位 转 换 成 字 节 地 址, 主 机 若 要 访 问 DSP 字 节 地 址 0x100, 则 要 赋 值 HPIA 为 0x40 HPID (HPI Data Register) 主 机 通 过 HPI 对 DSP 的 内 存 访 问 是 间 接 访 问, 主 机 只 能 访 问 HPID,HPID 与 DSP 内 存 之 间 是 通 过 HPI 专 属 的 DMA 进 行 数 据 搬 运 的 如 图 3 所 示 Host HD 16 HCNTL 2 HR/W HHWIL HSTROBE HPI HPIC HPIA Add_H Add_L HPID DSP HPI DMA Addr A Address Data Data Memory Data. HRDY Data_H Data_L 图 3. HPI 读 写 数 据 流
5 HPID 的 访 问 分 为 自 增 模 式 和 非 自 增 模 式 在 自 增 模 式 下, 访 问 HPID 后,HPIA 会 自 动 增 加 指 向 下 一 个 字 地 址, 在 连 续 访 问 时, 自 增 模 式 因 为 减 少 了 主 机 对 HPIA 的 操 作, 可 以 增 加 HPI 数 据 访 问 的 吞 吐 率 非 自 增 模 式 下 访 问 HPID 后,HPIA 的 值 保 持 不 变, 主 机 需 要 更 新 HPIA 来 访 问 下 一 个 地 址 在 写 操 作 时, 主 机 把 数 据 写 到 HPID,HPI 将 第 二 个 半 字 的 数 据 通 过 HSTROBE 的 上 升 沿 锁 存 到 HPID 后, 将 HRDY 置 为 忙 状 态, 并 启 动 HPI DMA 将 HPID 的 内 容 搬 到 HPIA 所 指 向 的 内 存 单 元, 然 后 清 除 HRDY 指 示 可 以 进 行 下 一 次 操 作 在 读 操 作 时, 在 第 一 个 HSTROBE 的 下 降 沿,HPI 采 样 到 HR/W 为 读 命 令, 则 将 HRDY 置 为 忙 状 态, 启 动 HPI DMA 将 HPIA 指 向 的 内 存 单 元 的 数 据 搬 到 HPID, 清 除 HRDY 忙 状 态, 主 机 端 方 可 结 束 总 线 访 问 周 期, 锁 存 数 据 线 上 的 有 效 数 据 5. HPI 操 作 流 程 主 机 对 HPI 的 一 次 总 线 访 问 周 期 为 分 三 个 阶 段 : 主 机 发 起 访 问,HPI 响 应, 主 机 结 束 访 问 周 期 A. 主 机 发 起 访 问 : 即 对 HPI 寄 存 器 的 读, 或 者 写 命 令 主 机 送 出 的 硬 件 信 号 为 HSTROBE ( 由 HCS, HDS1/2 产 生 ),HR/W,HCNTL0/1,HWIL, 以 及 HD[0:n] HPI 在 HSTROBE 的 下 降 沿 采 样 控 制 信 号 HR/W,HCNTL0/1,HWIL 判 断 主 机 的 操 作 命 令 B. HPI 响 应 :HPI 在 HSTROBE 的 下 降 沿 采 样 控 制 信 号, 根 据 控 制 信 号 做 出 相 应 的 响 应 如 果 是 写 (HR/W 为 低 ) 命 令, 则 在 HSTROBE 的 上 升 沿 将 数 据 线 上 的 信 号 锁 存 到 HCNTL0/1 和 HWIL 指 向 的 寄 存 器 如 果 是 读 命 令 (HR/W 为 高 ), 如 果 是 读 HPIC, 或 者 HPIA 寄 存 器,HPI 将 寄 存 器 的 值 直 接 送 到 数 据 总 线 上 ; 如 果 读 HPID,HPI 先 将 HRDY 置 为 忙 状 态, HPI DMA 将 数 据 从 HPIA 指 向 的 内 存 单 元 读 到 HPID, 再 送 到 数 据 线 上, 并 清 除 HRDY 忙 状 态, 在 读 HPID 后 半 字 时, 数 据 从 寄 存 器 直 接 送 到 数 据 总 线 上, 不 会 出 现 HRDY 信 号 忙 状 态 C. 主 机 结 束 访 问 周 期 : 对 于 写 操 作, 主 机 将 数 据 送 出 后, 只 要 满 足 芯 片 手 册 中 HPI 对 HCS 的 最 小 宽 度 要 求, 即 可 结 束 访 问 周 期 对 于 读 HPID 操 作, 要 等 HRDY 信 号 由 忙 变 为 不 忙, 主 机 才 能 结 束 访 问 周 期 a) 两 次 连 续 的 HPI 操 作 的 间 隔, 在 芯 片 手 册 的 HPI 时 序 参 数 表 里 有 要 求, 最 小 间 隔 为 两 个 HPI 功 能 模 块 时 钟 周 期 6. HPI 常 见 故 障 案 例 分 析 在 HPI 应 用 调 试 过 程 中, 常 遇 到 的 问 题 分 为 : 写 数 据 不 成 功, 读 数 据 不 正 确,HRDY 常 高 这 些 问 题 通 常 都 是 由 于 时 序 不 正 确 造 成 的, 下 面 结 合 实 际 应 用 当 中 的 案 例 进 行 分 析 6.1 写 数 据 不 成 功 案 例 的 硬 件 连 接 如 下 :
6 首 先 关 注 核 心 信 号 HSTROBE 由 DSP_CS,ARM_WR(HDS1),ARM_RD(HDS2) 产 生, 从 下 面 时 序 图 可 以 看 出 ARM_WR 的 下 降 沿 是 最 后 产 生 的, 所 以 写 操 作 时 HSTROBE 的 下 降 沿 反 应 的 是 ARM_WR 的 下 降 沿 写 HPIC 的 时 序 截 图 如 下 : 写 HPID 的 时 序 截 图 如 下 : 两 个 时 序 图 显 示 主 机 送 出 的 数 据 111b 在 HSTROBE(ARM_WR) 的 下 降 沿 后, 很 快 被 改 变 成 其 它 值 000b 在 写 HPID 的 时 序 截 图 中, 第 一 个 HSTROBE 的 下 降 后,HPI 送 出 HRDY 信 号, 然 后 数 据 线 被 改 变, 首 先 判 断 HPI 对 主 机 的 命 令 做 出 了 响 应, 通 过 HRDY 信 号 的 出 现 时 机, 说 明 HPI 判 断 这 是 一 个 读 操 作, 可 以 判 断 为 HSTROBE 的 下 降 沿 采 样 HR/W 信 号 不 正 确 从 硬 件 连 接 来 看,HSTROBE(HR/W) 要 采 样 HR/W,HCNTL0/1 来 判 断 主 机 命 令, HR/W 的 与 HSTROBE 为 同 一 信 号 源, 且 同 为 下 降 沿,HR/W 与 HSTROBE 的 下 降 沿 之 间 的 setup 时 间 不 够, 采 样 HR/W 的 电 平 状 态 出 现 误 判, 认 为 是 高 电 平 读 命 令,HPI 对 读 命 令 的 响 应 则 是 在 第 一 个 HSTROBE 的 下 降 沿 之 后 送 出 HRDY 信 号, 并 在 HRDY 之 后,HPI 送 出 数 据 到 总 线 上 对 于 该 问 题, 需 要 对 参 与 HSTROBE 逻 辑 译 码 的 HR/W 信 号 的 下 降 沿 做 延 时 处 理, 可 在 逻 辑 电 路 如 CPLD 或 FPGA 里 实 现, 以 确 保 HSTROBE 的 下 降 沿 采 样 到 稳 定 的 HR/W 电 平 6.2 读 数 据 不 正 确 通 常 表 现 为 读 读 HPIC,HPIA 正 常, 但 读 HPID 不 正 常, 前 半 字 为 0, 后 半 字 正 确, 对 同
7 一 个 地 址 读 两 次, 第 二 次 的 数 据 完 全 正 确 在 案 例 中, 用 示 波 器 观 察 HCS 与 HRDY 之 间 的 时 序 关 系, 发 现 HCS 的 上 升 沿 在 HRDY 的 上 升 沿 之 前, 即 主 机 在 HPI 数 据 有 效 之 前 结 束 了 访 问 周 期 HRDY 的 上 升 沿 其 实 是 因 为 HCS 的 结 束 而 拉 高 的, 并 非 数 据 真 正 有 效 用 户 由 于 没 有 在 硬 件 上 将 HRDY 与 主 机 PowerPC 的 TA 信 号 互 连, 没 有 硬 件 握 手 机 制, 于 是 从 软 件 配 置 上 加 大 主 机 的 总 线 访 问 周 期, 即 增 加 HCS 的 宽 度, 故 障 现 象 没 有 变 化 原 因 分 析 : 读 HPID 与 HPIC,HPIA 时 序 不 同, 读 HPID 操 作 需 要 HPI DMA 从 HPIA 所 指 向 的 地 址 读 数 据 到 HPID, 会 有 时 间 上 的 延 时 而 读 HPIC 和 HPIA 直 接 从 寄 存 器 读 数 据, 没 有 延 时, 所 以 读 HPIC,HPIA 是 正 确 的 在 读 HPID 时,HPI 会 在 第 一 个 HSTROBE 的 下 降 沿 后 将 HRDY 置 位, 指 示 数 据 未 准 备 好 的 忙 状 态, 主 机 应 当 在 总 线 上 插 入 等 待 周 期, 数 据 准 备 好 后 HPI 清 除 HRDY, 主 机 才 可 以 结 束 总 线 周 期, 通 过 HCS 的 上 升 沿 将 有 效 数 据 锁 存 HSTROBE 的 下 降 沿 到 数 据 有 效 之 间 的 延 时 与 芯 片 及 HPI 接 口 的 工 作 频 率 相 关, 以 C5502, C5501 为 例, 在 芯 片 手 册 中, 这 个 延 时 参 数 H1 在 SYSCLK1 与 CPU 时 钟 的 分 频 为 4 时, 最 大 延 时 为 12*2H+20(ns),H=SYSCLK1/2, 在 HPI 启 动 期 间,PLL 没 有 倍 频, 处 于 旁 通 状 态, 系 统 输 入 时 钟 就 是 CPU 的 工 作 时 钟,SYSCLK1 默 认 分 频 为 CPU 时 钟 的 4 分 频, 以 输 入 时 钟 为 25MHz 为 例, 最 大 延 时 为 : 9 4 *10 1 H1 Max = 12 * 2H + 20 = 12 2 * * + 20 = 1940( ns) 6 25*10 2 这 个 时 间 长 度 通 常 超 出 了 主 机 端 总 线 周 期 的 软 件 配 置 范 围, 所 以 通 过 软 件 配 置 增 加 HCS 的 宽 度 不 一 定 能 满 足 HRDY 的 最 大 延 时 要 求 在 有 的 DSP 芯 片 手 册 上 只 提 供 了 HRDY 的 最 小 延 时, 最 大 延 时 与 芯 片 的 优 先 级 设 置, 及 系 统 配 置 相 关 而 不 确 定, 比 如 与 系 统 中 其 它 主 模 块 如 EDMA 同 时 访 问 DDR, 那 么 延 时 与 HPI 的 优 先 级,EDMA 的 优 先 级,EDMA 的 burst 长 度, 以 及 DDR 的 命 令 排 序 等 配 置 相 关, 这 样 通 过 延 长 主 机 的 总 线 访 问 周 期, 更 加 不 可 靠 解 决 办 法 : 在 硬 件 设 计 之 初, 一 定 要 利 用 HRDY 硬 件 握 手 信 号 [2][3] 虽 然 有 的 芯 片 HPIC 寄 存 器 提 供 了 HRDY 软 件 握 手 方 式, 只 能 做 为 弥 补 硬 件 设 计 之 初 遗 漏 HRDY 硬 件 握 手 信 号 的 权 宜 之 计, 软 件 轮 循 HRDY 的 办 法 会 带 来 额 外 的 开 销, 降 低 HPI 总 线 的 吞 吐 率, 增 加 主 机 软 件 实 现 的 复 杂 度 而 且 有 的 芯 片 HPI 不 支 持 HRDY 软 件 查 询 方 法, 只 能 通 过 硬 件 HRDY 保 证 数 据 的 有 效 性 6.3 HRDY 常 高 有 的 系 统 在 长 时 间 运 行 中 偶 尔 出 现 HRDY 常 高, 导 致 主 机 端 总 线 访 问 异 常, 需 要 重 新 上 电 才 能 恢 复 HPI 的 正 常 操 作 这 种 故 障 是 由 于 HPI 状 态 机 出 现 异 常 从 实 际 故 障 定 位 中 总 结 出 以 下 几 点 原 因 :
8 A. HPI 的 高 低 半 字 访 问 的 顺 序 访 问 被 其 它 HPI 访 问 打 断 : 在 复 用 模 式 下, 一 个 完 整 的 HPI 访 问 是 由 高 低 半 字 两 次 访 问 组 成, 需 要 严 格 保 证, 否 则 会 破 坏 HPI 的 状 态 机, 从 而 导 致 不 可 预 期 的 后 果 B. 主 机 通 过 HPI 访 问 了 DSP 内 部 的 保 留 空 间, 或 者 破 坏 了 DSP 的 程 序, 数 据 空 间, 导 致 DSP 运 行 异 常, 进 而 导 致 HPI 状 态 机 异 常 C. 主 机 的 HSTROBE 信 号 有 毛 刺, 或 者 信 号 完 整 性 不 好, 如 下 图 中 HCS( 些 案 例 HSTROBE 是 由 HCS 控 制 ) 的 上 升 沿 的 回 勾, 都 会 导 致 HPI 误 判 断 为 主 机 的 新 的 访 问 的 开 始, 从 而 打 乱 了 高 低 半 字 的 访 问 顺 序 要 求, 导 致 HPI 状 态 机 的 错 乱 7. 总 结 HPI 是 一 种 简 单 的 异 步 接 口, 只 要 设 计 中 满 足 了 时 序 要 求, 即 可 稳 定 工 作 在 开 发 当 中 遇 到 数 据 读 写 不 正 确, 从 HSTROBE 信 号 入 手 检 查 与 之 相 关 的 信 号 的 时 序 关 系, 便 可 以 找 出 问 题 原 因 另 外, 信 号 完 整 性 是 任 何 系 统 稳 定 工 作 的 前 提 关 于 特 定 芯 片 上 HPI 接 口 的 特 有 功 能 本 文 没 有 针 对 讨 论, 如 C6727 的 字 地 址 模 式 和 字 节 地 址 模 式 可 通 过 HPIC 配 置 ;C6727 在 HPI 启 动 后 ROM bootloader 将 HPI 关 闭, 需 要 软 件 重 新 使 能 才 能 使 用 等 ; 以 及 不 同 芯 片 的 HPI 启 动 模 式 下 的 跳 转 方 式 不 同, 请 参 考 相 应 芯 片 的 HPI 手 册 及 bootloader 应 用 手 册 参 考 文 献 : [1] spra536:tms320c6000 EMIF to TMS320C6000 Host Port Interface [2]spra545: TMS320C6000 Host Port to MC68360 Interface [3]spra546: TMS320C6000 Host Port to MPC860 Interface