基于DSP和USB的高速数据采集与处理系统设计
发布时间:2008/6/5 0:00:00 访问次数:539
在图像数据处理系统中,常常需要对高速信号进行采集与处理。例如,在光传感技术中对光脉冲散射信号的测量,在雷达工程中对电磁脉冲信号的测量等,都需要对高速信号进行采集与运算,而且此类高速信号的测量,往往对数据采集与处理系统提出严格的要求。本文设计并实现一种基于dsp和usb的高速数据采集与处理系统。该系统电路简单,可靠性好,具有一定的通用性,并且可以进行多通道扩展。
1 原理概述
基于dsp和usb的高速数据采集与处理系统的原理框图如图1所示。系统上电后,dsp、fpga分别由各自的flash加载程序,采集与处理系统开始运行。在a/d变换器完成转换后由fpga向dsp发送中断0申请信号,dsp从a/d fifo ram中读取数据,并进行小波变换去噪处理,处理结束后dsp向usb控制器发送中断申请信号,usb控制器将处理后的数据发送至pc机,由主机应用程序显示数据。主机应用程序还可以对整个采集、处理系统进行控制,主要设定三个功能:接收处理后的数据,接收处理前的数据,设定a/d的采样频率和采样点数。
2 系统硬件设计
系统硬件设计主要分为三大部分:dsp部分、fpga部分、usb部分。
2.1 dsp部分设计
本系统使用的dsp芯片为ti(德州仪器)公司的tms320vc33,它是ti公司推出的性价比极高的32位浮点型数字信号处理芯片,是目前在国内外使用最为广泛的浮点dsp之一。
tms320vc33具有以下特点:哈佛结构;流水线操作;专用的硬件乘法器;特殊的dsp指令;快速的指令周期。另外,tms320vc33还具有强大的浮点运算能力,运算速度可达 150mflops(每秒百万次浮点运算),处理能力达到75mips(每秒百万次指令周期)。而且,它还采用3.3v i/o电压和1.8v处理器核电压使功耗降低到200mw。
dsp部分的电路设计主要是为tms320vc33的外围电路设计。tms320vc33的strb0和引脚分别连接存储器的片选和使能引脚,实现程序/数据存储器的扩展;引脚接到高电平,int2引脚接到低电平,实现上电后程序自加载;由tms、tdi、tdo、tck、、emu0、emu1等引脚组成程序下载口,以方便dsp程序调试。
2.2 fpga部分设计
因为本系统的逻辑比较复杂,为了有效地减少硬件的体积、提高硬件系统的可靠性,这里把所有的逻辑控制电路、各种存储器/寄存器的地址译码电路都用一块超大规模现场可编程逻辑门阵列(fpga)xc3090来实现。逻辑控制电路包括:命令寄存器、采样点数/采样频率设定寄存器、中断申请信号发生器、将a/d结果写入fifo ram的控制电路、usb及其fifo和a/d fifo状态检测电路。
2.3 usb部分设计
tms320vc33与usb控制器an2136sc之间通过双向fifo 交换数据,握手信号使用an2136sc的pc口。当usb为接收缓冲器时,dsp读,an2136sc写;当usb为发送缓冲器时,dsp写,an2136sc读。pc(0)~(3)用作二者的读写通道,方向可编程确定; pc(4)用于tms320vc33向an2136sc申请中断;pc(5)用于an2136sc复位usb接收缓冲器;pc(6)用于usb接收器满标志,若接收器已满则禁止an2136进一步对usb接收缓冲器写入;pc(7)用于usb发送缓冲器空标志,若缓冲器已空则禁止an2136sc进一步对usb发送缓冲器读出。
3 系统软件设计
系统软件主要包括五大部分:dsp程序(用于a/d采样控制、数据处理、dsp与usb总线之间的信息交换)、usb总线驱动程序、usb固件程序(用于pc机与dsp之间的数据交换与处理)、主机应用程序、fpga中对地址的译码程序和各个寄存器的实现程序。
3.1 dsp程序
dsp程序首先对dsp进行初始化(中断初始化、片外选通信号初始化、设定系统默认的采样点数/采样频率等),然后等待中断(中断0的程序主要用于对a/d数据的读取和处理,并向主机发送处理后的数据;中断1的程序主要用于分析主机的命令,针对主机的命令设定系统的采样点数/采样频率,并发送主机需要的数据)。程序框图如图2所示。
3.2 usb固件程序
固件程序代码由usb芯片集成的加强型8051单片机处理。当ez-usb设备连接到usb口时,主机进行总线枚举,首先根据设备id使用系统程序将固件下载到芯片内部,然后进行重枚举,固件作为用户的功能设备开始执行。cypress公司提供的固件程序框架,用来完成控制传输工作和大部分的数据传输工作。本接口电路的固件程序就是基于此固件框架开发的,并使用keil c进行编译。usb接收的dsp中断程序如下:
void isr_idt(void) interrupt int0_vect
{fastxfr = 0x40; 使能快速传模式
autoptrl=lsb((word)&in4buf); 将自动指针指向端点4缓冲
在图像数据处理系统中,常常需要对高速信号进行采集与处理。例如,在光传感技术中对光脉冲散射信号的测量,在雷达工程中对电磁脉冲信号的测量等,都需要对高速信号进行采集与运算,而且此类高速信号的测量,往往对数据采集与处理系统提出严格的要求。本文设计并实现一种基于dsp和usb的高速数据采集与处理系统。该系统电路简单,可靠性好,具有一定的通用性,并且可以进行多通道扩展。
1 原理概述
基于dsp和usb的高速数据采集与处理系统的原理框图如图1所示。系统上电后,dsp、fpga分别由各自的flash加载程序,采集与处理系统开始运行。在a/d变换器完成转换后由fpga向dsp发送中断0申请信号,dsp从a/d fifo ram中读取数据,并进行小波变换去噪处理,处理结束后dsp向usb控制器发送中断申请信号,usb控制器将处理后的数据发送至pc机,由主机应用程序显示数据。主机应用程序还可以对整个采集、处理系统进行控制,主要设定三个功能:接收处理后的数据,接收处理前的数据,设定a/d的采样频率和采样点数。
2 系统硬件设计
系统硬件设计主要分为三大部分:dsp部分、fpga部分、usb部分。
2.1 dsp部分设计
本系统使用的dsp芯片为ti(德州仪器)公司的tms320vc33,它是ti公司推出的性价比极高的32位浮点型数字信号处理芯片,是目前在国内外使用最为广泛的浮点dsp之一。
tms320vc33具有以下特点:哈佛结构;流水线操作;专用的硬件乘法器;特殊的dsp指令;快速的指令周期。另外,tms320vc33还具有强大的浮点运算能力,运算速度可达 150mflops(每秒百万次浮点运算),处理能力达到75mips(每秒百万次指令周期)。而且,它还采用3.3v i/o电压和1.8v处理器核电压使功耗降低到200mw。
dsp部分的电路设计主要是为tms320vc33的外围电路设计。tms320vc33的strb0和引脚分别连接存储器的片选和使能引脚,实现程序/数据存储器的扩展;引脚接到高电平,int2引脚接到低电平,实现上电后程序自加载;由tms、tdi、tdo、tck、、emu0、emu1等引脚组成程序下载口,以方便dsp程序调试。
2.2 fpga部分设计
因为本系统的逻辑比较复杂,为了有效地减少硬件的体积、提高硬件系统的可靠性,这里把所有的逻辑控制电路、各种存储器/寄存器的地址译码电路都用一块超大规模现场可编程逻辑门阵列(fpga)xc3090来实现。逻辑控制电路包括:命令寄存器、采样点数/采样频率设定寄存器、中断申请信号发生器、将a/d结果写入fifo ram的控制电路、usb及其fifo和a/d fifo状态检测电路。
2.3 usb部分设计
tms320vc33与usb控制器an2136sc之间通过双向fifo 交换数据,握手信号使用an2136sc的pc口。当usb为接收缓冲器时,dsp读,an2136sc写;当usb为发送缓冲器时,dsp写,an2136sc读。pc(0)~(3)用作二者的读写通道,方向可编程确定; pc(4)用于tms320vc33向an2136sc申请中断;pc(5)用于an2136sc复位usb接收缓冲器;pc(6)用于usb接收器满标志,若接收器已满则禁止an2136进一步对usb接收缓冲器写入;pc(7)用于usb发送缓冲器空标志,若缓冲器已空则禁止an2136sc进一步对usb发送缓冲器读出。
3 系统软件设计
系统软件主要包括五大部分:dsp程序(用于a/d采样控制、数据处理、dsp与usb总线之间的信息交换)、usb总线驱动程序、usb固件程序(用于pc机与dsp之间的数据交换与处理)、主机应用程序、fpga中对地址的译码程序和各个寄存器的实现程序。
3.1 dsp程序
dsp程序首先对dsp进行初始化(中断初始化、片外选通信号初始化、设定系统默认的采样点数/采样频率等),然后等待中断(中断0的程序主要用于对a/d数据的读取和处理,并向主机发送处理后的数据;中断1的程序主要用于分析主机的命令,针对主机的命令设定系统的采样点数/采样频率,并发送主机需要的数据)。程序框图如图2所示。
3.2 usb固件程序
固件程序代码由usb芯片集成的加强型8051单片机处理。当ez-usb设备连接到usb口时,主机进行总线枚举,首先根据设备id使用系统程序将固件下载到芯片内部,然后进行重枚举,固件作为用户的功能设备开始执行。cypress公司提供的固件程序框架,用来完成控制传输工作和大部分的数据传输工作。本接口电路的固件程序就是基于此固件框架开发的,并使用keil c进行编译。usb接收的dsp中断程序如下:
void isr_idt(void) interrupt int0_vect
{fastxfr = 0x40; 使能快速传模式
autoptrl=lsb((word)&in4buf); 将自动指针指向端点4缓冲
热门点击
- 基于DSP和USB的高速数据采集与处理系统设
- 赛灵思推出Virtex-5 SXT240T高
- 基于DSP的音频会议信号合成算法研究
- Xilinx推出全球性能最高的可配置DSP解
- TI推出业界最低功耗可编程DSP
推荐技术资料
- 业余条件下PCM2702
- PGM2702采用SSOP28封装,引脚小而密,EP3... [详细]