1 前言1.1 課題的來源電機是一種能量轉換的裝置,在國民經濟中起著重要作用,無論是在工農生產、交通運輸、國防宇航、醫療衛生、商務與辦公設備,還是日常生活中的家用電器,都大量的使用著各種各樣的電機,如汽車、電視機、電風扇、空調等等也離不開電機。同時,在越來越多的應用場合,只能旋轉的電機己無法滿足要求,而是要求能夠實現快速加速、減速或反轉以及準確停止等功能。必須尋找新的電機控制器來適應時代的發展。
電機的控制器經歷了從模擬控制器到數字控制器的發展。由于模擬器件的參數受外界影響大,而且精度也較差。數字控制器與模擬控制器相比較,具有可靠性高、參數調整方便、控制精度高、對環境因素不敏感等優點。隨著工業電氣化、自動控制和家電產品等領域對電機控制產品的需求,人們對電機控制技術的要求有所提高。由于傳統的8位單片機其內部體系結構和計算功能等條件限制,在實現各種先進的電機控制理論和高效的控制算法時遇到了困難。因此,目前最為普遍的做法是使用高性能的數字信號處理器(DSP)來解決電機控制器不斷增加的計算量和速度的需求。將一系列外圍設備如模數轉換器、脈寬調制發生器、和數字信號處理器集成在一起組成復雜的電機控制系統。隨著EDA技術的發展,用基于現場可編程門陣列FPGA的數字電子系統對電機進行控制,為實現電動機數字控制提供了一種新的有效方法。現場可編程門陣列(FPGA)器件集成度高、體積小、速度快,以硬件電路實現算法程序,將原來的電路板級產品集成為芯片級產品,從而降低了功耗,提高了可靠性。
電動機調速系統采用FPGA實現數字化控制,是電氣傳動發展的主要趨勢。采用FPGA控制后,整個調速系統能夠實現快速加速、減速或正/反轉以及準確停止、在線調速等功能,操作維護方便,電動機穩態運轉時轉速精度可達到較高水平,靜動態各項指標均能較好地滿足工業生產中高性能電氣傳動的要求。由于FPGA的 外部連線少,電路簡單,便于控制,具有較佳的性能價格比,所以在工業過程及設備控制中得到日益廣泛的應用[1]。
1.2 課題研究的目的和意義直流電機大多數采用PWM(脈寬調制)的方法進行控制,它有兩種模式:一種是采用模擬電路控制,另一種是采用數字的控制。模擬控制由于其調試復雜等固有原因,正逐漸被淘汰。而在數字控制技術中,FPGA的數字PWM控制具有精度高,反應快,外部連線少,電路簡單,便于控制等優點廣泛的被人們使用,應而研究FPGA具有十分重要的意義。對于本次設計目的在于:
(1)掌握基于FPGA的直流電機PWM控制原理,學會應用EDA技術進行編程
(2)通過對本課題的研究,掌握EDA開發技術的編程方法,培養創新意識和理論聯系實際的學風。熟悉現代電子產品的設計流程。
FPGA用于控制領域特別是電機控制還是比較少的,本設計為電機控制系統提供一種的控制技術,在電機控制方面作了一些片內系統的初步研究。本設計利用ALTERA公司的FPGA芯片—FLEX10K10作為目標器件來控制直流電機,講解了MAX+Plus II設計流程,分析了現代電子產品的設計方法,并初步研究了FPGA產生PWM信號的方法。
本設計將電機控制所使用的一些基本功能盡可能地集成在一片FPGA上,本設計論述了利用FPGA對直流電機進行控制時所起的各部分功能—PWM波的產生、在線調速、正反向控制邏輯,并利用硬件描述語言對PWM波在FPGA中進行組合邏輯變換,并進行仿真。
1.3 課題國內外研究現狀在國外,PWM源于上世紀九十年代,其思想源于通信技術,但隨著現代電子技術的發展使得PWM理論越來越成熟,其發展的速度越來越快速。已經取代傳統的可控硅電機調速系統。由原先的“電機控制”“電氣傳動”已發展到“運動控制”的新階段。IGBT、電力MOSFET等為代表的全控型器件的不斷完善給PWM控制技術提供了強大的物質基礎。
在國內PWM有理論基礎逐漸成熟,但在應用上,國內外差距也很大。PWM調速系統的應用是近年來才開始的,原因是我國的電子工業的基礎比較差。PWM調速系統中所需的關鍵部件IGOT管靠進口。近年來,我國已開發出具有自主知識產權的IGOT大電流晶體管,從而為該技術推行奠定了物質基礎。PWM電機調速方案是未來電機拖動系統的首選方案,是實現電機拖動數字控制的基礎[2]。
1.4 課題研究的主要內容本設計提出了兩種控制方案:一種是基于單片機的直流電機控制,另一種是基于FPGA的直流電機控制,通過方案的論證與比較,采用后者調速方案。
本設計的主要內容是掌握基于FPGA的直流電機PWM控制原理,設計具有正/反轉、起/停控制功能、速度在線可調的直流電機控制裝置。通過對直流電機控制的研究,掌握EDA開發技術。
本設計詳細的分析了直流的結構、主要技術參數、工作原理和調速原理,基于FPGA的PWM波形產生的過程,并用VHDL描述PWM波形。本設計的所有功能均在ALTERA公司的MAX+Plus II軟件下通過仿真。本設計對PWM波形數據進行測試與詳細的分析。
2 直流電機PWM調速系統方案設計電機可分為變壓器、異步電機、同步電機和直流電機四個機種。其中變壓器是靜止的電氣設備,其余均為旋轉電機。異步電機和同步電機均為交流電機。在本次設計中用到的是直流電機,直流電機是實現直流電能與機械能轉的裝置[1]。以下詳細介紹了直流電機的基本結構、工作原理、主要技術參數和調速原理。2.1 直流電機2.1.1 直流電機基本結構直流電機由定子(靜止部分)和轉子(轉動部分)兩大部分組成。2.1 直流電機的結構
(1)定子部分定子部分包括機座、主磁極、換向極和電刷裝置等。①機座機座有兩個作用,一是作為電機磁路系統中的一部分,二是用來固定主磁極、換向極及端蓋等,起機械支承的作用。因此要求機座有好的導磁性能及足夠的機械強度和剛座,機座通常用鑄鋼或厚鋼板焊成。②主磁極在大多數直流電機中,主磁極是電磁鐵,如圖2.1的N、S就是主磁極,主磁極鐵芯用1~1.5mm厚的低碳鋼板疊加而成,整個磁級用螺釘固定在機座上。主磁極的作用是在定轉子之間的氣隙中建立磁場,使電樞繞組在此磁場的作用下感應電動勢和產生電磁轉矩。③換向極換向極又稱附加極或間極,其作用是以改善換向。換向極裝在相鄰兩主磁極N、S之間,由鐵心和繞組構成。鐵芯一般用整塊鋼或鋼板加工而成。換向極繞組與電樞繞組串聯。④電刷裝置在圖2.1中,A、B表示電刷。它的作用是把轉動的電樞繞組與靜止的外電路相連接,并與換向器相配合,起到整流或逆變器的作用。(2)轉子部分直流電機的轉子稱為電樞,包括電樞鐵芯、電樞繞組、換向器、風扇、軸和軸承等。①電樞鐵芯電樞鐵芯是電機主磁路的一部分,且用來嵌放電樞繞組。為了減少電樞旋轉時電樞鐵芯中因磁通變化而引起的磁滯及渦流損耗,電樞鐵心通常用0.5mm厚的兩面涂有絕緣漆的硅鋼片疊加而成。②電樞繞組電樞繞組是由許多按一定規律連接的線圈組成,它是直流電機的主要電路部分,也是通過電流和感應電動勢,從而實現機電能量轉換的關鍵部件。線圈用包有絕緣的導線繞制而成,嵌放在電樞槽中。每個線圈(也稱元件)有兩個出線端,分別接到換向器的兩個換向片上。所有線圈按一定規律連接成一閉合回路。③換向器換向器也是直流電機的重要部件。在直流電動機中,它將電刷上的直流電流轉換成繞組內的交流電流;在直流發電機中,它將繞組內的交流電動勢轉換成電刷端上的直流電動勢。換向器由許多換向片組成,每片之間相互絕緣。換向片數與線圈元件數相同。2.1.2 直流電機工作原理直流電機的工作原理建立在電磁力和電磁感應的基礎上,從圖2.1可以看出主磁極N、S間裝著一個可以轉動的鐵磁圓柱體,圓柱體的表面上固定著一個線圈abcd。abcd是裝在可以轉動的鐵磁圓柱上的一個線圈,把線圈的兩端分別接到兩個圓弧形的銅片上(簡稱換向片),兩者相互絕緣,鐵芯和線圈合稱電樞。當線圈中通入直流電流時,線圈邊上受到電磁力F=Bli,根據左手定則確定力的方向,這一對電磁力形成了作用于電樞的一個電磁轉矩,轉矩的方向是逆時針方向。若電樞轉動,線圈兩邊的位置互換,而線圈中通過的還是直流電流,則所產生的電磁轉矩的方向則變為順時針方向,因此電樞受到一種方向交變的電磁轉矩。這種交變的電磁轉矩只能使電樞來回搖擺,而不能使電樞連續轉動。顯然,要使電樞受到一個方向不變的電磁轉矩,關鍵在于,當線圈邊在不同極性的磁極下,如何將流過線圈中的電流方向及時地加以變換,即進行所謂“換向”。為此必須增添一個叫做換向器的裝置,換向器由互相絕緣的銅質換向片構成,裝在軸上,也和電樞絕緣,且和電樞一起旋轉。換向器又與兩個固定不動的由石墨制成的電刷A、B相接觸。裝了這種換向器以后,若將直流電壓加于電刷端,直流電流經電刷流過電樞上的線圈,則產生電磁轉矩,電樞在電磁轉矩的作用下就旋轉起來。電樞一經轉動,由于換向器配合電刷對電流的換向作用,直流電流交替地由線圈邊ab和cd流入,使線圈邊只要處于N極下,其中通過電流的方向總是由電刷A流入的方向,而在S極下時,總是從電刷B流出的方向。這就保證了每個極下線圈邊中的電流始終是一個方向。這樣的結構,就可使電動機能連續地旋轉。這就是直流電機的基本工作原理[3]。2.1.3 直流電機主要技術參數為了使電機安全可靠地工作,且保持優良的運行性能,電機廠家根據國家標準及電機的設計數據,對每臺電機在運行中的電壓,電流,功率,轉速等規定了保證值,這些保證值就是直流電機的主要技術參數,直流電機的主要技術參數有:直流電機的轉速,是指電機實際轉動的速度n; n =Ua-IR/CeΦ (2.1)
Ua為電樞電動勢,Ce為電動勢常數,Φ是磁通量。
額定功率(容量)PN,是指電刷輸出的電功率,單位為kW;PN=UNIN (2.2)
額定電壓UN,指額定狀態下電樞出線端的電壓,單位為V;額定電流IN,指電機在額定電壓、額定功率時的電樞電流值,單位為A;額定轉速ηN,指額定狀態下運行時轉子的轉速,單位為r/min;ηN =PN/UNIN (2.3)
2.2 直流電機調速原理2.2.1 直流電機電壓調速原理

