新聞中心

EEPW首頁(yè) > EDA/PCB > 設(shè)計(jì)應(yīng)用 > TPC單元及其在步進(jìn)電機(jī)調(diào)速中的應(yīng)用

TPC單元及其在步進(jìn)電機(jī)調(diào)速中的應(yīng)用

——
作者:華中科技大學(xué) 馬海 何頂新 鄭孝洋 陳光東 時(shí)間:2007-01-26 來源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》 收藏

步進(jìn)電機(jī)在各種自動(dòng)化控制系統(tǒng)中有著廣泛的應(yīng)用,是機(jī)電一體化裝置中的關(guān)鍵部件。這是一種數(shù)字控制的電動(dòng)機(jī),是將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu),它通過控制脈沖個(gè)數(shù)和脈沖頻率來控制電機(jī)的角位移量和轉(zhuǎn)動(dòng)速度,從而達(dá)到準(zhǔn)確定位和調(diào)速的目的。

傳統(tǒng)的步進(jìn)電機(jī)所需的數(shù)字式電脈沖信號(hào)(即方波控制信號(hào))一般都是借助數(shù)字邏輯電路來產(chǎn)生。隨著嵌入式技術(shù)的不斷發(fā)展,單片機(jī)的應(yīng)用更為廣泛,由單片機(jī)定時(shí)來產(chǎn)生這種脈沖信號(hào)的場(chǎng)合越來越多。單片機(jī)定時(shí)控制脈沖一般有軟件定時(shí)和定時(shí)器定時(shí)兩種方式。前一種方式占用了cpu的大部分工作時(shí)間,所以常用定時(shí)器定時(shí)中斷來產(chǎn)生脈沖信號(hào)。由于一般的單片機(jī)系統(tǒng)中斷響應(yīng)時(shí)間大部分在10us級(jí)以上,因而定時(shí)器定時(shí)中斷來產(chǎn)生脈沖的精確度大致也在10us級(jí)以上,往往不能滿足步進(jìn)電機(jī)速度控制的高精度要求。為了提高脈沖控制的精確度,筆者采用瑞薩公司h8/300h系列的h8/3062f單片機(jī)中的可編程定時(shí)式樣控制器進(jìn)行脈沖控制,使得脈沖信號(hào)輸出的相應(yīng)時(shí)間達(dá)到o.1us級(jí),從而能夠滿足步進(jìn)電機(jī)速度控制的高精度要求。

本文引用地址:http://2s4d.com/article/21590.htm

1 可編程定時(shí)式樣控制器tpc

可編程定時(shí)式樣控制器tpc是瑞薩公司h8/300h系列單片機(jī)所特有的一個(gè)功能模塊,它用16位定時(shí)器作時(shí)基提供各種式樣的脈沖輸出。圖1為tpc的結(jié)構(gòu)框圖。tpc的脈沖輸出分成可同時(shí)獨(dú)立運(yùn)作的4組,每組4位,分別由定時(shí)器的4個(gè)通道的比較匹配信號(hào)來觸發(fā)。tpc借用了端口b和端口a的共16條引腳tp15~tp0作為其輸出,可按位開放,最多可以控制16個(gè)脈沖輸出,而輸出數(shù)據(jù)由兩端口的數(shù)據(jù)寄存器pbdr和padr以及后續(xù)數(shù)據(jù)寄存器ndrb和ndra提供。端口數(shù)據(jù)方向寄存器paddr和pbddr用于控制引腳的輸入或輸出;而后續(xù)數(shù)據(jù)允許寄存器ndera和nderb用來開放或關(guān)閉tpc的端口輸出;tpc的輸出方式寄存器tpmr用于選擇tpc每組的輸出方式;輸出控制寄存器tpcr則用于選擇tpc每組的觸發(fā)信號(hào)源,即由定時(shí)器的哪個(gè)通道觸發(fā)。其中單片機(jī)h8/3062f的定時(shí)器有3個(gè)通道,每個(gè)通道分別有3個(gè)寄存器:定時(shí)計(jì)數(shù)器tcnt、通用寄存器gra和grb。

