1 引言
隨著我國經(jīng)濟的快速發(fā)展,、城市化進程的日益加速、人們生活節(jié)奏的不斷加快,,越來越多的人們開始感到自己的健康每況愈下,,很多人直至病情突發(fā)才明白。據(jù)報道,,我國絕大多數(shù)人都處于亞健康狀態(tài),。隨著現(xiàn)代電子技術(shù)的發(fā)展,16/32位CPU的廣泛應用,,傳統(tǒng)的生理信號監(jiān)護儀的CPU系統(tǒng)也在逐漸的由8位CPU向更高位數(shù)的處理器發(fā)展,。隨著監(jiān)護儀功能的強大,對數(shù)據(jù)處理速度的要求越來越高,,使得8位CPU的發(fā)展受到了限制,,16/32位CPU可以在遠高于8位CPU的時鐘頻率下正常工作,數(shù)據(jù)一次性吞吐量大,,處理器的價格卻在下降,16/32位CPU開始被廣泛應用于生理信號監(jiān)護儀中,。
該監(jiān)護系統(tǒng)采用了ARM7系列芯片中的LPC2292嵌入式微處理器,,主要用來測量人體的生理參數(shù),如:心電圖,、血壓,、血氧飽和度、體溫等,。因為系統(tǒng)需要采集,、處理大量的數(shù)據(jù)信息,,而在CPU上用單任務的軟件來處理這些數(shù)據(jù)信息是很難的,甚至是不可能的,。因此在設計中選用可同時處理多任務的μC/OS-Ⅱ操作系統(tǒng),。其提供了安全可靠的操作系統(tǒng)平臺,縮短了開發(fā)周期,。
2 系統(tǒng)硬件設計
ARM 7系列芯片LPC2292最小系統(tǒng)如圖1所示:
圖1 ARM 7系列芯片LPC2292最小系統(tǒng)
系統(tǒng)的總體結(jié)構(gòu)框圖如圖2所示,。
圖2 系統(tǒng)的總體結(jié)構(gòu)框圖
由圖2可看出整個系統(tǒng)以ARM 7系列芯片LPC2292為核心,在其外圍擴展一些外圍電路,,從而實現(xiàn)了對人體生理參數(shù):心電,、血壓、血氧飽和度,、體溫的安全檢查,。系統(tǒng)通過心電模塊、血壓模塊,、血氧飽和度模塊,、體溫模塊采集人體的生理參數(shù)、調(diào)理電路對這些信號進行濾波和放大,,LPC2292自帶的A/D轉(zhuǎn)換器將傳輸過來的模擬信號轉(zhuǎn)換為數(shù)字信號,,最后人體的各參數(shù)指標通過LCD顯示。
2.1 ARM系統(tǒng)模塊
ARM系統(tǒng)是這個系統(tǒng)的控制中心,,主要完成運算,、控制、管理等工作,,是系統(tǒng)工作的核心模塊,。該系統(tǒng)采用的ARM 7系列芯片LPC2292,他是基于一個支持實時仿真和跟蹤的16/32位CPU,,并帶有256 kb嵌入的高速FLASH存儲器,。128位寬度的存儲器接口和獨特的加速結(jié)構(gòu)使2位代碼能夠在最大時鐘速率下運行。對代碼規(guī)模有嚴格控制的應用可使用16位Thumb模式將代碼規(guī)模降低超過30%,,而性能的損失卻很小,。由于LPC2292的144腳封裝、極低的功耗,、多個32位定時器,、8路10位ADC、2路PWM通道以及多達9個外部中斷使他們特別適用于醫(yī)療系統(tǒng),、汽車,、工業(yè)控制應用以及容錯維護總線。
2.2 LCD顯示模塊
LCD顯示模塊主要完成數(shù)據(jù)顯示,、輸出數(shù)據(jù)與顯示數(shù)據(jù)的同步等功能,。由于LPC2292中沒有液晶控制器的功能模塊,,如果所選擇的液晶屏內(nèi)部也沒有液晶控制器,那么,,要使CPU可以對液晶進行控制,,就必須加設計一個液晶驅(qū)動控制電路。因此本系統(tǒng)中選擇自帶控制器的液晶屏HLM6323,。他是5英寸偽彩液晶屏,,像素是320×240點陣,每個點需要RGB三色數(shù)據(jù),,每種色需要1個字節(jié)數(shù)據(jù)表示,。而設計要求需要連續(xù)觀看圖圖像,根據(jù)標準需要每秒鐘25幀圖像,,那么每秒至少需要傳輸數(shù)據(jù)為25×8×320×240=15 360 000位數(shù)據(jù),,若選用串行傳輸,則需要4.6 Mb/s的串行傳輸速度,,但是遺憾的是,,沒有任何一種串行標準傳輸大于這個速度,因此,,勢必需要選擇并行的數(shù)據(jù)傳輸,。
2.3 報警模塊
當測得的生理參數(shù),如心電,、血壓,、血氧飽和度、體溫超過預設的正常值,,則產(chǎn)生報警,,提醒患者趕緊進行治療或醫(yī)護人員需進行搶救措施。
2.4 FLASH數(shù)據(jù)存儲器以及USB接口
為了能夠確保實時數(shù)據(jù)的保存,,以及提取,,從而設計此模塊。本系統(tǒng)中選擇NAND08GW3D2系列的存儲器芯片,。由于該芯片不同存儲密度器件引腳一致,,因此系統(tǒng)可以在電路不做改動的情況下升級為高容量存儲器件。通過USB設備接口芯片ISP1161A1擴展出一個USB的設備接口,。通過該USB接口,,可以實現(xiàn)將監(jiān)護系統(tǒng)記錄的數(shù)據(jù)上傳到PC機,PC機也可以通過該接口下載程序到LPC2292處理器的存儲器中,。
2.5 系統(tǒng)電源
電源設計是一個系統(tǒng)設計中的關鍵部分,對于整個系統(tǒng),,一個穩(wěn)定的,、具有一定功率的電源和合理的電源管理是必不可少的,。本系統(tǒng)有以下幾種電源:CPU的內(nèi)核數(shù)字和模擬電源電壓+1.8 V,CPU的I/O口數(shù)字和模擬電源電壓+3.3 V,、總線的隔離電源,、LCD的驅(qū)動電源、LCD的背光逆變電源,、其他外圍設備電源電壓+5 V等電源,。
3 軟件設計
本系統(tǒng)的軟件設計主要包括ARM的應用程序的開發(fā)和μC/OS-Ⅱ操作系統(tǒng)的移植2個基本部分。ARM的應用程序主要包括LCD顯示程序,、FLASH存儲程序,、USB通信程序、鍵盤掃描程序,、A/D程序和報警程序等,。μC/OS-Ⅱ操作系統(tǒng)是協(xié)調(diào)LPC2292對程序的任務管理和調(diào)度。整個系統(tǒng)的軟件流程圖如圖3所示,。
圖3 整個系統(tǒng)的軟件流程圖
3.1 LCD驅(qū)動軟件的設計思想
LCD驅(qū)動軟件的功能是完成數(shù)據(jù)最終輸出顯示,,其主要軟件流程有數(shù)據(jù)的收發(fā)、LCD上按鍵的讀取,、LCD掃描等,。數(shù)據(jù)收發(fā)是為了完成數(shù)據(jù)與CPU、LCD液晶顯示器進行數(shù)據(jù)的傳輸,,CPU通過驅(qū)動芯片向LCD輸送數(shù)據(jù),,而LCD要向CPU返回響應數(shù)據(jù)等。為了增強人機界面的可讀性,,在LCD上設置了幾個按鍵,,當有按鍵反應時,應當向CPU發(fā)出相應的響應,,并且可以通過按鍵對LCD的顯示界面設置和對其他系統(tǒng)參數(shù)進行設置,。LCD的掃描是為了保證顯示不出現(xiàn)明顯間斷、不出現(xiàn)花屏現(xiàn)象,,在出現(xiàn)花屏現(xiàn)象時能夠進行準確的錯誤響應,。其中的按鍵設計沒有給每個按鍵使用硬件中斷,因為在本系統(tǒng)中,,LCD顯示驅(qū)動的任務優(yōu)先級在應用程序中是最高的,,按鍵統(tǒng)一使用一個硬件外部中斷,然后用軟件對按鍵進行軟件中斷安排,,確定軟件優(yōu)先級,;另一個原因由于按鍵較多,沒有足夠的硬件中斷設置為按鍵中斷,,如果設置為中斷擴 展,,除了要進行硬件的擴展,,還要進行軟件擴展,將浪費很多資源,。
本設計中,,LCD的驅(qū)動需要編寫2個文件,其中一個是C語言文件,,另一個是C語言頭文件,。C語言文件是通信接口協(xié)議文件,需要與其他模塊進行數(shù)據(jù)的交換,。而頭文件是設計一些LCD基本參數(shù),,在系統(tǒng)運行中,這些參數(shù)基本不變,。
3.2 USB通信軟件的設計思想
本系統(tǒng)設計的USB通信軟件通過中斷響應來實現(xiàn),,這樣做的目的是CPU在沒有USB設備或者不需要USB設備時,可以進行其他工作,,節(jié)省CPU和操作系統(tǒng)的資源,。其有利于保護CPU。
3.3 FLASH讀寫操作軟件的設計思想
整個程序文件包括芯片的擦除,、芯片的寫入和讀取,、數(shù)據(jù)的效驗等幾個部分。擦除是為了存儲器能夠進行重復利用而不更換芯片,;芯片的寫入和讀取是整個文件的中心,,負責存儲器的數(shù)據(jù)的寫入,在適當時候要讀取數(shù)據(jù),;效驗是為了保證數(shù)據(jù)的正確,,在錯誤時需要報警。
本設計中,,存儲器有3個存儲器地址入口,,所有的數(shù)據(jù)都需要經(jīng)過這3個地址入口,因此,,必須保證此3個地址入口在任何時刻都沒有與其他地址發(fā)生地址交叉的狀況,。
3.4 μC/OS-Ⅱ操作系統(tǒng)的移植
μC/OS-Ⅱ?qū)崟r操作系統(tǒng)是一種可移植、可固化,、可裁剪及可剝奪型的多任務實時內(nèi)核(RTOS),,適合應用于各種微處理器和微控制器。其性能足可以媲美于各種商用內(nèi)核,,在某些方面表現(xiàn)更佳,。所有代碼都是采用ANSI的C語言編寫,故具有良好的可移植性。
μC/OS-Ⅱ不像其他實時操作系統(tǒng),,他提供給用戶的是一個標準的API函數(shù),,程序開發(fā)人員利用操作系統(tǒng)提供的API函數(shù)進行應用程序的開發(fā)。要想在μC/OS-Ⅱ內(nèi)核上進行應用程序的開發(fā),,就需要程序開發(fā)人員在實時內(nèi)核基礎上建立自己的實時操作系統(tǒng)。首先,,把μC/OS-Ⅱ移植到自己的硬件目標板上,,寫出相應的驅(qū)動程序以及用戶圖形界面等;在這些接口函數(shù)之上,,加上用戶自己的應用程序,,就構(gòu)成了嵌入式軟件。
μC/OS-Ⅱ的移植條件是:處理器C編譯器能產(chǎn)生可重入型代碼,;處理器支持中斷,,并能產(chǎn)生定時中斷;用C語言可以開,、關中斷,;處理器支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧;處理器有將堆棧指針及其他CPU寄存內(nèi)容讀出,,并保存到堆?;騼?nèi)存中的指令這5個方面的要求。Philips公司LPC2292芯片和ADS1.2的C編譯器一起可以滿足上述5個條件,,因此本設計是完全可以移植操作系統(tǒng),,以提高系統(tǒng)的功能。
μC/OS-Ⅱ軟件的體系結(jié)構(gòu)如圖4所示:
圖4 μC/OS-Ⅱ軟件的體系結(jié)構(gòu)
雖然μC/OS-Ⅱ大部分源代碼是用C語言寫的,,但是完成和處理器有關的一些代碼時,,還是必須要用匯編語言來實現(xiàn)的。寄存器的讀,、寫只能通過匯編語言的存儲和加載指令實現(xiàn),。
移植μC/OS-Ⅱ到一個新的體系結(jié)構(gòu)上需要對如下3個文件進行修改:
(1)c語言頭文件OS-CPU.H;
(2)C語言源文件OS-CPU.C,;
(3)匯編源文件程序OS-CPU-A.ASM,。
4 結(jié) 語
該人體生理參數(shù)監(jiān)護系統(tǒng)在基于ARM7微處理器的硬件平臺上實現(xiàn),采用當前流行的μC/OS-Ⅱ?qū)崟r多任務操作系統(tǒng),,能實時檢測用戶的心電,、血壓、血氧飽和度和體溫,,并能對其進行數(shù)據(jù)分析,,當出現(xiàn)異常時,能自動報警使用戶得到及時救治。該系統(tǒng)可擴展性比較高,,可根據(jù)需要直接在該系統(tǒng)上進行擴展,,使其具有GPS,GPRS,,CDMA功能的遠程人體生理參數(shù)監(jiān)護儀,。