当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]在图像数据处理系统中,常常需要对高速信号进行采集与处理。例如,在光传感技术中对光脉冲散射信号的测量,在雷达工程中对电磁脉冲信号的测量等,都需要对高速信号进行采集与运算,而且此类高速信号的测量,往往对数据采集与处理系统提出严格的要求。本文设计并实现一种基于DSP和USB的高速数据采集与处理系统。该系统电路简单,可靠性好,具有一定的通用性,并且可以进行多通道扩展。

在图像数据处理系统中,常常需要对高速信号进行采集与处理。例如,在光传感技术中对光脉冲散射信号的测量,在雷达工程中对电磁脉冲信号的测量等,都需要对高速信号进行采集与运算,而且此类高速信号的测量,往往对数据采集与处理系统提出严格的要求。本文设计并实现一种基于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中断程序如下:

voidISR_IDT(void) interrupt INT0_VECT

{FASTXFR = 0x40;使能快速传模式

AUTOPTRL=LSB((WORD)&IN4BUF);将自动指针指向端点4缓冲器

AUTOPTRH=MSB((WORD)&IN4BUF);

for(i=0;i<64;i++)

{AUTODATA=ACC};接收数据

FASTXFR=0x0;

IN4BC=64;发送数据大小

EZUSB_IRQ_CLEAR();

IN07IRQ=bmEP4;使能端点4}

3.3 主机应用程序

为了实现与驱动程序的通信,应用程序首先创建一个事件和一个线程,然后将事件句柄传递给WDM,用线程等待WDM发送的事件消息,接收到事件消息后,就读取驱动程序的数据,显示数据。

在Windows中,Win32应用程序调用的API函数有五个:CreateFile()、ReadFile()、WriteFile()、DeviceIoControl()和CloseHandle()。

应用程序为打开一个WDM设备驱动程序,使用CreateFile()函数。它的第一个参数是一个符号链接名。如果用DriverWorks创建一个WDM驱动程序,通常会用类KUnitizedName生成一个设备符号链接名。这个名字的后面有一个数字,一般是一个0。例如,若符号链接名为L“USBDevice”,则传递给CreateFile()的是“.USBDevice0”。

一旦应用程序获得设备的有效句柄,它就能够调用Win32函数,这将产生对应于此设备对象的相应的IRP,发送给驱动程序,完成相应功能。

有关代码如下:

HANDLE hDevice hDevice= CreateFile(“.USBDe-vice0”,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,OPEN_EXISTING,

FILE_ATTRIBUTE_NORMAL,NULL);//打开设备句柄

ReadFile(hDevice,buf,n,&nRead,NULL);//读操作

4 试验结果

本系统软硬件调试均已成功,图3为CCD在半遮挡情况下原始信号的波形。本系统还可以采集和处理图像信号(例如CCD面阵信号)。

本文提出了一种基于DSP和USB的高速数据采集与处理系统,详细地介绍了系统的硬件和软件设计方法。经使用验证,系统很好地实现了对CCD信号的采集和处理。利用一块超大规模现场可编程逻辑门阵列,减小了PCB板的制作空间并且大大地增加了系统的可靠性;使用DSP处理器,提高了数据的传输速度和处理速度,进而保证了系统的实时性;由USB主控制器完成与PC机的通信,具有热插拔、易于使用、传输速率高等特点;而且整个系统构成合理、实现方法简单、具有实用价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