摘 要: 介紹了一種以FPGA為核心的多功能輸液系統(tǒng)的設(shè)計(jì)方法。該系統(tǒng)具有鍵盤(pán)操作、點(diǎn)滴檢測(cè)、點(diǎn)滴速度控制、余液顯示、語(yǔ)音通信和報(bào)警等功能。采用光纖傳感器檢測(cè)點(diǎn)滴速度,用容柵傳感器檢測(cè)余液量,用步進(jìn)電機(jī)及其配套裝置控制點(diǎn)滴速度。實(shí)驗(yàn)證明,檢測(cè)與控制等性能達(dá)到設(shè)計(jì)要求。
關(guān)鍵詞: FPGA;點(diǎn)滴速度控制;光纖傳感器;容柵傳感器;語(yǔ)音通信
目前,醫(yī)院輸液現(xiàn)場(chǎng)一般是人工控制和監(jiān)視,但輸液速度和輸液量是一個(gè)很難準(zhǔn)確把握的值,護(hù)士通過(guò)轉(zhuǎn)動(dòng)輸液器上的手動(dòng)輪來(lái)控制輸液速度,并通過(guò)肉眼觀(guān)察估計(jì)速度,而且輸液過(guò)程中,醫(yī)護(hù)人員一般不能全程陪護(hù),會(huì)給病人和醫(yī)務(wù)人員帶來(lái)許多安全隱患和不便[1-5]。本文設(shè)計(jì)了一種集輸液控制、顯示、報(bào)警、語(yǔ)音通信等多種 功能的輸液控制系統(tǒng)。
1 系統(tǒng)總體設(shè)計(jì)
輸液監(jiān)控系統(tǒng)原理如圖1所示,包括FPGA控制器、點(diǎn)滴速度檢測(cè)、余液體積檢測(cè)、執(zhí)行機(jī)構(gòu)、鍵盤(pán)控制、LCD顯示、語(yǔ)音通信(發(fā)送與接收)以及RS232總線(xiàn)轉(zhuǎn)換等部分。
輸液控制與語(yǔ)音通信是本文的主要研究?jī)?nèi)容,也是本系統(tǒng)穩(wěn)定性和可靠性的根本保證。根據(jù)系統(tǒng)要求,設(shè)計(jì)中以FPGA為控制器,以光纖傳感器和容柵傳感器為檢測(cè)機(jī)構(gòu),以步進(jìn)電機(jī)為執(zhí)行機(jī)構(gòu)。為了安全和方便,利用RS232總線(xiàn)增設(shè)了語(yǔ)音通信和輸液完成自動(dòng)報(bào)警等功能。
2 硬件部分
2.1 控制器硬件設(shè)計(jì)
控制器主芯片采用Altera公司的型號(hào)為APEX系列的FPGA芯片,芯片型號(hào)為 Cyclone II EP2C35F672C6。FPGA芯片采用90 nm的低功耗設(shè)計(jì)、672-Pin FineLine BGA封裝,內(nèi)置35個(gè)內(nèi)嵌18×18乘法器、475個(gè)用戶(hù)管腳、4PLLs、205個(gè)差分通道(比c8高出一倍的主頻,可以達(dá)到400 MHz)典型值100萬(wàn)門(mén),最大值約160萬(wàn)門(mén)。主處理器采用Altera公司的32位Nios軟核處理器,與傳統(tǒng)的嵌入式處理器相比,NiosⅡ處理器更加靈活。該芯片具有定制特性,可以根據(jù)自身的系統(tǒng)要求、性能要求和成本要求進(jìn)行定制。系統(tǒng)總線(xiàn)采用AVALON總線(xiàn)標(biāo)準(zhǔn)。另外系統(tǒng)具有RS232串行通信口、鍵盤(pán)PIO、LCD顯示等外圍擴(kuò)展功能,便于系統(tǒng)的進(jìn)一步開(kāi)發(fā),縮短系統(tǒng)的開(kāi)發(fā)周期,降低系統(tǒng)的開(kāi)發(fā)成本[6]。
2.2 鍵盤(pán)控制
為了操作方便,系統(tǒng)采用鍵盤(pán)操作。設(shè)備履行一種雙向同步串行協(xié)議,接口中最重要的4根線(xiàn)是數(shù)據(jù)線(xiàn)、地線(xiàn) 、電源線(xiàn)和時(shí)鐘線(xiàn)。在鍵盤(pán)內(nèi)部,有一個(gè)專(zhuān)門(mén)負(fù)責(zé)掃描按鍵的處理器,它能檢測(cè)出某個(gè)鍵被按下或者按下后被釋放,并根據(jù)按鍵的類(lèi)型產(chǎn)生相應(yīng)的掃描碼。鍵盤(pán)發(fā)送的掃描碼有通碼(Make)和斷碼(Break)兩種類(lèi)型。當(dāng)鍵盤(pán)上的一個(gè)鍵被按下時(shí),鍵盤(pán)會(huì)根據(jù)按鍵類(lèi)型產(chǎn)生一段通碼;當(dāng)鍵盤(pán)上的一個(gè)鍵按下后被釋放時(shí),鍵盤(pán)會(huì)根據(jù)按鍵類(lèi)型再產(chǎn)生一段斷碼。此處理器為每個(gè)按鍵分配了唯一的通碼和斷碼,這樣主機(jī)通過(guò)查找唯一的掃描碼就可以測(cè)定是哪個(gè)鍵被按下或釋放。具體方法是啟動(dòng)QuartusⅡ,建立一個(gè)名為ps2_keyboard.qpf的工程,選擇器件,創(chuàng)建文本文件并編寫(xiě)代碼,以接收來(lái)自鍵盤(pán)的掃描碼,要求對(duì)不同的按鍵做出響應(yīng),為器件進(jìn)行輸入輸出管腳分配,完成后對(duì)工程進(jìn)行編譯。
如圖2所示,鍵盤(pán)總是產(chǎn)生時(shí)鐘信號(hào),從鍵盤(pán)發(fā)送到主機(jī)的數(shù)據(jù)在時(shí)鐘信號(hào)的下降沿被讀取。鍵盤(pán)的掃描碼發(fā)送給FPGA,這些掃描碼包含在鍵盤(pán)發(fā)送給主機(jī)的數(shù)據(jù)幀中。每個(gè)數(shù)據(jù)幀包括1位起始位(總是低電平)、8位數(shù)據(jù)位(即掃描碼,從低位開(kāi)始發(fā)送)、1位奇偶校驗(yàn)位(奇校驗(yàn))和1位結(jié)束位(總是高電平)。
2.3 傳感器
點(diǎn)滴速度檢測(cè)采用在茂菲氏滴管的中部外側(cè)安裝一個(gè)光纖傳感器。因?yàn)楣怆妭鞲衅鞯募t外接收管很容易受到外界光線(xiàn)的干擾,并且它的直徑一般在2 mm以上,體積較大,安裝不方便。光纖傳感器測(cè)量端口面積小,可以做到直徑1 mm以?xún)?nèi),藥液點(diǎn)滴時(shí)分辨率高。液滴經(jīng)過(guò)時(shí)利用液滴對(duì)光線(xiàn)的“遮擋”使光纖接收管的接收的光束發(fā)生變化,再經(jīng)過(guò)電路處理得到點(diǎn)滴的速度脈沖,再將這種速度脈沖采集信息發(fā)送給控制器。為了防止輸液速度過(guò)快而產(chǎn)生點(diǎn)滴連續(xù)流,設(shè)計(jì)了上下分別安裝兩個(gè)檢測(cè)光纖,從而避免了少計(jì)脈沖數(shù)而產(chǎn)生錯(cuò)誤的處理結(jié)果。如圖3所示,電路X為光纖輸出電壓波形,Y為光纖輸出電壓波形。一般情況下,點(diǎn)滴離散時(shí)只有X計(jì)數(shù),點(diǎn)滴連續(xù)時(shí)XY同時(shí)計(jì)數(shù),這種方法既安全又穩(wěn)定可靠。點(diǎn)滴離散時(shí),XY只有一個(gè)高電平,或門(mén)C1產(chǎn)生的信號(hào)作為D鎖存器Q1的控制端只允許X產(chǎn)生的正脈沖通過(guò),而D鎖存器Q2因?yàn)镃1作用時(shí)Y信號(hào)尚在低電平,信號(hào)被屏蔽,Q2輸出低電平,門(mén)電路在計(jì)數(shù)器中作加法運(yùn)算。點(diǎn)滴連續(xù)時(shí)XY同時(shí)輸出高電平,D鎖存器Q2也在計(jì)數(shù)。OUT0是輸出,OUT1是進(jìn)位,Z是控制端輸入。
余液體積檢測(cè)采用直線(xiàn)式容柵傳感器,安裝位置如圖4所示。固定容柵安裝在輸液系統(tǒng)底座上,滑動(dòng)容柵安裝在輸液系統(tǒng)步進(jìn)電機(jī)帶動(dòng)的絲杠的螺絲母上,絲杠轉(zhuǎn)動(dòng)使螺母產(chǎn)生水平移動(dòng),測(cè)量原理如同游標(biāo)卡尺,這種傳感器響應(yīng)速度快、量程可以達(dá)到1 m,誤差小于0.01 mm[7]。余液體積檢測(cè)通過(guò)滑動(dòng)容柵移動(dòng)的距離乘以容器室的截面積而得出。
2.4 執(zhí)行機(jī)構(gòu)
輸液速度控制采用的控制機(jī)構(gòu)由步進(jìn)電機(jī)、絲杠、螺絲母、壓縮支架、容器室組成。步進(jìn)電機(jī)在FPGA的控制下進(jìn)行正反轉(zhuǎn)動(dòng),絲杠轉(zhuǎn)動(dòng)使螺母產(chǎn)生水平移動(dòng),壓縮支架安裝在螺絲上,壓縮架壓縮容器室,藥液包因容器室體積變小而收縮,藥液從輸液管輸出,通過(guò)調(diào)整步進(jìn)電機(jī)的步進(jìn)速度,達(dá)到控制輸液速度的目的。
2.5 語(yǔ)音通信
立體聲CODEC芯片WM8731是一個(gè)高性能、低功耗的24位音頻立體聲接口,被廣泛應(yīng)用于各種便攜式音樂(lè)播放器中。該芯片可以分別設(shè)置音頻ADC和DAC的采樣率,包含microphone-in、line-in和line-out接口,WM8731用I2C接口與FPGA連接。
語(yǔ)音發(fā)送接收要有一個(gè)合適的波段,本文選定為15.6 MHz。讓軟件生成一個(gè)鎖相環(huán)變頻模塊,AUDIO_DAC_ADC.v需要一個(gè)15.6 MHz的時(shí)鐘,調(diào)用FPGA上的鎖相環(huán)(PLL)資源,讓軟件生成這個(gè)模塊的.v文件,然后在de2_top.v中添加這個(gè)模塊。
添加AUDIO_DAC_ADC模塊過(guò)程為:
reg signed [15:0] audio_outR;
wire signed [15:0] audio_outL;
wire signed [15:0] audio_inL, audio_inR;
AUDIO_DAC_ADC u2 (//Audio Side
.oAUD_BCK(AUD_BCLK),
.oAUD_DATA(AUD_DACDAT),
.oAUD_LRCK(AUD_DACLRCK),
.oAUD_inL(audio_inL),/audio left data from ADC
.oAUD_inR(audio_inR),//audio right data from ADC
.iAUD_ADCDAT(AUD_ADCDAT),
.iAUD_extL(audio_outL),//audio left data to DAC
iAUD_extR(audio_outR),//audio right data to DAC
//Control Signals
.iCLK_15_6(AUD_CTRL_CLK),
.iRST_N(1′b1));
2.6 液晶顯示控制
顯示器選用唯信諾公司提供的OLED有機(jī)發(fā)光顯示器,分辨率160×128,6.5K色,用16位并行數(shù)據(jù)總線(xiàn)與FPGA相連。OLED的控制芯片為L(zhǎng)GDP4216,OLED供電電壓10 V~21 V,接口供電電壓2.2 V~3.3 V。顯示區(qū)域大小可變,最大160(RGB)×128行,刷新率有7種,默認(rèn)90 Hz。
2.7 RS232數(shù)據(jù)傳送與報(bào)警
使用MAX3232電平轉(zhuǎn)換芯片和9針D型連接器進(jìn)行串口通信。由于系統(tǒng)是3.3 V供電,因此需要使用MAX3232進(jìn)行電平轉(zhuǎn)換。MAX3232是3.3 V工作電源的RS232轉(zhuǎn)換芯片。護(hù)士室MAX3232適配器端口裝有三個(gè)LED燈分別用來(lái)顯示執(zhí)行狀態(tài)、數(shù)據(jù)傳送、報(bào)警。串口直接連接到CyclII FPGA上。MAX3232芯片包含兩組收發(fā)器,最大數(shù)據(jù)傳輸率250 kb/s。報(bào)警功能主要是在護(hù)士室顯示,綁定在傳輸模塊上,當(dāng)余液控制達(dá)到下限時(shí)發(fā)生報(bào)警。
3 軟件設(shè)計(jì)
輸液控制主程序主要由初始化模塊和各功能模塊組成,如圖5所示。初始化模塊主要完成對(duì)通信、中斷、定時(shí)的初始狀態(tài)設(shè)置。初態(tài)時(shí),RS232通信端口設(shè)置為接收狀態(tài),波特率設(shè)置為19 200 b/s;各功能模塊包含鍵盤(pán)控制、點(diǎn)滴速度檢測(cè)、步進(jìn)電機(jī)控制、數(shù)據(jù)顯示、語(yǔ)音通信及報(bào)警等。
本系統(tǒng)廣泛吸取了同類(lèi)系統(tǒng)的優(yōu)點(diǎn),采用的測(cè)試方法、控制方法具有安全方便、節(jié)能、可靠等特點(diǎn)。本系統(tǒng)采用Cycl-one II的FPGA進(jìn)行開(kāi)發(fā),其鍵盤(pán)操作方便快捷,LCD顯示一目了然,語(yǔ)音通信及報(bào)警功能提高了醫(yī)患人員的安全感。本系統(tǒng)充分利用了鍵盤(pán)PIO、LCD顯示、ADC和DAC音頻接口、RS232串行通信口等,縮短了系統(tǒng)的開(kāi)發(fā)周期,降低了系統(tǒng)的開(kāi)發(fā)成本。通過(guò)實(shí)驗(yàn)測(cè)試,系統(tǒng)各檢測(cè)傳感器、控制執(zhí)行機(jī)構(gòu)、顯示、報(bào)警等功能正常,性能達(dá)到了設(shè)計(jì)要求。
參考文獻(xiàn)
[1] 蔣廷松.基于A(yíng)T89C52的多功能輸液監(jiān)控系統(tǒng)的設(shè)計(jì)[J]. 微計(jì)算機(jī)信息,2008,25(2):34-36.
[2] 李蕾, 張曉蓉, 莊匯文.一種輸液檢測(cè)報(bào)警裝置的研制[J]. 醫(yī)療設(shè)備信息, 2003,18(3):14-15.
[3] 張益清, 張陽(yáng), 呂大偉.病人輸液微機(jī)監(jiān)控系統(tǒng)[J].計(jì)量技術(shù), 1995,39(7):16-18.
[4] 張益清, 呂大偉, 張陽(yáng),等.病人輸液情況微機(jī)監(jiān)控集中顯示儀[J].自動(dòng)化與儀器儀表, 1995,15(4):12-15.
[5] 張益清, 呂大偉, 張陽(yáng),等.可用于病人輸液情況自動(dòng)監(jiān)測(cè)和液滴監(jiān)視系統(tǒng)[J].測(cè)控技術(shù), 1995,14(14):27-28.
[6] Cycl-one II EP2C35F672C6[EB/OL].[2010-04-20].www.parts.digikey.ca/1/3/cyclone-ii-ep2c35f672c6-fpga.
[7] 梁森.自動(dòng)監(jiān)測(cè)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2006:132-134.