基于STM32F103VCT6的微位移控制系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:為實(shí)現(xiàn)X-Y-Z三維工作臺(tái)的精確定位,設(shè)計(jì)了一種基于STM32F103VCT6單片機(jī)和步進(jìn)電機(jī)的三維微位移控制系統(tǒng)。該系統(tǒng)可與上位機(jī)實(shí)現(xiàn)串口通信,接收上位機(jī)命令并把處理結(jié)果反饋給上位機(jī);根據(jù)光柵傳感器提供的位置反饋信息,系統(tǒng)可以通過(guò)對(duì)步進(jìn)電機(jī)的方向、速度調(diào)節(jié)來(lái)實(shí)現(xiàn)精確定位;采用勻加速和勻減速方式對(duì)步進(jìn)電機(jī)的速度進(jìn)行調(diào)節(jié),避免了因步進(jìn)電機(jī)的突然加速和急停所帶來(lái)的丟步和沖擊現(xiàn)象??刂葡到y(tǒng)的測(cè)量實(shí)驗(yàn)結(jié)果表明,步進(jìn)電機(jī)運(yùn)行平穩(wěn),噪音低,定位精度高,控制系統(tǒng)性能穩(wěn)定可靠。
關(guān)鍵詞:STM32F103VCT6;串口通信;位移反饋;速度控制
0 引言
微位移控制系統(tǒng)是一種集機(jī)械、光學(xué)、電子和計(jì)算機(jī)等多種技術(shù)于一體的智能化儀器。在先進(jìn)制造技術(shù)與科學(xué)研究中有著極其廣泛的應(yīng)用,也是現(xiàn)代工業(yè)檢測(cè)、質(zhì)量控制和制造技術(shù)中不可或缺的測(cè)量設(shè)備。微位移控制系統(tǒng)一般由微定位機(jī)構(gòu)、微位移檢測(cè)裝置和控制器組成??刂破魇俏⑽灰葡到y(tǒng)的指揮中心,它按照一定的控制算法控制微定位平臺(tái),使其按照一定的規(guī)律運(yùn)動(dòng),來(lái)實(shí)現(xiàn)精確定位。
傳統(tǒng)的三維微位移控制系統(tǒng)一般采用步進(jìn)電機(jī)驅(qū)動(dòng)滾珠絲杠來(lái)實(shí)現(xiàn)定位。步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開(kāi)環(huán)控制元件。在非超載的情況下,電機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),而不受負(fù)載變化的影響,即每施加一個(gè)脈沖信號(hào),電機(jī)就轉(zhuǎn)動(dòng)一個(gè)步距角,因此脈沖數(shù)與電機(jī)轉(zhuǎn)動(dòng)的總步進(jìn)角度是呈線性關(guān)系的。另外,步進(jìn)電機(jī)只有周期性的誤差而無(wú)累積誤差,使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)控制變得非常簡(jiǎn)單。步進(jìn)電機(jī)開(kāi)環(huán)控制系統(tǒng)主要優(yōu)點(diǎn)是結(jié)構(gòu)簡(jiǎn)單,在控制精度要求不高的場(chǎng)合應(yīng)用較為廣泛,但是在實(shí)際應(yīng)用中,若步進(jìn)電機(jī)升、降速控制不合理,會(huì)造成步進(jìn)電機(jī)丟步或過(guò)沖;在開(kāi)環(huán)控制系統(tǒng)中,由于步進(jìn)電機(jī)丟步現(xiàn)象的存在,無(wú)法獲知它是否精確地到達(dá)了預(yù)定位置,也就無(wú)法實(shí)現(xiàn)高精度的定位。
為實(shí)現(xiàn)三維工作臺(tái)的精確定位,系統(tǒng)采用步進(jìn)電機(jī)閉環(huán)控制系統(tǒng)。系統(tǒng)中,利用光柵傳感器的輸出作為微位移控制系統(tǒng)的位置反饋信號(hào),實(shí)現(xiàn)閉環(huán)控制。光柵傳感器的分辨率為1μm,自帶讀數(shù)頭,可直接輸出TTL電平或正弦波信號(hào),為信號(hào)處理和與控制系統(tǒng)連接提供了便利??刂葡到y(tǒng)通過(guò)光柵傳感器反饋信號(hào)來(lái)判斷是否達(dá)到了預(yù)定位置,進(jìn)而做出相應(yīng)的調(diào)整動(dòng)作。從而達(dá)到精確定位的目的。
1 硬件電路設(shè)計(jì)
1.1 微位移控制系統(tǒng)總體設(shè)計(jì)
根據(jù)微位移控制系統(tǒng)的設(shè)計(jì)要求,首先應(yīng)保證控制系統(tǒng)的定位精度,其次應(yīng)盡量做到結(jié)構(gòu)簡(jiǎn)單,成本低,操作簡(jiǎn)便?;谏鲜隹紤],本文設(shè)計(jì)了如圖1所示的微位移控制系統(tǒng)。其中,采用STM32F103VCT6單片機(jī)作為控制核心和數(shù)據(jù)處理器,基于THB7128驅(qū)動(dòng)芯片設(shè)計(jì)驅(qū)動(dòng)電路;定位系統(tǒng)采用電動(dòng)平移臺(tái),由步進(jìn)電機(jī)驅(qū)動(dòng)滾珠絲杠進(jìn)行定位,重復(fù)定位精度可以達(dá)到3μm;上位機(jī)采用VB進(jìn)行程序設(shè)計(jì),實(shí)現(xiàn)各種控制命令的發(fā)送、數(shù)據(jù)處理、數(shù)據(jù)顯示等功能;通信方式采用RS 232串行通信,協(xié)議簡(jiǎn)單,操作方便。
[!--empirenews.page--]
1.2 控制系統(tǒng)外圍電路設(shè)計(jì)
STM32系列單片機(jī)是基于嵌入式ARM Cortex-M3內(nèi)核的32位微處理器,工作頻率為72 MHz,內(nèi)置高速存儲(chǔ)器(包括256 KB的閃存和48 KB的SRAM),含有豐富的增強(qiáng)型I/O端口和連接兩條APB總線的外設(shè),還包含3個(gè)12位的ADC、4個(gè)通用16位定時(shí)器和2個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:2個(gè)I2C,3個(gè)SPI,2個(gè)I2S,1個(gè)SDIO,3個(gè)USART,1個(gè)USB和1個(gè)CAN。控制系統(tǒng)外圍電路圖如圖2所示。
控制系統(tǒng)驅(qū)動(dòng)的步進(jìn)電機(jī)為兩相四線制步進(jìn)電機(jī),硬件配置上,E口的12~14腳負(fù)責(zé)控制步進(jìn)電機(jī)的運(yùn)動(dòng)方向,A口的1,8腳和B口的0腳作為步進(jìn)電機(jī)脈沖輸出。輸出信號(hào)通過(guò)74LV245進(jìn)行輸出,提高相應(yīng)的驅(qū)動(dòng)能力;D口的8~13腳為限位開(kāi)關(guān)輸入,B口的6,7腳為光柵反饋信號(hào)輸入,輸入信號(hào)通過(guò)光電耦合的方式輸入,具有良好的電絕緣能力,同時(shí)也提高系統(tǒng)工作的穩(wěn)定性。
1.3 步進(jìn)電機(jī)驅(qū)動(dòng)電路設(shè)計(jì)
步進(jìn)電機(jī)驅(qū)動(dòng)電路基于THB7128進(jìn)行設(shè)計(jì),如圖3所示。具有以下特點(diǎn):采用雙全橋MOSFET驅(qū)動(dòng),低導(dǎo)通電阻RoN=0.53 Ω;最高耐壓為40 VDC,最大電流為3.3 A(峰值);多種細(xì)分可選(1,1/2,1/4,1/8,1/16,1/32,1/64,1/128);自動(dòng)半流鎖定功能;內(nèi)置混合
式衰減模式;內(nèi)置輸入下拉電阻;內(nèi)置溫度保護(hù)及過(guò)流保護(hù)。
1.4 反饋電路
STM32單片機(jī)的定時(shí)器有對(duì)于反饋信號(hào)特定的工作模式,即編碼器接口模式。編碼器接口模式基本上相當(dāng)于使用了一個(gè)帶有方向選擇的外部時(shí)鐘。這意味著計(jì)數(shù)器只在0到TIMx_ARR寄存器的自動(dòng)裝載值之間連續(xù)計(jì)數(shù)(根據(jù)方向,或是0到ARR計(jì)數(shù),或是ARR到0計(jì)數(shù))。所以在開(kāi)始計(jì)數(shù)之前必須配置TIMx_ARR;同樣,捕獲器、比較器、預(yù)分頻器、觸發(fā)輸出特性等仍正常工作。在這個(gè)模式下,計(jì)數(shù)器依照增量編碼器的速度和方向被自動(dòng)地修改,因此計(jì)數(shù)器的內(nèi)容始終指示著編碼器的位置。計(jì)數(shù)方向與相連的傳感器旋轉(zhuǎn)的方向?qū)?yīng)。
[!--empirenews.page--]
圖4是一個(gè)計(jì)數(shù)器操作的實(shí)例,顯示了計(jì)數(shù)信號(hào)的產(chǎn)生和方向控制,還顯示了當(dāng)選擇雙邊沿時(shí),輸入抖動(dòng)是如何被抑制的;抖動(dòng)可能會(huì)在傳感器的位置靠近一個(gè)轉(zhuǎn)換點(diǎn)時(shí)產(chǎn)生。在這個(gè)例子中,假定配置如下:
CC1S=01 (TIMx_CCMR1寄存器,IC1FP1映射到TI1)
CC2S=01 (TIMx_CCMR2寄存器,IC2FP2映射到TI2)
CC1P=0 (TIMx_CCER寄存器,IC1FP1不反相,IC1FP1=TI1)
CC2P=0 (TIMx_CCER寄存器,IC2FP2不反相,IC2FP2=TI2)
SMS=011 (TIMx_SMCR寄存器,所有的輸入均在上升沿和下降沿有效),
CEN=1 (TIMx_CR1寄存器,計(jì)數(shù)器使能)
2 系統(tǒng)軟件設(shè)計(jì)
2.1 上位機(jī)軟件設(shè)計(jì)
上位機(jī)界面基于VB進(jìn)行設(shè)計(jì),包括初始狀態(tài)設(shè)定,步進(jìn)電機(jī)命令輸入,運(yùn)行模式選擇,調(diào)頻的實(shí)現(xiàn),限位開(kāi)關(guān),反饋顯示,如圖5所示。
2.2 下位機(jī)軟件設(shè)計(jì)
下位機(jī)程序基于RealView MDK開(kāi)發(fā)環(huán)境進(jìn)行開(kāi)發(fā)。RealView MDK集成了業(yè)內(nèi)最領(lǐng)先的技術(shù),包括μVision3集成開(kāi)發(fā)環(huán)境與RealView編譯器。支持ARM7、ARM9和最新的Cortex-M3核處理器,自動(dòng)配置啟動(dòng)代碼,集成FLASH燒寫模塊,強(qiáng)大的Simulation設(shè)備模擬,性能分析等功能。程序采用模塊化設(shè)計(jì),在主函數(shù)中實(shí)現(xiàn)系統(tǒng)的時(shí)鐘配置、中斷配置、通用輸入/輸出配置、硬件初始化和用戶函數(shù)的調(diào)用。用戶函數(shù)包括步進(jìn)電機(jī)運(yùn)動(dòng)程序、反饋信號(hào)處理程序、限位信號(hào)處理程序、頻率調(diào)節(jié)程序等。驅(qū)動(dòng)步進(jìn)電機(jī)所需的脈沖由定時(shí)器中斷產(chǎn)生。定時(shí)器工作模式的向上計(jì)數(shù)模式,當(dāng)計(jì)數(shù)器溢出時(shí)產(chǎn)生更新事件。所有的寄存器都被更新,計(jì)數(shù)器重新開(kāi)始計(jì)數(shù)。在程序中設(shè)置脈沖啟動(dòng)頻率為50 Hz,加減速頻率為50 Hz/脈沖,可以改善步進(jìn)電機(jī)運(yùn)動(dòng)的平穩(wěn)性,流程圖如圖6所示。[!--empirenews.page--]
2.3 串口通信協(xié)議的編寫
上位機(jī)與下位機(jī)通信采用串口通信,波特率為9 600 b/s、8位數(shù)據(jù)、一個(gè)停止位、無(wú)校驗(yàn)、無(wú)流量控制、接收發(fā)使能。
上位機(jī)與下位機(jī)之間的控制命令采用9個(gè)字節(jié)每幀,包括電機(jī)選擇、命令、數(shù)據(jù)、校驗(yàn)等。
3 實(shí)驗(yàn)
在微位移系統(tǒng)測(cè)量實(shí)驗(yàn)過(guò)程中,采用步進(jìn)電機(jī)步進(jìn)角為1.8°;步進(jìn)電機(jī)驅(qū)動(dòng)器為8細(xì)分;定位機(jī)構(gòu)滾珠絲杠導(dǎo)程為4 mm;光柵傳感器分辨率為1μm。理論上每發(fā)一個(gè)脈沖絲杠移動(dòng)2.5μm。發(fā)送為20 000個(gè)脈沖,脈沖頻率2 000 Hz。理論上光柵傳感器產(chǎn)生50 000個(gè)脈沖。控制系統(tǒng)對(duì)反饋信號(hào)進(jìn)行計(jì)數(shù),并發(fā)送偏差命令進(jìn)行實(shí)時(shí)修正直到最后達(dá)到預(yù)定位置。同時(shí)也進(jìn)行了速度調(diào)節(jié)實(shí)驗(yàn),步進(jìn)電機(jī)運(yùn)行平穩(wěn),驗(yàn)證了系統(tǒng)的可靠性。
4 結(jié)論
基于STM32F103VCT6單片機(jī)的微位移控制系統(tǒng)實(shí)現(xiàn)了對(duì)上位機(jī)命令的響應(yīng)、處理及數(shù)據(jù)交互。通過(guò)接收上位機(jī)發(fā)送的各種命令,STM32F 103VCT6單片機(jī)控制系統(tǒng)產(chǎn)生相應(yīng)的控制信號(hào),并通過(guò)步進(jìn)電機(jī)帶動(dòng)滾珠絲杠完成規(guī)定的動(dòng)作。同時(shí)通過(guò)處理位置反饋信號(hào)來(lái)判斷運(yùn)動(dòng)是否到位,使三維微位移系統(tǒng)的運(yùn)動(dòng)精度大大提高。而且步進(jìn)電機(jī)采用升、降速控制,避免了步進(jìn)電機(jī)的直接啟動(dòng)與急停,大大地改善了步進(jìn)電機(jī)運(yùn)動(dòng)的平穩(wěn)性,而且輸出脈沖頻率可以在20 kHz以內(nèi)調(diào)節(jié),具有很寬的速度范圍,具有很強(qiáng)的適應(yīng)性。整體上滿足了微位移控制系統(tǒng)的要求。