便攜式心電圖采集與控制系統
雖然前置放大電路對共模干擾具有較強的抑制作用,但部分干擾是以差模信號方式進入電路的,且頻率處于心電信號的頻帶之內,加上其他各種不穩定因素,經放大、低通濾波、高通濾波和主放后,輸出仍存在干擾,必須專門濾除。
本文引用地址:http://www.104case.com/article/108825.htm經過陷波器后的心電信號為雙極性,系統中的MD芯片只能量化單極性信號,所以,通過TLC2254把雙極性信號轉化為單極性信號。
LCD 模塊
此系統采用MGLS12864 LCD模塊,由于該液晶顯示器沒有內部字符發生器,所以在屏幕上顯示的任何字符、漢字均須事先建立點陣字模庫,然后按圖形方式進行顯示。MGLS12864 模塊與LPC2478 連接,D0~D7 為數據/命令雙向總線,CS 為片選信號,RES 為復位信號,D/I 為數據/命令選擇信號,R/W 為讀寫命令信號,CE為控制允許信號。
軟件設計
操作系統
本系統對數據處理、數據顯示及網絡傳輸需要很高的實時性,一個可靠的RTOS是系統穩定有效運作的保證,所以我們將在LPC2478上移植mC/OS II實時操作系統,用以滿足系統對多線程、硬實時的嚴格要求。
mC/OS II是一個成熟穩定的占先式實時內核,基于優先級調度,支持56個用戶任務,提供信號量、郵箱、消息隊列等任務通信機制,能夠極大提高CPU的利用效率。由于基于優先級來執行任務,如果其中一個任務跑飛,其它高優先級則可以通過運行系統的監視程序對其進行修復,因此在高安全性場合具有廣泛的應用。且mC/OS II源碼開放,移植簡單,在基于ARM的32位微處理器中有大量成功的案例。在mC/OS II中,每個任務都是無限循環的,處于5種狀態之一:休眠態、就緒態、運行態、掛起態和中斷態。
2.A/D轉換及轉存USB模塊:
由前端心電信號放大模塊放大后的心電信號直接送給LPC2478芯片的P0.23引腳進行A/D轉換,經轉換后的數據為無符號32位數據格式,將其放入緩存數組中送給USB進行存儲,并留待給LCD顯示輸出,具體實現過程為:
首先,需創建兩個數據緩存區“GcWritFileData[DATA_N]”及“GcReadFileData[DATA_N]”做為“寫文件緩沖區”及“讀文件緩沖區”,初始化mC/OS II操作系統,創建用于處理A/D轉換的任務Task0及用于LCD顯示的任務Task1,啟動多任務環境,在Task0中首先進行硬件平臺的初始化,設置P0.23為AIN0[0]功能,作為A/D轉換的輸入引腳,進行ADC模塊設置,設置轉換時鐘等,采用直接啟動ADC轉換,進行轉換的參考電壓為精密恒壓源提供的2.5V電壓,最后轉換結果保存至“寫文件緩沖區”。接著初始化USB HOST,并創建文件系統任務“OSFileTask”,用“OSFileOpen”函數創建并打開一個命名為“ECD.dat”的文件,通過“OSFileWrite”函數將“GcWritFileData” 寫文件緩沖區的數據寫入到U盤中,并通過其返回值判斷寫文件是否成功,完成寫文件后再使用“OSFileRead”函數將“GcWritFileData” 寫文件緩沖區的數據讀寫到“GcReadFileData” 讀文件緩沖區,再通過寫、讀文件緩沖區數據的比較來確定寫入文件數據是否正確,至此,完成從A/D轉換接收數據及轉存至USB的過程。程序流程圖如圖5所示。
評論