当前位置:首页 > 单片机 > 单片机
[导读]随着DSP芯片功能越来越强,速度越来越快,性价比的不断提高以及开发工具的日趋完善,广泛用于通信、雷达、声纳、遥感、生物医学、机器人、控制、精密机械、语音和图像处理等领域。作为计算机接口之一的USB(Universal S

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

该结构图中,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)

 计算机与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或计算机)的消息时,将其放入消息队列。消息的接收是通过中断服务程序来实现的。当处理完一个消息时,从消息队列取出下一个消息进行处理。这种软件结构非常简单,思路清晰,对调试十分有利。

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算法,使其具有信号分析、模态分析、声学分析、环境测试、长时间记录等功能。

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

摘要:目前,我国的沙漠及荒漠化面积仍然较大,沙漠地带的植被种植情况并不能够被很好地监测。针对这一问题,设计了一种防风固沙装置,该装置的核心为Arduino主板及辅助传感器组件,具有数据采集及显示功能,能够采集土壤湿度、环...

关键字: 防风固沙 数据采集 数据显示

摘要:针对我国智慧建筑中能耗数据远程采集的问题,将无线485数据通信模块与移动通信网络数据采集模块相结合应用于建筑能耗仪表数据采集过程中,在对《户用计量仪表数据传输技术条件》和《多功能电能表通信协议》进行研究的基础上,开...

关键字: 建筑能耗 多网融合 数据采集

USB-C接口全称为USB Type-C,属于USB 3.0下一代接口,其亮点在于更加纤薄的设计、更快的传输速度(最高可达10Gbps)、更强的电力传输(最高100W),此外USB-C接口还支持双面插入,正反面随便插,相...

关键字: iPhone 15 Lightning USB

大家好,我是鲏。认识我的朋友都知道,我是一个实践派,相比研究枯燥的理论知识,我更喜欢做自己想做的项目,用技术来实现自己的想法的感觉真的很棒。所以从大学期间一直到现在,除了工作中的项目外,我依然保持着自己做项目的习惯,有坚...

关键字: 系统设计 技术选型 需求分析

无锡2022年9月28日 /美通社/ -- 近日,江苏省工业和信息化厅公示2022年(第9批)省级软件企业技术中心拟认定名单,经企业申报、各市推荐、形式审查、专家评审等程序,浪潮卓数大数据产业发展有限公司(简称浪潮卓数)...

关键字: 软件 数据流 数据安全 数据采集

摘要:为了实现对不同品牌机器人的实时监控以及集中管理,实现机器人的互通互联,设计了一套基于NC-Link的机器人远程监控系统。NC-Link适配器通过机器人的二次开发接口对机器人进行数据采集,然后将采集到的数据通过htt...

关键字: 工业机器人 数据采集 远程监控

GRL东莞实验室将与上海和台北实验室一同,提供Windows Host认证服务 加利福尼亚州圣克拉拉市2022年9月22日 /美通社/ -- 高速信号和充电技术测...

关键字: Windows THUNDERBOLT USB OS

接下来测试烧写功能,本次采用串口和USB烧写方式。使用ISP串口烧写这是51单片机常用的方案,本次测试比较顺利,没有遇到什么问题。但是USB烧写没有测试成功,USB烧写方式不需要任何的驱动和硬件支持,直接将USB线和ST...

关键字: PCB控制板 USB 串口

仓储机器人领域的领先企业率先实现这一行业里程碑 马萨诸塞州威尔明顿2022年9月16日 /美通社/ -- 仓储处理自主移动机器人(AMR)市场领先企业Locus Robot...

关键字: ROBOTICS AMR USB 移动机器人

摘要:主要介绍了应用DSP的电能质量检测系统的硬件电路及软件开发工具,对采集来的某电铁电流信号进行了电能质量检测,并开展了实际实验尝试。实验结果显示,实际信号含有大量谐波,但通过应用DSP的电能质量检测系统成功检测到了它...

关键字: 电能质量检测 Matlab仿真 DSP

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