摘 要:針對目前監(jiān)護(hù)系統(tǒng)的功能越來越強(qiáng)大,對數(shù)據(jù)處理速度的要求越來越高,基于嵌入式技術(shù)的監(jiān)護(hù)系統(tǒng)充分利用運(yùn)算速度較快的ARM嵌入式微處理器和當(dāng)前流行的μC/OSⅡ?qū)崟r多任務(wù)操作系統(tǒng),提出一套用于監(jiān)測人體心電、血壓、血氧飽和度和體溫的醫(yī)療監(jiān)護(hù)系統(tǒng)的研制方案。詳細(xì)介紹系統(tǒng)的基本框架、軟硬件的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)能準(zhǔn)確監(jiān)護(hù)人體的生理參數(shù),有良好的可擴(kuò)展性。
關(guān)鍵詞:ARM;μC/OSⅡ;生理參數(shù);擴(kuò)展性
中圖分類號:TP273.5文獻(xiàn)標(biāo)識碼:B
文章編號:1004-373X(2008)08-035-03
Research and Design of Monitoring System Based onEmbedded Technique
FAN Lifang,WEI Yunlong,WEI Yunmao,CAI Weiming
(Chongqing Institute of Technology,Chongqing,400050,China)
Abstract:In present,the function of monitoring system is more and more formidable,the requirement of data processing speed is more and more high,the monitoring system based on embedded technique mentthe fast calculation ARM embedded microprocessor and the popular realtime and multitask operate system of μC/OSII,it puts forward one project of medical treatment monitoring system which is used to monitor ECG,blood pressure,blood oxygen saturation and animal heat.This paper introduces the basic frame of the system,the design and realization of software and hardware of the system.this system can monitor body′s physiologic parameters reliably and has good expansibility.
Keywords:ARM;μC/OSⅡ;physiologic parameter;expansibility
1 引 言
隨著我國經(jīng)濟(jì)的快速發(fā)展、城市化進(jìn)程的日益加速、人們生活節(jié)奏的不斷加快,越來越多的人們開始感到自己的健康每況愈下,很多人直至病情突發(fā)才明白。據(jù)報(bào)道,我國絕大多數(shù)人都處于亞健康狀態(tài)。隨著現(xiàn)代電子技術(shù)的發(fā)展,16/32 位CPU的廣泛應(yīng)用,傳統(tǒng)的生理信號監(jiān)護(hù)儀的CPU系統(tǒng)也在逐漸的由8位CPU向更高位數(shù)的處理器發(fā)展。隨著監(jiān)護(hù)儀功能的強(qiáng)大,對數(shù)據(jù)處理速度的要求越來越高,使得8位CPU的發(fā)展受到了限制,16/32位CPU可以在遠(yuǎn)高于8位CPU的時鐘頻率下正常工作,數(shù)據(jù)一次性吞吐量大,處理器的價(jià)格卻在下降,16/32位CPU 開始被廣泛應(yīng)用于生理信號監(jiān)護(hù)儀中。
該監(jiān)護(hù)系統(tǒng)采用了ARM 7 系列芯片中的LPC2292嵌入式微處理器,主要用來測量人體的生理參數(shù),如:心電圖、血壓、血氧飽和度、體溫等。因?yàn)橄到y(tǒng)需要采集、處理大量的數(shù)據(jù)信息,而在CPU上用單任務(wù)的軟件來處理這些數(shù)據(jù)信息是很難的,甚至是不可能的。因此在設(shè)計(jì)中選用可同時處理多任務(wù)的μC/OSⅡ 操作系統(tǒng)。其提供了安全可靠的操作系統(tǒng)平臺,縮短了開發(fā)周期。
2 系統(tǒng)硬件設(shè)計(jì)
ARM 7系列芯片LPC2292最小系統(tǒng)如圖1所示:
系統(tǒng)的總體結(jié)構(gòu)框圖如圖2所示。
由圖2可看出整個系統(tǒng)以ARM 7系列芯片LPC2292為核心,在其外圍擴(kuò)展一些外圍電路,從而實(shí)現(xiàn)了對人體生理參數(shù):心電、血壓、血氧飽和度、體溫的安全檢查。系統(tǒng)通過心電模塊、血壓模塊、血氧飽和度模塊、體溫模塊采集人體的生理參數(shù)、調(diào)理電路對這些信號進(jìn)行濾波和放大,LPC2292自帶的A/D轉(zhuǎn)換器將傳輸過來的模擬信號轉(zhuǎn)換為數(shù)字信號,最后人體的各參數(shù)指標(biāo)通過LCD顯示。
2.1 ARM系統(tǒng)模塊
ARM系統(tǒng)是這個系統(tǒng)的控制中心,主要完成運(yùn)算、控制、管理等工作,是系統(tǒng)工作的核心模塊。該系統(tǒng)采用的ARM 7系列芯片LPC2292 ,他是基于一個支持實(shí)時仿真和跟蹤的16/32位CPU,并帶有256 kb嵌入的高速FLASH存儲器。128位寬度的存儲器接口和獨(dú)特的加速結(jié)構(gòu)使2位代碼能夠在最大時鐘速率下運(yùn)行。對代碼規(guī)模有嚴(yán)格控制的應(yīng)用可使用16位Thumb模式將代碼規(guī)模降低超過30%,而性能的損失卻很小。由于LPC2292的144腳封裝、極低的功耗、多個32位定時器、8路10位ADC、2路PWM通道以及多達(dá)9個外部中斷使他們特別適用于醫(yī)療系統(tǒng)、汽車、工業(yè)控制應(yīng)用以及容錯維護(hù)總線。
2.2 LCD顯示模塊
LCD 顯示模塊主要完成數(shù)據(jù)顯示、輸出數(shù)據(jù)與顯示數(shù)據(jù)的同步等功能。由于LPC2292 中沒有液晶控制器的功能模塊,如果所選擇的液晶屏內(nèi)部也沒有液晶控制器,那么,要使CPU可以對液晶進(jìn)行控制,就必須加設(shè)計(jì)一個液晶驅(qū)動控制電路。因此本系統(tǒng)中選擇自帶控制器的液晶屏HLM6323。他是5 英寸偽彩液晶屏,像素是320×240點(diǎn)陣,每個點(diǎn)需要RGB 三色數(shù)據(jù),每種色需要1個字節(jié)數(shù)據(jù)表示。而設(shè)計(jì)要求需要連續(xù)觀看圖圖像,根據(jù)標(biāo)準(zhǔn)需要每秒鐘25 幀圖像,那么每秒至少需要傳輸數(shù)據(jù)為25×8×320×240=15 360 000 位數(shù)據(jù),若選用串行傳輸,則需要4.6 Mb/s的串行傳輸速度,但是遺憾的是,沒有任何一種串行標(biāo)準(zhǔn)傳輸大于這個速度,因此,勢必需要選擇并行的數(shù)據(jù)傳輸。
2.3 報(bào)警模塊
當(dāng)測得的生理參數(shù),如心電、血壓、血氧飽和度、體溫超過預(yù)設(shè)的正常值,則產(chǎn)生報(bào)警,提醒患者趕緊進(jìn)行治療或醫(yī)護(hù)人員需進(jìn)行搶救措施。
2.4 FLASH數(shù)據(jù)存儲器以及USB接口
為了能夠確保實(shí)時數(shù)據(jù)的保存,以及提取,從而設(shè)計(jì)此模塊。本系統(tǒng)中選擇NAND08GW3D2 系列的存儲器芯片。由于該芯片不同存儲密度器件引腳一致,因此系統(tǒng)可以在電路不做改動的情況下升級為高容量存儲器件。通過USB設(shè)備接口芯片ISP1161A1擴(kuò)展出一個USB的設(shè)備接口。通過該USB接口,可以實(shí)現(xiàn)將監(jiān)護(hù)系統(tǒng)記錄的數(shù)據(jù)上傳到PC機(jī),PC機(jī)也可以通過該接口下載程序到LPC2292處理器的存儲器中。
2.5 系統(tǒng)電源
電源設(shè)計(jì)是一個系統(tǒng)設(shè)計(jì)中的關(guān)鍵部分,對于整個系統(tǒng),一個穩(wěn)定的、具有一定功率的電源和合理的電源管理是必不可少的。本系統(tǒng)有以下幾種電源:CPU的內(nèi)核數(shù)字和模擬電源電壓+1.8 V,CPU的I/O口數(shù)字和模擬電源電壓+3.3 V、總線的隔離電源、LCD的驅(qū)動電源、LCD的背光逆變電源、其他外圍設(shè)備電源電壓+5 V等電源。
3 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)主要包括ARM 的應(yīng)用程序的開發(fā)和μC/OSⅡ操作系統(tǒng)的移植2個基本部分。ARM 的應(yīng)用程序主要包括LCD 顯示程序、FLASH 存儲程序、USB通信程序、鍵盤掃描程序、A/D 程序和報(bào)警程序等。μC/OSⅡ操作系統(tǒng)是協(xié)調(diào)LPC2292對程序的任務(wù)管理和調(diào)度。整個系統(tǒng)的軟件流程圖如圖3所示。
3.1 LCD 驅(qū)動軟件的設(shè)計(jì)思想
LCD 驅(qū)動軟件的功能是完成數(shù)據(jù)最終輸出顯示,其主要軟件流程有數(shù)據(jù)的收發(fā)、LCD 上按鍵的讀取、LCD 掃描等。數(shù)據(jù)收發(fā)是為了完成數(shù)據(jù)與CPU、LCD 液晶顯示器進(jìn)行數(shù)據(jù)的傳輸,CPU通過驅(qū)動芯片向LCD輸送數(shù)據(jù),而LCD要向CPU返回響應(yīng)數(shù)據(jù)等。為了增強(qiáng)人機(jī)界面的可讀性,在LCD上設(shè)置了幾個按鍵,當(dāng)有按鍵反應(yīng)時,應(yīng)當(dāng)向CPU發(fā)出相應(yīng)的響應(yīng),并且可以通過按鍵對LCD 的顯示界面設(shè)置和對其他系統(tǒng)參數(shù)進(jìn)行設(shè)置。LCD 的掃描是為了保證顯示不出現(xiàn)明顯間斷、不出現(xiàn)花屏現(xiàn)象,在出現(xiàn)花屏現(xiàn)象時能夠進(jìn)行準(zhǔn)確的錯誤響應(yīng)。其中的按鍵設(shè)計(jì)沒有給每個按鍵使用硬件中斷,因?yàn)樵诒鞠到y(tǒng)中,LCD 顯示驅(qū)動的任務(wù)優(yōu)先級在應(yīng)用程序中是最高的,按鍵統(tǒng)一使用一個硬件外部中斷,然后用軟件對按鍵進(jìn)行軟件中斷安排,確定軟件優(yōu)先級;另一個原因由于按鍵較多,沒有足夠的硬件中斷設(shè)置為按鍵中斷,如果設(shè)置為中斷擴(kuò)展,除了要進(jìn)行硬件的擴(kuò)展,還要進(jìn)行軟件擴(kuò)展,將浪費(fèi)很多資源。
本設(shè)計(jì)中,LCD的驅(qū)動需要編寫2個文件,其中一個是C 語言文件,另一個是C 語言頭文件。C 語言文件是通信接口協(xié)議文件,需要與其他模塊進(jìn)行數(shù)據(jù)的交換。而頭文件是設(shè)計(jì)一些LCD 基本參數(shù),在系統(tǒng)運(yùn)行中,這些參數(shù)基本不變。
3.2 USB 通信軟件的設(shè)計(jì)思想
本系統(tǒng)設(shè)計(jì)的USB 通信軟件通過中斷響應(yīng)來實(shí)現(xiàn),這樣做的目的是CPU 在沒有USB 設(shè)備或者不需要USB 設(shè)備時,可以進(jìn)行其他工作,節(jié)省CPU 和操作系統(tǒng)的資源。其有利于保護(hù)CPU。
3.3 FLASH 讀寫操作軟件的設(shè)計(jì)思想
整個程序文件包括芯片的擦除、芯片的寫入和讀取、數(shù)據(jù)的效驗(yàn)等幾個部分。擦除是為了存儲器能夠進(jìn)行重復(fù)利用而不更換芯片;芯片的寫入和讀取是整個文件的中心,負(fù)責(zé)存儲器的數(shù)據(jù)的寫入,在適當(dāng)時候要讀取數(shù)據(jù);效驗(yàn)是為了保證數(shù)據(jù)的正確,在錯誤時需要報(bào)警。
本設(shè)計(jì)中,存儲器有3個存儲器地址入口,所有的數(shù)據(jù)都需要經(jīng)過這3個地址入口,因此,必須保證此3個地址入口在任何時刻都沒有與其他地址發(fā)生地址交叉的狀況。
3.4 μC/OSⅡ操作系統(tǒng)的移植
μC/OSⅡ?qū)崟r操作系統(tǒng)是一種可移植、可固化、可裁剪及可剝奪型的多任務(wù)實(shí)時內(nèi)核(RTOS),適合應(yīng)用于各種微處理器和微控制器。其性能足可以媲美于各種商用內(nèi)核,在某些方面表現(xiàn)更佳。所有代碼都是采用ANSI 的C 語言編寫,故具有良好的可移植性。
μC/OSⅡ不像其他實(shí)時操作系統(tǒng),他提供給用戶的是一個標(biāo)準(zhǔn)的API 函數(shù),程序開發(fā)人員利用操作系統(tǒng)提供的API 函數(shù)進(jìn)行應(yīng)用程序的開發(fā)。要想在μC/OSⅡ內(nèi)核上進(jìn)行應(yīng)用程序的開發(fā),就需要程序開發(fā)人員在實(shí)時內(nèi)核基礎(chǔ)上建立自己的實(shí)時操作系統(tǒng)。首先,把μC/OSⅡ移植到自己的硬件目標(biāo)板上,寫出相應(yīng)的驅(qū)動程序以及用戶圖形界面等;在這些接口函數(shù)之上,加上用戶自己的應(yīng)用程序,就構(gòu)成了嵌入式軟件。
μC/OSⅡ的移植條件是:處理器C 編譯器能產(chǎn)生可重入型代碼;處理器支持中斷,并能產(chǎn)生定時中斷;用C 語言可以開、關(guān)中斷;處理器支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧;處理器有將堆棧指針及其他CPU 寄存內(nèi)容讀出,并保存到堆棧或內(nèi)存中的指令這5個方面的要求。
Philips 公司LPC2292 芯片和ADS1.2 的C 編譯器一起可以滿足上述5個條件,因此本設(shè)計(jì)是完全可以移植操[LL]作系統(tǒng),以提高系統(tǒng)的功能。
μC/OSⅡ軟件的體系結(jié)構(gòu)如圖4所示:
雖然μC/OSⅡ大部分源代碼是用C語言寫的,但是完成和處理器有關(guān)的一些代碼時,還是必須要用匯編語言來實(shí)現(xiàn)的。寄存器的讀、寫只能通過匯編語言的存儲和加載指令實(shí)現(xiàn)。
移植μC/OSⅡ到一個新的體系結(jié)構(gòu)上需要對如下3個文件進(jìn)行修改:
(1) c語言頭文件OSCPU.H;
(2) C語言源文件OSCPU.C;
(3) 匯編源文件程序OSCPUA.ASM。
4 結(jié) 語
該人體生理參數(shù)監(jiān)護(hù)系統(tǒng)在基于ARM7微處理器的硬件平臺上實(shí)現(xiàn),采用當(dāng)前流行的μC/OSⅡ?qū)崟r多任務(wù)操作系統(tǒng),能實(shí)時檢測用戶的心電、血壓、血氧飽和度和體溫,并能對其進(jìn)行數(shù)據(jù)分析,當(dāng)出現(xiàn)異常時,能自動報(bào)警使用戶得到及時救治。該系統(tǒng)可擴(kuò)展性比較高,可根據(jù)需要直接在該系統(tǒng)上進(jìn)行擴(kuò)展,使其具有GPS,GPRS,CDMA功能的遠(yuǎn)程人體生理參數(shù)監(jiān)護(hù)儀。
參 考 文 獻(xiàn)
[1]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程\\[M\\].北京:北京航空航天大學(xué)出版社,2005.
[2]唐富華,康景利,郭銀景,等.基于嵌入式技術(shù)的移動醫(yī)療監(jiān)護(hù)系統(tǒng)的研制\\[J\\].計(jì)算機(jī)工程與應(yīng)用,2005(13):201203.
[3]ARM公司.ARM Architecture Reference Manual\\[Z\\].2000.
[4]邵貝貝.嵌入式實(shí)時操作系統(tǒng)μC/OSⅡ\\[M\\].2版.北京:北京航空航天大學(xué)出版社,2003.
[5]Jean J Labrosse.μC/OSⅡ源碼公開的實(shí)時嵌入式操作系統(tǒng)\\[M\\].邵貝貝,譯.北京:中國電力出版社,2001.
[6]陳峰,李濱滔,戈志華.基于S3C2410的嵌入式Linux系統(tǒng)構(gòu)建\\[J\\].現(xiàn)代電子技術(shù),2007,30(24):5557,60.
作者簡介 范麗芳 女,1983年出生,河北行唐人,碩士研究生。主要研究方向?yàn)樯镝t(yī)電及智能傳感器。