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