基于FPGA控制的輸液系統設計
目前,醫院輸液現場(chǎng)一般是人工控制和監視,但輸液速度和輸液量是一個(gè)很難準確把握的值,護士通過(guò)轉動(dòng)輸液器上的手動(dòng)輪來(lái)控制輸液速度,并通過(guò)肉眼觀(guān)察估計速度,而且輸液過(guò)程中,醫護人員一般不能全程陪護,會(huì )給病人和醫務(wù)人員帶來(lái)許多安全隱患和不便[1-5]。本文設計了一種集輸液控制、顯示、報警、語(yǔ)音通信等多種功能的輸液控制系統。
本文引用地址:http://dyxdggzs.com/article/201706/352989.htm1 系統總體設計
輸液監控系統原理如圖1所示,包括FPGA控制器、點(diǎn)滴速度檢測、余液體積檢測、執行機構、鍵盤(pán)控制、LCD顯示、語(yǔ)音通信(發(fā)送與接收)以及RS232總線(xiàn)轉換等部分。
輸液控制與語(yǔ)音通信是本文的主要研究?jì)热?,也是本系統穩定性和可靠性的根本保證。根據系統要求,設計中以FPGA為控制器,以光纖傳感器和容柵傳感器為檢測機構,以步進(jìn)電機為執行機構。為了安全和方便,利用RS232總線(xiàn)增設了語(yǔ)音通信和輸液完成自動(dòng)報警等功能。
2 硬件部分
2.1 控制器硬件設計
控制器主芯片采用Altera公司的型號為APEX系列的FPGA芯片,芯片型號為 Cyclone II EP2C35F672C6.FPGA芯片采用90 nm的低功耗設計、672-Pin FineLine BGA封裝,內置35個(gè)內嵌18×18乘法器、475個(gè)用戶(hù)管腳、4PLLs、205個(gè)差分通道(比c8高出一倍的主頻,可以達到400 MHz)典型值100萬(wàn)門(mén),最大值約160萬(wàn)門(mén)。主處理器采用Altera公司的32位Nios軟核處理器,與傳統的嵌入式處理器相比,NiosⅡ處理器更加靈活。該芯片具有定制特性,可以根據自身的系統要求、性能要求和成本要求進(jìn)行定制。系統總線(xiàn)采用AVALON總線(xiàn)標準。另外系統具有RS232串行通信口、鍵盤(pán)PIO、LCD顯示等外圍擴展功能,便于系統的進(jìn)一步開(kāi)發(fā),縮短系統的開(kāi)發(fā)周期,降低系統的開(kāi)發(fā)成本[6].
Altera 公司簡(jiǎn)介
Altera 的可編程解決方案幫助系統和半導體公司快速高效的實(shí)現創(chuàng )新,突出產(chǎn)品優(yōu)勢,贏(yíng)得市場(chǎng)競爭。自二十年前發(fā)明世界上第一個(gè)可編程邏輯器件開(kāi)始,Altera 公司 秉承了創(chuàng )新的傳統,是世界上可編程芯片系統 (SOPC) 解決方案倡導者。Altera 公司總部位于美國加州的圣何塞,并在全球的14個(gè)國家中擁有近2000名員工,其2005年度的年收入高達11.23億美元。Altera 將其早在1983年發(fā)明的可編程邏輯技術(shù)與軟件工具、IP 和設計服務(wù)相結合,向全世界近14,000家客戶(hù)提供超值的可編程解決方案。
Altera 一直在可編程系統級芯片,領(lǐng)域中處于前沿和領(lǐng)先的地位,結合帶有軟件工具的可編程邏輯技術(shù)、知識產(chǎn)權 (IP)和技術(shù)服務(wù),在世界范圍內為14,000多個(gè)客戶(hù)提供高質(zhì)量的可編程解決方案。我們新產(chǎn)品系列將可編程邏輯的內在優(yōu)勢 -- 靈活性、產(chǎn)品及時(shí)面市 -- 和更高級性能以及集成化結合在一起,專(zhuān)為滿(mǎn)足當今大范圍的系統需求而開(kāi)發(fā)設計。Altera 可編程解決方案包括:業(yè)內最先進(jìn)的 FPGA、CPLD 和結構化 ASIC 技術(shù) 全面內嵌的軟件開(kāi)發(fā)工具 最佳的 IP 內核可定制嵌入式處理器 現成的開(kāi)發(fā)包 專(zhuān)家設計服務(wù)
2.2 鍵盤(pán)控制
為了操作方便,系統采用鍵盤(pán)操作。設備履行一種雙向同步串行協(xié)議,接口中最重要的4根線(xiàn)是數據線(xiàn)、地線(xiàn)、電源線(xiàn)和時(shí)鐘線(xiàn)。在鍵盤(pán)內部,有一個(gè)專(zhuān)門(mén)負責掃描按鍵的處理器,它能檢測出某個(gè)鍵被按下或者按下后被釋放,并根據按鍵的類(lèi)型產(chǎn)生相應的掃描碼。鍵盤(pán)發(fā)送的掃描碼有通碼(Make)和斷碼(Break)兩種類(lèi)型。當鍵盤(pán)上的一個(gè)鍵被按下時(shí),鍵盤(pán)會(huì )根據按鍵類(lèi)型產(chǎn)生一段通碼;當鍵盤(pán)上的一個(gè)鍵按下后被釋放時(shí),鍵盤(pán)會(huì )根據按鍵類(lèi)型再產(chǎn)生一段斷碼。此處理器為每個(gè)按鍵分配了唯一的通碼和斷碼,這樣主機通過(guò)查找唯一的掃描碼就可以測定是哪個(gè)鍵被按下或釋放。具體方法是啟動(dòng)QuartusⅡ,建立一個(gè)名為ps2_keyboard.qpf的工程,選擇器件,創(chuàng )建文本文件并編寫(xiě)代碼,以接收來(lái)自鍵盤(pán)的掃描碼,要求對不同的按鍵做出響應,為器件進(jìn)行輸入輸出管腳分配,完成后對工程進(jìn)行編譯。
鍵盤(pán)總是產(chǎn)生時(shí)鐘信號,從鍵盤(pán)發(fā)送到主機的數據在時(shí)鐘信號的下降沿被讀取。鍵盤(pán)的掃描碼發(fā)送給FPGA,這些掃描碼包含在鍵盤(pán)發(fā)送給主機的數據幀中。每個(gè)數據幀包括1位起始位(總是低電平)、8位數據位(即掃描碼,從低位開(kāi)始發(fā)送)、1位奇偶校驗位(奇校驗)和1位結束位(總是高電平)。
2.3 傳感器
點(diǎn)滴速度檢測采用在茂菲氏滴管的中部外側安裝一個(gè)光纖傳感器。因為光電傳感器的紅外接收管很容易受到外界光線(xiàn)的干擾,并且它的直徑一般在2 mm以上,體積較大,安裝不方便。光纖傳感器測量端口面積小,可以做到直徑1 mm以?xún)?,藥液點(diǎn)滴時(shí)分辨率高。液滴經(jīng)過(guò)時(shí)利用液滴對光線(xiàn)的遮擋使光纖接收管的接收的光束發(fā)生變化,再經(jīng)過(guò)電路處理得到點(diǎn)滴的速度脈沖,再將這種速度脈沖采集信息發(fā)送給控制器。為了防止輸液速度過(guò)快而產(chǎn)生點(diǎn)滴連續流,設計了上下分別安裝兩個(gè)檢測光纖,從而避免了少計脈沖數而產(chǎn)生錯誤的處理結果。電路X為光纖輸出電壓波形,Y為光纖輸出電壓波形。一般情況下,點(diǎn)滴離散時(shí)只有X計數,點(diǎn)滴連續時(shí)XY同時(shí)計數,這種方法既安全又穩定可靠。點(diǎn)滴離散時(shí),XY只有一個(gè)高電平,或門(mén)C1產(chǎn)生的信號作為D鎖存器Q1的控制端只允許X產(chǎn)生的正脈沖通過(guò),而D鎖存器Q2因為C1作用時(shí)Y信號尚在低電平,信號被屏蔽,Q2輸出低電平,門(mén)電路在計數器中作加法運算。點(diǎn)滴連續時(shí)XY同時(shí)輸出高電平,D鎖存器Q2也在計數。OUT0是輸出,OUT1是進(jìn)位,Z是控制端輸入。
余液體積檢測采用直線(xiàn)式容柵傳感器,固定容柵安裝在輸液系統底座上,滑動(dòng)容柵安裝在輸液系統步進(jìn)電機帶動(dòng)的絲杠的螺絲母上,絲杠轉動(dòng)使螺母產(chǎn)生水平移動(dòng),測量原理如同游標卡尺,這種傳感器響應速度快、量程可以達到1 m,誤差小于0.01 mm[7].余液體積檢測通過(guò)滑動(dòng)容柵移動(dòng)的距離乘以容器室的截面積而得出。
2.4 執行機構
輸液速度控制采用的控制機構由步進(jìn)電機、絲杠、螺絲母、壓縮支架、容器室組成。步進(jìn)電機在FPGA的控制下進(jìn)行正反轉動(dòng),絲杠轉動(dòng)使螺母產(chǎn)生水平移動(dòng),壓縮支架安裝在螺絲上,壓縮架壓縮容器室,藥液包因容器室體積變小而收縮,藥液從輸液管輸出,通過(guò)調整步進(jìn)電機的步進(jìn)速度,達到控制輸液速度的目的。
2.5 語(yǔ)音通信
立體聲CODEC芯片WM8731是一個(gè)高性能、低功耗的24位音頻立體聲接口,被廣泛應用于各種便攜式音樂(lè )播放器中。該芯片可以分別設置音頻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í)鐘,調用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));
顯示器選用唯信諾公司提供的OLED有機發(fā)光顯示器,分辨率160×128,6.5K色,用16位并行數據總線(xiàn)與FPGA相連。OLED的控制芯片為L(cháng)GDP4216,OLED供電電壓10 V~21 V,接口供電電壓2.2 V~3.3 V.顯示區域大小可變,最大160(RGB)×128行,刷新率有7種,默認90 Hz.
2.6 RS232數據傳送與報警
使用MAX3232電平轉換芯片和9針D型連接器進(jìn)行串口通信。由于系統是3.3 V供電,因此需要使用MAX3232進(jìn)行電平轉換。MAX3232是3.3 V工作電源的RS232轉換芯片。護士室MAX3232適配器端口裝有三個(gè)LED燈分別用來(lái)顯示執行狀態(tài)、數據傳送、報警。串口直接連接到CyclII FPGA上。MAX3232芯片包含兩組收發(fā)器,最大數據傳輸率250 kb/s.報警功能主要是在護士室顯示,綁定在傳輸模塊上,當余液控制達到下限時(shí)發(fā)生報警。
3 軟件設計
輸液控制主程序主要由初始化模塊和各功能模塊組成。初始化模塊主要完成對通信、中斷、定時(shí)的初始狀態(tài)設置。初態(tài)時(shí),RS232通信端口設置為接收狀態(tài),波特率設置為19 200 b/s;各功能模塊包含鍵盤(pán)控制、點(diǎn)滴速度檢測、步進(jìn)電機控制、數據顯示、語(yǔ)音通信及報警等。
本系統采用Cycl-one II的FPGA進(jìn)行開(kāi)發(fā),其鍵盤(pán)操作方便快捷,LCD顯示一目了然,語(yǔ)音通信及報警功能提高了醫患人員的安全感。本系統充分利用了鍵盤(pán)PIO、LCD顯示、ADC和DAC音頻接口、RS232串行通信口等,縮短了系統的開(kāi)發(fā)周期,降低了系統的開(kāi)發(fā)成本。通過(guò)實(shí)驗測試,系統各檢測傳感器、控制執行機構、顯示、報警等功能正常,性能達到了設計要求。
評論