摘要:利用FPGA可編程芯片及Verilog HDL語言實現(xiàn)了對直流電機PwM控制器的設計,對直流電機速度進行控制。介紹了用Verilog HDL語言編程實現(xiàn)直流電機PwM控制器的PwM產(chǎn)生模塊、串口通信模塊、轉(zhuǎn)向調(diào)節(jié)模塊等功能,該系統(tǒng)無須外接D/A轉(zhuǎn)換器及模擬比較器,結(jié)構(gòu)簡單,控制精度高,有廣泛的應用前景。同時,控制系統(tǒng)中引入上位機控制功能,可方便對電機進行遠程控制。 關(guān)鍵詞:FPGA;串口通信;PwM;直流電機;實驗引 言傳統(tǒng)的方法產(chǎn)生PwM信號電路比較復雜。數(shù)手PWM控制只需FPGA中的內(nèi)部資源就可以實現(xiàn)。 本文介紹了一種用單片大規(guī)模FPGA實現(xiàn)的發(fā)生的直流電機控制器,其中產(chǎn)生的PwM波具有脈沖中心對稱、PwM周期和死區(qū)時間可編程等特點,且性能優(yōu)異,靈活性和可靠性高,同時,加入了串行通信接日,方便加入上位機控制功能。 用數(shù)字比較器代替模擬比較器,數(shù)字比較器的一端接設定值計數(shù)器的輸出,另一端接線性遞增計數(shù)器輸出。當線性計數(shù)器計數(shù)值小于設定值時輸出低電平,大于設定值時輸出高電平。與模擬控制相比,省去了外接的D/A轉(zhuǎn)換器和模擬比較器,F(xiàn)PcA外部連線很少,電路更加簡單。而且通過總線數(shù)據(jù)或按鍵控制在系統(tǒng)調(diào)整脈寬數(shù)及數(shù)字比較器的設定值,從而實現(xiàn)對電機轉(zhuǎn)速、波動等參數(shù)的靈活控制。 系統(tǒng)整體設計系統(tǒng)的整體框圖如圖l所示。該系統(tǒng)以芯片為控制核心,通過按鍵或上位機設定電機速度和PwM占空比,由FPGA的I/O口控制直流電機驅(qū)動芯片驅(qū)動直流電機的轉(zhuǎn)動。轉(zhuǎn)速的測量由碼盤完成,速度顯示數(shù)碼管來實現(xiàn)。本系統(tǒng)是基于實現(xiàn)電機的恒速調(diào)節(jié)而進行設計的。 系統(tǒng)分以下幾個模塊:轉(zhuǎn)速調(diào)節(jié)模塊,脈寬調(diào)制(PwM)模塊,速度檢測模塊,串行通信模塊。
 1.1串口通信模塊本設計中采取異步串行通信。以一個字符為單位傳送,需要cPu與上位機之間事先必須約定字符格式和波特率。設計采用固定的字符傳輸格式:一位起始位,8位數(shù)據(jù),一位停止位。如圖2所示。
 傳送順序是低位在前,高位在后,依次傳送。 用4倍波特率作為接收采樣時鐘,并把第8個采樣值作為接收數(shù)據(jù)。在用FPGA實現(xiàn)的異步串行通信電路中采用FIFO進行緩存,并在劃分為接收模塊、發(fā)送模塊和接口模塊三個功能模塊,其中接收模塊實現(xiàn)遙測數(shù)據(jù)的接收、緩存,發(fā)送模塊實現(xiàn)遙控數(shù)據(jù)的緩存、發(fā)送,接口模塊則實現(xiàn)和外部的連接。發(fā)送模塊要實現(xiàn)對遙控數(shù)據(jù)緩存,同時按照設計的異步串行通信字符格式將數(shù)據(jù)串行發(fā)送。發(fā)送模塊包含移位寄存器、實現(xiàn)遙測數(shù)據(jù)計數(shù)的計數(shù)器和發(fā)送狀態(tài)機電路等。
