《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的步進(jìn)電機(jī)控制器設(shè)計(jì)
基于FPGA的步進(jìn)電機(jī)控制器設(shè)計(jì)
摘要: 目前大多數(shù)步進(jìn)電機(jī)控制器需要主控制器發(fā)送時(shí)鐘信號(hào),,并且要至少一個(gè)I/O口來輔助控制和監(jiān)控步進(jìn)電機(jī)的運(yùn)行情況。在單片機(jī)或DSP的應(yīng)用系統(tǒng)中,,經(jīng)常配合CPLD或者FPGA來實(shí)現(xiàn)特定的功能,。本文介紹通過FPGA實(shí)現(xiàn)的步進(jìn)電機(jī)控制器,。該控制器可以作為單片機(jī)或DSP的一個(gè)直接數(shù)字控制的外設(shè),只需向控制器的控制寄存器和分頻寄存器寫入數(shù)據(jù),,即町實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制。
Abstract:
Key words :

    步進(jìn)電機(jī)是一種將電脈沖信號(hào)轉(zhuǎn)換成相應(yīng)的角位移的特殊電機(jī),,每改變一次通電狀態(tài),,步進(jìn)電機(jī)的轉(zhuǎn)子就轉(zhuǎn)動(dòng)一步。

       目前大多數(shù)步進(jìn)電機(jī)控制器需要主控制器發(fā)送時(shí)鐘信號(hào),,并且要至少一個(gè)I/O口來輔助控制和監(jiān)控步進(jìn)電機(jī)的運(yùn)行情況,。在單片機(jī)或DSP的應(yīng)用系統(tǒng)中,經(jīng)常配合CPLD或者FPGA來實(shí)現(xiàn)特定的功能,。本文介紹通過FPGA實(shí)現(xiàn)的步進(jìn)電機(jī)控制器,。該控制器可以作為單片機(jī)或DSP的一個(gè)直接數(shù)字控制的外設(shè),只需向控制器的控制寄存器和分頻寄存器寫入數(shù)據(jù),,即町實(shí)現(xiàn)對(duì)步進(jìn)電機(jī)的控制,。

  1 步進(jìn)電機(jī)的控制原理

  步進(jìn)電機(jī)是數(shù)字控制電機(jī),,它將脈沖信號(hào)轉(zhuǎn)變成角位移,即給一個(gè)脈沖信號(hào),,步進(jìn)電機(jī)就轉(zhuǎn)動(dòng)一個(gè)角度,,因此非常適合對(duì)數(shù)字系統(tǒng)的控制。步進(jìn)電機(jī)可分為反應(yīng)式步進(jìn)電機(jī)(簡(jiǎn)稱“VR”),、永磁式步進(jìn)電機(jī)(簡(jiǎn)稱“PM”)和混合式步進(jìn)電機(jī)(簡(jiǎn)稱“HB”),。

  步進(jìn)電機(jī)區(qū)別于其他控制電機(jī)的最大特點(diǎn)是,通過輸入脈沖信號(hào)來進(jìn)行控制,,即電機(jī)的總轉(zhuǎn)動(dòng)角度由輸入脈沖數(shù)決定,,而電機(jī)的轉(zhuǎn)速由脈沖信號(hào)頻率決定。

  步進(jìn)電機(jī)的驅(qū)動(dòng)電路根據(jù)控制信號(hào)工作,,控制信號(hào)由各類控制器來產(chǎn)生,。其基本原理作用如下:

  ①控制換相順序,,通電換相,。這一過程稱為“脈沖分配”。例如:四相步進(jìn)電機(jī)的單四拍工作方式,,其各相通電順序?yàn)锳-B-C-D,。通電控制脈沖必須嚴(yán)格按照這一順序分別控制A、B,、C,、D相的通斷,控制步進(jìn)電機(jī)的轉(zhuǎn)向,。如果給定工作方式正序換相通電,,則步進(jìn)電機(jī)正轉(zhuǎn);如果按反序換相通電,,則電機(jī)就反轉(zhuǎn),。

  ②控制步進(jìn)電機(jī)的速度,。如果給步進(jìn)電機(jī)發(fā)一個(gè)控制脈沖,,它就轉(zhuǎn)一步,再發(fā)一個(gè)脈沖,,它會(huì)再轉(zhuǎn)一步,。兩個(gè)脈沖的間隔越短,步進(jìn)電機(jī)就轉(zhuǎn)得越快,。調(diào)整控制器發(fā)出的脈沖頻率,,就可以對(duì)步進(jìn)電機(jī)進(jìn)行調(diào)速。

  2 控制器的總體設(shè)計(jì)

  控制器的外部接口電路如圖1所示,。各引腳的功能如下:

