《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 一種帶有限位功能的步進(jìn)電機(jī)控制器
一種帶有限位功能的步進(jìn)電機(jī)控制器
來(lái)源:電子技術(shù)應(yīng)用2011年第6期
劉 濤1,,趙 武1,,馬曉龍2,張志勇1
1.西北大學(xué) 信息科學(xué)與技術(shù)學(xué)院,,陜西 西安710127,; 2.西安交通大學(xué) 電子與信息工程學(xué)院,,陜西 西安710049
摘要: 為了適應(yīng)調(diào)焦系統(tǒng)中爬山算法的搜索復(fù)位和區(qū)域限定要求,對(duì)通用步進(jìn)電機(jī)控制器進(jìn)行了改進(jìn),,使其可以利用位置感應(yīng)電路的限位信號(hào)主動(dòng)完成搜索復(fù)位和限位,。步進(jìn)電機(jī)控制器通過(guò)了功能仿真,并在可編程門陣列器件中進(jìn)行了實(shí)驗(yàn),。結(jié)果表明該控制器實(shí)現(xiàn)了預(yù)期的功能要求,,復(fù)位與限位功能正常。
中圖分類號(hào): TM383.6
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2011)06-0048-04
A stepper motor controller with function of position limiting
Liu Tao1,,Zhao Wu1,,Ma Xiaolong2,,Zhang Zhiyong1
1.School of Information Science and Technology, Northwest University, Xi′an 710127,China,; 2.School of Electronics and Information Engineering, Xi'an Jiaotong University, Xi′an 710049,,China
Abstract: In order to adapt to the request of search reset and the area limiting of climbing algorithm in focusing system, general stepper motor controller has been improved so that it can be done resetting and limiting using active sensing signal of boundary. The new controller achieved the anticipative function and performance requirement in experiments based on FPGA, the function of resetting and position limiting operates peaceful.
Key words : stepper motor;position limiting,;climbing algorithm,;FPGA


 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)換為角位移或直線運(yùn)動(dòng)的執(zhí)行設(shè)備。在非超載的情況下,,電機(jī)轉(zhuǎn)速和停止位置只取決于脈沖信號(hào)的頻率和脈沖數(shù),,而不受負(fù)載變化的影響,因此步進(jìn)電機(jī)廣泛應(yīng)用于精密控制場(chǎng)合[1],。
    在基于圖像處理評(píng)價(jià)函數(shù)的調(diào)焦系統(tǒng)中,,常用的調(diào)焦策略包括斐波那契搜索法和爬山搜索法,,其中又以爬山搜索法應(yīng)用最為廣泛[2],。根據(jù)爬山搜索的原理,在開始搜索時(shí),,先復(fù)位調(diào)焦鏡頭到起始搜索位置,,在搜索焦點(diǎn)的過(guò)程中,要防止由于圖像噪聲等干擾造成程序判斷錯(cuò)誤,,導(dǎo)致調(diào)焦鏡頭越出調(diào)焦范圍邊界,。
    為了適應(yīng)這種控制需求,對(duì)通用步進(jìn)電機(jī)控制器進(jìn)行了改進(jìn),,使其在具有自動(dòng)和手動(dòng)控制功能的同時(shí),,引入限位信號(hào)反饋控制。電機(jī)控制器使用硬件描述語(yǔ)言(HDL)編寫,,而限位信號(hào)則由位置感應(yīng)電路中的光電開關(guān)器件自動(dòng)反饋,。
1 步進(jìn)電機(jī)驅(qū)動(dòng)原理
    步進(jìn)電機(jī)與直流電機(jī)的驅(qū)動(dòng)方式不同,它需要邏輯控制器與功率驅(qū)動(dòng)電路配合使用,。具有位置感應(yīng)電路的步進(jìn)電機(jī)驅(qū)動(dòng)原理圖如圖1所示,。

    電機(jī)控制器接受指令單元的控制指令,同時(shí)檢測(cè)位置感應(yīng)電路反饋的限位信號(hào),,然后向功率驅(qū)動(dòng)單元傳遞驅(qū)動(dòng)邏輯,,功率驅(qū)動(dòng)單元轉(zhuǎn)換這些驅(qū)動(dòng)邏輯,并輸出功率脈沖驅(qū)動(dòng)步進(jìn)電機(jī)運(yùn)行,。
