基于雙單片機通信的無刷直流電動機控制系統(tǒng)
在無刷直流電動機控制系統(tǒng)中,通常用DSP對信號進行采集和處理。但由于DSP的價格昂貴,在一些實時性要求不高的場合,可以用MCS-51單片機來代替DSP控制無刷直流電動機的起停、正反轉(zhuǎn)和調(diào)速。
本文設(shè)計并實現(xiàn)了一種基于雙單片機通信的無刷直流電動機控制系統(tǒng)。該設(shè)計方案電路簡單、可靠性強、價格便宜。系統(tǒng)主要包括單片機控制電路、邏輯保護電路、過流保護電路、驅(qū)動電路、測速電路、轉(zhuǎn)子位置檢測電路等。其原理如圖1所示。
H1 | H2 | H3 | 導通的管子 | 控制字 |
1 | 0 | 1 | Q1,Q2 | 0x0f |
1 | 0 | 0 | Q2,Q3 | 0x27 |
1 | 1 | 0 | Q3,Q4 | 0x33 |
0 | 1 | 0 | Q4,Q5 | 0x39 |
0 | 1 | 1 | Q5,Q6 | 0x3c |
0 | 0 | 1 | Q6,Q1 | 0x1e |
1 轉(zhuǎn)子位置檢測電路
控制無刷直流電動機時,必須要知道轉(zhuǎn)子的位置。在本設(shè)計方案中,采用了三個光電式位置傳感器。這種傳感器利用光電效應(yīng),由跟隨電動機轉(zhuǎn)子一起旋轉(zhuǎn)的遮光板和固定不動的光源及光電管等部件組成。遮光板開有180°電角度左右的縫隙。隨著電機轉(zhuǎn)子的旋轉(zhuǎn),光電管間歇接收從光源發(fā)出的光,不斷導通和截止,從而產(chǎn)生一系列0、1信號。這些信號通過P0口傳輸給單片機后,單片機通過P1口送出相應(yīng)的控制字,就能很好地控制電機的換相。其控制原理圖和換向控制表如圖2和表1所示。
2 驅(qū)動電路
絕緣柵極雙極型晶體管IGBT的柵極驅(qū)動電壓一般為15V±10%,而關(guān)斷負偏置電壓為5~6V。因此選用TLP250驅(qū)動IGBT,電路如圖3所示。 TLP250內(nèi)部是光電耦合的,實現(xiàn)將控制電路與主電路隔離。當3腳接收到一個低電平時,VGE輸出近似為15V,可以驅(qū)動IGBT使其導通;相反,當3 腳接收到一個高電平時,VGE輸出近似為-5V,使IGBT截止。六只TLP250隨著輸入電平變化,可以很好地控制IGBT的開斷,從而實現(xiàn)換相。
3 保護電路
3.1 起動時的限流保護電路
電動機起動時,由于轉(zhuǎn)速較低,故轉(zhuǎn)子磁通切割定子繞組所產(chǎn)生的反電勢很小,因而可能產(chǎn)生過大的電流I。通常要加過流保護電路。主回路中通過電動機的電流最終通過電阻Rf接地。因此,Uf=Rf·IM,其大小正比于電動機的電流IM,Uf通過10kΩ電阻與電壓比較器LM324反相輸入端相連。當Uf大于LM324正相輸入端給定電壓U0時,LM324輸出低電平。使發(fā)光二極管導通,則三極管C端輸出低電平。由于C端與三輸入與非門74LS10相連,不論另外兩輸入如何,其輸出必為高電平,因而從TLP250輸出-5V,同時關(guān)斷了Q2、Q4、Q6三只 IGBT,即切斷子主電路。當Uf<U0時,LM324輸出高電平,這時它不起任何作用,電機正常換相。
3.2 運行時的邏輯保護電路
為防止單片機系統(tǒng)受環(huán)境干擾或執(zhí)行程序時出錯,在單片機輸出端加了一個邏輯保護電路,其電路如圖5所示。假定起動電流不超過最大電流,則輸入C不起任何作用,輸出只受P10~P15控制。按照所設(shè)計的橋式電路,要求Q1與Q4、Q2與Q5、Q3與Q6不能同時導通,否則通過IGBT的電流過大,導致過流損壞。根據(jù)電路的邏輯關(guān)系,當P10P13、P11P14、P12P15出錯,都輸出低電平,或者P0口輸出均為低電平(高電平),Q1Q4、Q2Q5、 Q3Q6沒有同時導通,很好地保護了電路。
4 測速電路
如果要對直流無刷電動機的轉(zhuǎn)速進行精確控制,首先要對它的轉(zhuǎn)速進行精確測量。筆者利用轉(zhuǎn)子位置傳感器所產(chǎn)生的脈沖信號來反映電機的轉(zhuǎn)速。將傳感器輸出端接到單片機的P15口,隨著電機的轉(zhuǎn)動,單片機不斷的接收到高低電平。當單片機檢測到一個下跳沿時開始啟動定時器T1工作,直到接收到下一個相鄰的下跳沿時為止。相繼兩個高電平之間的時間與電機的轉(zhuǎn)速成正比,可以測量出電動機的轉(zhuǎn)速。
5 雙單片機控制電路
5.1 設(shè)計原理
在本設(shè)計方案中,用單片機來控制無刷直流電機的起動、換相、調(diào)速、正反轉(zhuǎn)及停車。在設(shè)計中,由于程序在測量轉(zhuǎn)速時,有一個等待延時時間,如果電動機轉(zhuǎn)速較低,則傳感器傳輸?shù)膬蓚€高電平間隔較大,則必然影響到電機換向,使電機失步而停車。為避免這種情況,在設(shè)計時使用了兩片89C52單片機,其中一塊為主單片機,一塊為從單片機。從單片機主要負責控制電動機的換相時機。當從單片機接收到轉(zhuǎn)子位置檢測電路的轉(zhuǎn)子位置信息后,由其P1口向邏輯保護電路發(fā)出兩路信號,邏輯保護電路將接收到的信號反相后傳輸給六只IGBT的柵極驅(qū)動電路,從而控制定子繞組的換相時機。主單片機負責測量轉(zhuǎn)速,并將測到的實際轉(zhuǎn)速與給定轉(zhuǎn)速比較,將比較結(jié)果通過串行口TXD傳送到從單片機。從單片機接收到信息后,在換相時機不變的前提下,改變定子國繞組電流通電時間,從而達到調(diào)整的目的。單片機接法如圖6所示。
5.2 串行口雙機通信
在串行通信中,接收、發(fā)送雙方向波特率必須一致。因此,首先要設(shè)定通信波特率,根據(jù)需要設(shè)置合理的發(fā)送接收速率。主單片機程序在復位時,初始化串行傳送控制寄存器SCON,設(shè)置SCON=0x40,此時采用串行傳輸模式一。令SMOD=1,TMOD=0x21,定時器T1設(shè)為方式二,初值設(shè)為0xff,則波特率為62.5kbit/s。主單片機采用定時發(fā)送數(shù)據(jù)方式,從單片機接收數(shù)據(jù)采用中斷方式。首先要對串行口進行初始化,定義SCON使REN=1,且要開CPU及串行口中斷,使EA=1,ES=1。接收到數(shù)據(jù)后,接上中斷標志位RI為1,程序進入中斷服務(wù)程序,先關(guān)中斷,然后將SBUF接收到的數(shù)據(jù)取出,再使RI清零并開中斷退出中斷服務(wù)程序。具體思路是:主單片機將測量的轉(zhuǎn)速與設(shè)定轉(zhuǎn)速比較,如果過大,則通過串行口向從單片機發(fā)出數(shù)字0;如果過小,則向從單片機發(fā)出數(shù)字1;如果相等,則向從單片機發(fā)出數(shù)字2。從單片機通過中斷讀取信息,如果SBUF里數(shù)的為0,則增大換相延時時間,降低電機轉(zhuǎn)速,直至接收到2為止;如果SBUF里的數(shù)為1,則減小換相延時時間,以增大電機轉(zhuǎn)速,直至接收到2為止;如果SBUF里的數(shù)為2,則換相延時時間不變,電機保持在當前速度下運行。
5.3 串行通信軟件設(shè)計
整個軟件采用C51語言編寫,全部模塊化編程。主單片機程序模塊主要包括測速程序、設(shè)定速度程序、速度顯示程序,其主函數(shù)流程圖如圖7所示。從單片機程序模塊主要包括正轉(zhuǎn)、反轉(zhuǎn)及停車程序、調(diào)整程序、串行中斷服務(wù)程序,其主函數(shù)流程圖及中斷函數(shù)流程圖如圖8、圖9所示。
本文設(shè)計并實現(xiàn)的無刷直流電動機控制系統(tǒng),在實驗室已調(diào)試成功。該電路軟件仿真和硬件實現(xiàn)已通過驗證,取得了很好的效果。實踐證明本設(shè)計可行有效。