技術頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網 > 技術頻道 > 技術百科 > 用串行口控制步進電機兩維運動系統(tǒng)

用串行口控制步進電機兩維運動系統(tǒng)

時間:2009-05-13 10:20:26來源:ronggang

導語:?串行口|步進電機|運動控制

摘 要:本文介紹了一種通過微機的串行口控制兩維坐標定位系統(tǒng)的新方法。該方法不需要MCU,可以方便的通過改變串口的波特率來改變步進電機的運行速度,可以通過RS232串口中控制Modem狀態(tài)的輸入、輸出信號來控制運動的方向和讀入不同的位置信息。該方法使用邏輯電路實現(xiàn)控制功能,比用MCU的方法不僅簡單,省卻了編程的麻煩,而且提高了可靠性。

關鍵詞:串行口;步進電機;運動控制

1. 引言   步進電機是一種將電脈沖轉化為角位移的執(zhí)行機構。當步進驅動器接收到一個脈沖信號,它就驅動步進電機按設定的方向轉動一個固定的角度(稱為“步距角”),它的旋轉是以固定的角度一步一步運行的??梢酝ㄟ^控制脈沖個數來控制角位移量,從而達到準確定位的目的;同時可以通過控制脈沖頻率來控制電機轉動的速度和加速度,從而達到調速的目的。步進電機可以作為一種控制用的特種電機,利用其沒有積累誤差(精度為100%)的特點,廣泛應用于各種開環(huán)控制。步進電機在數控機床、醫(yī)療器械、儀器儀表等自動或半自動設備中得到了廣泛應用。用計算機控制步進電機的通常作法是采用步進控制卡, 這種方法不僅成本較高,而且不便于操作。在計算機擴展槽上安裝控制卡,必需打開機箱才能操作,而且在小型平板電腦和嵌入式電腦中根本沒有安裝控制卡的空間和擴展槽。進年來出現(xiàn)了將計算機串行口二次開發(fā),用于控制步進電機的技術,代替控制卡的作用,具有成本低、操作簡單、兼容性好等優(yōu)點。本文介紹了一種通過微機的串行口控制兩維坐標定位系統(tǒng)的新方法。

  串行口是微機系統(tǒng)的標準配置,在儀器儀表控制系統(tǒng)中得到廣泛的應用。計算機串行接口采用RS232標準[1]:規(guī)定邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,常用的信號有8個(接口為DB9M和DB25M插座時,引腳號如表1所示),其中RXD、TXD為收、發(fā)數據,可與RS232串行口設備直接進行通訊,RTS、DTR、CD、DSR、CTS、BELL為控制與檢測MODEM的信號,在通訊過程中起聯(lián)絡與控制作用。數據格式有5、6、7、8位幾種,1位起始位(邏輯0),1、1.5、或2位停止位 (邏輯1),可以選擇奇校驗、偶校驗和無校驗,常用波特率為2400、4800、7200、9600bps等。

  表1 標準9針和25針串口的管腳定義

  用串行口控制步進電機驅動的運動系統(tǒng)的一般方法是通過單片機或其它嵌入式控制系統(tǒng),由計算機向單片機系統(tǒng)發(fā)送控制信息,單片機系統(tǒng)再直接控制運動系統(tǒng),從而計算機可以間接的控制系統(tǒng)的行為。這種方法有一些缺點。比如控制缺少靈活性,往往只能按照事先定好的模式運動,不能通過控制軟件任意改變。單片機要同時接受計算機命令和發(fā)送狀態(tài)給計算機,又要控制運動系統(tǒng),多任務并行,給程序編制帶來一定麻煩。單片機程序容易跑飛,給系統(tǒng)可靠性帶來很大威脅,甚至有時需要人工復位操作。為了克服這些缺點,在實際應用中,我們設計了一個串行口直接控制運動系統(tǒng)的方法。該方法不需要MCU,可以方便的通過改變串口的波特率來改變步進電機的運行速度,可以通過RS232串口中控制Modem狀態(tài)的輸入、輸出信號來控制運動的方向和讀入不同的位置信息。由于是直接控制,沒有中間的處理器系統(tǒng),克服了上面的缺點,降低了成本。下面介紹這種控制系統(tǒng)實現(xiàn)的方法。