圖2.2為按電機慣例標定的直流電機穩定運行量各物理量的正方向。由圖可見電機的電樞電動勢Ea的正方向與電樞電流Ia的方向相反,為反電動勢;電磁轉矩T的正方向與轉速n的方向相同,是拖動轉矩;軸上的機械負載轉矩T2及空載轉矩T0均與n相反,是制動轉矩。根據基爾霍夫第二定律,對圖2.2的電樞回路列回路電壓方程可得直流電動的電動勢平衡方程式: U=Ea-Ia(Ra+Rc) (2.4)
式2.4中,Ra為電樞回路電阻,電樞回路串聯保繞阻與電刷接觸電阻的總和;Rc是外接在電樞回路中的調節電阻。 由此可得到直流電機的轉速公式為: n =Ua-IR/CeΦ (2.5)
式中,Ce為電動勢常數,Φ是磁通量。 由1.1式和1.2式得 n =Ea/Ce (2.6)從由式子2.6中可以看出,對于一個已經制造好的電機,當勵磁電壓和負載轉矩恒定時,它的轉速由電樞電壓Ea決定,電樞電壓越高,電機轉速就越快,電樞電壓降低到0V時,電機就停止轉動;改變電樞電壓的極性,電機就反轉。總之電機的調速可以通過控制電樞電壓實現[3]。圖2.3 PWM調速原理
2.2.2 直流電機PWM調速原理所謂脈沖寬度調制是指用改變電機電樞電壓接通與斷開的時間的的占空比來控制電機轉速的方法,稱為脈沖寬度調制(PWM)。對于直流電機調速系統,使用FPGA進行調速是極為方便的。其方法是通過改變電機電樞電壓導通時間與通電時間的比值(即占空比)來控制電機速度。PWM調速原理如圖2.3所示。在脈沖作用下,當電機通電時,速度增加;電機斷電時,速度逐漸減少。只要按一定規律,改變通、斷電時間,即可讓電機轉速得到控制。設電機永遠接通電源時,其轉速最大為Vmax,設占空比為D=t1/T,則電機的平均速度為 Vd=Vmax·D (2.7)式中,Vd——電機的平均速度 Vmax——電機全通時的速度(最大) D=t1/T——占空比 平均速度Vd與占空比D的函數曲線,如圖2.4所示。圖2.4 平均速度和占空比的關系
由圖2.4所示可以看出,Vd與占空比D并不是完全線性關系(圖中實線),當系統允許時,可以將其近似地看成線性關系(圖中虛線)。因此也就可以看成電機電樞電壓Ua與占空比D成正比,改變占空比的大小即可控制電機的速度。由以上敘述可知:電機的轉速與電機電樞電壓成比例,而電機電樞電壓與控制波形的占空比成正比,因此電機的速度與占空比成比例,占空比越大,電機轉得越快,當占空比α=1時,電機轉速最大。2.4 基于單片機的直流電機PWM調速方案圖 2.5 基于單片機控制的PWM調速系統
如圖2.5所示為基于單片機的直流電機PWM調速方案的系統方框圖。D/A轉換器接在單片機AT89C51的P0引腳上,由軟件編程的產生的信號從P0腳輸出經D/A轉換器后輸出周期性線性增加的鋸齒波電壓,同時在模擬比較器另一端接給定的參考電壓。當鋸齒波電壓小于參考電壓時輸出低電平,當鋸齒波電壓大于參考電壓時輸出高電平。改變滑動電阻的值便可以改變參考電壓的大小,從而改變PWM波形中高電平的寬度,改變直流電機的占空比,改變直流電機的速度。關于電機運動方向控制,本設計在單片機的P2口引出兩個端口P2.1、P2.2控制直流的方向。其控制的原理是在PWM波形輸出端加上兩個與門,其分別與電機的方向控制端P2.1、P2.2相與,其具體的連接如圖2.5。當P2.1、P2.2輸出02H控制模型(P2.1=1,P2.2=0)時,三極管V1和V4導通,V2和V3截止,電機全速正轉。當P2.1、P2.2輸出01H模型(P2.1=0,P2.2=1)時,V1和V4截止,V2和V3導通,電機全速反轉。在這里需要注意的問題的是,當輸出全為1時,電機剎車,全為0時,電機滑行。工作狀態表如下:表1 電機工作狀態真值表
從以上的分析可知基于單片機的直流電機PWM調速方案要用到D/A轉換器、模擬比較器,外圍電路比較復雜。2.5 基于FPGA的直流電機調速方案圖 2.6 基于FPGA的直流電機調速系統
如圖2.6所示為基于FPGA的直流電機調速方案的方框圖,FPGA中的數字PWM控制基于單片機PWM控制不同,用FPGA產生PWM波形,只需要FPGA內部資源就可以實現,如數字比較器、鋸齒波發生器等均為FPGA內部資源,我們只要直接調用就可以。外部端口U_D、EN1、Z/F、START接在鍵盤電路上,CLK2和CLK0接在外部時鐘電路上,所用到的時鐘頻率為100MHz和50MHz,其具體的連接方式如圖3.1。其工作原理是:設定值計數器的設置PWM的占空比。當U/D=1時,輸入CLK2,使設定值計數器的輸出值增加, PWM的占空比增加,電機轉速加快;當U/D =0時,輸入CLK2,使設定值計數器的輸出值減小,PWM的占空比減小,電機轉速變慢。
在CLK0的作用下,鋸齒波計數器輸出周期性線性增加的鋸齒波。當計數值小于設定值時,數字比較器輸出高電平;當計數值大于設定值時,數字比較器輸出低電平,由此產生周期性的PWM波形。
旋轉方向控制電路控制直流電動機轉向和啟/停,該電路由兩個2選1的多路選擇器組成,Z/F鍵控制選擇PWM波形是從正端Z進入H橋,還是從負端F進入H橋,以控制電機的旋轉方向。當Z/F=1時,PWM輸出波形從正端Z進入H橋,電機正轉。當 Z/F =0時,PWM輸出波形從負端F進入H橋,電機反轉。
Start鍵通過“與”門控制PWM輸出,實現對電機的工作停止/控制。當START=1時,與門打開,允許電機工作。當START=0時,與門關閉,電機停止轉動。
H橋電路由大功率晶體管組成,PWM輸出波形通過方向控制電路送到 H 橋, 經功率放大以后對直流電機實現四象限運行。并由EN1信號控制是否允許變速[4]。
2.6 方案論證與基于單片機的直流電機PWM調速方案相比,基于FPGA的直流電機PWM控制省去了外接的D/A轉換器和模擬比較器,FPGA外部連線很少,電路更加簡單,便于控制。兼于FPGA的直流電機PWM控制具有精度高,反應快,外部連線少,電路簡單,便于控制等優點,因此本設計采用基于FPGA的直流電機PWM控制方案[2]。
3 直流電機PWM調速控制電路設計如圖3.1所示,基于FPGA的直流電機PWM控制電路主要由四部分組成:控制命令輸入模塊、控制命令處理模塊、控制命令輸出模塊、電源模塊。鍵盤電路、時鐘電路是系統的控制命令輸入模塊,向FPGA芯片發送命令,FPGA芯片是系統控制命令的處理模塊,負責接收、處理輸入命令并向控制命令輸出模塊發出PWM信號,是系統的控制核心。控制命令輸出模塊由H型橋式直流電機驅動電路組成,它負責接收由FPGA芯片發出的PWM信號,從而控制直流電機的正反轉、加速以及在線調速。電源模塊負責給整個電路供電,保證電路能夠正常的運行。

