微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > MATLAB与DSP使用RTDX的实时数据交换

MATLAB与DSP使用RTDX的实时数据交换

时间:02-06 来源:互联网 点击:

明。

Extern RTDX_input_channel ichan;

Extern RTDX_output_channel ochan;

最后,单击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。

③RTDX_write()写数据函数也包括3个参数:第1个是输出通道的指针,第2个是要传输的数组指针,第3个是数据字长。执行后会返回一个整数,非0代表成功。

④RTDX_sizeofInput()包含输入通道指针的一个参数,并返回从缓冲器中读取的字长,一般在RTDX_read NB()完成一次读操作后使用它。

⑤RTDX_channelBLasy()包含输入通道指针的一个参数,并返回一个整数指示通道状态,0表示通道不忙。

它通常与RTDX_readNB()结合使用,用于检查是否有其他读数据请求。

2.2 MATLAB对RTDX的配置使用

2.2.1 发送数据

在传输数据之前,MATLAB需要知道目标DSP板的信息,完成MATLAB和CCS以及目标DSP的连接,使用下面这条指令实现:

h=actxserver(‘RTDX’);

此指令要在DSP加载了可执行文件并使能RTDX接口之后才能使用,使用这条指令还创建了与RTDX的连接对象,h为连接对象的句柄。

在MATLAB中打开并使能RTDX输入通道之前,必须在DSP目标程序中已经创建了该输入通道,调用下面这条指令实现:

invoke(h,‘open’,‘ichan’,‘W’);

传输数据用下面这条指令实现:

invoke(h,‘Write’,intl6(v));

数据通过最近打开的输入通道由MATLAB向DSP写数据,intl6(v)表示对数据v做强制数据类型转换,因为使用的TMS320VC5509A是16位定点DSP。

在完成数据传输或读数据之前,应该将此接口关闭,使用下面这条指令实现:

invoke(h,‘close’);

2.2.2 接收数据

在MATLAB接收数据部分并没有采用发送数据使用的那种最新的RTDX实现方式,因为新方法的实现难度较大,这里介绍通用的实现方法,具体步骤如下:

①cc=ticcs()实现MATLAB和CCS以及DSP三者的连接,并创建连接对象,对象句柄为cc。

②打开并使能RTDX通道:

cc.rtdx.open(‘ochan’,‘r’);%打开名为ochan的RTDX读通道(MATLAB从DSP读)

cc.rtdx.enable(‘ochan’);%使能通道ochan

cc.rtdx.enable;%使能RTDX接口

③读取数据:

cc.rtdx.readmsg(‘ochan’,‘intl6’);%读取16位字的数据

3 应用实例

列举一个简单的求和运算来说明RTDX的具体实现方法,旨在让读者掌握如何使用RTDX实现MATLAB和DSP之间的双向数据传递。整个程序的实现思路是:首先MATLAB通过RTDX输入通道向DSP中写入10个数据,然后DSP对这10个数据求和,最后将这个和值经RTDX输出通道传递给MATLAB。整个过程的实现流程如图2所示。

3.1 DSP程序实现

  

3. 2 MATLAB程序实现

MATLAB向DSP写数据

  

结语

RTDX技术巧妙地实现了MATLAB和目标DSP之间的数据交换,使开发者能够在算法仿真和实时处理之间进行多次反复,以确定最佳算法和参数,极大地方便了DSP应用程序的设计,缩短了开发周期。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top