定時(shí)器啟動(dòng)后,定時(shí)器中已選定的某通道的計(jì)數(shù)寄存器tcnt將對(duì)時(shí)鐘源的脈沖進(jìn)行計(jì)數(shù)。當(dāng)tcnt等于該通道的通用寄存器gra(grb)中數(shù)值時(shí),就稱作該通道的a(b)比較匹配事件發(fā)生。這樣事先置于后續(xù)數(shù)據(jù)寄存器ndra(ndrb)的值自動(dòng)被傳送到相應(yīng)端口a(b)的數(shù)據(jù)寄存器padr(pbdr)對(duì)應(yīng)的位,于是就更新了tpc的輸出值。

tpc有兩種輸出方式,即不重疊輸出和正常輸出。可以通過輸出方式寄存器tpmr,來選擇tpc每組的輸出方式。不重疊輸出方式是在脈沖輸出之間可保障有不重疊裕度。在該通道的通用寄存器grb中,設(shè)置不重疊tpc輸出波形的輸出觸發(fā)周期,則不重疊裕度置于gra中,輸出值將在a比較匹配事件和b比較匹配事件發(fā)生時(shí)變化觸發(fā)。正常輸出方式,則是在gra中設(shè)置tpc輸出波形的輸出觸發(fā)周期,當(dāng)a比較匹配事件發(fā)生時(shí)tpc輸出信號(hào)。根據(jù)步進(jìn)電機(jī)的脈沖控制要求,這里采用的是正常輸出方式。

tpc用于步進(jìn)電機(jī)脈沖控制的原理如下:首先,將通用寄存器gra選作輸出比較寄存器;然后,將tpc下一個(gè)輸出的端口值置于后續(xù)數(shù)據(jù)寄存器ndra(ndrb),再啟動(dòng)定時(shí)器,當(dāng)a比較匹配事件發(fā)生時(shí)發(fā)出中斷請(qǐng)求。在研究tpc輸出時(shí)序的過程中發(fā)現(xiàn),tpc并非是在中斷響應(yīng)過程中給tpc端口送值的,而是在a比較匹配事件發(fā)生的3個(gè)時(shí)鐘周期后,就把事先置于后續(xù)數(shù)據(jù)寄存器的值送到端口數(shù)據(jù)寄存器padr(pbdr),于是就更新了tpc的輸出值。由于h8/3062f系列的單片機(jī)時(shí)鐘頻率都在20 mhz以上,這樣只需不到o.2ms,就可以送出端口信號(hào),大大縮短了響應(yīng)時(shí)間,比一般的單片機(jī)在定時(shí)中斷過程中送端口信號(hào)快了幾十倍甚至上百倍,從而使對(duì)脈沖控制的更加準(zhǔn)確。而在中斷子程序中則是更新后續(xù)數(shù)據(jù)寄存器ndra(ndrb)和輸出比較寄存器gra的值,從而改變脈沖的頻率實(shí)現(xiàn)對(duì)異步電機(jī)的調(diào)速。圖2為產(chǎn)生脈沖頻率變化的原理圖。圖中g(shù)ra、gra和gra"抽象地表示3個(gè)不同的gra值,從而演示了gra值的改變對(duì)脈沖頻率的影響。
2 步進(jìn)電機(jī)的啟動(dòng)、調(diào)速及加減速脈沖控制方案

采用h8/3062f的tpc的tp15引腳和i/o口的p1.o分別控制步進(jìn)電機(jī)的速度和方向。tp15輸出的脈沖送至由功率管組成的電機(jī)驅(qū)動(dòng)控制電路,使功率管工作在開關(guān)狀態(tài),步進(jìn)電機(jī)停止時(shí)tp15的輸出保持高電平。這樣當(dāng)tp15輸出一個(gè)負(fù)脈沖時(shí),功率管導(dǎo)通,從而使步進(jìn)電機(jī)前進(jìn)一步,通過控制tp15輸出的脈沖頻率來實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速。p1.0控制步進(jìn)電機(jī)的運(yùn)行方向。當(dāng)p1.o輸出為高電平時(shí),步進(jìn)電機(jī)前進(jìn);反之,則后退。

