基于DSP的USB口数据采集分析系统设计

发布者:EtherealJourney最新更新时间:2009-02-11 来源: 电子技术应用关键字:DSP  USB  FPGA  Firmware  驱动程序 手机看文章 扫描二维码
随时随地手机看文章

      随着DSP芯片功能越来越强,速度越来越快,性价比的不断提高以及开发工具的日趋完善,广泛用于通信、雷达、声纳、遥感、生物医学、机器人、控制、精密机械、语音和图像处理等领域。作为计算机接口之一的USB(Universal Serial Bus)口具有势插拔、速度快(包括低、中、高模式)和外设容量大(理论上可挂接127个设备)的特性,使其成为PC机的外围设备扩展中应用日益广泛的接口标准。本文设计并实现了基于DSP的USB口数据采集分析系统,该系统的DSP负责数据的采集和运算处理,处理结果通过USB口送计算机显示分析,其结构如图1所示。

基于DSP的USB口数据采集分析系统

  该结构图中,CPLD和FPGA实现模块接口,包括串并转换、8位和32位数据总线间的转换、SRAM等功能。采样结果经过CPLD送至DSP运算处理(FFT变换、相关分析、功率谱分析等)后,由FPGA和USB接口送至主控计算机存储和显示。计算机应用程序易于实现丰富的图形界面,具有良好的人机接口。

  1 模数模块

  本系统主要用于振动信号和噪声分析,要求采样精度高,采样频率不超过100kHz。根据要求选用CRYSTAL公司的CS5396。该芯片原本用于立体声采样,基于∑-Δ结构,采样精度高,24位分辨率,120dB的动态范围;采样频率32kHz、44.1kHz、48kHz、96kHz可选;内部集成采样保持器、模拟低通滤波器、数字滤波器,同时还具有时采样功能;两路同时采样,串行输出,串行数据由CPLD转换成24位并行数据;由于该芯片量程是4V,差分输入,所以模拟部分只需再加上简单量程放大电路即可。这样模拟电路十分简单,抗干扰能力强、精度高。

  2 DSP处理器

  选择DSP处理器时主要考虑其运算速度、总线宽度和性价比。本系统采样结构24位,最好选用32位DSP;系统要进行实时信号分析、模态分析等,要求有较高运算速度,所以选用TI公司的32位浮点DSP——TMS320VC33。该芯片采用哈佛结构,6级流水线操作,指令执行周期7ns,外设包括一个DMA控制器和一个缓冲串口。

  N点复数FFT变换约做2N×Log2N次实数乘法运算和3N×Log2N实时加法运算。TMS320VC33的乘法、加法都是单周期指令,取N=1024,不计内存访问和其它时间,则一次FFT所需时间为:10×5120×17ns约0.9ms。而按96KSPS的采样频率计算,1024点的采样时间约10ms,可见该DSP速度足以满足要求。

  该DSP启动模式可选,上电后执行驻留在低地址空间的BOOTLOADER;然后根据4个中断输入信号的状态判断启动模式,可以从RAM、ROM或串行口启动。本系统选择串行口方式。这样,DSP程序可以直接从PC下载送至DSP接口,做到在系统调试,具有极大的灵活性。

  3 USB接口

  USB协议的实现基于网络的思想,是一种共享式的总线,在总线上数据以包(Packet)的形式发送。USB的数据传送有4种模式:块传输(Bulk Transfers)、中断传输(Interrupt Transfers)、同步传输(Isochronous Transfers)、控制传输(Control Transfers)。当需要快速传输大批量的准确数据时,一般采用块传输模式;当传输实时性较强的数据时,采用中断传输模式。

  当USB设备插入计算机时,计算机和USB设备之间产生一个枚举过程。计算机检测到有设备插入,自动发出查询请求;USB设备回应这个请求,送出设备的Verdor ID和Product ID;计算机根据这两个ID装载相应的设备驱动程序,完成枚举过程。

  由于USB协议非常复杂,开发者不可能在底层基础上进行开发。目前,市场上对USB协议进行封装的接口芯片,如:National Semiconductor公司的USBN9602、Plilips公司的PDIUSBD12等。本系统选用CYPRESS公司的带单片机内核的EZ-USB系列的AN2131QC.该芯片遵从USB1.0规范(12Mbps),将8051单片机内核、智能USB接口引擎、USB收发模块、存储器、串行口等集成一起,从而减少芯片接口时序。其内部结构如图2(虚线内是芯片部分)。

  EZ-USB的8051代码(Firmware)可以固化在ROM内;更好的方案是通过USB口从主机下载到内部RAM,这样,易于修改、调试和更新。之所以能下载代码是因为芯片一上电完全在硬件上自动完成枚举过程,不需要Firmware。完成枚举后便可作为一个USB设备(叫做缺省USB设备)与计算机通讯,此时即可进行Firmware下载。下载完后,8051内核脱离RESET状态开始执行代码。可以通过Firmware对USB设备重新配置,这个重新配置过程叫做再枚举。

  在EZ-USB中,缺省USB设备的接口中包括14个Endpoints,如表1所示。

  表1 缺省USB端点(Endpoint)