控制器的內(nèi)部原理框圖

       控制器的內(nèi)部原理框圖如圖2所示,,由命令字寄存器(Cmd_reg),、分頻系數(shù)備份寄存器(fdiv_back)、分頻器,、相位輸出狀態(tài)機(jī)組成,。

控制器的內(nèi)部原理框圖

  其中命令字寄存器Cmd_reg組成如下(對(duì)應(yīng)的地址為“00”):

命令字寄存器Cmd

  X未用位。

  Ini對(duì)控制器初始化為1時(shí)有效,。當(dāng)該位為1時(shí),,備份寄存器的數(shù)據(jù)直接裝入分頻器的寄存器reg_dATA[15~0],裝入后由硬件自動(dòng)置O,。

  Newr當(dāng)對(duì)正在運(yùn)行的控制器寫入新的分頻系數(shù)時(shí),,對(duì)該位置1;當(dāng)下一個(gè)分頻器輸出的clkout時(shí)鐘來到時(shí),,將fdiv_back寫入到reg_data[15~0]中,,分頻器便按新的分頻系數(shù)進(jìn)行分頻。

  Manner[1~0] 電動(dòng)機(jī)的驅(qū)動(dòng)方式,,用來控制相位輸出狀態(tài)機(jī)的輸出,,“00”表示單四拍方式,四相位輸出為(A-B-C-D),;“Ol”表示雙四拍,,四相位輸出為(ABBC-CD-DA),八拍(A-AB-B-BC-C-CD-DDA),。

  分頻系數(shù)備份寄存器(fdiv_back) 兩字節(jié)寄存器,,reg_data[15~0]為分頻器的一個(gè)16位寄存器,接收fdiv_back的值,,對(duì)系統(tǒng)的分頻為2~65536,。對(duì)于12MHz的輸入頻率,分頻后頻率為6MHz~183Hz,,(本設(shè)計(jì)中,,步進(jìn)電機(jī)的啟動(dòng)轉(zhuǎn)速、轉(zhuǎn)距,、加速度由使用者根據(jù)實(shí)際情況自己計(jì)算)分頻后每個(gè)clkout走一個(gè)步距角,。對(duì)于步距角為1.8°的電機(jī),可以滿足各種速度的要求,。

       3 分頻器的設(shè)計(jì)

  分頻器是該控制器實(shí)現(xiàn)的關(guān)鍵,,在這里作為一個(gè)獨(dú)立的模塊,,dATA[15~0]為分頻系數(shù),。系統(tǒng)時(shí)鐘Clk被分頻系數(shù)寄存器中值分頻后,輸出Clkout作為相位輸出狀態(tài)機(jī)的時(shí)鐘,,每個(gè)Clkout到來時(shí),,產(chǎn)生一次相位轉(zhuǎn)換,,步進(jìn)電機(jī)運(yùn)行一個(gè)步距角。分頻器的程序如下:

程序

  圖3所示為3分頻時(shí)單四拍的輸出仿真圖

3分頻時(shí)單四拍的輸出仿真圖

  結(jié)語

  本文的創(chuàng)新點(diǎn)為將該步進(jìn)電機(jī)控制器的控制字和分頻系數(shù)映射在主控制器(DSP或單片機(jī)等)的內(nèi)存空間,,控制時(shí)僅需對(duì)其進(jìn)行寫操作,,使步進(jìn)電機(jī)的控制變得簡(jiǎn)單方便;而且,,可節(jié)省主控制器(DSP或單片機(jī)等)的外圍資源,,減少板上負(fù)載。系統(tǒng)中可以加入電機(jī)運(yùn)行總步數(shù)控制寄存器及其電路,、加速度寄存器及其控制電路等,,打造一個(gè)更智能的步進(jìn)電機(jī)控制器。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。