新聞中心

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

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

        作者: 時間:2012-07-06 來源:網絡 收藏

        在數控機床、醫療器械、儀器儀表等自動或半自動設備中得到了廣泛應用。用控制的通常作法是采用步進控制卡,系統構成如圖1所示[1][2]。其中Pulse、Dir分別為控制電機的轉換步數和旋轉方向的信號;CWL(Clock Wise Limit)、CCWL(Counter Clock Wise Limit)分別為電機順、逆時針旋轉的限位信號;ORG為定位信號。

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

        1 RS232串行口及編程

        計算機串行接口采用RS232標準:規定邏輯1的電平為-3~-15V,邏輯0的電平為+3~+15V,常用的信號有8個(接口為DB9M插座時,引腳號如表1所示),其中RXD、TXD為收、發數據,可與RS232串行口設備直接進行通訊,RTS、DTR、CD、DSR、CTS、BELL為控制與檢測MODEM的信號,在通訊過程中起聯絡與控制作用。數據格式有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 數據載波檢測
        RXD 接收數據
        TXD 發送數據
        DTR 數據終端準備就緒
        GND 信號地
        DSR 數據設備準備就緒
        RTS 請求發送
        CTS 清除發送
        RI 振鈴指示
        輸入
        輸入
        輸出
        輸出

        輸入
        輸出
        輸入
        輸入

        1.1 硬件編程法

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

        1.2 文件操作法[4]

        文件操作法是將串行口作為系統的一個文件來處理,通過對這個文件的讀、寫操作引發串口對數據進行收、發動作。這種方法在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()等函數將串行口作為文件進行操作。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 麻阳| 安龙县| 隆昌县| 乌苏市| 江孜县| 通山县| 深泽县| 綦江县| 台北市| 松滋市| 德令哈市| 印江| 台南县| 怀仁县| 宜春市| 石城县| 泗阳县| 二连浩特市| 明水县| 饶河县| 咸阳市| 东兴市| 武城县| 邯郸市| 民和| 保康县| 山西省| 那曲县| 湖北省| 龙山县| 旬邑县| 高安市| 理塘县| 平泉县| 安吉县| 修武县| 施秉县| 台南县| 务川| 灌南县| 鄂伦春自治旗|