Endpoint

Type Alternate Setting
0 1 2
MaxPacket Size(bytes)
0 CTL 0 64 64
1IN INT 0 16 64
2IN BULK 0 64 64
2OUT BULK 0 64 64
4IN BULK 0 64 64
4OUT BULK 0 64 64
6IN BULK 0 64 64
6OUT BULK 0 64 64
8IN ISO 0 16 256
8OUT ISO 0 16 16
9IN ISO 0 16 16
9OUT ISO 0 16 16
10IN ISO 0 16 16
10OUT ISO 0 16 16

  计算机与USB设备的数据通信主要包括两个方面:一是读取采样数据;二是给USB设备发送控制命令。发送控制命令先发送一个命令包(消息),然后根据情况发送后续数据或从设备读取响应数据。因此,根据EZ-USB芯片的功能,直接使用缺省配置中的6个Endpoint。

  Endpoit OUT2 BULK:用来发送控制命令包。

  Endpoint IN2 BULK:接收从USB设备发来的DSP消息。

  Endpoint IN4 BULK:用来从USB设备读取数据,如读取采样数据、配置参数等。

  Endpoint OUT4 BULK:用来向USB设备发送数据,如下载8051程序、下载FPGA程序等。

  Endpoint OUT6 BULK:作辅助判断用,当PC传送完大量数据至USB设备时,向该端口写任意数据以起到通知USB设备的作用。

  Endpoint IN1 INT:用来从USB设备读取响应信号,如下载FPGA程序是否成功的标志等。

  在缺省配置基础上可以编写适合需要的代码,如果对8051编程经验丰富的话,完全可以在不需要调试工具的情况下编写Firmware。

  本系统Firmware结构建立在对消息队列不断服务基础上,即构建一个消息队列,当接收到任何一方(DSP或计算机)的消息时,将其放入消息队列。消息的接收是通过中断服务程序来实现的。当处理完一个消息时,从消息队列取出下一个消息进行处理。这种软件结构非常简单,思路清晰,对调试十分有利。

基于DSP的USB口数据采集分析系统

  USB设备驱动程序基于WDM。WDM型驱动程序是内核程序,与标准的Win32用户态程序不同。采用了分层处理的方法。通过它,用户不需要直接与硬件打它道(在USB驱动程序中尤为明显),只需通过下层驱动程序提供的接口号访问硬件。因此,USB设备驱动程序不必具体对硬件编程,所有的USB命令、读写操作通过总线驱动程序转给USB设备。但是,USB设备驱动程序必须定义与外部设备的通讯接口和通讯的数据格式,也必须定义与应用程序的接口。

  本系统的驱动程序是在Compuware Numega Driver-Works的基础上采用面向对象语言C++开发的。Driver-Works可以很快构造出驱动程序的框架。主要构造了两个类:Class USBDAC和class USBDACDevice。Class USBDAC继承了class Kdriver,负责装载驱动程序和创建功能设备对象时要做的一些操作。Class USBDACDevice继承了class KpnpDevice,是驱动程序的主要部分,负责设备启动、停止的操作以及与设备的数据通讯。API函数调用和CreateFile ()、ReadFile ()、WriteFile ()、DeviceIO-Control ()、CloseFile()等的实现也在class USBDACDevice中完成。

  Class USBDAC的定义如下:

