《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 一種直接采用計算機串行口控制步進電機的新方法

一種直接采用計算機串行口控制步進電機的新方法

2008-12-23
作者:隋 振 李明哲 蔡中義 裴永生

  摘? 要: 介紹了一種計算機串行口經(jīng)二次開發(fā),用作步進電機" title="步進電機">步進電機控制器的新方法。計算機通過向串行口發(fā)送數(shù)據(jù)產(chǎn)生控制脈沖,實現(xiàn)對步進電機的控制。?

  關(guān)鍵詞: 串行口? 二次開發(fā)? 控制脈沖? 步進電機控制器" title="步進電機控制器">步進電機控制器?

?

  步進電機在數(shù)控機床、醫(yī)療器械、儀器儀表等自動或半自動設(shè)備中得到了廣泛應用。用計算機控制步進電機的通常作法是采用步進控制卡" title="控制卡">控制卡,系統(tǒng)構(gòu)成如圖1所示[1][2]。其中Pulse、Dir分別為控制電機的轉(zhuǎn)動步數(shù)和旋轉(zhuǎn)方向的信號;CWL(Clock Wise Limit)、CCWL(Counter Clock Wise Limit)分別為電機順、逆時針旋轉(zhuǎn)的限位信號;ORG為定位信號。

?

?

  這種方法不僅成本較高,而且不便于操作。在計算機擴展槽上安裝控制卡,必需打開機箱才能操作,而且在小型平板電腦和嵌入式電腦中根本沒有安裝控制卡的空間和擴展槽。將計算機串行口二次開發(fā),用于控制步進電機,代替控制卡的作用,具有成本低、操作簡單、兼容性好等優(yōu)點。?

1 RS232串行口及編程?

  計算機串行接口采用RS232標準:規(guī)定邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,常用的信號有8個(接口為DB9M插座時,引腳號如表1所示),其中RXD、TXD為收、發(fā)數(shù)據(jù),可與RS232串行口設(shè)備直接進行通訊,RTS、DTR、CD、DSR、CTS、BELL為控制與檢測MODEM的信號,在通訊過程中起聯(lián)絡(luò)與控制作用。數(shù)據(jù)格式有5、6、7、8位幾種,1位起始位(邏輯0),1、1.5、或2位停止位(邏輯1),可以選擇奇校驗、偶校驗和無校驗,常用波特率為2400、4800、7200、9600bps等。串行口編程方法主要有三種:硬件編程法、文件操作法、串口" title="串口">串口控件法。?

?

?

1.1 硬件編程法?

  直接使用端口的輸入、輸出(I/O)函數(shù)對串行口的控制電路進行編程。適用于DOS及Windows平臺(Windows Me以前的各版本),但在基于NT技術(shù)構(gòu)建的操作系統(tǒng)(Windows NT、Windows 2000、Windows XP等)中因不允許用戶程序直接操作硬件而不適用。常用的端口輸入、輸出函數(shù)(指令)有:匯編語言的IN、OUT指令及軟中斷調(diào)用,C語言的inport(? )、outport(? )、inportb(? )、outportb(? ),C++的_inp(? )、_outp(? )等。計算機串行口采用Intel 8250異步串行通訊組件構(gòu)成,COM1、COM2、COM3、COM4的基地址分別為16#3F8(16進制數(shù)3F8,表示法下同)、16#2F8、16#3E8、16#2E8,波特率因子(DR)計算方法為:DR=1.8432×1000000/16B,8250編程請見參考文獻[3]。?

1.2 文件操作法[4]?

  文件操作法是將串行口作為系統(tǒng)的一個文件來處理,通過對這個文件的讀、寫操作引發(fā)串口對數(shù)據(jù)進行收、發(fā)動作。這種方法在DOS、Windows、Windows NT、Windows2000及Windows XP等平臺下都能正常工作。例如在BASIC語言中可用語句:OPEN “COM1,1200,n,8,1,rs,cs,ds,cd”AS #1將串行口COM1作為文件#1進行讀寫操作。在VC++中,可用CreateFile()、BuildCommDCB()、Read()、Write()、EscapeCOMMFunction()等函數(shù)將串行口作為文件進行操作。?

1.3 串口控件法?

  用VB及VC++編程時,可用控件對串行口進行編程。這種方法通用性好,在Windows、Windows NT、Windows2000及Windows XP等平臺下都能正常工作。在VB中,使用MSCOMM控件;在VC++下使用Microsoft Communication Control這一ActiveX類控件。串口控件使用方法請參考MSDN。?

2 串行口步進電機控制器工作原理" title="工作原理">工作原理?

