1、http:/C8051F320 的低成本心电监护系统1 引言虚拟医学仪器充分利用计算机丰富的软硬件资源,仅增设少量专用软、硬件模块,便可实现传统仪器的全部功能及一些传统仪器无法实现的功能,同时缩短了研发周期.本系统由两部分组成:以 C8051F320 单片机为核心的数据采集装置和以 PC 机为平台的分析处理系统.设计中充分考虑数据采集装置体积小、功耗低、操作快捷的要求,因此全部采用 SMT 封装的元器件.PC 监护终端通过 USB 接口接收数据,传输速率高;采用图形编程语言 LabVIEW 编写显示、存储、分析处理等功能程序.该系统可实时监护并提供心动周期 ,心率等参数,也可进行数据的存储回放
2、,为心血管疾病的诊断提供依据.系统的软件开发和硬件与上位机软件的集成测试表明,系统运行稳定可靠,取得了预期效果.2 系统硬件设计该系统由 C8051F320 数据采集模块和 PC 机两部分组成,如图 1 所示.数据采集模块主要由心电采集电路和基于 C8051F320 单片机的 DAQ 接口卡构成,如图 2 所示。该模块通过 C8051F320 片上 A/D 转换器采集经预处理的心电信号,再将其由 USB 总线传输至 PC 机显示.PC 机部分主要是软件设计,包括通过 C8051F320 单片机片上 USB 主机 API 函数和 LabVIEW 软件编写数据采集图形用户界面;实现接收、显示和处理
3、由数据采集模块通过 USB 接口发送采集数据的程序.LabVIEWhttp:/应用程序和 C8051F320 应用程序均采用 Silicon Laboratories 公司的 USB Xpress 开发套件的 API 和驱动程序实现对底层 USB 器件的读写操作.心电信号属于微弱信号,体表心电信号的幅值范围为 110 mV.在测量心电信号时存在很强的干扰 ,包括测量电极与人体之间构成的化学半电池所产生的直流极化电压,以共模电压形式存在的 50 Hz 工频干扰.人体的运动、呼吸引起的基线漂移,肌肉收缩引起的肌电干扰等.采用遥测 HOLTER 三导联线和一次性心电电极与人体接触,能很好地减小运动和
4、呼吸引起的肌电干扰.前端放大器采用具有极高共模抑制比(CMRR)的仪用AD620 放大器,放大倍数约为 50 倍;并采用 0.05100 Hz 的带通滤波器和 50 Hz 的陷波电路,抑制信号的基线漂移、高频噪声及工频干扰.为了充分利用 A/D 转换的精度,在转换前先将信号放大到 A/D 转换电路参考电压的 70%左右,考虑到信号中会附加直流成分 ,需在 A/D 转换电路前增加电平调节电路.个体心电幅度的差异要求电路中设计程控放大电路,又为了便于心电信号的标定和考虑到实际器件放大倍数与理论值的偏差,在程控放大电路前设置一个手动可调的放大电路(110 倍).综上分析,心电采集与程控放大部分应包括
5、:AD620 前端放大、0.05100 Hz 的带通滤波、50 Hz 陷波、手动放大、程控放大和电平提升等电路.其中程控放大功能利用 CD4051 电子开关的数字选通实现,具有 150 倍的调节范围.为减少系统功耗,应采用低功耗、集成度高的器件.该系统选用 C8051F320 单片机作为数据采集卡的核心部件.该器件是完全集成的混合信号系统级器件,具有与 8051 兼容的高速 CIP-51 内核,与 MCS-51 指令集完全兼容,片内集成了数据采集和控制系统常用的模拟、数字外设及 USB 接口等其他功能部件.外部电路简单,易于实现,如图 3 所示.http:/心电电极将得到的信号经滤波和可变增益
6、放大器放大后送至 C8051F320 单片机,单片机将得到的模拟心电信号实时转换为数字信号,采集到的数据通过 USB 接口传给 PC 机,进一步分析处理信号数据.3 系统软件设计3.1 C8051F320 单片机程序设计http:/C8051F320 单片机程序包括 :(1)A/D 转换程序和程控放大控制程序;(2)基于 USB 器件的通信程序,接收从USB 主机发送的用户指令并将采集的数据发送给 USB 主机.3.1.1 A/D 转换程序衡量 A/D 转换性能主要有两个指标:采样分辨率(A/D 转换器位数) 和 A/D 转换速度.设置 A/D 转换器的采样率为 2 000 Hz,并采用定时器
7、 TIME2 溢出中断触发转换,每次转换结束后 1O 位结果数据字被锁存到 A/D 转换器的数据寄存器中,供 USB 通讯子程序数据调用,图 4 为 A/D 转换流程.A/D 转换程序较简单,可通过设置C8051F320 片上定时器确定 A/D 转换器的采样周期,由定时器的溢出周期性启动 A/D 转换器来采样被测数据.USB 设置为块状传输模式与 PC 机进行数据通信.将每 64 个数据打成一个数据包.以充分利用硬件资源并提高数据传输效率.3.1.2 基于 USB 器件的通信程序整个程序流程以 USB 通信为主线,如图 5 所示.图中所涉及的 USB_Clock_Start()、USB_Int
8、()等函数均是Silicon Lab 公司专为 C8051F320 单片机 USB 功能开发的 USB 端 API 函数.通过在 C8051F320 上层应用程序中直接调用这些函数可方便快捷地访问 USB 底层硬件.http:/3.2 PC 机 LabVIEW 程序设计PC 机 LabVIEW 程序设计主要完成用户图形界面和基于 USB 主机通信程序两大功能,从而实现人机交互,将用户输入的指令和采集模块采集的数据通过 USB 总线在 PC 机和 C8051F320 之间传递.3.2.1 LabVIEW 程序面板设计开发 USB 设备驱动程序的工具使用 USB Xpress Devel-opme
9、nt Kit,主要有 :SI_Open()函数;SI_Close() 函数;SI_Read 函数;SI_Write() 函数;SI_GetNumDevices()函数;SI_CheckRX Queue()函数.用户从设备读取数据将调用一个应用程序接口 API.SI_GetNumDevices()、SI_GetProductString()等函数均是 Silicon Lab 公司专为C8051F320 单片机 USB 功能开发的 USB 主机端 API 函数.LabVIEW 提供调用链接库函数 Call Librarv Function,本设计利用 Silicon Lab 公司的 SiUSBXp
10、.dll 动态链接库来实现对 USB 底层硬件的访问.http:/通过调用 SLGetNumDevices()甬数完成设备的通信初始化,生成函数返回驱动的设备号;该设备号用来在调用 SI GetProductString()函数时生成设备描述字符串.要读取一个设备,首先必须通过调用SI_GetNumDevices()函数生成的索引( 设备号)来调用 SI_Open()函数.SI_Open()函数将返回设备的句柄,该句柄将在随后的所有进程中被用到.利用 SI_Write()和 SI_Read()函数就可实现数据的输入和输出 .当完成数据的输入和输出操作后,可通过调用 SI_Close()关闭设备
11、.图 6 为 I/O 接口驱动程序框图 .3.2.2 LabVIEW 程序设计用户图形界面(前面板) 设计动态心电监护系统应用程序部分可实现心电信号的接收、实时显示、存储及回放功能;并可提供心动周期、心率等参数,为心率变异性分析和心血管疾病的诊断提供依据.心电监护系统显示界面如图 7 所示.http:/4 结论该设计不仅可实现传统测量仪器的全部功能,还能将实验数据存盘以进行反复观察分析.基于虚拟仪器的心电监护系统使用灵活方便、测试功能丰富、成本低廉.用户可根据实际需要,通过修改软件改变其功能和升级,实现一机多用.实验结果表明:该系统具有较强的抑制基线漂移能力、低功耗、操作简单.采用 USB 接口实时传输心电数据,并将心电数据采集模块设计为计算机外设,高速快捷.由于全部采用 SMT 封装,数据采集模块尺寸仅为 60 mmx60 mm,方便实用.因此,该设计是一款实用的、低成本的、动态心电监护系统.嵌入式培训哪里好?选择成都嵌入式培训开启企业定制达内就业直通车,达内科技满足你高薪就业的软件培训机构!找成都计算机培训 100%推荐就业的成都软件培训机构之成都达内,请在线咨询达内中心成都软件测试培训老师!官网:http:/ 成都 PHP 培训 PHP 培训