步進(jìn)電機(jī)在負(fù)載情況下能夠正常啟動(dòng)的脈沖頻率稱為"步進(jìn)電機(jī)啟動(dòng)頻率"。如果脈沖頻率高于該值,則電機(jī)將不能正常啟動(dòng),可能發(fā)生丟步或堵轉(zhuǎn);同樣步進(jìn)電機(jī)在制動(dòng)時(shí)也應(yīng)該最后以啟動(dòng)頻率制動(dòng)。如果要使電機(jī)達(dá)到高速轉(zhuǎn)動(dòng),那么脈沖頻率應(yīng)該有個(gè)加速過程,即啟動(dòng)頻率較低,然后按一定加速度升到所希望的高頻(降速過程反之)。較為理想的啟動(dòng)曲線,應(yīng)是按指數(shù)規(guī)律啟動(dòng),根據(jù)用戶的負(fù)載情況選擇不同的啟動(dòng)頻率和不同的指數(shù)曲線,以找到一條最理想的曲線。

一般在運(yùn)行控制過程中,采用"階梯升速法"將速度連續(xù)升到所需要的速度,按預(yù)置的曲線運(yùn)行速度轉(zhuǎn)換時(shí)間應(yīng)盡量短。為了縮短速度轉(zhuǎn)換的時(shí)間,可以采用建立數(shù)據(jù)表的方法,結(jié)合各曲線段的頻率和各段間的階梯頻率便可以建立一個(gè)連續(xù)的數(shù)據(jù)表。經(jīng)過多次"試機(jī)"計(jì)算出256個(gè)脈沖頻率對(duì)應(yīng)的gra值。其中:第一個(gè)為步進(jìn)電機(jī)啟動(dòng)頻率對(duì)應(yīng)的gra值;最后一個(gè)是步進(jìn)電機(jī)最大脈沖頻率對(duì)應(yīng)的gra值,在軟件編程中存放在數(shù)組中,用于改變脈沖頻率,實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的加減速控制。減速制動(dòng)過程與加速啟動(dòng)過程同理。圖3為階梯升速啟動(dòng)示意圖。
3 軟件程序設(shè)計(jì)

軟件部分由1個(gè)主程序和3個(gè)子程序(tpc初始化子程序、定時(shí)器初始化子程序和中斷子程序)組成,程序用c語言編寫。tpc初始化子程序設(shè)定了tp15為輸出方式及其下一個(gè)輸出的電位,并且選擇輸出信號(hào)觸發(fā)源。定時(shí)器初始化子程序選擇了定時(shí)器時(shí)鐘源,及其計(jì)數(shù)器的清o源,并打開了定時(shí)中斷。中斷子程序?qū)崿F(xiàn)了脈沖的輸出控制,從而實(shí)現(xiàn)步進(jìn)電機(jī)的調(diào)速。在編程中要重點(diǎn)考慮一個(gè)問題,就是離目標(biāo)點(diǎn)的距離與脈沖頻率位置變量的關(guān)系。這是是否加減速的依據(jù)。經(jīng)過計(jì)算發(fā)現(xiàn),當(dāng)離目標(biāo)點(diǎn)的距離大于脈沖位置變量中的值加1時(shí),步進(jìn)電機(jī)加速或者保持最高運(yùn)行速度;否則就要減速,不然到達(dá)目標(biāo)點(diǎn)時(shí)就可能無法以啟動(dòng)頻率停止,從而導(dǎo)致制動(dòng)失敗。

結(jié)語

利用h8/3062f單片機(jī)中的tpc控制步進(jìn)電機(jī)的脈沖序列,可以使步進(jìn)電機(jī)的運(yùn)行更加快速準(zhǔn)確,是一般單片機(jī)控制脈沖的響應(yīng)速度的數(shù)十倍甚至上百倍,從而滿足步進(jìn)電機(jī)調(diào)速控制的精度要求,而且tpc最多可以控制16個(gè)步進(jìn)電機(jī)同步運(yùn)行,因此在步進(jìn)電機(jī)調(diào)速中必將有廣泛的應(yīng)用。




關(guān)鍵詞:

評(píng)論


相關(guān)推薦

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

關(guān)閉