張曉燕,盧照新,劉學君,張 凱,楊嗣源
(北京石油化工學院 信息工程學院,北京 102617)
基于MSP430的直線導(dǎo)軌定位裝置的設(shè)計與實現(xiàn)
張曉燕,盧照新,劉學君,張 凱,楊嗣源
(北京石油化工學院 信息工程學院,北京 102617)
直線導(dǎo)軌是數(shù)控技術(shù)的重要組成部件,它的精確程度非常重要;以MSP430單片機為核心,設(shè)計了一個直線導(dǎo)軌精確定位裝置;此裝置采用兩相四線的ST57型步進電機和60CM的螺紋絲桿組成一個直線導(dǎo)軌組,選用M7128驅(qū)動器驅(qū)動步進電機,使用PWM波精確定位算法程序精確控制電機轉(zhuǎn)速;MSP430的IO端口控制步進電機的正反轉(zhuǎn),使得步進電機帶動螺紋絲桿轉(zhuǎn)動,讓滾動絲杠上的物體往復(fù)移動,并在電腦上顯示當前位移值;試驗證明,其定位精度為0.01 cm,具有較高的可靠性和準確性,低成本,穩(wěn)定性好。
直線導(dǎo)軌;螺紋絲桿;步進電機;MSP430
數(shù)控技術(shù)水平影響一個國家的先進制造技術(shù)的發(fā)展,體現(xiàn)了國家綜合國力和工業(yè)戰(zhàn)略地位,推動了國家經(jīng)濟發(fā)展和社會進步。直線導(dǎo)軌作為數(shù)控技術(shù)、機電一體化和工業(yè)機器人重要部件,它的精確程度關(guān)系到這些領(lǐng)域內(nèi)產(chǎn)品的優(yōu)良程度,所以近年來現(xiàn)代科學對精確定位的要求也越來越高,從測量精度上,使用壽命上,還是從噪聲上,都要求非常高。一個直線導(dǎo)軌若能精確定位,對于整個產(chǎn)品的運行操作的失誤,將會大大減少[1]。
步進電機作為直線導(dǎo)軌裝置的主要部件,它定位的精確度就關(guān)系到直線導(dǎo)軌的精確度,這在科學領(lǐng)域上同樣具有很大的發(fā)展空間。因其涉及行業(yè)較多,具有一定的現(xiàn)實意義和較高的使用價值[2]。步進電機,一般有兩種控制方式:第一,通過控制脈沖的數(shù)量來控制角位移量[3];第二,通過控制脈沖頻率來控制電機轉(zhuǎn)動的速度和加速度[4]。因為沒有積累誤差(精度為100%),所以步進電機被廣泛應(yīng)用于各種開環(huán)控制[5]。
設(shè)計的裝置系統(tǒng)采用上述第一種控制方式來達到準確定位。此系統(tǒng)由硬件和軟件兩部分組成,具有準確性、實用性及可靠性的特點。其中,硬件主要是步進電機,MSP430,M7128步進電機驅(qū)動器,CH340串口通訊模塊、PC機實現(xiàn)的信號。輸入及其顯示部分。軟件包括串口通信模塊、PWM波步進電機定位脈沖算法等程序。編程采用在IAR for MSP430軟件環(huán)境下編寫的C語言。
2.1 硬件結(jié)構(gòu)
硬件結(jié)構(gòu)以單片機MSP430為核心作為控制單元,通過串口通信傳送數(shù)據(jù)到MSP430,然后將收到的數(shù)據(jù)再通過串口通信返回,在電腦上顯示發(fā)送的數(shù)據(jù)是否正確;通過發(fā)的數(shù)據(jù)給出對應(yīng)的脈沖數(shù)量,控制步進電機轉(zhuǎn)動的圈數(shù)(轉(zhuǎn)速)和方向,來對直線導(dǎo)軌上的物體進行位移,結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
對應(yīng)原理總圖如下圖2所示。
圖2 兩相四線步進電機等效電路圖
2.2 滾珠絲桿直線導(dǎo)軌滑臺組
硬件結(jié)構(gòu)采用的是二相四線混合式步進電機和1204型滾珠絲桿直線導(dǎo)軌組,它是由60CM的12044型螺紋絲桿,57式56步進電機,以及配套的滑臺組成。
直線導(dǎo)軌所有方向皆有高剛性、互換性、自動調(diào)節(jié)、無限滾動循環(huán)等特點,同時,它還能實現(xiàn)高速進給。在保證會小于滾珠絲杠副轉(zhuǎn)速臨界值的前提下,大導(dǎo)程滾珠絲杠副可以實現(xiàn)100 m/min的速度值以上的進給速度[6-8]。
2.3 步進電機的選型
步進電動機能直接接收數(shù)字量的輸入,所以特別適合于微機控制。一臺兩相四線式步進電機的等效電路圖如圖2所示,它有四條勵磁信號線,通過這四條勵磁信號線給步進電機發(fā)出一定順序的驅(qū)動脈沖,步進電機就可以按相應(yīng)的電流信號運動。每給一個驅(qū)動脈沖信號,步進電機就運行一個步進角,各相繞組的通電狀態(tài)每循環(huán)改變一次,步進電機就運行一個齒距。根據(jù)要求,本設(shè)計選用的二相四線混合式步進電機型號是57H56。
在任意瞬間,步進電機的繞組只有一相通電,控制器每發(fā)出一個驅(qū)動脈沖信號,步進電機就運行一個步距角1.8°。
2.4 M7128步進電機驅(qū)動器
根據(jù)需要選擇了M7128步進電機驅(qū)動器,其可實現(xiàn)電壓和電流放大,驅(qū)動步進電機的各相繞組驅(qū)動器上對應(yīng)的DIR管腳控制電機旋轉(zhuǎn)方向,ENA端口控制電機啟停(未用),PUL端口通過脈沖控制步進電機轉(zhuǎn)速。驅(qū)動器面板上六位撥碼開關(guān)中的第4位、第5位和第6位可組合出不同的狀態(tài)[9],選擇如圖3所示共陰極接法。
圖3 電機驅(qū)動器共陰接線法圖
2.5 串口通訊模塊CH340
為了實現(xiàn)單片機串行接口與計算機USB接口之間的通訊功能,采用了USB轉(zhuǎn)串口模塊CH340。P1.1為串口數(shù)據(jù)發(fā)送端口(TXD),高電平;P1.2為串口數(shù)據(jù)接收端口(RXD),低電平[10]。
2.6 硬件系統(tǒng)連接
系統(tǒng)總聯(lián)接圖如圖4所示和protel原理圖如圖5所示,核心控制芯片采用MSP430G2553,步進電機驅(qū)動器為M7128,串口通信的硬件采用CH340模塊。
圖4 系統(tǒng)總接線圖
圖5 系統(tǒng)protel原理圖
3.1 定位控制算法設(shè)計
要保證系統(tǒng)的定位精度,步進電機轉(zhuǎn)動一個步距角所改變的距離不能太大。系統(tǒng)采用的57式的二相步進電機步距角是1.8°,即走一圈是360°,對應(yīng)360°/18°=200步。對于直徑12 mm的螺紋絲桿,給定的導(dǎo)程是4 mm(絲桿轉(zhuǎn)一圈,給進量是4 mm),假如先定電機正轉(zhuǎn),設(shè)定電機當前位移量(即當前位置)為X,則共需走的步數(shù)為X/4 mm為螺紋絲桿轉(zhuǎn)動圈數(shù),轉(zhuǎn)一圈需要200步,且電機走1步需要1個脈沖,則總共需要200X/4個脈沖。
如更改位移量(即移動到的位置)為Y,那么需要跟位移量X進行比較:
當Y>X,電機保持正轉(zhuǎn)(正向運動),則需要繼續(xù)走:200(Y/X)/4步。
當Y 因電機驅(qū)動器M7128最多細分能達到1/128(為了最小誤差選擇),則電機的步距角細分到1.8/128°=0.014°,所以得出最后脈沖數(shù)量都需再乘以128。 其中ΔX為輸入位移量,單位為mm,M為所需脈沖數(shù)。 對應(yīng)實現(xiàn)算法,部分程序節(jié)選如下: {step=0; step+=((long)state_parameter[3]*16777216); step+=((long)state_parameter[4]*65536); step+=((long)state_parameter[5]*256); step+=((long)state_parameter[6]); pulse_out(step,state_parameter[2]); RX_sign=0; } 因上面已提到采用通過控制脈沖的數(shù)量來控制電機的位移量,所以電機只需識別脈沖個數(shù),則單片機MSP430由串口P1.2讀取到的十六進制位移量,通過上述語句轉(zhuǎn)換出脈沖個數(shù)。 3.2 串口調(diào)試設(shè)計 本系統(tǒng)所設(shè)計的串口通信是將8個字節(jié)的十六進制數(shù)據(jù)傳送到MSP430芯片,在輸入位移量前,需要手動把十進制的位移量轉(zhuǎn)換成十六進制的位移量,利用串口調(diào)試助手軟件sscom42輸入十六位數(shù)據(jù)量進行串口連接。在PC上打開sscom42軟件,接上CH340后,再打開串口,如圖6所示,輸入的通信協(xié)議數(shù)據(jù)為:BB 4C 02 00 01 90 00 AA(BB和AA是協(xié)議的包頭和包尾,4C只是占了一個數(shù)據(jù)位,01和02分別代表著步進電機的正反轉(zhuǎn),01代表正轉(zhuǎn),02代表反轉(zhuǎn),中間的四組00 01 90 00是輸入的十六進制位移量。先選擇電機正反轉(zhuǎn),輸入十六進制位移量,點擊發(fā)送,就可以發(fā)送數(shù)據(jù),讓步進電機轉(zhuǎn)動。發(fā)送數(shù)據(jù)后,把在PC上顯示所發(fā)送的數(shù)據(jù)與CH340返還發(fā)回來的數(shù)據(jù)進行對比,通過對比數(shù)據(jù)的一致性,來保證MSP430接收數(shù)據(jù)的正確性。 圖6 串口發(fā)送、接收數(shù)據(jù)圖 3.3 軟件設(shè)計 電機控制驅(qū)動模塊,端口P2.3為PWM波的輸出端口,連接電機驅(qū)動模塊的PUL端口控制電機的轉(zhuǎn)速;端口P2.4為連接驅(qū)動模塊的DIR端口,控制電機的旋轉(zhuǎn)方向。 編程時,為使步進電機在轉(zhuǎn)換方向時能平滑過渡,不產(chǎn)生錯步,在每一步中都設(shè)置標志位。這樣,每當步進電機換向時,就以上一步作為起點來反向運動,避免了在電機轉(zhuǎn)換方向時產(chǎn)生錯步[11]。 1)主程序流程如圖7所示,控制芯片MSP430通過其I/O口P1.2串口取得由PC機傳給串口通信模塊CH340需要步進電機動作所執(zhí)行的位移量,先判斷需要正轉(zhuǎn)還是反轉(zhuǎn),然后再調(diào)用子函數(shù)給驅(qū)動模塊指令,控制電機運行,再由MSP430通過P1.1串口返回數(shù)據(jù)給串口通信模塊CH340,并在PC機屏幕上顯式。 圖7 主程序流程圖 2)脈沖輸出流程圖如圖8所示,首先由控制芯片MSP430的I/O口P2.4輸出為0(0即低電平,要求電機正轉(zhuǎn)向,或者為1 (1為高電平要求電機正轉(zhuǎn)),其與M7128電機驅(qū)動器的DIR+端口相連,控制電機旋轉(zhuǎn)方向,同時由MSP430的I/O口P2.3向PUL+端口發(fā)送PWM (Pulse Width Modulation脈沖寬度調(diào)制)波脈沖信號,控制電機旋轉(zhuǎn)位移量。 實現(xiàn)程序部分節(jié)選如下: for(i=0;i { LASER_IO_OUT &= ~LASER_IO; delay_us(50); LASER_IO_OUT |= LASER_IO; delay_us(50); } 圖8 脈沖輸出流程圖 3)串口發(fā)送與接收數(shù)據(jù)流程圖如圖9所示,實現(xiàn)MSP430與PC的串口通信模塊CH340實現(xiàn)協(xié)議通信。 圖9 串口發(fā)送接收數(shù)據(jù)流程圖 串口發(fā)送數(shù)據(jù)子程序: voidUART_sent(void) { unsigned char j; for (j=0;j<8;j++) //發(fā)送當前IP的數(shù)據(jù),即一次發(fā)射8個字節(jié), { UART_sent_char(state_parameter[j]); } } #pragma vector=USCIAB0RX_VECTOR __interrupt void USCI0RX_ISR(void) { unsigned char i; 串口接收數(shù)據(jù)中斷子程序: global_RX_buf[RX_count] = UCA0RXBUF; RX_count++; if((RX_count>=8)&&(UCA0RXBUF==0XAA) ) {for(i=0;i<8;i++) { state_parameter[i]=global_RX_buf[i]; } RX_count=0; RX_sign =1; } 3.4 系統(tǒng)驗證 設(shè)物體移動4 mm,即轉(zhuǎn)1圈,需要25600個脈沖,轉(zhuǎn)換成十六進制6400H。 又設(shè)物體移動16 mm,需要4×25600=102400個脈沖 ,再轉(zhuǎn)換成十六進制19000H。 通過實驗可知,使用開環(huán)控制算法,控制精度在 0.1 mm左右,即0.01 cm,系統(tǒng)運行穩(wěn)定,基本滿足直線導(dǎo)軌精確定位的要求,數(shù)據(jù)如表1所示。 表1 精確定位控制算法實驗結(jié)果 以MSP430G2553為核心控制芯片,實現(xiàn)了整個直線運動導(dǎo)軌精確定位的設(shè)計。試驗結(jié)果表明,測量誤差在允許范圍內(nèi),本系統(tǒng)能做到直線運動導(dǎo)軌上的步進電機帶動螺紋絲桿轉(zhuǎn)動,且其能夠同時承受上下左右方向的負荷,并讓滾動絲杠上的物體來回移動,同時在電腦上顯示位移值,精確到0.01 cm。設(shè)計的直線導(dǎo)軌定位裝置具有較高的可靠性和準確性,低成本,穩(wěn)定性好,在數(shù)控技術(shù)應(yīng)用方面具有實際意義。 [1] 姜洪奎,趙佳佳,宋現(xiàn)春,等. 滾動直線導(dǎo)軌副運動精度測控系統(tǒng)設(shè)計[J].制造業(yè)自動化,2015(5):15-17. [2] 金 亮. 高剛度滾動直線導(dǎo)軌設(shè)計及精度分析[J].山東工業(yè)技術(shù),2015,10:207. [3] Hwajeong Seo, Kyung-Ah Shim, Howon Kim. Performance enhancement of Tiny ECC based on multiplication optimizations[J]. Security Comm. Networks,2012,62:. [4] Chang Kangming, Liu Shinhong, Wu Xuanhan. A wireless sEMG recording system and its application to muscle fatigue detection.[J]. Sensors,2012,121:. [5] 郭林峰. 最輕的直線導(dǎo)軌易格斯碳纖維軌道[J]. 農(nóng)業(yè)機械,2015,19:113. [6] 楊 帆. 液體靜壓直線導(dǎo)軌專用磨合機研制方法[J]. 機械設(shè)計與制造,2014(1):97-99. [7] 孫守林,白晨光,董惠敏.滾動直線導(dǎo)軌結(jié)構(gòu)特征與靜態(tài)特性分析[J]. 組合機床與自動化加工技術(shù),2014(2):64-68. [8] 孫 偉,魯 明,汪 博,等. 直線滾動導(dǎo)軌動力學特性分析方法研究[J]. 制造技術(shù)與機床,2011(3):48-53. [9] 李玲娟. 多細分二相混合式步進電機驅(qū)動器的研制[D].西安:西北工業(yè)大學,2007. [10] 黃 同,邵思飛.基于CH340T的STC89C52RC編程器設(shè)計[J].電子測試,2013,12:16-17. [11] 衡 豪,王禹林,馮虎田. 滾動直線導(dǎo)軌副靜剛度試驗裝置設(shè)計及試驗方案研究[J].組合機床2自動化加工技術(shù),2014(2):106-109. Design and Realization of Linear Guide Rail Positioning Device Based on MSP430 Zhang Xiaoyan, Lu Zhaoxin, Liu Xuejun, Zhang Kai, Yang Siyuan (College of Information Engineering,Beijing Institute of Petrochemical Technology (BIPT),Beijing 102617, China) Linear guide rail is an important component of the numerical control technology which is very important to the degree of accuracy. With the core of MSP430 single chip microcomputer, a precise positioning device for linear guide rail is designed. The device adopts two phase four wire ST57 type step motor and 60CM screw thread rod to form a linear guide rail group which use M7128 driver to drive the stepper motor, using the program of PWM positioning algorithm to precisely control motor speed.MSP430 IO port control stepper motor positive inversion,making the stepper motor driven screw thread rod rotation, so that the object on the rolling screw to move back and forth, and the computer shows the value of the current displacement. Experiments show that the positioning accuracy is 0.01 cm, which has high reliability and accuracy, low cost and good stability. linear guide; thread screw rod; stepper motor; MSP430 2016-12-20; 2017-02-27。 2015年北京市大學生科研訓(xùn)練計劃深化項(16032082003/005);2015年北京高校高水平人才交叉培養(yǎng)畢業(yè)(16032021003/029);2017年北京市大學生URT項目(2017J00017)。 張曉燕(1972-),女,山東萊蕪人,碩士,講師,主要從事電子系統(tǒng)設(shè)計、EDA技術(shù)應(yīng)用、單片機開發(fā)等方向的研究。 劉學君(1977-),男,河北唐山人,工學博士,副教授,主要從事光通信、單片機開發(fā)等方向的研究。 1671-4598(2017)07-0186-04 10.16526/j.cnki.11-4762/tp.2017.07.046 TP211 A4 結(jié)論