摘要:本文介紹了一種新型便攜式心電監測儀的軟硬件設計,基于ARM核的32位低功耗微處理器作為系統控制核心,系統采用源碼公開的嵌入式uClinux操作系統,可實現心電信號的實時顯示和遠程監測,具有輕便節能、功能強大,安全穩定等優點。 關鍵詞:心電ECG ARM uClinux 液晶顯示屏 TCP/IP協議 一、緒論 心血管疾病是目前對人類危害最大的一種疾病,而心電圖是檢查、診斷和預防該類疾病的主要手段和依據。由于傳統的基于PC機平臺的心電監護儀,價格昂貴,體積龐大,不便于移動且主要集中在大醫院,而無法實時監護患者的病情,給醫生和病人帶來了很大的不便。近年來,隨著嵌入式和網絡通訊技術的飛速發展,我們研制出一種基于ARM7處理器的新型嵌入式心電監護儀,它采用Samsung公司的一款ARM7TDMI核的RISC的32位高速處理器S3C44B0X,具有成本低、體積小、可靠性高、操作簡單等優點,適用于個人、中小醫院和社區醫療單位,為家庭保健(HHC)和遠程醫療(Telemedicine)等新興的醫療途徑提供良好的幫助與支持。 二、系統的工作原理 圖一 新型嵌入式心電監護儀的系統結構框圖 心電信號通過專用電極從人的左右臂采集到后,送入信號調理電路,先經過前置放大器初步放大,經高通濾波濾除直流信號及低頻基線干擾后,由后級放大器放大,再經濾波器進一步濾除50HZ的工頻干擾,經低通濾波器后得到符合要求的心電信號,由模擬信號輸入端送入ADC,進行高精度的A/D轉換。為了更好的抑制干擾信號和防止導聯松動及脫落,我們在電路中還引入了右腿驅動電路和導聯脫落檢測電路。系統控制核心采用Samsung公司的S3C44BOX,液晶顯示屏(LCD)建立良好的人機交互界面,采集到的信號可以通過LCD實時顯示和回放,數據通過因特網基于TCP/ IP(傳輸控制協議、網際協議) 順序可靠地傳輸數據到心電監護中心,為醫護人員及時準確的診斷提供參考。嵌入式實時操作系統采用現在流行的uClinx,管理協調各模塊工作,為系統可靠的運行提供保證。 三、系統硬件模塊設計 3.1、信號調理電路 信號調理電路主要包括:放大器、帶通濾波器、陷波器等。 圖二 心電前置放大電路 人體心電信號屬于強噪聲背景下的低頻微弱信號,一般只有0.05-5mV,頻譜范圍為:0.05-100HZ,心電信號正常輸出時其幅值約為1mV,而A/D轉換器的輸入電平要求到達1V左右,即心電放大倍數約為1000倍,由于肌電干擾可能造成前置放大器靜態工作點的偏移,甚至截至飽和,所以前置放大器的增益不能太大。我們選用AD620儀表放大器作為系統前置放大器,它具有低噪聲、低漂移、高共模抑制比、高輸入阻抗等特點。它的增益通過1腳和8腳的電阻Rg來調節,可達1-100倍,計算公式為:G=49.4 /Rg+1。我設計初級放大倍數在七級左右,選用精度為0.01%,阻值為8.25 的精密線繞電阻,后級選用TL064將信號放大到A/D轉換器的輸入電平要求。 圖三 心電后級放大及濾波電路 為抑制直流漂移和放大器通帶外的低頻噪聲,設計一個RC高通濾波器;因心電信號的頻率在100HZ以下,為消除高頻信號和50HZ的工頻干擾,還設計了低通濾波和帶阻濾波器。 為防止導聯松動和脫落,設計導聯檢測電路,電極脫落時,比較器的輸出電平由正常的高電平變為低電平,產生報警信號,提醒患者檢查導聯。右腿驅動電路,人體共模電壓檢測出后,經倒相放大反饋到人的右腿上,而沒有直接與放大器的地相聯,這樣人體的位移電流不流到地,而是流到運放的輸出端,對AD620減小了共模電壓的拾取。 3.2、嵌入式處理器及外圍電路 S3C44B0X是Samsung公司為手持設備和一般類型的應用提供了高性價比和高性能的微處理器解決方案。CPU內核采用ARM公司設計的16/32位ARMTDMI RISC處理器(66HZ),內核工作電壓為2.5V,帶有8KB的高速緩存,外部存儲控制器8個bank,共256MB,8通道10位ADC和支持彩色/黑白顯示LCD控制器,具有普通、慢速、空閑和停止功耗控制模式,精簡出色的全靜態設計適合于低成本和功耗敏感的設計。 3.2.1、A/D轉換 對心電信號的采用精度的考慮主要是出自于對ST段異常分析處理的要求,ST段電平變化為0.05mV已經得到公認,因此采樣精度至少為0.025mV。根據美國心臟學會AHA標準和Nyquist采樣定律,當信號采樣頻率等于或大于信號最高頻率的2倍時,就可以從抽樣后的信號中不失真的還原出原信號。ECG頻率范圍為0.05-100HZ,我們取采樣頻率為200HZ,即采樣周期為5ms.S3C44B0X內部有一個逐次逼近型8路模擬信號輸入的10位ADC,輸入滿刻度電壓為2.5V,能分辨出來的輸入電壓變化的最小值為2.5V/210=2.5mV,心電采集放大倍數約為1000倍,輸入端的最小分辨率約為2.5mV/1000=0.0025mV,故完全滿足系統采用要求。 3.2.2、系統程序存儲器Flash ROM和SDRM擴展 S3C44B0X自身不具有ROM,因此必須外接ROM器件來存儲掉電后仍需要保存的程序代碼和數據。我們采用了SST公司推出的容量為1MB×16的CMOS多用途Flash ROM,它具有可靠性好、功耗低、讀取速度快等優點。系統復位后,首先從0X00000000地址處開始執行,系統啟動代碼應該以此地址開始存放,所以Flash映射在處理器的Bank0區域內。 采用Linksmart公司的一種容量為8MB的SDRM L43L16064作為系統程序的運行空間、數據區和堆棧區,供系統快速讀寫。它的存儲方式為4Bank×1MB×16,采用多Bank和管道結構,具有自動刷新、低功耗和掉電模式。其存儲空間映射在S3C44B0X的Bank6上,地址范圍為:0XC000000H-0XCFFFFFFH。 3.2.3、液晶顯示LCD和鍵盤模塊 為了使用戶能夠對采集到的心電信號有一個直觀的印象和進行常識性的觀察,我們采用了EPSON公司的EG1147型FSTN單色液晶顯示模,對時間、波形、心電參數和系統菜單進行顯示,同時配合按鍵進行儀器控制和設定。它的顯示器點陣為240×320,采用EL背光源,自帶驅動器,通過對S3C44B0X內置LCD控制器編程,將定位在存儲器的顯示緩沖器內的圖像數據傳送給外部LCD的驅動器中,PC口和PD口作為LCD驅動接口,設置PC口工作在第三功能狀態,PD口工作在第二功能狀態。 3.2.4、以太網模塊設計 S3C44B0X沒有集成網絡接口控制器NIC(Network Interface Controller),因此我們為系統擴展了一個REALTECK公司的RTL8019AS控制器,它與NE2000兼容,軟件移植好,接口電路簡單。RTL8019AS工作原理:驅動程序把要發送的數據按照指定格式寫入芯片并啟動發送命令即可。反之,芯片從物理通道上收到信號會直接根據以太網協議把他們轉化成相應格式的數據,并發出中斷,請求CPU讀取數據。 四、系統軟件設計 軟件設計主要包括嵌入式操作系統uClinux在S3C44B0X上的移植,心電數據的采集和存儲,基于S3C44B0X的嵌入式GUI的實現,網絡設備驅動程序開發等。 4.1、嵌入式uClinux操作系統在S3C44B0X上的移植 uClinux是專門針對無MMU(Memory Management Unit 內存管理單元)的處理器而設計的一種免費開放源代碼的操作系統。支持多任務,采取模塊化設計。系統移植可分為bootloader和內核的移植兩大部分。 Bootloader從本質上講它不屬于系統內核,在CPU上電啟動后即開始運行,創立初始化環境和引導內核。這部分代碼用匯編語言編寫,主要完成硬件初始化,對系統的存儲映射(memory map)進行初始化設置等操作,同時改變PC值,使得CPU開始從SDRM執行操作系統的內核。 內核移植時首先RedHat Linux環境下下載源代碼文件包建立交叉編譯環境,接著進入uClinux-dist文件夾進行內核配置,系統配置主要由三部分組成:Makefile、配置文件(config.in)和配置工具(在/script目錄下)。運行make menuconfig命令,會現頂層菜單,選擇硬件系統、內核版本和C庫的選擇,我們在這里vendors選Samsung的S3C44B0X,內核版本為Linux-2.4-x,C庫選uClibc。接著要修改源代碼,對應于各個硬件的子目錄中,例如在uClinux-dist/linux-2.4-x/drivers/修改或增加驅動程序;保存設置退出后運行再執行make dep和make lib_only命令,生成C庫;運行make user_only生成應用程序;接著運行make romfs和make image,生成rom文件系統,拷貝內核文件到uClinux-dist/images中;最后運行make,生成可供嵌入式系統運行的內核文件,這時可以在uClinux-dist/images中出現三個文件:含“rom”是壓縮內核,含“ram”是直接運行的內核,romfs.img是uClinux的文件系統。“ram”和“rom”文件可以通過超級終端從PC串口下載到嵌入式系統的內存中直接運行,這時超級終端上也將顯示uClinux的啟動信息。 4.2、基于S3C44B0X的嵌入式GUI的實現 屏幕驅動的程序設計主要是PSD(Pointer to Screen Device)的結構指針,指針所指向的結構中記錄了有關的一切屬性,根據顯示屬性判斷選擇那個子函數來提供有關的顯示函數。圖形引擎調用PSD完成矩形,圓形等作圖函數,這些函數調用底層的屏幕驅動基本作圖函數來完成圖形顯示。 4.3、RTL8019AS驅動程序在uClinux下的實現 在uClinux中,網絡接口被看作是一個發送和接收數據包的實體,用一個net_device的數據結構表示,在數據結構中定義對網絡接口的各種操作。程序我們是在uClinux網絡驅動文件的基礎上修改而成,主要修改在/drivers/net下的兩個文件:ne.c和8390.c,包括芯片的初始化、收包、網絡注冊等大部分工作。內核在初始化時會自動調用函數ne_probe(),讀取RTL8019AS標識寄存器,檢測設備是否存在以決定是否啟動驅動程序,配置和初始化硬件,然后初始化net_device結構中的變量,再調用Rtl8019as_init()對RTL8019AS做寄存器的相關設置,最后根據starp的值來啟動和關閉RTL8019AS。 五、結束語 針對心電信號ECG極其微弱和極易受到外界干擾的特點,本文的創新點為采用具有低漂移、共模抑制比的儀表放大器AD620對信號進行初級放大,并設計右腿驅動電路以增強信號的抗干擾能力; LCD的引入給人直觀的印象和常識性的判斷;采集到的數據可通過以太網實時傳輸到遠程數據中心,供專家分析和診斷;嵌入式uClinux的引入保證了系統穩定、可靠的運行;小型化的設計,更有利于患者的攜帶。隨著心血管疾病的發病率不斷地逐年上升,這種便攜式心電監護儀具有很高的應用價值和良好的市場前景。 參考文獻: [1] 張華 和衛星 徐棟君 陳相朝 基于S3C44B0X的便攜式心電監測儀的研制 2006 [2] 楊崎 劉大茂 一種用于心電信號采集接口的調理方法 福州大學學報 2003 [3] 唐鴻華,羅貴娥,呂揚生. 基于S3C44B0X的智能儀表以太網接口設計.電子質量.2004.6 [4] 張州 基于ARM7的便攜式心電監護儀及心電分析的研究 廣東工業大學 2005 [5] 唐懷武 基于ARM處理器的儀器網絡化應用與研究浙江大學 2005 [6] ANALOG DEVICES INC. AD620 DATA SHEETS. 2005 [7] 毛德操 胡希明 Linux內核源代碼情景分析 浙江大學出版社 [8] 吳旭 移植uClinux到嵌入式系統的方法有線電視技術 2005.14[9] 楊亮 楊宜民 陳波 基于uClinux平臺的程序設計《微計算機信息》 2004 |