class USBDAC : public Kdriver
{
SAFE_DESTRUCTORS
public:
/*Driver Entry (),

  在系统引导或I/O管理器装入驱动程序时,调用这个例程。执行大量的初始化函数,包括建立到其它驱动程序的指针、查找和定位由驱动程序使用的任何硬件资源等,不过,这部分工作大多由基类Kdriver完成。*/

virtual NTSTATUS
DriverEntry(PUNICODE_STRING RegistryPath);
/*AddDevice(),创建一个Device对象。调用其构造函数对设备初始化,创建设备的名称等。*/
virtual NTSTATUS
AddDevice(PDEVICE_OBJECT Pdo);
Int m_Unit;
};
Class USBDACDevice的定义如下:
Class USBDACDevice : public KpnpDevice
{
// Constructors
public:
SAFE_DESTRUCTORS
USBDACDevice(PDEVICE_OBJECT Pdo,ULONG Unit);
~USBDACDevice ();
// Member Functions
public:

//添加自己的成员函数
NTSTATUS USBDAC_GetACK(int &);
NTSTATUS USBDAC_StartADConversion(void);
NTSTATUS USBDAC_StopADConversion(void);
NTSTATUS USBDAC_DownloadFPGA(KIrp);
NTSTATUS USBDAC_Download8051(KIrp);
NTSTATUS USBDAC_SetChannelParameter(PUCHAR,ULONG,int);

};

  4 FPGA

  FPGA模块主要实现单片机与DSP间的数据缓冲、8位数据线与32位数据线间的转换、单片机同步串口和DSP缓冲串口的切换。要求FPGA能实现丰富的内部RAM和准确的时钟控制。根据需要选用XILINX公司的XCV50TQ144。该器件采用SRAM 查找表结构,具有系统内可再编程(ISP)和运行间可再配置等特性。系统初始化时由USB口下载FPGA程序,通过单片机串口对其进行线配置。

  本系统可广泛用于振动、噪声测试分析。可以在WINDOWS95/98/NT下开发各类动态测试与信号处理的应用程序,根据需要加载已经编制的各种DSP算法,使其具有信号分析、模态分析、声学分析、环境测试、长时间记录等功能。

关键字:DSP  USB  FPGA  Firmware  驱动程序 引用地址:基于DSP的USB口数据采集分析系统设计

上一篇:赛灵思推出高带宽低功耗的Virtex-6 FPGA
下一篇:基于DSP和FPGA的机器人声控系统设计与实现

推荐阅读最新更新时间:2024-05-02 20:45

基于WinCE操作系统的通用USB数控键盘设计
引言 随着网络时代的到来,机械制造行业也面临着如何适应网络化制造的问题。于是将计算机技术、网络技术和传统的控制技术相结合,以嵌入式系统为主的数控系统正日益成为机械制造领域的热点。对于一个具体的数控系统,在通过键盘作为人机交互工具时,按键的数目与功能上与其他的数控系统是不同的,实时性和高速率是工业现场所重视的,USB数控键盘相对于传统的PS/2键盘具有高速率、支持热插拔、可灵活配置等特点,所以要为嵌入式数控设备研发出通用的数控键盘,来满足现代化数控系统的需求。具体设计方案如图1所示。 系统硬件电路设计 系统(图1)有四个模块组成:键盘模块、USB接口模块、USB和MCU通信模块。USB数控键盘不需要显示模块,在实验中为了
[工业控制]
超强科普帖:萨德到底是个什么鬼?
  “萨德”系统(THAAD)是美国研制的机动式战区弹道导弹防御系统,主要是针对高空导弹进行拦截,采用卫星、红外、雷达三位一体的综合预警方式。能与TMD、NMD系统相连接,而且导弹射程远,防护区域大。该系统由拦截弹、车载式发射架、地面雷达,以及战斗管理与指挥、控制、通信、情报系统等组成。下面就随网络通信小编一起来了解一下相关内容吧。    超强科普帖:萨德到底是个什么鬼?     “萨德”系统(THAAD)有两套核心组件,其一是拦截弹,长6.17米,最大弹径0.37米,起飞重量900公斤,最大速度可达2500米/秒,由助推器、动能拦截器(KKV)及整流罩组成。动能拦截器由姿控、轨控发动机组合提供直接控制力,采用侧窗探测红外凝
