datasheet

基于DSP和USB的高速数据采集与处理系统设计

2008-05-28来源: 电子技术应用关键字:DSP  高速数据采集  USB总线  固件程序  指令周期  乘法器  WDM驱动程序  

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

  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机的通信,具有热插拔、易于使用、传输速率高等特点;而且整个系统构成合理、实现方法简单、具有实用价值。

  参考文献

  1 官章全,刘加明.Visual C++.NET类库大全.北京:电子工业出版社,2002

  2 苏 涛,蔺丽华.DSP实用技术.西安:西安电子科技大学出版社,2002

  3 颜荣江.EZ-USB 2100系列单片机原理、编程及应用.北京航空航天大学出版社,2002

  4 任晓东. CPLD/FPGA高级应用开发指南.北京:北京电子工业出版社,2003

关键字:DSP  高速数据采集  USB总线  固件程序  指令周期  乘法器  WDM驱动程序  

编辑:孙树宾 引用地址:http://www.eeworld.com.cn/afdz/2008/0528/article_700.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:利用实时Java设计数字音频系统
下一篇:基于USB2.0接口的语音采集系统设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

汽车音频工程师的DSP开发方法论

当“汽车”与“电子”这两个词开始出双入对,就注定了DSP成为乘客的命运,毕竟哪里有电子,哪里就大概率有数字信号,而哪里有数字信号,哪里就是DSP的舞台。如今,DSP已经广泛应用于汽车的各个功能。比如在发动机上,DSP可获取并分析各气缸内压力数据,然后输出控制信号,使发动机处在最佳点火时刻和空燃比的状态;在底盘上,DSP可获取ABS系统数据,进而保证车辆的稳定性;在安全气囊上,DSP可以实现对点火电流的反馈控制,使安全气囊在准确的时间点展开;在新能源汽车上,DSP可对电池进行管理…… 随着汽车电子的发展,DSP在汽车上的应用场景越来越多。而汽车上有一个较为传统的应用场景,也随着DSP技术的发展而不断进化,那就是影音娱乐
发表于 2019-03-26
汽车音频工程师的DSP开发方法论

物联网处理的最佳选择:DSP +CPU

一般认为,在需要数字信号处理时(在调制解调器的物理层、智能扬声器的麦克风波束形成或跟踪设备的地理定位时)要使用DSP。如果需要数字控制(运行协议栈或管理音频编解码器或GNSS的控制方面 ),则要使用MCU。由于典型的物联网设备需要这两种功能,因此必须使用两个或更多内核。对于对续航时间要求不高的高利润设备,这也许不是什么大问题,但对许多物联网应用而言这可能是一个严重缺点。对于这类应用,经优化的复合处理器可以更经济高效地满足这两种需求,并延长设备续航时间。我们对此进行了非常详细的分析;我们认为这样的解决方案不仅可行,而且在各种物联网应用中具有很强的竞争力。想想共享单车或共享踏板车。这些设备显然需要跟踪,因此嵌入式设备必须能够
发表于 2019-03-14

BISTel全新AI系统连接MindSphere,加快客户智能制造之旅

深圳和上海,2019年1月18日BISTel是智能制造的自适应智能(AI)解决方案的领先供应商,它已加入MindSphere合作伙伴计划,西门子的工业物联网解决方案和技术提供商合作伙伴计划。预计BISTel应用程序将在MindSphere平台Q1 2019上提供.BISTel将通过宣布推动中国智能制造业增长的新型人工智能产品,讨论该公告的重要性以及如何帮助其扩展在中国的业务。 1月18日在深圳和1月21日在上海举行的两场新闻发布会上,BISTel高级管理人员将宣布重大投资和扩展计划,以帮助中国发展其智能制造市场或工业4.0。 BISTel的高级数据分析平台eDatalzyer®及其设备实时健康监测和预测维护
发表于 2019-03-05

STM32F4学习笔记1——如何使用DSP库

配置 1、 安装DSP库文件 2、 配置编译环境, 上述添加是在project→options→C/C++→Define中添加,并且分割用逗号,即__FPU_PRESENT=1,__FPU_USED=1,ARM_MATH_CM4,__CC_ARM3、 在需要调用DSP函数的文件中加上#include "arm_math.h" 4、 需要在project中添加用到的.c文件,看你用的是哪个函数,就添加哪个.c文件。.c文件目录为 XXX\Drivers\CMSIS\DSP_Lib\Source
发表于 2019-02-19
STM32F4学习笔记1——如何使用DSP库

STM32F4xx FPU/DSP使用注意事项

__CC_ARM。以使用sin,cos 运算举例,需要调用arm_sin_f32()以及arm_cos_f32(),这两个函数定义在arm_sin_f32.c 和arm_cos_f32.c中,需要在工程中加入这两个c 文件。* 在 ST 库文件包中的文件目录如下:\stm32f4_dsp_stdperiph_lib\STM32F4xx_DSP_StdPeriph_Lib_V1.1.0\Libraries\CMSIS\DSP_Lib\Source\FastMathFunctions* 在keil 安装目录下的文件目录如下:\Keil\ARM\CMSIS\DSP_Lib\Source\FastMathFunctions当用到更多数学运算, 如开根号
发表于 2019-02-15
STM32F4xx FPU/DSP使用注意事项

毫米波传感器轻松实现细微运动检测和人数统计智能化

算法用于同时对多个对象进行区分和跟踪。此算法会在一段时间内监控点云的移动历史,从而测量场景中移动物体的大小、精确定位这些物体的位置并跟踪物体在一段时间内的移动和位置历史。借助该算法,更高级别的应用可以确定在环境中移动的人员的确切位置和行进方向。表 2. 人数统计参考设计的性能规格。图 6. IWR1642 上的软件中所实现的处理链的方框图(在人数统计参考设计中提供)。这些算法是在 IWR1642 上的软件中运行的示例处理链中实现的。图 6 展示了该处理链,在板载 C674x DSP 以及 Arm® Cortex-R4F 微控制器上运行的数字信号处理 (DSP) 代码实现了该处理链。该处理链的实现和上述算法包括可调整参数,因此可对软件
发表于 2019-01-09
毫米波传感器轻松实现细微运动检测和人数统计智能化

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved