一種直接采用計(jì)算機(jī)串行口控制步進(jìn)電機(jī)的新方法
1.3 串口控件法
用VB及VC++編程時(shí),可用控件對串行口進(jìn)行編程。這種方法通用性好,在Windows、Windows NT、Windows2000及Windows XP等平臺下都能正常工作。在VB中,使用MSCOMM控件;在VC++下使用Microsoft Communication Control這一ActiveX類控件。串口控制使用方法請參考MSDN。
2 串行口步進(jìn)電機(jī)控制器工作原理
2.1 串行口發(fā)送數(shù)據(jù)過程研究
在串行口發(fā)送數(shù)據(jù)的過程中,串行口先發(fā)送起始位(邏輯0)進(jìn)行同步,接著按規(guī)定的波特率(B)從低位到高位依次發(fā)送通訊數(shù)據(jù)的各二進(jìn)制位,最后發(fā)送停止位(邏輯1)。表示每個(gè)二進(jìn)制位的邏輯電平在TXD端的保持時(shí)間為1/B秒。如果按8位數(shù)據(jù)位、1位停止位、無奇偶校驗(yàn)方式發(fā)送數(shù)據(jù),所發(fā)送數(shù)據(jù)的二進(jìn)制位是0、1交替的。例如:數(shù)據(jù)取01010101(即16進(jìn)制的16#55),其發(fā)送過程如圖2中5所示,每發(fā)送一個(gè)字節(jié),在TXD端發(fā)出5個(gè)脈沖,周期T=2/B,即頻率f=B/2。改變發(fā)送數(shù)據(jù)的各二進(jìn)制位,便可在TXD端得到不同的波形。圖2示出欲產(chǎn)生1~5個(gè)脈沖時(shí)應(yīng)發(fā)出的數(shù)據(jù)及對應(yīng)的波形。
2.2 串行口步進(jìn)電機(jī)控制器工作原理
通過分析串行口發(fā)送數(shù)據(jù)的過程可知,從TXD端所發(fā)出的脈沖完全滿足控制步進(jìn)電機(jī)的需要:
①改變發(fā)送的字節(jié)數(shù)及所發(fā)送的字節(jié)內(nèi)容,可在TXD端產(chǎn)生任意數(shù)量的脈沖;
②改變波特率可動態(tài)改變發(fā)送脈沖的頻率。
所以,可用TXD作為控制步進(jìn)電機(jī)的脈沖信號(Pulse)。
串行口的DTR、RTS、CTS、DSR、CD、RI雖然在串行通訊接口中被定義為不同功能的握手信號,但通過對8520的分析可知,它們均可作為一般的I/O量使用,而且不論采用哪種編程方法,都能很方便地對這些信號進(jìn)行讀寫操作。若以DTR(或RTS)作為方向控制信號(Dir),同時(shí)分別以CD、DSR、CTS、RI作為狀態(tài)檢測信號(CWL、CCWL、ORG等),則僅用一個(gè)串行口就已提供了步進(jìn)電機(jī)控制器需要的所有信號。正是基于此原理,我們開發(fā)了串行口步進(jìn)電機(jī)控制器,并成功應(yīng)用在板材多點(diǎn)成形設(shè)備的控制系統(tǒng)中。由于串行口已直接提供了控制步進(jìn)電電機(jī)所需的所有信號,只需將各信號由RS232電平變成TTL電平即可。常用的電平轉(zhuǎn)換器件有DS1488、DS1489、MAX232等[5]。用計(jì)算機(jī)串行口開發(fā)的步進(jìn)電機(jī)控制器工作原理如圖3所示。
3 軟件設(shè)計(jì)及計(jì)算
為避免電機(jī)失步和提高電機(jī)運(yùn)行速度,將步進(jìn)電機(jī)運(yùn)行過程為分三個(gè)階段:低速起動并加速、高速運(yùn)行、減速并停止;相應(yīng)地控制脈沖也分為:升頻、高頻、降頻三段[6],如圖4所示。
在用串行口發(fā)送數(shù)據(jù)產(chǎn)生控制脈沖時(shí),雖然通過改變所發(fā)字節(jié)內(nèi)容的辦法能產(chǎn)生1~5中間任意個(gè)數(shù)的脈沖,但若發(fā)送一個(gè)字節(jié)所字節(jié)的脈沖少于5個(gè),后面接著發(fā)送數(shù)據(jù)產(chǎn)生的脈沖時(shí),兩個(gè)字節(jié)銜接時(shí)所產(chǎn)生的脈沖頻率和占空比均會產(chǎn)生波動。為使電機(jī)運(yùn)行的三個(gè)階段能平滑過濾,需要對每個(gè)階段的脈沖數(shù)量進(jìn)行調(diào)整,使Ⅰ、Ⅱ兩個(gè)階段的步數(shù)均為5的整數(shù)倍(分別為n1×5、n2×5);將非5整數(shù)倍的步數(shù)安排在減速停車的Ⅲ階段,發(fā)出脈沖數(shù)為n3×5+Δp,其中Δp=(1~4)。這可通過改變Ⅲ階段發(fā)送的最后一個(gè)字節(jié)內(nèi)容實(shí)現(xiàn)任意數(shù)量的脈沖輸出。產(chǎn)生1~4個(gè)脈沖應(yīng)發(fā)送的數(shù)據(jù)分別為16#FF、16#FB、16#F5、16#D5。
評論