一種基于mcu的多通道均勻伺服脈沖生成方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉伺服控制領(lǐng)域,特別涉及一種基于MCU的多通道均勻伺服脈沖生成方法。
【背景技術(shù)】
[0002]工業(yè)自動化的發(fā)展,對傳動系統(tǒng)的精度和性能提出了更高的要求。伺服驅(qū)動系統(tǒng)有著定位精確、轉(zhuǎn)速精度高、轉(zhuǎn)速可調(diào)范圍大、轉(zhuǎn)矩穩(wěn)定、加速快、外型緊湊的優(yōu)點(diǎn),在數(shù)控機(jī)床和工業(yè)機(jī)器人這類要求高精度定位的數(shù)控領(lǐng)域得到了越來越廣泛的應(yīng)用。伺服驅(qū)動技術(shù)作為數(shù)控機(jī)床、工業(yè)機(jī)器人及其它產(chǎn)業(yè)機(jī)械控制的關(guān)鍵技術(shù)之一,在國內(nèi)外普遍受到關(guān)注。伺服系統(tǒng)以位置和速度作為控制對象,是連接數(shù)控裝置和機(jī)械本體的關(guān)鍵部分,接受數(shù)控裝置發(fā)來的進(jìn)給脈沖指令信號,經(jīng)過信號變換和功率放大經(jīng)由伺服電機(jī)驅(qū)動數(shù)控設(shè)備實(shí)現(xiàn)所要求的運(yùn)動。
[0003]位置和速度的控制精度是伺服系統(tǒng)的核心價值所在,是衡量數(shù)控系統(tǒng)最為重要的技術(shù)指標(biāo)之一。多年來伺服電機(jī)和伺服驅(qū)動器廠商不遺余力地進(jìn)行技術(shù)升級和創(chuàng)新,取得了豐碩的成果。然而數(shù)控系統(tǒng)分為算法計(jì)算、數(shù)據(jù)傳輸、機(jī)械執(zhí)行三個環(huán)節(jié),伺服電機(jī)和伺服驅(qū)動器只是數(shù)控系統(tǒng)其中一個機(jī)械執(zhí)行環(huán)節(jié),提高整個數(shù)控系統(tǒng)的性能需要各個環(huán)節(jié)的性能保證。目前,數(shù)據(jù)傳輸這一環(huán)是較為薄弱的一環(huán),制約著系統(tǒng)性能和精度的提升。
[0004]在數(shù)據(jù)傳輸上,大部分?jǐn)?shù)控系統(tǒng)采用數(shù)據(jù)總線進(jìn)行數(shù)據(jù)傳輸再經(jīng)由MCU處理,得到的具體命令交由FPGA產(chǎn)生各路伺服脈沖再經(jīng)電平轉(zhuǎn)換后發(fā)送至伺服驅(qū)動器,以固定周期控制系統(tǒng)運(yùn)行。伺服驅(qū)動器是根據(jù)接收的脈沖動作的,由于控制周期固定,欲保證伺服驅(qū)動器動作均勻協(xié)調(diào)則脈沖發(fā)送的均勻性就顯得至關(guān)重要,周期內(nèi)脈沖的不均勻?qū)?yán)重影響伺服動作的平滑性和伺服之間的同步。一般的方法中,MCU難以做到輸出均勻的伺服脈沖,所以添加FPGA輔助產(chǎn)生和分發(fā)脈沖。FPGA雖然實(shí)現(xiàn)了脈沖分發(fā)的均勻性,但也增加了系統(tǒng)的環(huán)節(jié)和時延,拉長了輸出傳輸這薄弱的一環(huán),影響了系統(tǒng)性能提升和帶來成本上升。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于MCU的多通道均勻伺服脈沖生成方法。
[0006]本發(fā)明的目的通過以下的技術(shù)方案實(shí)現(xiàn):
[0007]一種基于MCU的多通道均勻伺服脈沖生成方法,包含以下順序的步驟:
[0008]a.系統(tǒng)初始化時設(shè)置MCU自動裝載定時器中斷定時時長T,設(shè)置控制周期Tc,一個T為一個步長,一個控制周期的步數(shù)總數(shù)為Tc/T,啟動定時器,開系統(tǒng)中斷;
[0009]b.一個控制周期的起始,設(shè)置各通道參數(shù),包括輸出極性、相移Ps、翻轉(zhuǎn)系數(shù)K、輸出脈沖數(shù),通過設(shè)置上述4個通道參數(shù),輸出伺服所需的控制脈沖;同時步數(shù)計(jì)數(shù)清零,根據(jù)通道極性初始化GP1 ;
[0010]C.判斷步長計(jì)數(shù)是否等于步數(shù)總數(shù),若是則進(jìn)入步驟g,若不是則MCU執(zhí)行其他任務(wù),等待到達(dá)步長時間T進(jìn)入中斷任務(wù);
[0011]d.以中斷查詢的方式判斷各個通道在該時刻是否需要進(jìn)行電平的翻轉(zhuǎn),若需要則進(jìn)入步驟Θ,若不需要則進(jìn)入步驟f ;
[0012]e.翻轉(zhuǎn)對應(yīng)的滿足翻轉(zhuǎn)條件的GP1輸出管腳的電平,進(jìn)入步驟f ;
[0013]f.步數(shù)計(jì)數(shù)增加1,退出中斷任務(wù),進(jìn)入步驟c ;
[0014]g.當(dāng)前的控制周期結(jié)束,進(jìn)入下一控制周期。
[0015]步驟a中,所述的步數(shù)總數(shù)要滿足以下條件:設(shè)置定時步長和控制周期時使步數(shù)總數(shù)為一個控制周期內(nèi)輸出伺服脈沖數(shù)的最大值的4倍以上的偶數(shù)。定時步長T遠(yuǎn)大于MCU的指令周期以避免系統(tǒng)頻繁被中斷而影響其他任務(wù)的執(zhí)行,步數(shù)總數(shù)Tc/T應(yīng)為一個控制周期內(nèi)輸出伺服脈沖數(shù)的最大值的4倍以上,越大則輸出脈沖的均勻誤差越小,在系統(tǒng)設(shè)置時步數(shù)總數(shù)Tc/T設(shè)為偶數(shù)也能減少誤差。
[0016]步驟b中,所述的翻轉(zhuǎn)系數(shù)K的計(jì)算方法是:翻轉(zhuǎn)系數(shù)K等于步數(shù)總數(shù)除以2倍的該通道設(shè)定輸出脈沖數(shù),只保留整數(shù)結(jié)果。翻轉(zhuǎn)系數(shù)K實(shí)質(zhì)為每個通道的電平翻轉(zhuǎn)間隔,其基本單位是定時步長T,每個脈沖需要兩次翻轉(zhuǎn),因此,翻轉(zhuǎn)系數(shù)K等于步數(shù)總數(shù)除以2倍的該通道設(shè)定輸出脈沖數(shù),結(jié)果只保留整數(shù)。相移Ps以定時步長T為基本單位將通道脈沖輸出的起始點(diǎn)進(jìn)行相位偏移,產(chǎn)生相移可調(diào)的脈沖輸出。
[0017]步驟b中,所述的根據(jù)通道極性初始化GP1具體為:若通道輸出極性為正,則GP1初始為低電平,反之GP1初始為高電平。GP1為MCU的通用輸入輸出管腳,一個GP1口可以對應(yīng)輸出一個通道的伺服脈沖,本發(fā)明的方法對輸出脈沖的通道數(shù)沒有限制,只要MCU的GP1管腳數(shù)量滿足所需的脈沖數(shù)即可,因此選擇MCU時需要對GP1管腳數(shù)有要求。
[0018]步驟c中,所述的MCU,其運(yùn)行任務(wù)的時間基準(zhǔn)是以定時步長為單位的步數(shù)計(jì)數(shù)方式。該方式中時鐘不暫停從而保證系統(tǒng)運(yùn)行時序的精確性。
[0019]步驟d中,所述的以中斷查詢的方式判斷各個通道在該時刻是否需要進(jìn)行電平的翻轉(zhuǎn),其判斷方法為各通道翻轉(zhuǎn)系數(shù)K能否整除當(dāng)前步數(shù)計(jì)數(shù)Cs與對應(yīng)通道的相移Ps的和,若能夠整除則需要進(jìn)行電平的翻轉(zhuǎn),反之則不需要。
[0020]本發(fā)明與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn)和有益效果:
[0021]1、只需一個中斷定時器即可完成多通道的伺服脈沖輸出,滿足多路均勻伺服脈沖發(fā)生的需求。
[0022]2、縮短數(shù)據(jù)傳輸環(huán)節(jié),減少了控制命令的時延,以一個時間為參考基準(zhǔn),精確地驅(qū)動系統(tǒng)任務(wù),有效提高了系統(tǒng)的時效性。
[0023]3、在通用的MCU上實(shí)現(xiàn),簡化系統(tǒng)結(jié)構(gòu),節(jié)約開發(fā)成本。
[0024]4、在系統(tǒng)的每一個控制周期都能調(diào)整各通道的脈沖輸出形式,使得對伺服的控制更加精確,這是采用普通MCU方法用定時器輸出所做不到的。
【附圖說明】
[0025]圖1為本發(fā)明所述的一種基于MCU的多通道均勻伺服脈沖生成方法的流程圖;
[0026]圖2為多通道均勻脈沖生成的實(shí)例示意圖。
【具體實(shí)施方式】
[0027]下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
[0028]如圖1,一種基于MCU的多通道均勻伺服脈沖生成方法,包含以下順序的步驟: