a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 高壓平流泵控制系統設計與實現,軟硬件協同

高壓平流泵控制系統設計與實現,軟硬件協同

作者: 時間:2017-06-08 來源:網絡 收藏

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

1前言

1.1控制現狀

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

目前,國內生產的恒流泵大多為步進電機驅動。這種泵成本低,調試方便,但致命弱點是在低流量下有較大脈動,很難保證恒流效果。這是因為步進電機是按照一定拍節和相序運行。為了解決這一問題,可借鑒國外儀器,使用直流電機取代步進電機,使恒流泵的性能大為提高[1]。直流電機具有良好的線性調速特性,簡單的控制性能,高的效率,優異的動態特性,特別適用于要求調速的系統。

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

1.2本文主要內容

系統采用技術閉環調節直流電機轉速,從而精確控制平流泵流量。

系統對精度要求非常高,流量精度要求小于0.5%。如此高精度需要有高性能控制器來采集調節直流電機轉速,PIC32MX460F512L可很好滿足要求,它采樣直流電機轉速,經過分析處理,發送適當占空比的信號給電機,從而精確控制直流電機轉速。為提高系統穩定性,電機驅動采用電機專用驅動芯片LMD18200。

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

為便于人機交互和調試系統,系統提供了穩定可靠的通信功能,通信部分采用光耦隔離,提供RS232通信方式。

2相關技術和原理

2.1 直流電機控制方法

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

2.2 PWM直流調速原理

PWM控制是對脈沖的寬度進行調制的技術,即通過對一系列脈沖的寬度進行調解,來有效地獲得所需要的波形?;赑WM控制的調速電路把流電壓“軋”成一系列脈沖,通過改變脈沖的占空比來獲得所需的輸出電壓。在PWM驅動控制的調速系統中,通過改變電機電樞電壓接通時間與通電周期的比值(即占空比)來控制電機的轉速。用脈寬調制的方法,把恒定的直流電源電壓調制成頻率一定寬度可變的脈沖電壓序列,從而改變平均輸出電壓的大小,以調節電機轉速??梢?,在直流電壓下,當調制脈沖頻率一定時,脈沖寬度與占空比成線性關系。

在脈沖作用下,按一個固定的頻率來接通和斷開電源,就能夠實時控制電機的運轉速度。當電機通電時速度增加;電機斷電時速度減小。設電機直接接通電源時(即占空比為100%),電機的轉速為Vm,設占空比為D=t/T,則電機的平均速度為

(2-1)

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

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

2.3 H橋型電機驅動原理

圖2-1 H橋PWM驅動

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

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

當Ub1=Ub4為正時,VT1和VT4導通,VT2和VT3截止,UAB=Us。

當Ub2=Ub3為正時,VT1和VT4截止,VT2和VT3不能立即導通,因為電機的反電勢使AB存在續流,續流流經VD3和VD2,保護了四個三極管,若續流在這個過程沒有得到很大衰減,而Ub1=Ub4為正的階段已經來臨,則VT2和VT3一直不能導通;若續流在這個過程中得到很大衰減,則VT2和VT3導通,UAB=-Us。

顯然,Ub1=Ub4為正的時間和Ub2=Ub3為正的時間相同時,UAB的平均電壓為0,電機動態靜止;當Ub1=Ub4為正的時間長于Ub2=Ub3為正的時間時,UAB的平均電壓>0,電機正轉,UAB的值越大,轉速越高;當Ub1=Ub4為正的時間短于Ub2=Ub3為正的時間時,UAB的平均電壓0,電機反轉,UAB的值越小,轉速越高。

可見,只要控制Ub1、Ub2、Ub3、Ub4的脈沖寬度,就可控制直流電機的轉向和速度,且可以達到動態靜止,有利于正反轉死區電壓的消除[3]。

2.4 電機驅動H橋組件LMD18200

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

原理框圖如圖2-2。因為電機由LMD18200驅動,對電機的控制就是對LMD18200控制,所以這里將詳細介紹一下該芯片的用法。

圖2-2 LMD18200原理框圖

(1) PWM信號類型

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

(2) 電流取樣限流

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

(3) 溫度報警標志

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

(4) 限流

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

(5) 工作原理

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

  1. LMD18200邏輯正值表

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

表2-1 PWM邏輯正值表

PWM

轉向

剎車

實際輸出驅動電流

電機工作狀態

H

H

L

流出1、流入2

正轉

H

L

L

流入1、流出2

反轉

L

X

L

流出1、流出2

停止

H

H

H

流出1、流出2

停止

H

L

H

流入1、流入2

停止

L

X

H

NONE

2.5 本設計中軟件

