楊美程+楊益鈞+丁寧



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