- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于ARM的脑血氧监测仪的软件设计与实现
摘要:介绍了基于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在添加记录后关闭连接,以减少对终端平台内存的使用。
3.2 数据库管理
采用SQL Server CE 2.0数据库,需要在PC端和终端平台安装相应的软件。PC端需要的软件环境是Windows XP+IIS+SQL Server 2000+SQL Server 2000 SP3+SQL Server CE 2.0+SQL Server CE 2 SP3,将PC端安装SQL Server CE 2.0生成的ssce2.0.dll、Adoce31.dll、Adoceoledb31.dll、Adoxce31.dll、Isqlw20.exe、dllregister.exe拷贝到终端Windows目录下,运行dllregister.exe完成SQL Server CE 2.0的注册安装。Isqlw20.exe是SQL Server CE 2.0的查询分析器,可以用来创建数据库,数据库后缀名为.sdf。
数据库的连接用到了安装SQL Server CE 2.0时生成的voconnection.h、voconnection.cpp、vorecordset.h、vorecordset.cpp文件,通过CVOConnection和CVORecordset两个类实现数据库的连接。其关键语句如下:
m_strDataSource="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;data source=\My Document\database.sdf",m_strDataSource代表数据源。
使用CVORecordset类的Open方法来实现数据库记录的查询、添加、删除等操作。其关键语句如下:
CVORecordset*dbRecordset;创建记录集。
CString SQL;定义用来查询、添加、删除的SQl语句。
SQL=_T("select from patient_table order by patient_ID");查询所有记录并按照patient_ID排序的SQL语句。
SQL.Format(_T("Insert into patient_table values(%d,’%s’,’%s’,’%s’,’%s’,’%s’)"),NewID,patient_name,patient_gender,patient_age,examination_date,datapath;添加记录SQL语句,病人信息存储到索引为NewID的记录中。
SQL.Format(_T("delete from patient_table where patient_ID=%d"),id);删除记录SQL语句,数据库中索引为id的记录被删除。
dbRecordset->Open(SQL);执行SQL语句,实现数据库记录的查询、添加、删除功能。
本文详细介绍了基于ARM的脑血氧监测仪软件的系统结构,各软件功能模块的设计与实现。采用了无线通信芯片NRF24L01,这使医生不需到病房即可了解病人的脑血氧状况,提高了医生在处理心脑血管病人病情方面的效率;终端采用SQL Server CE 2.0,类似于PC平台下的SQL Server 2000,功能强大、管理方便,对以后的版本升级是很好的铺垫。目前,基于ARM的脑血氧监测仪硬件已设计完毕,处于测试阶段,成功后即可与软件衔接测试,并进行临床试验。
参考文献
[1] 李良成,李凯扬,秦钊.新型近红外脑血氧检测设备的研制[J].激光与红外,2006(8).
[2] 周立功.ARM嵌入式系统实验教程[M].北京:北京航空航天大学出版社,2004.
[3] 周立功.ARM&WinCE实验与实践-基于S3C2410[M].北京:北京航空航天大学出版社,2007.
[4] 汪兵,李存斌,陈鹏,等.EVC高级编程及其应用开发[M].北京:中国水利水电出版社,2005.