電機(jī)是一種能量轉(zhuǎn)換的裝置,在國(guó)民經(jīng)濟(jì)中起著重要作用,無論是在工農(nóng)生產(chǎn)、交通運(yùn)輸、國(guó)防宇航、醫(yī)療衛(wèi)生、商務(wù)與辦公設(shè)備,還是日常生活中的家用電器,都大量的使用著各種各樣的電機(jī),如汽車、電視機(jī)、電風(fēng)扇、空調(diào)等等也離不開電機(jī)。同時(shí),在越來越多的應(yīng)用場(chǎng)合,只能旋轉(zhuǎn)的電機(jī)己無法滿足要求,而是要求能夠?qū)崿F(xiàn)快速加速、減速或反轉(zhuǎn)以及準(zhǔn)確停止等功能。必須尋找新的電機(jī)控制器來適應(yīng)時(shí)代的發(fā)展。
電機(jī)的控制器經(jīng)歷了從模擬控制器到數(shù)字控制器的發(fā)展。由于模擬器件的參數(shù)受外界影響大,而且精度也較差。數(shù)字控制器與模擬控制器相比較,具有可靠性高、參數(shù)調(diào)整方便、控制精度高、對(duì)環(huán)境因素不敏感等優(yōu)點(diǎn)。隨著工業(yè)電氣化、自動(dòng)控制和家電產(chǎn)品等領(lǐng)域?qū)﹄姍C(jī)控制產(chǎn)品的需求,人們對(duì)電機(jī)控制技術(shù)的要求有所提高。由于傳統(tǒng)的8位單片機(jī)其內(nèi)部體系結(jié)構(gòu)和計(jì)算功能等條件限制,在實(shí)現(xiàn)各種先進(jìn)的電機(jī)控制理論和高效的控制算法時(shí)遇到了困難。因此,目前最為普遍的做法是使用高性能的數(shù)字信號(hào)處理器(DSP)來解決電機(jī)控制器不斷增加的計(jì)算量和速度的需求。將一系列外圍設(shè)備如模數(shù)轉(zhuǎn)換器、脈寬調(diào)制發(fā)生器、和數(shù)字信號(hào)處理器集成在一起組成復(fù)雜的電機(jī)控制系統(tǒng)。隨著EDA技術(shù)的發(fā)展,用基于現(xiàn)場(chǎng)可編程門陣列FPGA的數(shù)字電子系統(tǒng)對(duì)電機(jī)進(jìn)行控制,為實(shí)現(xiàn)電動(dòng)機(jī)數(shù)字控制提供了一種新的有效方法�,F(xiàn)場(chǎng)可編程門陣列(FPGA)器件集成度高、體積小、速度快,以硬件電路實(shí)現(xiàn)算法程序,將原來的電路板級(jí)產(chǎn)品集成為芯片級(jí)產(chǎn)品,從而降低了功耗,提高了可靠性。
電動(dòng)機(jī)調(diào)速系統(tǒng)采用FPGA實(shí)現(xiàn)數(shù)字化控制,是電氣傳動(dòng)發(fā)展的主要趨勢(shì)。采用FPGA控制后,整個(gè)調(diào)速系統(tǒng)能夠?qū)崿F(xiàn)快速加速、減速或正/反轉(zhuǎn)以及準(zhǔn)確停止、在線調(diào)速等功能,操作維護(hù)方便,電動(dòng)機(jī)穩(wěn)態(tài)運(yùn)轉(zhuǎn)時(shí)轉(zhuǎn)速精度可達(dá)到較高水平,靜動(dòng)態(tài)各項(xiàng)指標(biāo)均能較好地滿足工業(yè)生產(chǎn)中高性能電氣傳動(dòng)的要求。由于FPGA的 外部連線少,電路簡(jiǎn)單,便于控制,具有較佳的性能價(jià)格比,所以在工業(yè)過程及設(shè)備控制中得到日益廣泛的應(yīng)用[1]。
直流電機(jī)大多數(shù)采用PWM(脈寬調(diào)制)的方法進(jìn)行控制,它有兩種模式:一種是采用模擬電路控制,另一種是采用數(shù)字的控制。模擬控制由于其調(diào)試復(fù)雜等固有原因,正逐漸被淘汰。而在數(shù)字控制技術(shù)中,F(xiàn)PGA的數(shù)字PWM控制具有精度高,反應(yīng)快,外部連線少,電路簡(jiǎn)單,便于控制等優(yōu)點(diǎn)廣泛的被人們使用,應(yīng)而研究FPGA具有十分重要的意義。對(duì)于本次設(shè)計(jì)目的在于:
(2)通過對(duì)本課題的研究,掌握EDA開發(fā)技術(shù)的編程方法,培養(yǎng)創(chuàng)新意識(shí)和理論聯(lián)系實(shí)際的學(xué)風(fēng)。熟悉現(xiàn)代電子產(chǎn)品的設(shè)計(jì)流程。
FPGA用于控制領(lǐng)域特別是電機(jī)控制還是比較少的,本設(shè)計(jì)為電機(jī)控制系統(tǒng)提供一種的控制技術(shù),在電機(jī)控制方面作了一些片內(nèi)系統(tǒng)的初步研究。本設(shè)計(jì)利用ALTERA公司的FPGA芯片—FLEX10K10作為目標(biāo)器件來控制直流電機(jī),講解了MAX+Plus II設(shè)計(jì)流程,分析了現(xiàn)代電子產(chǎn)品的設(shè)計(jì)方法,并初步研究了FPGA產(chǎn)生PWM信號(hào)的方法。
本設(shè)計(jì)將電機(jī)控制所使用的一些基本功能盡可能地集成在一片F(xiàn)PGA上,本設(shè)計(jì)論述了利用FPGA對(duì)直流電機(jī)進(jìn)行控制時(shí)所起的各部分功能—PWM波的產(chǎn)生、在線調(diào)速、正反向控制邏輯,并利用硬件描述語言對(duì)PWM波在FPGA中進(jìn)行組合邏輯變換,并進(jìn)行仿真。
在國(guó)外,PWM源于上世紀(jì)九十年代,其思想源于通信技術(shù),但隨著現(xiàn)代電子技術(shù)的發(fā)展使得PWM理論越來越成熟,其發(fā)展的速度越來越快速。已經(jīng)取代傳統(tǒng)的可控硅電機(jī)調(diào)速系統(tǒng)。由原先的“電機(jī)控制”“電氣傳動(dòng)”已發(fā)展到“運(yùn)動(dòng)控制”的新階段。IGBT、電力MOSFET等為代表的全控型器件的不斷完善給PWM控制技術(shù)提供了強(qiáng)大的物質(zhì)基礎(chǔ)。
在國(guó)內(nèi)PWM有理論基礎(chǔ)逐漸成熟,但在應(yīng)用上,國(guó)內(nèi)外差距也很大。PWM調(diào)速系統(tǒng)的應(yīng)用是近年來才開始的,原因是我國(guó)的電子工業(yè)的基礎(chǔ)比較差。PWM調(diào)速系統(tǒng)中所需的關(guān)鍵部件IGOT管靠進(jìn)口。近年來,我國(guó)已開發(fā)出具有自主知識(shí)產(chǎn)權(quán)的IGOT大電流晶體管,從而為該技術(shù)推行奠定了物質(zhì)基礎(chǔ)。PWM電機(jī)調(diào)速方案是未來電機(jī)拖動(dòng)系統(tǒng)的首選方案,是實(shí)現(xiàn)電機(jī)拖動(dòng)數(shù)字控制的基礎(chǔ)[2]。
本設(shè)計(jì)提出了兩種控制方案:一種是基于單片機(jī)的直流電機(jī)控制,另一種是基于FPGA的直流電機(jī)控制,通過方案的論證與比較,采用后者調(diào)速方案。
本設(shè)計(jì)的主要內(nèi)容是掌握基于FPGA的直流電機(jī)PWM控制原理,設(shè)計(jì)具有正/反轉(zhuǎn)、起/�?刂乒δ�、速度在線可調(diào)的直流電機(jī)控制裝置。通過對(duì)直流電機(jī)控制的研究,掌握EDA開發(fā)技術(shù)。
本設(shè)計(jì)詳細(xì)的分析了直流的結(jié)構(gòu)、主要技術(shù)參數(shù)、工作原理和調(diào)速原理,基于FPGA的PWM波形產(chǎn)生的過程,并用VHDL描述PWM波形。本設(shè)計(jì)的所有功能均在ALTERA公司的MAX+Plus II軟件下通過仿真。本設(shè)計(jì)對(duì)PWM波形數(shù)據(jù)進(jìn)行測(cè)試與詳細(xì)的分析。
其工作原理是:設(shè)定值計(jì)數(shù)器的設(shè)置PWM的占空比。當(dāng)U/D=1時(shí),輸入CLK2,使設(shè)定值計(jì)數(shù)器的輸出值增加, PWM的占空比增加,電機(jī)轉(zhuǎn)速加快;當(dāng)U/D =0時(shí),輸入CLK2,使設(shè)定值計(jì)數(shù)器的輸出值減小,PWM的占空比減小,電機(jī)轉(zhuǎn)速變慢。
在CLK0的作用下,鋸齒波計(jì)數(shù)器輸出周期性線性增加的鋸齒波。當(dāng)計(jì)數(shù)值小于設(shè)定值時(shí),數(shù)字比較器輸出高電平;當(dāng)計(jì)數(shù)值大于設(shè)定值時(shí),數(shù)字比較器輸出低電平,由此產(chǎn)生周期性的PWM波形。
旋轉(zhuǎn)方向控制電路控制直流電動(dòng)機(jī)轉(zhuǎn)向和啟/停,該電路由兩個(gè)2選1的多路選擇器組成,Z/F鍵控制選擇PWM波形是從正端Z進(jìn)入H橋,還是從負(fù)端F進(jìn)入H橋,以控制電機(jī)的旋轉(zhuǎn)方向。當(dāng)Z/F=1時(shí),PWM輸出波形從正端Z進(jìn)入H橋,電機(jī)正轉(zhuǎn)。當(dāng) Z/F =0時(shí),PWM輸出波形從負(fù)端F進(jìn)入H橋,電機(jī)反轉(zhuǎn)。
Start鍵通過“與”門控制PWM輸出,實(shí)現(xiàn)對(duì)電機(jī)的工作停止/控制。當(dāng)START=1時(shí),與門打開,允許電機(jī)工作。當(dāng)START=0時(shí),與門關(guān)閉,電機(jī)停止轉(zhuǎn)動(dòng)。
H橋電路由大功率晶體管組成,PWM輸出波形通過方向控制電路送到 H 橋, 經(jīng)功率放大以后對(duì)直流電機(jī)實(shí)現(xiàn)四象限運(yùn)行。并由EN1信號(hào)控制是否允許變速[4]。
與基于單片機(jī)的直流電機(jī)PWM調(diào)速方案相比,基于FPGA的直流電機(jī)PWM控制省去了外接的D/A轉(zhuǎn)換器和模擬比較器,F(xiàn)PGA外部連線很少,電路更加簡(jiǎn)單,便于控制。兼于FPGA的直流電機(jī)PWM控制具有精度高,反應(yīng)快,外部連線少,電路簡(jiǎn)單,便于控制等優(yōu)點(diǎn),因此本設(shè)計(jì)采用基于FPGA的直流電機(jī)PWM控制方案[2]。
如圖3.1所示,基于FPGA的直流電機(jī)PWM控制電路主要由四部分組成:控制命令輸入模塊、控制命令處理模塊、控制命令輸出模塊、電源模塊。鍵盤電路、時(shí)鐘電路是系統(tǒng)的控制命令輸入模塊,向FPGA芯片發(fā)送命令,F(xiàn)PGA芯片是系統(tǒng)控制命令的處理模塊,負(fù)責(zé)接收、處理輸入命令并向控制命令輸出模塊發(fā)出PWM信號(hào),是系統(tǒng)的控制核心�?刂泼钶敵瞿K由H型橋式直流電機(jī)驅(qū)動(dòng)電路組成,它負(fù)責(zé)接收由FPGA芯片發(fā)出的PWM信號(hào),從而控制直流電機(jī)的正反轉(zhuǎn)、加速以及在線調(diào)速。電源模塊負(fù)責(zé)給整個(gè)電路供電,保證電路能夠正常的運(yùn)行。
START是電機(jī)的開啟端,U_D控制電機(jī)加速與減速,EN1用于設(shè)定電機(jī)轉(zhuǎn)速的初值,Z_F是電機(jī)的方向端口,選擇電機(jī)運(yùn)行的方向。CLK2和CLK0是外部時(shí)鐘端,其主要作用是向FPGA控制系統(tǒng)提供時(shí)鐘脈沖,控制電機(jī)進(jìn)行運(yùn)轉(zhuǎn)。
通過鍵盤設(shè)置PWM信號(hào)的占空比。當(dāng)U_D=1時(shí), 表明鍵U_D按下,輸入CLK2使電機(jī)轉(zhuǎn)速加快;當(dāng)U/D =0,表明鍵U_D松開,輸入CLK2使電機(jī)轉(zhuǎn)速變慢,這樣就可以實(shí)現(xiàn)電機(jī)的加速與減速。
Z_F鍵是電機(jī)運(yùn)轉(zhuǎn)的方向按鍵,當(dāng)把Z_F鍵按下時(shí),Z_F=1,電機(jī)正轉(zhuǎn);反之Z/F =0時(shí),電機(jī)反轉(zhuǎn)。
START是電機(jī)的開啟鍵,當(dāng)START=1,允許電機(jī)工作;當(dāng)START=0時(shí),電機(jī)停止轉(zhuǎn)動(dòng)。
H橋電路由大功率晶體管組成,PWM輸出波形通過由兩個(gè)二選一電路組成的方向控制電路送到 H 橋, 經(jīng)功率放大以后對(duì)直流電機(jī)實(shí)現(xiàn)四象限運(yùn)行。并由EN1信號(hào)控制是否允許變速[5]。
鍵盤電路有兩種類型,其中一種是獨(dú)立式鍵盤電路。獨(dú)立式鍵盤電路結(jié)構(gòu)簡(jiǎn)單、操作方便,在目前這種結(jié)構(gòu)的鍵盤應(yīng)用還非常普遍。只是這種鍵盤電路的每個(gè)按鍵都要占用一根I/O口線,這樣的話,隨著按鍵的增加將使I/O口線不足。因此,這種鍵盤電路只有在按鍵比較少的情況下比較適用。另一種鍵盤電路是矩陣式鍵盤電路,這種鍵盤電路的按鍵設(shè)置在行線和列線的交叉點(diǎn)上,因此在有限的I/O口線上可以設(shè)置比較多的按鍵。只是這種鍵盤電路結(jié)構(gòu)、編程都比較復(fù)雜。在鍵盤電路中,往往可以與一個(gè)與非門電路構(gòu)成帶中斷的鍵盤電路。這種鍵盤電路上的每個(gè)按鍵可以單獨(dú)工作,而且響應(yīng)時(shí)間快。這種帶中斷式的鍵盤電路現(xiàn)在應(yīng)用已經(jīng)相當(dāng)?shù)钠毡椤?/strong>如圖3.2所示,所采用的鍵盤電路是獨(dú)立式鍵盤電路。其4個(gè)功能鍵SB1-SB4連線分別接在FPGA控制系統(tǒng)的4個(gè)端口上,并分別往上各引一條接線串一個(gè)1KΩ的上拉電阻接在+5V電源上。當(dāng)4個(gè)鍵都沒有被按下去時(shí),對(duì)應(yīng)的各條列線全部為高電平,在CMOS非門的作用下每個(gè)端口的電平為低電平。其中一個(gè)按鈕按下去時(shí),其對(duì)應(yīng)的輸出端口在非門的作用下由低電平變?yōu)楦唠娖剑瑥亩鴨?dòng)相應(yīng)的功能。圖3.2 鍵盤電路
在鍵盤電路設(shè)計(jì)中,需要解決按鍵抖動(dòng)的問題。多數(shù)鍵盤的按鍵均采用機(jī)械彈性開關(guān),一個(gè)電信號(hào)通過機(jī)械觸點(diǎn)的斷開、閉合過程,完成高低電平的切換。由于機(jī)械觸點(diǎn)的彈性作用,一個(gè)按鍵開關(guān)在閉合和斷開的瞬間必然伴隨一連串的抖動(dòng)。為了排除抖動(dòng)的影響,在按鍵和輸出端并上一個(gè)電阻、一個(gè)電容。如圖3.3所示。圖3.3 濾波防抖動(dòng)電路
由圖可知,當(dāng)鍵SB1未按下時(shí),電容C兩端的電壓均為1,非門輸出為0。當(dāng)鍵SB1按下時(shí),由于C兩端電壓不可能產(chǎn)生突變。盡管接觸過程中可能出現(xiàn)抖動(dòng),只要適當(dāng)?shù)倪x擇R和C值,即可保證電容C兩端的放電電壓波動(dòng)不會(huì)超過非門的開啟電壓(TTL為0.8V),非門的輸出將維持低電平。同理,當(dāng)觸點(diǎn)K斷開時(shí),由于電容C經(jīng)過R2充電,C兩端的充電電壓波動(dòng)不會(huì)超過非門的關(guān)閉電壓,因此,非門的輸出也不會(huì)改變[9],從而達(dá)到防抖動(dòng)的效果。
3.3 系統(tǒng)時(shí)鐘電路設(shè)計(jì)FPGA是在系統(tǒng)時(shí)鐘脈沖作用下進(jìn)行的,在FPGA應(yīng)用系統(tǒng)中,要求采用石英晶振作為時(shí)鐘脈沖,如圖3.4所示,是采用有源石英晶振構(gòu)成的系統(tǒng)時(shí)鐘電路。在該電路中,1腳懸空,2腳接地,3腳接輸出,4腳接電源。3腳時(shí)鐘脈沖輸出后接在FPGA的CLK0時(shí)鐘端,另一路經(jīng)二分頻電路進(jìn)行分頻后接在CLK2時(shí)鐘端。在CLK0和CLK2的共同作用下,系統(tǒng)進(jìn)行工作。
時(shí)鐘輸入是系統(tǒng)電路中必不可少的一部分,它能為FPGA提供時(shí)鐘脈沖信號(hào),考慮到EDA開發(fā)系統(tǒng)時(shí)鐘輸入的重要性,一個(gè)是50MHz的有源晶振作為時(shí)鐘信號(hào)源輸入,主要用于輸入大的時(shí)鐘信號(hào),為波形發(fā)生器提供基準(zhǔn)的時(shí)鐘脈沖輸入。
圖3.4 時(shí)鐘電路圖
有源晶振的驅(qū)動(dòng)能力強(qiáng),晶振頻率比較大,能達(dá)到幾百兆Hz,采用有源晶振作為時(shí)鐘源可以使電路的時(shí)鐘擴(kuò)大。HO-12系列的有源晶振采用TTL/HCMOS技術(shù),頻率范圍是1000Hz-1000MHz,這里我們采用的是100MHz的有源晶振。
把D觸發(fā)器的輸出

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