摘要:实时数据交换(RTDX)是TI公司推出的一种非常优秀的实时数据传输技术,它实现了一种实时的、连续的、可视的系统运作方式,使开发者可在主机上利用对象链接嵌入(OLE)技术分析和观察数据,为DSP系统的软件调试提供了一种全新的方法。它利用DSP的内部仿真逻辑和JTAG接口实现主机与目标机之间的数据交换,不占用DSP的系统总线和串口等I/O资源,数据传送完全可以在应用程序的后台运行,对应用程序的影响很小。本设计介绍了一种基于MATLAB2010a的RTDX实现方法,可为DSP编程人员发现程序错误和监测系统运行状况提供实时、直观的表示形式,并在以DSP F28335为主处理器的目标板上得到应用。通过对本系统多次进行试验测试,该系统运行稳定,设计思路正确,实现了预期的功能,能够实现RTDX实时数据传输功能和上位机接收显示画图功能,对于实际项目有着一定的使用价值。
关键词:数字信号处理;实时数据交换;RTDX;MATLAB2010a
1 绪论
在DSP系统开发过程中,通常要验证算法的正确性。传统方法是主机调试器在目标应用程序中插入断点,中断目标应用程序运行,观测目标机上各个寄存器或内存变量的值。但是处理系统是实时运作的,这种方法不能实时跟踪处理过程中数据的变化,大多数时间显示的只是片面的滞后的数据,数据显示也不直观,给调试过程带来很多不便。Real-Time Data Exchange(RTDX)技术利用DSP的内部仿真逻辑和JTAG接口实现主机与目标机之间的数据交换,它不占用DSP的系统总线和串口等I/O资源,数据传送完全可以在应用程序的后台运行,对应用程序影响很小。RTDX技术使系统开发商在主机和目标设备之间传送数据不会干扰目标应用,即允许系统开发者在不停止运行目标应用程序的情况下在主机和DSP芯片之间传输数据,从而缩短开发时间。利用MATLAB的可视化功能及数学函数可视化分析来自CCS及C2000/5000/6000等系列DSP的数据。利用该工具可以自动执行CCS的命令来进行分析、交互或者批处理调试和显示,在MATLAB和CCS之间传输数据验证算法。通过RTDX通道可以在不停止DSP运行的情况下与XDS510/XDS560仿真器之间实现高速、实时数据交换,并提供分析和可视化仿真或实时数据能力。编程人员可以实时观测和分析应用程序的运行情况,更方便地查找和修改应用程序的错误,从而缩短了系统的设计开发周期。
本文基于RTDX技术,实现了DSP与MATLAB之间的实时在线通讯,并编写PC机的上位机软件,将传输的数据进行实时显示,通过试验证明了该系统的真实性、可靠性。
2 RTDX介绍
2.1 RTDX技术简述
RTDX实现了一种实时、连续的、可视性的系统运作方式,使开发者可在主机上利用对象链接嵌入(OLE)技术分析和观察数据,为软件调试提供了一种全新的方法。该项技术所设计的调试软件具有占有系统资源少、速度快和选择灵活等特点。最突出的优点是,RTDX技术使系统开发商在主机和目标设备之间传送数据不会干扰目标应用,即允许系统开发者在不停止运行目标应用程序的情况下在主机和DSP芯片之间传输数据,从而缩短开发时间。RTDX利用DSP的内部仿真逻辑和JTAG接口实现主机与目标机之间的数据交换,不占用DSP的系统总线和串口等I/O资源,数据传送完全可以在应用程序的后台运行,对应用程序影响很小。
2.2 RTDX的工作原理
图1 RTDX 工作原理
RTDX原理如图1所示,它由PC主机(Host) 和DSP目标板(Target) 两部分组成,CCS控制主机与DSP之间的数据流动。在DSP上运行有一个小的RTDX目标库,该库通过增强型JTAG接口在主机和DSP之间传送数据。DSP应用程序则通过调用RTDX目标API函数来完成主机与DSP之间的通信。主机方运行CCS,CCS软件带有一个RTDX主机库,OLE自动化客户程序(VB、VC、LabVIEW、MATLAB)通过调用RTDX主机API函数将来自目标DSP的实时数据在主机上分析、显示。
RTDX完成主机与目标系统数据交换,所使用的是DSP的内部仿真逻JTAG 接口,它不占用DSP的系统总线、串口等I/O资源,对DSP系统资源影响很小,所以数据传送可以在不断应用程序背景下运行。主机与目标系统之间的数据流动是用CCS的调试器(debugger)控制的,具体过程参照图7所示。在目标系统上,应用程序数据通过RTDX 的用户库接口和通讯接口,经由JTAG 接口发送到主机调试器,存入文件(log file)。由于主机调试器支持客户端(OLE API),因而任何OLE Automation Client如美国国家半导体公司LabVIEW、VC++、VB、Delphi等)都可以访问和显示log file内的数据,或通过COM接口向目标系统发送数据。主机向目标系统发送数据时,数据从OLE Automation Client发送到调试器,接收到数据后,调试器首先对数据进行缓存,只有当接收到目标系统上应用程序发送的读数据请求时,数据才通过JTAG接口被发送到目标系统的通信接口,然后再发送到用户库接口,传给应用程序。
2.3 RTDX的实现
RTDX的编程实现主要包括两部分:DSP目标应用程序设计和主机OLE自动化客户程序设计,主机应用程序可以由VB、VC、LabVIEW实现,典型情况下主机应用程序是一个显示程序,通过一种有意义的方式将数据显示出来。
典型情况下,RTDX的实现一般包括以下几个步骤:
设计DSP目标应用程序以捕获实时数据;
设计主机OLE自动化客户程序以处理数据;
启动CCS;
将目标应用程序加载到TI DSP芯片;
在CCS中,使能RTDX从目标应用程序接收数据并将其送给主机OLE自动化客户程序;
运行目标应用程序以捕获实时数据并将其送到RTDX主机库;
运行主机OLE自动化客户程序处理显示数据。
图2 接收数据波形图
3 DSP的RTDX系统的软件设计
DSP片上实现了一次数据输入输出的函数dataIO,它采用C语言编写,返回值1表示运行过程均正常。有4个参数,分别是输出Buffer起始位置,输出Buffer的大小,输入Buffer的起始位置,输入Buffer的大小。使用时,在主函数中使用两个RTDX宏声明RTDX_CreateOutputChannel(ochan),RTDX_CreateInputChannel(ichan),
然后可以直接调用dataIO进行数据传输,dataIO会在第一次运行中自动初始化环境。dataIO函数经过简单的修改甚至不修改即可以适用于不同的环境。主机端的RTDX过程使用C++实现因为程序的主要目的就是向目标板传递数据和取得数据,所以直接在主程序中作了一个大的循环,同目标板一样用了4个参数:inbuffer、outbuffer、inbufferlength、outbufferleng。执行时,主程序首先被阻塞,不停的试图从目标板读取经过压缩的数据,直到目标板DSP把压缩好的数据放到输出通道上。得到数据后,主程序把这些数据存放在本地文件中,然后把要压缩的数据写到输入通道上传递给DSP。这样反复执行直到传输双方中的一方表示传输终止。执行过程首先把程序写入目标板DSP中,然后在DSP集成开发环境CCS的tools菜单中选择RTDX,启用输入通道和输出通道。
4 系统实现
将改好的目标DSP程序编译下载并运行,然后在CCS的菜单命令Tools工具栏中打开RTDX,选Configuration Control,并选中Enable_RTDX。然后运行MATLAB程序,此时在MATLAB的command window就能看到目标机DSP传给主机的数据1~8。调用MATLAB的强大绘图功能,以图形形式显示数据,直观的观察所得的数据。采用第四章中的实例,运行的结果如图2所示:
若上位机采用LabVIEW设计接收界面,运行LabVIEW程序,在LabVIEW的前面板可得到如下结果,显示了接收到的数据1~8,并绘制了波形图如图3所示:
5 结束语
实时数据交换(RTDX)是集成在TI DSP综合开发环境CCS(Code Composer Studio)中的插件,RTDX 提供一个实时、连续的可视环境,使开发者能看到DSP 应用程序运行的真实过程。本设计实现了基于DSP F28335和MATLAB2010a的RTDX实时数据传输,下位机程序采用C语言开发,调用RTDX函数来实现,上位机采用MATLAB Link for CCS。通过实际的测试表明了整个系统达到了预期的设计目的,工作稳定可靠。
图3 LabVIEW 接收数据及波形图
参考文献
[1]刘伟,刘洋,焦淑红.基于MATLAB7.0 软件的实时数据交换的实现[J].国外电子元器件,2006.
[2]苏奎峰,吕强,常天庆,张永秀.TMS320X281x DSP原理及C程序开发[M].北 京:北京航空航天大学出版社,2008.
[3]崔桂磊,商建东.实时数据交换原理及其编程实现[J].河南科技大学学报(自然科学版),2003.
[7] Link for Code Composer Studio 3 User's Guide[M].
论文作者:王珍国,方芳,许连宝
论文发表刊物:《电力设备》2018年第24期
论文发表时间:2019/1/8
标签:数据论文; 目标论文; 主机论文; 应用程序论文; 实时论文; 系统论文; 接口论文; 《电力设备》2018年第24期论文;