脑血氧监测仪的设计研究
介绍了基于ARM的脑血氧监测仪软件的设计与实现。该软件通过控制探头对脑血氧信息进行采集并通过无线方式将信息发送给终端,终端对接收到的信息进行处理和显示,同时将病人信息存储在SQL Server CE2.0数据库中,实现病人信息的查询、添加、删除等功能。
氧是人体新陈代谢的重要物质,脑是人体新陈代谢最活跃的器官之一,正常人脑氧消耗量占全身氧消耗量的20%左右,在心脑血管疾病及脑外伤病人临床抢救与治疗中,如果缺乏对脑组织供氧的监护手段,就有可能造成脑组织神经功能的丧失或损害[1]。因此,研制一种连续监测脑供氧状况的临床设备,对提高心脑血管和脑外伤病人的诊断和治疗具有重大意义。本脑血氧监测仪可实时地采集左右脑血氧信号,把处理脑血氧信号得到的脑血氧饱和度实时地进行波形显示;还可对脑血氧信号进行功率谱、互相关系数等处理,根据这些处理的结果判断人的脑血氧状况。
1 脑血氧监测仪的系统结构
脑血氧监测仪包括探头和终端两个部分,其总体结构如图1所示。探头采用ARM7系列微控制器,分时采集采样数据,同时通过无线收发模块RF24L01实现与终端的数据传递和通信;终端采用ARM9系列微控制器,其主要功能包括数据接收、计算和实时显示大脑组织的血氧饱和度、计算血氧互相关系数和功率谱并显示结果。以下主要介绍脑血氧监测仪的软件设计与实现。
2 脑血氧监测仪软件设计
2.1 开发环境的选择
由于硬件条件的不同,脑血氧监测仪软件的探头和终端采用不同的开发环境。探头软件的开发环境采用ADS1.2,ASD1.2支持ARM10之前的所有ARM系列微控制器,支持软件调试及JTAG硬件仿真调试,支持汇编语言、C语言和C++源程序,具有编译效率高、系统库功能强等特点[2]。终端采用WinCE5.0嵌入式操作系统,WinCE是一个Microsoft公司开发的开放、可升级的32bit嵌入式操作系统,适用于各种嵌入式系统和产品。WinCE的图形界面出色,并且具有结构化、模块化和基于Win32应用程序接口以及与处理器无关等特点[3]。终端软件的开发环境采用Embedded Visual C++(简称EVC),EVC是Microsoft公司推出的WinCE程序可视化开发工具,支持SDK、MFC、ATL,兼有高级和低级语言的双重性、灵活性,执行效率高[4]。
2.2 软件功能模块设计
脑血氧监测仪的软件主要包括探头和终端两个部分,探头软件主要由数据采集模块和无线收发模块组成,如图2所示。终端软件主要由无线收发模块、数据处理模块、结果显示模块、数据存储模块组成,如图3所示。
(1)数据采集模块
数据采集模块主要功能是采集通过光电转换后的包含血氧信息的电压信号,并对信号做滤波、放大、A/D转换等预期处理。
(2)无线收发模块
无线收发模块功能主要是通过RF24L01无线通信模块的驱动实现,将探头采集的经过A/D转换后的信号发送给终端。
(3)数据处理模块
数据处理模块主要是对采集到的血氧信号值进行中值滤波、快速傅里叶变换,计算出功率谱、互相关系数、血氧饱和度等参数。
(4)结果显示模块
结果显示模块主要包括两个方面:一方面实时地显示血氧饱和度值;另一方面可以截取任意一段血氧波形做处理,其处理方式包括波形放大、功率谱显示、互相关函数显示等。
(5)数据存储模
数据存储模块主要存储病人基本信息和采集的血氧信息,并可以对其进行添加、查询和删除。
2.3 软件基本流程
探头软件的流程如图4所示,探头启动后初始化设备包括端口初始化、AD初始化、定时器初始化、SPI初始化、NRF24L01初始化和中断初始化等,然后通过AD功能将采集到的电压信号转换成数值信号,待一组数值采集完毕触发中断。中断处理包括设置发送模式、发射数据和监听应答等功能,一组数值发送完毕后中断返回,进行下一组数值采样。
终端软件的流程如图5所示。终端软件启动后初始化设备包括界面控件初始化、定时器初始化、线程初始化和驱动的加载,驱动中包含端口初始化、SPI初始化、NRF24L01初始化等,然后启动定时器,定时器溢出处理包括设置接收模式、接收数据、保存数据、数据处理、更新显示控件等功能。
3 数据库设计
3.1 数据库记录及字段设计
本软件采用SQL Server CE 2.0数据库。SQL Server CE 2.0是一个小型的数据库产品,功能强大,支持结构化查询语言,提供了与SQL Server一致的开发模型和API,是一款适用于嵌入到移动应用的精简数据库产品。
根据实际需求设计了病人信息数据表,用来存储病人的基本信息。包含的数据字段分别为:病人编号、姓名、性别、年龄、检测日期、数据文件路径。血氧信息存储在数据文件路径下的文本文档中,其目的是使SQL Server CE 2.0在添
- 基于ARM的综合测试仪设计(05-26)
- 基于ARM核微处理器的便携式管道泄漏检测仪(11-15)
- 用梯度均值法提高LPC2138的A/D分辨率(01-06)
- 基于ARM的信号发生器人机交互系统设计(01-23)
- 基于ARM9的高速数据采集系统的实现(03-04)
- 基于嵌入式Linux的磁场测量系统(03-26)