基于THB6064H的步進電機閉環(huán)控制電路設(shè)計
引言
本文引用地址:http://2s4d.com/article/201603/287662.htm步進電機是將電脈沖信號轉(zhuǎn)換成角位移或線位移的一種裝置。它產(chǎn)生的位移與輸入脈沖數(shù)嚴(yán)格成正比,平均轉(zhuǎn)速與輸入脈沖的頻率成正比,具有結(jié)構(gòu)簡單、可靠性高和成本低的特點。由于步進電機沒有積累誤差,容易實現(xiàn)較高精度的位移和速度控制,被廣泛用于精確控制領(lǐng)域。由步進電機與驅(qū)動電路組成的開環(huán)數(shù)控系統(tǒng)簡單并且價格低廉,但有時存在振蕩和失步現(xiàn)象,故在復(fù)雜電磁環(huán)境下或是對精度要求較高的場合下,必須加入反饋電路組成高性能的閉環(huán)數(shù)控系統(tǒng)[1]。本文采用旋轉(zhuǎn)編碼器作為反饋器件對步進電機實行閉環(huán)控制。
1THB6064H簡介
THB6064H是在東芝公司2009年主推的TB6560AHQ的基礎(chǔ)上開發(fā)的一款PWM斬波型兩相步進電機驅(qū)動芯片。該芯片配合簡單的外圍電路即可設(shè)計出高性能、多細(xì)分、大電流的驅(qū)動電路,在低成本、低振動、低噪聲、高速度的設(shè)計中應(yīng)用效果較佳。其主要參數(shù)和性能指標(biāo)有:雙全橋 MOSFET 驅(qū)動,低導(dǎo)通電阻 Ron=0.4 Ω(上橋+下橋),高耐壓 50 V DC,大電流 4.5 A(峰值);多種細(xì)分可選(1/2、1/8、1/10、1/16、1/20、1/32、1/40、1/64),自動半流鎖定功能,衰減方式連續(xù)可調(diào);內(nèi)置高溫保護及過流保護,當(dāng)溫度高于170 ℃時自動斷開所有輸出;封裝形式為HZIP25P1.27封裝[2]。
2控制原理
本文的步進電機閉環(huán)控制方法采用核步法[3]。核步法的控制思想是從簡化控制系統(tǒng)出發(fā),利用核步計數(shù)器對系統(tǒng)位置進行跟蹤監(jiān)視,即時發(fā)出反饋控制信號,從而完成對位置的控制。其基本原理如圖1所示。單片機接收來自上位機的時序脈沖信號和方向信號,經(jīng)驅(qū)動放大后送往步進電機來控制步進電機工作;步進電機帶動編碼器同軸旋轉(zhuǎn),由編碼器檢測轉(zhuǎn)角度,并以脈沖的形式反饋到單片機進行核步計數(shù);單片機根據(jù)脈沖反饋當(dāng)量值與給定值進行比較,按照核步算法發(fā)出控制指令。如果發(fā)生丟步,單片機就會根據(jù)差值繼續(xù)發(fā)送脈沖,把丟掉的步數(shù)補上,從而完成步進電機轉(zhuǎn)動位置的閉環(huán)控制。
圖1閉環(huán)控制原理示意圖
3硬件設(shè)計
3.1驅(qū)動部分電路
驅(qū)動電路以步進電機驅(qū)動芯片THB6064H為核心,配合簡單的外圍電路實現(xiàn)步進電機的驅(qū)動。驅(qū)動電路如圖2所示。
圖2驅(qū)動電路
驅(qū)動電源的電壓最高不能超過50 V,要大于芯片邏輯電壓。提高驅(qū)動電壓可使電機在高頻范圍轉(zhuǎn)矩增大,電壓大小要根據(jù)使用情況來選擇。VMA、VMB端口是步進電機的驅(qū)動電源引腳,設(shè)計時應(yīng)接入瓷片去耦電容和電解電容用來穩(wěn)壓。OUT1A、OUT2A、OUT1B、OUT2B 端口分別為步進電機的2相輸出接口,由于此芯片內(nèi)集成了續(xù)流二極管,不用像以前的一些驅(qū)動芯片那樣在輸出口外接二極管,因此就可以使電路板的布線空間縮小,從而減小控制器的體積。NFA、NFB端口分別為步進電機A、B兩相的相電流檢測端,應(yīng)連接大功率檢測電阻,典型值為025 Ω/2 W。VREF為電流設(shè)定端,調(diào)整此端電壓就可以設(shè)定驅(qū)動電流的大小。PGNDA、PGNDB、SGND分別為步進電機驅(qū)動的引腳地和邏輯電源地。芯片的邏輯電源為5 V,VDD端口為邏輯電源引腳,設(shè)計時也要接入電容來減小干擾噪聲;ALERT為過流保護輸出端;RESET為芯片復(fù)位腳,低電平有效;OSC1A、OSC1B端口所接電容的大小決定了斬波器頻率,推薦接入100~1 000 pF的電容,此時的斬波頻率為400~44 kHz;M1、M2、M3端口分別為步進電機驅(qū)動的細(xì)分設(shè)置引腳,用外接撥碼開關(guān)可設(shè)定不同的細(xì)分值,例如整步、1/2步、1/4步、1/8步等,最高可達64細(xì)分。由于步進電機在低頻工作時,可能會伴有較大的振動和較大的噪聲,這些就需要通過細(xì)分驅(qū)動來解決。驅(qū)動輸出的電流調(diào)節(jié)和衰減方式調(diào)節(jié)都可通過外接撥碼開關(guān)來實現(xiàn),電路簡單,方便可靠。
3.2反饋控制電路
電路的反饋環(huán)節(jié)選用增量型旋轉(zhuǎn)編碼器與步進電機固定同軸旋轉(zhuǎn),產(chǎn)生反饋脈沖信號,發(fā)送到單片機,經(jīng)單片機處理后獲得步進電機的旋轉(zhuǎn)信息。
3.2.1旋轉(zhuǎn)編碼器的工作原理
旋轉(zhuǎn)編碼器是一種集光、機、電于一體的轉(zhuǎn)速、位移傳感器,具有高頻響、分辨能力高、力矩小、耗能低、性能可靠、使用壽命長等優(yōu)點。旋轉(zhuǎn)編碼器包括碼盤(編碼盤的線數(shù)不同)、發(fā)光元件、接收元件和信號處理部分。碼盤的線數(shù)決定了其精度。當(dāng)步進電機帶動碼盤旋轉(zhuǎn)時,因刻線處透光,間隔處不透光,透過的光被接收元件接收并輸入到信號處理部分,產(chǎn)生脈沖信號輸出。旋轉(zhuǎn)編碼器一般分為增量式和絕對式:增量式旋轉(zhuǎn)編碼器輸出脈沖供后續(xù)電路計數(shù)和旋轉(zhuǎn)方向的判斷,能夠?qū)崿F(xiàn)多圈無限累計測量;絕對式旋轉(zhuǎn)編碼器以代碼的形式輸出來表示當(dāng)前的位置,轉(zhuǎn)動方向是通過代碼的變化趨勢來確定的[4]。一般相同分辨率的編碼器,增量式的要比絕對式的便宜,實際應(yīng)用中,增量式旋轉(zhuǎn)編碼器應(yīng)用更為廣泛。本文選用增量型旋轉(zhuǎn)編碼器,有三根信號輸出線A相、B相、Z相。當(dāng)編碼器轉(zhuǎn)動時A、B兩根線都產(chǎn)生脈沖輸出,A、B兩相脈沖相差90°相位角,由此可測出編碼器的轉(zhuǎn)動方向與電機轉(zhuǎn)速。當(dāng)正轉(zhuǎn)時,A相脈沖比B相脈沖超前90°,反轉(zhuǎn)時A相比B相落后90°。A相用來測量脈沖個數(shù),B相與A相配合就可測量出轉(zhuǎn)動方向。Z相為零脈沖線,光電編碼器在每轉(zhuǎn)一圈的固定位置產(chǎn)生一個脈沖,主要用作計數(shù)和基準(zhǔn)點定位,一般可以不用該相。
3.2.2控制電路
控制部分電路是以51單片機為控制核心,接收上位機的脈沖信號和方向信號CLK1和CW1經(jīng)過存儲處理后發(fā)送給驅(qū)動電路部分驅(qū)動步進電機工作。另外,單片機還要實時接收來自旋轉(zhuǎn)編碼器的反饋脈沖信號,對編碼器的兩相反饋脈沖信號進行處理,判斷步進電機的位置和旋轉(zhuǎn)方向是否與給定信息相符合,如果不相符就調(diào)用相應(yīng)的算法進行自動補償,最終使步進電機達到預(yù)定的位置。由于旋轉(zhuǎn)編碼器的分辨率有高有低,如果選擇高分辨率的旋轉(zhuǎn)編碼器,在細(xì)分情況下,當(dāng)步進電機在最高轉(zhuǎn)速時,要求單片機的相應(yīng)速度要符合要求。本設(shè)計選用的單片機為宏晶科技的STC12C5201單片機,1個時鐘/機器周期,增強型8051內(nèi)核,速度比普通8051快8~12倍。一般程序稍大的可選用STC12C5202或者STC12C5204。編碼器與STC12C5201的接口如圖3所示。
圖3編碼器與單片機接口
需要注意的是,上位機向單片機發(fā)送控制信號的時候要經(jīng)過光耦隔離。光耦隔離的作用有兩個:第一,防止電機干擾和損壞前級芯片;第二,對控制信號進行整形。對于控制信號CLK和CW/CCW要選用中速或者高速的光耦,以保證信號經(jīng)過光耦后不會發(fā)生延遲或者變形而影響步進電機的驅(qū)動[5]。
4軟件設(shè)計
軟件設(shè)計中初始化設(shè)置要定義各端口的功能,電機的初始化主要是運行前設(shè)置端口的I/O方向,確定所選擇的細(xì)分驅(qū)動方式等。之后,要實時獲得電機的工作狀態(tài)和驅(qū)動電機運轉(zhuǎn),并在中斷服務(wù)程序中處理電機的丟步和轉(zhuǎn)向控制[6]。現(xiàn)代單片機運行速度都很快,所以對編碼器采用軟件鑒相,既簡化電路結(jié)構(gòu),又節(jié)約成本。將編碼器的A相與單片機的外部中斷INT0相連,B相與普通I/O口的P1.0相連。由于編碼器的A相與B相在輸出上有固定的相位關(guān)系,正轉(zhuǎn)與反轉(zhuǎn)時編碼器的A、B兩相的電平信號不同,正轉(zhuǎn)時,每當(dāng)A相出現(xiàn)高電平的前四分之一周期時,B相為高電平;反轉(zhuǎn)時,每當(dāng)A相出現(xiàn)高電平的前四分之一周期時,B相為低電平。因此,單片機使用外部中斷0來處理編碼器數(shù)據(jù),把編碼器的A相接中斷源。在中斷服務(wù)程序中,程序通過讀取B相(P1.0口)的狀態(tài)來確定編碼器的轉(zhuǎn)向,進而完成加1或者減1的雙向計數(shù)[7]。軟件程序流程如圖4所示。
圖4軟件程序流程
結(jié)語
本文提出了基于驅(qū)動芯片THB6064H的步進電機閉環(huán)控制電路設(shè)計方案。硬件設(shè)計將低成本的51單片機與步進電機專用驅(qū)動芯片一體化(目前基本都是分立開的),既可以實現(xiàn)所需功能,又能降低成本。該電路結(jié)構(gòu)簡單、動態(tài)特性好、適應(yīng)性強、速度快、精度高、性能穩(wěn)定。采用編碼器作為位置反饋,既能使步進電機達到伺服電機的高速度、高精度效果,又能降低成本,在各種車床、切割機、雕刻機等數(shù)控場合有很高的實用價值。
評論