2 步進(jìn)電機(jī)控制器
    通用步進(jìn)電機(jī)控制器主要用于輸出驅(qū)動(dòng)邏輯信號(hào),,控制步進(jìn)電機(jī)的運(yùn)行方向、速度,、步數(shù)和停止,。本文的步進(jìn)電機(jī)控制器要求具有手動(dòng)和自動(dòng)控制功能,,同時(shí)加入復(fù)位和限位處理模塊,控制目標(biāo)為一種二相四線制步進(jìn)電機(jī),。加入限位信號(hào)(LIMIT)控制功能的控制器頂層信號(hào)如圖2所示,。

    圖2中DATA為電機(jī)自動(dòng)運(yùn)行的步數(shù),HOLD控制電機(jī)停止,,MANUAL為手動(dòng)觸發(fā)信號(hào),,DIRECTION用于控制運(yùn)行方向,RESET_TRI為爬山搜索復(fù)位信號(hào),,四路OUT信號(hào)為步進(jìn)電機(jī)的輸出邏輯,,用于四線制步進(jìn)電機(jī)的驅(qū)動(dòng)控制。通過(guò)控制輸出邏輯的頻率DRI_CLK可以控制步進(jìn)電機(jī)運(yùn)行速度,,而輸出邏輯的轉(zhuǎn)換方向則控制了步進(jìn)電機(jī)的運(yùn)行方向[3],。
2.1 模塊實(shí)現(xiàn)
    步進(jìn)電機(jī)在具有一定轉(zhuǎn)換方向的驅(qū)動(dòng)脈沖下運(yùn)行,據(jù)此將電機(jī)控制器劃分為方向控制和邏輯輸出兩個(gè)部分,。限位信號(hào)用于復(fù)位和限定運(yùn)行方向,,因此在方向控制部分同時(shí)處理限位;在邏輯輸出部分,,按照控制需求再次劃分為復(fù)位,、自動(dòng)和手動(dòng)三個(gè)邏輯處理模塊,在邏輯輸出的實(shí)現(xiàn)方式上,,復(fù)位,、自動(dòng)和手動(dòng)通過(guò)一定的優(yōu)先級(jí)邏輯,通過(guò)發(fā)送電機(jī)占用請(qǐng)求復(fù)用邏輯輸出模塊,。圖3為控制器模塊劃分示意圖,。

    (1)爬山復(fù)位
    爬山復(fù)位模塊用于復(fù)位調(diào)焦鏡頭到爬山搜索的起始位置。電機(jī)控制器在捕獲到指令單元的復(fù)位信號(hào)后,,按預(yù)定的運(yùn)行方向產(chǎn)生驅(qū)動(dòng)邏輯,,直至控制器收到限位信號(hào)LIMIT的有效反饋后停止。復(fù)位過(guò)程中,,自動(dòng)和手動(dòng)請(qǐng)求無(wú)效,。
    (2)自動(dòng)控制
    步進(jìn)電機(jī)控制器的步數(shù)數(shù)據(jù)接收端DATA在接收到指令單元傳入的運(yùn)行步數(shù)后,首先檢查當(dāng)前是否有其他電機(jī)占用請(qǐng)求,,如果電機(jī)空閑,,就按照同時(shí)傳入的方向信號(hào)輸出指定步數(shù)的驅(qū)動(dòng)邏輯;否則忽略本次自動(dòng)控制請(qǐng)求,。
    (3)手動(dòng)微調(diào)
    手動(dòng)微調(diào)在控制器中作為一種輔助控制手段,,允許人工微調(diào)調(diào)焦鏡頭的位置。每啟動(dòng)一次手動(dòng)微調(diào),,電機(jī)就按照設(shè)定的運(yùn)行方向,,運(yùn)行一段固定的微調(diào)距離,。控制器在捕獲到手動(dòng)輸入信號(hào)后,,同時(shí)讀取手動(dòng)運(yùn)行方向DIRECTION的設(shè)置值,,如果當(dāng)前電機(jī)空閑,則按照手動(dòng)輸入的方向信號(hào)輸出固定步數(shù)的驅(qū)動(dòng)邏輯,;否則手動(dòng)請(qǐng)求無(wú)效,。
    (4)方向和限位處理
    當(dāng)控制器運(yùn)行在手動(dòng)微調(diào)或自動(dòng)控制時(shí),需要防止調(diào)焦鏡頭越出邊界,。方向模塊在收到有效的限位信號(hào)LIMIT后,,對(duì)正在輸出的方向信號(hào)取反,控制步進(jìn)電機(jī)反方向運(yùn)行,,實(shí)現(xiàn)限位要求,。當(dāng)控制器沒有收到限位信號(hào)反饋時(shí),則讀取DIRECTION端口的方向,,傳遞給邏輯輸出模塊,,用于控制驅(qū)動(dòng)邏輯的轉(zhuǎn)換方向。
    (5)邏輯輸出
    邏輯輸出模塊內(nèi)置邏輯發(fā)生器,,邏輯發(fā)生器按照電機(jī)請(qǐng)求和方向信號(hào)輸出驅(qū)動(dòng)邏輯,。方向信號(hào)用于控制驅(qū)動(dòng)邏輯的轉(zhuǎn)換方向,;自動(dòng)和手動(dòng)模塊的核心是計(jì)數(shù)器,,電機(jī)請(qǐng)求信號(hào)是步數(shù)計(jì)數(shù)器的輸出,因此電機(jī)請(qǐng)求信號(hào)的有效時(shí)間表示允許邏輯發(fā)生器運(yùn)行的時(shí)鐘周期數(shù),。
