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