基于DSP技术与USB2.0的数据采集实时处理系统
2011-05-12王灵莉王旭柱
雷 云 王灵莉 王旭柱
(1.中国海洋大学信息科学与工程学院通信与信息系统,山东 青岛 266100 2.中国海洋大学信息科学与工程学院电子系,山东 青岛 266100)
1 引言
在海洋环境监测领域中,采集的通常是水下的光信号,光信号通过光纤传输经过传感器转换成模拟电信号,对该信号的采集与处理主要由AD转换器和DSP芯片组成的系统完成,AD转换器的最高工作频率决定了信号采集的速率,而整个系统的处理能力则由DSP芯片决定。作者根据项目需要设计了一种通用性的设备,双通道、最大采样速率为5M的数据采集与实时处理系统。该系统具有较强信号处理能力和较大数据吞吐量,主要应用于基于激发荧光和激光多普勒技术的浮游植物粒径分布现场在线监测系统中的数据采集与处理部分。
2 系统硬件设计
本系统可以完成对荧光信号和多普勒信号采集和实时处理并将处理后的频谱数据通过USB接口传输到PC机并显示出来。系统主要分为数据采集部分,数据处理部分,逻辑时序控制部分,主机通信部分,以及电源管理。
选用TI公司的浮点高速C6000系列中的TMS320C6713B作为核心处理芯片,模拟电信号经THS4503后转变为差分信号,输入ADS1605后将模拟信号转换为16位的数字信号。通过DSP的地址译码分时选通AD1和AD2实现双通道的由AD到DSP的EMIF总线的数据传输:,相应的信号处理算法在DSP中实现。在CPLD控制下数据由DSP的HPI接口通过USB接口芯片传入PC,系统结构如图1:
图一
2.1 DSP以及外围芯片电路设计
TMS320C6713 DSP是美国TI于1997年推出的C6000系列DSP芯片的一款,它是32位高速浮点型DSP,时钟最高频率为300MHz,,其EMIF总线宽度为16位,接口电压为3.3V,
其EMIF提供了4个外设空间[2],在本设计中两个通道的AD1和AD2分别占用CE0空间中的两个地址,通过DSP中的主程序读取这两个地址中的值来读取相应通道中的ADC数据总线上的16为数据。在实时采集时,通过CPLD来实现DSP地址译码。通过EMIF的地址总线EA2,EA3和CE0,进行译码。当AD1的片选信号CE和RD信号同时为低电平时,AD1的数据线上将由高阻变成有效的数据,而此时AD2的片选CE为高电平所以 AD2的数据线为高阻状态,所以在同一时间EMIF总线上不会出现总线竞争情况。
2.2 USB2.0接口设计
系统的数据传输通过USB接口芯片,所以本方案采用 CY7C68013的“GPIF主控”接口模式与TMS320C6713B芯片 HPI接口连接,该芯片的最主要特点是可通过 USB2.0的通用可编程接口 (GPIF)为特定的应用接口编程,以便使用多种协议完成与外围器件的无缝连接“GPIF主控”接口模式 ,使用PORTB和PORTD双向 FIFO数据线来构成通向四个端点 FIFO(EP2、EP4、EP6、EP8)的 16 位数据接口 ,以用来连接数据线 DD[15:0]并进行数据的传送;GPIF作为内部主控器与 FIFO相连 ,并通过产生用户可编程的控制信号CTL[2:0]与外部接口进行通信。同时 ,GPIF还可以通过 RDY[1:0]引脚采样外部信号并等待外部事件。
3 系统程序设计
3.1 DSP程序设计
该系统DSP的程序由C语言程序和汇编程序组成,完成双通道数据采集与实时处理。通道1采集荧光信号,通道2采集多普勒信号。当系统启动后两个通道都开始进行2K的数据循环采样,同时通道1中的数据进行32个数据累加检测,当32个数据的和大于设置的触发门限时,两个通道都开始进行6K的数据采样,由于保存了触发前的两个通道的2K数据,所以两个通道中的数据均为8K,然后对通道1的8K数据求最大值和最小值,计算出中间值,通过对一通道中的数据进行搜索,与中间值进行比较得到其下标地址,从而得出脉冲的两个中间值之间的宽度。在通道2中对采集的8K数据进行快速傅里叶变换得到频谱,最后将以上数据传到上位机显示。
3.2 Usb接口芯片固件程序
固件是在USB接口芯片加电后,由其他设备加载到CY7C68013芯片中并在其中运行完成接口数据传送功能的一段程序.在该系统中,CY7C68013芯片的固件程序控制整个硬件系统的运行,包括初始化工作;硬件设备的重新列举,处理PC主机发来的各种USB请求和数据传输。该固件是根据Cypress公司提供的固件编程框架来完成的,所使用的编程语言则是Keil公司的C51编译器。
固件程序的核心内容为Fw.c(框架源代码Fw.c中主要包括任务分配器(TD)函数和设备请求(DR)函数)、Ti6713HPI.c( 用户自定义函数)以及Gpif.C(波形时序控制),由GPIF_Designer生成,用以匹配 HPIC、HPIA、HPID 时序,将GPIF_Designer的4组波形分别定义为:第一半字写、第二半字写、FIFO写和FIFO读,其中前两组波形配合任务分配器函数TD_Poll()完成DSP中寄存器HPIC和HPIA的写,后两组波形配合TD_Poll()完成自增模式下HPID的读写,波形的设计要严格遵守HPI总线访问时序。
结束语
本文主要介绍了基于TMS320C6713B的数据采集与实时处理系统,创新点在于该系统可以高速高效的在双通道之间进行切换,实现了主机在线编程,可以根据任务随时通过PC机更换系统的DSP程序,使系统可以灵活处理各种数据采集处理任务。
[1]王粘旭.DSP基础与应用系统设计.北京航空航天大学出版社,2001.
[2]Texas Instruments.TMS320C6713B Data Book.RevisedJune,2006.
[3]汪安民,张松灿.TMS320C6000 DSP实用技术与开发案例.人民邮电出版社.
[4]薛园园.USB应用开大技术大全.人民邮电出版社.