传统的数据采集器多采用Intel5l系列或Intel96系列的CPU,运算能力差,速度慢,精度低,尤其是浮点运算能力限制了技术指标的进一步提高。有鉴于此,各科研单位及数据采集器产家正积极开发新一代的数据采集器。如采用高性能的嵌入式芯片,或带有数字信号处理功能的芯片等。TI公司的TMS320VC33数字信号处理芯片已能支持高达150M FLOPS的运行速度,是需浮点运算的电子产品应用场合中一种较理想的微处理器件,特别适合于声学信号处理。 WWW_PLCJS@_COM%-PLC-技.术_网
此外,与常用的计算机接口(如串口、并口)相比USB标准具有热插拔、即插即用、数据传输可靠、扩展方便、低成本等优点。基于以上考虑,可设计一套集成A/D、DSP、USB的数据采集系统。该系统基于TMS320VC33芯片,具有完整的采集、处理、通讯功能,基本结构如图1所示。WWcW_PLCJS_COM-PLC-技.术_网
WW.W_PLCJS_COM-PLC-技.术_网
系统的工作原理是:PC与数据采集设备构成主从方式,PC应用程序通过USB总线向DSP配置参数并设定工作方式,之后发送工作命令;DSP按照工作命令,启动设备,通过传声器拾取声音信号,经前置放大、滤波等信号调理,再把数据传输给DSP; DSP根据参数设定,对信号进行变换处理,或者直接通过USB传输数据给PC。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
系统硬件设计WWcW_PLCJS_COM-PLC-技.术_网
硬件由以下几部分组成:(1)模拟部分;(2)A/D转换;(3)数字信号处理器(DSP);(4)闪速存储器FLASH;(5) USB通信L模块。WW.W_PLCJS_COM-PLC-技.术_网
A/D转换电路WWW_PLCJS@_COM%-PLC-技.术_网
采用TLV2548进行模数转换。TLV2548是TI公司生产的一种高性能、12位低功耗/高速CMOS模数转换器,它精度高、体积小、通道多,使用灵活,并具有采样、保持功能,电源电压为2.7~5.5V。另外TLV2548还有3个输入端和1个三态输出端,可为微处理器串行端口(SPI)提供4线接口。WWW_PLCJS_COM-PLC-技.术_网
图2是TLV2548与VC33硬件接口原理图。ADC的Vcc引脚连接3.3V的电压,4.7uF电容保证A/D转换时电路电源的稳定,0.01uF电容为旁路电容,应尽可能与管脚靠近。正极(REFP)和负极(REFIVI)之间的参考电压确定了模数转换器ADC的转换范围以及模拟信号的最大输入(AO-A7)电压。DSP通过XFO引脚连接到ADC的CS片选引脚来确定ADC是否被选中。DSP发送时钟,DSP的CLKXO和CLKRO引脚与ADC的SCLK相连接,这样CLKXO提供固定的时钟到SCLK和CLKRO。DSP的FSXO和FSRO引脚与ADC的FS引脚相连接,DSP发送同步帧信号到ADC的FS管脚,同时FSRO也接收同步信号。DSP的控制信号由DXO引脚发送给TLV2548,由TLV2548的SDI引脚来接收DSP的控制信号。DSP的控制信号控制ADC的模数转换,当ADC的转换过程结束以后,ADC产生中断申请信号,由EOC/INT\引脚发送给DSP的INT3\,请求DSP为读取数据做准备。ADC的转换结果由ADC的SDO引脚发送给DSP,最后DSP由DRO引脚接收转换结果。WWW_PL※CJS_COM-PLC-技.术_网
WWW_PL※CJS_COM-PLC-技.术_网
通信接口电路——可——编——程——控-制-器-技——术——门——户
采用PD I USBD12实现DSP与PC的通信。PD IUSBD12(简记D12)是一款性价比很高的USB器件,片内集成了SIE、FIFO存储器、收发器及电压调整器等。是具有并行总线和局部DMA传输能力的全速USB接口器件。D12不仅具有低的操作功耗,可用于总线供电的外设,而且还集成了许多特性,包括SoftconnectTMGoodlinkTM、可编程时钟输出低频晶振。这些特性使得系统成本降低,同时便于USB功能在外设上应用。此外,D12可使系统开发者在各种不同类型的MCU中作出最合适的选择,这种灵活性减少了开发时间和费用,并且可以很容易地对已有系统进行升级或USB改造。所以,尽管D12只支持USB 1.1协议,却是在USB设备端使用最多的USB芯片之一。WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
自供电、非DMA方式的连接电路如图3所示。WWW_PL※CJS_COM-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
D12的8根数据线直接与DSP的数据线相连。读写使能由CPLD译码DSP的R/W、IOSTRB后提供。当D12在以12Mbps的速度传输并与微控制器并口连接时,存储器管理单元(MMU)和集成RAM作为USB之间速度差异的缓冲区。这就允许微控制器以自己的速度对USB信息包进行读写。SUSPEND引脚直接拉低,使得D12芯片不挂起,但是中断寄存器中的挂起中断仍会置位。在没有使用DMA方式时,DMACK_N, EOT_N上接上拉电阻与Vcc相连。D /D-信号线上串接18Ω的匹配电阻。plcjs.技.术_网
其他电路WWW_PLC※JS_COM-PmLC-技.术_网
VC33芯片通过外接MCBL/MP引脚可选择工作方式,一种是微处理器模式,一种是计算机模式。后者通过一种称为BOOTLOAD的方法,使系统在上电复位后,把存储在低速EPROM或者FLASH里的程序加载到高速片内RAM或者外部静态RAM中。其过程类似于操作系统在PC机启动后从硬盘或者软盘加载到内存。为此,板上扩展了1片SST39VF400A的FLASH芯片,存储空间为256K*16BITSH,用来存放程序,帮助实现脱机运行;P.L.C.技.术.网——可编程控制器技术门户
此外,选用了一块CPLD芯片EPM7192S实现片选、读写控制、硬件等待插入、DSP复位中断信号产生。EPM7192S外接I/0电源可选3.3V或5V,因为也可和VC33直接相连。WWW_PLC※JS_COM-PmLC-技.术_网
考虑到USB主机总线可提供 5V,最大电流为500mA的电源,整个电路板由主机USB总线提供 5V电源,采用TI公司的TPS767D318芯片变压输出3.3V和1.8V电压供电。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
系统软件设计——可——编——程——控-制-器-技——术——门——户
与电路精简相对应的是软件工作量的加大。由图1所示,各功能模块串行级联,可以理解为PC和DSP两个CPU按主从方式工作。在PC端,需要设计USB设备的windows驱动程序,以及通过驱动程序访问设备的应用程序。在DSP端,需要设计USB接口器件的固件驱动程序以及AD采样/存储程序。设计的第一步需要制定好协议,合理分配好DSP存储空间。按照协议,一个完整的数据采集流程如图4所示。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
WWW_PL※CJS_COM-PLC-技.术_网
在整个软件开发中,USB通信模块是难点。因为USB的开发需要熟悉USB协议规范,了解windows底层驱动开发,掌握DDK、VC 等软件开发。另外设备端的固件开发也是个挑战。实践中,笔者购买了一块针对PDIUSBD12芯片的实验板,实验板集成了AT89S52单片机和在该单片机上运行的USB固件程序,使用者可以针对该实验板检验自己开发的驱动程序。安装WinDbg,按照帮助文件搭建调试驱动程序的平台(需要两台计算机通过RS232或者1349线连接),以内核模式调试驱动。笔者修改了DDK自带的驱动程序模板代码,用WinDbg跟踪调试设备的上电检测、PnP检测,驱动程序的装载,设备的读写,获得成功。对于固件USB的固件开发,在Philips公司的网站可下载其用keil5l写的参考源码。笔者在研读了以后,进行了移植,实践证明这样比从头写起能节省大量时间,而且相当可靠。基本的原理的是PDIUSBD12以中断方式触发DSP, DSP转入相应的ISP处理USB的上电、复位、初始化和主机命令等。WWW_PLC※JS_COM-PmLC-技.术_网
PC的应用程序用VC 开发,对设备的访问和读写调用Win32 API ,以下是几个主要API的函数名:WW.W_PLCJS_COM-PLC-技.术_网
CreateFile;DeviceloControl;ReabFile:WriteFile;CIoseFile.WWW_P※LCJS_COM-PLC-)技.术_网
对于设备端口状态的监听和检测,需要开启相应的线程。WWW_PLCJS@_COM%-PLC-技.术_网
DSP通过串口与AD通信,采用中断方式处理。需要说明的是,器件的上电和初始化要求必须通过先向丁LV2548写入AOOOh的方法确定处理器的类型,然后对器件进行编程,器件在上电或断电方式回复后第一次转换无效。P.L.C.技.术.网——可编程控制器技术门户
结论WWW_PL※CJS_COM-PLC-技.术_网
主从模式的设计使系统能够方便的扩展,以适应于不同的应用。PC机可以设计LabView界面,动态显示声学信号的波形、频谱,估算声级指标等。也可以编写matlab接口,对实时采集的数据进行分析。PC总线供电和USB通信方式则使系统更经济,使用更方便。WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)