2.5.1 Altium Designer Summer 09

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

Altium Designer Summer 09是基于Windows的32位EDA設計系統,集成強大的設計能力、復雜工藝的可生產性、設計過程管理于一體,可完整實現電子產品從電學概念設計到生成物理生產數據的全過程。既滿足了產品的高可靠性,又極大縮短了設計周期,降低了設計成本。

Summer 09版本解決了大量歷史遺留的工具問題。其中就包括了增加更多的機械層設置、增強的原理圖網絡類定義。新版本中更關注于改進測試點的分配和管理、精簡嵌入式軟件開發、軟設計中智能化調試和流暢的License管理等功能。

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

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

(2) 產生網絡報表。

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

2.5.2 MPLAB IDE

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

MPLAB IDE 提供以下功能:

  • 使用內置編輯器創建和編輯源代碼。

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

  • 通過使用內置模擬器觀察程序流程調試可執行邏輯;或者使用MPLAB ICE 2000和 MPLAB ICE 4000 仿真器或MPLAB ICD 2 在線調試器實時調試可執行邏輯。

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

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

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

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

2.5.3 Microsoft Visual C++ 6.0

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

3需求分析

3.1系統所需的主要功能

3.1.1 電機速度檢測

可實時精確檢測電機轉速,以便系統調速和用戶設定轉速。

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

3.1.2 電機調速

根據用戶設置的電機速度,系統自動調節電機轉度,使系統穩定工作,以便用戶控制平流泵流量,電機調速精度在1.0%范圍內。

3.1.3 電機保護功能

平流泵精度高,電機質量好,應提供適當措施保護電機,特別是壓力保護,壓力精度為0.1MPa。

3.1.4 通信功能

要求系統具有串口通信功能,以便與用戶交互和調試系統。

3.1.5 其他功能

本系統是平流泵產品的一部分,要求為產品的其他部分提供所需接口,如風扇電源接口,壓力檢測接口等。

3.2 性能需求

3.2.1 精度需求

在精度需求上,根據使用需要:平流流量精確控制,要求電機速度精確檢測控制,電機調速精度在1.0%范圍內,電機轉速范圍為1~5000rpm。

3.2.2 時間需求

電機保護,電機速度設定都要求較高的響應時間,特別是電機保護。

3.2.3 接口需求

(1) 通信接口

本系統要求提供UART串口接口,最好也嵌入485接口,以方便用戶調試程序和。

(2) 正交編碼接口

為了檢測電機轉速,系統應提供正交編碼器接口。

(3) 壓力檢測接口

為便于檢測平流泵壓力,系統應提供壓力檢測接口。

(4) JTAG接口

下載調試程序都要用到JTAG接口。

3.3 系統目標

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

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

(3) 人機良好交互,電機速度可設置,以便平流泵流量調試。

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

4概要設計

4.1 綜述

高壓平流泵是一個嵌入式系統,為完成系統所要求的功能,需要軟件硬件協調工作。

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

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

硬件可很好的實現了電機控制,軟件所要做的就是驅動硬件和精確采樣,保證平流泵工作的精度。本系統用循環和中斷機制控制系統,不采用操作系統,主要基于以下考慮:

(1)本系統中任務較少,主要有測速并控制速度,采樣電流,采樣壓力和協議處理,PIC32MX460F512L提供了豐富的中斷資源,大部分任務可通過中斷機制實現,如測速調速,采樣電流,采樣壓力。

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

對重要信息的采集采用中斷方式,減少延遲,提高系統響應速度,縮短系統響應時間。此外,能用硬件實現時盡量用硬件實現,以提高系統可靠性和響應。

4.2 硬件設計

本系統的硬件設計總框圖如下:

圖4-1 硬件系統總框圖

硬件系統主要分為五個模塊,分別為:電源模塊,MCU模塊,電機驅動模塊,通信模塊及其它。

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

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

電機驅動模塊是系統的主要工作模塊。本系統就是為了實現電機控制,電機驅動模塊是直接作用于電機的模塊,MCU通過對LMD18200的精確控制可實現電機的精確控制,從而精確控制了平流泵。

通信模塊主要實現與用戶的交互,為提高可靠性,設計中采用光耦隔離。本系統設計中提供了兩類接口,RS232和RS485

其他模塊主要為了根據系統具體情況增加接口。例如:風扇電源接口。

4.3 軟件設計

軟件設計層次圖如下,共包括3部分內容:底層,驅動層,應用層和

圖4-2 軟件設計層次圖

4.3.1 下位機

驅動庫為上層驅動層設計提供接口,便于驅動層編程設計。

