<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 高壓平流泵控制系統(tǒng)設(shè)計與實(shí)現(xiàn),軟硬件協(xié)同

          高壓平流泵控制系統(tǒng)設(shè)計與實(shí)現(xiàn),軟硬件協(xié)同

          作者: 時間:2017-06-08 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/352420.htm

          1前言

          1.1控制現(xiàn)狀

          是利用電機(jī)驅(qū)動柱塞泵,使液體以穩(wěn)定的流量及壓力輸出的一種設(shè)備,作為分析儀器的動力源,廣泛應(yīng)用于石油、化工、食品、制藥、煤炭、環(huán)保等工業(yè)領(lǐng)域。其主要技術(shù)要求:壓力范圍0~42MPa,流量范圍0.001~9.999mL流量誤差小于0.5%,從技術(shù)參數(shù)可知,如此小流量、高精度、高壓力的流量計較難制造。平流泵又稱恒流泵,要求流速恒定。平流泵流量的設(shè)定,實(shí)質(zhì)上就是改變電機(jī)的轉(zhuǎn)速,所以恒流效果如何主要取決于電機(jī)速度的穩(wěn)定性。

          目前,國內(nèi)生產(chǎn)的恒流泵大多為步進(jìn)電機(jī)驅(qū)動。這種泵成本低,調(diào)試方便,但致命弱點(diǎn)是在低流量下有較大脈動,很難保證恒流效果。這是因?yàn)椴竭M(jìn)電機(jī)是按照一定拍節(jié)和相序運(yùn)行。為了解決這一問題,可借鑒國外儀器,使用直流電機(jī)取代步進(jìn)電機(jī),使恒流泵的性能大為提高[1]。直流電機(jī)具有良好的線性調(diào)速特性,簡單的控制性能,高的效率,優(yōu)異的動態(tài)特性,特別適用于要求調(diào)速的系統(tǒng)。

          現(xiàn)在市場上通用的電機(jī)控制器大多采用單片機(jī)和DSP。但是傳統(tǒng)單片機(jī)的數(shù)據(jù)處理能力有限,對采用復(fù)雜的反饋控制的系統(tǒng),由于需要處理的數(shù)據(jù)量大,實(shí)時性和精度要求高,往往不能滿足設(shè)計要求。近年來出現(xiàn)了各種高速SOC單片機(jī),其性能得到很大提高,價格卻比DSP低很多。其相關(guān)軟件和開發(fā)工具越來越多,功能也越來越強(qiáng),但價格卻在不斷降低?,F(xiàn)在越來越多的廠家開始采用SOC單片機(jī)來提高產(chǎn)品性價比[2]。

          1.2本文主要內(nèi)容

          系統(tǒng)采用技術(shù)閉環(huán)調(diào)節(jié)直流電機(jī)轉(zhuǎn)速,從而精確控制平流泵流量。

          系統(tǒng)對精度要求非常高,流量精度要求小于0.5%。如此高精度需要有高性能控制器來采集調(diào)節(jié)直流電機(jī)轉(zhuǎn)速,PIC32MX460F512L可很好滿足要求,它采樣直流電機(jī)轉(zhuǎn)速,經(jīng)過分析處理,發(fā)送適當(dāng)占空比的信號給電機(jī),從而精確控制直流電機(jī)轉(zhuǎn)速。為提高系統(tǒng)穩(wěn)定性,電機(jī)驅(qū)動采用電機(jī)專用驅(qū)動芯片LMD18200。

          系統(tǒng)提供壓力、電流和熱報警三重保護(hù),以防平流泵損壞。壓力和電流采用PIC32MX460F512L提供的A/D模塊采樣,精度高達(dá)10位[8]。

          為便于人機(jī)交互和調(diào)試系統(tǒng),系統(tǒng)提供了穩(wěn)定可靠的通信功能,通信部分采用光耦隔離,提供RS232通信方式。

          2相關(guān)技術(shù)和原理

          2.1 直流電機(jī)控制方法

          在各類機(jī)電系統(tǒng)中,由于直流電機(jī)具有良好的啟動、制動和調(diào)速性能,直流電機(jī)調(diào)速系統(tǒng)已廣泛運(yùn)用于工業(yè)、航天領(lǐng)域的各個方面。隨著半導(dǎo)體技術(shù)的進(jìn)步,電力電子技術(shù)飛速發(fā)展,使直流電機(jī)的傳動技術(shù)得到改進(jìn),以往普遍采用的三種基本調(diào)速方法,即:(1) 改變電樞回路總電阻;(2)改變電樞的供電電壓;(3) 改變勵磁磁通,發(fā)展為晶閘管相控整流電機(jī)調(diào)壓系統(tǒng),以及全波不控整流——軋波直流電機(jī)調(diào)壓調(diào)速系統(tǒng)[3]。直流電機(jī)脈寬調(diào)制(PWM)直流調(diào)速具有調(diào)速精度高、響應(yīng)速度快、調(diào)速范圍寬和耗損低等特點(diǎn),使之成為直流電機(jī)應(yīng)用的主要調(diào)速方式。

          2.2 PWM直流調(diào)速原理

          PWM控制是對脈沖的寬度進(jìn)行調(diào)制的技術(shù),即通過對一系列脈沖的寬度進(jìn)行調(diào)解,來有效地獲得所需要的波形?;赑WM控制的調(diào)速電路把流電壓“軋”成一系列脈沖,通過改變脈沖的占空比來獲得所需的輸出電壓。在PWM驅(qū)動控制的調(diào)速系統(tǒng)中,通過改變電機(jī)電樞電壓接通時間與通電周期的比值(即占空比)來控制電機(jī)的轉(zhuǎn)速。用脈寬調(diào)制的方法,把恒定的直流電源電壓調(diào)制成頻率一定寬度可變的脈沖電壓序列,從而改變平均輸出電壓的大小,以調(diào)節(jié)電機(jī)轉(zhuǎn)速??梢姡谥绷麟妷合?,當(dāng)調(diào)制脈沖頻率一定時,脈沖寬度與占空比成線性關(guān)系。

          在脈沖作用下,按一個固定的頻率來接通和斷開電源,就能夠?qū)崟r控制電機(jī)的運(yùn)轉(zhuǎn)速度。當(dāng)電機(jī)通電時速度增加;電機(jī)斷電時速度減小。設(shè)電機(jī)直接接通電源時(即占空比為100%),電機(jī)的轉(zhuǎn)速為Vm,設(shè)占空比為D=t/T,則電機(jī)的平均速度為

          (2-1)

          式中:Ve——平均速度;Vm——全速(即直接通電時的速度);D=t/T——占空比(0-100%)。

          由式(2-1)可見,Vm是直流電機(jī)直接通電時的速度(全速),只跟電機(jī)本身的特性相關(guān),電機(jī)一定時,Vm為一個定值。改變占空比D=t/T,就能得到不同的平均速度,從而就能夠?qū)﹄姍C(jī)轉(zhuǎn)速進(jìn)行實(shí)時控制[4]。嚴(yán)格地講,平均速度與占空比D并不是嚴(yán)格的線性關(guān)系,在一般的應(yīng)用中,可將其近似看成線性關(guān)系。

          2.3 H橋型電機(jī)驅(qū)動原理

          圖2-1 H橋PWM驅(qū)動

          常見的PWM驅(qū)動系統(tǒng)的主電路(功率放大器)結(jié)構(gòu)有:H型和T型。這里以H型結(jié)構(gòu)為例說明PWM雙極式驅(qū)動的電路工作原理。

          H橋PWM驅(qū)動如圖2-1,圖中VD1、VD2、VD3、VD4為續(xù)流二極管,用來保護(hù)VT1、VT2、VT3、VT4三極管,Ub1=Ub4=-Ub2=-Ub3

          當(dāng)Ub1=Ub4為正時,VT1和VT4導(dǎo)通,VT2和VT3截止,UAB=Us。

          當(dāng)Ub2=Ub3為正時,VT1和VT4截止,VT2和VT3不能立即導(dǎo)通,因?yàn)殡姍C(jī)的反電勢使AB存在續(xù)流,續(xù)流流經(jīng)VD3和VD2,保護(hù)了四個三極管,若續(xù)流在這個過程沒有得到很大衰減,而Ub1=Ub4為正的階段已經(jīng)來臨,則VT2和VT3一直不能導(dǎo)通;若續(xù)流在這個過程中得到很大衰減,則VT2和VT3導(dǎo)通,UAB=-Us

          顯然,Ub1=Ub4為正的時間和Ub2=Ub3為正的時間相同時,UAB的平均電壓為0,電機(jī)動態(tài)靜止;當(dāng)Ub1=Ub4為正的時間長于Ub2=Ub3為正的時間時,UAB的平均電壓>0,電機(jī)正轉(zhuǎn),UAB的值越大,轉(zhuǎn)速越高;當(dāng)Ub1=Ub4為正的時間短于Ub2=Ub3為正的時間時,UAB的平均電壓0,電機(jī)反轉(zhuǎn),UAB的值越小,轉(zhuǎn)速越高。

          可見,只要控制Ub1、Ub2、Ub3、Ub4的脈沖寬度,就可控制直流電機(jī)的轉(zhuǎn)向和速度,且可以達(dá)到動態(tài)靜止,有利于正反轉(zhuǎn)死區(qū)電壓的消除[3]。

          2.4 電機(jī)驅(qū)動H橋組件LMD18200

          小型機(jī)電一體化產(chǎn)品要求直流電機(jī)的驅(qū)動器既有較小的體積,又能提供較大的電流、電壓輸出。采用達(dá)林頓三級管可搭建H橋?qū)崿F(xiàn)PWM脈寬調(diào)制,但由于分立器件各個元件的特性并不相同,調(diào)速性能并不太好,而且電路不能達(dá)到很高的穩(wěn)定性。相比而言,采用美國國家半導(dǎo)體公司推出的專用于運(yùn)動控制的H橋組件LMD18200具有很大好處。該芯片上集成有CMOS控制電路和DMOS功率器件,峰值輸出電流高達(dá)6A,連續(xù)輸出電流高達(dá)3A,工作電壓高達(dá)55v,還具有熱報警和過熱與短路保護(hù)功能[5][6][7]。

          原理框圖如圖2-2。因?yàn)殡姍C(jī)由LMD18200驅(qū)動,對電機(jī)的控制就是對LMD18200控制,所以這里將詳細(xì)介紹一下該芯片的用法。

          圖2-2 LMD18200原理框圖

          (1) PWM信號類型

          LMD18200可采用兩種不同類型的PWM信號:①類型1 PWM信號中既包含方向信息又包含幅值信息,50%占空比的PWM信號代表零電壓。使用時,該信號應(yīng)加于方向輸入端(腳3),同時將PWM信號輸入端置邏輯高電平。②類型2 分別由方向信號與幅值信號組成。幅值由PWM信號的占空比決定,零脈沖時代表零電壓。在實(shí)際使用時,腳3接方向輸入信號,腳5接PWM信號。

          (2) 電流取樣限流

          每輸出1A電流,腳8輸出377nA取樣電流。接在8腳與地之間的電阻將其轉(zhuǎn)化為電壓信號,該電壓幅值在5-8v之間時,線性度與精度最佳。該端最高電壓為12v。電流取樣電路并不檢測反饋電流,僅檢測橋臂上端晶體管中的電流。

          (3) 溫度報警標(biāo)志

          該端(9腳)為OC門輸出,對多芯片使用可進(jìn)行線與。該端通常接到系統(tǒng)控制器的中斷輸入,以便過熱時對系統(tǒng)采取適當(dāng)措施。該端最高電壓為12v。

          (4) 限流

          LMD18200內(nèi)部含有限流保護(hù)電路,用于檢測器件中的浪涌電流,該電流接近10A時,迅速關(guān)斷功率器件。器件關(guān)斷后,保護(hù)電路周期性試圖開通功率器件。一旦外界短路故障消失,器件就恢復(fù)正常運(yùn)行。由于短路將產(chǎn)生大量熱量,在實(shí)際使用時,LMD18200必須配備面積足夠大的散熱器,同時芯片電源端Vcc(腳6)在上需要1平方英寸的銅箔。

          (5) 工作原理

          LMD18200內(nèi)部集成了4個DMOS管,組成了一個標(biāo)準(zhǔn)的H橋驅(qū)動電路。H橋高側(cè)DMOS功率器件要求其柵極驅(qū)動電壓大于電源正極約8V以上才能導(dǎo)通。為此該集成電路設(shè)置了內(nèi)部充電泵電路,它由一個300kHz振蕩器控制,充電泵電容被充電至14v左右。此柵極驅(qū)動電壓上升時間典型值為20us,適用于工作頻率1kHz左右的情況。如果要求更高的工作頻率,需要外接自舉電容。推薦用兩個10nF的電容器分別接于引腳1、2和引腳10、11之間,使柵極驅(qū)動電壓上升時間在100ns以下,允許開關(guān)頻率高達(dá)500kHz。引腳2、10接直流電機(jī)的電樞兩端,正轉(zhuǎn)時電流的方向應(yīng)該從引腳2到引腳10;反轉(zhuǎn)時電流的方向應(yīng)該是從引腳10到引腳2。電流檢測引腳8可以外接一個對地電阻,通過此電阻來檢測輸出電流的情況。內(nèi)部保護(hù)電路設(shè)置的過電流閾值是10A,當(dāng)超過該值時會自動封鎖輸出,并周期性地自動恢復(fù)輸出。如果過電流持續(xù)的時間過長,過熱保護(hù)將關(guān)閉整個輸出。過熱信號可以通過引腳9輸出,當(dāng)結(jié)溫達(dá)到145度時引腳9有輸出信號。

          1. LMD18200邏輯正值表

          LMD18200邏輯正值表如下(表2-1),通過控制PWM信號,Dir信號和Brake信號可控制驅(qū)動電流,從而控制電機(jī)的轉(zhuǎn)向及啟停。

          表2-1 PWM邏輯正值表

          PWM

          轉(zhuǎn)向

          剎車

          實(shí)際輸出驅(qū)動電流

          電機(jī)工作狀態(tài)

          H

          H

          L

          流出1、流入2

          正轉(zhuǎn)

          H

          L

          L

          流入1、流出2

          反轉(zhuǎn)

          L

          X

          L

          流出1、流出2

          停止

          H

          H

          H

          流出1、流出2

          停止

          H

          L

          H

          流入1、流入2

          停止

          L

          X

          H

          NONE

          2.5 本設(shè)計中軟件

          2.5.1 Altium Designer Summer 09

          原名protel,從2004年開始更名為protel dxp 而后是新版 Altium Designer 6.0。6.9以后開始了以年份命名

          Altium Designer Summer 09是基于Windows的32位EDA設(shè)計系統(tǒng),集成強(qiáng)大的設(shè)計能力、復(fù)雜工藝的可生產(chǎn)性、設(shè)計過程管理于一體,可完整實(shí)現(xiàn)電子產(chǎn)品從電學(xué)概念設(shè)計到生成物理生產(chǎn)數(shù)據(jù)的全過程。既滿足了產(chǎn)品的高可靠性,又極大縮短了設(shè)計周期,降低了設(shè)計成本。

          Summer 09版本解決了大量歷史遺留的工具問題。其中就包括了增加更多的機(jī)械層設(shè)置、增強(qiáng)的原理圖網(wǎng)絡(luò)類定義。新版本中更關(guān)注于改進(jìn)測試點(diǎn)的分配和管理、精簡嵌入式軟件開發(fā)、軟設(shè)計中智能化調(diào)試和流暢的License管理等功能。

          利用Altium Designer Summer 09設(shè)計電路板的一般流程如下:

          (1) 電路原理圖的設(shè)計。

          (2) 產(chǎn)生網(wǎng)絡(luò)報表。

          (3) 印制電路板的設(shè)計。

          2.5.2 MPLAB IDE

          MPLAB集成開發(fā)環(huán)境(IDE)是一款免費(fèi)的集成工具組合,用來對采用Microchip PIC®和dsPIC®單片機(jī)的嵌入式應(yīng)用進(jìn)行開發(fā)。MPLAB IDE作為32位應(yīng)用程序運(yùn)行在MS Windows®系統(tǒng)上,其使用方便并且包含一系列免費(fèi)軟件可進(jìn)行快速應(yīng)用開發(fā)和強(qiáng)大的調(diào)試。MPLAB IDE也可作為獨(dú)立的統(tǒng)一圖形用戶界面,支持其他Microchip和第三方的軟件及硬件開發(fā)工具。由于MPLAB IDE對所有工具都呈現(xiàn)相同的用戶界面,因此無論是工具之間的切換,還是免費(fèi)軟件模擬器向硬件調(diào)試和編程工具的升級均非常便捷

          MPLAB IDE 提供以下功能:

            • 使用內(nèi)置編輯器創(chuàng)建和編輯源代碼。

            • 匯編、編譯和鏈接源代碼。

            • 通過使用內(nèi)置模擬器觀察程序流程調(diào)試可執(zhí)行邏輯;或者使用MPLAB ICE 2000和 MPLAB ICE 4000 仿真器或MPLAB ICD 2 在線調(diào)試器實(shí)時調(diào)試可執(zhí)行邏輯。

            • 用模擬器或仿真器測量時間。

            • 在觀察窗口中查看變量。

            • 使用 MPLAB ICD 2、PICSTART Plus 或 PRO MATE II 器件編程器燒寫固件。

          • 使用MPLAB IDE 豐富的在線幫助快速找出問題的答案。

          2.5.3 Microsoft Visual C++ 6.0

          Visual C++ Visual C++是一個功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。
          雖然微軟公司推出了Visual C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000,Windows XP和Windows NT4.0。所以實(shí)際中,更多的是以Visual C++6.0為平臺。
          Visual C++6.0不僅是一個C++編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個名為Developer Studio的組件集成為和諧的開發(fā)環(huán)境。

          3需求分析

          3.1系統(tǒng)所需的主要功能

          3.1.1 電機(jī)速度檢測

          可實(shí)時精確檢測電機(jī)轉(zhuǎn)速,以便系統(tǒng)調(diào)速和用戶設(shè)定轉(zhuǎn)速。

          平流泵沖程為2mm,管道直徑為3.175mm,由此可計算出平流泵沖程體積為15.83mm3,平流泵取最大流量10ml/min時,沖程次數(shù)為10*1000/15.83=632次。大齒輪轉(zhuǎn)一圈產(chǎn)生2個沖程,因此最大流量時,大齒輪轉(zhuǎn)速為632/2=316rpm。皮帶傳送的轉(zhuǎn)速比為10:1,電機(jī)轉(zhuǎn)速要求為316*10=3160rpm,因此電機(jī)最高轉(zhuǎn)速應(yīng)選4000rpm以上,這里選擇5000rpm。電機(jī)轉(zhuǎn)速范圍1~5000rpm,轉(zhuǎn)速范圍大,不易精確采樣。

          3.1.2 電機(jī)調(diào)速

          根據(jù)用戶設(shè)置的電機(jī)速度,系統(tǒng)自動調(diào)節(jié)電機(jī)轉(zhuǎn)度,使系統(tǒng)穩(wěn)定工作,以便用戶控制平流泵流量,電機(jī)調(diào)速精度在1.0%范圍內(nèi)。

          3.1.3 電機(jī)保護(hù)功能

          平流泵精度高,電機(jī)質(zhì)量好,應(yīng)提供適當(dāng)措施保護(hù)電機(jī),特別是壓力保護(hù),壓力精度為0.1MPa。

          3.1.4 通信功能

          要求系統(tǒng)具有串口通信功能,以便與用戶交互和調(diào)試系統(tǒng)。

          3.1.5 其他功能

          本系統(tǒng)是平流泵產(chǎn)品的一部分,要求為產(chǎn)品的其他部分提供所需接口,如風(fēng)扇電源接口,壓力檢測接口等。

          3.2 性能需求

          3.2.1 精度需求

          在精度需求上,根據(jù)使用需要:平流流量精確控制,要求電機(jī)速度精確檢測控制,電機(jī)調(diào)速精度在1.0%范圍內(nèi),電機(jī)轉(zhuǎn)速范圍為1~5000rpm。

          3.2.2 時間需求

          電機(jī)保護(hù),電機(jī)速度設(shè)定都要求較高的響應(yīng)時間,特別是電機(jī)保護(hù)。

          3.2.3 接口需求

          (1) 通信接口

          本系統(tǒng)要求提供UART串口接口,最好也嵌入485接口,以方便用戶調(diào)試程序和

          (2) 正交編碼接口

          為了檢測電機(jī)轉(zhuǎn)速,系統(tǒng)應(yīng)提供正交編碼器接口。

          (3) 壓力檢測接口

          為便于檢測平流泵壓力,系統(tǒng)應(yīng)提供壓力檢測接口。

          (4) JTAG接口

          下載調(diào)試程序都要用到JTAG接口。

          3.3 系統(tǒng)目標(biāo)

          (1) 電機(jī)速度精確可控,以保證平流泵流量的高精度。電機(jī)轉(zhuǎn)速范圍1~5000rpm,調(diào)速精度為1.0%。

          (2) 給高壓平流泵提供壓力和電流兩重保護(hù)措施,壓力精度為0.1MPa。

          (3) 人機(jī)良好交互,電機(jī)速度可設(shè)置,以便平流泵流量調(diào)試。

          (4) 高可靠通信功能,以保證與用戶交互順暢。

          4概要設(shè)計

          4.1 綜述

          高壓平流泵是一個嵌入式系統(tǒng),為完成系統(tǒng)所要求的功能,需要軟件硬件協(xié)調(diào)工作。

          控制系統(tǒng)控制器采用PIC32MX460F512L。PIC32MX460F512L基于80MHz, 1.56 DMIPS/MHz, 32-bit MIPS M4K Core設(shè)計的微控制器,它將高性能的32位計算引入到對價格敏感的嵌入式微控制器應(yīng)用中,在提高性能的同時降低了成本。它提供了豐富的外設(shè)接口,足夠滿足該系統(tǒng)的設(shè)計需要,內(nèi)置的PWM模塊可用來控制直流電機(jī),廣泛應(yīng)用于直流電機(jī)控制系統(tǒng),本系統(tǒng)就采用其作為控制核心單元。

          LMD18200作為電機(jī)驅(qū)動芯片,前面已介紹過其性能。硬件電路采用PIC32MX460F512L+LMD18200方案,比分立電路設(shè)計可靠,比單片機(jī)控制系統(tǒng)性能高,是一個不錯的設(shè)計方案。

          硬件可很好的實(shí)現(xiàn)了電機(jī)控制,軟件所要做的就是驅(qū)動硬件和精確采樣,保證平流泵工作的精度。本系統(tǒng)用循環(huán)和中斷機(jī)制控制系統(tǒng),不采用操作系統(tǒng),主要基于以下考慮:

          (1)本系統(tǒng)中任務(wù)較少,主要有測速并控制速度,采樣電流,采樣壓力和協(xié)議處理,PIC32MX460F512L提供了豐富的中斷資源,大部分任務(wù)可通過中斷機(jī)制實(shí)現(xiàn),如測速調(diào)速,采樣電流,采樣壓力。

          (2)操作系統(tǒng)本身要占用存儲空間,任務(wù)調(diào)度和切換需要消耗時間,當(dāng)任務(wù)切換頻繁時所耗時間更多,而操作系統(tǒng)并不能減少中斷時間。

          對重要信息的采集采用中斷方式,減少延遲,提高系統(tǒng)響應(yīng)速度,縮短系統(tǒng)響應(yīng)時間。此外,能用硬件實(shí)現(xiàn)時盡量用硬件實(shí)現(xiàn),以提高系統(tǒng)可靠性和響應(yīng)。

          4.2 硬件設(shè)計

          本系統(tǒng)的硬件設(shè)計總框圖如下:

          圖4-1 硬件系統(tǒng)總框圖

          硬件系統(tǒng)主要分為五個模塊,分別為:電源模塊,MCU模塊,電機(jī)驅(qū)動模塊,通信模塊及其它。

          系統(tǒng)要工作就需要有電源,電源模塊為整個系統(tǒng)提供合適可靠的動力。

          MCU是系統(tǒng)“大腦”,系統(tǒng)要井然有序工作,就需要協(xié)調(diào)各模塊甚至各個器件的工作順序,這個任務(wù)就由MCU來完成。此外,它還是系統(tǒng)的計算中心,各個模塊的信息反饋給它,它經(jīng)過對信息的分析計算,之后再作用于相應(yīng)模塊器件。它通過分析正交編碼器反饋的信息可計算出電機(jī)的速度,并根據(jù)要求值和實(shí)際值來適當(dāng)調(diào)節(jié)電機(jī)轉(zhuǎn)速。它接受串口傳來的用戶命令,經(jīng)過分析可作用于相應(yīng)模塊以達(dá)到用戶的目標(biāo),例如用戶通過串口可向MCU發(fā)送設(shè)定轉(zhuǎn)速命令,MCU經(jīng)過分析通過調(diào)節(jié)PWM信號的占空比作用于電機(jī)驅(qū)動模塊,從而達(dá)到設(shè)置電機(jī)速度的目的。它可接收電機(jī)驅(qū)動模塊反饋的電流及熱報警信息,經(jīng)過分析,可采取適當(dāng)措施作用于電機(jī)驅(qū)動模塊,以實(shí)現(xiàn)電機(jī)的保護(hù)功能。此外,它還實(shí)現(xiàn)了ADC接口可實(shí)現(xiàn)壓力檢測,JTAG接口可實(shí)現(xiàn)程序的下載和調(diào)試。

          電機(jī)驅(qū)動模塊是系統(tǒng)的主要工作模塊。本系統(tǒng)就是為了實(shí)現(xiàn)電機(jī)控制,電機(jī)驅(qū)動模塊是直接作用于電機(jī)的模塊,MCU通過對LMD18200的精確控制可實(shí)現(xiàn)電機(jī)的精確控制,從而精確控制了平流泵。

          通信模塊主要實(shí)現(xiàn)與用戶的交互,為提高可靠性,設(shè)計中采用光耦隔離。本系統(tǒng)設(shè)計中提供了兩類接口,RS232和RS485

          其他模塊主要為了根據(jù)系統(tǒng)具體情況增加接口。例如:風(fēng)扇電源接口。

          4.3 軟件設(shè)計

          軟件設(shè)計層次圖如下,共包括3部分內(nèi)容:底層,驅(qū)動層,應(yīng)用層和

          圖4-2 軟件設(shè)計層次圖

          4.3.1 下位機(jī)

          驅(qū)動庫為上層驅(qū)動層設(shè)計提供接口,便于驅(qū)動層編程設(shè)計。

          驅(qū)動層包含了系統(tǒng)所需外圍接口的驅(qū)動程序,主要包括:直流電機(jī)驅(qū)動、PWM驅(qū)動、溫度檢測驅(qū)動、蜂鳴器驅(qū)動、ADC(模數(shù)轉(zhuǎn)化)驅(qū)動和串口驅(qū)動。

          直流電機(jī)驅(qū)動主要完成速度的采樣及調(diào)速,它接受正交編碼器的脈沖信號,通過脈沖采樣來完成速度采樣,并根據(jù)采樣值與設(shè)定值差值對PWM進(jìn)行調(diào)節(jié)。

          PWM驅(qū)動完成PWM模塊的初始化,PWM占空比的設(shè)置,對電機(jī)進(jìn)行直接控制。

          溫度檢測完成LMD18200熱報警的處理,主要完成相應(yīng)引腳的初始化及對熱報警的檢測,系統(tǒng)中采用中斷方式進(jìn)行處理。

          蜂鳴器驅(qū)動完成蜂鳴器的初始化及一些簡單操作,供其他程序調(diào)用。

          ADC驅(qū)動把模擬量轉(zhuǎn)化為數(shù)字量,完成壓力采樣和電機(jī)電流采樣。根據(jù)采樣量的要求采取不同處理,壓力采樣除保護(hù)電機(jī)外,還提供給用戶查看,以供用戶使用;電機(jī)電流采樣主要為保護(hù)電機(jī),防止電流過大時損壞電機(jī)。

          串口驅(qū)動完成串口初始化及相應(yīng)操作,主要為接受和發(fā)送字符。

          應(yīng)用層包括串口命令解析和main()函數(shù)。串口命令解析程序接受用戶的命令,并根據(jù)命令對系統(tǒng)進(jìn)行控制。main()完成整個系統(tǒng)的調(diào)度,使系統(tǒng)以合適的順序井然有序工作。

          通過以上分析可知,系統(tǒng)硬件軟件協(xié)調(diào)工作,可很好的實(shí)現(xiàn)用戶所要求的功能。

          4.3.2

          用戶界面主要用于實(shí)現(xiàn)交互功能,用戶可以通過此界面向系統(tǒng)發(fā)送命令來實(shí)現(xiàn)對系統(tǒng)的控制,同時此界面可以實(shí)時顯示當(dāng)前系統(tǒng)運(yùn)行的各項(xiàng)參數(shù),如平流泵壓力、電流、電機(jī)轉(zhuǎn)速等信息,并可以以波形的形式直觀的顯示到界面上。另外,本系統(tǒng)還配有數(shù)據(jù)庫,他將實(shí)時記錄系統(tǒng)的各項(xiàng)參數(shù),以供對系統(tǒng)進(jìn)行二次研發(fā)提供相應(yīng)數(shù)據(jù)。

          5詳細(xì)設(shè)計

          5.1硬件設(shè)計

          5.1.1電源模塊

          電路要正常工作,就需要有合適的電源供電。一個好的供電系統(tǒng)是電路正常工作的首要條件。微控制器需要3.3v電源,直流電機(jī)要穩(wěn)定工作需要24v電壓,本設(shè)計中從外部引入24v電壓,經(jīng)變壓后提供3.3v電源供電路板正常工作。此外通信模塊需要5v電源供電,因5v只在通信模塊中用到,所以把5v電壓放到通信模塊介紹。

          為了防止大電流或大電壓給電子設(shè)備造成損毀,通常使用保險絲作為電路保護(hù)元件,最好采用自復(fù)保險絲,免去更換元件的煩惱。此外,采用二極管IN4007穩(wěn)壓,其只允許單向電壓通過,保護(hù)了整個電路元器件。

          24v電壓變壓為3.3v主要用到芯片LM2575-3.3,其應(yīng)用如圖5-1,芯片兩端都要用電容濾波去耦。

          圖5-1 LM2575-3.3應(yīng)用電路

          為便于觀察電路板上電情況,在電源模塊加LED燈指示上電狀態(tài)。

          5.1.2 MCU模塊

          本設(shè)計中用到的處理器為PIC32MX460F512L,可采用兩種方式安裝到電路板上:插座和SMD。采用SMD焊接芯片時,微處理器芯片損壞時,可把帶有PIC32MX460F512L芯片的小主板插到電路板插座上;當(dāng)采用插座方式安裝處理器芯片時,芯片損壞時,只需更換小主板,同時也為電路板的調(diào)試帶來方便。

          這時設(shè)計就要熟悉小主板上電路,通過查閱數(shù)據(jù)手冊知道小主板實(shí)現(xiàn)了5v轉(zhuǎn)3.3v電壓變化電路和復(fù)位電路(如圖5-2)及晶振電路,在電路板上需要重新設(shè)計這些電路。小主板供電采用5v電源,由于本設(shè)計中除通信模塊采用5v電壓外,其余全為3.3v供電,所以在此設(shè)計中小主板亦采用3.3v供電,不過此時小主板的復(fù)位功能就消失了。由于電路板采用3.3v供電,所以在電路板上要設(shè)計的電路就剩下晶振電路和復(fù)位電路。

          圖5-2 小主板上電壓轉(zhuǎn)化及復(fù)位電路

          系統(tǒng)中晶振電路設(shè)計簡單,只需在晶振兩端增加兩個30pF去耦電容即可。

          復(fù)位電路設(shè)計如圖,本設(shè)計中復(fù)位電路只是簡單的阻容耦合電路,沒有采用復(fù)位芯片,是因?yàn)樾酒瑑?nèi)部嵌有看門狗電路,可很好實(shí)現(xiàn)復(fù)位。

          圖5-3 復(fù)位電路

          再來看一下小主板插座設(shè)計,小主板3.3v供電,插座中只需要一個3.3v的電源引腳接3.3v電源即可使小主板穩(wěn)定工作,插座中接地端都要接地以防干擾。

          5.1.3 電機(jī)驅(qū)動模塊

          驅(qū)動電機(jī)是本次設(shè)計的目標(biāo),理所當(dāng)然電機(jī)驅(qū)動模塊是設(shè)計的重點(diǎn)。前面已介紹過電機(jī)驅(qū)動芯片LMD18200,現(xiàn)就本設(shè)計介紹具體應(yīng)用。

          電機(jī)驅(qū)動模塊總結(jié)構(gòu)框圖如圖5-4。微處理器通過PWM控制驅(qū)動芯片,從而達(dá)到控制電機(jī)運(yùn)轉(zhuǎn)及調(diào)速的目的,同時LMD18200電機(jī)驅(qū)動芯片向微處理器傳輸熱報警信號(TFLAG)和采樣電流(CTEST)。為了檢測和控制電機(jī)速度,增加了QE編碼器,編碼器輸出信號直接傳輸?shù)轿⑻幚砥鳎员鉓CU計算并設(shè)置PWM,從而精確控制電機(jī)轉(zhuǎn)速。

          圖5-4 電機(jī)驅(qū)動模塊圖

          LMD18200數(shù)據(jù)手冊中一典型電路如下圖,其中,PWM信號采用類型2。

          圖5-5 LMD18200典型應(yīng)用

          本設(shè)計中LMD18200引腳連接圖如下。

          圖5-6 LMD18200應(yīng)用

          前面已經(jīng)較為詳細(xì)地介紹了LMD18200的性能及應(yīng)用,現(xiàn)就本設(shè)計中的具體應(yīng)用做一下簡單介紹。Vs為電源輸入端,接105電容濾波,GND為接地端。引腳1、2間,10、11間接入了10nF的自舉電容,引腳2、10輸出驅(qū)動電機(jī)運(yùn)轉(zhuǎn)。這里PWM類型采用類型2,即從引腳5輸入PWM信號,引腳3作為電機(jī)方向信號輸入端。引腳4是電機(jī)制動信號,直接接地就可以,表示永不制動,當(dāng)然可通過其他方式使電機(jī)停止運(yùn)轉(zhuǎn),如PWM信號。引腳9是集電極開路輸出端,應(yīng)用中要接上拉電阻,可接最大電壓為12v,根據(jù)系統(tǒng)需要接3.3v電壓,該引腳接到MCU一中斷引腳上,以便產(chǎn)生中斷時系統(tǒng)采取適當(dāng)措施。引腳8為電流取樣信號輸出端,提供377uA/A電流,通過下拉電阻使電流信號轉(zhuǎn)化為電平信號。在這里考慮下拉電阻的大小,取峰值輸出電流6A時,3.3v/(6A×377uA/A)約為1.46k,在這里取電阻為1k,主要考慮到電流可能大于6A,數(shù)據(jù)手冊中提到有時達(dá)到10A,故在此最好加一穩(wěn)壓二極管(這里選擇IN4728)。

          電流取樣時,由于電流為模擬信號最好加放大器,這里采用AD623放大信號,因?yàn)樾盘栆呀?jīng)較強(qiáng),不需要增大放大倍數(shù),故在此引腳1,8間不接電阻懸空即可。在電路原理圖中把它與壓力檢測方到一起,因?yàn)閮烧呔鶠槟M信號處理,在中要特別處理。

          圖5-7 AD623應(yīng)用設(shè)計

          5.1.4 通信模塊

          電路設(shè)計中一般都需要通信模塊來調(diào)試程序及通信,本系統(tǒng)也不例外,這里設(shè)計了232串口接口。此外,為了保證數(shù)據(jù)可靠性,采用光耦進(jìn)行隔離??偨Y(jié)構(gòu)圖如下:

          圖5-8 通信模塊框圖

          具體設(shè)計如下:

          首先是變壓,為通信模塊正常穩(wěn)定工作提供5v電壓。有兩種方案可選,第一種3.3v變壓到5v,第二種方式是從外部引入的24v直接變壓為5v。由于3.3v電壓本身就是經(jīng)24v變壓所得,經(jīng)過兩次變壓,可靠性及穩(wěn)定性不好,且由低電壓變?yōu)楦唠妷捍嬖谝欢ㄈ毕?,不如高電壓變?yōu)榈碗妷海@里采用第二種變壓方式。具體設(shè)計如下圖,芯片兩端只需加電容濾波去耦即可。

          圖5-9 24v轉(zhuǎn)5v電路

          現(xiàn)在來考慮光耦,光耦一端接MCU(電壓端3.3v),一端接233芯片和485芯片(電壓端5v)。具體設(shè)計如下,芯片采用4N30,MCU引出信號U2Tx、U2Rx,連接通信芯片的信號為TX2S、RX2S。

          圖5-10 光耦應(yīng)用

          232接口芯片MAX232電路如下:

          圖5-11 RS232設(shè)計圖

          485接口芯片電路設(shè)計如下:

          需要特別指出的是:1)這里增加了一跳線,配置跳線可單獨(dú)實(shí)現(xiàn)232功能或485功能,如圖中S1。這里之所以讓兩個接口共用同一MCU通信線路,主要考慮到MCU出故障可能性很?。ㄈ羰遣捎眯≈靼逍问浇M裝MCU,當(dāng)MCU 出故障時只需更換小主板即可)。此外,若要實(shí)現(xiàn)另外一組串口通信,必要增加相應(yīng)的光耦,增加了電路板面積,增加了成本。2)485芯片的使能信號接在一起,此信號有晶體管驅(qū)動。當(dāng)向外發(fā)送時,若輸出低電平,晶體管不導(dǎo)通,輸出使能;若輸出為高電平時,晶體管導(dǎo)通,輸出禁能,輸出引腳為高阻狀態(tài)。與軟件串口通信協(xié)議聯(lián)系起來,串口通信中,無信號時輸出高電平,起始位為一低電平。當(dāng)要向外輸出高電平時,晶體管導(dǎo)通把控制信號DE變?yōu)榈碗娖?,輸出禁能,默認(rèn)情況下,串口輸出仍為高電平,芯片能正常工作。當(dāng)然,使能信號可直接由MCU控制,但那樣增加了軟件難度,這里體現(xiàn)出硬件和軟件相通的思想,即硬件的功能可有軟件來實(shí)現(xiàn),軟件的功能也可有硬件來實(shí)現(xiàn)。

          5.1.5 其他模塊

          (1) 直流蜂鳴器

          通過控制晶體管的導(dǎo)通與否來控制蜂鳴器的響停,所以蜂鳴器部分只需一個GPIO接口控制即可,把引腳方向設(shè)為輸出,引腳高電平時蜂鳴器響,引腳低電平時蜂鳴器響停。

          (2) 正交編碼器接口

          正交編碼器安在電機(jī)上,用來檢測電機(jī)速度,需要一個7孔接口。起作用的信號有三個:A相,B相和索引信號,三信號均為脈沖信號。A相,B相信號用于檢測速度和方向,索引信號用來確定絕對位置,電機(jī)轉(zhuǎn)動一圈可產(chǎn)生多個相脈沖信號和一個索引脈沖信號。CCP引腳可捕獲A相、B相脈沖信號,用于檢測電機(jī)轉(zhuǎn)速。索引信號可簡單與一GPIO相連,當(dāng)有脈沖時,引腳啟動一中斷即可。

          (3) 壓力傳感器

          壓力為模擬信號,信號微弱,需要信號放大,這里采用AD623放大器。電路連接與電機(jī)電流取樣連接相似,只是在引腳1和引腳8間接一電阻用于放大輸入信號。設(shè)計中電阻取10k,放大倍數(shù)為11。

          (4) 位置檢測器

          位置檢測器安裝在轉(zhuǎn)輪上,用于判斷大轉(zhuǎn)輪位置。

          5.1.6 設(shè)計

          硬件電路原理圖設(shè)計完成后,就需要設(shè)計元器件的封裝,從而得到合適正確的網(wǎng)絡(luò)報表。根據(jù)所選元器件及其實(shí)際物理尺寸設(shè)計元器件的封裝,這里要注意的是,Altium Designer Summer 09封裝庫提供了許多標(biāo)準(zhǔn)元件的封裝,元器件有標(biāo)準(zhǔn)封裝的盡量采用標(biāo)準(zhǔn)封裝,免去制版廠商定制[10]。將元器件封裝與元器件匹配,提取網(wǎng)絡(luò)報表,為導(dǎo)入到PCB中做準(zhǔn)備。

          PCB設(shè)計按PCB板物理特性設(shè)置,布局,布線和DRC流程設(shè)計。

          PCB板物理特性設(shè)置主要是根據(jù)產(chǎn)品需要設(shè)置合適的板尺寸,設(shè)置安裝孔位置及大小和一些其他的有關(guān)PCB板物理特性的設(shè)置。本設(shè)計中PCB采用兩層板,板的大小為100*85(單位:mm)。

          布局主要完成PCB板上元器件的放置。這里要按模塊將元器件分開放置,需要注意的是模擬模塊要與數(shù)字模塊隔離,以減少相互干擾。此外,要根據(jù)產(chǎn)品的需要合理放置外部接口,如電源接口,串口等。

          布線主要完成PCB板上元器件引腳的連接。首先設(shè)置布線規(guī)則,設(shè)置各個線路的寬度,然后自動布線看是否能布通。若能布通說明布局成功,否則需要適當(dāng)調(diào)整布局以方便布線。這里采用手動布線與自動布線相結(jié)合的方式布線,首先將電源線與地線布通以方便元器件連接,需要注意的是元器件的電源和地線網(wǎng)絡(luò)之間形成的回路要最小,以減少電源供電電流形成的回路電流產(chǎn)生的電磁干擾。其次,要預(yù)布重要信號線,如PWM信號線,PWM信號是高頻信號,是電機(jī)調(diào)速信號,應(yīng)首先考慮。因本PCB板線路不復(fù)雜,大部分信號采用手動布線。最后按設(shè)計規(guī)則自動布線,完成后做適當(dāng)調(diào)整。

          布線完成后,在制板之前要進(jìn)行DRC檢查,以防止電路板出現(xiàn)重要錯誤。

          5.2 軟件設(shè)計

          5.2.1 驅(qū)動層設(shè)計

          5.2.1.1 串口驅(qū)動設(shè)計

          程序要調(diào)試,首先要實(shí)現(xiàn)串口。在串口驅(qū)動文件中包含四個函數(shù),串口初始化函數(shù)InitUart2 (),串口發(fā)送函數(shù)Uart2Send(),串口接收函數(shù)GetCharInBuf()以及串口服務(wù)子程序void __ISR(_UART2_VECTOR, ipl2) ntUart2Handler(void)。

          (1) InitUart2 ()完成串口初始化。

          (2)Uart0Send(),GetCharInBuf()和UART0_ISR()共同完成串口的發(fā)送和接受。系統(tǒng)發(fā)送機(jī)制為程序有數(shù)據(jù)要發(fā)送,串口就發(fā)送數(shù)據(jù)且直到發(fā)送完成(阻塞發(fā)送);字符接受處理在串口中斷中實(shí)現(xiàn)。這里采用了循環(huán)數(shù)組來儲存接受的數(shù)據(jù),循環(huán)數(shù)組有三個屬性:CharsInBuf指示數(shù)組中存儲的元素個數(shù),CircIn指示要存儲數(shù)據(jù)的數(shù)組下標(biāo),CircOut指示要讀取的數(shù)據(jù)的數(shù)組下標(biāo)。每接收一個數(shù)據(jù)并且存儲到數(shù)組中,CharsInBuf++,CircIn++,當(dāng)從數(shù)組中取出一個數(shù)據(jù)時CircOut++,當(dāng)CircIn、CircOut等于數(shù)組長度時,重新設(shè)置其值為0。

          這里重點(diǎn)介紹一下中斷服務(wù)子程序,其實(shí)現(xiàn)如下:

          void __ISR(_UART2_VECTOR, ipl2) IntUart2Handler(void)

          {

          if(mU2RXGetIntFlag()) //判斷中斷是否為接收中斷

          {

          mU2RXClearIntFlag(); //接收中斷標(biāo)志位清零

          if(CharsInBufUART0_LEN) //將串口中的數(shù)據(jù)寫入Buffer中

          {

          Buffer[CircIn] = (char)ReadUART2();

          if(CircInUART0_LEN-1) CircIn++;

          else CircIn=0;

          CharsInBuf++;

          }

          }

          if ( mU2EGetIntFlag() ) //判斷中斷是否為錯誤中斷

          {

          mU1EClearIntFlag();

          }

          if ( mU2TXGetIntFlag() ) //判斷中斷是否為傳送中斷

          {

          mU2TXClearIntFlag();

          }

          }

          }

          5.2.1.2 PWM驅(qū)動設(shè)計

          PWM驅(qū)動完成PWM模塊的初始化和PWM占空比的設(shè)置。PWM模塊初始化按照數(shù)據(jù)手冊內(nèi)容調(diào)用相應(yīng)庫函數(shù)進(jìn)行設(shè)置即可,PWM模塊可產(chǎn)生PWM信號。PWM占空比設(shè)置函數(shù)為SetPWMdutycycle(int v);

          5.2.1.3 直流電機(jī)驅(qū)動設(shè)計

          直流電機(jī)驅(qū)動主要完成電機(jī)速度采樣和控制。為了精確采樣,電機(jī)上安裝有正交編碼器,電機(jī)每轉(zhuǎn)一轉(zhuǎn),輸出400個脈沖。現(xiàn)將計數(shù)器設(shè)為邊沿觸發(fā),則采樣精度進(jìn)一步提高,相當(dāng)于電機(jī)轉(zhuǎn)速放大了400倍。

          因?yàn)镻IC32MX460F512L內(nèi)核沒有內(nèi)嵌QEI模塊,所以需要通過軟件采樣正交編碼器傳來的脈沖信號。Initmdc( )配置與采樣相關(guān)的定時器/計數(shù)器。這里配置TIMER4為16位定時器,定時采樣周期;配置TIMER5為16位計數(shù)器,計數(shù)采樣周期內(nèi)正交編碼器傳來的脈沖信號。

          調(diào)節(jié)電機(jī)轉(zhuǎn)速在采樣中斷處理函數(shù)中完成,其原理前面已介紹,主要思想是當(dāng)電機(jī)一定時,電機(jī)速度與占空比成線性關(guān)系。當(dāng)PWM脈沖周期一定時,脈沖寬度與占空比成正比,所以電機(jī)轉(zhuǎn)速與PWM脈沖寬度成線性關(guān)系。代碼實(shí)現(xiàn)位函數(shù)void Setspeed( )如下

          void Setspeed()

          {

          PWMValue=(unsigned int)ReadDCOC2PWM(); //讀取當(dāng)前狀態(tài)的pwm的占空比

          if(PrPumpstatus==0) SetPWMdutycycle(0); //判斷當(dāng)前的電機(jī)狀態(tài)是否為停止,停止設(shè)占空比為0

          else

          {

          if(MotorSpeed > PrPumpMTRSpeed )//當(dāng)前電機(jī)轉(zhuǎn)速大于設(shè)定值

          {

          if( MotorSpeed - PrPumpMTRSpeed >(PrPumpMTRSpeed*0.01))

          {

          width=PWMValue*(PrPumpMTRSpeed)/MotorSpeed;

          if(width==0) width=1;

          SetPWMdutycycle(width);

          }

          }

          else

          {

          if( PrPumpMTRSpeed-MotorSpeed>(PrPumpMTRSpeed*0.01))

          { //當(dāng)前電機(jī)轉(zhuǎn)速小于設(shè)定值的0.01

          if(MotorSpeed==0)

          SetPWMdutycycle(0x0fff);

          else

          {

          width=PWMValue*(PrPumpMTRSpeed)/MotorSpeed;

          if(width>4095) //4095為占空比最大值

          width=4095;

          if(width==0) width=1;

          SetPWMdutycycle(width);

          }

          }

          }

          }

          }

          其中,PWMValue為當(dāng)前PWM脈沖正相部分寬度,MotorSpeed為當(dāng)前電機(jī)轉(zhuǎn)速,PrPUMP.MTRSpeed為設(shè)定的轉(zhuǎn)速。

          5.2.1.4 溫度檢測驅(qū)動設(shè)計

          溫度檢測驅(qū)動主要使能與LMD18200 pin9相連的引腳,使其可接受電機(jī)熱報警信息,并提示用戶,這里根據(jù)LMD18200熱報警低電平輸出特性,采用了低電平中斷觸發(fā)機(jī)制。當(dāng)中斷發(fā)生時,通過蜂鳴器告知用戶。

          5.2.1.5 蜂鳴器驅(qū)動設(shè)計

          MCU通過對一GPIO引腳的控制來控制蜂鳴器的響停。這里主要實(shí)現(xiàn)了引腳的初始化及一個簡單的服務(wù)(蜂鳴器響一段時間)。

          5.2.1.6 ADC驅(qū)動設(shè)計

          ADC驅(qū)動實(shí)現(xiàn)了壓力檢測和電機(jī)電流取樣功能,包括ADC模塊初始化,壓力采樣檢測和電機(jī)電流采樣檢測三部分。ADC模塊初始化配置了兩個采樣序列分別采樣壓力信號和電機(jī)電流信號,兩個采樣序列的觸發(fā)方式不同,壓力信號的采樣序列觸發(fā)方式為處理器觸發(fā),根據(jù)系統(tǒng)需要,在需要的時候觸發(fā)即可得到獲得壓力信息;電機(jī)電流信號的采樣序列觸發(fā)方式為定時器觸發(fā),不受用戶控制,主要為了保護(hù)電機(jī),需要兩個中斷服務(wù)程序?qū)崿F(xiàn)采樣。

          電流采樣需要在時間中斷配合使用:定時器定時觸發(fā)ADC采樣序列0,ADC中斷完成采樣信息的處理,當(dāng)過流時簡單地使電機(jī)停止轉(zhuǎn)動,其控制流程如下:

          圖5-14 電流采樣處理流程

          5.2.2 應(yīng)用層設(shè)計

          5.2.2.1 通信協(xié)議設(shè)計

          通信協(xié)議實(shí)現(xiàn)函數(shù)為HandleProtocol(),主要解析了三條簡單命令,實(shí)現(xiàn)了泵的轉(zhuǎn)動,泵的停止和泵速度的設(shè)定。命令解析主要通過字符串匹配,本設(shè)計中采用case語句匹配字符串,需要增加命令時只需增加case語句即可,為后續(xù)開發(fā)提供方便。

          表5-1 串口命令解析

          命令

          數(shù)據(jù)流向

          含義

          UXXXX/uXXXX

          上位機(jī)→下位機(jī)

          泵啟動

          DXXXX/dXXXX

          上位機(jī)→下位機(jī)

          泵停止

          S????/s????

          上位機(jī)→下位機(jī)

          設(shè)置泵轉(zhuǎn)速

          B????/b????

          下位機(jī)→上位機(jī)

          顯示當(dāng)前流量

          P????/p????

          下位機(jī)→上位機(jī)

          顯示當(dāng)前轉(zhuǎn)速

          C????/c????

          下位機(jī)→上位機(jī)

          顯示當(dāng)前電流

          注:a.表中X代表任一字符,?代表任一數(shù)字。

          5.2.2.2 Main()設(shè)計

          Main()函數(shù)協(xié)調(diào)前臺應(yīng)用程序,其處理流程如下:

          圖5-15 Main()處理流程

          Main()根據(jù)用戶需要輸出壓力轉(zhuǎn)速信息,轉(zhuǎn)速為全局變量,其控制實(shí)際在速度采樣中斷中完成;壓力信息的獲取只是簡單的調(diào)用了ADC驅(qū)動文件中的壓力獲取函數(shù)GetPress()。

          初始化主要完成全局變量,時鐘及相應(yīng)驅(qū)動初始化,這里需要注意的是,與定時器協(xié)調(diào)工作的模塊的初始化要放到定時器初始化前面。

          5.2.2.3 上位機(jī)用戶界面

          上位機(jī)用戶界面主要是便于操作人員和高壓平流泵控制系統(tǒng)的交互。實(shí)時地直觀的顯示出系統(tǒng)反饋的相關(guān)信息和方便的設(shè)置調(diào)控系統(tǒng)相關(guān)參數(shù)。

          該界面主要實(shí)現(xiàn)上位機(jī)與下位機(jī)之間的通信,在實(shí)現(xiàn)通信時,為了方便主要用CMSComm控件來完成。該軟件還實(shí)現(xiàn)了把從串口中傳過來的數(shù)據(jù)做分析處理后,實(shí)時的顯示傳來,并且把分析后的數(shù)據(jù)根據(jù)發(fā)送過來的時間畫出了相應(yīng)的波形。
          本軟件提供了壓力,電流和轉(zhuǎn)速等參數(shù)的顯示。并將參數(shù)用數(shù)據(jù)和波形圖的形式分別呈現(xiàn)給用戶。

          6測試

          6.1測試

          6.1.1 軟件仿真

          通過開發(fā)工具的仿真功能對系統(tǒng)做功能仿真和時序分析。

          6.1.2實(shí)物調(diào)試

          通過調(diào)試電機(jī),了解到PWM脈沖周期直接影響電機(jī)穩(wěn)定性

          6.2測試數(shù)據(jù)

          6.2.1 串口測試

          串口主要實(shí)現(xiàn)功能就是通信,一方面輸出程序需要輸出的數(shù)據(jù),另一方面輸入數(shù)據(jù)時根據(jù)需要輸出數(shù)據(jù)。這里只是簡單地讓系統(tǒng)輸出速度設(shè)定值,當(dāng)設(shè)定值改變時,輸出亦改變。測試結(jié)果如下:

          圖6-1 串口測試

          由測試結(jié)果知,系統(tǒng)很好地完成了串口功能。

          6.2.2 ADC測試

          ADC模塊主要用于采集電流、壓力。PIC32MX460F512L的ADC模塊為10位,滿量程3.3v時分辨率高達(dá)3.3v/1024=3.2mv。這里以采樣電流測試,當(dāng)與電流相對的電壓大于2639(相當(dāng)于7A電流,377uA/A *1k *7A=2.639 v =2639 mv)時輸出“The Current over”。通過調(diào)節(jié)電阻,數(shù)據(jù)輸出結(jié)果如下:

          圖6-2 電流采樣測試

          由測試結(jié)果知,系統(tǒng)的ADC模塊精度高。

          6.2.3電機(jī)速度采樣與調(diào)速測試

          系統(tǒng)采樣電機(jī)速度,并根據(jù)采樣結(jié)果對電機(jī)進(jìn)行相應(yīng)調(diào)速?,F(xiàn)給出1000rpm和3000rpm時調(diào)試結(jié)果,系統(tǒng)向上調(diào)速時輸出“100plu”,向下調(diào)速時輸出“100min”,如下圖。

          圖6-3 1000rpm 測試 圖6-4 3000rpm 測試

          由測試結(jié)果可知,系統(tǒng)調(diào)速精度在1.0%內(nèi),當(dāng)超出此范圍時就調(diào)速,使系統(tǒng)維持在設(shè)置速度1.0%內(nèi)。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();