- 相關推薦
一種直接采用計算機串行口控制步進電機的新方法
摘要:介紹了一種計算機串行口經(jīng)二次開發(fā),用作步進電機控制器的新方法。計算機通過向串行口發(fā)送數(shù)據(jù)產生控制脈沖,實現(xiàn)對步進電機的控制。步進電機在數(shù)控機床、醫(yī)療器械、儀器儀表等自動或半自動設備中得到了廣泛應用。用計算機控制步進電機的通常作法是采用步進控制卡,系統(tǒng)構成如圖1所示[1][2]。其中Pulse、Dir分別為控制電機的轉換步數(shù)和旋轉方向的信號;CWL(Clock Wise Limit)、CCWL(Counter Clock Wise Limit)分別為電機順、逆時針旋轉的限位信號;ORG為定位信號。
這種方法不僅成本較高,而且不便于操作。在計算機擴展槽上安裝控制卡,必需打開機箱才能操作,而且在小型平板電腦和嵌入式電腦中根本沒有安裝控制卡的空間和擴展槽。將計算機串行口二次開發(fā),用于控制步進電機,代替控制卡的作用,具有成本低、操作簡單、兼容性好等優(yōu)點。
1 RS232串行口及編程
計算機串行接口采用RS232標準:規(guī)定邏輯1的電平為-3~-15V,邏輯0的電平為 3~ 15V,常用的信號有8個(接口為DB9M插座時,引腳號如表1所示),其中RXD、TXD為收、發(fā)數(shù)據(jù),可與RS232串行口設備直接進行通訊,RTS、DTR、CD、DSR、CTS、BELL為控制與檢測MODEM的信號,在通訊過程中起聯(lián)絡與控制作用。數(shù)據(jù)格式有5、6、7、8位幾種,1位起始位(邏輯0),1、1.5或2位停止位(邏輯1),可以選擇奇校驗、偶校驗和無校驗,常用波特率為2400、4800、7200、9600bps等。串行口編程方法主要有三種:硬件編程法、文件操作法、串口控件法。
表1 RS232接口各引腳定義
作 用
方 向12
3
4
5
6
7
8
9CD 數(shù)據(jù)載波檢測
RXD 接收數(shù)據(jù)
TXD 發(fā)送數(shù)據(jù)
DTR 數(shù)據(jù)終端準備就緒
GND 信號地
DSR 數(shù)據(jù)設備準備就緒
RTS 請求發(fā)送
CTS 清除發(fā)送
RI 振鈴指示輸入
輸入
輸出
輸出
輸入
輸出
輸入
輸入
1.1 硬件編程法
直接使用端口的輸入、輸出(I/O)函數(shù)對串行口的控制電路進行編程。適用于DOS及Windows平臺(Windows Me以前的各版本),但在基于NT技術構建的操作系統(tǒng)(Windows NT、Windows 2000、Windows XP等)中因不允許用戶程序直接操作硬件而不適用。常用的端口輸入、輸出函數(shù)(指令)有:匯編語言的IN、OUT指令及軟中斷調用,C語言的inport()、outport()、inportb()、outportb(),C 的_inp()、_outp()等。計算機串行口采用Intel 8250異步串行通訊組件構成,COM1、COM2、COM3、COM4的基地址分別為16#3F8(16進制數(shù)3F8,表示法下同)、16#2F8、16#3E8、16E2E8,波特率因子(DR)計算方法為:DR=1.8432×1000000/16B,8250編程請見參考文獻[3]。
1.2 文件操作法[4]
文件操作法是將串行口作為系統(tǒng)的一個文件來處理,通過對這個文件的讀、寫操作引發(fā)串口對數(shù)據(jù)進行收、發(fā)動作。這種方法在DOS、Windows、Windows NT、Windows 2000及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 串行口步進電機控制器工作原理
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示出欲產生1~5個脈沖時應發(fā)出的數(shù)據(jù)及對應的波形。
2.2 串行口步進電機控制器工作原理
【一種直接采用計算機串行口控制步進電機的新方法】相關文章:
步進電機驅動控制系統(tǒng)設計11-22
VC++編程在步進電機控制中的應用03-07
利用DSP控制直流無刷電機03-18
數(shù)字式智能電機控制模塊03-20
基于Simulink的PMSM模糊直接轉矩控制仿真03-07