摘要:該文介紹了基于WinSock 的遠(yuǎn)程脈搏采集系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。該系統(tǒng)包括脈搏采集終端、本地客戶端、遠(yuǎn)程主機(jī)端三個(gè)部分。以16位單片機(jī)MSP430F2274為核心構(gòu)成的脈搏采集終端采集的信息,通過(guò)藍(lán)牙技術(shù)無(wú)線傳輸?shù)奖镜乜蛻舳耍?本地客戶端和遠(yuǎn)程主機(jī)端在VC++6.0環(huán)境下使用WinSock編寫程序?qū)崿F(xiàn)兩者的網(wǎng)絡(luò)通信,從而實(shí)現(xiàn)遠(yuǎn)程主機(jī)端對(duì)本地病人脈搏信號(hào)的遠(yuǎn)程采集,系統(tǒng)還能實(shí)現(xiàn)病人與遠(yuǎn)程主機(jī)端的醫(yī)生進(jìn)行語(yǔ)音和文字交互。試驗(yàn)結(jié)果表明系統(tǒng)的設(shè)計(jì)是成功的,能很好地實(shí)現(xiàn)脈搏采集和其它信息交互。
關(guān)鍵字:脈搏傳感器;藍(lán)牙適配器;下位機(jī);套接字
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):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
現(xiàn)代社會(huì)隨著人們生活水平的不斷提高,生活方式、飲食結(jié)構(gòu)的不斷改變,高血壓、冠心病、動(dòng)脈硬化等心血管疾病已成為常見(jiàn)病。在心血管疾病的初期,雖然患者還沒(méi)有自覺(jué)癥狀,但血壓、血流等一系列心血管參數(shù)已經(jīng)發(fā)生了變化,并首先反應(yīng)在脈搏波的波形變化中。因此通過(guò)對(duì)正常人和患病人的脈搏波的比較,就有可能將心血管疾病潛在的危險(xiǎn)及早診斷出來(lái),為心血管疾病的預(yù)防和治療爭(zhēng)取時(shí)間。心衰病人死亡大多是來(lái)不及搶救而非不能搶救,如果在家療養(yǎng)或者負(fù)擔(dān)不起昂貴的住院費(fèi)用的病人,能在病人正常生活時(shí)測(cè)量到病人的脈搏信號(hào),并將脈搏信號(hào)送到遠(yuǎn)程醫(yī)院給醫(yī)生診斷,醫(yī)生就可以及時(shí)進(jìn)行搶救或指導(dǎo)病人家屬進(jìn)行急救,盡最大可能挽救病人的生命。隨著Internet 的迅速發(fā)展及其相關(guān)技術(shù)的日益完善,這一切都成為可能。
本文設(shè)計(jì)了一種遠(yuǎn)程脈搏采集系統(tǒng)[1],用單片機(jī)MSP430F2274[2]作為下位機(jī)實(shí)現(xiàn)了脈搏信號(hào)采集,并利用藍(lán)牙技術(shù)[3]將脈搏信號(hào)傳輸?shù)奖镜乜蛻魴C(jī),在Vc++6.0環(huán)境下使用Winsock[3]將采集到的數(shù)據(jù)通過(guò)因特網(wǎng)傳送至遠(yuǎn)程的醫(yī)生端PC機(jī),繼而對(duì)數(shù)據(jù)按照相應(yīng)的生物醫(yī)學(xué)標(biāo)準(zhǔn)進(jìn)行分析處理,產(chǎn)生的分析結(jié)果作為醫(yī)生對(duì)用戶的一種重要的診斷依據(jù),系統(tǒng)對(duì)于脈率過(guò)高的病人系統(tǒng)自動(dòng)進(jìn)行語(yǔ)音報(bào)警。此外該系統(tǒng)還具有文字聊天和語(yǔ)音聊天功能,方便病人或者病人家屬和醫(yī)生信息溝通。
1 系統(tǒng)總體結(jié)構(gòu)
遠(yuǎn)程脈搏采集系統(tǒng)(如圖1)主要由脈搏采集終端、本地客戶端、遠(yuǎn)程主機(jī)端三個(gè)部分組成。
脈搏采集終端以單片機(jī)為核心外加一些硬件電路主要完成脈搏的采集,本地客戶端完成脈率的計(jì)算以及顯示和控制按鈕(包含在客戶端界面)。遠(yuǎn)程主機(jī)端包括脈搏信息顯示和分析、報(bào)警。因特網(wǎng)主要完成脈搏信息、語(yǔ)音和文字聊天信息的傳送。
2 系統(tǒng)設(shè)計(jì)
2.1 單片機(jī)采集系統(tǒng)
單片機(jī)采集系統(tǒng)由MSP430F2274單片機(jī)為核心構(gòu)成, 該單片機(jī)支持串口通信。以其為核心構(gòu)成的采集系統(tǒng)電路簡(jiǎn)單, 成本低。脈搏信號(hào)由合肥華科電子技術(shù)研究所研發(fā)的壓電和光電脈搏傳感器檢測(cè),該信號(hào)經(jīng)電壓抬升和濾波后由單片機(jī)采集,然后經(jīng)藍(lán)牙[4]技術(shù)由串口送到本地主機(jī)。
2.2 客戶端和遠(yuǎn)程主機(jī)端程序設(shè)計(jì)
客戶端上位機(jī)(即PC機(jī))程序采用VC++6.0編寫,程序采用多線程實(shí)現(xiàn),包括脈搏數(shù)據(jù)采集、語(yǔ)音聊天信號(hào)的采集、信號(hào)傳輸(脈搏信號(hào)和聊天信息)分別采用不同的線程實(shí)現(xiàn)。CserialPort類實(shí)現(xiàn)從串口讀數(shù)據(jù),WaveIn類實(shí)現(xiàn)從標(biāo)準(zhǔn)音頻口采集語(yǔ)音聊天信號(hào),WaveOut實(shí)現(xiàn)語(yǔ)音播放??紤]到遠(yuǎn)程主機(jī)端對(duì)脈搏信息的實(shí)時(shí)性不是很高,為了防止實(shí)時(shí)傳輸造成網(wǎng)絡(luò)擁塞,脈搏信號(hào)的傳送不采用實(shí)時(shí)性好的消息機(jī)制,而是將采集到得數(shù)據(jù)存入緩沖區(qū)定時(shí)發(fā)送。語(yǔ)音聊天信號(hào)也采用同樣的機(jī)制,為了減少網(wǎng)絡(luò)流量,采集的語(yǔ)音信號(hào)經(jīng)過(guò)G.729A語(yǔ)音編碼標(biāo)準(zhǔn)壓縮后傳送,接收端解碼后播放,具體通過(guò)兩個(gè)類SoundCompres類和SoundDecode類實(shí)現(xiàn)。數(shù)據(jù)顯示通過(guò)COScopeCtrl類實(shí)現(xiàn)??蛻舳私缑嫒鐖D2。
遠(yuǎn)程主機(jī)端程序也VC++6.0編寫程序?qū)崿F(xiàn),主要功能包括保存并顯示客戶端發(fā)送的脈搏信號(hào)、顯示脈率、對(duì)于脈率過(guò)高的病人系統(tǒng)自動(dòng)進(jìn)行語(yǔ)音報(bào)警等功能。其主要實(shí)現(xiàn)方式與客戶端類似。運(yùn)行效果如圖3。
客戶端和遠(yuǎn)程主機(jī)端的信息交互主要是依靠網(wǎng)絡(luò)通信程序?qū)崿F(xiàn),它分散在客戶端和遠(yuǎn)程主機(jī)端。數(shù)據(jù)的傳送采用Winsock機(jī)制[5]。具體的通信流程如圖4。
服務(wù)器與客戶機(jī)的工作原理可以用下面的過(guò)程來(lái)描述:
1)服務(wù)器先用socket函數(shù)來(lái)建立一個(gè)套接字,用這個(gè)套接字進(jìn)行監(jiān)聽(tīng)。
2)用bind函數(shù)來(lái)綁定一個(gè)端口號(hào)和IP地址。因?yàn)楸镜赜?jì)算機(jī)可能有多個(gè)網(wǎng)址和IP,需要指定一個(gè)IP和端口進(jìn)行監(jiān)聽(tīng)。
3)服務(wù)器調(diào)用listen函數(shù),使服務(wù)器的這個(gè)端口和IP處于監(jiān)聽(tīng)狀態(tài),等待客戶機(jī)的連接。
4)客戶機(jī)用socket函數(shù)建立一個(gè)套接字,設(shè)定遠(yuǎn)程IP和端口。
5)客戶機(jī)調(diào)用connect函數(shù)連接遠(yuǎn)程計(jì)算機(jī)指定的端口。
6)服務(wù)器用accept函數(shù)來(lái)接受遠(yuǎn)程計(jì)算機(jī)的連接,建立起與客戶機(jī)之間的通信。
7)建立連接以后,客戶機(jī)用write函數(shù)向socket中寫入數(shù)據(jù)。也可以用read函數(shù)讀取服務(wù)器發(fā)送來(lái)的數(shù)據(jù)。
8)服務(wù)器用read函數(shù)讀取客戶機(jī)發(fā)送來(lái)的數(shù)據(jù),也可以用write函數(shù)來(lái)發(fā)送數(shù)據(jù)。
9)完成通信以后,用close函數(shù)關(guān)閉socket連接。
套接字不能允許數(shù)據(jù)的丟失,且有重發(fā)的機(jī)制,能確保數(shù)據(jù)發(fā)送到目的地。
程序運(yùn)行時(shí),作為服務(wù)器的遠(yuǎn)程主機(jī)端首先運(yùn)行,并指定端口進(jìn)行監(jiān)聽(tīng),當(dāng)某個(gè)客戶端(病人)提出連接請(qǐng)求時(shí),服務(wù)器端同意并建立連接,這樣,醫(yī)生和病人就可以自由通信??蛻舳俗稍兺瓿珊罂梢酝顺鲞B接,服務(wù)器端可以繼續(xù)等待其它客戶端的連接。
3 結(jié)束語(yǔ)
本文設(shè)計(jì)了一種遠(yuǎn)程脈搏采集系統(tǒng),系統(tǒng)以16位單片機(jī)MSP430F2274為核心實(shí)現(xiàn)脈搏信號(hào)采集,并利用藍(lán)牙技術(shù)將脈搏信號(hào)傳輸?shù)奖镜乜蛻舳耍褂肰c++6.0編寫程序?qū)崿F(xiàn)脈搏信號(hào)的實(shí)時(shí)顯示、脈率計(jì)算等功能,同時(shí)利用因特網(wǎng)將采集到的數(shù)據(jù)傳送至服務(wù)器端(醫(yī)生),服務(wù)器端接收到數(shù)據(jù)后再以波形的形式顯示出來(lái),對(duì)于脈率過(guò)高的病人系統(tǒng)自動(dòng)進(jìn)行語(yǔ)音報(bào)警。此外該系統(tǒng)還具有文字聊天和語(yǔ)音聊天功能,方便病人或者病人家屬和醫(yī)生進(jìn)行交互。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試, 隨身攜帶的脈搏采集器在離開(kāi)本地客戶機(jī)10米內(nèi)能夠?qū)⒉杉拿}搏信號(hào)無(wú)線傳輸?shù)娇蛻鬚C機(jī),同時(shí)通過(guò)網(wǎng)絡(luò)可以將數(shù)據(jù)傳送給遠(yuǎn)端的PC機(jī),文字聊天反應(yīng)快,語(yǔ)音聊天通話質(zhì)量清晰。證明該設(shè)計(jì)方案正確,并實(shí)現(xiàn)了設(shè)計(jì)要求。本研究把遠(yuǎn)程醫(yī)療檢測(cè)和網(wǎng)絡(luò)實(shí)時(shí)通信有效結(jié)合起來(lái),極大的方便了醫(yī)療人員和心臟病人,為心臟病人的治療和急救開(kāi)辟了一種新的模式。
參考文獻(xiàn):
[1] 李小艷, 李興平. 基于DSP的便攜式心電數(shù)據(jù)采集處理系統(tǒng)[J]. 工業(yè)控制計(jì)算機(jī), 2006:9-19.
[2] 胡大可. msp430系列超低功耗16位單片機(jī)原理與應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2000.
[3] 錢志鴻, 揚(yáng)帆, 周求湛. 藍(lán)牙技術(shù)原理、開(kāi)發(fā)與應(yīng)用[M]. 北京:北京航空航天大學(xué)出版社,2006:113-121.
[4] 馬永宏,劉載文. Visual C++ 環(huán)境下基于Winsock網(wǎng)絡(luò)通信[J]. 北京工商大學(xué)學(xué)報(bào), 2006,11.