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