圖3.1 FPGA直流電機PWM 控制電路
3.1 系統工作原理在圖3.1中所示的FPGA是根據設計要求設計好的一個芯片,其內部邏輯電路如圖4.1。
START是電機的開啟端,U_D控制電機加速與減速,EN1用于設定電機轉速的初值,Z_F是電機的方向端口,選擇電機運行的方向。CLK2和CLK0是外部時鐘端,其主要作用是向FPGA控制系統提供時鐘脈沖,控制電機進行運轉。
通過鍵盤設置PWM信號的占空比。當U_D=1時, 表明鍵U_D按下,輸入CLK2使電機轉速加快;當U/D =0,表明鍵U_D松開,輸入CLK2使電機轉速變慢,這樣就可以實現電機的加速與減速。
Z_F鍵是電機運轉的方向按鍵,當把Z_F鍵按下時,Z_F=1,電機正轉;反之Z/F =0時,電機反轉。
START是電機的開啟鍵,當START=1,允許電機工作;當START=0時,電機停止轉動。
H橋電路由大功率晶體管組成,PWM輸出波形通過由兩個二選一電路組成的方向控制電路送到 H 橋, 經功率放大以后對直流電機實現四象限運行。并由EN1信號控制是否允許變速[5]。
3.2 鍵盤電路設計本設計系統的命令輸入模塊是鍵盤電路和時鐘電路,通過以按鍵的方式向FPGA控制系統表達人的命令來實現直流電機的正轉、反轉、停止和加減速,實現人機互換。下面就對鍵盤電路和時鐘電路的類型以及工作原理分別進行論述。鍵盤電路有兩種類型,其中一種是獨立式鍵盤電路。獨立式鍵盤電路結構簡單、操作方便,在目前這種結構的鍵盤應用還非常普遍。只是這種鍵盤電路的每個按鍵都要占用一根I/O口線,這樣的話,隨著按鍵的增加將使I/O口線不足。因此,這種鍵盤電路只有在按鍵比較少的情況下比較適用。另一種鍵盤電路是矩陣式鍵盤電路,這種鍵盤電路的按鍵設置在行線和列線的交叉點上,因此在有限的I/O口線上可以設置比較多的按鍵。只是這種鍵盤電路結構、編程都比較復雜。在鍵盤電路中,往往可以與一個與非門電路構成帶中斷的鍵盤電路。這種鍵盤電路上的每個按鍵可以單獨工作,而且響應時間快。這種帶中斷式的鍵盤電路現在應用已經相當的普遍。如圖3.2所示,所采用的鍵盤電路是獨立式鍵盤電路。其4個功能鍵SB1-SB4連線分別接在FPGA控制系統的4個端口上,并分別往上各引一條接線串一個1KΩ的上拉電阻接在+5V電源上。當4個鍵都沒有被按下去時,對應的各條列線全部為高電平,在CMOS非門的作用下每個端口的電平為低電平。其中一個按鈕按下去時,其對應的輸出端口在非門的作用下由低電平變為高電平,從而啟動相應的功能。圖3.2 鍵盤電路
在鍵盤電路設計中,需要解決按鍵抖動的問題。多數鍵盤的按鍵均采用機械彈性開關,一個電信號通過機械觸點的斷開、閉合過程,完成高低電平的切換。由于機械觸點的彈性作用,一個按鍵開關在閉合和斷開的瞬間必然伴隨一連串的抖動。為了排除抖動的影響,在按鍵和輸出端并上一個電阻、一個電容。如圖3.3所示。圖3.3 濾波防抖動電路
由圖可知,當鍵SB1未按下時,電容C兩端的電壓均為1,非門輸出為0。當鍵SB1按下時,由于C兩端電壓不可能產生突變。盡管接觸過程中可能出現抖動,只要適當的選擇R和C值,即可保證電容C兩端的放電電壓波動不會超過非門的開啟電壓(TTL為0.8V),非門的輸出將維持低電平。同理,當觸點K斷開時,由于電容C經過R2充電,C兩端的充電電壓波動不會超過非門的關閉電壓,因此,非門的輸出也不會改變[9],從而達到防抖動的效果。
3.3 系統時鐘電路設計FPGA是在系統時鐘脈沖作用下進行的,在FPGA應用系統中,要求采用石英晶振作為時鐘脈沖,如圖3.4所示,是采用有源石英晶振構成的系統時鐘電路。在該電路中,1腳懸空,2腳接地,3腳接輸出,4腳接電源。3腳時鐘脈沖輸出后接在FPGA的CLK0時鐘端,另一路經二分頻電路進行分頻后接在CLK2時鐘端。在CLK0和CLK2的共同作用下,系統進行工作。
時鐘輸入是系統電路中必不可少的一部分,它能為FPGA提供時鐘脈沖信號,考慮到EDA開發系統時鐘輸入的重要性,一個是50MHz的有源晶振作為時鐘信號源輸入,主要用于輸入大的時鐘信號,為波形發生器提供基準的時鐘脈沖輸入。
圖3.4 時鐘電路圖
有源晶振的驅動能力強,晶振頻率比較大,能達到幾百兆Hz,采用有源晶振作為時鐘源可以使電路的時鐘擴大。HO-12系列的有源晶振采用TTL/HCMOS技術,頻率范圍是1000Hz-1000MHz,這里我們采用的是100MHz的有源晶振。
把D觸發器的輸出

