一種直接采用計算機串行口控制步進電機的新方法
步進電機在數(shù)控機床、醫(yī)療器械、儀器儀表等自動或半自動設(shè)備中得到了廣泛應(yīng)用。用計算機控制步進電機的通常作法是采用步進控制卡,系統(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標(biāo)準:規(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等。串行口編程方法主要有三種:硬件編程法、文件操作法、串口控件法。
表1 RS232接口各引腳定義
引腳號 | 作 用 | 方 向 |
1 2 3 4 5 6 7 8 9 | CD 數(shù)據(jù)載波檢測 RXD 接收數(shù)據(jù) TXD 發(fā)送數(shù)據(jù) DTR 數(shù)據(jù)終端準備就緒 GND 信號地 DSR 數(shù)據(jù)設(shè)備準備就緒 RTS 請求發(fā)送 CTS 清除發(fā)送 RI 振鈴指示 | 輸入 輸入 輸出 輸出 輸入 輸出 輸入 輸入 |
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、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ù)將串行口作為文件進行操作。
評論