滴滴能源获蓝驰创投数千万元Pre-A轮投资
06-17
介绍 数据采集卡(DAQ)的存储空间是系统设计中重要的硬件资源,对采样率、实时处理影响很大和系统功能。
影响。
在虚拟频谱分析仪的设计中,需要足够的内存空间来存储信号采样数据、DSP分析和信号处理程序。
由于仪器采集的数据量较大,DSP实现的功能较多,存储空间不足。
针对上述问题,本文讲述如何基于LabVIEW通过CLFN调用DLL来加载DSP目标文件(*.out),从而在一定时间内完成基于DSP数据采集卡的虚拟仪器的开发。
程序存储空间。
LabVIEW中的 CLFN LabVIEW程序由三部分组成:前面板、框图程序和图标/连接器。
程序前面板用于设置输入量和观察量,模拟真实仪器的前面板;每个程序前面板都有与其对应的框图程序,该框图程序是用图形化编程语言编写的。
图标/连接端口允许用户将VI程序定义为子程序,实现模块化编程。
调用库函数节点(CLFN)是一个图形节点。
LabVIEW调用C语言编写的可执行程序代码是一种常用的方法。
它常用于调用动态链接库(DLL)。
这种方法特别适合用户创建实现自己特定功能的DLL。
然而C语言的编译必须经过外部开发平台环境。
Microsoft Visual C++软件平台可在Win9x/NT下使用。
使用CLFN调用DLL加载DSP目标文件。
简要步骤如下: (1) 在LabVIEW程序框图中放置一个CLFN节点。
对于 CLFN 设置,创建一个函数原型:unsigned char dspload(CStr coffname)。
其中,coffname为加载的DSP目标文件(*.out)的名称,unsigned char为函数dspload返回的错误类型。
返回值为0,表示DSP目标文件加载成功,其他值表示加载失败。
(2) 在Microsoft Visual C++环境下创建DLL工程,生成dspload.dll文件。
源程序中必须包含头文件:extcode.h和evm6xdll.h。
前者是LabVIEW调用外部代码管理函数集的头文件,后者是DSP数据采集卡的DLL的头文件。
(3) 设置前面板参数,完成框图程序。
将加载DSP目标文件的前面板和相应的框图程序保存为dspload.vi。
在执行程序 dspload.vi 之前,输入目标文件名(*.out)。
DSP数据采集卡 所使用的数据采集卡是美国TI公司的TMSCDSP数据采集卡。
框图如图1所示。
DSP数据采集卡的特点是: PCI总线接口,支持即插即用;通过HPI(主机端口接口)访问DSP内存; 16位音频编解码器,支持5.5kHz~48kHz采样率;三种DSP启动模式:无启动模式、HPI启动模式、ROM启动模式; kB 同步突发静态 RAM (SBSRAM); 8MB 同步动态 RAM (SDRAM)。
TMSC是一款浮点DSP,片上有8个并行处理单元,分为两个相同的组。
8个独立的功能单元采用加载/存储架构,多处理单元之间的数据传输依赖于32个32位通用寄存器。
DSP的体系结构采用超长指令字(VLIW)结构。
8条指令组成一个指令包,总字长为bit。
芯片内部设置了专门的指令分配模块,可以将指令包的每一位同时分配给8个处理单元,并同时运行。
芯片最大处理能力可达MIPs。
C的存储器寻址空间为32bit,片上RAM分为内部程序/Cache存储器和内部数据/Cache存储器。
当片内RAM容量不能满足系统程序/数据空间要求时,可以利用外部存储器接口(External Memory Interface,EMIF)来扩展片外存储器。
EMIF整个外部空间最大容量为64MB,分为4个空间CE0~CE3。
HPI(主机端口接口)是一个 16 位并行接口。
外部主机可以通过HPI直接访问CPU的存储空间。
外部主机是该接口的主控者。
HPI 访问接口由一组寄存器实现。
HPI控制寄存器HPIC(HPI Control Register)完成接口的设置。
主机和CPU都可以访问HPIC;外部主机还通过主机地址寄存器HPIA(Host Address Register)和主机数据寄存器HPID(Host Data Register)完成对CPU的设置。
存储空间访问。
主机对这些寄存器的访问是通过外部控制信号实现的。
HPI与CPU存储空间的连接是由DMA控制器完成的。
C中有专用的DMA辅助通道来完成数据传输任务。
软件设计 在DSP数据采集卡与LabVIEW的接口应用中,主要使用CLFN来实现该功能:PC机通过HPI接口将名为*.out的可执行文件加载到DSP程序存储空间中,然后DSP执行该文件。
DSP 启动模式设置为 HPI 启动。
HPI启动的工作原理如下:启动期间,核心CPU保持复位状态,其余硬件保持正常。
在此期间,外部主机通过HPI初始化CPU的存储空间。
主机完成所有初始化工作后,将HPI控制存储器中的DSPINT设置为1,并结束引导过程。
此时,CPU退出复位状态,开始执行地址0处的指令。
在HPI启动过程中,主机可以读写DSP的所有存储空间。
软件设计中,打开数据采集卡,获取采集卡的句柄;复位DAQ卡后,设置HPI自举模式,使DSP处于复位状态;此时,如果DSP与HPI建立连接,且DMA辅助通道的优先级高于DSP。
通过调用函数evm6x_coff_load将coffname指定的目标文件加载到DSP存储器中。
一旦DSP不处于复位状态,DSP就开始执行加载的文件。

结论 通过CLFN调用DLL加载DSP目标文件以节省数据采集卡内存空间的方法已应用于吉林大学-TI DSP实验室的虚拟频谱分析仪。
由于DSP加载程序是C语言程序,因此具有良好的可移植性。
另外,可以看出,通过调用库函数节点CLFN,将C语言与图形化G语言相结合,在LabVIEW中编程直观、方便,加快程序运行速度,提高软件性能,方便编程模块共享,节省编程时间。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-18
06-18
06-17
06-21
06-18
06-17
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现