楊美程+楊益鈞+丁寧
摘 要:AVR單片機為核心的嵌入式系統(tǒng),配備專用步進電機驅(qū)動器實現(xiàn)對絲桿步進電機運動的控制工作,LabVIEW軟件構(gòu)建虛擬儀器系統(tǒng)并創(chuàng)建友好交互界面。單片機和LabVIEW之間確定串口通信規(guī)則,使LabVIEW能夠發(fā)送相應(yīng)字符串到單片機從而實現(xiàn)對絲桿步進電機啟停、運動方向、運動步數(shù)的直接控制,并能夠讀取電機相關(guān)運動狀態(tài)。文章設(shè)計的絲桿電機運動控制系統(tǒng)具有工作穩(wěn)定,易于操作和可移植性強的特點。
關(guān)鍵詞:單片機;LabVIEW;步進電機;串口通信
中圖分類號:TM383.6 文獻標志碼:A 文章編號:2095-2945(2017)23-0011-02
1 概述
絲桿步進電機,又稱線性步進電機,由于其特殊的機械機構(gòu)和工作機理,在日常實驗研究及工業(yè)生產(chǎn)等相關(guān)領(lǐng)域發(fā)揮著越來越大的作用。隨著技術(shù)的不斷發(fā)展創(chuàng)新,對于絲桿步進電機運動的控制方法已經(jīng)不僅僅只限于單種技術(shù)的使用,而是多技術(shù)混合,結(jié)合各自的獨特優(yōu)勢來實現(xiàn)最優(yōu)化的系統(tǒng)設(shè)計。本系統(tǒng)以AVR單片機為核心搭建硬件工作電路,LabVIEW軟件創(chuàng)建虛擬儀器系統(tǒng),解決了步進電機工作噪聲較大,控制操作不便等問題。
2 系統(tǒng)組成
系統(tǒng)主要由裝有LabVIEW軟件的計算機,AVR單片機、電機驅(qū)動器和絲桿步進電機組成,系統(tǒng)組成框圖如圖1所示。
其中本系統(tǒng)中選用美國國家儀器(NI)公司研制開發(fā)的2014版LabVIEW軟件,LabVIEW是一種圖形化的編程語言的開發(fā)環(huán)境,可以方便地建立自己的虛擬儀器,利用其編寫的上位機程序控制下位機;下位機選用ATMEL公司 中8位系列單片機的ATmega128系列單片機,該款單片機穩(wěn)定性極高,功耗也很低,單片機與計算機之間通過USB線連接;電機驅(qū)動器選用TB6600型號的兩相式步進電機驅(qū)動器,可實現(xiàn)正反轉(zhuǎn)控制,通過3位撥碼開關(guān)選擇7檔細分控制,3位撥碼快關(guān)選擇8檔電流控制,能達到低振動、小噪聲、高速度的效果;絲桿步進電機選用機身長度40mm,相電流1.7A,保持轉(zhuǎn)矩43N·cm,導(dǎo)程8mm的42絲桿步進電機。
3 系統(tǒng)功能實現(xiàn)
本系統(tǒng)是一種絲桿步進電機運動控制系統(tǒng),最終可通過LabVIEW直接發(fā)送控制絲桿步進電機啟停、運動方向以及運動步數(shù)的命令,并能讀取電機相關(guān)運動狀態(tài)。要完成上述功能需要單片機硬件控制電機、單片機與LabVIEW串口通信和LabVIEW狀態(tài)機三個基本功能的實現(xiàn)。
3.1 單片機硬件控制電機
步進電機的運動離不開PWM波的使用,因此將AVR單片機中定時器T0處于8位快速PWM工作模式,可產(chǎn)生高頻的PWM波形。根據(jù)本系統(tǒng)中絲桿電機的結(jié)構(gòu)參數(shù)及實際應(yīng)用情況,經(jīng)過一系列的測試,定時器T0工作在系統(tǒng)8分頻頻率下,初值TCNT0設(shè)為0,輸出比較寄存器值OCR0設(shè)定為0x7F,此時相應(yīng)引腳能夠輸出占空比50%,頻率5.68KHz的PWM方波。將PWM方波輸入到驅(qū)動器PUL+脈沖信號輸入端,驅(qū)動器電機繞組連接端子與電機兩相相連,通過細分控制和電流控制撥碼開關(guān)的選擇,使絲桿步進電機在細分工作方式下運動,本系統(tǒng)中選擇32細分可達到6400脈沖/轉(zhuǎn),單步螺桿螺距相對運動0.025mm,此時電機運動平滑,穩(wěn)定,噪聲小。對于電機運動方向的控制,單片機通過直接控制電機驅(qū)動器DIR電機正反轉(zhuǎn)控制端的電平變化即可實現(xiàn)。單片機、電機驅(qū)動器和絲桿步進電機連接如圖2所示。
AVR單片機嵌入式系統(tǒng)根據(jù)收到的步數(shù)指令使電機運動相應(yīng)的步數(shù),且能夠?qū)斍斑\動步數(shù)發(fā)送出去。本系統(tǒng)設(shè)置定時器T1定時間隔8.25ms,定時到來記一次步數(shù)且根據(jù)方向標志位確定步數(shù)的加或減。單片機收到步數(shù)指令后先判斷該指令步數(shù)與當前電機運動步數(shù)的大小來確定電機運動方向,隨后使電機運動相應(yīng)步數(shù),并在收到讀取步數(shù)指令后將當前步數(shù)發(fā)送出去。
3.2 單片機與LabVIEW串口通信
首先確定單片機與LabVIEW異步串口通信基本規(guī)則,本系統(tǒng)中波特率設(shè)置2400bps,數(shù)據(jù)位8位,停止位1位,無奇偶校驗位、停止位和終止符。編寫單片機串口通信初始化,發(fā)送字符串,接收字符串以及中斷服務(wù)函數(shù),使單片機能接收到相應(yīng)指令字符串執(zhí)行相應(yīng)動作,并發(fā)送相關(guān)數(shù)據(jù)。
LabVIEW中使用儀器I/O工具包中串口相關(guān)函數(shù)完成串口通信。其中使用VISA配置串口函數(shù)連接單片機設(shè)備并配置相關(guān)通信參數(shù);VISA寫入函數(shù)寫入緩沖區(qū)接線端連接需要寫入的命令字符串;利用Byte at Port屬性節(jié)點返回輸入緩沖區(qū)已存在的字節(jié)數(shù),并連接到VISA讀取函數(shù)字節(jié)總數(shù)接線端,避免讀函數(shù)一直處于等待狀態(tài),阻塞讀進程,導(dǎo)致線程中的其他操作無法進行;VISA讀取函數(shù)讀取緩沖區(qū)接線端能輸出從指定設(shè)備中讀取到的字符串數(shù)據(jù);最后使用VISA關(guān)閉函數(shù)釋放設(shè)備會話空間從而完成設(shè)備間的通信。
3.3 LabVIEW狀態(tài)機
LabVIEW狀態(tài)機對于不同事件的動作是通過在循環(huán)結(jié)構(gòu)中放置事件結(jié)構(gòu)實現(xiàn)的,本系統(tǒng)所用LabVIEW狀態(tài)機的程序框圖如圖3所示。在本系統(tǒng)中要實現(xiàn)對絲桿步進電機啟停、運動方向、運動步數(shù)的直接控制,并讀取相關(guān)運動狀態(tài),則共需要創(chuàng)建五個事件結(jié)構(gòu),分別為“上升”值改變結(jié)構(gòu),內(nèi)有上升布爾控件及“U”字符串;“下降”值改變結(jié)構(gòu),內(nèi)有下降布爾控件及“D”字符串;“讀取步數(shù)”值改變結(jié)構(gòu),內(nèi)有讀取步數(shù)布爾控件及“A”字符串;“寫入步數(shù)”值改變結(jié)構(gòu),內(nèi)有寫入步數(shù)布爾控件及步數(shù)值字符串;“停止”值改變結(jié)構(gòu),內(nèi)有停止布爾控件及“S”字符串。
4 系統(tǒng)工作調(diào)試
計算機、單片機、電機驅(qū)動器和絲桿步進電機等設(shè)備組裝完整系統(tǒng),以AVR單片機為核心的嵌入式系統(tǒng)及LabVIEW狀態(tài)機設(shè)計完成后,對系統(tǒng)進行工作調(diào)試。運行程序后,點擊上升控件則步進電機以每步螺桿螺距相對運動0.025mm的速度正轉(zhuǎn)運動,點擊下降控件則以相同速度反轉(zhuǎn),當前狀態(tài)顯示控件能夠顯示當前運動狀態(tài),點擊讀取步數(shù)控件能夠顯示當前運動的步數(shù),而點擊寫入步數(shù)控件并給定步數(shù)值后電機也會工作相應(yīng)狀態(tài),選擇停止控件電機停止運動。程序運行過程中通訊指示燈都會處于點亮狀態(tài)。
5 結(jié)束語
本文提出的一種基于AVR單片機和LabVIEW的絲桿步進電機運動控制系統(tǒng),以AVR單片機為核心的嵌入式系統(tǒng)結(jié)合電機驅(qū)動器完成對步進電機的硬件控制,LabVIEW創(chuàng)建的虛擬儀器系統(tǒng)通過和嵌入式系統(tǒng)間的串口通信完成對絲桿步進電機的直接控制,且LabVIEW操作界面交互性強,操作簡單。此系統(tǒng)是絲桿步進電機運動的基本操作系統(tǒng),因此具有很強的移植性,可直接應(yīng)用于基于絲杠步進電機的工件檢測臺等裝置或其他相關(guān)研究領(lǐng)域。
參考文獻:
[1]范志華,劉楓,董潤堅,等.基于labview的步進電機控制系統(tǒng)設(shè)計[J].農(nóng)業(yè)與技術(shù),2016,36(13):16-18.
[2]劉星辰,劉東斌,杜鵬.步進電機控制系統(tǒng)的設(shè)計與實現(xiàn)[J].微計算機信息,2009,25(8):26-28.
[3]楊輝,周強.基于LabVIEW和AVR單片機的壓力數(shù)據(jù)采集處理系統(tǒng)[J].化工自動化及儀表,2010,37(11):92-94.