亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于STM32與CPLD雙軸運(yùn)動(dòng)控制器的設(shè)計(jì)與實(shí)現(xiàn)

        2014-11-26 16:06:22曹春臣何強(qiáng)孫來(lái)業(yè)
        新媒體研究 2014年20期
        關(guān)鍵詞:運(yùn)動(dòng)控制

        曹春臣+何強(qiáng)+孫來(lái)業(yè)

        摘 要 本文介紹了一種基于STM32與CPLD的雙軸運(yùn)動(dòng)控制器。該控制器采用32位微控制器STM32f103VET6完成粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;采用高速的CPLD完成精確插補(bǔ)及電機(jī)的高速與高精度控制。實(shí)際測(cè)試結(jié)果表明此控制器控制精度高、速度快、運(yùn)動(dòng)更加平穩(wěn),能滿足大多數(shù)雙軸聯(lián)動(dòng)控制場(chǎng)合的需求。

        關(guān)鍵詞 插補(bǔ)算法;運(yùn)動(dòng)控制;STM32;CPLD

        中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)20-0009-02

        運(yùn)動(dòng)控制器已經(jīng)從單片機(jī)或?qū)S眯酒ˋSIC)作為核心處理器,發(fā)展到了以DSP/ARM和FPGA作為核心處理器的開(kāi)放式運(yùn)動(dòng)控制器。高速、高精度始終是運(yùn)動(dòng)控制技術(shù)追求的目標(biāo)。充分利用高速處理器的計(jì)算能力,進(jìn)行復(fù)雜的運(yùn)動(dòng)規(guī)劃、高速實(shí)時(shí)多軸插補(bǔ)、誤差補(bǔ)償,使得運(yùn)動(dòng)控制精度更高、速度更快、運(yùn)動(dòng)更加平穩(wěn)。根據(jù)應(yīng)用要求,設(shè)計(jì)出智能化的運(yùn)動(dòng)控制器將成為市場(chǎng)應(yīng)用的新方向。

        1 系統(tǒng)設(shè)計(jì)方案

        本控制器以ST公司的STM32f103VET6芯片和Altera公司的CPLD芯片EPM570T100為控制核心。利用STM32運(yùn)算速度快處理能力強(qiáng)的特點(diǎn),實(shí)現(xiàn)粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;利用CPLD較強(qiáng)的邏輯處理能力,實(shí)現(xiàn)精確插補(bǔ)及電機(jī)的高速與高精度控制。其系統(tǒng)原理框圖如圖1所示。

        圖1 系統(tǒng)原理框圖

        STM32通過(guò)MAX232接口接收上位機(jī)控制指令,或以鍵盤輸入的方式輸入圖形輪廓數(shù)據(jù),之后進(jìn)行相關(guān)的算法處理,將計(jì)算所得到的初插補(bǔ)參數(shù)傳送到CPLD,由CPLD進(jìn)行精插補(bǔ),產(chǎn)生控制兩軸聯(lián)動(dòng)的脈沖信號(hào),驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)。

        2 系統(tǒng)硬件設(shè)計(jì)

        1)STM32模塊。

        STM32F103VET6為32位微控制器,芯片主頻為72 MHz,具有512KBFlash、64KB的SRAM內(nèi)存,支持USB接口、網(wǎng)口、串口等外設(shè),為運(yùn)動(dòng)控制系統(tǒng)提供豐富的外圍接口資源支持。

        STM32部分需完成接收上位機(jī)的控制指令、按鍵輸入輪廓數(shù)據(jù)、完成粗插補(bǔ)算法,顯示當(dāng)前運(yùn)行狀態(tài),與CPLD通信等功能。所以STM32芯片的外圍電路有LCD顯示模塊,矩陣鍵盤模塊,串口模塊。

        2)CPLD模塊。

        CPLD模塊的功能主要通過(guò)硬件語(yǔ)言Verilog來(lái)實(shí)現(xiàn)。CPLD負(fù)責(zé)與STM32通信,并根據(jù)數(shù)據(jù)實(shí)時(shí)進(jìn)行脈沖均勻化處理,產(chǎn)生兩軸方向與脈沖控制信號(hào),最終驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)行。設(shè)計(jì)的CPLD內(nèi)部架構(gòu)圖如圖2所示。主要由三個(gè)模塊組成:①與STM32通信模塊:包括8*10數(shù)據(jù)寄存器與命令接口;②參數(shù)運(yùn)算寄存器與數(shù)據(jù)控制模塊;③脈沖均勻化處理模塊。

        圖2 CPLD內(nèi)部架構(gòu)圖

        3)其他電路模塊。

        系統(tǒng)其他模塊還有上位機(jī)通信模塊、電源模塊等。由于此控制器采用+5 V供電,而STM32F103VET6芯片、EPM570T100芯片、LCD顯示模塊需要3.3 V電壓供電,因此用LM1117系列芯片轉(zhuǎn)換產(chǎn)生3.3 V電源。通信模塊使用MAX3232電平轉(zhuǎn)換與上位機(jī)通信,通過(guò)串口接收上位機(jī)指令,對(duì)電機(jī)進(jìn)行相應(yīng)的控制。

        3 系統(tǒng)軟件設(shè)計(jì)

        1)粗插補(bǔ)算法在STM32中的實(shí)現(xiàn)。

        ①插補(bǔ)原理。插補(bǔ)算法有很多,根據(jù)微處理器的本身特點(diǎn),這里采用數(shù)據(jù)采樣插補(bǔ)法。用一系列首尾相連的微小線段來(lái)逼近給定輪廓。每經(jīng)過(guò)一個(gè)插補(bǔ)周期就進(jìn)行一次插補(bǔ)計(jì)算,求出插補(bǔ)周期內(nèi)各個(gè)坐標(biāo)軸進(jìn)給量,得出下一個(gè)插補(bǔ)點(diǎn)的指令

        位置[1]。

        ②直線插補(bǔ)的算法實(shí)現(xiàn)。設(shè)插補(bǔ)周期T、輸入進(jìn)給速度為F、加速度為a、當(dāng)前速度為Vi、終點(diǎn)坐標(biāo)為(Xe,Ye)??傻妹總€(gè)插補(bǔ)周期的進(jìn)給步長(zhǎng)△L=ViT,所需運(yùn)動(dòng)的總長(zhǎng)度為L(zhǎng)=,X軸和Y軸的位移增量為△x=△L Xe / L,△y=△L Ye / L。插補(bǔ)第i點(diǎn)的動(dòng)點(diǎn)坐標(biāo)為X=X+△x;Y=Y+△y。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣直線插補(bǔ)軟件流程圖,如圖3所示。

        圖3 直線插補(bǔ)軟件流程圖

        ③圓弧插補(bǔ)。要進(jìn)行圓弧插補(bǔ),需要先根據(jù)指令中的進(jìn)給速度F,計(jì)算出輪廓步長(zhǎng)L,再進(jìn)行插補(bǔ)計(jì)算。以弦線逼近圓弧,就是以輪廓步長(zhǎng)為圓弧長(zhǎng)相鄰兩個(gè)插補(bǔ)點(diǎn)之間的弦長(zhǎng),由前一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)和輪廓步長(zhǎng),計(jì)算后一插補(bǔ)點(diǎn),實(shí)質(zhì)上是求后一插補(bǔ)點(diǎn)到前一插補(bǔ)點(diǎn)兩個(gè)坐標(biāo)軸的進(jìn)給量△X,△Y。設(shè)S(X,Y)為當(dāng)前點(diǎn),E(X,Y)為插補(bǔ)后到達(dá)的點(diǎn),進(jìn)給速度為F,圓半徑為R,則一個(gè)插補(bǔ)周期步長(zhǎng)△L=F*T,由幾何關(guān)系可得,X、Y軸進(jìn)給量為:

        △X =

        △Y =

        其中,令m=、n=,則上式可以化簡(jiǎn)為:

        △X=m Y-n X,△Y=m X+n Y

        故插補(bǔ)后到達(dá)的點(diǎn)E的坐標(biāo)為X= X+△X,Y= Y-△Y[2]。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣插補(bǔ)軟件流程圖,如圖4所示。

        圖4 圓插補(bǔ)軟件流程圖

        2)STM32與CPLD的通信實(shí)現(xiàn)。

        STM32與CPLD的數(shù)據(jù)傳輸協(xié)議時(shí)序圖5所示,

        圖5 數(shù)據(jù)通信時(shí)序圖

        STM32和CPLD通過(guò)10位數(shù)據(jù)總線data進(jìn)行數(shù)據(jù)傳輸,由start,EN,clock信號(hào)進(jìn)行命令控制。CPLD每4ms在 start信號(hào)線上產(chǎn)生一個(gè)正脈沖作為STM32中斷信號(hào),STM32在中斷程序中進(jìn)行數(shù)據(jù)傳輸和下一插補(bǔ)周期數(shù)據(jù)計(jì)算。通過(guò)使能信號(hào)EN、時(shí)鐘信號(hào)Clock對(duì)傳輸數(shù)據(jù)進(jìn)行控制。

        3)精插補(bǔ)算法在CPLD中的實(shí)現(xiàn)。

        由于在4 ms粗插補(bǔ)周期中各進(jìn)給軸的進(jìn)給量在不斷變化,要保證電機(jī)進(jìn)給運(yùn)動(dòng)平穩(wěn),必須使各插補(bǔ)周期中輸出脈沖均勻化。為此我們提出一種簡(jiǎn)單有效的脈沖均勻化插補(bǔ)算法。

        設(shè)每個(gè)插補(bǔ)周期T內(nèi)所需要輸出的脈沖數(shù)為X,在插補(bǔ)周期T內(nèi),CPLD時(shí)鐘產(chǎn)生的脈沖總數(shù)為F,F(xiàn)與X具有以下關(guān)系:

        F=A*X+B=A(X–B) + (A+1)B (1)

        其中A為F/X的商,B為F/X的余數(shù)。

        所代表的物理含義是以CPLD時(shí)鐘為基準(zhǔn),先以每隔A個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出X-B個(gè)脈沖,然后以每隔A+1 個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出B個(gè)脈沖。這樣,就完成了在插補(bǔ)周期T內(nèi),均勻輸出X個(gè)脈沖的任務(wù)。

        實(shí)際研究中,設(shè)定插補(bǔ)周期為4 ms與數(shù)據(jù)傳輸時(shí)間一樣,保持在數(shù)據(jù)接收與運(yùn)動(dòng)控制上的一致性。運(yùn)動(dòng)控制的系統(tǒng)時(shí)鐘為500 kHz。在一個(gè)插補(bǔ)周期T=4 ms中,系統(tǒng)時(shí)鐘脈沖數(shù)F=2000。

        在Quartues II9.0中的仿真圖如圖6所示。

        圖6 精插補(bǔ)輸出脈沖仿真圖

        經(jīng)過(guò)測(cè)試,輸出進(jìn)給脈沖的速率能穩(wěn)步上升至250 kHz。

        參考文獻(xiàn)

        [1]劉軍.數(shù)控技術(shù)及應(yīng)用[M].北京大學(xué)出版社,2013.

        [2]李莉.數(shù)控系統(tǒng)中圓弧插補(bǔ)算法的改進(jìn)和實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(7).

        [3]王廣炎.張潤(rùn)孝脈沖均勻化查補(bǔ)方法[J].制造技術(shù)與機(jī)床,2000(3).endprint

        摘 要 本文介紹了一種基于STM32與CPLD的雙軸運(yùn)動(dòng)控制器。該控制器采用32位微控制器STM32f103VET6完成粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;采用高速的CPLD完成精確插補(bǔ)及電機(jī)的高速與高精度控制。實(shí)際測(cè)試結(jié)果表明此控制器控制精度高、速度快、運(yùn)動(dòng)更加平穩(wěn),能滿足大多數(shù)雙軸聯(lián)動(dòng)控制場(chǎng)合的需求。

        關(guān)鍵詞 插補(bǔ)算法;運(yùn)動(dòng)控制;STM32;CPLD

        中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)20-0009-02

        運(yùn)動(dòng)控制器已經(jīng)從單片機(jī)或?qū)S眯酒ˋSIC)作為核心處理器,發(fā)展到了以DSP/ARM和FPGA作為核心處理器的開(kāi)放式運(yùn)動(dòng)控制器。高速、高精度始終是運(yùn)動(dòng)控制技術(shù)追求的目標(biāo)。充分利用高速處理器的計(jì)算能力,進(jìn)行復(fù)雜的運(yùn)動(dòng)規(guī)劃、高速實(shí)時(shí)多軸插補(bǔ)、誤差補(bǔ)償,使得運(yùn)動(dòng)控制精度更高、速度更快、運(yùn)動(dòng)更加平穩(wěn)。根據(jù)應(yīng)用要求,設(shè)計(jì)出智能化的運(yùn)動(dòng)控制器將成為市場(chǎng)應(yīng)用的新方向。

        1 系統(tǒng)設(shè)計(jì)方案

        本控制器以ST公司的STM32f103VET6芯片和Altera公司的CPLD芯片EPM570T100為控制核心。利用STM32運(yùn)算速度快處理能力強(qiáng)的特點(diǎn),實(shí)現(xiàn)粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;利用CPLD較強(qiáng)的邏輯處理能力,實(shí)現(xiàn)精確插補(bǔ)及電機(jī)的高速與高精度控制。其系統(tǒng)原理框圖如圖1所示。

        圖1 系統(tǒng)原理框圖

        STM32通過(guò)MAX232接口接收上位機(jī)控制指令,或以鍵盤輸入的方式輸入圖形輪廓數(shù)據(jù),之后進(jìn)行相關(guān)的算法處理,將計(jì)算所得到的初插補(bǔ)參數(shù)傳送到CPLD,由CPLD進(jìn)行精插補(bǔ),產(chǎn)生控制兩軸聯(lián)動(dòng)的脈沖信號(hào),驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)。

        2 系統(tǒng)硬件設(shè)計(jì)

        1)STM32模塊。

        STM32F103VET6為32位微控制器,芯片主頻為72 MHz,具有512KBFlash、64KB的SRAM內(nèi)存,支持USB接口、網(wǎng)口、串口等外設(shè),為運(yùn)動(dòng)控制系統(tǒng)提供豐富的外圍接口資源支持。

        STM32部分需完成接收上位機(jī)的控制指令、按鍵輸入輪廓數(shù)據(jù)、完成粗插補(bǔ)算法,顯示當(dāng)前運(yùn)行狀態(tài),與CPLD通信等功能。所以STM32芯片的外圍電路有LCD顯示模塊,矩陣鍵盤模塊,串口模塊。

        2)CPLD模塊。

        CPLD模塊的功能主要通過(guò)硬件語(yǔ)言Verilog來(lái)實(shí)現(xiàn)。CPLD負(fù)責(zé)與STM32通信,并根據(jù)數(shù)據(jù)實(shí)時(shí)進(jìn)行脈沖均勻化處理,產(chǎn)生兩軸方向與脈沖控制信號(hào),最終驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)行。設(shè)計(jì)的CPLD內(nèi)部架構(gòu)圖如圖2所示。主要由三個(gè)模塊組成:①與STM32通信模塊:包括8*10數(shù)據(jù)寄存器與命令接口;②參數(shù)運(yùn)算寄存器與數(shù)據(jù)控制模塊;③脈沖均勻化處理模塊。

        圖2 CPLD內(nèi)部架構(gòu)圖

        3)其他電路模塊。

        系統(tǒng)其他模塊還有上位機(jī)通信模塊、電源模塊等。由于此控制器采用+5 V供電,而STM32F103VET6芯片、EPM570T100芯片、LCD顯示模塊需要3.3 V電壓供電,因此用LM1117系列芯片轉(zhuǎn)換產(chǎn)生3.3 V電源。通信模塊使用MAX3232電平轉(zhuǎn)換與上位機(jī)通信,通過(guò)串口接收上位機(jī)指令,對(duì)電機(jī)進(jìn)行相應(yīng)的控制。

        3 系統(tǒng)軟件設(shè)計(jì)

        1)粗插補(bǔ)算法在STM32中的實(shí)現(xiàn)。

        ①插補(bǔ)原理。插補(bǔ)算法有很多,根據(jù)微處理器的本身特點(diǎn),這里采用數(shù)據(jù)采樣插補(bǔ)法。用一系列首尾相連的微小線段來(lái)逼近給定輪廓。每經(jīng)過(guò)一個(gè)插補(bǔ)周期就進(jìn)行一次插補(bǔ)計(jì)算,求出插補(bǔ)周期內(nèi)各個(gè)坐標(biāo)軸進(jìn)給量,得出下一個(gè)插補(bǔ)點(diǎn)的指令

        位置[1]。

        ②直線插補(bǔ)的算法實(shí)現(xiàn)。設(shè)插補(bǔ)周期T、輸入進(jìn)給速度為F、加速度為a、當(dāng)前速度為Vi、終點(diǎn)坐標(biāo)為(Xe,Ye)。可得每個(gè)插補(bǔ)周期的進(jìn)給步長(zhǎng)△L=ViT,所需運(yùn)動(dòng)的總長(zhǎng)度為L(zhǎng)=,X軸和Y軸的位移增量為△x=△L Xe / L,△y=△L Ye / L。插補(bǔ)第i點(diǎn)的動(dòng)點(diǎn)坐標(biāo)為X=X+△x;Y=Y+△y。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣直線插補(bǔ)軟件流程圖,如圖3所示。

        圖3 直線插補(bǔ)軟件流程圖

        ③圓弧插補(bǔ)。要進(jìn)行圓弧插補(bǔ),需要先根據(jù)指令中的進(jìn)給速度F,計(jì)算出輪廓步長(zhǎng)L,再進(jìn)行插補(bǔ)計(jì)算。以弦線逼近圓弧,就是以輪廓步長(zhǎng)為圓弧長(zhǎng)相鄰兩個(gè)插補(bǔ)點(diǎn)之間的弦長(zhǎng),由前一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)和輪廓步長(zhǎng),計(jì)算后一插補(bǔ)點(diǎn),實(shí)質(zhì)上是求后一插補(bǔ)點(diǎn)到前一插補(bǔ)點(diǎn)兩個(gè)坐標(biāo)軸的進(jìn)給量△X,△Y。設(shè)S(X,Y)為當(dāng)前點(diǎn),E(X,Y)為插補(bǔ)后到達(dá)的點(diǎn),進(jìn)給速度為F,圓半徑為R,則一個(gè)插補(bǔ)周期步長(zhǎng)△L=F*T,由幾何關(guān)系可得,X、Y軸進(jìn)給量為:

        △X =

        △Y =

        其中,令m=、n=,則上式可以化簡(jiǎn)為:

        △X=m Y-n X,△Y=m X+n Y

        故插補(bǔ)后到達(dá)的點(diǎn)E的坐標(biāo)為X= X+△X,Y= Y-△Y[2]。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣插補(bǔ)軟件流程圖,如圖4所示。

        圖4 圓插補(bǔ)軟件流程圖

        2)STM32與CPLD的通信實(shí)現(xiàn)。

        STM32與CPLD的數(shù)據(jù)傳輸協(xié)議時(shí)序圖5所示,

        圖5 數(shù)據(jù)通信時(shí)序圖

        STM32和CPLD通過(guò)10位數(shù)據(jù)總線data進(jìn)行數(shù)據(jù)傳輸,由start,EN,clock信號(hào)進(jìn)行命令控制。CPLD每4ms在 start信號(hào)線上產(chǎn)生一個(gè)正脈沖作為STM32中斷信號(hào),STM32在中斷程序中進(jìn)行數(shù)據(jù)傳輸和下一插補(bǔ)周期數(shù)據(jù)計(jì)算。通過(guò)使能信號(hào)EN、時(shí)鐘信號(hào)Clock對(duì)傳輸數(shù)據(jù)進(jìn)行控制。

        3)精插補(bǔ)算法在CPLD中的實(shí)現(xiàn)。

        由于在4 ms粗插補(bǔ)周期中各進(jìn)給軸的進(jìn)給量在不斷變化,要保證電機(jī)進(jìn)給運(yùn)動(dòng)平穩(wěn),必須使各插補(bǔ)周期中輸出脈沖均勻化。為此我們提出一種簡(jiǎn)單有效的脈沖均勻化插補(bǔ)算法。

        設(shè)每個(gè)插補(bǔ)周期T內(nèi)所需要輸出的脈沖數(shù)為X,在插補(bǔ)周期T內(nèi),CPLD時(shí)鐘產(chǎn)生的脈沖總數(shù)為F,F(xiàn)與X具有以下關(guān)系:

        F=A*X+B=A(X–B) + (A+1)B (1)

        其中A為F/X的商,B為F/X的余數(shù)。

        所代表的物理含義是以CPLD時(shí)鐘為基準(zhǔn),先以每隔A個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出X-B個(gè)脈沖,然后以每隔A+1 個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出B個(gè)脈沖。這樣,就完成了在插補(bǔ)周期T內(nèi),均勻輸出X個(gè)脈沖的任務(wù)。

        實(shí)際研究中,設(shè)定插補(bǔ)周期為4 ms與數(shù)據(jù)傳輸時(shí)間一樣,保持在數(shù)據(jù)接收與運(yùn)動(dòng)控制上的一致性。運(yùn)動(dòng)控制的系統(tǒng)時(shí)鐘為500 kHz。在一個(gè)插補(bǔ)周期T=4 ms中,系統(tǒng)時(shí)鐘脈沖數(shù)F=2000。

        在Quartues II9.0中的仿真圖如圖6所示。

        圖6 精插補(bǔ)輸出脈沖仿真圖

        經(jīng)過(guò)測(cè)試,輸出進(jìn)給脈沖的速率能穩(wěn)步上升至250 kHz。

        參考文獻(xiàn)

        [1]劉軍.數(shù)控技術(shù)及應(yīng)用[M].北京大學(xué)出版社,2013.

        [2]李莉.數(shù)控系統(tǒng)中圓弧插補(bǔ)算法的改進(jìn)和實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(7).

        [3]王廣炎.張潤(rùn)孝脈沖均勻化查補(bǔ)方法[J].制造技術(shù)與機(jī)床,2000(3).endprint

        摘 要 本文介紹了一種基于STM32與CPLD的雙軸運(yùn)動(dòng)控制器。該控制器采用32位微控制器STM32f103VET6完成粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;采用高速的CPLD完成精確插補(bǔ)及電機(jī)的高速與高精度控制。實(shí)際測(cè)試結(jié)果表明此控制器控制精度高、速度快、運(yùn)動(dòng)更加平穩(wěn),能滿足大多數(shù)雙軸聯(lián)動(dòng)控制場(chǎng)合的需求。

        關(guān)鍵詞 插補(bǔ)算法;運(yùn)動(dòng)控制;STM32;CPLD

        中圖分類號(hào):TP2 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1671-7597(2014)20-0009-02

        運(yùn)動(dòng)控制器已經(jīng)從單片機(jī)或?qū)S眯酒ˋSIC)作為核心處理器,發(fā)展到了以DSP/ARM和FPGA作為核心處理器的開(kāi)放式運(yùn)動(dòng)控制器。高速、高精度始終是運(yùn)動(dòng)控制技術(shù)追求的目標(biāo)。充分利用高速處理器的計(jì)算能力,進(jìn)行復(fù)雜的運(yùn)動(dòng)規(guī)劃、高速實(shí)時(shí)多軸插補(bǔ)、誤差補(bǔ)償,使得運(yùn)動(dòng)控制精度更高、速度更快、運(yùn)動(dòng)更加平穩(wěn)。根據(jù)應(yīng)用要求,設(shè)計(jì)出智能化的運(yùn)動(dòng)控制器將成為市場(chǎng)應(yīng)用的新方向。

        1 系統(tǒng)設(shè)計(jì)方案

        本控制器以ST公司的STM32f103VET6芯片和Altera公司的CPLD芯片EPM570T100為控制核心。利用STM32運(yùn)算速度快處理能力強(qiáng)的特點(diǎn),實(shí)現(xiàn)粗插補(bǔ)計(jì)算、數(shù)據(jù)處理、圖形顯示及數(shù)據(jù)通信;利用CPLD較強(qiáng)的邏輯處理能力,實(shí)現(xiàn)精確插補(bǔ)及電機(jī)的高速與高精度控制。其系統(tǒng)原理框圖如圖1所示。

        圖1 系統(tǒng)原理框圖

        STM32通過(guò)MAX232接口接收上位機(jī)控制指令,或以鍵盤輸入的方式輸入圖形輪廓數(shù)據(jù),之后進(jìn)行相關(guān)的算法處理,將計(jì)算所得到的初插補(bǔ)參數(shù)傳送到CPLD,由CPLD進(jìn)行精插補(bǔ),產(chǎn)生控制兩軸聯(lián)動(dòng)的脈沖信號(hào),驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)動(dòng)。

        2 系統(tǒng)硬件設(shè)計(jì)

        1)STM32模塊。

        STM32F103VET6為32位微控制器,芯片主頻為72 MHz,具有512KBFlash、64KB的SRAM內(nèi)存,支持USB接口、網(wǎng)口、串口等外設(shè),為運(yùn)動(dòng)控制系統(tǒng)提供豐富的外圍接口資源支持。

        STM32部分需完成接收上位機(jī)的控制指令、按鍵輸入輪廓數(shù)據(jù)、完成粗插補(bǔ)算法,顯示當(dāng)前運(yùn)行狀態(tài),與CPLD通信等功能。所以STM32芯片的外圍電路有LCD顯示模塊,矩陣鍵盤模塊,串口模塊。

        2)CPLD模塊。

        CPLD模塊的功能主要通過(guò)硬件語(yǔ)言Verilog來(lái)實(shí)現(xiàn)。CPLD負(fù)責(zé)與STM32通信,并根據(jù)數(shù)據(jù)實(shí)時(shí)進(jìn)行脈沖均勻化處理,產(chǎn)生兩軸方向與脈沖控制信號(hào),最終驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)行。設(shè)計(jì)的CPLD內(nèi)部架構(gòu)圖如圖2所示。主要由三個(gè)模塊組成:①與STM32通信模塊:包括8*10數(shù)據(jù)寄存器與命令接口;②參數(shù)運(yùn)算寄存器與數(shù)據(jù)控制模塊;③脈沖均勻化處理模塊。

        圖2 CPLD內(nèi)部架構(gòu)圖

        3)其他電路模塊。

        系統(tǒng)其他模塊還有上位機(jī)通信模塊、電源模塊等。由于此控制器采用+5 V供電,而STM32F103VET6芯片、EPM570T100芯片、LCD顯示模塊需要3.3 V電壓供電,因此用LM1117系列芯片轉(zhuǎn)換產(chǎn)生3.3 V電源。通信模塊使用MAX3232電平轉(zhuǎn)換與上位機(jī)通信,通過(guò)串口接收上位機(jī)指令,對(duì)電機(jī)進(jìn)行相應(yīng)的控制。

        3 系統(tǒng)軟件設(shè)計(jì)

        1)粗插補(bǔ)算法在STM32中的實(shí)現(xiàn)。

        ①插補(bǔ)原理。插補(bǔ)算法有很多,根據(jù)微處理器的本身特點(diǎn),這里采用數(shù)據(jù)采樣插補(bǔ)法。用一系列首尾相連的微小線段來(lái)逼近給定輪廓。每經(jīng)過(guò)一個(gè)插補(bǔ)周期就進(jìn)行一次插補(bǔ)計(jì)算,求出插補(bǔ)周期內(nèi)各個(gè)坐標(biāo)軸進(jìn)給量,得出下一個(gè)插補(bǔ)點(diǎn)的指令

        位置[1]。

        ②直線插補(bǔ)的算法實(shí)現(xiàn)。設(shè)插補(bǔ)周期T、輸入進(jìn)給速度為F、加速度為a、當(dāng)前速度為Vi、終點(diǎn)坐標(biāo)為(Xe,Ye)??傻妹總€(gè)插補(bǔ)周期的進(jìn)給步長(zhǎng)△L=ViT,所需運(yùn)動(dòng)的總長(zhǎng)度為L(zhǎng)=,X軸和Y軸的位移增量為△x=△L Xe / L,△y=△L Ye / L。插補(bǔ)第i點(diǎn)的動(dòng)點(diǎn)坐標(biāo)為X=X+△x;Y=Y+△y。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣直線插補(bǔ)軟件流程圖,如圖3所示。

        圖3 直線插補(bǔ)軟件流程圖

        ③圓弧插補(bǔ)。要進(jìn)行圓弧插補(bǔ),需要先根據(jù)指令中的進(jìn)給速度F,計(jì)算出輪廓步長(zhǎng)L,再進(jìn)行插補(bǔ)計(jì)算。以弦線逼近圓弧,就是以輪廓步長(zhǎng)為圓弧長(zhǎng)相鄰兩個(gè)插補(bǔ)點(diǎn)之間的弦長(zhǎng),由前一個(gè)插補(bǔ)點(diǎn)的坐標(biāo)和輪廓步長(zhǎng),計(jì)算后一插補(bǔ)點(diǎn),實(shí)質(zhì)上是求后一插補(bǔ)點(diǎn)到前一插補(bǔ)點(diǎn)兩個(gè)坐標(biāo)軸的進(jìn)給量△X,△Y。設(shè)S(X,Y)為當(dāng)前點(diǎn),E(X,Y)為插補(bǔ)后到達(dá)的點(diǎn),進(jìn)給速度為F,圓半徑為R,則一個(gè)插補(bǔ)周期步長(zhǎng)△L=F*T,由幾何關(guān)系可得,X、Y軸進(jìn)給量為:

        △X =

        △Y =

        其中,令m=、n=,則上式可以化簡(jiǎn)為:

        △X=m Y-n X,△Y=m X+n Y

        故插補(bǔ)后到達(dá)的點(diǎn)E的坐標(biāo)為X= X+△X,Y= Y-△Y[2]。

        由此,可以設(shè)計(jì)出數(shù)據(jù)采樣插補(bǔ)軟件流程圖,如圖4所示。

        圖4 圓插補(bǔ)軟件流程圖

        2)STM32與CPLD的通信實(shí)現(xiàn)。

        STM32與CPLD的數(shù)據(jù)傳輸協(xié)議時(shí)序圖5所示,

        圖5 數(shù)據(jù)通信時(shí)序圖

        STM32和CPLD通過(guò)10位數(shù)據(jù)總線data進(jìn)行數(shù)據(jù)傳輸,由start,EN,clock信號(hào)進(jìn)行命令控制。CPLD每4ms在 start信號(hào)線上產(chǎn)生一個(gè)正脈沖作為STM32中斷信號(hào),STM32在中斷程序中進(jìn)行數(shù)據(jù)傳輸和下一插補(bǔ)周期數(shù)據(jù)計(jì)算。通過(guò)使能信號(hào)EN、時(shí)鐘信號(hào)Clock對(duì)傳輸數(shù)據(jù)進(jìn)行控制。

        3)精插補(bǔ)算法在CPLD中的實(shí)現(xiàn)。

        由于在4 ms粗插補(bǔ)周期中各進(jìn)給軸的進(jìn)給量在不斷變化,要保證電機(jī)進(jìn)給運(yùn)動(dòng)平穩(wěn),必須使各插補(bǔ)周期中輸出脈沖均勻化。為此我們提出一種簡(jiǎn)單有效的脈沖均勻化插補(bǔ)算法。

        設(shè)每個(gè)插補(bǔ)周期T內(nèi)所需要輸出的脈沖數(shù)為X,在插補(bǔ)周期T內(nèi),CPLD時(shí)鐘產(chǎn)生的脈沖總數(shù)為F,F(xiàn)與X具有以下關(guān)系:

        F=A*X+B=A(X–B) + (A+1)B (1)

        其中A為F/X的商,B為F/X的余數(shù)。

        所代表的物理含義是以CPLD時(shí)鐘為基準(zhǔn),先以每隔A個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出X-B個(gè)脈沖,然后以每隔A+1 個(gè)時(shí)鐘脈沖輸出一個(gè)進(jìn)給脈沖,共輸出B個(gè)脈沖。這樣,就完成了在插補(bǔ)周期T內(nèi),均勻輸出X個(gè)脈沖的任務(wù)。

        實(shí)際研究中,設(shè)定插補(bǔ)周期為4 ms與數(shù)據(jù)傳輸時(shí)間一樣,保持在數(shù)據(jù)接收與運(yùn)動(dòng)控制上的一致性。運(yùn)動(dòng)控制的系統(tǒng)時(shí)鐘為500 kHz。在一個(gè)插補(bǔ)周期T=4 ms中,系統(tǒng)時(shí)鐘脈沖數(shù)F=2000。

        在Quartues II9.0中的仿真圖如圖6所示。

        圖6 精插補(bǔ)輸出脈沖仿真圖

        經(jīng)過(guò)測(cè)試,輸出進(jìn)給脈沖的速率能穩(wěn)步上升至250 kHz。

        參考文獻(xiàn)

        [1]劉軍.數(shù)控技術(shù)及應(yīng)用[M].北京大學(xué)出版社,2013.

        [2]李莉.數(shù)控系統(tǒng)中圓弧插補(bǔ)算法的改進(jìn)和實(shí)現(xiàn)[J].組合機(jī)床與自動(dòng)化加工技術(shù),2009(7).

        [3]王廣炎.張潤(rùn)孝脈沖均勻化查補(bǔ)方法[J].制造技術(shù)與機(jī)床,2000(3).endprint

        猜你喜歡
        運(yùn)動(dòng)控制
        具有自主感知行為的虛擬人運(yùn)動(dòng)控制技術(shù)研究綜述
        基于Java串口通訊的檢測(cè)系統(tǒng)程序設(shè)計(jì)
        電子套結(jié)縫紉機(jī)步進(jìn)電機(jī)控制方案分析與探索
        三維平動(dòng)并聯(lián)機(jī)床控制系統(tǒng)設(shè)計(jì)
        貼片機(jī)X/Y軸快速高精度定位的實(shí)現(xiàn)
        基于TMS320F2812的調(diào)光器系統(tǒng)的設(shè)計(jì)
        久久天天躁夜夜躁狠狠| 亚州无吗一区二区三区| 男人天堂网2017| 无码人妻精品一区二区在线视频 | 四虎国产精品免费久久| 亚洲欧美日韩专区一| 久久婷婷国产五月综合色| 一区二区三区av在线| 熟妇熟女乱妇乱女网站| 丝袜足控一区二区三区| 国产午夜精品久久久久| 被灌醉的日本人妻中文字幕| 人妻仑乱a级毛片免费看| 白嫩少妇激情无码| 国产网友自拍亚洲av| 国产av一区二区毛片| 蜜桃av抽搐高潮一区二区| 国产乱子伦露脸在线| 熟女丝袜美腿亚洲一区二区三区| 亚洲一本二区偷拍精品| 久久不见久久见免费视频6| 亚洲五月天综合| WWW拍拍拍| 国产不卡在线观看视频| 成年女人免费视频播放体验区| 免费观看黄网站| 色婷婷狠狠97成为人免费| 偷拍韩国美女洗澡一区二区三区 | 国产亚洲日韩在线一区二区三区| 欧美巨大性爽| 少妇bbwbbw高潮| 成人自拍一二在线观看| 亚洲热妇无码av在线播放| 亚洲人成人网毛片在线播放| 粉嫩的18在线观看极品精品| 免费av片在线观看网址| 精品无码一区二区三区亚洲桃色| 国产精品18久久久久网站| 国产精品自拍视频免费观看| 国产欧美精品一区二区三区四区| 又爽又黄又无遮挡的激情视频|