王發智
【摘 要】本文介紹了一種由AT89C52單片機控制的輸液裝置系統;提出了單片機控制步進電機的實例,可以通過鍵盤輸入相關數據,并根據需要,實時對步進電機工作方式進行設置,具有實時性和交互性的特點。該系統可以自動控制輸液速度和輸液量,具有報警功能,成本低而功能多,可以廣泛應用于臨床輸液以及藥品分析等場所。
【關鍵詞】控制器局域網線;蠕動泵;步進電機;紅外線
The Control System of Infusion Based on MCU and CAN Bus
WANG Fa-zhi
(Qiqihar University, Qiqihar Heilongjiang 161006,China)
【Abstract】The paper introduced a kind of infusion devices controlled by AT89C52 single-chip microcomputer. A stepping motor control system based on AT89C52 chip microcomputer was described. The data can be input with keyboard, and stepping motor was controlled by these data. According to the demand, users can set the working model of stepping motor in real-time. In the system, speed of infusion and volume of medicinal liquid were controlled automatically. It can give an alarm, its cost is less and function is good. It can be used widely for fusion and analyzing composition of medicines.
【Key words】Controller Area Bus; Peristaltic pump; Stepping motor; Infrared ray
0 引言
靜脈輸液是一種最常用的臨床治療方法,臨床上應根據藥物和患者情況不同配以不同的輸液速度;有些藥輸液速度過快,可能會導致中毒,更嚴重時會導致水腫和心力衰竭;輸液速度過慢則可能發生藥量不夠或者無謂地延長輸液時間,使治療受影響,并給患者和護理工作增加不必要的負擔[1]。常規臨床輸液,普遍采用掛瓶輸液,用眼睛觀察,依靠手動夾子來控制液滴速度,不易精確控制輸液速度,而且護士工作量大。
智能型醫用輸液泵可滿足多種功能的需求。歸納起來,它能實現以下功能:
(1)可精確測量和控制輸液速度;
(2)可精確測定和控制輸液量;
(3)液流線性度好,不產生脈動;
(4)能對氣泡、空液、漏液和輸液管阻塞等異常情況進行報警,并自動切斷輸液通路;
(5)實現智能控制輸液[2]。
1 系統設計方案
1.1 系統硬件設計
紅外振蕩裝置產生紅外脈沖,紅外信號通過液滴池后形成不同的脈沖峰值,經過放大裝置放大,使高、低峰值之間的反差加大,脈沖經過施密特整形后,低峰值脈沖被削減,高峰值脈沖通過,對于可重復觸發單穩電路,當有脈沖來時其處于暫穩態,沒有脈沖時處于穩態。因為有液滴通過時,紅外信號被吸收,產生一次低電平,在單片機中設置下降沿觸發,計算下降沿數目可以得到液滴數目(20滴=1ml)。單片機與CAN總線控制器連接,彼此通訊,從單片機送來的數據,進而控制步進電機,步進電機帶動蠕動泵轉動。根據上述設計思想設計的系統總體原理框圖如圖1所示。
圖1 系統原理框圖
系統的硬件和系統要實現的功能緊密相關,因此先要從系統要達到的功能入手,然后再用硬件實現這些功能。系統需要顯示“滴速”和“瓶量”兩種[3],平時主要是顯示“滴速”,并可以用“ml/min”和“滴/min”兩種方法顯示,當然這兩種方法可以通過鍵盤輸入切換功能來實現。紅外調制發射電路可由555電路實現,紅外接收放大采用紅外接收放大一體的管子,后級只需要把信號整形并變成液滴頻率的信號即可,這里用555, 74LS122或74HC123實現。具體原理如下:紅外脈沖接收管接收并放大紅外信號,在經過施密特觸發器濾除干擾后送給液滴變換電路。接下來是如何去測量滴速。本文利用8253的定時器產生一個固定定時,同時利用8253對液滴計數,當定時器溢出的時候,用單片機把定時器8253計的滴數讀出,再把這個數據轉化為每分鐘的滴速,這樣就完成液滴測量。液滴速度測量的原理實際上是測量在規定時間單穩產生的脈沖數,在GATE0腳加上控制電平來控制規定時間,OUT0輸出產生速度上限控制報警,速度下限則由軟件完成。
系統接口電路設計中包括鍵盤顯示單元設計及報警單元設計,在鍵盤顯示部分采用目前最常用的8279器件,報警電路利用單片機的P1.1和P1.2口控制兩個LED,進行報警顯示。
在鍵盤中設定了如下功能鍵:數字輸入+、數字輸入-、左移、右移、瓶量/速度選擇、清零確認、顯示選擇(ml/min和滴/min)、報警消除、暫停、確認。
鍵盤顯示部分采用 8279專用鍵盤顯示接口電路。按照需要的功能,規劃并設計硬件電路,P2.0為片選地址線,/INT0作為中斷。復位端和單片機的復位端相連。設置10個按鍵,驅動6個LED。單片機系統的晶振為12MHz。考慮到8279直接驅動數碼管的能力不夠,設置了驅動緩沖器74LS244/241。
使用L297+L298做成的兩相雙極性步進電機馬達驅動,采用定電流截波方式驅動,每相電流可達2A,L297是步進馬達控制器,用來產生兩相雙極性驅動信號與馬達截波電流設定,L298是用來驅動步進電機電力輸出,是雙全橋接方式驅動,由于采用雙極性驅動,因此馬達線圈完全利用,使步進電機可以達到最佳的驅動[4]。
由ALE、/WR、/RD組合產生穩定的2MHz脈沖,供給8253。8253三個計數器把它分頻供給L297,L297產生脈沖分配給L298,L298驅動兩相步進電機。步進電機驅動部分電路原理圖如圖2所示。
本設計用硬件產生脈沖分配碼驅動,程序中控制8253的脈沖頻率就可以控制步進電機的轉速,設定好工作速度后,根據這一數值查表對應某一值,利用這一數值在這基礎上系統進行加速或減速,當測量數值和設定小于規定的數時記錄這個脈沖率并停止調速,這就是軟件流程的主要思想。采用AT89C52單片機產生控制信號。單片機內部的RAM和ROM即可滿足要求。在以后的實際運用中,如需擴展較多的外部RAM和ROM時,可加上數據緩沖器。
步進電機控制信號通過AT89C52單片機P1口的P1.0、P1.1、P1.2、P1.3四個口輸出的具有時序的方波經74HC04芯片(為方便輸出,起非門的作用)作為步進電機的控制信號。為了增加步進電機工作的靈活性,在起動步進電機工作之后,當有鍵按下,設置產生外部中斷,達到靈活控制步進電機的目的[5]。
單片機對CAN總線控制芯片SJA1000進行正確初始化后,將要發送的數據通過PC82C250輸出至CAN總線。在硬件電路的設計過程中,為了增強抗干擾能力,SJA1000的TX0和RX0引腳并沒有直接和PCA82C250(CAN總線收發器)的TXD,RXD相連接,而是通過高速光耦6N137后與PCA82C250相連,這樣可以實現總線上各CAN節點之間的電氣隔離。在光耦的使用過程中,一定要注意光耦6N137的兩側必須使用完全獨立的兩組電源Vcc和+5V,否則光耦將起不到任何作用。圖3給出了基于SJA1000的CAN總線接口模塊電路。在PCA82C250與CAN總線的連接部分,可以將CANH和CANL兩個引腳各自通過1個5Ω的電阻與CAN總線相連,這樣可以起到限流的作用,以保護PC82C250免受過流的沖擊。
圖3 基于SJA1000的CAN總線接口電路
驅動器PCA82C250是控制器與物理總線之間的接口,從CAN控制器SJA1000出來的數據流需經過驅動器PCA82C250才可由總線相連,驅動器PCA82C250除加強總線的差動發送和接收功能外,還有如下特點:具有抗瞬間干擾,保護總線傳輸能力,采用斜率控制,降低射頻干擾,過熱保護及總線與電源之間的短路保護,低電流待機模式,未上電節點不會干擾總線,總線可連接110個節點。
1.2 系統軟件設計
軟件采用功能模塊的設計思想方法進行編寫,可增加系統整體可移植性。系統軟件需要的功能模塊主要有:鍵盤模塊、顯示模塊、測量信號模塊、步進電機驅動控制模塊、通訊模塊、報警模塊。這樣分類也和硬件的設置相對應。軟件各模塊的相互連接需要主控模塊對它們進行控制。按照主控模塊的執行順序來工作。這就是整個系統的軟件構建方案。
在系統中要考慮抗干擾設計問題,在硬件方案上已有體現,例如施密特觸發器就是濾除干擾。軟件抗干擾主要是在沒有利用的程序段中加入長跳轉到0000H,使程序出錯后能自動重新歸位。設置自定義的標志寄存器,用來連接各程序模塊相互之間傳送信息。
軟件模塊的相互關系如圖4所示。
圖4 軟件模塊分配圖
2 結論
現代醫療技術的飛速發展和人民重視身體健康程度,要求相應配套的醫療設施和服務提高,輸液作為最為常用的醫學手段,對輸液控制和治療關系也變得越來越密切。
本文的創新點是探討和實現了一種智能型的支持網絡運行的醫用輸液泵系統,采用紅外線間接測量液滴速度,同時利用液滴速度快慢與空瓶、阻塞、漏液、速度失控之間的關系,省去了目前同類輸液設備中采用壓力傳感器測量阻塞和漏液的方法,降低了成本,但是這一功能仍然還存在。
【參考文獻】
[1]陸仲達,何鵬,徐鳳霞.基于電力線載波技術的輸液遠程監測系統[J].微計算機信息,2008,6-2:112-113.
[2]王國輝,等.智能型醫用輸液泵及其應用.物理治療與手術治療[J].2002,3:56-58.
[3]Intel.Interfacing.a MCS-51 Microcontroller to an 82527 CAN Controller[J].2007:103-108.
[4]田建君.單片機控制輸液泵系統設計[J].中小型機電,2004,1(31):53-55.
[5]孟武勝,李亮.基于AT89C52單片機的步進控制系統設計[J].微電機,2007:64-66.
[責任編輯:湯靜]
使用L297+L298做成的兩相雙極性步進電機馬達驅動,采用定電流截波方式驅動,每相電流可達2A,L297是步進馬達控制器,用來產生兩相雙極性驅動信號與馬達截波電流設定,L298是用來驅動步進電機電力輸出,是雙全橋接方式驅動,由于采用雙極性驅動,因此馬達線圈完全利用,使步進電機可以達到最佳的驅動[4]。
由ALE、/WR、/RD組合產生穩定的2MHz脈沖,供給8253。8253三個計數器把它分頻供給L297,L297產生脈沖分配給L298,L298驅動兩相步進電機。步進電機驅動部分電路原理圖如圖2所示。
本設計用硬件產生脈沖分配碼驅動,程序中控制8253的脈沖頻率就可以控制步進電機的轉速,設定好工作速度后,根據這一數值查表對應某一值,利用這一數值在這基礎上系統進行加速或減速,當測量數值和設定小于規定的數時記錄這個脈沖率并停止調速,這就是軟件流程的主要思想。采用AT89C52單片機產生控制信號。單片機內部的RAM和ROM即可滿足要求。在以后的實際運用中,如需擴展較多的外部RAM和ROM時,可加上數據緩沖器。
步進電機控制信號通過AT89C52單片機P1口的P1.0、P1.1、P1.2、P1.3四個口輸出的具有時序的方波經74HC04芯片(為方便輸出,起非門的作用)作為步進電機的控制信號。為了增加步進電機工作的靈活性,在起動步進電機工作之后,當有鍵按下,設置產生外部中斷,達到靈活控制步進電機的目的[5]。
單片機對CAN總線控制芯片SJA1000進行正確初始化后,將要發送的數據通過PC82C250輸出至CAN總線。在硬件電路的設計過程中,為了增強抗干擾能力,SJA1000的TX0和RX0引腳并沒有直接和PCA82C250(CAN總線收發器)的TXD,RXD相連接,而是通過高速光耦6N137后與PCA82C250相連,這樣可以實現總線上各CAN節點之間的電氣隔離。在光耦的使用過程中,一定要注意光耦6N137的兩側必須使用完全獨立的兩組電源Vcc和+5V,否則光耦將起不到任何作用。圖3給出了基于SJA1000的CAN總線接口模塊電路。在PCA82C250與CAN總線的連接部分,可以將CANH和CANL兩個引腳各自通過1個5Ω的電阻與CAN總線相連,這樣可以起到限流的作用,以保護PC82C250免受過流的沖擊。
圖3 基于SJA1000的CAN總線接口電路
驅動器PCA82C250是控制器與物理總線之間的接口,從CAN控制器SJA1000出來的數據流需經過驅動器PCA82C250才可由總線相連,驅動器PCA82C250除加強總線的差動發送和接收功能外,還有如下特點:具有抗瞬間干擾,保護總線傳輸能力,采用斜率控制,降低射頻干擾,過熱保護及總線與電源之間的短路保護,低電流待機模式,未上電節點不會干擾總線,總線可連接110個節點。
1.2 系統軟件設計
軟件采用功能模塊的設計思想方法進行編寫,可增加系統整體可移植性。系統軟件需要的功能模塊主要有:鍵盤模塊、顯示模塊、測量信號模塊、步進電機驅動控制模塊、通訊模塊、報警模塊。這樣分類也和硬件的設置相對應。軟件各模塊的相互連接需要主控模塊對它們進行控制。按照主控模塊的執行順序來工作。這就是整個系統的軟件構建方案。
在系統中要考慮抗干擾設計問題,在硬件方案上已有體現,例如施密特觸發器就是濾除干擾。軟件抗干擾主要是在沒有利用的程序段中加入長跳轉到0000H,使程序出錯后能自動重新歸位。設置自定義的標志寄存器,用來連接各程序模塊相互之間傳送信息。
軟件模塊的相互關系如圖4所示。
圖4 軟件模塊分配圖
2 結論
現代醫療技術的飛速發展和人民重視身體健康程度,要求相應配套的醫療設施和服務提高,輸液作為最為常用的醫學手段,對輸液控制和治療關系也變得越來越密切。
本文的創新點是探討和實現了一種智能型的支持網絡運行的醫用輸液泵系統,采用紅外線間接測量液滴速度,同時利用液滴速度快慢與空瓶、阻塞、漏液、速度失控之間的關系,省去了目前同類輸液設備中采用壓力傳感器測量阻塞和漏液的方法,降低了成本,但是這一功能仍然還存在。
【參考文獻】
[1]陸仲達,何鵬,徐鳳霞.基于電力線載波技術的輸液遠程監測系統[J].微計算機信息,2008,6-2:112-113.
[2]王國輝,等.智能型醫用輸液泵及其應用.物理治療與手術治療[J].2002,3:56-58.
[3]Intel.Interfacing.a MCS-51 Microcontroller to an 82527 CAN Controller[J].2007:103-108.
[4]田建君.單片機控制輸液泵系統設計[J].中小型機電,2004,1(31):53-55.
[5]孟武勝,李亮.基于AT89C52單片機的步進控制系統設計[J].微電機,2007:64-66.
[責任編輯:湯靜]
使用L297+L298做成的兩相雙極性步進電機馬達驅動,采用定電流截波方式驅動,每相電流可達2A,L297是步進馬達控制器,用來產生兩相雙極性驅動信號與馬達截波電流設定,L298是用來驅動步進電機電力輸出,是雙全橋接方式驅動,由于采用雙極性驅動,因此馬達線圈完全利用,使步進電機可以達到最佳的驅動[4]。
由ALE、/WR、/RD組合產生穩定的2MHz脈沖,供給8253。8253三個計數器把它分頻供給L297,L297產生脈沖分配給L298,L298驅動兩相步進電機。步進電機驅動部分電路原理圖如圖2所示。
本設計用硬件產生脈沖分配碼驅動,程序中控制8253的脈沖頻率就可以控制步進電機的轉速,設定好工作速度后,根據這一數值查表對應某一值,利用這一數值在這基礎上系統進行加速或減速,當測量數值和設定小于規定的數時記錄這個脈沖率并停止調速,這就是軟件流程的主要思想。采用AT89C52單片機產生控制信號。單片機內部的RAM和ROM即可滿足要求。在以后的實際運用中,如需擴展較多的外部RAM和ROM時,可加上數據緩沖器。
步進電機控制信號通過AT89C52單片機P1口的P1.0、P1.1、P1.2、P1.3四個口輸出的具有時序的方波經74HC04芯片(為方便輸出,起非門的作用)作為步進電機的控制信號。為了增加步進電機工作的靈活性,在起動步進電機工作之后,當有鍵按下,設置產生外部中斷,達到靈活控制步進電機的目的[5]。
單片機對CAN總線控制芯片SJA1000進行正確初始化后,將要發送的數據通過PC82C250輸出至CAN總線。在硬件電路的設計過程中,為了增強抗干擾能力,SJA1000的TX0和RX0引腳并沒有直接和PCA82C250(CAN總線收發器)的TXD,RXD相連接,而是通過高速光耦6N137后與PCA82C250相連,這樣可以實現總線上各CAN節點之間的電氣隔離。在光耦的使用過程中,一定要注意光耦6N137的兩側必須使用完全獨立的兩組電源Vcc和+5V,否則光耦將起不到任何作用。圖3給出了基于SJA1000的CAN總線接口模塊電路。在PCA82C250與CAN總線的連接部分,可以將CANH和CANL兩個引腳各自通過1個5Ω的電阻與CAN總線相連,這樣可以起到限流的作用,以保護PC82C250免受過流的沖擊。
圖3 基于SJA1000的CAN總線接口電路
驅動器PCA82C250是控制器與物理總線之間的接口,從CAN控制器SJA1000出來的數據流需經過驅動器PCA82C250才可由總線相連,驅動器PCA82C250除加強總線的差動發送和接收功能外,還有如下特點:具有抗瞬間干擾,保護總線傳輸能力,采用斜率控制,降低射頻干擾,過熱保護及總線與電源之間的短路保護,低電流待機模式,未上電節點不會干擾總線,總線可連接110個節點。
1.2 系統軟件設計
軟件采用功能模塊的設計思想方法進行編寫,可增加系統整體可移植性。系統軟件需要的功能模塊主要有:鍵盤模塊、顯示模塊、測量信號模塊、步進電機驅動控制模塊、通訊模塊、報警模塊。這樣分類也和硬件的設置相對應。軟件各模塊的相互連接需要主控模塊對它們進行控制。按照主控模塊的執行順序來工作。這就是整個系統的軟件構建方案。
在系統中要考慮抗干擾設計問題,在硬件方案上已有體現,例如施密特觸發器就是濾除干擾。軟件抗干擾主要是在沒有利用的程序段中加入長跳轉到0000H,使程序出錯后能自動重新歸位。設置自定義的標志寄存器,用來連接各程序模塊相互之間傳送信息。
軟件模塊的相互關系如圖4所示。
圖4 軟件模塊分配圖
2 結論
現代醫療技術的飛速發展和人民重視身體健康程度,要求相應配套的醫療設施和服務提高,輸液作為最為常用的醫學手段,對輸液控制和治療關系也變得越來越密切。
本文的創新點是探討和實現了一種智能型的支持網絡運行的醫用輸液泵系統,采用紅外線間接測量液滴速度,同時利用液滴速度快慢與空瓶、阻塞、漏液、速度失控之間的關系,省去了目前同類輸液設備中采用壓力傳感器測量阻塞和漏液的方法,降低了成本,但是這一功能仍然還存在。
【參考文獻】
[1]陸仲達,何鵬,徐鳳霞.基于電力線載波技術的輸液遠程監測系統[J].微計算機信息,2008,6-2:112-113.
[2]王國輝,等.智能型醫用輸液泵及其應用.物理治療與手術治療[J].2002,3:56-58.
[3]Intel.Interfacing.a MCS-51 Microcontroller to an 82527 CAN Controller[J].2007:103-108.
[4]田建君.單片機控制輸液泵系統設計[J].中小型機電,2004,1(31):53-55.
[5]孟武勝,李亮.基于AT89C52單片機的步進控制系統設計[J].微電機,2007:64-66.
[責任編輯:湯靜]