一種帶有限位功能的步進(jìn)電機控制器
always @(negedge clk or negedge reset)
begin
if(!reset) q = 4’b0000;
else if(!hold || !run_en) q = 4’b0000;
//輸出0可以使功率芯片輸出開路狀態(tài),
//防止電機發(fā)熱
else begin//電機請求有效
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è)計的步進(jìn)電機控制器是否能正常工作,使用EDA工具和Nios II嵌入式系統(tǒng)對控制器進(jìn)行功能仿真和實驗驗證。
3.1 功能仿真
使用測試臺(testbench)程序在Modelsim中對步進(jìn)電機控制器進(jìn)行功能仿真。仿真時鐘周期為100 ns,仿真結(jié)果如圖4所示。測試臺程序在預(yù)定的時間點自動修改輸入端口寄存器的值,并監(jiān)視邏輯發(fā)生器的輸出。在評價功能仿真輸出結(jié)果時,主要查看自動、手動和復(fù)位3個模塊的仿真輸出邏輯是否按測試臺程序要求轉(zhuǎn)換了預(yù)定的次數(shù),同時檢查限位和停止功能是否有效。
圖4中,測試臺首先設(shè)置爬山復(fù)位(reset_tri)為有效,邏輯發(fā)生器開始輸出驅(qū)動邏輯,直到限位信號(limit)下降沿到來,A/B/C/D恢復(fù)為0;接著置手動觸發(fā)信號(manual)有效,邏輯發(fā)生器在輸出手動控制模塊預(yù)置的7次驅(qū)動邏輯轉(zhuǎn)換后,A/B/C/D恢復(fù)為0;然后向自動步數(shù)(data)寫入數(shù)據(jù)’00001001’,邏輯發(fā)生器輸出了9次邏輯轉(zhuǎn)換;在手動和自動控制過程中,測試臺在邏輯輸出過程中插入了有效的限位信號。由圖4可以看出,在1600 ns和3 μs 處,驅(qū)動邏輯的轉(zhuǎn)換方向發(fā)生了變化;最后,向data寫入數(shù)據(jù)’00000100’,驅(qū)動邏輯重新開始輸出,輸出過程中遇到停止信號(hold)有效,強制輸出A/B/C/D為0。仿真結(jié)果表明所設(shè)計的步進(jìn)電機控制器的功能正確。
3.2 實驗驗證
步進(jìn)電機控制器的實驗驗證電路如圖5所示。嵌入Nios II處理器的片上可編程系統(tǒng)(SoPC)在ALTERA DE2開發(fā)板的FPGA中建立,同時設(shè)計了位置感應(yīng)電路和功率驅(qū)動電路,用來驗證復(fù)位和限位功能以及驅(qū)動步進(jìn)電機。
位置感應(yīng)電路如圖6所示。采用光電開關(guān)(optoiso)作為限位信號傳感器,當(dāng)調(diào)焦鏡頭在設(shè)定區(qū)域內(nèi)運行時,限位傳感器輸出高電平信號,到達(dá)邊界時則輸出低電平信號。光電開關(guān)輸出的電平信號經(jīng)存儲后,輸出限位信號LIMIT。
步進(jìn)電機的功率驅(qū)動電路如圖7所示,圖中A/B/C/D是步進(jìn)電機控制器輸出的邏輯電平信號,經(jīng)存儲后送入BA6845FS進(jìn)行功率轉(zhuǎn)換,而功率芯片的輸出端口直接與二相四線制步進(jìn)電機的繞組控制線相連。
完成功率電路和位置反饋電路制作后,把它們連接在DE2開發(fā)板上。將步進(jìn)電機控制器與Avalon總線信號連接后添加到Nios II系統(tǒng)集成工具SoPC Builder中,然后添加其他Nios II系統(tǒng)模塊構(gòu)成一個SoPC并下載到FPGA。最后編寫面向Nios II處理器的步進(jìn)電機控制程序,其中手動控制采用按鍵中斷方式。通過程序向步進(jìn)電機發(fā)送自動和手動以及復(fù)位控制命令,驗證步進(jìn)電機的運行狀況。實驗結(jié)果表明,步進(jìn)電機可以響應(yīng)自動控制和手動微調(diào)請求,同時有效的限位信號可以復(fù)位調(diào)焦鏡頭到達(dá)爬山起始位置和限定鏡頭的移動范圍。
參考文獻(xiàn)
[1] 郭麗霞.基于AMIS30522的步進(jìn)電機控制器設(shè)計及實現(xiàn)[J].自動化與儀表,2009(8):14-17.
[2] 程永強,黃英男,謝克明.一種攝像頭自動聚焦方法及硬件實現(xiàn)[J].電子技術(shù)應(yīng)用,2009,(1):28-31.
[3] 張文愛,李逢磊,程永強.基于FPGA的步進(jìn)電機驅(qū)動及自動聚焦的實現(xiàn)[J].電子技術(shù)應(yīng)用,2008(5):33.
[4] 王美川,王紫婷.基于FPGA控制的步進(jìn)電機驅(qū)動設(shè)計[J]. 電子測量技術(shù),2008,31(6):184-187.
[5] 蔚永強,張秦嶺,郭宏.一種低成本的新型步進(jìn)電機驅(qū)動器的研制[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/.
光電開關(guān)相關(guān)文章:光電開關(guān)原理 脈沖點火器相關(guān)文章:脈沖點火器原理
評論