2.2 邏輯發(fā)生器
    邏輯發(fā)生器的輸出邏輯與步進(jìn)電機(jī)的驅(qū)動(dòng)方式密切相關(guān),。本文控制目標(biāo)的驅(qū)動(dòng)方式為二相雙四拍式。標(biāo)記步進(jìn)電機(jī)的兩相繞組為:A(+),、B(-),、C(+)、D(-),,AB為一相,,CD為另一相,則二相雙四拍的驅(qū)動(dòng)方式為AC-AD-BD-BC[4],。二相雙四拍的驅(qū)動(dòng)方式是指電機(jī)輸入線的通電方式,,也即功率驅(qū)動(dòng)單元的輸出通電脈沖,而邏輯發(fā)生器的輸出還要考慮功率驅(qū)動(dòng)單元的轉(zhuǎn)換方式,。
    功率驅(qū)動(dòng)單元可以使用MOS管等分立元件或?qū)S眉呻娐穼?shí)現(xiàn)[5],。為了減少電路規(guī)模,采用專用驅(qū)動(dòng)芯片BA6845FS完成功率轉(zhuǎn)換,。該芯片具有四路電平轉(zhuǎn)換,,支持二相雙四拍驅(qū)動(dòng)方式,;輸出飽和電壓低、內(nèi)置節(jié)電和過(guò)熱保護(hù)電路,,可以降低電路功耗,,同時(shí)提高電路可靠性。其真值表如表1所示[6],。從表1中可以看出,,當(dāng)控制器沒有接到電機(jī)運(yùn)行指令時(shí),可以設(shè)置邏輯發(fā)生器的輸出B/D為0,,使步進(jìn)電機(jī)的繞組處于開路狀態(tài),,防止電機(jī)發(fā)熱。

    根據(jù)表1的功率轉(zhuǎn)換方式,,可以得到邏輯發(fā)生器的輸出邏輯與二相雙四拍繞組通電方式的對(duì)應(yīng)轉(zhuǎn)換關(guān)系,,如表2所示。表2中1代表高電平,,磁極繞組通電,;0代表低電平,磁極繞組不通電,。

    表2中,,繞組任意一次通電方式間的變化(1-2、2-3,、3-4,、4-1),步進(jìn)電機(jī)都會(huì)轉(zhuǎn)動(dòng)一個(gè)步距角,,即移動(dòng)一步,,所以可以通過(guò)控制驅(qū)動(dòng)邏輯轉(zhuǎn)換的次數(shù)來(lái)控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的步數(shù)。邏輯發(fā)生器按照脈沖計(jì)數(shù)的順序,,從1到4循環(huán)輸出驅(qū)動(dòng)邏輯時(shí),,繞組按照二相雙四拍的方式通電,驅(qū)動(dòng)步進(jìn)電機(jī)正向轉(zhuǎn)動(dòng),,反之實(shí)現(xiàn)反向轉(zhuǎn)動(dòng),。
    按照表2中的邏輯輸出電平即可設(shè)計(jì)邏輯發(fā)生器。其VerilogHDL代碼如下:
    always @(negedge clk or negedge reset)
    begin
        if(!reset) q = 4’b0000;
        else if(!hold || !run_en) q = 4’b0000;
        //輸出0可以使功率芯片輸出開路狀態(tài),,
        //防止電機(jī)發(fā)熱
          else begin//電機(jī)請(qǐng)求有效
          if(!direc_i)//反方向
          case (q)  //表2中的邏輯輸出
            4'b0111 : q = 4'b1111;
            4'b1111 : q = 4'b1101;
            4'b1101 : q = 4'b0101;
            4'b0101 : q = 4'b0111;
            default : q = 4'b0101;
          endcase
          else if(direc_i)//正方向
          case (q)
            4'b0111 : q = 4'b0101;
            4'b0101 : q = 4'b1101;
            4'b1101 : q = 4'b1111;
            4'b1111 : q = 4'b0111;
            default : q = 4'b0101;   
          endcase 
        end
    end
