摘 要:文章提出了一種基于STM32的運動控制器,主要進行控制器的硬件電路設(shè)計分析以及簡單的介紹了控制器采用的數(shù)據(jù)采樣插補的算法。在簡易的實驗運動平臺應(yīng)用表明該控制器滿足了設(shè)計的要求。
關(guān)鍵詞:STM32;運動控制器;算法
1 概述
隨著科學(xué)技術(shù)飛速發(fā)展,運動控制技術(shù)在工業(yè)機器人、自動化設(shè)備等領(lǐng)域中發(fā)揮作用越發(fā)明顯。目前市面上的運動控制器大多采用ARM/DSP+FPGA架構(gòu),該類型控制器開發(fā)起來比較復(fù)雜而且成本昂貴。而事實上大多數(shù)時候?qū)τ谶\動控制系統(tǒng)的運動精度并沒有非常嚴格的要求。因此在這種情況下,文章提出了一種基于STM32的運動控制器,由于成本比較低廉,該控制器廣泛應(yīng)用于簡易的實驗運動平臺。
2 控制器的設(shè)計
控制器采用STM32F103x單片機為核心??刂破鞑捎萌S設(shè)計,最多控制三個電機運動??梢詫崿F(xiàn)點位、連續(xù)、聯(lián)動等功能。同時該控制器采用RS232和485兩種通訊方式與上位機進行通訊,以此得到控制信號以及發(fā)送控制器運行狀態(tài)??刂破饔?2路輸入和15路輸出,輸入輸出均采用光耦芯片進行隔離??刂破鞯碾姍C接口單元采用差分輸出方式進行輸出??傮w方案如圖1所示。
2.1 硬件設(shè)計
(1)主控單元電路設(shè)計。該運動控制器主控單元采用基于
Cortex-M3處理核的微控制器STM32F103x。該處理器為32位處理器,內(nèi)核頻率高達72MHz,1.25DMips/MHz處理能力,具備16個可編程優(yōu)先等級中斷,256K字節(jié)存儲以及64K的SRAM,具有兩個高級的定時器和6個基本的定時器。該控制器采用定時器的輸出比較,輸入捕獲來實現(xiàn)脈沖PWM的輸出以及編碼器的計數(shù)。其I/O端口均與兩條外設(shè)總線相連,同時該微控制器具有豐富的外設(shè),如USART接口等。這里主要使用了USART外設(shè)與上位機進行通訊。在仿真接口的設(shè)計上,主控電路采用SWM方式,只需要4根線就能實現(xiàn)程序的下載及在線調(diào)試,與傳統(tǒng)的JTAG調(diào)試相比,在確??煽啃缘耐瑫r可以縮小控制器的大小。主控單元電路如圖2所示。
(2)其它模塊的設(shè)計??刂破鞑捎肈C24V輸入,由于主控芯片供電電壓為3.3V。因此使用DC24V轉(zhuǎn)DC5V電源隔離模塊,該電源模塊為18V-36V寬電壓輸入,同時可是實現(xiàn)主板電源與外部電源的隔離。從電源模塊輸出5V電壓再采用AMS117電源芯片進行降壓,得到STM32所使用的3.3V電壓。
控制器的輸入接口主要接收運動裝置回原點信號以及一些位置信號。目前大部分輸入的信號為24V。由于控制器芯片所采用的位3.3V電壓,因此在設(shè)計中采用EL357光耦隔離芯片實現(xiàn)輸入信號與內(nèi)部信號隔離。輸出信號主要控制一些氣動等線圈裝置。為了提高輸出能力我們采用的光耦隔離芯片與晶體管進行輸出,光耦實現(xiàn)與輸出的隔離,晶體管提高輸出的驅(qū)動能力。
控制器的通訊接口方式采用了232通訊和485通訊兩種方式。電路設(shè)計中采用SP32332芯片實現(xiàn)232通訊,采用sp485芯片實現(xiàn)485通訊。232通訊主要應(yīng)用于單個控制器的控制。而采用485通訊主要是為了擴展的方便,在一些大型的機器裝置中,由于電機的個數(shù)比較多,這樣就需要多個控制器同時工作才能滿足控制要求。在通訊接口上設(shè)計了高速通訊隔離光耦和TVS保護芯片,這樣保證了通訊的安全可靠。
控制與電機的驅(qū)動器接口單元采用了差分輸出方式,采用常用的四線差動驅(qū)動芯片AM26LS31輸出差分信號,可將單端輸出信號轉(zhuǎn)換為差分信號進行輸出,以此提高接口的驅(qū)動能力和抗干擾的能力。同時采用AM26LS32將編碼器的輸入信號轉(zhuǎn)換為單端信號。
2.2 控制算法研究
運動控制器設(shè)計中難點在與插補運算,目前插補算法有很多種,如DDA算法等。本控制器采用的是數(shù)據(jù)采樣插補法。該方法是按照采樣時間將運動軌跡分割成若干微小的線段,線段的長度為采樣時間的速度與采樣周期的乘積。下面以S曲線進行表述。
S加減速方式根據(jù)加速度變化可分為:加加速、勻加速、加減速、勻速、減加速、勻減速和減減速階段。各階段對應(yīng)的時間為t1、t2、t3、t4、t5、t6、t7。
一般一段軌跡的起始和終止的速度為零,加加速j為定值。為保障起始點與減加速段末端的加加速度為零,則有T1=T2,為簡化計算令T3=T1=T2,T5=T6=T7。同時為了保證加減速的對稱性,則有Tm=T1=T2=T3=T5=T6=T7(Tm可以根據(jù)給定速度以及加加速度來確定)。由上位機通過串口給控制器發(fā)送數(shù)據(jù),在通過CPU轉(zhuǎn)換為相對應(yīng)的位移和速度,之后計算出每段時間段的大小。
用STM32生成S型加減速軌跡,選擇STM32的基本定時器作為分割后采樣周期發(fā)生器,在采樣周期內(nèi)定時器產(chǎn)生中斷,在中斷過程中計算出相應(yīng)階段的加速度ai,之后用速度迭代公式進行計算,得出相對應(yīng)采樣周期的速度Vi。迭代公式如下:
將所得的Vi轉(zhuǎn)化為對應(yīng)頻率脈沖值,寫入STM32的高級定時器的寄存器內(nèi),由定時器比較后輸出PWM脈沖。寫入定時器的寄存器裝載值為脈沖值的一半,用Ni表示,則有Ni=fclk/2Vi,其中fclk表示基本定時器的基準時鐘。
3 結(jié)束語
文章研究的STM32的運動控制器,實現(xiàn)了電機的點動、連續(xù)、聯(lián)動等基本功能。脈沖輸出頻率可以達到100KHz。采用數(shù)據(jù)采樣插補法解決了傳統(tǒng)單片機脈沖輸出效率偏低的問題。通過在提花織機上的使用,能夠控制提花織機運轉(zhuǎn)?;旧蠞M足設(shè)計要求,同時該控制器也需要進行一定的改進,需要設(shè)計模擬量輸入接口和模擬量輸出接口。
參考文獻
[1]李向如,俞建定,汪沁.基于STM32的機械手運動控制器的實現(xiàn)[J].微型機與應(yīng)用,2015,34(21):7-8.
[2]趙從富,陳安,胡躍明.基于STM32的點對點運動控制器設(shè)計[J].計算機測量與控制,2012,20(4):994-995,1007.
[3]謝鵬程.基于STM32和FreeRTOS的獨立式運動控制器設(shè)計與研究[D].華南理工大學(xué),2012.
[4]石川,趙彤,葉佩青,等.數(shù)控曲線S曲線加減速規(guī)劃研究[J].中國機械工程,2007,18(12):1421-1422.