驅動層包含了系統所需外圍接口的驅動程序,主要包括:直流電機驅動、PWM驅動、溫度檢測驅動、蜂鳴器驅動、ADC(模數轉化)驅動和串口驅動。

直流電機驅動主要完成速度的采樣及調速,它接受正交編碼器的脈沖信號,通過脈沖采樣來完成速度采樣,并根據采樣值與設定值差值對PWM進行調節。

PWM驅動完成PWM模塊的初始化,PWM占空比的設置,對電機進行直接控制。

溫度檢測完成LMD18200熱報警的處理,主要完成相應引腳的初始化及對熱報警的檢測,系統中采用中斷方式進行處理。

蜂鳴器驅動完成蜂鳴器的初始化及一些簡單操作,供其他程序調用。

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

串口驅動完成串口初始化及相應操作,主要為接受和發送字符。

應用層包括串口命令解析和main()函數。串口命令解析程序接受用戶的命令,并根據命令對系統進行控制。main()完成整個系統的調度,使系統以合適的順序井然有序工作。

通過以上分析可知,系統硬件軟件協調工作,可很好的實現用戶所要求的功能。

4.3.2

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

5詳細設計

5.1硬件設計

5.1.1電源模塊

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

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

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

圖5-1 LM2575-3.3應用電路

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

5.1.2 MCU模塊

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

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

圖5-2 小主板上電壓轉化及復位電路

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

復位電路設計如圖,本設計中復位電路只是簡單的阻容耦合電路,沒有采用復位芯片,是因為芯片內部嵌有看門狗電路,可很好實現復位。

圖5-3 復位電路

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

5.1.3 電機驅動模塊

驅動電機是本次設計的目標,理所當然電機驅動模塊是設計的重點。前面已介紹過電機驅動芯片LMD18200,現就本設計介紹具體應用。

電機驅動模塊總結構框圖如圖5-4。微處理器通過PWM控制驅動芯片,從而達到控制電機運轉及調速的目的,同時LMD18200電機驅動芯片向微處理器傳輸熱報警信號(TFLAG)和采樣電流(CTEST)。為了檢測和控制電機速度,增加了QE編碼器,編碼器輸出信號直接傳輸到微處理器,以便MCU計算并設置PWM,從而精確控制電機轉速。

圖5-4 電機驅動模塊圖

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

圖5-5 LMD18200典型應用

本設計中LMD18200引腳連接圖如下。

圖5-6 LMD18200應用

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

電流取樣時,由于電流為模擬信號最好加放大器,這里采用AD623放大信號,因為信號已經較強,不需要增大放大倍數,故在此引腳1,8間不接電阻懸空即可。在電路原理圖中把它與壓力檢測方到一起,因為兩者均為模擬信號處理,在中要特別處理。

圖5-7 AD623應用設計

5.1.4 通信模塊

電路設計中一般都需要通信模塊來調試程序及通信,本系統也不例外,這里設計了232串口接口。此外,為了保證數據可靠性,采用光耦進行隔離??偨Y構圖如下:

圖5-8 通信模塊框圖

具體設計如下:

首先是變壓,為通信模塊正常穩定工作提供5v電壓。有兩種方案可選,第一種3.3v變壓到5v,第二種方式是從外部引入的24v直接變壓為5v。由于3.3v電壓本身就是經24v變壓所得,經過兩次變壓,可靠性及穩定性不好,且由低電壓變為高電壓存在一定缺陷,不如高電壓變為低電壓,這里采用第二種變壓方式。具體設計如下圖,芯片兩端只需加電容濾波去耦即可。

圖5-9 24v轉5v電路

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

圖5-10 光耦應用

232接口芯片MAX232電路如下:

圖5-11 RS232設計圖

485接口芯片電路設計如下:

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

5.1.5 其他模塊

(1) 直流蜂鳴器

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

(2) 正交編碼器接口

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

(3) 壓力傳感器

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

(4) 位置檢測器

位置檢測器安裝在轉輪上,用于判斷大轉輪位置。

5.1.6 設計

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

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

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

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

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

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

5.2 軟件設計

5.2.1 驅動層設計

5.2.1.1 串口驅動設計

程序要調試,首先要實現串口。在串口驅動文件中包含四個函數,串口初始化函數InitUart2 (),串口發送函數Uart2Send(),串口接收函數GetCharInBuf()以及串口服務子程序void __ISR(_UART2_VECTOR, ipl2) ntUart2Handler(void)。

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

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

這里重點介紹一下中斷服務子程序,其實現如下:

void __ISR(_UART2_VECTOR, ipl2) IntUart2Handler(void)