3 仿真與實(shí)驗(yàn)
    為了驗(yàn)證所設(shè)計(jì)的步進(jìn)電機(jī)控制器是否能正常工作,,使用EDA工具和Nios II嵌入式系統(tǒng)對(duì)控制器進(jìn)行功能仿真和實(shí)驗(yàn)驗(yàn)證。
3.1 功能仿真
    使用測(cè)試臺(tái)(testbench)程序在Modelsim中對(duì)步進(jìn)電機(jī)控制器進(jìn)行功能仿真,。仿真時(shí)鐘周期為100 ns,,仿真結(jié)果如圖4所示。測(cè)試臺(tái)程序在預(yù)定的時(shí)間點(diǎn)自動(dòng)修改輸入端口寄存器的值,并監(jiān)視邏輯發(fā)生器的輸出,。在評(píng)價(jià)功能仿真輸出結(jié)果時(shí),,主要查看自動(dòng)、手動(dòng)和復(fù)位3個(gè)模塊的仿真輸出邏輯是否按測(cè)試臺(tái)程序要求轉(zhuǎn)換了預(yù)定的次數(shù),,同時(shí)檢查限位和停止功能是否有效,。

    圖4中,測(cè)試臺(tái)首先設(shè)置爬山復(fù)位(reset_tri)為有效,,邏輯發(fā)生器開始輸出驅(qū)動(dòng)邏輯,,直到限位信號(hào)(limit)下降沿到來(lái),A/B/C/D恢復(fù)為0,;接著置手動(dòng)觸發(fā)信號(hào)(manual)有效,,邏輯發(fā)生器在輸出手動(dòng)控制模塊預(yù)置的7次驅(qū)動(dòng)邏輯轉(zhuǎn)換后,A/B/C/D恢復(fù)為0,;然后向自動(dòng)步數(shù)(data)寫入數(shù)據(jù)’00001001’,,邏輯發(fā)生器輸出了9次邏輯轉(zhuǎn)換;在手動(dòng)和自動(dòng)控制過(guò)程中,,測(cè)試臺(tái)在邏輯輸出過(guò)程中插入了有效的限位信號(hào),。由圖4可以看出,在1600 ns和3 μs 處,,驅(qū)動(dòng)邏輯的轉(zhuǎn)換方向發(fā)生了變化,;最后,向data寫入數(shù)據(jù)’00000100’,,驅(qū)動(dòng)邏輯重新開始輸出,,輸出過(guò)程中遇到停止信號(hào)(hold)有效,強(qiáng)制輸出A/B/C/D為0,。仿真結(jié)果表明所設(shè)計(jì)的步進(jìn)電機(jī)控制器的功能正確,。