2. 二維運動步進電機驅動的控制方法

  步進電機驅動的二維運動定位系統(tǒng)中,每一個維度都是由步進電機驅動絲杠轉動,絲杠再把運動轉化為直線運動。如圖1所示。對該系統(tǒng)的控制,除了要發(fā)出步進電機的方向控制和步進脈沖信號外,還要讀入絕對定位用的開關信號,這樣才能達到絕對坐標控制的目的。圖中S1是坐標零點的限位開關,它輸出高電平時,表示運動已經到了絕對零點。因為這種機械或光電開關的精度有限,所以由S1輸出的零點脈沖精度不高。為了提高零點的位置精度,還設置了開關S0,步進電機每旋轉一圈,它輸出一個脈沖。雖然S0輸出的脈沖寬度和S1比并沒有什么改變,但由于絲杠的作用,使S0輸出的脈沖相對于線性位置的精度大大提高。因此,零點的判斷方法應該是:當向左運動時,首先判斷S1是否輸出高電平。如果輸出高電平,表示已經基本到達零點,只是精度還要繼續(xù)提高。這時繼續(xù)驅動步進電機轉動,判斷S0是否輸出高電平。如果S0輸出也達到高電平,才表明真正達到了零點。開關S2是坐標最大值的限位開關,它輸出高電平表明已經達到了坐標的最大值,不能再向右運動。 [align=center] 圖1 步進電機驅動示意圖[/align]  

 圖1只是畫出了一維運動的示意圖,另一維的控制完全相同。下面著重討論具體的實現(xiàn)方法。

3. 步進脈沖的產生和速度計算

  每給步進電機的驅動器一個脈沖,步進電機就轉動一步,而方向是由另外一個電平信號控制的。對于某種步進電機來說,每轉動一周需要的脈沖個數是一個固定的常數n,因此,每發(fā)送一個脈沖電機轉動的角度也是固定的,稱為步距角s。s和n的關系是:s=360/n度。比如,一種四相八拍運行的步進電機每周需要400個脈沖,則步距角s=0.9度。

  步進脈沖采用巧妙的利用計算機串行數據的格式經過恰當的設置產生。計算機的串口數據幀一般由起始位、數據位、校驗位、停止位組成,如圖二所示是傳送B10010011的情況,這里起始位設定為1位,下面是8個數據位,奇偶位設置為“Mark”,即為1,停止位為1位,是邏輯1。停止位的作用是如果連續(xù)發(fā)送數據時,保證一個數據幀的接受完畢和另一個數據幀的起始保持一定的時間間隔。這樣,我們設定的一個數據幀有11位。隨著發(fā)送的數據不同,我們可以在這11個數據幀中得到不同個數、不同時間寬度的脈沖。比如,發(fā)送二進制數B11110000,則起始位0后緊接著4位0,后面4位連續(xù)的1,再加上奇偶位和停止位兩個1,整個數據幀組成由前面5個連續(xù)的0和后面6個連續(xù)的1組成的1個脈沖信號。如果選擇不同的發(fā)送數據,還可以得到不同個數的脈沖。比如,發(fā)送B10101010可以得到連續(xù)4個脈沖。這里,為了得到均勻的占空比,總是采用發(fā)送B11110000數據的方式每個數據幀產生一個脈沖。 [align=center] 圖二、傳送二進制數B10010011的示意圖[/align]   串行通訊的波特率B定義為每秒發(fā)送數據的位數,一個數據幀11位,則需要的時間T位11/B,而每個數據幀只產生一個脈沖,則脈沖頻率v可以確定為v=B/11,如果步進電機每周需要的脈沖個數為n,則電機轉速ω=60B/11n轉/分。例如,如果B取9600b/s,n取400,則ω=131轉/分。

