基于單片機與fpga的多重細分步進電動機驅動系統
劉夢亭,羅鵬輝
(吉林大學珠海學院,廣東珠海519041)
摘要:介紹了步進電動機細分控制,提出了基于單片機與fpga控制的pwm細分驅動技術,利用單片機來設定電機的轉速、轉向。由fpga產生階梯脈沖形成階梯形電壓信號以控制步進電動機每相繞組在各時刻的電壓,從而實現步進電動機轉角的任意細分控制。利用vhdl語言編程實現了步進電動機256細分控制器的pwm模塊、速度控制模塊、數字比較模塊等功能。
關鍵詞:fpga;vhdl;步進電動機驅動;細分控制
中圖分類號:tm383.6 文獻標識碼:a 文章編號:1004—7018(2009)11—0037—04
0引 言
步進電動機作為一種電脈沖角位移的轉換元件,它受脈沖信號控制,其位移與輸入脈沖個數成嚴格正比關系。采用fpga控制步進電動機,利用其中的eab可以構成存放電機各相電流所需的控制波形數據表和利用fpga設計的數字比較器可以同步產生多路pwm電流波形,對多相步進電動機進行靈活的控制。改變控制波形表的數據,增加計數器的位數,提高技術精度,從而可以對步進電動機的步進轉角進行任意細分,實現步進轉角的精確控制。用fpca實現多路pwm控制,無需外接d/a轉換器,使外同控制電路大大簡化,控制方式簡潔,控制精度高、控制效果好。用單片機和dsp的控制都難以達到同樣的控制效果。
1系統構成
系統構成如圖1所示。利用單片機來設定電機的轉速、轉向。由fpga產生階梯脈沖形成階梯形電壓信號以控制步進電動機每相繞組在各時刻的電壓,從而實現步進電動機轉角的任意細分控制。利用vhdl語言編程實現了步進電動機256細分控制器的pwm模塊、速度控制模塊、數字比較模塊等功能。選用兩片l293d驅動芯片驅動兩臺兩相/四相步進電動機。
l.1步進電動機細分驅動硬件部分
根據對電機細分驅動的理論研究,提出了基于單片機與fpga控制的多重細分步進電動機驅動技術。本系統的硬件電路主要以單片機和fpga為核心器件,其硬件電路的組成如圖2所示。
單片機采用飛利浦p89v53rb2芯片,通過爭片機的po口向fpga發送控制信號,由于po口是一個8位開漏雙向i/o口,用作程序校驗或通用l/o口時均需連接一個外部上拉電阻。fpga管腳設定為43~36,主要完成轉速、轉向、電機、細分數的設定,其中s0~s2用來確定細分數,此三個引腳從000到111分別實現256、128、64、32、16、8、4、2細分,具體情況如表1所示。
本控制器選用的fpga器件為xilinx公司的xc2s15芯片,reset信號用來對fpga復位(“l”時有效),clk是存儲器地址計數器脈沖輸入,上升沿有效。pwmclk是脈寬時鐘,一般接12 mhz,****200mhz。dir是步進電動機的轉向信號(“1”為正轉,“0”為反轉)。csl、cs2分別用來控制fpga內部步進電動機控制模塊的選定,以達到控制多臺步進電動機的作用。此外,xc2s15具有86個用戶自定義i/0口,解決了單片機i/o口不足的問題,因此可進行多臺步進電動機的控制,并選用兩片1.293d驅動芯片驅動兩臺兩相/四相步進電動機。
1.2單片機系統軟件結構
單片機系統主 要完成步進電動機調速控制、轉向、細分數的設定。單片機完成步進電動機調速控制分兩種方式:細分數不變,改變步進脈沖的頻率和步進脈沖的頻率不變,選擇不同的細分數,可以實現8種運行速度。步進頻率不變的調速方式的軟件流程圖如圖
3所示。細分數不變的調速方式軟件流程圖如圖4所示。
1.3 fpga設計與仿真
根據步進電動機細分驅動原理,選擇采用pwm脈寬調制式細分驅動,根據細分精度的要求,決定所需要的****細分電流波形,設計步距細分的系統構成。圖5為步進電動機細分驅動 |