新闻中心

EEPW首页>测试测量>设计应用> 基于LabVIEW的USB实时数据采集处理系统的实现

基于LabVIEW的USB实时数据采集处理系统的实现

作者: 时间:2013-11-08 来源:网络 收藏

  3.2采集卡的软件构成

  在的Firmware中,采取同步传输(Isochronous Transactions)和块传输(Bulk Transactions)两种传输方式。同步方式用来实时传送采集的数据,块传输主要用来传输主机命令信号和的状态信息。块传输中利用端点(Endpoint)2。两种传输方式的核心中断程序如下:

  void ISR_Sutok(void)interrupt 0 //块传输方式

  {

  //initialize the couters in the 8051

  TMOD=0x05;

  TCON=0x10;

  TH0=0;

  TL0=0;

  Thb=0,

  TH0=0;

  TL0=0;

  thb=0;

  EZUSB_IRQ_CLEAR();

  USBIRQ=bmSUTOK; //Clear SUTOK IRQ

  }

  void ISR_Sof(void)interrupt 0 //同步传输方式

  {

  if(TCON0x21){ //Deal with the counter overflow

  TH0=0;

  Tl0=0;

  THB++;

  TCON=0xdf;}

  IN8DATA=TH0; //3 Bytes counter result

  IN8DATA=TL0;

  IN8DATA=THB;

  EZUSB_IRQ_CLEAR();

  USBIRQ=bmSOF; //Clear SOF IRQ

  }

  在应用程序中设计了一Usb.dll文件作为与USB的驱动程序。由于EZ-USB开发系统中已经提供了底层驱动程序(GPD)接口函数,用户只需调用这些函数即可与USB设备连接。因此在DLL的编制中只需调用它提供的函数,大大节约了开发时间,提高了开发速度。创建的Usb.dll文件中包含了如下五个输出函数,功能说明如表1所示。

  表1 Usb.dll包含函数的功能说明

Control 主机对USB设备的控制
ReadResult 获取USB发送到主机的数据
StartIsoStream 启动设备的同步传输流
StartThread 得到标准设备的设备描述符
StopThread 关闭设备的同步传输流

  其定义如下:

  LPSTR_declspec(dllexport)_stdcall Control(int input);

  int_declspec(dllexport)_stdcall ReadResult(void);

  int_declspec(dllexport)_stdcall StartIsoStream(void);

  int_declspec(dllexport)_stdcall StartThread(void);

  int_declspec(dllexport)_stdcall StopThread(void);

  开启设备和获取采集数据的过程如图2所示。它的主要功能有:开启或关闭USB设备、检测USB设备、设置USB数据传输管道(pipe)和端点(endpoint)、实时从USB接口采集数据、显示并分析数据。

c++相关文章:c++教程


尘埃粒子计数器相关文章:尘埃粒子计数器原理


评论


相关推荐

技术专区

关闭