您当前的位置:首页 > 行业资讯

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

时间:2015-03-27  来源:扁平线圈电感厂家  点击:

  在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 Ad模压电感dDevice(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程序,通过单片机串口对其进行线配置。

大电流电感

电源冷知识+各国电源电压亚太地区名称 电压 插座 供电情形日本 100V 双孔扁型韩国 220V 双孔圆型中国香港 220V 三孔扁平型 供电正常中国澳门 220V 三孔型越南 220V 双孔圆型及扁型 供电尚属稳定,有间歇性停电泰国 220V 双孔圆型及扁型 供电尚属良好马来西亚 220-240V 三孔型 供电尚属正常新加坡 220V 三孔平头型 供电稳定菲律宾 220V 双孔扁型及三孔型 供电尚稳定,偶有停电印尼 220V 双孔圆型 供电尚稳定,偶有断电情形印度 240V 圆孔三插式(5及15安培二种)供

环路控制电路上周答应了某个同学说要发一份环路控制的文章,但是最近因为在忙新的电源研发,所以就给耽搁了,实属抱歉,趁着六一就把文章理一下。在电源设计中,不管是什么产品,我们首先要保证电源

选择LED驱动电源的十个注意如何明智地选择适合的LED驱动电源,是每位工程师都关心的问题。在此为大家整理了论坛里网友们的观点,供大家参考使用。根据电网的用电的特点,LED特性的要求以及相关LED产品,考虑选择LED驱动电源时要遵

注塑加工厂


上一篇Boot在ADSP-BF533上的移植

下一篇基于DSP的晶闸管数字触发器的研究与设计


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话