腦血氧監(jiān)測儀的設(shè)計(jì)研究
介紹了基于ARM的腦血氧監(jiān)測儀軟件的設(shè)計(jì)與實(shí)現(xiàn)。該軟件通過控制探頭對腦血氧信息進(jìn)行采集并通過無線方式將信息發(fā)送給終端,終端對接收到的信息進(jìn)行處理和顯示,同時(shí)將病人信息存儲在SQL Server CE2.0數(shù)據(jù)庫中,實(shí)現(xiàn)病人信息的查詢、添加、刪除等功能。
氧是人體新陳代謝的重要物質(zhì),腦是人體新陳代謝最活躍的器官之一,正常人腦氧消耗量占全身氧消耗量的20%左右,在心腦血管疾病及腦外傷病人臨床搶救與治療中,如果缺乏對腦組織供氧的監(jiān)護(hù)手段,就有可能造成腦組織神經(jīng)功能的喪失或損害[1]。因此,研制一種連續(xù)監(jiān)測腦供氧狀況的臨床設(shè)備,對提高心腦血管和腦外傷病人的診斷和治療具有重大意義。本腦血氧監(jiān)測儀可實(shí)時(shí)地采集左右腦血氧信號,把處理腦血氧信號得到的腦血氧飽和度實(shí)時(shí)地進(jìn)行波形顯示;還可對腦血氧信號進(jìn)行功率譜、互相關(guān)系數(shù)等處理,根據(jù)這些處理的結(jié)果判斷人的腦血氧狀況。
1 腦血氧監(jiān)測儀的系統(tǒng)結(jié)構(gòu)
腦血氧監(jiān)測儀包括探頭和終端兩個(gè)部分,其總體結(jié)構(gòu)如圖1所示。探頭采用ARM7系列微控制器,分時(shí)采集采樣數(shù)據(jù),同時(shí)通過無線收發(fā)模塊RF24L01實(shí)現(xiàn)與終端的數(shù)據(jù)傳遞和通信;終端采用ARM9系列微控制器,其主要功能包括數(shù)據(jù)接收、計(jì)算和實(shí)時(shí)顯示大腦組織的血氧飽和度、計(jì)算血氧互相關(guān)系數(shù)和功率譜并顯示結(jié)果。以下主要介紹腦血氧監(jiān)測儀的軟件設(shè)計(jì)與實(shí)現(xiàn)。
2 腦血氧監(jiān)測儀軟件設(shè)計(jì)
2.1 開發(fā)環(huán)境的選擇
由于硬件條件的不同,腦血氧監(jiān)測儀軟件的探頭和終端采用不同的開發(fā)環(huán)境。探頭軟件的開發(fā)環(huán)境采用ADS1.2,ASD1.2支持ARM10之前的所有ARM系列微控制器,支持軟件調(diào)試及JTAG硬件仿真調(diào)試,支持匯編語言、C語言和C++源程序,具有編譯效率高、系統(tǒng)庫功能強(qiáng)等特點(diǎn)[2]。終端采用WinCE5.0嵌入式操作系統(tǒng),WinCE是一個(gè)Microsoft公司開發(fā)的開放、可升級的32bit嵌入式操作系統(tǒng),適用于各種嵌入式系統(tǒng)和產(chǎn)品。WinCE的圖形界面出色,并且具有結(jié)構(gòu)化、模塊化和基于Win32應(yīng)用程序接口以及與處理器無關(guān)等特點(diǎn)[3]。終端軟件的開發(fā)環(huán)境采用Embedded Visual C++(簡稱EVC),EVC是Microsoft公司推出的WinCE程序可視化開發(fā)工具,支持SDK、MFC、ATL,兼有高級和低級語言的雙重性、靈活性,執(zhí)行效率高[4]。
2.2 軟件功能模塊設(shè)計(jì)
腦血氧監(jiān)測儀的軟件主要包括探頭和終端兩個(gè)部分,探頭軟件主要由數(shù)據(jù)采集模塊和無線收發(fā)模塊組成,如圖2所示。終端軟件主要由無線收發(fā)模塊、數(shù)據(jù)處理模塊、結(jié)果顯示模塊、數(shù)據(jù)存儲模塊組成,如圖3所示。
(1)數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊主要功能是采集通過光電轉(zhuǎn)換后的包含血氧信息的電壓信號,并對信號做濾波、放大、A/D轉(zhuǎn)換等預(yù)期處理。
(2)無線收發(fā)模塊
無線收發(fā)模塊功能主要是通過RF24L01無線通信模塊的驅(qū)動實(shí)現(xiàn),將探頭采集的經(jīng)過A/D轉(zhuǎn)換后的信號發(fā)送給終端。
(3)數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊主要是對采集到的血氧信號值進(jìn)行中值濾波、快速傅里葉變換,計(jì)算出功率譜、互相關(guān)系數(shù)、血氧飽和度等參數(shù)。
(4)結(jié)果顯示模塊
結(jié)果顯示模塊主要包括兩個(gè)方面:一方面實(shí)時(shí)地顯示血氧飽和度值;另一方面可以截取任意一段血氧波形做處理,其處理方式包括波形放大、功率譜顯示、互相關(guān)函數(shù)顯示等。
(5)數(shù)據(jù)存儲模
數(shù)據(jù)存儲模塊主要存儲病人基本信息和采集的血氧信息,并可以對其進(jìn)行添加、查詢和刪除。
2.3 軟件基本流程
探頭軟件的流程如圖4所示,探頭啟動后初始化設(shè)備包括端口初始化、AD初始化、定時(shí)器初始化、SPI初始化、NRF24L01初始化和中斷初始化等,然后通過AD功能將采集到的電壓信號轉(zhuǎn)換成數(shù)值信號,待一組數(shù)值采集完畢觸發(fā)中斷。中斷處理包括設(shè)置發(fā)送模式、發(fā)射數(shù)據(jù)和監(jiān)聽?wèi)?yīng)答等功能,一組數(shù)值發(fā)送完畢后中斷返回,進(jìn)行下一組數(shù)值采樣。
終端軟件的流程如圖5所示。終端軟件啟動后初始化設(shè)備包括界面控件初始化、定時(shí)器初始化、線程初始化和驅(qū)動的加載,驅(qū)動中包含端口初始化、SPI初始化、NRF24L01初始化等,然后啟動定時(shí)器,定時(shí)器溢出處理包括設(shè)置接收模式、接收數(shù)據(jù)、保存數(shù)據(jù)、數(shù)據(jù)處理、更新顯示控件等功能。
3 數(shù)據(jù)庫設(shè)計(jì)
3.1 數(shù)據(jù)庫記錄及字段設(shè)計(jì)
本軟件采用SQL Server CE 2.0數(shù)據(jù)庫。SQL Server CE 2.0是一個(gè)小型的數(shù)據(jù)庫產(chǎn)品,功能強(qiáng)大,支持結(jié)構(gòu)化查詢語言,提供了與SQL Server一致的開發(fā)模型和API,是一款適用于嵌入到移動應(yīng)用的精簡數(shù)據(jù)庫產(chǎn)品。
根據(jù)實(shí)際需求設(shè)計(jì)了病人信息數(shù)據(jù)表,用來存儲病人的基本信息。包含的數(shù)據(jù)字段分別為:病人編號、姓名、性別、年齡、檢測日期、數(shù)據(jù)文件路徑。血氧信息存儲在數(shù)據(jù)文件路徑下的文本文檔中,其目的是使SQL Server CE 2.0在添加記錄后關(guān)閉連接,以減少對終端平臺內(nèi)存的使用。
3.2 數(shù)據(jù)庫管理
采用SQL Server CE 2.0數(shù)據(jù)庫,需要在PC端和終端平臺安裝相應(yīng)的軟件。PC端需要的軟件環(huán)境是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目錄下,運(yùn)行dllregister.exe完成SQL Server CE 2.0的注冊安裝。Isqlw20.exe是SQL Server CE 2.0的查詢分析器,可以用來創(chuàng)建數(shù)據(jù)庫,數(shù)據(jù)庫后綴名為.sdf。
數(shù)據(jù)庫的連接用到了安裝SQL Server CE 2.0時(shí)生成的voconnection.h、voconnection.cpp、vorecordset.h、vorecordset.cpp文件,通過CVOConnection和CVORecordset兩個(gè)類實(shí)現(xiàn)數(shù)據(jù)庫的連接。其關(guān)鍵語句如下:
m_strDataSource=”Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0;data source=\My Document\database.sdf”,m_strDataSource代表數(shù)據(jù)源。
使用CVORecordset類的Open方法來實(shí)現(xiàn)數(shù)據(jù)庫記錄的查詢、添加、刪除等操作。其關(guān)鍵語句如下:
CVORecordset*dbRecordset;創(chuàng)建記錄集。
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語句,數(shù)據(jù)庫中索引為id的記錄被刪除。
dbRecordset->Open(SQL);執(zhí)行SQL語句,實(shí)現(xiàn)數(shù)據(jù)庫記錄的查詢、添加、刪除功能。
本文詳細(xì)介紹了基于ARM的腦血氧監(jiān)測儀軟件的系統(tǒng)結(jié)構(gòu),各軟件功能模塊的設(shè)計(jì)與實(shí)現(xiàn)。采用了無線通信芯片NRF24L01,這使醫(yī)生不需到病房即可了解病人的腦血氧狀況,提高了醫(yī)生在處理心腦血管病人病情方面的效率;終端采用SQL Server CE 2.0,類似于PC平臺下的SQL Server 2000,功能強(qiáng)大、管理方便,對以后的版本升級是很好的鋪墊。目前,基于ARM的腦血氧監(jiān)測儀硬件已設(shè)計(jì)完畢,處于測試階段,成功后即可與軟件銜接測試,并進(jìn)行臨床試驗(yàn)。
參考文獻(xiàn)
[1] 李良成,李凱揚(yáng),秦釗.新型近紅外腦血氧檢測設(shè)備的研制[J].激光與紅外,2006(8).
[2] 周立功.ARM嵌入式系統(tǒng)實(shí)驗(yàn)教程[M].北京:北京航空航天大學(xué)出版社,2004.
[3] 周立功.ARMWinCE實(shí)驗(yàn)與實(shí)踐-基于S3C2410[M].北京:北京航空航天大學(xué)出版社,2007.
[4] 汪兵,李存斌,陳鵬,等.EVC高級編程及其應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2005.
評論