{

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

{

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

if(CharsInBufUART0_LEN) //將串口中的數據寫入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驅動設計

PWM驅動完成PWM模塊的初始化和PWM占空比的設置。PWM模塊初始化按照數據手冊內容調用相應庫函數進行設置即可,PWM模塊可產生PWM信號。PWM占空比設置函數為SetPWMdutycycle(int v);

5.2.1.3 直流電機驅動設計

直流電機驅動主要完成電機速度采樣和控制。為了精確采樣,電機上安裝有正交編碼器,電機每轉一轉,輸出400個脈沖?,F將計數器設為邊沿觸發,則采樣精度進一步提高,相當于電機轉速放大了400倍。

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

調節電機轉速在采樣中斷處理函數中完成,其原理前面已介紹,主要思想是當電機一定時,電機速度與占空比成線性關系。當PWM脈沖周期一定時,脈沖寬度與占空比成正比,所以電機轉速與PWM脈沖寬度成線性關系。代碼實現位函數void Setspeed( )如下

void Setspeed()

{

PWMValue=(unsigned int)ReadDCOC2PWM(); //讀取當前狀態的pwm的占空比

if(PrPumpstatus==0) SetPWMdutycycle(0); //判斷當前的電機狀態是否為停止,停止設占空比為0

else

{

if(MotorSpeed > PrPumpMTRSpeed )//當前電機轉速大于設定值

{

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

{

width=PWMValue*(PrPumpMTRSpeed)/MotorSpeed;

if(width==0) width=1;

SetPWMdutycycle(width);

}

}

else

{

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

{ //當前電機轉速小于設定值的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為當前PWM脈沖正相部分寬度,MotorSpeed為當前電機轉速,PrPUMP.MTRSpeed為設定的轉速。

5.2.1.4 溫度檢測驅動設計

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

5.2.1.5 蜂鳴器驅動設計

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

5.2.1.6 ADC驅動設計

ADC驅動實現了壓力檢測和電機電流取樣功能,包括ADC模塊初始化,壓力采樣檢測和電機電流采樣檢測三部分。ADC模塊初始化配置了兩個采樣序列分別采樣壓力信號和電機電流信號,兩個采樣序列的觸發方式不同,壓力信號的采樣序列觸發方式為處理器觸發,根據系統需要,在需要的時候觸發即可得到獲得壓力信息;電機電流信號的采樣序列觸發方式為定時器觸發,不受用戶控制,主要為了保護電機,需要兩個中斷服務程序實現采樣。

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

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

5.2.2 應用層設計

5.2.2.1 通信協議設計

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

表5-1 串口命令解析

命令

數據流向

含義

UXXXX/uXXXX

上位機→下位機

泵啟動

DXXXX/dXXXX

上位機→下位機

泵停止

S????/s????

上位機→下位機

設置泵轉速

B????/b????

下位機→上位機

顯示當前流量

P????/p????

下位機→上位機

顯示當前轉速

C????/c????

下位機→上位機

顯示當前電流

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

5.2.2.2 Main()設計

Main()函數協調前臺應用程序,其處理流程如下:

圖5-15 Main()處理流程

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

初始化主要完成全局變量,時鐘及相應驅動初始化,這里需要注意的是,與定時器協調工作的模塊的初始化要放到定時器初始化前面。

5.2.2.3 上位機用戶界面

上位機用戶界面主要是便于操作人員和高壓平流泵控制系統的交互。實時地直觀的顯示出系統反饋的相關信息和方便的設置調控系統相關參數。

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

6測試

6.1測試

6.1.1 軟件仿真

通過開發工具的仿真功能對系統做功能仿真和時序分析。

6.1.2實物調試

通過調試電機,了解到PWM脈沖周期直接影響電機穩定性

6.2測試數據

6.2.1 串口測試

串口主要實現功能就是通信,一方面輸出程序需要輸出的數據,另一方面輸入數據時根據需要輸出數據。這里只是簡單地讓系統輸出速度設定值,當設定值改變時,輸出亦改變。測試結果如下:

圖6-1 串口測試

由測試結果知,系統很好地完成了串口功能。

6.2.2 ADC測試

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

圖6-2 電流采樣測試

由測試結果知,系統的ADC模塊精度高。

6.2.3電機速度采樣與調速測試

系統采樣電機速度,并根據采樣結果對電機進行相應調速?,F給出1000rpm和3000rpm時調試結果,系統向上調速時輸出“100plu”,向下調速時輸出“100min”,如下圖。

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

由測試結果可知,系統調速精度在1.0%內,當超出此范圍時就調速,使系統維持在設置速度1.0%內。



評論


相關推薦

技術專區

關閉