如圖3所示,F(xiàn)PGA模塊接收從RS一485發(fā)送過來的串行數(shù)據(jù),25位為一個字符。該模塊分別實現(xiàn)提取八位數(shù)據(jù)和串行數(shù)據(jù)發(fā)送的功能。當連續(xù)輸出16個l后,下一個din為O時,開始提取后面的8位有效的數(shù)據(jù)00101010,然后加上起始位1,停止位O。程序中,波特率可以根據(jù)需要通過分頻程序進行改動。
 1。2轉(zhuǎn)速調(diào)節(jié)模塊直流電動機轉(zhuǎn)速的控制方法可分為兩類,即勵磁控制法與電樞電壓控制法。本系統(tǒng)采用電樞電壓控制法,是通過調(diào)節(jié)PwM觸發(fā)信號的占空比來改變伺服電機的平均輸入電壓,從而實現(xiàn)調(diào)速的目的。電動機的電樞繞組兩端的電壓平均值為: 式中,D為占空比,Us電源電壓,D的變化范圍為[O,1]。由式(1)可知,當電源電壓us不變的情況下,電樞兩端電壓的平均值Uo取決于占空比的大小,改變D值也就改變了電樞兩端電壓的平均值,從而達到控制電動機轉(zhuǎn)速的目的,即實現(xiàn)PwM控制。 1.3 PwM產(chǎn)生模塊脈沖調(diào)制PwM 原理:FPGA中的基準計數(shù)器,用來產(chǎn)生類似模擬電路中的三角波基準,是一個最小計數(shù)值為O、****計數(shù)值為周期寄存器中保存的數(shù)值、計數(shù)方向交替變化的可逆計數(shù)器。 同時基準計數(shù)器單元產(chǎn)生一個方向信號DIR,可作為外部中斷源(邊緣觸發(fā)方式),在PwM開關(guān)周期的起始點產(chǎn)生中斷。 軟件設計較簡單,在初始化階段設置好周期寄存器、死區(qū)寄存器,以后只需在PWM中斷服務程序中將計算好的脈寬數(shù)據(jù)送到脈寬寄存器,然后退出中斷服務程序,等待控制器在觸發(fā)脈沖控制下將脈寬寄存器的數(shù)據(jù)鎖存到緩沖寄存器中。在下一個周期中輸出相應的脈沖,同時中斷被觸發(fā),便開始了下一個PwM中斷服務程序。圖4為PwM產(chǎn)生原理圖。其中H1的占空比:
 可見Hl,L1的占空比D由基準計數(shù)器值T和緩存器值he—buf和死區(qū)寄存器值共同決定,通過總線數(shù)據(jù)或者按鍵調(diào)節(jié)分別控制周期,脈寬,死區(qū)寄存器的值來調(diào)節(jié)占空比,控制電機加速、減速。
 圖5為PwM波仿真結(jié)果,正如圖5所示T和—buf的值被正確的變成周期為50,占空比為%的PwM波形輸出,死區(qū)時間3也被正確地加入,產(chǎn)生了4路帶有死區(qū)的PwM波形。
1 .4轉(zhuǎn)向調(diào)節(jié)模塊圖6為轉(zhuǎn)向調(diào)節(jié)原理圖,有兩個方向信號和一個使能信號。如果DIR—z信號為0,DIR—F信號為l,并且使能信號是1,那么三極管Q1和Q4導通,電流從左至右流經(jīng)電機,電機正轉(zhuǎn);如果—z信號變?yōu)?,而DIR—F信號變?yōu)镺,那么和Q3將導通,電流則反向流過電機,電機反轉(zhuǎn)。 其中Hl,L1,H2,12是由PwM模塊產(chǎn)生的一定占空比的PWM波,用來控制電機轉(zhuǎn)速。
 實驗圖7為用數(shù)字示波器采樣、基于FPcA的直流電動機控制系統(tǒng)占空比為74 6%的PwM波形。其頻率隨電機轉(zhuǎn)速變化,改變FPGA程序中的T和—buf即可改變PwM波形的占空比。
 3 結(jié)語直流電機
由于具有速度控制容易,啟、制動性能良好,且在寬范圍內(nèi)F滑調(diào)速等特點而在冶金、機械制造、輕工等工業(yè)部門中得到廣泛應用。 本文所介紹的直流電機PWM控制器本文給出采用設計FPGA脈寬調(diào)制控制方案,計算機仿真的結(jié)果表明,該電路能有效地產(chǎn)生PwM控制信號控制電機的轉(zhuǎn)速,控制精度由FPGA中的數(shù)字比較器決定,硬件電路搭建簡單,程序代碼書寫容易。用FPGA的I/0口產(chǎn)生PwM控制信號,一片F(xiàn)PGA可以同時輸出多路PwM信號,具有通用性,設計同時包含實現(xiàn)異步串行通信的功能,可以實現(xiàn)對數(shù)據(jù)的接收和發(fā)送,并可以在接收數(shù)據(jù)時對其校驗位、停止位進行判斷,在發(fā)送數(shù)據(jù)時可以形成完整的一幀數(shù)據(jù)格式。將該異步串行通信接口設計實現(xiàn)的數(shù)據(jù)采集與處理系統(tǒng)中,可以成功地實現(xiàn)和遠端的上位機進行異步串行通信,方便進行遠程控制。

|