新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 數控系統中基于CPLD的步進電機驅動模塊的設計

        數控系統中基于CPLD的步進電機驅動模塊的設計

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

        摘要:介紹一種采用大規模可編程邏輯器件來控制的方法,對電機的控制方式為四相八拍。通過對進行編程,從而對電機達到啟動,停止,正轉,反轉的控制。采用的編程語言為VHDL語言,使用的編程環境為MAX+PLUSⅡ。最后通過軟件仿真達到精確的仿真結果。
        關鍵詞:;控制;;VHDL

        0 引言
        數控技術是以數字量編程實現控制機械或其他設備自動工作的技術,數控機床就是采用了數控技術的機床,或者說裝備了的機床。機床主要由幾個部分組成:零件加工程序的輸入、數據處理、插補計算和運動機構的控制。本文主要介紹最后一個部分運動機構的控制,即如何控制電機的動作。可選的電機有很多種,在這里我們選擇
        步進電機是數字控制電機,是一種將電脈沖轉換成角位移的精密執行元件。它的旋轉是以固定的角度一步一步運行的,每給步進電機發一個脈沖電機就旋轉一個固定的角度,只要脈沖數發的正確,電機就能走到位,無累積誤差,所以對步進電機的控制可以采用開環控制方法。如何精確且經濟的控制步進電機成為廣大研究人員探討的課題。本文將采用CPLD來實現對步進電機的控制。并最終通過實驗仿真結果。

        1 步進電機驅動原理
        步進電機的驅動是靠給步進電機的各相勵磁繞組通電,實現步進電機內部磁場方向的變化來使步進電機轉動的。設我們所用的步進電機是四相的,這四相分別為A,B,C,D,對應于四對磁極。每個磁極的內表面都分布著大小,齒間距相同的多個小齒(不同的步進電機,小齒的個數不同),假設Ⅳ為轉子中小齒的個數。當這4相按A—B—C—D的順序通電時,步進電機的內部磁場變化一周(360°),此種通電方式為單相四拍通電方式,此時步進電機的步距角:
        θ=90°/N
        若N=50,則θ=1.8°
        如果選擇的通電順序為A—AB—B—BC—C—CD—D—AD,此種通電方式為雙相八拍通電方式,此時步進電機的步距角為:
        θ=45°/N
        若N=50,則θ=0.9°
        步距角是步進電機一次能轉過的最小角度,電機的步距角越小,說明電機走的越精確,所以本文選擇驅動電機通電的方式為雙相八拍通電方式。

        2 設計方案
        一個完整的,控制精度高的步進電機控制系統框圖如圖1所示。CPLD和步進電機的驅動器相連,驅動器把CPLD輸出的信號放大后送入步進電機,由于數控機床的各個軸是靠電機的轉動來帶動的,所以電機的轉動帶動相應軸的動作。

        本文引用地址:http://www.104case.com/article/190792.htm

        a.jpg


        各組成模塊功能描述如下:
        2.1 CPLD模塊
        使用CPLD來控制步進電機實現電機的啟動、停止以及正反轉。傳統的方式是用單片機來控制步進電機,但是在一個中單片機要做的工作很多,比如單片機既要控制步進電機還要接受上位機的數據做相應的運算,還要控制顯示模塊,以及報警處理等,如果改用CPLD來驅動步進電機則可以減輕單片機的負擔。用大規模可編程邏輯器件作為控制器,可以反映出CPLD在控制方面起到較高的作用,而不是僅僅作為邏輯器件來使用。并且CPLD具有較為經濟的價格。
        另外CPLD的外圍接口也較多,比如以ALTERA公司生產的EPM7032為例,它的I/O口有36個,內部的邏輯門有600多個,除了驅動步進電機所用的資源外,其余剩余的資源還可在系統中做其他用途。
        在實際電路板設計階段,如果用傳統的設計方法設計電路必須首先決定使用的器件類別和規格,然后從繪制硅片版圖開始,逐級向上,直至整個系統的設計。在這個過程中如果有哪一級發生問題必須返工重來,整個電路板將報廢。但是如果使用CPLD,設計方法是自頂向下的設計方法,就是在整個設計流程中各設計環節逐步求精的過程。比如在我們設計的一開始就可以先把CPLD和驅動器相連,再通過軟件的設置來利用到我們已經連好的引腳,如果程序出現錯誤,可以同過ISP(在系統可編程的方法)把新的程序裝載到CPLD中,而不用更換電路板。
        2.2 驅動器模塊
        步進電機的運行要有一電子裝置進行驅動,這種裝置就是步進電機驅動器,由于CPLD輸出的信號還不足以驅動電機使電機轉動,所以在CPLD和步進電機之間要連接驅動器,放大CPLD輸出的信號。CPLD每發一個脈沖信號,通過驅動器就使步進電機旋轉一步距角。因而控制送入步進電機脈沖頻率,可以對電機進行調速。脈沖發的快電機運行的快,脈沖發的慢電機運行的慢。對于電機轉速的控制可以間接通過調整對送入CPLD中CLK脈沖的頻率來實現;控制步進脈沖的個數,可以對電機進行精確定位。
        3 軟件實現
        本文通過對CPLD進行編程來實現對步進電機的控制,使用的語言是VHDL語言,使用的編程環境是MAX+PLUSII。控制程序由兩大部分構成,一是實體部分,二是結構體部分,實體的作用是描述端口的信息,結構體的作用是描述電路的功能。
        3.1 實體部分
        在實體中定義了6個端口。
        CLK:時鐘信號
        reset:復位信號
        DIR:正轉信號
        START:啟動信號
        STOP:停止信號
        phase:輸出信號
        3.2 結構體部分
        在軟件設計中,重點是先正確寫出雙相八拍通電方式下的狀態轉換表。

        b.jpg


        表1中‘1’表示通電,‘0’表示斷電,S0~S7分別表示按A—AB—B—BC—C—CD—D—AD通電方式下的8個狀態。在此種狀態順序下電機正轉,反之電機反轉。表中的S0~S7都是以二進制數來表示,如果轉換為十六進制數則分別為1,3,2,6,4,C,8,9。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 沂南县| 池州市| 太湖县| 祁阳县| 寿阳县| 南丹县| 哈尔滨市| 绿春县| 靖边县| 图片| 论坛| 彰武县| 舒兰市| 临沭县| 梅州市| 临澧县| 罗田县| 东阿县| 铜鼓县| 什邡市| 鲁山县| 临海市| 镇江市| 大同市| 渝中区| 泸西县| 仙居县| 精河县| 淳化县| 遂川县| 丽江市| 和林格尔县| 建昌县| 莒南县| 得荣县| 吴旗县| 宁夏| 临武县| 西林县| 台北市| 建湖县|