基于USB接口的心电信号数据采集系统
DevDescrLen=(WORD)&UserDscr(WORD)&De-viceDscr+2;
for(i=0;i<DevDescrLen;i++)
*((BYTExdata*)IntDescrAddr+i)=0xCD;
for(i=0;i<DevDescrLen;i++)
*((BYTExdata*)IntDescrAddr+i)=*((BYTExdata*)ExtDescrAddr+i);?
pDeviceDscr=IntDescrAddr;
offset=(WORD)&DeviceDscr_INTERNAL_DSCR_ADDR;
pConfigDscr-=offset;
pStringDscr-=offset;
pReportDscr-=offset;
}
EZUSB_IRQ_ENABLE();
EZUSB_ENABLE_RSMIRQ();
.
3.2驱动程序设计
在Windows操作系统中,USB驱动程序是基于Win32DriverModel?WDM?的,它用阶层式驱动程序模式,每个驱动程序阶层负责处理一部分通信工作,具体框图如图3所示。设备驱动程序(含群组驱动程序)可与系统的总线驱动程序进行通信,总线驱动程序用来处理USB的硬件。用户应用程序并不直接与硬件打交道,而是使用Win32API调用函数对Win32子系统进行调用,同时给设备驱动程序发I/O请求包(IRP)。由于Windows操作系统中已包含了总线驱动程序和一些群组驱动程序,因此用户只需编写自己的用户设备驱动程序或选用Windows提供的群组驱动程序即可。
在Windows系统中,HIDDEV.INF文件中已提供有HID群组的驱动程序,可以直接引用。从而省去了编写繁琐的用户驱动程序的麻烦。
3.3应用程序设计
在应用程序中,需要设置与固件程序及驱动程序中相同的PID/VID码,才能在设备管理中找到对应的USB设备(数据采集系统
)。具体的设置程序代码如下:
ConstMyVendorID=&H1234
ConstMyProductID=&H5678
在Windows98驱动程序开发工具组(DDK)中,一般都具有用户模式(即应用程序阶层)HID通信部分的完整指导准则。用户通过调用API函数,可以找到与设备描述符内设置的VID/PID码相符合的HID设备(即数据采集系统)。有了API函数传回的设备路径名称,就能用GreateFile()函数打开设备的指示(handle),然后使用HID特定的API函数来读取VID/PID码,最后再使用ReadFile()与WriteFile()函数来准备交换数据。具体编程方法可参阅Windows98DDK。
4结论
基于USB接口的心电信号数据采集系统具有优越的性能。试验表明,其使用方便,性能稳定。尤其是它与笔记本电脑相结合可构成移动式心电信号检测分析仪,从而方便地应用于野外、救护车、病 《基于USB接口的心电信号数据采集系统(第3页)》