趙 凱,舒明雷,劉照陽(yáng),高天雷,金中一
(1.齊魯工業(yè)大學(xué)電氣工程與自動(dòng)化學(xué)院,山東 濟(jì)南 250353;2.山東省計(jì)算中心(國(guó)家超級(jí)計(jì)算濟(jì)南中心)山東省計(jì)算機(jī)網(wǎng)絡(luò)重點(diǎn)實(shí)驗(yàn)室,山東 濟(jì)南 250014)
蠕動(dòng)泵是一種微型水泵,主要用于控制流體的傳輸方向和流速[1]。泵管在工作中被壓輪壓緊并隨之移動(dòng)。隨著壓輪移動(dòng),未被轉(zhuǎn)輪壓緊的泵管回彈,泵管內(nèi)的流體在此過(guò)程中會(huì)被推出,從而實(shí)現(xiàn)流體的泵送。由于流體只接觸泵管而不接觸泵體,故蠕動(dòng)泵適于輸送腐蝕性強(qiáng)及相對(duì)敏感的流體。其自吸能力好,能空轉(zhuǎn)并可防止回流,因而得到廣泛的應(yīng)用。因此,如何靈活、有效地控制蠕動(dòng)泵變得越來(lái)越重要。
目前,實(shí)際生產(chǎn)中對(duì)于蠕動(dòng)泵的控制,多采用正負(fù)極對(duì)調(diào)的方式實(shí)現(xiàn)正反方向的改變,并通過(guò)特定流量大小的蠕動(dòng)泵控制流量大小,控制方式簡(jiǎn)單,但不夠靈活。
本設(shè)計(jì)充分利用了蠕動(dòng)泵精度高、維護(hù)簡(jiǎn)單的特性,采用串口發(fā)送指令程序控制的方式,實(shí)現(xiàn)對(duì)流體方向及流量大小的實(shí)時(shí)控制;同時(shí),方便在不同的環(huán)境下的擴(kuò)展開(kāi)發(fā),控制方式靈活、有效。
蠕動(dòng)泵的構(gòu)造并不復(fù)雜。蠕動(dòng)泵頭分為轉(zhuǎn)子和泵殼兩部分[2]。泵管置于泵殼與轉(zhuǎn)子之間,每?jī)蓚€(gè)轉(zhuǎn)輪之間的距離讓泵管形成了一個(gè)封閉空間,稱(chēng)之為泵室。其容積大小與輪距、泵管內(nèi)徑大小及轉(zhuǎn)輪直徑有關(guān)。理論上,流體流量是泵速、泵室容積和360°內(nèi)泵室數(shù)量這三者的乘積。
對(duì)特定蠕動(dòng)泵而言,其每轉(zhuǎn)一圈產(chǎn)生的流體量是固定的,所以能夠通過(guò)調(diào)節(jié)泵的轉(zhuǎn)速實(shí)現(xiàn)改變流量的大小。本文設(shè)計(jì)的蠕動(dòng)泵內(nèi)置直流電機(jī)。直流電機(jī)是常見(jiàn)的一種電機(jī),具有良好的起動(dòng)、制動(dòng)性能,可在大范圍內(nèi)實(shí)現(xiàn)平滑調(diào)速,在需要調(diào)速或轉(zhuǎn)向的電力拖動(dòng)領(lǐng)域,其得到了廣泛的應(yīng)用。因此,對(duì)于蠕動(dòng)泵流量的控制,等同于對(duì)直流電機(jī)轉(zhuǎn)速的控制。
MSP430 FR5969單片機(jī)是一款低功耗的嵌入式混合信號(hào)微控制器,在計(jì)量、能量采集傳感器節(jié)點(diǎn)及可穿戴電子產(chǎn)品中有著廣泛的應(yīng)用。該單片機(jī)采用時(shí)鐘頻率高達(dá)16 MHz的16位精簡(jiǎn)指令集計(jì)算機(jī)架構(gòu),非易失性存儲(chǔ)器高達(dá)64 KB,智能數(shù)字外設(shè)包括32位硬件乘法器、3通道內(nèi)部直接存儲(chǔ)器存取(direct memory access,DMA)、12 位 模 數(shù) 轉(zhuǎn) 換 器 (analog-to-digital converter,ADC)和5個(gè)16位定時(shí)器等。其中,每個(gè)定時(shí)器具有多達(dá)7個(gè)捕捉比較寄存器[3]。蠕動(dòng)泵控制系統(tǒng)設(shè)計(jì)框圖如圖1所示。
圖1 控制系統(tǒng)設(shè)計(jì)框圖Fig.1 Design block diagram of control system
直流電機(jī)的轉(zhuǎn)速控制大多數(shù)采用按鍵式。本設(shè)計(jì)采用串口控制的方式,其目的主要是為上位機(jī)提供程序調(diào)用接口,以便后續(xù)上位機(jī)控制軟件應(yīng)用(application,APP)的開(kāi)發(fā),可擴(kuò)展為藍(lán)牙、WiFi等無(wú)線(xiàn)控制方式。直流電機(jī)的控制,采用較為常用且成熟的專(zhuān)用控制芯片L298N。其應(yīng)用廣泛、成本較低。測(cè)速部分采用光電開(kāi)關(guān),通過(guò)單片機(jī)定時(shí)器的捕獲模式測(cè)定電機(jī)轉(zhuǎn)速,由流量計(jì)算公式換算成實(shí)時(shí)流量[4]。
轉(zhuǎn)子從位置A運(yùn)動(dòng)到位置B,輸送的流體體積約為圓弧AB段泵管內(nèi)的流體體積大?。?],即:
式中:D為泵殼圓周節(jié)圓直徑;d為泵管直徑;Δq為圓弧AB段內(nèi)流體的體積;θ為轉(zhuǎn)子轉(zhuǎn)動(dòng)的角度;δ為泵管壁厚。
蠕動(dòng)泵轉(zhuǎn)子轉(zhuǎn)動(dòng)一圈輸送的流量為:
式中:q為蠕動(dòng)泵的排量。
則蠕動(dòng)泵的流量為:
式中:Q為蠕動(dòng)泵的流量;v為蠕動(dòng)泵的轉(zhuǎn)速。
蠕動(dòng)泵流量計(jì)算圖解如圖2所示。
圖2 蠕動(dòng)泵流量計(jì)算圖解Fig.2 Flow calculation graphic of peristaltic pump
由圖2可知,蠕動(dòng)泵流量只與轉(zhuǎn)速、泵管內(nèi)徑及泵殼圓周節(jié)圓直徑相關(guān)。本文設(shè)計(jì)的蠕動(dòng)泵,基于串口控制最終實(shí)現(xiàn)的功能如下:
①正反兩個(gè)反向輸送流體;
②實(shí)時(shí)控制流量的增大和減小;
③串口顯示實(shí)時(shí)電機(jī)轉(zhuǎn)速及流量大小;
④定速、定量的檔位設(shè)置;
⑤可隨時(shí)停止運(yùn)行。
本設(shè)計(jì)采用型號(hào)為NKP-DC-S06 S kamoer微型泵(硅膠管),其性?xún)r(jià)比高、精致精巧。電機(jī)長(zhǎng)度為48.5 mm,整機(jī)長(zhǎng)度為 65 mm,環(huán)境噪聲實(shí)測(cè)值≤40 dB,流速范圍為5.2~90 mL/min。蠕動(dòng)泵的管內(nèi)徑為2.0 mm,泵殼圓周節(jié)圓直徑約為18.0 mm。
H橋驅(qū)動(dòng)電路是由達(dá)林頓管組成的H型PWM電路構(gòu)成的,工作制為單極性。本設(shè)計(jì)采用單片機(jī)對(duì)達(dá)林頓管進(jìn)行控制,使它工作于占空比可調(diào)的開(kāi)關(guān)狀態(tài),實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的精確控制。單片機(jī)控制端口一端輸出脈沖寬度調(diào)制(pulse width modulation,PWM)信號(hào),另一端置低電平,兩端口的輸出狀態(tài)及PWM信號(hào)的占空比決定電機(jī)的轉(zhuǎn)速及轉(zhuǎn)向。H橋驅(qū)動(dòng)電路如圖3所示。
圖3 H橋驅(qū)動(dòng)電路Fig.3 H bridge drive circuit
主控芯片為L(zhǎng)298N,引腳IN1、IN2和ENA分別是極性控制端口、使能控制端口,分別接至單片機(jī)的P1.3、P1.4和 P1.5引腳,1PIN 和 2PIN 為連接蠕動(dòng)泵直流電機(jī)兩極的端口。
CH340T以USB為總線(xiàn)的轉(zhuǎn)接芯片,能夠?qū)崿F(xiàn)USB轉(zhuǎn)打印口、USB轉(zhuǎn)串口或USB轉(zhuǎn)IrDA紅外[6]。在串口方式下,其可以提供MODEM聯(lián)絡(luò)信號(hào),實(shí)現(xiàn)計(jì)算機(jī)擴(kuò)展異步串口或者升級(jí)普通的串口設(shè)備為USB總線(xiàn)。
本設(shè)計(jì)中,CH340T作為USB轉(zhuǎn)TTL的模塊,起到連接上位機(jī)與單片機(jī)(下位機(jī))的橋梁作用。其TXD和RXD端口分別接至單片機(jī)的RXD和TXD端口,實(shí)現(xiàn)上位機(jī)與單片機(jī)的串口通信,達(dá)到指令發(fā)送與串口顯示接收的目的。
轉(zhuǎn)速檢測(cè)采用紅外光電傳感器,即一個(gè)光電開(kāi)關(guān)。它具有體積小、功能多、壽命長(zhǎng)、精度高、響應(yīng)速度快以及抗干擾能力強(qiáng)等優(yōu)點(diǎn)。測(cè)速電路如圖4所示。
圖4 測(cè)速電路Fig.4 Speed measuring circuit
測(cè)速電路由接收管和紅外發(fā)射管構(gòu)成。它們被分別固定于電機(jī)葉片的兩側(cè)位置。當(dāng)電機(jī)轉(zhuǎn)動(dòng)時(shí),由于葉片遮擋,使得紅外接收管產(chǎn)生多個(gè)連續(xù)脈沖。脈沖的個(gè)數(shù)取決于電機(jī)葉片數(shù)量。LM358的輸出作為脈沖輸出端,與單片機(jī)的P1.2端口相連。
本設(shè)計(jì)共需12 V、5 V、3.3 V三種幅值的電壓。12 V為蠕動(dòng)泵的工作電壓,5 V為直流電機(jī)驅(qū)動(dòng)模塊L298N的工作電壓,3.3 V為主控芯片的工作電壓。整體系統(tǒng)分為主控模塊、L298N驅(qū)動(dòng)模塊、CH430T串口模塊及測(cè)速模塊。由于電路圖設(shè)計(jì)的模塊化,控制系統(tǒng)總原理圖的設(shè)計(jì)采用了層次原理圖的設(shè)計(jì)思想,表述清晰,易于查看。
根據(jù)硬件部分的模塊化設(shè)計(jì),本設(shè)計(jì)軟件部分同樣采用模塊化的編程思想,分別為電機(jī)控制模塊、通用異步接收發(fā)射機(jī)(universal asynchronous receiver transmitter,UART)模塊、測(cè)速模塊及主程序;集成開(kāi)發(fā)環(huán)境為IAR Embedded For MSP430 V6.4,系統(tǒng)上位機(jī)通過(guò)單片機(jī)的UART通信方式,采用相應(yīng)的通信協(xié)議,由不同的指令實(shí)現(xiàn)對(duì)電機(jī)的運(yùn)動(dòng)控制;采用光電模塊進(jìn)行速度追蹤,同時(shí),串口實(shí)時(shí)顯示控制狀態(tài)信息。系統(tǒng)整體軟件流程如圖5所示。
圖5 系統(tǒng)整體軟件流程圖Fig.5 Flowchart of overall system software
本設(shè)計(jì)基于PWM法控制直流電機(jī)的轉(zhuǎn)速,分別采用了延時(shí)方式和基于單片機(jī)的定時(shí)器輸出PWM波控制方式。延時(shí)方式主要是指L298N驅(qū)動(dòng)模塊的使能端ENA端口采用延時(shí)的方式來(lái)決定高低電平的時(shí)間長(zhǎng)短,從而達(dá)到控速的目的。
由于延時(shí)的方式存在較大的誤差,且不易靈活擴(kuò)展,本設(shè)計(jì)最終采用了單片機(jī)定時(shí)器輸出占空比可變的PWM波控制方式,即單片機(jī)的P1.5端口輸出PWM波。這里選用的是定時(shí)器TB0。
本設(shè)計(jì)采用了簡(jiǎn)單的串口協(xié)議[7],如下所示。
“0x0A”:電機(jī)正轉(zhuǎn)(蠕動(dòng)泵正向傳送)。
“0x0B”:電機(jī)反轉(zhuǎn)(蠕動(dòng)泵反向傳送)。
“0x0C”:電機(jī)加速(蠕動(dòng)泵流量增大)。
“0x0D”:電機(jī)減速(蠕動(dòng)泵流量減小)。
“0x0E”:電機(jī)停止(蠕動(dòng)泵停止工作)。
“0x01”:1檔位,電機(jī)轉(zhuǎn)速約為50 r/min,蠕動(dòng)泵流量約為 2.85 mL/min。
“0x02”:2檔位,電機(jī)轉(zhuǎn)速約為700 r/min,蠕動(dòng)泵流量約為 39.90 mL/min。
“0x03”:3檔位,電機(jī)最大轉(zhuǎn)約為1 050 r/min,蠕動(dòng)泵最大流量約為59.85 mL/min。
串口采用串口中斷實(shí)現(xiàn)指令的發(fā)送,在本設(shè)計(jì)中的優(yōu)先級(jí)最高。系統(tǒng)根據(jù)指令內(nèi)容進(jìn)入不同的子函數(shù),執(zhí)行相應(yīng)的運(yùn)行過(guò)程。
本設(shè)計(jì)測(cè)速采用光電開(kāi)關(guān)及20孔碼盤(pán)。當(dāng)碼盤(pán)遮擋光電對(duì)管,測(cè)速模塊輸出+5 V高電平;反之,輸出低電平。電機(jī)轉(zhuǎn)軸帶動(dòng)碼盤(pán)運(yùn)動(dòng)就形成了脈沖輸出,對(duì)電機(jī)速度的測(cè)量就是對(duì)脈沖頻率的測(cè)量。本設(shè)計(jì)利用MSP430 FR5969單片機(jī)定時(shí)器的捕獲模式及定時(shí)功能,無(wú)需其他復(fù)雜的外圍電路。按照計(jì)時(shí)計(jì)頻法原則,如果測(cè)量N個(gè)脈沖所用的時(shí)間是T,那么頻率f的測(cè)量有如下公式:
式中:f為頻率;N為脈沖個(gè)數(shù);T為對(duì)應(yīng)時(shí)間。
對(duì)于脈沖計(jì)數(shù),MSP430 FR5969單片機(jī)TimerA的捕獲模式可以為此所用。通過(guò)設(shè)置CAP=1,選擇定時(shí)器的捕獲功能,其主要用來(lái)記錄與時(shí)間密切相關(guān)的時(shí)間。本設(shè)計(jì)把它自動(dòng)設(shè)置為上升沿捕獲CM=1,其自動(dòng)地將16位計(jì)數(shù)器TAR的數(shù)值賦給TACCRx寄存器,以便后續(xù)程序的調(diào)用。TimerA包含三個(gè)捕獲/比較模塊。其中,捕獲模塊的輸入為CCIxA,分別與外部的 P1.1/TA0、P1.2/TA1和 P1.3/TA2對(duì)應(yīng)。本設(shè)計(jì)選擇P1.2端口為單片機(jī)的捕獲脈沖輸入口,同時(shí)配合使用中斷,利用TAIFG的TA0IV中斷向量,每記錄到一次上升沿程序即進(jìn)入一次中斷。為了降低功耗,采用外部低頻晶體振蕩器XT1,即ACLK=32 768 Hz。
本設(shè)計(jì)以2 s為時(shí)間閾值,即記錄2 s內(nèi)上升沿的個(gè)數(shù)N及時(shí)間T。2 s由定時(shí)器定時(shí)中斷產(chǎn)生,定時(shí)器從0計(jì)數(shù)到最大值65 535將會(huì)置位標(biāo)志寄存器TAIFG,從而生成中斷請(qǐng)求。這里采用片外低頻振蕩器。由其頻率32 768 Hz可知,定時(shí)器的16位計(jì)數(shù)器TAR每增加一個(gè)計(jì)數(shù)值經(jīng)歷的時(shí)間是所以溢出中斷的時(shí)間間隔為即每經(jīng)過(guò)2 s產(chǎn)生一次溢出中斷。中斷服務(wù)程序中,采用變量pulse來(lái)表示捕獲到的脈沖個(gè)數(shù)N。它在數(shù)值上等同于捕獲到的脈沖上升沿個(gè)數(shù)。時(shí)間T為計(jì)數(shù)器TAR從程序自定義變量cap_first到變量cap_last經(jīng)歷的時(shí)間間隔。其中,第一個(gè)脈沖上升沿到來(lái)的時(shí)間點(diǎn)賦給變量cap_first,然后每個(gè)脈沖上升沿到來(lái)的時(shí)間點(diǎn)賦給變量cap_last,并且實(shí)時(shí)更新,程序中用time表示[8]。則:
式中:pulse為捕獲到的脈沖個(gè)數(shù);time為時(shí)間間隔。
本設(shè)計(jì)主程序包含初始化設(shè)置及串口顯示服務(wù)程序。初始化主要是完成相關(guān)引腳配置,如設(shè)置微控制單元(microcontroller unit,MCU)的 P1.0、P4.6分別為綠色與紅色指示燈等。
本設(shè)計(jì)通過(guò)對(duì)微型蠕動(dòng)泵的控制,基本可以實(shí)現(xiàn)其自由的流量控制。在醫(yī)療[9]、化工、噴碼、試驗(yàn)、食品、環(huán)保、工廠及家庭等領(lǐng)域,與相應(yīng)設(shè)備配套使用,可以實(shí)現(xiàn)液體傳輸、取樣、管道清洗、定量提取及灌溉等功能。
本控制系統(tǒng)設(shè)計(jì)是基于串口實(shí)現(xiàn)的,嚴(yán)格意義上來(lái)說(shuō)是提供了一種設(shè)計(jì)思路。該系統(tǒng)實(shí)現(xiàn)了無(wú)線(xiàn)及遠(yuǎn)程控制,其靈活運(yùn)用離不開(kāi)上位機(jī)軟件的開(kāi)發(fā)。在一般的應(yīng)用中,將串口控制改為按鍵控制、增加LCD顯示模塊取代串口顯示、增加被控制蠕動(dòng)泵的數(shù)量都會(huì)增強(qiáng)系統(tǒng)應(yīng)用的靈活性。該系統(tǒng)的研究和設(shè)計(jì)有著較為實(shí)際的工程應(yīng)用意義。