LabVIEW (Laboratory Virtual Instrument Engineering Workbench) 是美国NI公司的创新软件产品,也是目前应用最广泛、发展最快、功能最强的图形化软件开发环境。LabVIEW DSP模块,它包含了用于设计、实现和分析DSP算法的系统工具。它将LabVIEW图形化开发环境扩展至嵌入式信号处理应用程序设计,提供了一个易于使用的、现成的方法来学习信号处理技术,使得DSP开发者拥有了一个图形化和系统级的设计开发选择。随着我们的设备在性能和复杂度方面的提升,图形化和系统级的设计和开发工具的作用起到越来越重要的作用。
本文以TMS320C6713EVM开发板为硬件平台,利用LabVIEW DSP模块和LabVIEW DSP Test Toolkit for TI DSP工具包实现LabVIEW与DSP的整合,完成了基于TMS320C6713EVM硬件平台的自适应滤波器系统辨识应用的设计。
2 DSP在虚拟仪器设计中的应用
数字信号处理是一门极其重要的学科和技术领域,在众多领域得到了广泛的应用。DSP(数字信号处理器)与在嵌入式系统中常用的其它微处理器(如单片机、通用处理器)相比,DSP强大的数据处理能力和高速的数据吞吐率使其在图像处理、语音处理等方面的性能远远优于其它微处理器。同时,随着超大规模集成电路的发展,生产成本进一步降低,DSP解决方案在嵌入式图像、语音处理这样的数字信号处理典型应用中已成为工程师的首选。
虚拟仪器在很多情况下采用上位机实现,微机也可以进行数字处理,并且微机可以直接采用浮点运算,其运算精度也可以做得很高。但是与用微机实现虚拟仪器相比,采用DSP芯片实现虚拟仪器具有以下优点:(1)DSP芯片特有的存储及总线结构可以保证在一个机器周期内多次访问程序空间和数据空间及在一个指令周期内同时进行运算,满足了数字信号处理中的并行运算要求;(2)在数据采集和输出时,都要用到A/D和D/A,其刷新是通过定时器来完成的,DSP芯片内置在片定时器,用户可以通过控制程序对定时器进行精确的设置,从而实现精确定时和采样处理,这在上位机实现中是做不到的。
通常作为虚拟仪器硬件部分的数据采集卡所完成的仅仅是采集数据和传输数据,而虚拟仪器中最耗时最复杂的数据分析处理却留给计算机的CPU去完成,从而导致了虚拟仪器实时性和精确性的不足。DSP可以从数据采集到数据处理再到数据的传输,把数据分析处理的工作留给DSP来完成,那么计算机的工作就仅仅是完成数据的简单整理、显示、存储和输出,这样很好地弥补了以往虚拟仪器速度和精度方面的不足。
此外,当系统运行在Windows等多任务操作系统时,特别是在处理如FFT等大容量、高精度的运算时,CPU资源会造成严重不足,这给虚拟仪器的应用带来一定的不便。虚拟仪器能借助DSP处理系统,将采集来的数据在DSP中进行预处理,然后再将数据传递给软件部分,这样不但没有增加系统的负担,而且可以让系统用更多的时间来处理其他事情。因此,把DSP技术有机地应用到虚拟仪器中是虚拟仪器设计的一个重要发展方向。
3 基于LabVIEW 的DSP系统级设计
3.1 LabVIEW DSP模块
LabVIEW DSP模块是一个全功能可视化数字信号处理器算法和系统的设计、实现与分析的工具。该模块与LabVIEW集成,功能强大,可生成专为DSP优化的应用程序,是DSP开发的新思路。其特点有如下:
(1)将LabVIEW核心性能扩展至可直接利用信号处理函数和编程组件对NI SPEEDY-33、TI C6416 DSK、TI C6713 DSK以及TI C6711 DSK进行编程,无需单独的DSP编译器,且不必重写代码即可在支持的DSP目标之间切换,具有多DSP目标的代码移植性。
(2)全面支持Express VI功能,具有图形化和系统级的选择对DSP设备进行编程,具有面向未来设计的代码模块性和独立应用开发能力等。
(3)可更快地减少反复的设计周期和总体的开发时间,并且在实时地对目前的DSP硬件作出改变的同时马上显示结果。
(4)具有易于访问DSP目标的模拟和数字I/O线以及满足实时交互需要的交互式GUI,可以建立实时的应用程序。
同时,LabVIEW DSP模块集成了最新的NI LabVIEW数字滤波器设计工具包,可以将使用LabVIEW设计的滤波器下载至TI和NI DSP硬件设备。LabVIEW DSP模块非常适合通信、自定义控制算法、数字和最小方均根(LMS)滤波以及音频处理和分析等领域的应用。
3.2 LabVIEW DSP Test Toolkit
利用LabVIEW工具包中的DSP Test Toolkit可以使在LabVIEW环境下设计的DSP系统可以全部或部分运行于硬件平台上。DSP Test Toolkit与DSP模块不同,利用DSP模块可直接对DSP硬件进行编程,无需单独的DSP编译器。而DSP Test Toolkit则必须通过CCS (Code Composer Studio) 实现对DSP的开发。DSP Test Toolkit提供了一系列可以使LabVIEW和CCS接口的VI,如图1所示。
图1 DSP Test Toolkit在DSP设计中的作用
DSP Test Toolkit提供的VIs分为两组:CCS Automation VIs和CCS Communication VIs。CCS Automation VIs使CCS代码通过LabVIEW自动执行,包括(1)打开CCS,(2)建立项目,(3)复位CPU,(4)加载程序,(5)运行代码,(6)停止CPU,(7)关闭CCS。这些步骤与在CCS中的是相同的。
CCS Communication VIs能够使数据通过RTDX通道进行交换。例如:CCS RTDX写VI与CCS RTDX读VI分别用于向DSP一方写入和读取数据。需要注意的是,以上的VIs都具有多态性。因此,LabVIEW与CCS之间的数据类型和数据格式必须严格匹配才能建立LabVIEW DSP整合。此外,在LabVIEW与C6x DSK目标板之间的通信可以利用TMS320C6x DSP的实时数据交换(RTDX)的功能来实现。此功能允许一个DSK目标板和一个PC主机(运行LabVIEW)之间进行数据交换,而不需要停止DSP一方的程序执行。这种数据交换的实现可以通过联合测试行动组(JTAG)连接,或者使用通用串行总线接口模拟JTAG来连接。RTDX可以设置为两种模式:非连续模式和连续模式。在非连续模式下,数据写入主机的日志文件中。这种模式一般是用于记录。在连续模式下,数据由RTDX主机中的库来缓冲。这种模式通常是用于连续显示数据。 当由PC/LabVIEW来显示处理的数据时,RTDX必须设置为连续模式。
3.3 基于LabVIEW 的DSP系统级设计方法
使用LabVIEW进行DSP开发,程序框图主要分为两大部分,如图2所示。
图2 CCS Automation.vi程序框图
一部分是在图中左侧的顺序结构。对应于CCS自动进程,包括CCS打开项目VI、CCS创建VI、CCS复位VI、CCS加载代码VI和CCS运行VI。此外,还有顺序结构右侧的CCS中断VI和CCS关闭项VI目也是CCS自动进程的一部分。顺序结构中的文件I/O模版的三个函数用来创建CCS项目文件路径,这样就可以在CCS中打开项目文件。通过这些VI和函数,打开CCS、创建项目、在DSP上加载和运行程序,这些进程都可以通过LabVIEW一端来控制。顺序结构中的Dsp.pjt是DSP项目,如LMS.pjt、FFT.pjt等,由设计者依据不同设计要求在CCS中创建。
程序框图中的另一部分为While循环结构,包括系统数据、参数的输入输出显示及分析等图形化代码及CCS RTDX通信模块。CCS RTDX通信模块使得LabVIEW和DSP之间连续交换数据。
在程序运行中,通过前面板上的Code Composer Status可以清楚地显示CCS运行状态,如图3所示。
图3 前面板CCS进程状态显示示例
任何DSP的开发程序都可以套用图2所示的程序模式进行基于LabVIEW的开发设计。对于不同的DSP设计,Dsp.pjt和LabVIEW while循环内图形化代码是不同的。
4 DSP设计实例
4.1 系统辨识原理
自适应滤波器具有在未知环境下良好运行并跟踪输入统计量随时间变化的能力,使得自适应滤波器成为信号处理和自动控制应用领域强大的设备。自适应滤波器应用分为四种类型:辨识、逆模型、预测及干扰消除,其中系统辨识的目的在于设计一个自适应滤波器逼近一个给定的未知的动态系统。应用自适应滤波器实现系统辨识的基本结构如图4所示。
图4 系统辨识的基本结构
在自适应滤波器的应用中,一个重要的问题是确立使可调节的滤波器参数最优的标准(或准则)。最小均方(LMS)算法能够产生一个二次性能指数作为滤波器系数的函数,从而具有单一的最小值,它是自适应滤波器的一种最基本的算法,所以本文采用LMS算法来实现自适应滤波器的应用。
4.2 基于TMS320C6713EVM的系统辨识设计
硬件平台选用的是TMS320C6713EVM高速语音信号(采集)处理平台。该平台采用了Texas Instruments公司高性能浮点DSP器件 TMS320C6713B。使用的仿真器为5100USB V2.0系列DSP仿真器。
软件设计部分如图5所示。由LabVIEW的Express VI产生的正弦波作为输入信号,以巴特沃思滤波器VI作为信号所通过的未知系统。在CCS开发环境下用C语言编写实现自适应滤波器的LMS算法程序,在LabVIEW开发环境下用G语言开发自适应滤波器的应用程序与图形界面,通过LabVIEW与CCS之间的实时数据交换(RTDX)实现通信。
图5 系统辨识程序框图
通过前面板可以清楚直观的看到自适应滤波器输出逐渐逼近未知系统的输出,最后准确的识别出未知系统的过程。输入信号除了使用单频正弦波还以均匀白噪声为输入,实验结果表明均可达到对未知系统的辨识,验证了整个系统功能的正确性及设计方法的有效性。程序运行结果如图6所示。
5 结论
本文在LabVIEW开发环境下实现了基于TMS320C6713EVM DSP硬件开发平台的自适应滤波器应用设计——系统辨识。其设计方法区别于传统的DSP设计开发方法,是DSP设计新方法的有益尝试。这种设计方法大大缩短了DSP的开发周期,充分发挥了DSP和LabVIEW的特点,将复杂运算交给DSP去实现,同时通过LabVIEW的可视化界面可以清楚地看到程序运行的结果与波形,方便实现在线调试,运行结果直观、清晰。使用LabVIEW开发环境进行DSP的开发摆脱了繁琐的基于文本的语言代码和复杂的调试过程,可以轻松实现对DSP的开发,是DSP设计的一个新的发展方向,可以很好地应用于工程实践及DSP教学。
图6 系统辨识运行结果
[1] 陈锡辉,张银鸿. LABVIEW 8.20程序设计从入门到精通[M].北京:清华大学出版社,2007
[2] Jeffrey Travis, Jim Kring. LabVIEW for Everyone[M].美国:Prentice Hall, 2006
[3] 周鹏. 基于DSP和LabVIEW的虚拟仪器系统研究[D]. 烟台大学.2007
[4] 罗伟栋,肖光华,方勇. 基于LabVIEW的LMS自适应滤波器的设计及其应用[J].上海大学学报,2007,(04):456-460
[5] 谢勃,卫志农,陈斌. 基于LabVIEW DSP模块的手持式电力谐波分析仪[J].电力自动化设备,2007,(03):89-92.