王 彬 ,王灵莉 ,王旭柱
(1.中国海洋大学 信息科学与工程学院,山东 青岛 266100;2.濮阳职业技术学院 数学与信息工程系,河南 濮阳 457000)
数据采集卡在数据采集和测量过程中得到了广泛的应用[1]。目前大多数据采集卡主要采用RS232、ISA接口和PCI接口,但这些接口体积庞大,不支持热拔插,而USB接口小巧,支持即插即用和热拔插,弥补了其他接口的不足,同时极大地方便了现场实时数据的采集与分析[2]。LabVIEW是美国国家仪器有限公司(NI)开发的一种图形化编程语言,相对于Visual Basic、Visual C++等传统的文本编程语言,它在测试测量领域具有很强的优势,能够实现应用软件的快速开发,大幅缩短开发时间[3]。本文介绍了一种基于LabVIEW与USB接口的DSP数据采集与处理系统。
数据采集系统的总体框图如图1所示。系统主要包括信号调理电路模块、DSP数据处理模块、CPLD逻辑时序控制模块、USB接口通信模块和LabVIEW上位机模块,其中信号调理模块包括运算放大电路和模/数转换电路。
信号调理电路将模拟信号运算放大、滤波,再经模/数转换电路将模拟信号转换为数字信号;DSP数据处理模块将输入的数字信号进行运算处理,并将处理后的数据经DSP的HPI送入USB接口,然后经USB送入PC机;CPLD模块主要用于DSP的HPI主机接口与USB CY7C68013A的逻辑电路设计、实现上位机对数据采集与处理系统的软件复位和DSP对双通道中两片ADC的切换控制;LabVIEW上位机模块主要完成DSP复位、DSP程序HPI引导及数据显示、存储和处理。
图1 系统总体框图
本系统采用USB主机模式即通过LabVIEW上位机经USB接口实现系统的复位和数据传输控制,使得DSP相当于USB控制的外围芯片。在该方案中USB采用Cypress公司的EZ-USB系列芯片 CY7C68013A,DSP采用TI公司的TMS320C6713B,上述两种芯片能很好地完成系统所需要的性能。
DSP的HPI主机接口是16 bit数据地址复用的并行端口,在主从式系统中通过该接口可以实现主机与从机通信及DSP程序的HPI引导,主机享有对该接口的控制权[4]。
本设计中,USB芯片CY7C68013A主要采用GPIF模式,用于数据采集和批量传输。GPIF模式是一种主机控制模式,其通过 USB2.0的通用可编程接口(GPIF)作为特定的应用接口编程,可使用多种协议完成与外围器件的无缝连接,特别适用于高速数据传输的场合[5]。本系统就是采用USB的GPIF模式实现与DSP的HPI口的数据通信,USB接口与DSP的 HPI接口需要 CPLD进行逻辑转换。USB与TI 6713 HPI接口框图如图2所示。
PB[7:0]和 PD[7:0]作为 16 bit数据总线连接 HPI的HD[15:0];PA2、PA3作 为 地 址 线 用 来 选 择 HPI中 的HPIC、HPIA和HPID寄存器。CLT0连接HR/W用来控制读取或写入数据。CLT2连接HHWIL用来表示第一字节或第二字节。CLT1连接 HDS2,HDS1、HAS固定接高电平,HCS接地,这样可在HPI模块中共同产生HSTROBE信号来锁存控制信号,进行数据传输。RDY0连接HRDY,用来向主机插入等待状态。INT0连接HINT,DSP可以通过该引脚中断主机。
本系统中的逻辑时序控制主要通过CPLD完成。CPLD的最大优势在于其具有很大的灵活性,所以设计中可以将不是很肯定的逻辑设计端口都输入到CPLD中。
本系统可以通过LabVIEW上位机复位DSP,并能够实现对DSP程序的HPI引导。其中通过主机复位DSP的设计部分尤为重要。下面为通过CPLD实现系统软件复位的部分VHDL程序。
CODE<=′0′when address(1)=′1′and address(0)=′1′else ′1′;
DSPRESET<=CODE or CTL0;
在LabVIEW上位机中调用VISA控制输入命令设置USB的地址总线GPIFADR[8:0]低两位,在CPLD中进行或运算使DSPRESET为低电平,从而完成DSP复位。然后主机向 HPIC中DSPINT位写1,将DSP从复位状态唤醒,DSP开始执行程序。
在本文中,USB芯片CY7C68013A采用GPIF模式进行数据传输,该模式使用4个用户定义的波形描述符来控制状态机,实现FIFO读写及单字节的数据读写操作[6]。采用Cypress提供的GPIF Designer软件进行波形图设计,设计时,首先设计GPIF与外部器件的接口,然后再设计单字节写、FIFO读写波形。其引脚配置如图3所示。
GPIF单字节写通过通道0向DSP中写入32 bit控制数据,本设计中GPIF单字节写分为Sngwr1和 Sngwr2,其中Sngwr1的数据波形图如图4所示。在SngWr1中HR/W在S0~S2状态保持 0以描述该操作为向 HPI写数据,HHWIL在 S0~S2状态保持为 0表示传输的数据为第一半字。在SngWr2中数据波形图与SngWr1中基本一致,只是HHWIL在S0~S2状态保持为1表示传输的数据为第二半字。
GPIF FIFO写操作通过通道2向HPI RAM中写入数据,通过该操作可向DSP中写入DSP程序;GPIF FIFO读操作通过通道6读取HPI RAM中数据,然后在Lab-VIEW上位机显示、存储。当波形图设计完成后,生成相应的波形描述文件gpif.c,加入到Keil工程中。在Keil工程中同时加入Cypress提供的基本固件框架结构,其中主函数文件主要执行USB设备的各种初始化及其他自定义操作,功能实现文件进行USB上电初始化和GPIF数据传输。然后将Keil的μVision编译环境下生成的hex文件转换为USB上电自动加载的程序文件,这样当USB设备连接到主机后,将自动从主机下载固件程序。
为了能够在LabVIEW中识别该USB设备,本系统使用NI-VISA创建USB设备驱动程序。虚拟仪器软件架构 VISA(Virtual Instrument Software Architecture)是一种编程接口 (API),基于它可以实现与各种仪器总线进行通信。针对USB通信,VISA有两种类函数,可以分别控制USB INSTR和USB RAW设备。符合USB测试与测量类(US-BTMC)协议的 USB设备可以通过使用USB INSTR类函数来控制,USB RAW则是除 USB INSTR之外的所有 USB设备。在该设计中,采用的USB是一种USB RAW设备。
利用Driver Wizard工具创建USB设备的驱动程序,需要注意安装顺序。首先修改Cyload.inf文件,将VID和PID改为所用USB设备的VID和PID;待下载完固件程序后,系统会提示安装驱动程序,此时采用NI-VISA来创建驱动程序;完成USB驱动程序安装后,便可以在计算机的设备管理器中查看到安装后的USB设备,如图5所示。
至此,该 USB设备驱动程序的安装完成,在LabVIEW下便可以对USB设备进行自由读写和数据传输了。
上位机程序界面如图6所示。连接设备后,通过向通道0发送控制命令,通过通道2加载DSP程序,通过通道6将采集处理过的数据在LabVIEW上位机数据采集系统中显示和保存。采用泰克公司的任意波形发生器产生模拟的荧光信号和多普勒信号,在上位机中的数据波形显示如图6所示。
本文主要介绍了基于LabVIEW和USB2.0的DSP数据采集与处理系统,通过LabVIEW上位机可以实现DSP复位、DSP程序HPI引导及数据的显示、存储和处理;同时采用USB接口设计,使得该系统简单方便,能更好地适应野外数据采集环境。该系统性能稳定可靠,实用方便,操作简单,可以很好地完成数据处理任务。
[1]沈兰荪.数据采集技术[M].合肥:中国科学技术大学出版社,1990.
[2]薛园园.USB应用开发技术大全[M].北京:人民邮电出版社,2006.
[3]陈树学,刘萱.LabVIEW 宝典[M].北京:电子工业出版社,2011.
[4]Texas Instruments Incorporated.TMS320C6713B data book[R].Revised June 2006.
[5]Cypress Semiconductor Corporation.CY7C68013 EZ-USB FX2 USB microcontroller data sheet rev[R].21 June 2002.
[6]薛园园,赵建领.USB应用开发宝典[M].北京:人民邮电出版社,2011.