2.1 串行口發(fā)送數(shù)據(jù)過程研究?

  在串行口發(fā)送數(shù)據(jù)的過程中,串行口先發(fā)送起始位(邏輯0)進行同步,接著按規(guī)定的波特率(B)從低位到高位依次發(fā)送通訊數(shù)據(jù)的各二進制位,最后發(fā)送停止位(邏輯1)。表示每個二進制位的邏輯電平在TXD端的保持時間為1/B秒。如果按8位數(shù)據(jù)位、1位停止位、無奇偶校驗方式發(fā)送數(shù)據(jù),所發(fā)送數(shù)據(jù)的二進制位是0、1交替的。例如:數(shù)據(jù)取01010101(即16進制的16#55),其發(fā)送過程如圖2中5所示,每發(fā)送一個字節(jié),在TXD端發(fā)出5個脈沖,周期T=2/B,即頻率f=B/2。改變發(fā)送數(shù)據(jù)的各二進制位,便可在TXD端得到不同的波形。圖2示出欲產(chǎn)生1~5個脈沖時應發(fā)出的數(shù)據(jù)及對應的波形。

?

?

2.2 串行口步進電機控制器工作原理?

  通過分析串行口發(fā)送數(shù)據(jù)的過程可知,從TXD端所發(fā)出的脈沖完全滿足控制步進電機的需要:?

 ?、俑淖儼l(fā)送的字節(jié)數(shù)及所發(fā)送的字節(jié)內(nèi)容,可在TXD端產(chǎn)生任意數(shù)量的脈沖;?

  ②改變波特率可動態(tài)改變發(fā)送脈沖的頻率。?

  所以,可用TXD作為控制步進電機的脈沖信號(Pulse)。?

  串行口的DTR、RTS、CTS、DSR、CD、RI雖然在串行通訊接口中被定義為不同功能的握手信號,但通過對8250的分析可知,它們均可作為一般的I/O量使用,而且不論采用哪種編程方法,都能很方便地對這些信號進行讀寫操作。若以DTR(或RTS)作為方向控制信號(Dir),同時分別以CD、DSR、CTS、RI作為狀態(tài)檢測信號(CWL、CCWL、ORG等),則僅用一個串行口就已提供了步進電機控制器需要的所有信號。正是基于此原理,我們開發(fā)了串行口步進電機控制器,并成功應用在板材多點成形設(shè)備的控制系統(tǒng)中。由于串行口已直接提供了控制步進電機所需的所有信號,只需將各信號由RS232電平變成TTL電平即可。常用的電平轉(zhuǎn)換器件有DS1488、DS1489、MAX232等[5]。用計算機串行口開發(fā)的步進電機控制器工作原理如圖3所示。?

?

?

3 軟件設(shè)計及計算?

  為避免電機失步和提高電機運行速度,將步進電機運行過程分為三個階段:低速起動并加速、高速運行、減速并停止;相應地控制脈沖也分為:升頻、高頻、降頻三段[6],如圖4所示。

?

?

  在用串行口發(fā)送數(shù)據(jù)產(chǎn)生控制脈沖時,雖然通過改變所發(fā)字節(jié)內(nèi)容的辦法能產(chǎn)生1~5中間任意個數(shù)的脈沖,但若發(fā)送一個字節(jié)所產(chǎn)生的脈沖少于5個,后面接著發(fā)送數(shù)據(jù)產(chǎn)生的脈沖時,兩個字節(jié)銜接時所產(chǎn)生的脈沖頻率和占空比均會產(chǎn)生波動。為使電機運行的三個階段能平滑過渡,需要對每個階段的脈沖數(shù)量進行調(diào)整,使I、II兩個階段的步數(shù)均為5的整數(shù)倍(分別為n1×5、n2×5);將非5整數(shù)倍的步數(shù)安排在減速停車的III階段,發(fā)出脈沖數(shù)為n3×5+Δp,其中Δp=(1~4)。這可通過改變III階段所發(fā)送的最后一個字節(jié)內(nèi)容實現(xiàn)任意數(shù)量的脈沖輸出。產(chǎn)生1~4個脈沖應發(fā)送的數(shù)據(jù)分別為16#FF、16#FB、16#F5、16#D5。?

  由圖4所示的電機運行過程可知,在電機運行過程中,控制脈沖的頻率f應隨時變化以滿足電機低速起停及高速運行的需要。脈沖頻率由發(fā)送數(shù)據(jù)的波特率(B)決定,每發(fā)出一個脈沖需用兩個二進制位1和0來構(gòu)成其高、低電平,所以f=B/2,通過調(diào)整發(fā)送數(shù)據(jù)的波特率可改變所發(fā)出的控制脈沖的頻率。按常規(guī)波特率系列發(fā)送數(shù)據(jù)時所產(chǎn)生的控制脈沖頻率變化較大,不能滿足電機正常起停及調(diào)速的要求,為此計算機需按非標準的波特率發(fā)送數(shù)據(jù)以產(chǎn)生任意頻率的控制脈沖。一般在電機起動及停止階段(I、III)每發(fā)送一個字節(jié)調(diào)整一次波特率,以使電機起停得盡量平滑。?

  I、III階段頻率的調(diào)整量Δf1、Δf2分別為:?

?????

  相應的波特率的調(diào)整量ΔB1、ΔB2分別為:?

?????

  用串行口直接控制步進電機的控制軟件流程圖如圖5所示。?

?

?

4 高級控制功能?

  對步進電機的高級控制,主要是指自動找零及多機聯(lián)動差補。?

  找零功能是指控制步進電機驅(qū)動運動機構(gòu),完成定位的過程。在找零時,電機一般以低速運行,當測到ORG信號時電機停止。由于運行速度低,為簡化程序設(shè)計,每發(fā)送一個字節(jié),在TXD端可以只輸出一個脈沖,測到ORG信號則停止發(fā)送。為保證輸出脈沖的占空比為50%,發(fā)送字節(jié)定為16#F0。找零程序的設(shè)計可參照圖5進行。?

  差補是指控制兩臺或兩臺以上電機按規(guī)定的速比運行,進而控制執(zhí)行機構(gòu)沿規(guī)定的軌跡運行。由于一般計算機只有兩個串行口,這種方法只適用于二維差補控制。通常兩個串行口用相同的波特率進行發(fā)送,通過調(diào)整發(fā)送的字節(jié)數(shù)及發(fā)送每個字節(jié)所產(chǎn)生的脈沖個數(shù)的不同來調(diào)整兩個電機的運行速度和位置。?

  實際運行證明,用串行口設(shè)計的步進電機控制器具有使用方便、性能穩(wěn)定、成本低、可移植性好、不需安裝硬件設(shè)備驅(qū)動程序等優(yōu)點。?

  直接采用計算機串行口設(shè)計的步進電機控制控制器適用于對全數(shù)字式伺服電機進行控制。?

  本文對計算機串行口、并行口等資源的二次開發(fā)應用起到了一定的借鑒作用。?

參考文獻?

1 User’s Manual PCL-839. Advantech Co.Ltd. 1994.12?

2 嘉 志.6020電機控制卡使用手冊.北京:東方嘉志機電技術(shù)發(fā)展中心,2001.1?

3 劉鏡年.IBM-PC微機匯編語言及接口技術(shù).武漢:武漢測繪科技大學出版社,1992.7?

4 鈕金真.用Visual C++6.0開發(fā)Windows98環(huán)境下串行通訊程序.北京:中央民族大學學報,2001.1 ?

5 鄔寬明.單片機外圍器件實用手冊—數(shù)據(jù)傳輸接口器件分冊.北京:北京航空航天大學出版社,1998.12?

6 潘新民.微型計算機控制技術(shù). 北京:人民郵電出版社,1988.3
本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美日韩一区二区三区在线| 久久夜色精品国产噜噜av| 性做久久久久久久久| av成人国产| 亚洲精品日韩欧美| 亚洲电影在线观看| 在线观看日韩av电影| 狠狠色伊人亚洲综合成人| 国产精品一二三视频| 国产精品久久久久久妇女6080 | 亚洲国产欧美日韩精品| 伊大人香蕉综合8在线视| 国模大胆一区二区三区| 国内外成人在线视频| 激情五月***国产精品| 尤妮丝一区二区裸体视频| 激情视频一区二区| 亚洲第一主播视频| 亚洲欧洲在线一区| 99riav国产精品| 中文在线不卡视频| 亚洲欧美日韩精品久久久久| 香蕉久久夜色精品国产| 欧美一区二区三区精品| 久久精品人人做人人爽| 亚洲日本va在线观看| 日韩视频欧美视频| 亚洲午夜久久久久久久久电影院| 亚洲欧美变态国产另类| 久久成人免费网| 久久亚洲色图| 欧美精品 日韩| 欧美日韩亚洲高清| 国产精品区二区三区日本| 国产香蕉97碰碰久久人人| 樱桃成人精品视频在线播放| 亚洲激情视频在线观看| 一区二区日韩伦理片| 亚洲欧美久久久| 久久精品91| 一区二区精品在线观看| 午夜精品亚洲| 女人天堂亚洲aⅴ在线观看| 欧美日韩一卡二卡| 国产欧美精品xxxx另类| 一区精品在线| 一区二区久久| 久久精品人人| 亚洲一区国产视频| 久久蜜桃精品| 欧美日韩在线亚洲一区蜜芽| 国产视频综合在线| 91久久精品一区二区别| 亚洲一区二区黄色| 亚洲国产精品一区二区第一页| 一区二区三区高清在线观看| 欧美一区二区在线免费观看| 欧美成人免费在线观看| 国产精品老女人精品视频| 在线欧美不卡| 亚洲一区二区在线| 亚洲美女在线视频| 欧美在线影院| 欧美日韩美女在线| 国产综合婷婷| 在线亚洲成人| 亚洲国产日韩在线| 亚洲欧美在线aaa| 农村妇女精品| 国产手机视频一区二区| 日韩视频一区二区| 亚洲高清资源| 午夜久久久久久久久久一区二区| 蜜臀av性久久久久蜜臀aⅴ| 国产精品欧美经典| 亚洲精品一区二区三区99| 久久国产精品亚洲77777| 亚洲一区二区影院| 欧美大片18| 国内自拍一区| 亚洲欧美经典视频| 亚洲午夜精品久久| 欧美二区在线播放| 狠狠色丁香婷婷综合久久片| 一区二区冒白浆视频| 亚洲精品久久久久久久久| 久久精品国产99国产精品澳门| 欧美三级电影一区| 最近中文字幕mv在线一区二区三区四区| 亚洲欧美一区二区在线观看| 一本一本久久| 欧美肥婆在线| 亚洲第一中文字幕| 亚洲福利视频专区| 久久久久成人精品免费播放动漫| 国产精品国产三级国产aⅴ9色| 亚洲三级免费电影| 亚洲激情视频在线| 久久婷婷影院| 国内精品免费在线观看| 欧美一级理论片| 午夜国产不卡在线观看视频| 欧美日韩精品免费| 亚洲免费观看高清完整版在线观看熊 | 亚洲自拍三区| 亚洲一区尤物| 欧美美女喷水视频| 亚洲精品久久久久久久久久久| 91久久在线播放| 美女黄毛**国产精品啪啪| 合欧美一区二区三区| 欧美一区免费| 久久精品国产亚洲高清剧情介绍| 国产精品免费视频xxxx| 亚洲一级免费视频| 亚洲欧美日韩在线综合| 国产精品国产三级欧美二区| 在线综合亚洲欧美在线视频| 亚洲一区在线播放| 国产精品看片你懂得| 亚洲一区二区三区在线观看视频| 亚洲欧美国产高清va在线播| 国产精品99免费看| 亚洲一区美女视频在线观看免费| 亚洲影院污污.| 国产精品乱码| 性欧美xxxx视频在线观看| 久久国产精品久久w女人spa| 国产精品综合久久久| 欧美在线视频a| 美女主播精品视频一二三四| 怡红院精品视频| 亚洲伦理一区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品理论片a级按摩 | 亚洲第一中文字幕在线观看| 91久久久久| 欧美日韩国产精品自在自线| 亚洲精品无人区| 亚洲在线视频| 国产一区二区三区四区hd| 亚洲第一区中文99精品| 欧美成人在线免费观看| 99视频在线精品国自产拍免费观看| 亚洲一线二线三线久久久| 国产精品专区一| 亚洲第一中文字幕| 欧美另类人妖| 亚洲一区www| 久久综合成人精品亚洲另类欧美| 亚洲高清在线播放| 亚洲小视频在线观看| 国产欧美日韩激情| 亚洲激情视频网站| 国产精品电影在线观看| 欧美一区激情视频在线观看| 欧美成人性生活| 国产精品99久久久久久久久| 欧美在线|欧美| 亚洲电影免费在线观看| 亚洲综合精品| 激情综合色丁香一区二区| 一区二区三区波多野结衣在线观看| 国产精品入口麻豆原神| 亚洲国内精品| 国产精品久久久久久久久免费樱桃 | 性伦欧美刺激片在线观看| 黑人一区二区三区四区五区| 99精品免费网| 国产日韩亚洲欧美综合| 亚洲精品一区在线观看| 国产精品丝袜白浆摸在线| 亚洲黄网站在线观看| 欧美小视频在线观看| 亚洲高清久久久| 国产精品久久久99| 亚洲国产欧美在线| 国产精品视频导航| 亚洲精选在线观看| 国产色爱av资源综合区| 一区二区三区四区蜜桃| 国内精品国产成人| 亚洲男人第一网站| 亚洲国产另类久久精品| 欧美一区中文字幕| 亚洲精品美女| 老司机精品视频一区二区三区| 一本色道久久综合亚洲精品按摩 | 亚洲午夜一区二区| 免费欧美在线| 午夜精品理论片| 欧美日韩中文字幕日韩欧美| 久久激情综合网| 国产精品国产三级国产普通话蜜臀| 亚洲黄页视频免费观看| 国产精品视频观看| 一区二区三区鲁丝不卡| 激情欧美一区二区三区| 性做久久久久久久久| 亚洲剧情一区二区| 蜜桃av噜噜一区|