[网络通信]
快充技术重大更新,USB PD3.1发布,支持48V和240W输出
近日,USB PD3.0快充标准迎来最新升级,新的USB PD3.1快充标准将支持最高48V的电压输出,充电功率同步提升至240W。充电头网通过咨询业界专家,获得了关于USB PD3.1的一手资讯。    USB PD3.1正式发布    5月25日,USB-IF协会推出了USB Type-C线缆和接口标准v2.1版本,其中更新了有关供电能力的章节。USB PD3.1规范将原来的USB PD3.0内容归到标准功率范围(Standard Power Range,简称SPR)里面,最大功率保持100W不变;同时增加了扩展功率范围(Extended Power Range,简称EPR),最大功率由100W扩展到240W。    根据U
[电源管理]
快充技术重大更新,<font color='red'>USB</font> PD3.1发布,支持48V和240W输出
改善汽车生态学、安全性和舒适性,四大测试分析是关键
中国汽车产量已超过美国跃居全球第一,未来5-10年还将保持不断增长的态势。中国汽车工业协会预计,2010年汽车产量增速在10%左右,有望达到1500万辆。中国目前已涌现不少知名的企业,包括汽车制造商、模块化系统供应商和元器件供应商、电子设备商等,特别是一汽、二汽、比亚迪、奇瑞、吉利、航盛、长安等本土厂商在自主开发和创新上取得的长足进步带动了中国汽车电子产业的快速发展-。 然而,面对日益复杂的汽车设计需求,特别是要推出中高端和商用的新能源汽车之时,自主创新和开发之路并非坦途。泰克科技的专家曾在不久前举办的一场汽车电子技术论坛上以拥有“100多个ECU、软件代码已经达到700万行”的丰田Lexus460汽车为例,强调了电子部件在汽车特
[测试测量]
改善汽车生态学、安全性和舒适性,四大测试分析是关键
ARM,DSP,FPGA,CPLD,SOPC,SOC之间有什么区别和联系
arm是一种嵌入式芯片,比单片机功能强,可以针对需要增加外设。类似于通用cpu,但是不包括桌面计算机。EETOP专业博客---电子工程师自己的家园u0010~u000Fh-Nu0006{u0016Xu0005tY#Y!P DSP主要用来计算,计算功能很强悍,一般嵌入式芯片用来控制,而DSP用来计算,譬如一般手机有一个arm芯片,主要用来跑界面,应用程序,DSP可能有两个,adsp,mdsp,或一个,主要是加密解密,调制解调等。 FPGA和 CPLD 都是可 编程 逻辑器件,都可以用 VHDL 或 verilog HDL 来编程,一般CPLD使用乘积项技术,粒度粗些;FPGA使用查找表技术,粒度细些,适用触发器较多的逻辑。其实多
[单片机]
ADI ADAU1701DSP数字音频处理方案
ADIADAU1701DSP数字音频处理方案 ADAU1701是一款完整的单芯片音频系统,包含28/56 bit音频DSP、ADC、DAC以及类似微控制器的控制接口。信号处理包括平衡、混音、低音增强、多波段动态处理、延迟补偿以及立体声图像扩展等,可以对现实世界的扬声器、放大器与收听环境的限制进行补偿,对感受到的音频质量进行动态改进。 ADAU1701的信号处理可以同高端立体声设备中的信号处理相媲美。大多数处理是由完全的56 bit双精度模式完成的,因此带来非常优良的低电平信号性能。ADAU1701是完全可编程数字信号处理器。易于使用的SigmaStudio软件允许用户利用双二阶滤波器、动态处理器、电平控制以及GPIO接口控
[嵌入式]
ADI ADAU1701<font color='red'>DSP</font>数字音频处理方案
基于MCU+FPGA的LED大屏幕控制系统的设计
引言 只要在现在的市场上走一圈就会发现,大部分的中小规模 LED显示系统,采用的是传统的单片机作为主控芯片。但是内部资源较少、运行速度较慢的单片机,很难满足LED大屏幕的显示屏,因为系统要求数据传输量大,扫描速度要快。以FPGA作为控制器,一方面,FPGA采用软件编程实现硬件功能,可以有效提高运行速度;另一方面,它的引脚资源丰富,可扩展性强。因此,用单片FPGA和简单的外围电路就可以实现大屏幕LED显示屏的控制,具有集成度高、稳定性好、设计灵活和效率高等优点。 1 系统总体结构 LED大屏幕显示系统由上位机(PC机)、单片机系统、FPGA控制器、LED显示屏的行列驱动电路等模块组成,如图1所示。上位机负责汉字、字符等数
[单片机]
基于MCU+<font color='red'>FPGA</font>的LED大屏幕控制系统的设计
Atheros收购益勤科技,抢占快速增长的WLAN USB市场
美国无线通信公司Atheros Communications Inc.已签署最终协议,收购益勤科技(ZyDAS Technology Corp.)。后者是一家无厂IC设计公司,专门从事为PC、移动和嵌入应用开发高性能IEEE 802.11 WLAN半导体和软件解决方案,总部在中国台湾地区的新竹科学园。 Atheros将支付总计2300万美元的现金与股票,上述交易计划在6月底完成。 Atheros公司的总裁兼首席执行官Craig Barratt表示:“ZyDAS拥有得到广泛接受的和具有成本效益的802.11g及802.11a/g USB设计,ZyDAS的技术设计团队和解决方案,使其成为Atheros的优势补充。” 据市场调研公
[焦点新闻]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved