<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于FPGA的步進(jìn)電機控制器設計

基于FPGA的步進(jìn)電機控制器設計

作者: 時(shí)間:2008-03-17 來(lái)源: 收藏

  步進(jìn)電機是一種將電脈沖信號轉換成相應的角位移的特殊電機,每改變一次通電狀態(tài),步進(jìn)電機的轉子就轉動(dòng)一步。目前大多數步進(jìn)電機控制器需要主控制器發(fā)送時(shí)鐘信號,并且要至少一個(gè)I/O口來(lái)輔助控制和監控步進(jìn)電機的運行情況。在單片機或DSP的應用系統中,經(jīng)常配合CPLD或者來(lái)實(shí)現特定的功能。本文介紹通過(guò)實(shí)現的步進(jìn)電機控制器。該控制器可以作為單片機或DSP的一個(gè)直接數字控制的外設,只需向控制器的控制寄存器和分頻寄存器寫(xiě)入數據,即町實(shí)現對步進(jìn)電機的控制。

本文引用地址:http://dyxdggzs.com/article/80116.htm

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

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

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

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

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

 ?、诳刂撇竭M(jìn)電機的速度。如果給步進(jìn)電機發(fā)一個(gè)控制脈沖,它就轉一步,再發(fā)一個(gè)脈沖,它會(huì )再轉一步。兩個(gè)脈沖的間隔越短,步進(jìn)電機就轉得越快。調整控制器發(fā)出的脈沖頻率,就可以對步進(jìn)電機進(jìn)行調速。

  2 控制器的總體設計

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

  

控制器的外部接口電路

 

  

引腳的功能

 

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

  

控制器的內部原理框圖

 

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

  

命令字寄存器Cmd

 

  X未用位。

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

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

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

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

  3 分頻器的設計

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

  

程序

 

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

  

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

 

  結語(yǔ)

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

fpga相關(guān)文章:fpga是什么


分頻器相關(guān)文章:分頻器原理
脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理


關(guān)鍵詞: FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>