反饋回輸入端與D連接就形成一個二分頻電路,如圖3.5所示,從波形圖可以看出Q輸出的波形將是CP脈沖周期的兩倍,即頻率是為CP脈沖的一半[10]。
3.5 D觸發器接成二分頻電路
3.4 H型橋式驅動電路設計直流電機驅動電路使用最廣泛的就是H型全橋式驅動電路,這種驅動電路可以很方便實現直流電機的四象限運行,分別對應正轉、正轉制動、反轉、反轉制動。它的基本原理圖如圖3.6所示。圖3.6 H型全橋式驅動電路
H型全橋式驅動電路的4只三極管都工作在斬波狀態,V1、V4為一組,V2、V3為另一組,兩組的狀態互補,一組導通則另一組必須關斷。當V1、V4導通時,V2、V3關斷,電機兩端加正向電壓,可以實 現電機的正轉或反轉制動;當V2、V3導通時,V1、V4關斷,電機兩端為反向電壓,電機反轉或正轉制動。在直流電機運轉的過程中,我們要不斷地使電機在四個象限之間切換,即在正轉和反轉之間切換,也就是在V1、V4導通且V2、V3關斷,到V1、V4關斷且V2、V3導通,這兩種狀態之間轉換。在這種情況下,理論上要求兩組控制信號完全互補,但是,由于實際的開關器件都存在開通和關斷時間,絕對的互補控制邏輯 必然導致上下橋臂直通短路,比如在上橋臂關斷的過程中,下橋臂導通了。這個過程可用圖3.7說明。圖3.7
因此,為了避免直通短路且保證各個開關管動作之間的同步性,兩組控制信號在理論上要求互為倒相的邏輯關系,而實際上卻必須相差一個足夠的死區時間,這個矯正過程既可以通過硬件實現,即在上下橋臂的兩組控制信號之間增加延時。驅動電流不僅可以通過主開關管流通,而且還可以通過續流二極管流通。當電機處于制動狀態時,電機便工作在發電狀態,轉子電流必須通過續流二極管流通,否則電機就會發熱,嚴重時燒毀。開關管的選擇對驅動電路的影響很大,開關管的選擇宜遵循以下原則:
(1)由于驅動電路是功率輸出,要求開關管輸出功率較大
(2)開關管的開通和關斷時間應盡可能小
(3)直流電機使用的電源電壓不高,因此開關管的飽和壓降應該盡量低在實際制作中,我們可選用大功率達林頓管TIP122或場效應管IRF530,效果都還不錯。現在為了取材方便,我們選用三極管作為驅動電路的開關管。從前面的分析可知,H型全橋式驅動電路中,由于開關管有開通和關斷時間,因此存在上下橋臂直通短路的問題。直通短路的存在,容易使開關管發熱,嚴重時燒毀開關管,同時也增加了開關管的能量損耗。由于現在的許多集成驅動芯片內部已經內置了死區保護(如LMD18200),這里主要介紹的是利用開關管等分立元件以及沒有死區保護的集成芯片制作驅動電路時增加死區的方法。死區時間的問題,只有在正轉變為反轉或者反轉變為正轉的時候才存在,而在正轉啟動或反轉啟動的時候并沒有,因此不需要修正。如果開關管的開通和關斷時間非常小,或者在硬件電路中增加延時環節,都可以降低開關管的損耗和發熱。當然,通過軟件避免直通短路是最好的辦法,它的操作簡單,控制靈活。通過軟件實現死區時間,就是在突然換向的時候,插入一個延時的環節,待開關管關斷之后,再開通應該開通的開關管。在開關管每次換向的時候,不立即進行方向的切換,而是先使開關管關斷一段時間,使其完全關斷后再換向打開另外的開關管。這個關斷時間由軟件延時實現。以上主要分析了電機的全橋式驅動電路,這是直流電機調速使用最多的調速方法。目前市場上有很多種電機驅動的集成電路,效率高,電路簡單,使用也比較廣泛,但是其驅動方法大多與全橋式驅動一樣。PWM控制方法配合橋式驅動電路,是目前直流電機調速最普遍的方法。3.5 電源電路設計由于電機在正常工作時對電源的干擾很大,如果只用一組電源時會影響系統的正常工作,所以我們選用雙電源供電。一組5V給控制電路供電, 另外一組12V給電機供電。
如圖3.8所示。電源部分分為兩路,一路直接提供12伏的直流電源,主要是提供給電機使用,另一路通過三端穩壓芯片7805穩壓成5伏直流電源提供給鍵盤電路和時鐘電路使用,右邊兩個電容是5伏電源的濾波電容,綠色的LED作為工作指示燈,只要電源部分正常,綠色的LED就會點亮,我們可以根據這個LED來判斷整個電源部分是否工作正常。
3.8 電源電路
3.6 主要元器件簡介基于FPGA的直流電機PWM調速系統的核心芯片選用Altera公司FLEX10K系列的的EP10K10TC144-3。該芯片是具有內部電路尺寸很小、互連線短、分布電容小,驅動電路所需的功耗小等特征的可編程邏輯器件,它是實驗中常用到的一個芯片。
FLEX10K是工業界第一個嵌入式的可編程邏輯器件,采用可重構的CMOSSRAM工藝,把連續的快速通道互連與獨特嵌入式整列相結合,同時也結合了眾多可編程器件的優點來完成普通門陣列的宏功能。器件內部集成10萬門電路,實現復雜邏輯運算和數據運算。EP10K10TC144-3和其他的FPGA芯片一樣具有以下的特點。
(1) 規模很大,其單片邏輯門數可以達到數百萬甚至上千萬門,它所能實現的功能很強,可以實現系統集成。這樣大幅度地減少了印刷電路板的面積和接插件的數量,降低了裝配和調試費用。
(2) 提高了產品的可靠性。大量分立式元器件在向印刷電路板上裝配時,往往會發生由于虛焊或接觸不良而造成故障,并且這種故障常常難以發現,給調試和維修造成極大的困難。FPGA芯片使這種現象減少,設計人員只需要在自己的實驗室里就可以通過相關的軟硬件環境來完成芯片的最終功能指定。
(3) 大大減小了電子產品的體積和重量,降低了電子產品的功耗,提高了產品的工作速度。FPGA芯片內部很短的連線能大大縮短延遲時間,并且不易受外部干擾,這對提高速度非常有利。
(4) 提高了產品的競爭能力。FPGA芯片和EPROM配合使用時,用戶可以反復地編程、擦除、使用或者在外圍電路不動的情況下用不同的EPROM就可實現不同的功能,所以,用FPGA試制樣片,能以最快的速度占領市場。再者,FPGA芯片的電路設計周期較短,設計人員在較短時間內可完成電路的輸入、編譯、優化、仿真,直至最后的芯片制作。
由于Altera公司的FLEX10K系列具有以上所有的特點,所以本設計采用它作為仿真目標器件,軟件工具為Altera公司的MAX+PlusII [4]。
4 控制邏輯VHDL描述4.1 VHDL硬件描述語言硬件描述語言HDL是EDA技術的重要組成部分,常見的HDL有以下幾種:
(1) VHDL
(2) Verilog HDL
(3) System Verilog
(4) System C
其中VHDL、Verilog是現在EDA設計中使用最多,也擁有幾乎所有的主流EDA工具的支持。而System Verilog和System C這兩種HDL語言還處于完善過程中。VHDL是電子設計主流硬件的描述語言之一。VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Description Language,于1983年由美國國防部(DOD)發起創建,由IEEE(The Institute of Electrical Engineers)進一步發展并在1987年作為“IEEE標準1076”(IEEE Std 1076)發布。從此,VHDL成為硬件描述語言的業界標準之一。自IEEE公布了VHDL的標準版本之后,各EDA公司相繼推出了自己的VHDL設計環境,或宣布自己的設計工具支持VHDL。此后VHDL在電子設計領域得到了廣泛應用,并逐步取代了原有的非標準硬件描述語言。
VHDL作為一個規范語言和建模語言,隨著VHDL的標準化,出現了一些支持該語言的行為仿真器。由于創建VHDL的最初目標是用于標準文檔的建立和電路功能模擬,其基本想法是在最高層上描述系統和元件的行為。但到了20世紀90年代初,人們發現,VHDL不僅可以作為系統模擬的建模工具,而且可以作為電路系統的設計工具,可以利用軟件工具將VHDL源碼自動地轉化為文本方式表達的基本邏輯元件連接圖,即網表文件。這種方法顯然對于電路自動設計是一個極大的推進。很快,電子設計領域出現了第一個軟件設計工具,即VHDL邏輯綜合器,它把標準VHDL的部分語句描述轉化為具體電路實現的網表文件。
VHDL語言具有很強的電路描述和建模能力,能從多個層次對數字系統進行建模和描述,從而大大簡化了硬件設計任務,提高了設計效率和可靠性。
VHDL具有與具體硬件電路無關和與設計平臺無關的特性,并且具有良好的電路行為描述和系統描述的能力,在語言易讀性和層次化結構化設計方面表現了強大的生命力和應用潛力。因此,VHDL支持各種模式的設計方法:自頂向下與自底向上或混合方法,在面對當今許多電子產品生命周期縮短,需要多次重新設計以融入最新技術、改變工藝等方面,VHDL具有良好的適應性,用VHDL進行電子系統設計的一個很大的優點是設計者可以專心致志于其功能的實現,而不需要對不影響功能的與工藝有關的因素花費過多的時間和精力。
技術的飛速發展使得集成電路的設計規模日益增大,復雜程度日益增高。伴隨著設計規模的增大,傳統的自下至上的、采用通用邏輯元器件的硬件描述方法變得過于復雜,不易于使用。隨著大規模專用集成電路(ASIC)的開發和研制,為了提高開發的效率,增加己有開發成果的繼承性以及縮短開發時間,各ASIC研制和生產廠家相繼開發了用于各自目的硬件描述語言(HDL)—可以描述硬件電路的功能,信號連接關系及定時關系的語言,它能比原理圖更有效地表示硬件電路的特性[5]。
VHDL語言具有以下特點:
(1)VHDL語言可以支持自上至下(Top Down)和基于庫(Library-Based)的設計方法,而且還支持同步電路、異步電路及其它隨機電路的設計。其范圍之廣使其它HDL語言所不能比擬的。
(2)VHDL語言具有多層次描述系統硬件功能的能力,可以從系統的數學模型直到門級電路:支持大規模設計的分解和設計重用;支持傳輸延遲和慣性延遲,可以更準確的建立復雜的電路硬件模型。
(3)在用VHDL語言設計系統硬件時,沒有嵌入與工藝有關的信息,這樣在工藝更新時,就無需修改原設計程序,只要改變相應的映射工具即可。可見,無論修改電路還是修改工藝,相互之間不會產生什么不良影響。
(4)VHDL語言己作為一種IEEE的工業標準,設計成果便于復用和交流。這樣又進一步推動VHDL語言的推廣和完善:另外,VHDL語言的語法比較嚴格,給閱讀和使用都帶來了極大的好處。
(5)VHDL語言具有并發性,體現在兩個方面:首先使用VHDL語言進行數字電路設計時存在并發性,即VHDL語言支持設計分解,可使被分解的各子部分的設計并行完成,這些子部分的設計由三部分組成:定義實體—確定模型與環境的接口;定義結構體—完成模型的功能描述;定義測試部分—為模型生成測試向量,并捕獲模型輸出信號狀態以供分析。其次,VHDL語言在執行上具有并發性,很適合描述電路的并發性特點[4]。
4.2 FPGA內部邏輯組成圖4.1 FPGA直流電機PWM 控制電路
由圖4.1可以看出電機控制邏輯模塊由PWM脈寬調制信號產生電路、方向控制電路組成。其中PWM脈寬調制信號產生電路由可控的加減計數器CNTA、5位二進制計數器CNTB、數字比較器LPM_COMPARE三部分組成,方向控制電路由兩個二選一電路21MUX組成。連接在每個模塊的端口的作用在2.5中已經詳細的說明,在這里就不再重復。接著就對PWM脈寬調制信號產生電路的VHDL描述與仿真、方向電路的VHDL描述與仿真進行詳細的分析。
4.3 PWM脈寬調制信號產生電路描述PWM脈寬調制信號產生電路由可控的加減計數器CNTA、5位二進制計數器CNTB、數字比較器LPM_COMPARE三部分組成。可控的加減計數器做細分計數器,確定脈沖寬度。當U/D=1時,輸入CLK2,使設定值計數器的輸出值增加,PWM的占空比增加,電機轉速加快;當U/D =0,輸入CLK2,使設定值計數器的輸出值減小,PWM的占空比減小,電機轉速變慢。5位二進制計數器在CLK0的作用下,鋸齒波計數器輸出周期性線性增加的鋸齒波。當計數值小于設定值時,數字比較器輸出高電平;當計數值大于設定值時,數字比較器輸出低電平,由此產生周期性的PWM波形。其內部邏輯圖如圖4.2所示。
圖 4.2 FPGA中的PWM脈寬調制信號產生電路
可控的加減計數器CNTA中的端口U_D控制計數器的方向,EN1是計數器的使能端,控制計數器初值的變化。U_D=1時,加減計數器CNTA在脈沖CLK2的作用下,每來一個脈沖,計數器CNTA加1,U_D=0時,每來一個脈沖,計數器CNTA減1。使能端EN1設定計數器值的初值,當EN1由1變為0的時候,無論U_D如何表化,計數器的值都不會發生變化,這樣就完成了計數器的設定值,其仿真波形如圖4.3所示,其VHDL語言如下。
LIBRARY IEEE;
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CNTA IS
PORT(CLK:IN STD_LOGIC;
U_D:IN STD_LOGIC;
CQ:OUT STD_LOGIC_VECTOR(4 DOWNTO 0));
END CNTA;
ARCHITECTURE behav OF CNTA IS
SIGNAL CQI:STD_LOGIC_VECTOR(4 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1'THEN
IF U_D='1' THEN
IF CQI<=31 THEN CQI<="11111";
ELSE CQI<=CQI+1; END IF;
ELSIF CQI=0 THEN CQI<="00000";
ELSE CQI<=CQI-1;END IF;
END IF;
END PROCESS;
CQ<=CQI;
END behav;
圖 4.3 細分計數器的仿真波形
CNTB是一個簡單的5位二進制計數器,它的工作原理和CNTA的原理很相似,我們只是在CNTA的時鐘端加了一個使能端EN1控制其加減的方向。而CNTB的時鐘端沒有加使能端,所以每來一個脈沖計數器加1,因為CNTB是一個5位的二進值計數器,所以當計數器的值當大于32時,計數器又重新從0開始記數,從而產生周期性的線性增加的鋸齒波。其仿真波形如4.4,其VHDL語言如下。
ENTITY CNTB IS
PORT(CLK: IN BIT;
Q:BUFFER INTEGER RANGE 31 DOWNTO 0);
END;
ARCHITECTURE BHV OF CNTB IS
BEGIN
PROCESS(CLK)
BEGIN
IF CLK'EVENT AND CLK='1' THEN
Q<=Q+1;
END IF;
END PROCESS;
END BHV;
圖4.4 5位二進制計數器仿真波形
數字比較器是產生PWM波形的核心組成部件,可控的加減計數器CNTA和5位二進制計數器CNTB同時加數字比較器LPM-COMPARE兩端作為兩路輸入信號,當計數器CNTB輸出值小于細分計數器CNTA輸出的規定值時, 比較器輸出高電平; 當CNTB輸出值大于細分計數器CNTA輸出的規定值時, 比較器輸出低電平。改變細分計數器的設定值, 就可以改變PWM輸出信號的占空比。為了便于觀察防真波形,我在CNTB的輸出加上B[4..0],仿真波形如圖4.5。
圖4.5 數字比較器的仿真波形
細分計數器CNTA是一個雙向計數器, 可以進行加減計數,由U_D控制其加/減計數方向, CLK是計數時鐘輸入端。為了便于連續變速控制, 在計數器的CLK端通過“與”門, 加入了CLK2外部變速控制附加時鐘, 并由EN1信號控制是否允許變速。在本次設計中直流電機轉速進行了32級細分。其仿真波形如圖4.6,細分計數器的初值我設為08H,也就是十進值的8,當計數器CNTB的值小于8時,AGB輸出高電平,當計數器CNTB的值大于8時,AGB的輸出值為低電平,從而產生PWM波形。
圖4.6 A[4..0]=08H時電機加速PWM波形
通過改變細分計數器的值就可以改變PWM的占空比,從而改變直流電機的速度。在圖4.6中占空比D=8/32=0.25,在圖4.7中占空比D=4/32=0.125。通過以上兩組數據比較以及分析仿真波形我們可以看出,只要改變使能端電平的高低,便可以改變細分計數器的值,也就是改變細分計數器CNTA的初值,從而可以改變直流電機的占空比,改變直流電機的速度。
圖4.7 A[4..0]=04H時電機減速PWM波形
調節PWM波的占空比是電機調速的重要手段,若脈寬計數器CNTA的值逐漸增大,輸出脈沖的開啟時間變大,PWM占空比逐漸變大,功率器件輸出給電機電樞的能量增加,電機加速。若脈寬計數器定時器CNTA的值減小,輸出脈沖的開啟時間變小,PWM占空比逐漸變小,功率器件輸出給電機電樞的能量減少,電機減速。當電機得到加速信號,占空比增大至它可調范圍的最大值后保持,電機得到減速信號,占空比減小至它的可調范圍的最小值后保持。
4.4 運行控制邏輯電路描述如圖4.8所示FPGA中的工作/停止控制和正/反轉方向控制電路,其兩個二選一多路選擇器加上兩個與門根據邏輯原理組合而成。START鍵通過“與”門控制PWM輸出,實現對電機的工作/停止控制。當START端接高電平時,表示電源接通,電機開始運轉;當START端接低電平時,電機停止運轉。Z/F鍵控制選擇PWM波形是從正端Z進入H橋,還是從負端F進入H橋,以控制電機的旋轉方向。當Z/F=1時PWM輸出波形從正端Z進入H橋,電機正轉。當 Z/F =0時PWM輸出波形從負端F進入H橋,電機反轉。仿真如圖4.9所示。
圖4.8 FPGA中的工作/停止控制和正/反轉方向控制電路
圖4.9 正/反轉工作控制電路波形
當START=1時,與門打開,允許電機工作。當START=0時,與門關閉,電機停止轉動。仿真如圖4.10所示。
圖4.10 工作/停止電路波形
5 直流電機PWM調速系統仿真
5.1 FPGA開發環境的介紹MAX+Plus II(MuliPtle Array Martix and Programmxnaable Logie User System)是ALTERA公司推出的具有完全集成化、可視化的設計環境,具有工業標準EDA工具接口,可運行于多種操作系統。MAX+Plus II提供了一種與結構無關的設計環境,設計人員無須精通器件內部結構,只需運用自己熟悉的輸入工具進行設計,就可以通過MAX+Plus II把這些設計轉換為最終結構所需要的格式。
MAX+Plus II提供豐富的邏輯功能供設計人員調用,其中包括74系列全部器件的等效宏功能庫和多種特殊的宏功能(MacorFunctino)模塊以及參數化的宏功能(Mageufnctino)模塊。MAX+PlusH還具有開放核的特點,允許設計人員添加自己的宏功能模塊。充分利用這些邏輯功能模塊,可以大大減輕設計的工作量,成倍縮短開發周期。
Altera公司的MAX+plus II有以下特點:
開放的界面——MAX+plus II軟件可與其他工業標準的設計輸入、綜合與校驗工具相連接,支持與Candence、Synopsys、Viewlogic等其它公司所提供的EDA接口。
完全集成化——MAX+plus II的設計輸入、處理與校驗功能全部集成在統一的開發環境下,這樣可以加快動態調試、縮短開發周期。
豐富的設計庫——MAX+plus II提供豐富的庫單元供設計者調用,其中包括74系列的全部器件、大量的數字器件和新型參數化的宏函數,大大減輕了設計人員的工作量。
硬件描述語言——MAX+plus II軟件支持各種HDL設計輸入選項,包括VHDL、verilog HDL和Altera公司自己的硬件描述語言AHDL。
開放核特性——MAX+plus II軟件具有開放核的特點,它允許設計人員添加自己認為有價值的宏函數。
MAX+plus II軟件的設計輸入方法有多種,主要包括原理圖輸入方式、文本設計輸入方式、波形設計輸入方式等。
(1) 原理圖輸入與符號編輯。利用MAX+plus II提供的各種原理圖庫進行設計輸入是一種最為直接的輸入方式。用這種方式輸入時,為提高效率,應采用自頂向下邏輯分塊,把大規模的電路劃分成若干小塊的方法。
(2) 硬件描述語言輸入。MAX+plus II包含一個集成的Text Editor(文本編輯程序),適合于輸入和編輯用VHDL語言編寫的設計文件。
(3) MAX+plus II Waveform Editor(波形編輯程序)用于建立和編輯波形文件及輸入仿真向量和功能測試向量,適合于時序和重復的函數。
設計人員可以根據自己的實際情況靈活的選擇MAX+plus II軟件的輸入方式。若對系統進行數學描述,需要采用VHDL語言的行為描述。在數學模型建立之后,需要改為數據流描述方式。在這個過程中,會遇到兩種情況:一種是對時間要求較高的部分即時序邏輯,另一種是狀態機即組合邏輯。對于時序邏輯,用VHDL語言的數據流描述的方式要用到大量的基本數字器件,如門電路、觸發器等,這些器件的使用要用到VHDL語言的元件例化語句和元件配置語句,而且還要定義大量的中間變量作為元件的輸入輸出量,書寫不是非常方便。這種情況下使用原理圖輸入是非常直觀和方便的。狀態機(Sate Machine)是一種記錄下給定時刻狀態的設備,并根據輸入對每個給定狀態的改變,改變其狀態或引發一個動作。狀態機是控制電路設計中的重要部分,它的功能十分強大,規定了事件的合法狀態即轉換條件,對信號有條件要求的場合非常適用。這樣的情況用原理圖是比較難以表述的,而用VHDL語言則很簡單,采用相應的選擇語句即可。描述出來的狀態機可以作為一個新的宏函數供原理圖調用。
5.2 建立工程項目在本次設計中,主要用到的設計方法是原理圖輸入設計,MAX+plus II提供了功能強大,直觀便捷和操作靈活的原理圖輸入設計功能,同時還配備了適用于各種需要的元件庫,其中包含基本邏輯元件庫(如與非門、反向器、D觸發器等)、宏功能元件(包含了幾乎所有74系列的器件),以及功能強大,性能良好的類似于IP Core的巨功能塊LPM庫。但更為重要的是,MAX+plus II還提供了原理圖輸入多層次設計功能,使得用戶能設計更大規模的電路系統,以及使用方便精度良好的時序仿真器。通過時序仿真,能對迅速定位電路系統的錯誤所在,并隨時糾正。 能對設計方案作隨時更改,并儲存設計過程中所有的電路和測試文件。將不會有任何器件損壞和損耗,符合現代電子設計技術規范。下面介紹基本設計步驟。
(1)為工程設計建立一個文件夾,本次設計的文件取名為eda,路徑為F:\eda。
(2)輸入設計項目和存盤
①打開MAX+Plus II,選菜單File中的new,在彈出的對話框中選擇原理圖編輯輸入項“Graphic Editor File” 如圖5.1所示。按“OK”鍵后打開原理圖編輯口。
圖5.1 建立原理圖編輯器對話框
②然后在編輯窗口的任一位置上右擊,將彈出一個菜單,選擇其中的輸入元件項“Enter Symbol”,于是將彈出如圖5.2所示的元件輸入對話框。
圖5.2 元件輸入對話框
③在Symbol Name中輸入本設計需要用到的元件,如二選一多路選擇器21 MUX,數字比較器LPM_COMPARE等等,再單擊OK按鈕,便可以將元件調入原理圖編輯窗口中。
注意:在本次設計中需要用到用VHDL語言描述出來的CNTA和CNTB兩個狀態機作為新的宏函數供原理圖調用。還要用到一個參數可調的宏函數LPM_COMPARE,其具體的操作方法是在圖5.2原理圖編輯窗口輸入LPM_COMPARE,單擊“OK”鍵,便可以找到LPM_COMPARE,如圖5.3所示。
圖5.3 參數未設置的數字比較器圖標
雙擊圖5.3中的LPM_COMPARE右上角的參數顯示文字,然后在彈出的參數設置對話框中選擇合適的參數,如圖5.4所示。
圖5.4 參數設置對話框
數字比較器各端口及其參數的含義是:
Aclr:異步清零輸入;
Alb、aAeb、,agb、ageb、,aneb、aleb:比較器數據輸出;
Clock:上升沿觸發記數時鐘輸入;
Dataa[]:并行數據輸入端;
設置情況如圖4.1所示,比較器位寬為5,即5位比較器
④選擇菜單File中的Save as,選擇剛建的工程項目F:\eda,將設計好的圖文文件取名為:PWM.gdf,并存盤在這個目錄中。
(3) 將設計項目設置成工程文件
為了使MAX+plus II能對輸入的設計項目按設計者的要求進行各項處理,必須將PWM.gdf設置成Project。
圖5.5將設計項目設置成工程文件
(4)選擇目標器件并編譯
為了獲得與目標器件相對應的、精確的時序仿真文件,在對文件編譯前必須選定實現本項目的目標器件,在本次設計中選擇EPF10K10TC144-3,最后啟動編譯。
圖5.6 選擇目標器件
圖5.7 對文件進行編譯、綜合和適配等操作
(5) 時序仿真
時序仿真的主要內容是建立波形文件(和建立原理圖輸入設計一樣),輸入信號節點、設置波形參量、設定仿真時間、波形文件存盤、運行仿真和分析波形[5]。
5.8 輸入信號節點
5.9 設定仿真時間
上面詳細介紹介紹了原理圖的設計流程,現在對其歸納如下:
5.10 項目輸入設計框圖
在本次設計中,需要滿足的技術要求是設計具有正/反轉,起/停控制功能、速度在線可調的直流電機控制裝置。接下來就用仿真波形詳細的說明本次設計的電路滿足以上的所有要求。
5.3 正/反轉控制仿真鍵盤Z_F是電機的方向控制鍵。當要求電機正轉時,只需要按下鍵Z_F,表示Z_F輸出高電平,即Z_F=1,電機正轉,如圖5.11所示。當鍵Z_F松開時,Z_F=0時,電機反轉,如圖5.12、圖5.13所示。
圖5.11 電機正轉
5.12 電機反轉
圖5.13 電機正反轉
5.4 啟/停控制仿真START鍵是電機的啟動鍵,當按下START鍵時,START=1,電機進入運行狀態,如圖5.14所示。反之,START=0時,電機停止,如圖5.15、圖5.16所示。
圖5.14 啟動仿真波形
圖5.15 停止仿真波形
圖5.16 啟/停仿真波形
5.5 加/減速仿真鍵盤EN1控制電機是否允許變速。所以通過改變EN1便可以改變設定值H[4..0]的值,也就是設定值的初值,從而改變了直流電機的占空比,改變直流電機的速度,達到調速的目的。
因為CNTB是5位的計數器,所在本設計中直流電機轉速細分為32級。如圖5.17的占空比為2/32=0.0625,同理通過按鍵EN1該變H[4..0]的值便得到如圖5.18、5.19的PWM仿真波形,其占空比依次為0.125、0.25,也就是占空比增大,電機的速度增加。根據以上的數據比較與仿真波形的分析可以看出,電機的速度在逐漸的增加。所以通過改變EN1的值可以改變直流電機的PWM占空比,從而改變直流電機的速度。
圖5.17 H[4..0]=02H仿真波形
圖5.18 H[4..0]=04H仿真波形
圖5.19 H[4..0]=08H仿真波形
5.6 仿真結果分析通過5.2到5.5的仿真波形分析可知,本設計中的各項功能夠很好的實現。在時鐘脈沖的作用下,計數器CNTA和CNTB都能按照事先設定好的規則進行計數。CNTA是可控的加減計數器,U_D控制其計數的方向,EN1用于設定其初值,當NE1由高電平變為低電平時,就完成了設定值。CNTB是5位二進制計數器,其在時鐘脈沖CLK0的作用下一直加數,當它加到32時就自動返回到0再重新加數。兩路計數器同時加到數字比較器LMP_COMPARE上,當CNTB的值小于設定值時,數字比較器輸出高電平,當CNTB的值大于設定值時,數字比較器輸出低電平。因此改變設定值的大小就可以改變PWM波形的大小,也就是完成了電機的調速。Z_F是電機的方向按鍵,選擇PWM波形的進入方向,當其為1時,電機正轉,反之,反轉。至于電機的控制,是在它的輸入端加上兩個與門來控制電機的啟動與停止。其具體的操作如下:
當按下鍵Z_F鍵時,電機正轉(如圖5.11),松開鍵時,電機反轉(如圖5.12)。當按下鍵START時,電機開始工作(如圖5.14),松開時,電機停止工作(如圖5.15)。通過按鍵EN1的閉合與斷開可以改變H[4.0]的值(如圖5.17、5.18、5.19)從而改變直流電機的PWM占空比,達到改變直流電機速度的目的。
本設計采用VHDL設計FPGA 脈寬調制控制方案, 計算機仿真和對直流電機控制的結果表明,該電路能有效地產生PWM 控制信號控制電機的轉速, 控制精度由FPGA 中的數字比較器決定。在本設計中,采用的數字比較器為5位, 若增加數字比較器的位數, 就可以提高電機轉速的控制精度。
電路中省去了D/A 轉換器使電路變得更加簡潔, 同時也降低控制器的成本。FPGA 內部采用狀態機結構, 遇到干擾時, 能很快從異常狀態轉入正常工作狀態, 保證了控制系統具有高的可靠性。從以上的仿真中可以看出,基于FPGA的直流電機的控制能夠達到很好的預期效果。
6 總結這次設計,我于年月日—年月日查閱資料,收集資料、在消化資料的基礎上提出工程技術方案,并對設計方案進行論證。于年月日完成設計初稿。在這期間,我用了兩個月的時間不斷修改原理圖和程序,直到程序和仿真基本滿足設計要求,最后在指導老師X老師的指導下,根據任務書圓滿地完成了該畢業設計。在這段設計的過程中,確實也遇到很多的困難。FPGA技術是一門較新的學科,這方面的資料不是很多,所有的一切只有靠自己去摸索,這是一個比較漫長的過程。在求助于老師、理清思路后,于是到圖書館、網上查閱資料,比如怎樣實現電機的正轉和反轉、加速和減速等等。經過指導老師X老師的耐心指點和連續一個星期的奮戰才算基本合格。我發現收獲了不少,通過查資料了解了直流電機工作原理及用途、PWM控制技術、鍵盤電路接口技術、時鐘電路技術等等,同時也讓我學習現代電子產品的設計流程,為以后從事產品開發打好了基礎。
致謝
在論文即將完成之際,也將是我的大學生活快要結束的時候,此時,我的心情無法平靜,從開始進入課題到論文的順利完成,有我們可敬的X老師給了我辛勤地指導,還有其他師長、領導、同學、朋友給了我無言的幫助,在這里請接受我誠摯的謝意!在這次畢業設計中,首先要感謝我的指導老師X教授,他在學習和設計方面給予我大量的指導,并為我們提供了一個良好的學習環境,讓我學到了知識,掌握了解決問題的方法,也獲得了實踐鍛煉的機會。他的嚴謹細致、一絲不茍的作風將一直是我工作、學習中的榜樣,同時他的循循善誘的教導、不拘一格的思路和為人處世的坦蕩也給予我無盡的啟迪。除此之外,他還教了一些我做人的道理。在此祝愿他身體健康,全家幸福!還有很多我無法一一列舉姓名的師長和友人給了我指導和幫助,在此衷心的表示感謝,他們的名字我一直銘記在心!最后,衷心感謝在百忙之中抽出時間審閱本論文的專家教授