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