基于USB接口的心电信号数据采集系统
调电压为±200μv,输入失调温漂为±2μv/℃,输入噪声为20nV?Hz?1/2。前置放大电路的放大倍数设置为50。较小的前置放大倍数可以避免极化电压的影响。电压放大电路的放大倍数设置的较高(取为100倍),则可以保证总的放大倍数。
2.4USB专用芯片的选择
目前各个厂商推出的USB芯片类型众多,功能各异。本系统选用Cypress半导体公司推出的EZ-USBFX全速系列中的CY7C64613-128NC芯片。EZ-USBFX系列芯片是带智能USB接口的单片机,它以8051为核心。对于复杂与繁琐的USB通信,该器件可提供EZ-USB固件函数库与固件架构,从而可大幅度地降低编写固件程序代码的困难程度。CY7C64613支持USB协议1.1,同时可支持12Mbps的全速传输。此外,它还带有增强版的8051核心和4kB或8kB的RAM,端点数量为32个,可采用智能型的USB核心程序。
3软件设计
本系统的软件设计包括三部分:固件设计、驱动程序设计、应用程序设计。
本设计中将心电信号数据采集系统规
划为人工接口设备HID群组。该HID群组原是针对键盘、鼠标等输入设备而设置与规划的。但是,对于需要以双向、适当的频率来进行数据交换的其它设备而言,也是一个非常好的设计范例与基础架构。因此,可以将这些设备规划为HID群组,只要它们符合HID规范中所定义的各种特性与条件,就可以执行HID设备的功能。在windows98与windows2000等操作系统中都已包含了HID群组的驱动程序,因此,用户开发新设备时,无须重新编写驱动程序。
3.1固件(Firmware)设计
由于EZ-USBFX系列已提供了固件架构(frameworks)。因此,可以利用这一架构来简化固件的开发。用户仅需提供其USB描述符以及实现外围功能的程序代码?在PERIPH.C文件中?,即可完成完全兼容的USB设备设置。此外,Cypress公司还提供了副函数钩子(functionhooks),利用该功能可以帮助用户进行固件的设计。
在程序开始执行后,固件架构会执行以下步骤:第一步,设置内部状态变量的起始值;第二步,调用用户的初始设置函数TD-Init;第三步,在1s间隔后重新设备列举(ReNumerate),直到收到SETUP封包为止;第四步,一旦SETUP封包被检测到,固件架构立即启动与其合作的工作分配器。
TD_Init()可用来对用户设备(即数据采集系统)进行初始化,并重新寻址描述符表。其程序代码如下:
TD_Init();
pDeviceDscr=(WORD)&DeviceDscr;
pConfigDscr=(WORD)&ConfigDscr;
pStringDscr=(WORD)&StringDscr;
if((WORD)&DeviceDscr&0xe000)
pReportDscr=(WORD)&ReportDscr
{
IntDescrAddr=INTERNAL_DSCR_ADDR;
ExtDescrAddr=(WORD)&DeviceDscr;
《基于USB接口的心电信号数据采集系统(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142618.html
2.4USB专用芯片的选择
目前各个厂商推出的USB芯片类型众多,功能各异。本系统选用Cypress半导体公司推出的EZ-USBFX全速系列中的CY7C64613-128NC芯片。EZ-USBFX系列芯片是带智能USB接口的单片机,它以8051为核心。对于复杂与繁琐的USB通信,该器件可提供EZ-USB固件函数库与固件架构,从而可大幅度地降低编写固件程序代码的困难程度。CY7C64613支持USB协议1.1,同时可支持12Mbps的全速传输。此外,它还带有增强版的8051核心和4kB或8kB的RAM,端点数量为32个,可采用智能型的USB核心程序。
3软件设计
本系统的软件设计包括三部分:固件设计、驱动程序设计、应用程序设计。
本设计中将心电信号数据采集系统规
划为人工接口设备HID群组。该HID群组原是针对键盘、鼠标等输入设备而设置与规划的。但是,对于需要以双向、适当的频率来进行数据交换的其它设备而言,也是一个非常好的设计范例与基础架构。因此,可以将这些设备规划为HID群组,只要它们符合HID规范中所定义的各种特性与条件,就可以执行HID设备的功能。在windows98与windows2000等操作系统中都已包含了HID群组的驱动程序,因此,用户开发新设备时,无须重新编写驱动程序。
3.1固件(Firmware)设计
由于EZ-USBFX系列已提供了固件架构(frameworks)。因此,可以利用这一架构来简化固件的开发。用户仅需提供其USB描述符以及实现外围功能的程序代码?在PERIPH.C文件中?,即可完成完全兼容的USB设备设置。此外,Cypress公司还提供了副函数钩子(functionhooks),利用该功能可以帮助用户进行固件的设计。
在程序开始执行后,固件架构会执行以下步骤:第一步,设置内部状态变量的起始值;第二步,调用用户的初始设置函数TD-Init;第三步,在1s间隔后重新设备列举(ReNumerate),直到收到SETUP封包为止;第四步,一旦SETUP封包被检测到,固件架构立即启动与其合作的工作分配器。
TD_Init()可用来对用户设备(即数据采集系统)进行初始化,并重新寻址描述符表。其程序代码如下:
TD_Init();
pDeviceDscr=(WORD)&DeviceDscr;
pConfigDscr=(WORD)&ConfigDscr;
pStringDscr=(WORD)&StringDscr;
if((WORD)&DeviceDscr&0xe000)
pReportDscr=(WORD)&ReportDscr
{
IntDescrAddr=INTERNAL_DSCR_ADDR;
ExtDescrAddr=(WORD)&DeviceDscr;
《基于USB接口的心电信号数据采集系统(第2页)》