MATLAB与DSP使用RTDX的实时数据交换_覃远年

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图1 RTDX 原理框图 ③ 嵌入对象。在 MATLAB 环 境 中 能 够 创 建 一 个 代 表嵌入在目 标 C 程 序 中 的 变 量 对 象 ,利 用 嵌 入 式 对 象 可 以像处 理 MATLAB 的 变 量 那 样 直 接 访 问 嵌 入 在 目 标 DSP的存储器和寄存器中的变量 。 上述3种连接对象的实现方式略有不同 ,与 CCS IDE 的连接对象和嵌入式对象在数据的传递时可以不在目标 DSP 程 序 中 添 加 额 外 的 语 句,而 与 RTDX 的 连 接 对 象 在 进行数据 传 递 时 则 需 要 在 目 标 DSP 程 序 中 添 加 操 纵 RT- DX 通道的语句。
Real-time Data Exchange Between MATLAB and DSP Using RTDX
Tan Yuannian,Sun Lizhen,Tian Ke
(Communication Experiment Center,Guilin University of Electronic Technology,Guilin 541000,China)
敬请登录网站在线投稿
2015 年第9 期
Байду номын сангаас
3 5
Link for RTDX 实 现 了 对 实 时 数 据 的 自 动 化 高 级 分 析 和 可视化,同时也实现了对复杂 DSP程序的有效验证 。
RTDX 包 括 主 机 和 目 标 DSP 两 部 分,如 图 1 所 示。 在 DSP 上 有 一 个 小 的 RTDX 库 (RTDX Target Librar- y)[2],其使用 一 个 基 于 扫 描 的 仿 真 器 ,通 过 增 强 型 JTAG 接口在主 机 和 DSP 之 间 传 输 数 据。DSP 应 用 程 序 则 通 过 调用 RTDX 库的 API函 数 来 完 成 主 机 和 DSP 之 间 的 通 信。主机方运 行 CCS 软 件,CCS 软 件 同 样 带 有 一 个 RT- DX 库(RTDX Host Library),通过一个 COM 接 口 将 实 时 数 据 在 主 机 上 显 示 。 [3] 这 样 ,MATLAB 中 设 计 的 参 数 可 以通过 RTDX 输入通道 写 入 DSP 的 存 储 单 元,而 算 法 的 最后结 果 也 可 以 通 过 RTDX 的 输 出 通 道 上 传 到 MAT- LAB 中,通 过 编 写 MATLAB 程 序 来 显 示、分 析 信 号 处 理 的结果。
默认情况下,这些通道是 不 能 在 DSP 中 直 接 使 用 的, 但可以在函数体内使能这些 RTDX 通道。 RTDX_enableInput(&ichan); /* 使 能ichan 通 道 */ RTDX_enableOutput(&ochan); /*使能 ochan通道*/
如果要在同一工程的其他 C文件中使用已经声明过 的 RTDX 通道,必须再次声明。 Extern RTDX_input_channel ichan; Extern RTDX_output_channel ochan;
MATLAB 与 DSP 使用 RTDX 的实时数据交换*
覃 远 年 ,孙 丽 真 ,田 柯
(桂林电子科技大学 通信实验中心,桂林 541000)
摘要:采用 MATLAB 辅助 DSP程序的开发和调试 ,能加快 DSP应用程序的开发。实时数据交换(RTDX)为 设 计、验 证 DSP算法提供了一个快 速 、方 便 的 解 决 方 案 。 本 文 对 RTDX 的 工 作 原 理 进 行 了 分 析 ,讨 论 了 MATLAB 与 DSP 使 用 RTDX 插件实现双向数据传输的实现方式 ,并通过一个简单的实例说明 RTDX 的具体实现过程 。 关 键 词 :MATLAB;DSP;实 时 数 据 交 换 中 图 分 类 号 :TN914 文 献 标 识 码 :A
2 RTDX 的工作原理
实现 MATLAB 和目标 DSP之间的实时数据交换 ,既 需要 在 目 标 DSP 程 序 中 添 加 特 定 的 语 句,又 需 要 MAT- LAB 使用特定的语句实现与目标 DSP的数据传递。
2.1 DSP对 RTDX 的配置使用
2.1.1 设置 RTDX 输入输出通道 首先向工程文件中添加 头 文 件“rtdx.h”、主 程 序 文 件
鉴于 DSP应用开发的传统设计方 法 十 分 不 便 ,Math- Works公 司 和 TI 公 司 联 合 开 发 了 MATLAB Link for CCS Development Tools(简 称 CCSLink)。CCSLink 将 MATLAB、CCS(TI DSP集成开发 环 境)和 目 标 DSP 三 者 连 接 起 来,开 发 人 员 可 以 在 MATLAB 环 境 中 像 操 作 MATLAB 变量一 样 操 作 TI公 司 DSP 的 存 储 器 和 寄 存 器,实现 对 CCS 的 控 制,极 大 地 方 便 了 TI DSP 应 用 程 序 的开发。
2.2.1 发 送 数 据 [4] 在传输数据之前 ,MATLAB 需 要 知 道 目 标 DSP 板 的
信息,完成 MATLAB 和 CCS以及目标 DSP 的 连 接,使 用 下面这条指令实现:
h=actxserver(′RTDX′); 此指令要在 DSP加载了可执行文件并使能 RTDX 接
3 6 Microcontrollers & Embedded Systems 2015 年第9 期
⑤ RTDX_channelBusy()包 含 输 入 通 道 指 针 的 一 个 参数,并返 回 一 个 整 数 指 示 通 道 状 态,0 表 示 通 道 不 忙。 它通常与 RTDX_readNB()结 合 使 用,用 于 检 查 是 否 有 其 他读数据请求。
2.2 MATLAB 对 RTDX 的配置使用
“main.c”和其他使用到 RTDX 的文件。 基于工程是否有与主机通信的需要 ,在“main.c”中 添
加输入或输出通道 。通道的声明采用全局变量的形 式 ,不
得包括在任何函数之中。 RTDX_CreateInputChannel(ichan); /* 创 建 名 为ichan 的 输 入 通 道 */ RTDX_CreateOutputChannel(ochan); /*创建名为 ochan的输出通道*/
③ RTDX_write()写 数 据 函 数 也 包 括 3 个 参 数:第 1 个是输出通道的 指 针 ,第 2 个 是 要 传 输 的 数 组 指 针 ,第 3 个是数据字长。执行后会返回一个整数 ,非0代表成功。
④ RTDX_sizeofInput()包 含 输 入 通 道 指 针 的 一 个 参 数,并返回从 缓 冲 器 中 读 取 的 字 长 ,一 般 在 RTDX_read- NB()完成一次读操作后使用它 。
www .mesnet.com .cn
口 之 后 才 能 使 用,使 用 这 条 指 令 还 创 建 了 与 RTDX 的 连 接对象,h为连接对象的句柄 。
1 CCSLink 的 构 成
CCSLink由3部 分 组 成 : [1] ① 与 CCS IDE 的 连 接 对 象。 利 用 此 对 象 可 以 创 建 CCS与 MATLAB 的连 接,执 行 相 应 的 MATLAB 命 令 就 可以运行 CCS中的 应 用 程 序,与 目 标 DSP 的 存 储 器 和 寄 存器进行双向数据交换。其优点在于: (a)用户可以利用 MATLAB 强大的数据分析和可视 化功能,节省设计和调试程序的时间 。 (b)可以编 写 用 于 调 试 数 字 信 号 处 理 程 序 的 MAT- LAB 语言批处理脚本 ,实现调试和分析的自动化 。 ② 与 RTDX 的连接对 象。提 供 了 MATLAB 与 目 标 DSP之间的实时通信通道 ,利用此通道可以实时地与目标 DSP进行数据交 换 而 不 用 停 止 DSP 上 正 在 执 行 的 程 序 。
Abstract:It would speed up the development of DSP program if we adopt MATLAB to assist the development and debugging of DSP program.Real-time data exchange (RTDX)provides a rapid and convenient solution for the design and testing of the DSP algorithm.In this paper,the principle of the RTDX,the realization of bidirectional data transfer between MATLAB and DSP with the assistance of RTDX are discussed,finally the realization process of RTDX is described using a simple example. Key words:MATLAB;DSP;real-time data exchange
最后,单击 CCS软 件 Tools->RTDX->Configuration Control,在弹出 的 窗 口 中 选 择 “Enable RTDX”,手 动 使 能 RTDX 接口。
2.1.2 使用 RTDX 读写数据
DSP中的 RTDX 目标库提供了一些 C 函 数 发 送 和 接 收数据:
① RTDX_readNB()读 数 据 函 数 包 括 3 个 参 数:第 1 个是输入通道的指 针 ,第 2 个 是 存 储 数 据 的 数 组 指 针,第 3个是数据字长。这是非连续 读,即 如 果 没 有 数 据 可 读 将 直接返回。
② RTDX_read()函 数 的 3 个 参 数 和 RTDX_readNB() 一样,不同的是 RTDX_read()是 连 续 读,即 它 将 不 返 回 直 到读完 数 据。 如 果 通 道 忙 或 未 使 能,它 将 返 回 RTDX_ READ_ERROR。
* 基金项目:国家自然科学基金 项 目 (61162008);广 西 科 技 开 发 项 目 (桂 科 攻 12118017-5)。
本文所做的研究是以 MATLAB2010b、CCS3.3以 及 基 于 TMS320VC5509A 的开发板进行的。目前大多数书籍就 CCSLink的 描 述 主 要 是 基 于 MATLAB6.5 的,而 后 续 的 MATLAB 版本对 CCSLink 做 了 一 定 的 修 改 和 完 善。RT- DX 插件作 为 CCSLink的 重 要 组 成 部 分 之 一,有 其 独 特 的 优势。在接下来的内 容 中 将 对 RTDX 做 详 细 介 绍,旨 在 向 DSP研发人员提供一种更快捷的 RTDX 使用方式。
引 言
在传统的 DSP(Digital Signal Processor)应 用 程 序 开 发过程中,涉 及 的 算 法 一 般 先 用 MATLAB 语 言 进 行 仿 真,仿真结果满意后 ,再 进 入 产 品 的 实 现 阶 段。 仿 真 实 现 后的 算 法 用 C/C+ + 或 汇 编 语 言 实 现 ,首 先 在 硬 件 DSP 目标板上调试,将中间结果 通 过 DSP 开 发 工 具 保 存 到 PC 机的硬盘上,然 后 调 用 到 MATLAB 工 作 空 间,与 MAT- LAB 仿真算法的中 间 结 果 进 行 比 较 ,以 发 现 DSP 程 序 中 由于 设 计 或 精 度 导 致 的 结 果 偏 差 。 [1] 如 此 反 复 进 行 ,应 用 程序开发十分不便。
相关文档
最新文档