4. 位置信號和方向信號的讀入和輸出

  計算機的9針標準RS232串行口信號除了數據發(fā)送接受用的TxD/RxD外還有RTS/CTS、DTR/DSR、DCD等信號。這些信號原本定義控制Modem用的,我們這里用來讀入位置信號和輸出方向信號以及維度選擇。具體的說,我們用DTR輸出維度選擇信號,如為“1”,則表示這時的所有輸出和輸入都是針對X方向的運動,如為“0”,則選擇Y方向。信號RTS用來輸出運動的方向,即控制步進電機正傳和反轉。輸入信號CTS、DSR、DCD用來輸入限位開關和零位開關的信號。

  另外,還要有RS232電平和TTL電平之間的轉換電路。RS232電平是負邏輯電平,為了實現(xiàn)RS232電平和5VTTL電平之間的轉換,這里我們采用MAX232專用芯片,該芯片核心是一個“電荷泵”,只需要單5V供電即可。   電路的示意圖如圖三所示,整個電路的邏輯可以用一片可編程邏輯芯片EPM7064實現(xiàn)。在實現(xiàn)上面電路的同時,在可編程邏輯芯片中,我們同時實現(xiàn)了步進電機的脈沖分配邏輯和保護邏輯,在坐標達到最大和最小值后,電機不再允許向右和向左運動。

5. 實際應用和編程

  本文提供的方法對計算機控制軟件軟件的編制給予了極大的方便[2]。以MSVB6為例[3],放置串口控件MSCOMM32后可以方便的通過程序設置DTR、RTS的值來控制運動的維度和方向,通過讀取控件屬性CTS、DSR、DCD的值來得到運動的情況,通過設置不同的發(fā)送波特率來改變步進電機的速度,通過在發(fā)送緩沖區(qū)中放置字符個數控制步進電機的運動步數。我們也可以在Delphi下方便的編程[4],在其它計算平臺上,我們也可以方便的編程,比如,在linux上[5],我們可以通過對ttyS0設備編程方便的控制串口設備。   本文的方法作者已經成功地應用在金相顯微鏡載物臺的自動控制中。

本文作者創(chuàng)新點:

  1. 通過串口的波特率、格式設置和輸出字符來產生不同頻率和占空比的步進電機驅動脈沖。

  2. 通過標準串口的輸入、輸出控制信號,輸入和輸出兩維運動系統(tǒng)的控制信號和位置信號。

參考文獻:

  1. 《微型計算機接口技術及應用》,劉樂善等,華中理工大學出版社,2000.4。

  2. 《Visual C++/Turbo C串口通信編程實踐》,龔建偉,熊光明,電子工業(yè)出版社,2004.10。

  3. 胡慶云,羅飛路,Visual Basical 6.0中通信控件的應用,微計算機信息,2001 Vol.17 No.2,40頁。

  4. 張立材,Delphi編程中用MSComm控件實現(xiàn)串行通訊,微計算機信息,2001 Vol.17 No.3,26頁。

  5. 《linux程序設計權威指南》,于明儉等,機械工業(yè)出版社,2001.4。

標簽:

點贊

分享到:

上一篇:運動控制系統(tǒng)抗干擾分析

下一篇:微能WIN-V63矢量控制變頻器在...

中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(m.u63ivq3.com)獨家所有。如需轉載請與0755-82949061聯(lián)系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。

本網轉載并注明其他來源的稿件,均來自互聯(lián)網或業(yè)內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。

網站簡介|會員服務|聯(lián)系方式|幫助信息|版權信息|網站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網-工業(yè)自動化與智能制造的全媒體“互聯(lián)網+”創(chuàng)新服務平臺

網站客服服務咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網安備 44030402000946號