3.2 實(shí)驗(yàn)驗(yàn)證
    步進(jìn)電機(jī)控制器的實(shí)驗(yàn)驗(yàn)證電路如圖5所示,。嵌入Nios II處理器的片上可編程系統(tǒng)(SoPC)在ALTERA DE2開發(fā)板的FPGA中建立,,同時(shí)設(shè)計(jì)了位置感應(yīng)電路和功率驅(qū)動(dòng)電路,用來(lái)驗(yàn)證復(fù)位和限位功能以及驅(qū)動(dòng)步進(jìn)電機(jī),。

 

 


    位置感應(yīng)電路如圖6所示,。采用光電開關(guān)(optoiso)作為限位信號(hào)傳感器,當(dāng)調(diào)焦鏡頭在設(shè)定區(qū)域內(nèi)運(yùn)行時(shí),,限位傳感器輸出高電平信號(hào),,到達(dá)邊界時(shí)則輸出低電平信號(hào)。光電開關(guān)輸出的電平信號(hào)經(jīng)存儲(chǔ)后,,輸出限位信號(hào)LIMIT,。
    步進(jìn)電機(jī)的功率驅(qū)動(dòng)電路如圖7所示,圖中A/B/C/D是步進(jìn)電機(jī)控制器輸出的邏輯電平信號(hào),經(jīng)存儲(chǔ)后送入BA6845FS進(jìn)行功率轉(zhuǎn)換,,而功率芯片的輸出端口直接與二相四線制步進(jìn)電機(jī)的繞組控制線相連,。

    完成功率電路和位置反饋電路制作后,把它們連接在DE2開發(fā)板上,。將步進(jìn)電機(jī)控制器與Avalon總線信號(hào)連接后添加到Nios II系統(tǒng)集成工具SoPC Builder中,,然后添加其他Nios II系統(tǒng)模塊構(gòu)成一個(gè)SoPC并下載到FPGA。最后編寫面向Nios II處理器的步進(jìn)電機(jī)控制程序,,其中手動(dòng)控制采用按鍵中斷方式,。通過(guò)程序向步進(jìn)電機(jī)發(fā)送自動(dòng)和手動(dòng)以及復(fù)位控制命令,驗(yàn)證步進(jìn)電機(jī)的運(yùn)行狀況,。實(shí)驗(yàn)結(jié)果表明,,步進(jìn)電機(jī)可以響應(yīng)自動(dòng)控制和手動(dòng)微調(diào)請(qǐng)求,同時(shí)有效的限位信號(hào)可以復(fù)位調(diào)焦鏡頭到達(dá)爬山起始位置和限定鏡頭的移動(dòng)范圍,。
參考文獻(xiàn)
[1] 郭麗霞.基于AMIS30522的步進(jìn)電機(jī)控制器設(shè)計(jì)及實(shí)現(xiàn)[J].自動(dòng)化與儀表,,2009(8):14-17.
[2] 程永強(qiáng),黃英男,,謝克明.一種攝像頭自動(dòng)聚焦方法及硬件實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,,2009,(1):28-31.
[3] 張文愛,,李逢磊,,程永強(qiáng).基于FPGA的步進(jìn)電機(jī)驅(qū)動(dòng)及自動(dòng)聚焦的實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2008(5):33.
[4] 王美川,,王紫婷.基于FPGA控制的步進(jìn)電機(jī)驅(qū)動(dòng)設(shè)計(jì)[J]. 電子測(cè)量技術(shù),,2008,31(6):184-187.
[5] 蔚永強(qiáng),,張秦嶺,,郭宏.一種低成本的新型步進(jìn)電機(jī)驅(qū)動(dòng)器的研制[J].微計(jì)算機(jī)信息,2007,,23(10):95-97.
[6] Rohm CO.,,LTD.Stepping motor driver BA6845FS[EB/OL].2005[2010-09-28].http://www.rohm.com.cn/.

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