摘要:該文介紹了基于WinSock 的遠程脈搏采集系統的設計和實現過程。該系統包括脈搏采集終端、本地客戶端、遠程主機端三個部分。以16位單片機MSP430F2274為核心構成的脈搏采集終端采集的信息,通過藍牙技術無線傳輸到本地客戶端, 本地客戶端和遠程主機端在VC++6.0環境下使用WinSock編寫程序實現兩者的網絡通信,從而實現遠程主機端對本地病人脈搏信號的遠程采集,系統還能實現病人與遠程主機端的醫生進行語音和文字交互。試驗結果表明系統的設計是成功的,能很好地實現脈搏采集和其它信息交互。
關鍵字:脈搏傳感器;藍牙適配器;下位機;套接字
中圖分類號:TP311.52 文獻標識碼:A文章編號:1009-3044(2009)36-10301-02
The Design of Remote Pulse Wave Acquisition System Based On WinSock
CHEN Jie,TAN Jia-fan,HOU Hai-liang
(Department of Communications Control Engineering, Hunan Institute of Humanities, Science and Technology, Loudi 417000,China)
Abstract: This article introduced the design and realized of Remote Pulse Acquisition System based on WinSock technology. This system involved pulse acquisition terminal, local client and remote host computer.Pulse acquisition terminal which is composed by Single-chip Micyoco collected pulse wave and send the signal to computer through Bluetooth. Then local client and remote host computer sent message to each other by WinSock technology in Visual C++6.0 environment. At the same time, this system also can realize voice and text chat between doctor and patient or patient’s families. Experiment results showed this system got good performance and realized pulse acquisition and other messages communication.
Key words: pulse sensor; bluetooth adapter; lower computer; socket
現代社會隨著人們生活水平的不斷提高,生活方式、飲食結構的不斷改變,高血壓、冠心病、動脈硬化等心血管疾病已成為常見病。在心血管疾病的初期,雖然患者還沒有自覺癥狀,但血壓、血流等一系列心血管參數已經發生了變化,并首先反應在脈搏波的波形變化中。因此通過對正常人和患病人的脈搏波的比較,就有可能將心血管疾病潛在的危險及早診斷出來,為心血管疾病的預防和治療爭取時間。心衰病人死亡大多是來不及搶救而非不能搶救,如果在家療養或者負擔不起昂貴的住院費用的病人,能在病人正常生活時測量到病人的脈搏信號,并將脈搏信號送到遠程醫院給醫生診斷,醫生就可以及時進行搶救或指導病人家屬進行急救,盡最大可能挽救病人的生命。隨著Internet 的迅速發展及其相關技術的日益完善,這一切都成為可能。
本文設計了一種遠程脈搏采集系統[1],用單片機MSP430F2274[2]作為下位機實現了脈搏信號采集,并利用藍牙技術[3]將脈搏信號傳輸到本地客戶機,在Vc++6.0環境下使用Winsock[3]將采集到的數據通過因特網傳送至遠程的醫生端PC機,繼而對數據按照相應的生物醫學標準進行分析處理,產生的分析結果作為醫生對用戶的一種重要的診斷依據,系統對于脈率過高的病人系統自動進行語音報警。此外該系統還具有文字聊天和語音聊天功能,方便病人或者病人家屬和醫生信息溝通。
1 系統總體結構
遠程脈搏采集系統(如圖1)主要由脈搏采集終端、本地客戶端、遠程主機端三個部分組成。
脈搏采集終端以單片機為核心外加一些硬件電路主要完成脈搏的采集,本地客戶端完成脈率的計算以及顯示和控制按鈕(包含在客戶端界面)。遠程主機端包括脈搏信息顯示和分析、報警。因特網主要完成脈搏信息、語音和文字聊天信息的傳送。
2 系統設計
2.1 單片機采集系統
單片機采集系統由MSP430F2274單片機為核心構成, 該單片機支持串口通信。以其為核心構成的采集系統電路簡單, 成本低。脈搏信號由合肥華科電子技術研究所研發的壓電和光電脈搏傳感器檢測,該信號經電壓抬升和濾波后由單片機采集,然后經藍牙[4]技術由串口送到本地主機。
2.2 客戶端和遠程主機端程序設計
客戶端上位機(即PC機)程序采用VC++6.0編寫,程序采用多線程實現,包括脈搏數據采集、語音聊天信號的采集、信號傳輸(脈搏信號和聊天信息)分別采用不同的線程實現。CserialPort類實現從串口讀數據,WaveIn類實現從標準音頻口采集語音聊天信號,WaveOut實現語音播放。考慮到遠程主機端對脈搏信息的實時性不是很高,為了防止實時傳輸造成網絡擁塞,脈搏信號的傳送不采用實時性好的消息機制,而是將采集到得數據存入緩沖區定時發送。語音聊天信號也采用同樣的機制,為了減少網絡流量,采集的語音信號經過G.729A語音編碼標準壓縮后傳送,接收端解碼后播放,具體通過兩個類SoundCompres類和SoundDecode類實現。數據顯示通過COScopeCtrl類實現。客戶端界面如圖2。
遠程主機端程序也VC++6.0編寫程序實現,主要功能包括保存并顯示客戶端發送的脈搏信號、顯示脈率、對于脈率過高的病人系統自動進行語音報警等功能。其主要實現方式與客戶端類似。運行效果如圖3。
客戶端和遠程主機端的信息交互主要是依靠網絡通信程序實現,它分散在客戶端和遠程主機端。數據的傳送采用Winsock機制[5]。具體的通信流程如圖4。
服務器與客戶機的工作原理可以用下面的過程來描述:
1)服務器先用socket函數來建立一個套接字,用這個套接字進行監聽。
2)用bind函數來綁定一個端口號和IP地址。因為本地計算機可能有多個網址和IP,需要指定一個IP和端口進行監聽。
3)服務器調用listen函數,使服務器的這個端口和IP處于監聽狀態,等待客戶機的連接。
4)客戶機用socket函數建立一個套接字,設定遠程IP和端口。
5)客戶機調用connect函數連接遠程計算機指定的端口。
6)服務器用accept函數來接受遠程計算機的連接,建立起與客戶機之間的通信。
7)建立連接以后,客戶機用write函數向socket中寫入數據。也可以用read函數讀取服務器發送來的數據。
8)服務器用read函數讀取客戶機發送來的數據,也可以用write函數來發送數據。
9)完成通信以后,用close函數關閉socket連接。
套接字不能允許數據的丟失,且有重發的機制,能確保數據發送到目的地。
程序運行時,作為服務器的遠程主機端首先運行,并指定端口進行監聽,當某個客戶端(病人)提出連接請求時,服務器端同意并建立連接,這樣,醫生和病人就可以自由通信。客戶端咨詢完成后可以退出連接,服務器端可以繼續等待其它客戶端的連接。
3 結束語
本文設計了一種遠程脈搏采集系統,系統以16位單片機MSP430F2274為核心實現脈搏信號采集,并利用藍牙技術將脈搏信號傳輸到本地客戶端,使用Vc++6.0編寫程序實現脈搏信號的實時顯示、脈率計算等功能,同時利用因特網將采集到的數據傳送至服務器端(醫生),服務器端接收到數據后再以波形的形式顯示出來,對于脈率過高的病人系統自動進行語音報警。此外該系統還具有文字聊天和語音聊天功能,方便病人或者病人家屬和醫生進行交互。經過實驗測試, 隨身攜帶的脈搏采集器在離開本地客戶機10米內能夠將采集的脈搏信號無線傳輸到客戶PC機,同時通過網絡可以將數據傳送給遠端的PC機,文字聊天反應快,語音聊天通話質量清晰。證明該設計方案正確,并實現了設計要求。本研究把遠程醫療檢測和網絡實時通信有效結合起來,極大的方便了醫療人員和心臟病人,為心臟病人的治療和急救開辟了一種新的模式。
參考文獻:
[1] 李小艷, 李興平. 基于DSP的便攜式心電數據采集處理系統[J]. 工業控制計算機, 2006:9-19.
[2] 胡大可. msp430系列超低功耗16位單片機原理與應用[M]. 北京:北京航空航天大學出版社,2000.
[3] 錢志鴻, 揚帆, 周求湛. 藍牙技術原理、開發與應用[M]. 北京:北京航空航天大學出版社,2006:113-121.
[4] 馬永宏,劉載文. Visual C++ 環境下基于Winsock網絡通信[J]. 北京工商大學學報, 2006,11.