張曉燕,盧照新,劉學(xué)君,張 凱,楊嗣源
(北京石油化工學(xué)院 信息工程學(xué)院,北京 102617)
基于MSP430的直線(xiàn)導(dǎo)軌定位裝置的設(shè)計(jì)與實(shí)現(xiàn)
張曉燕,盧照新,劉學(xué)君,張 凱,楊嗣源
(北京石油化工學(xué)院 信息工程學(xué)院,北京 102617)
直線(xiàn)導(dǎo)軌是數(shù)控技術(shù)的重要組成部件,它的精確程度非常重要;以MSP430單片機(jī)為核心,設(shè)計(jì)了一個(gè)直線(xiàn)導(dǎo)軌精確定位裝置;此裝置采用兩相四線(xiàn)的ST57型步進(jìn)電機(jī)和60CM的螺紋絲桿組成一個(gè)直線(xiàn)導(dǎo)軌組,選用M7128驅(qū)動(dòng)器驅(qū)動(dòng)步進(jìn)電機(jī),使用PWM波精確定位算法程序精確控制電機(jī)轉(zhuǎn)速;MSP430的IO端口控制步進(jìn)電機(jī)的正反轉(zhuǎn),使得步進(jìn)電機(jī)帶動(dòng)螺紋絲桿轉(zhuǎn)動(dòng),讓滾動(dòng)絲杠上的物體往復(fù)移動(dòng),并在電腦上顯示當(dāng)前位移值;試驗(yàn)證明,其定位精度為0.01 cm,具有較高的可靠性和準(zhǔn)確性,低成本,穩(wěn)定性好。
直線(xiàn)導(dǎo)軌;螺紋絲桿;步進(jìn)電機(jī);MSP430
數(shù)控技術(shù)水平影響一個(gè)國(guó)家的先進(jìn)制造技術(shù)的發(fā)展,體現(xiàn)了國(guó)家綜合國(guó)力和工業(yè)戰(zhàn)略地位,推動(dòng)了國(guó)家經(jīng)濟(jì)發(fā)展和社會(huì)進(jìn)步。直線(xiàn)導(dǎo)軌作為數(shù)控技術(shù)、機(jī)電一體化和工業(yè)機(jī)器人重要部件,它的精確程度關(guān)系到這些領(lǐng)域內(nèi)產(chǎn)品的優(yōu)良程度,所以近年來(lái)現(xiàn)代科學(xué)對(duì)精確定位的要求也越來(lái)越高,從測(cè)量精度上,使用壽命上,還是從噪聲上,都要求非常高。一個(gè)直線(xiàn)導(dǎo)軌若能精確定位,對(duì)于整個(gè)產(chǎn)品的運(yùn)行操作的失誤,將會(huì)大大減少[1]。
步進(jìn)電機(jī)作為直線(xiàn)導(dǎo)軌裝置的主要部件,它定位的精確度就關(guān)系到直線(xiàn)導(dǎo)軌的精確度,這在科學(xué)領(lǐng)域上同樣具有很大的發(fā)展空間。因其涉及行業(yè)較多,具有一定的現(xiàn)實(shí)意義和較高的使用價(jià)值[2]。步進(jìn)電機(jī),一般有兩種控制方式:第一,通過(guò)控制脈沖的數(shù)量來(lái)控制角位移量[3];第二,通過(guò)控制脈沖頻率來(lái)控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度[4]。因?yàn)闆](méi)有積累誤差(精度為100%),所以步進(jìn)電機(jī)被廣泛應(yīng)用于各種開(kāi)環(huán)控制[5]。
設(shè)計(jì)的裝置系統(tǒng)采用上述第一種控制方式來(lái)達(dá)到準(zhǔn)確定位。此系統(tǒng)由硬件和軟件兩部分組成,具有準(zhǔn)確性、實(shí)用性及可靠性的特點(diǎn)。其中,硬件主要是步進(jìn)電機(jī),MSP430,M7128步進(jìn)電機(jī)驅(qū)動(dòng)器,CH340串口通訊模塊、PC機(jī)實(shí)現(xiàn)的信號(hào)。輸入及其顯示部分。軟件包括串口通信模塊、PWM波步進(jìn)電機(jī)定位脈沖算法等程序。編程采用在IAR for MSP430軟件環(huán)境下編寫(xiě)的C語(yǔ)言。
2.1 硬件結(jié)構(gòu)
硬件結(jié)構(gòu)以單片機(jī)MSP430為核心作為控制單元,通過(guò)串口通信傳送數(shù)據(jù)到MSP430,然后將收到的數(shù)據(jù)再通過(guò)串口通信返回,在電腦上顯示發(fā)送的數(shù)據(jù)是否正確;通過(guò)發(fā)的數(shù)據(jù)給出對(duì)應(yīng)的脈沖數(shù)量,控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的圈數(shù)(轉(zhuǎn)速)和方向,來(lái)對(duì)直線(xiàn)導(dǎo)軌上的物體進(jìn)行位移,結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
對(duì)應(yīng)原理總圖如下圖2所示。
圖2 兩相四線(xiàn)步進(jìn)電機(jī)等效電路圖
2.2 滾珠絲桿直線(xiàn)導(dǎo)軌滑臺(tái)組
硬件結(jié)構(gòu)采用的是二相四線(xiàn)混合式步進(jìn)電機(jī)和1204型滾珠絲桿直線(xiàn)導(dǎo)軌組,它是由60CM的12044型螺紋絲桿,57式56步進(jìn)電機(jī),以及配套的滑臺(tái)組成。
直線(xiàn)導(dǎo)軌所有方向皆有高剛性、互換性、自動(dòng)調(diào)節(jié)、無(wú)限滾動(dòng)循環(huán)等特點(diǎn),同時(shí),它還能實(shí)現(xiàn)高速進(jìn)給。在保證會(huì)小于滾珠絲杠副轉(zhuǎn)速臨界值的前提下,大導(dǎo)程滾珠絲杠副可以實(shí)現(xiàn)100 m/min的速度值以上的進(jìn)給速度[6-8]。
2.3 步進(jìn)電機(jī)的選型
步進(jìn)電動(dòng)機(jī)能直接接收數(shù)字量的輸入,所以特別適合于微機(jī)控制。一臺(tái)兩相四線(xiàn)式步進(jìn)電機(jī)的等效電路圖如圖2所示,它有四條勵(lì)磁信號(hào)線(xiàn),通過(guò)這四條勵(lì)磁信號(hào)線(xiàn)給步進(jìn)電機(jī)發(fā)出一定順序的驅(qū)動(dòng)脈沖,步進(jìn)電機(jī)就可以按相應(yīng)的電流信號(hào)運(yùn)動(dòng)。每給一個(gè)驅(qū)動(dòng)脈沖信號(hào),步進(jìn)電機(jī)就運(yùn)行一個(gè)步進(jìn)角,各相繞組的通電狀態(tài)每循環(huán)改變一次,步進(jìn)電機(jī)就運(yùn)行一個(gè)齒距。根據(jù)要求,本設(shè)計(jì)選用的二相四線(xiàn)混合式步進(jìn)電機(jī)型號(hào)是57H56。
在任意瞬間,步進(jìn)電機(jī)的繞組只有一相通電,控制器每發(fā)出一個(gè)驅(qū)動(dòng)脈沖信號(hào),步進(jìn)電機(jī)就運(yùn)行一個(gè)步距角1.8°。
2.4 M7128步進(jìn)電機(jī)驅(qū)動(dòng)器
根據(jù)需要選擇了M7128步進(jìn)電機(jī)驅(qū)動(dòng)器,其可實(shí)現(xiàn)電壓和電流放大,驅(qū)動(dòng)步進(jìn)電機(jī)的各相繞組驅(qū)動(dòng)器上對(duì)應(yīng)的DIR管腳控制電機(jī)旋轉(zhuǎn)方向,ENA端口控制電機(jī)啟停(未用),PUL端口通過(guò)脈沖控制步進(jìn)電機(jī)轉(zhuǎn)速。驅(qū)動(dòng)器面板上六位撥碼開(kāi)關(guān)中的第4位、第5位和第6位可組合出不同的狀態(tài)[9],選擇如圖3所示共陰極接法。
圖3 電機(jī)驅(qū)動(dòng)器共陰接線(xiàn)法圖
2.5 串口通訊模塊CH340
為了實(shí)現(xiàn)單片機(jī)串行接口與計(jì)算機(jī)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,步進(jìn)電機(jī)驅(qū)動(dòng)器為M7128,串口通信的硬件采用CH340模塊。
圖4 系統(tǒng)總接線(xiàn)圖
圖5 系統(tǒng)protel原理圖
3.1 定位控制算法設(shè)計(jì)
要保證系統(tǒng)的定位精度,步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一個(gè)步距角所改變的距離不能太大。系統(tǒng)采用的57式的二相步進(jìn)電機(jī)步距角是1.8°,即走一圈是360°,對(duì)應(yīng)360°/18°=200步。對(duì)于直徑12 mm的螺紋絲桿,給定的導(dǎo)程是4 mm(絲桿轉(zhuǎn)一圈,給進(jìn)量是4 mm),假如先定電機(jī)正轉(zhuǎn),設(shè)定電機(jī)當(dāng)前位移量(即當(dāng)前位置)為X,則共需走的步數(shù)為X/4 mm為螺紋絲桿轉(zhuǎn)動(dòng)圈數(shù),轉(zhuǎn)一圈需要200步,且電機(jī)走1步需要1個(gè)脈沖,則總共需要200X/4個(gè)脈沖。
如更改位移量(即移動(dòng)到的位置)為Y,那么需要跟位移量X進(jìn)行比較:
當(dāng)Y>X,電機(jī)保持正轉(zhuǎn)(正向運(yùn)動(dòng)),則需要繼續(xù)走:200(Y/X)/4步。
當(dāng)Y 因電機(jī)驅(qū)動(dòng)器M7128最多細(xì)分能達(dá)到1/128(為了最小誤差選擇),則電機(jī)的步距角細(xì)分到1.8/128°=0.014°,所以得出最后脈沖數(shù)量都需再乘以128。 其中ΔX為輸入位移量,單位為mm,M為所需脈沖數(shù)。 對(duì)應(yīng)實(shí)現(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; } 因上面已提到采用通過(guò)控制脈沖的數(shù)量來(lái)控制電機(jī)的位移量,所以電機(jī)只需識(shí)別脈沖個(gè)數(shù),則單片機(jī)MSP430由串口P1.2讀取到的十六進(jìn)制位移量,通過(guò)上述語(yǔ)句轉(zhuǎn)換出脈沖個(gè)數(shù)。 3.2 串口調(diào)試設(shè)計(jì) 本系統(tǒng)所設(shè)計(jì)的串口通信是將8個(gè)字節(jié)的十六進(jìn)制數(shù)據(jù)傳送到MSP430芯片,在輸入位移量前,需要手動(dòng)把十進(jìn)制的位移量轉(zhuǎn)換成十六進(jìn)制的位移量,利用串口調(diào)試助手軟件sscom42輸入十六位數(shù)據(jù)量進(jìn)行串口連接。在PC上打開(kāi)sscom42軟件,接上CH340后,再打開(kāi)串口,如圖6所示,輸入的通信協(xié)議數(shù)據(jù)為:BB 4C 02 00 01 90 00 AA(BB和AA是協(xié)議的包頭和包尾,4C只是占了一個(gè)數(shù)據(jù)位,01和02分別代表著步進(jìn)電機(jī)的正反轉(zhuǎn),01代表正轉(zhuǎn),02代表反轉(zhuǎn),中間的四組00 01 90 00是輸入的十六進(jìn)制位移量。先選擇電機(jī)正反轉(zhuǎn),輸入十六進(jìn)制位移量,點(diǎn)擊發(fā)送,就可以發(fā)送數(shù)據(jù),讓步進(jìn)電機(jī)轉(zhuǎn)動(dòng)。發(fā)送數(shù)據(jù)后,把在PC上顯示所發(fā)送的數(shù)據(jù)與CH340返還發(fā)回來(lái)的數(shù)據(jù)進(jìn)行對(duì)比,通過(guò)對(duì)比數(shù)據(jù)的一致性,來(lái)保證MSP430接收數(shù)據(jù)的正確性。 圖6 串口發(fā)送、接收數(shù)據(jù)圖 3.3 軟件設(shè)計(jì) 電機(jī)控制驅(qū)動(dòng)模塊,端口P2.3為PWM波的輸出端口,連接電機(jī)驅(qū)動(dòng)模塊的PUL端口控制電機(jī)的轉(zhuǎn)速;端口P2.4為連接驅(qū)動(dòng)模塊的DIR端口,控制電機(jī)的旋轉(zhuǎn)方向。 編程時(shí),為使步進(jìn)電機(jī)在轉(zhuǎn)換方向時(shí)能平滑過(guò)渡,不產(chǎn)生錯(cuò)步,在每一步中都設(shè)置標(biāo)志位。這樣,每當(dāng)步進(jìn)電機(jī)換向時(shí),就以上一步作為起點(diǎn)來(lái)反向運(yùn)動(dòng),避免了在電機(jī)轉(zhuǎn)換方向時(shí)產(chǎn)生錯(cuò)步[11]。 1)主程序流程如圖7所示,控制芯片MSP430通過(guò)其I/O口P1.2串口取得由PC機(jī)傳給串口通信模塊CH340需要步進(jìn)電機(jī)動(dòng)作所執(zhí)行的位移量,先判斷需要正轉(zhuǎn)還是反轉(zhuǎn),然后再調(diào)用子函數(shù)給驅(qū)動(dòng)模塊指令,控制電機(jī)運(yùn)行,再由MSP430通過(guò)P1.1串口返回?cái)?shù)據(jù)給串口通信模塊CH340,并在PC機(jī)屏幕上顯式。 圖7 主程序流程圖 2)脈沖輸出流程圖如圖8所示,首先由控制芯片MSP430的I/O口P2.4輸出為0(0即低電平,要求電機(jī)正轉(zhuǎn)向,或者為1 (1為高電平要求電機(jī)正轉(zhuǎn)),其與M7128電機(jī)驅(qū)動(dòng)器的DIR+端口相連,控制電機(jī)旋轉(zhuǎn)方向,同時(shí)由MSP430的I/O口P2.3向PUL+端口發(fā)送PWM (Pulse Width Modulation脈沖寬度調(diào)制)波脈沖信號(hào),控制電機(jī)旋轉(zhuǎn)位移量。 實(shí)現(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所示,實(shí)現(xiàn)MSP430與PC的串口通信模塊CH340實(shí)現(xiàn)協(xié)議通信。 圖9 串口發(fā)送接收數(shù)據(jù)流程圖 串口發(fā)送數(shù)據(jù)子程序: voidUART_sent(void) { unsigned char j; for (j=0;j<8;j++) //發(fā)送當(dāng)前IP的數(shù)據(jù),即一次發(fā)射8個(gè)字節(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)驗(yàn)證 設(shè)物體移動(dòng)4 mm,即轉(zhuǎn)1圈,需要25600個(gè)脈沖,轉(zhuǎn)換成十六進(jìn)制6400H。 又設(shè)物體移動(dòng)16 mm,需要4×25600=102400個(gè)脈沖 ,再轉(zhuǎn)換成十六進(jìn)制19000H。 通過(guò)實(shí)驗(yàn)可知,使用開(kāi)環(huán)控制算法,控制精度在 0.1 mm左右,即0.01 cm,系統(tǒng)運(yùn)行穩(wěn)定,基本滿(mǎn)足直線(xiàn)導(dǎo)軌精確定位的要求,數(shù)據(jù)如表1所示。 表1 精確定位控制算法實(shí)驗(yàn)結(jié)果 以MSP430G2553為核心控制芯片,實(shí)現(xiàn)了整個(gè)直線(xiàn)運(yùn)動(dòng)導(dǎo)軌精確定位的設(shè)計(jì)。試驗(yàn)結(jié)果表明,測(cè)量誤差在允許范圍內(nèi),本系統(tǒng)能做到直線(xiàn)運(yùn)動(dòng)導(dǎo)軌上的步進(jìn)電機(jī)帶動(dòng)螺紋絲桿轉(zhuǎn)動(dòng),且其能夠同時(shí)承受上下左右方向的負(fù)荷,并讓滾動(dòng)絲杠上的物體來(lái)回移動(dòng),同時(shí)在電腦上顯示位移值,精確到0.01 cm。設(shè)計(jì)的直線(xiàn)導(dǎo)軌定位裝置具有較高的可靠性和準(zhǔn)確性,低成本,穩(wěn)定性好,在數(shù)控技術(shù)應(yīng)用方面具有實(shí)際意義。 [1] 姜洪奎,趙佳佳,宋現(xiàn)春,等. 滾動(dòng)直線(xiàn)導(dǎo)軌副運(yùn)動(dòng)精度測(cè)控系統(tǒng)設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2015(5):15-17. [2] 金 亮. 高剛度滾動(dòng)直線(xiàn)導(dǎo)軌設(shè)計(jì)及精度分析[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] 郭林峰. 最輕的直線(xiàn)導(dǎo)軌易格斯碳纖維軌道[J]. 農(nóng)業(yè)機(jī)械,2015,19:113. [6] 楊 帆. 液體靜壓直線(xiàn)導(dǎo)軌專(zhuān)用磨合機(jī)研制方法[J]. 機(jī)械設(shè)計(jì)與制造,2014(1):97-99. [7] 孫守林,白晨光,董惠敏.滾動(dòng)直線(xiàn)導(dǎo)軌結(jié)構(gòu)特征與靜態(tài)特性分析[J]. 組合機(jī)床與自動(dòng)化加工技術(shù),2014(2):64-68. [8] 孫 偉,魯 明,汪 博,等. 直線(xiàn)滾動(dòng)導(dǎo)軌動(dòng)力學(xué)特性分析方法研究[J]. 制造技術(shù)與機(jī)床,2011(3):48-53. [9] 李玲娟. 多細(xì)分二相混合式步進(jìn)電機(jī)驅(qū)動(dòng)器的研制[D].西安:西北工業(yè)大學(xué),2007. [10] 黃 同,邵思飛.基于CH340T的STC89C52RC編程器設(shè)計(jì)[J].電子測(cè)試,2013,12:16-17. [11] 衡 豪,王禹林,馮虎田. 滾動(dòng)直線(xiàn)導(dǎo)軌副靜剛度試驗(yàn)裝置設(shè)計(jì)及試驗(yàn)方案研究[J].組合機(jī)床2自動(dòng)化加工技術(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年北京市大學(xué)生科研訓(xùn)練計(jì)劃深化項(xiàng)(16032082003/005);2015年北京高校高水平人才交叉培養(yǎng)畢業(yè)(16032021003/029);2017年北京市大學(xué)生URT項(xiàng)目(2017J00017)。 張曉燕(1972-),女,山東萊蕪人,碩士,講師,主要從事電子系統(tǒng)設(shè)計(jì)、EDA技術(shù)應(yīng)用、單片機(jī)開(kāi)發(fā)等方向的研究。 劉學(xué)君(1977-),男,河北唐山人,工學(xué)博士,副教授,主要從事光通信、單片機(jī)開(kāi)發(fā)等方向的研究。 1671-4598(2017)07-0186-04 10.16526/j.cnki.11-4762/tp.2017.07.046 TP211 A4 結(jié)論