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

|