基于LabVIEW的USB实时数据采集处理系统的实现
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(TCON&0x21){ //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
}
在LabVIEW应用程序中设计了一Usb.dll文件作为LabVIEW与USB的驱动程序。由于EZ-USB开发系统中已经提供了底层驱动程序(GPD)接口函数,用户只需调用这些函数即可与USB设备连接。因此在DLL的编制中只需调用它提供的函数,大大节约了开发时间,提高了开发速度。创建的Usb.dll文件中包含了如下五个输出函数,功能说明如表1所示。
表1 Usb.dll包含函数的功能说明
其定义如下:
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接口采集数据、显示并分析数据。
程序在VC++6.0环境下编制成功后自动生成DLL文件。调用时,在框图程序窗口打开FunctionPalette(功能模板),在Advanced模块包含有对库函数的调模块,即CallLibraryF
《基于LabVIEW的USB实时数据采集处理系统的实现(第3页)》