新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種直接采用計算機串行口控制步進電機的新方法

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

作者: 時間:2012-07-06 來源:網(wǎng)絡 收藏

1.3 串口控件法

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

2 串行口控制器工作原理

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ā)出的脈沖完全滿足控制的需要:

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

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

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

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

3 軟件設計及計算

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

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



評論


相關推薦

技術專區(qū)

關閉