找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 15554|回復(fù): 1
收起左側(cè)

直流電機(jī)PWM控制的FPGA實(shí)現(xiàn)論文與仿真源碼等全套資料

[復(fù)制鏈接]
ID:290266 發(fā)表于 2018-4-18 03:17 | 顯示全部樓層 |閱讀模式
課題名稱直流電機(jī)PWM控制的FPGA實(shí)現(xiàn)         
摘 要
文章詳細(xì)地介紹了直流電機(jī)的類型、結(jié)構(gòu)、工作原理、PWM調(diào)速原理以及FPGA集成芯片。并對(duì)直流電機(jī)PWM調(diào)速系統(tǒng)方案的組成、硬件電路設(shè)計(jì)、程序設(shè)計(jì)及系統(tǒng)仿真分別進(jìn)行了詳細(xì)的敘述。擬開發(fā)的直流電機(jī)PWM調(diào)速裝置具有調(diào)速范圍寬、低功耗、可實(shí)現(xiàn)在線調(diào)試等特點(diǎn)。本系統(tǒng)是以FPGA為其控制核心,輸入電路以鍵盤作為輸入方式向FPGA控制系統(tǒng)發(fā)出控制命令,以有源晶振構(gòu)成的時(shí)鐘電路發(fā)出信號(hào)�?刂葡到y(tǒng)接收命令后直接向H型橋式驅(qū)動(dòng)電路發(fā)出PWM控制信號(hào)。輸出電路主要實(shí)現(xiàn)正反轉(zhuǎn)、起停控制、速度在線可調(diào)功能。本設(shè)計(jì)已通過了實(shí)驗(yàn)仿真。

Abstract
This paper introduces clearly the construction and the principle of DC Motor and the principle of the Speed Control based on PWM and integrated FPGA chip.And describes detailly and operately the program of DC Motor speed control based on PWM how to be formed and the design of the hardware circuit ,the design and the System Simulation .The device of DC Motor speed control based on PWM being invented has the follow characteristics : wide speed control range, low power idle, debugging on line and so on, at the same time , it can achieve the automation .The control center of the system is the FPGA, and the input circuit delivers the orders over the keyboard as its input method to the FPGA adopting the way of the Breach. While quartz crystal clock circuit and inverter which is consisted of harmonic oscillator clock signal sent to the system ,when the FPGA receives the orders,and later sends the PWM signal to the output circuit ,witch is the line-clectric ouhe circuit and the H board bridge drive circuit .The output circuit chiefly controls DC Motor to move in the clockwise or the other direction .The design has been tested through the experiment ,and the program is debugged successfully.

目錄
摘 要
Abstract
1 前言
1.1 課題的來源
1.2 課題研究的目的和意義
1.3 課題國(guó)內(nèi)外研究現(xiàn)狀
1.4 課題研究的主要內(nèi)容
2 直流電機(jī)PWM調(diào)速系統(tǒng)方案設(shè)計(jì)
2.1 直流電機(jī)
2.2 直流電機(jī)調(diào)速原理
2.4 基于單片機(jī)的直流電機(jī)PWM調(diào)速方案
2.5 基于FPGA的直流電機(jī)調(diào)速方案
2.6 方案論證
3 直流電機(jī)PWM調(diào)速控制電路設(shè)計(jì)
3.1 系統(tǒng)工作原理
3.2 鍵盤電路設(shè)計(jì)
3.3 系統(tǒng)時(shí)鐘電路設(shè)計(jì)
3.4 H型橋式驅(qū)動(dòng)電路設(shè)計(jì)
3.5 電源電路設(shè)計(jì)
3.6 主要元器件簡(jiǎn)介
4 控制邏輯VHDL描述
4.1 VHDL硬件描述語言
4.2 FPGA內(nèi)部邏輯組成
4.3 PWM脈寬調(diào)制信號(hào)產(chǎn)生電路描述
4.4 運(yùn)行控制邏輯電路描述
5 直流電機(jī)PWM調(diào)速系統(tǒng)仿真
5.1 FPGA開發(fā)環(huán)境的介紹
5.2 建立工程項(xiàng)目
5.3 正/反轉(zhuǎn)控制仿真
5.4 啟/�?刂品抡�
5.5 加/減速仿真
5.6 仿真結(jié)果分析
6 總結(jié)
參考文獻(xiàn)
致謝
1





1 前言1.1 課題的來源
電機(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]。
1.2 課題研究的目的和意義
直流電機(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ì)目的在于:
(1)掌握基于FPGA的直流電機(jī)PWM控制原理,學(xué)會(huì)應(yīng)用EDA技術(shù)進(jìn)行編程
(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)行仿真。
1.3 課題國(guó)內(nèi)外研究現(xià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]。
1.4 課題研究的主要內(nèi)容
本設(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ì)的分析。

2 直流電機(jī)PWM調(diào)速系統(tǒng)方案設(shè)計(jì)電機(jī)可分為變壓器、異步電機(jī)、同步電機(jī)和直流電機(jī)四個(gè)機(jī)種。其中變壓器是靜止的電氣設(shè)備,其余均為旋轉(zhuǎn)電機(jī)。異步電機(jī)和同步電機(jī)均為交流電機(jī)。在本次設(shè)計(jì)中用到的是直流電機(jī),直流電機(jī)是實(shí)現(xiàn)直流電能與機(jī)械能轉(zhuǎn)的裝置[1]。以下詳細(xì)介紹了直流電機(jī)的基本結(jié)構(gòu)、工作原理、主要技術(shù)參數(shù)和調(diào)速原理。2.1 直流電機(jī)2.1.1 直流電機(jī)基本結(jié)構(gòu)直流電機(jī)由定子(靜止部分)和轉(zhuǎn)子(轉(zhuǎn)動(dòng)部分)兩大部分組成。
2.1 直流電機(jī)的結(jié)構(gòu)
(1)定子部分定子部分包括機(jī)座、主磁極、換向極和電刷裝置等。①機(jī)座機(jī)座有兩個(gè)作用,一是作為電機(jī)磁路系統(tǒng)中的一部分,二是用來固定主磁極、換向極及端蓋等,起機(jī)械支承的作用。因此要求機(jī)座有好的導(dǎo)磁性能及足夠的機(jī)械強(qiáng)度和剛座,機(jī)座通常用鑄鋼或厚鋼板焊成。②主磁極在大多數(shù)直流電機(jī)中,主磁極是電磁鐵,如圖2.1的N、S就是主磁極,主磁極鐵芯用1~1.5mm厚的低碳鋼板疊加而成,整個(gè)磁級(jí)用螺釘固定在機(jī)座上。主磁極的作用是在定轉(zhuǎn)子之間的氣隙中建立磁場(chǎng),使電樞繞組在此磁場(chǎng)的作用下感應(yīng)電動(dòng)勢(shì)和產(chǎn)生電磁轉(zhuǎn)矩。③換向極換向極又稱附加極或間極,其作用是以改善換向。換向極裝在相鄰兩主磁極N、S之間,由鐵心和繞組構(gòu)成。鐵芯一般用整塊鋼或鋼板加工而成。換向極繞組與電樞繞組串聯(lián)。④電刷裝置在圖2.1中,A、B表示電刷。它的作用是把轉(zhuǎn)動(dòng)的電樞繞組與靜止的外電路相連接,并與換向器相配合,起到整流或逆變器的作用。(2)轉(zhuǎn)子部分直流電機(jī)的轉(zhuǎn)子稱為電樞,包括電樞鐵芯、電樞繞組、換向器、風(fēng)扇、軸和軸承等。①電樞鐵芯電樞鐵芯是電機(jī)主磁路的一部分,且用來嵌放電樞繞組。為了減少電樞旋轉(zhuǎn)時(shí)電樞鐵芯中因磁通變化而引起的磁滯及渦流損耗,電樞鐵心通常用0.5mm厚的兩面涂有絕緣漆的硅鋼片疊加而成。②電樞繞組電樞繞組是由許多按一定規(guī)律連接的線圈組成,它是直流電機(jī)的主要電路部分,也是通過電流和感應(yīng)電動(dòng)勢(shì),從而實(shí)現(xiàn)機(jī)電能量轉(zhuǎn)換的關(guān)鍵部件。線圈用包有絕緣的導(dǎo)線繞制而成,嵌放在電樞槽中。每個(gè)線圈(也稱元件)有兩個(gè)出線端,分別接到換向器的兩個(gè)換向片上。所有線圈按一定規(guī)律連接成一閉合回路。③換向器換向器也是直流電機(jī)的重要部件。在直流電動(dòng)機(jī)中,它將電刷上的直流電流轉(zhuǎn)換成繞組內(nèi)的交流電流;在直流發(fā)電機(jī)中,它將繞組內(nèi)的交流電動(dòng)勢(shì)轉(zhuǎn)換成電刷端上的直流電動(dòng)勢(shì)。換向器由許多換向片組成,每片之間相互絕緣。換向片數(shù)與線圈元件數(shù)相同。2.1.2 直流電機(jī)工作原理直流電機(jī)的工作原理建立在電磁力和電磁感應(yīng)的基礎(chǔ)上,從圖2.1可以看出主磁極N、S間裝著一個(gè)可以轉(zhuǎn)動(dòng)的鐵磁圓柱體,圓柱體的表面上固定著一個(gè)線圈abcd。abcd是裝在可以轉(zhuǎn)動(dòng)的鐵磁圓柱上的一個(gè)線圈,把線圈的兩端分別接到兩個(gè)圓弧形的銅片上(簡(jiǎn)稱換向片),兩者相互絕緣,鐵芯和線圈合稱電樞。當(dāng)線圈中通入直流電流時(shí),線圈邊上受到電磁力F=Bli根據(jù)左手定則確定力的方向,這一對(duì)電磁力形成了作用于電樞的一個(gè)電磁轉(zhuǎn)矩,轉(zhuǎn)矩的方向是逆時(shí)針方向。若電樞轉(zhuǎn)動(dòng),線圈兩邊的位置互換,而線圈中通過的還是直流電流,則所產(chǎn)生的電磁轉(zhuǎn)矩的方向則變?yōu)轫槙r(shí)針方向,因此電樞受到一種方向交變的電磁轉(zhuǎn)矩。這種交變的電磁轉(zhuǎn)矩只能使電樞來回?fù)u擺,而不能使電樞連續(xù)轉(zhuǎn)動(dòng)。顯然,要使電樞受到一個(gè)方向不變的電磁轉(zhuǎn)矩,關(guān)鍵在于,當(dāng)線圈邊在不同極性的磁極下,如何將流過線圈中的電流方向及時(shí)地加以變換,即進(jìn)行所謂“換向”。為此必須增添一個(gè)叫做換向器的裝置,換向器由互相絕緣的銅質(zhì)換向片構(gòu)成,裝在軸上,也和電樞絕緣,且和電樞一起旋轉(zhuǎn)。換向器又與兩個(gè)固定不動(dòng)的由石墨制成的電刷A、B相接觸。裝了這種換向器以后,若將直流電壓加于電刷端,直流電流經(jīng)電刷流過電樞上的線圈,則產(chǎn)生電磁轉(zhuǎn)矩,電樞在電磁轉(zhuǎn)矩的作用下就旋轉(zhuǎn)起來。電樞一經(jīng)轉(zhuǎn)動(dòng),由于換向器配合電刷對(duì)電流的換向作用,直流電流交替地由線圈邊ab和cd流入,使線圈邊只要處于N極下,其中通過電流的方向總是由電刷A流入的方向,而在S極下時(shí),總是從電刷B流出的方向。這就保證了每個(gè)極下線圈邊中的電流始終是一個(gè)方向。這樣的結(jié)構(gòu),就可使電動(dòng)機(jī)能連續(xù)地旋轉(zhuǎn)。這就是直流電機(jī)的基本工作原理[3]。2.1.3 直流電機(jī)主要技術(shù)參數(shù)為了使電機(jī)安全可靠地工作,且保持優(yōu)良的運(yùn)行性能,電機(jī)廠家根據(jù)國(guó)家標(biāo)準(zhǔn)及電機(jī)的設(shè)計(jì)數(shù)據(jù),對(duì)每臺(tái)電機(jī)在運(yùn)行中的電壓,電流,功率,轉(zhuǎn)速等規(guī)定了保證值,這些保證值就是直流電機(jī)的主要技術(shù)參數(shù),直流電機(jī)的主要技術(shù)參數(shù)有:直流電機(jī)的轉(zhuǎn)速,是指電機(jī)實(shí)際轉(zhuǎn)動(dòng)的速度n;  
n =Ua-IR/CeΦ                  (2.1)
Ua為電樞電動(dòng)勢(shì),Ce為電動(dòng)勢(shì)常數(shù),Φ是磁通量。
額定功率(容量)PN,是指電刷輸出的電功率,單位為kW;
PN=UNIN                                 (2.2)
額定電壓UN,指額定狀態(tài)下電樞出線端的電壓,單位為V;額定電流IN,指電機(jī)在額定電壓、額定功率時(shí)的電樞電流值,單位為A;額定轉(zhuǎn)速ηN,指額定狀態(tài)下運(yùn)行時(shí)轉(zhuǎn)子的轉(zhuǎn)速,單位為r/min;
ηN =PN/UNIN                            (2.3)
2.2 直流電機(jī)調(diào)速原理2.2.1 直流電機(jī)電壓調(diào)速原理
圖2.2為按電機(jī)慣例標(biāo)定的直流電機(jī)穩(wěn)定運(yùn)行量各物理量的正方向。由圖可見電機(jī)的電樞電動(dòng)勢(shì)Ea的正方向與電樞電流Ia的方向相反,為反電動(dòng)勢(shì);電磁轉(zhuǎn)矩T的正方向與轉(zhuǎn)速n的方向相同,是拖動(dòng)轉(zhuǎn)矩;軸上的機(jī)械負(fù)載轉(zhuǎn)矩T2及空載轉(zhuǎn)矩T0均與n相反,是制動(dòng)轉(zhuǎn)矩。
根據(jù)基爾霍夫第二定律,對(duì)圖2.2的電樞回路列回路電壓方程可得直流電動(dòng)的電動(dòng)勢(shì)平衡方程式:
         U=Ea-Ia(Ra+Rc)                (2.4)
式2.4中,Ra為電樞回路電阻,電樞回路串聯(lián)保繞阻與電刷接觸電阻的總和;Rc是外接在電樞回路中的調(diào)節(jié)電阻。   由此可得到直流電機(jī)的轉(zhuǎn)速公式為:  
        n =Ua-IR/CeΦ                    (2.5)
式中,Ce為電動(dòng)勢(shì)常數(shù),Φ是磁通量。    由1.1式和1.2式得        n =Ea/Ce                          2.6從由式子2.6中可以看出,對(duì)于一個(gè)已經(jīng)制造好的電機(jī),當(dāng)勵(lì)磁電壓和負(fù)載轉(zhuǎn)矩恒定時(shí),它的轉(zhuǎn)速由電樞電壓Ea決定,電樞電壓越高,電機(jī)轉(zhuǎn)速就越快,電樞電壓降低到0V時(shí),電機(jī)就停止轉(zhuǎn)動(dòng);改變電樞電壓的極性,電機(jī)就反轉(zhuǎn)�?傊姍C(jī)的調(diào)速可以通過控制電樞電壓實(shí)現(xiàn)[3]。
圖2.3 PWM調(diào)速原理
2.2.2 直流電機(jī)PWM調(diào)速原理所謂脈沖寬度調(diào)制是指用改變電機(jī)電樞電壓接通與斷開的時(shí)間的的占空比來控制電機(jī)轉(zhuǎn)速的方法,稱為脈沖寬度調(diào)制(PWM)。對(duì)于直流電機(jī)調(diào)速系統(tǒng),使用FPGA進(jìn)行調(diào)速是極為方便的。其方法是通過改變電機(jī)電樞電壓導(dǎo)通時(shí)間與通電時(shí)間的比值(即占空比)來控制電機(jī)速度。PWM調(diào)速原理如圖2.3所示。在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加;電機(jī)斷電時(shí),速度逐漸減少。只要按一定規(guī)律,改變通、斷電時(shí)間,即可讓電機(jī)轉(zhuǎn)速得到控制。設(shè)電機(jī)永遠(yuǎn)接通電源時(shí),其轉(zhuǎn)速最大為Vmax,設(shè)占空比為D=t1/T,則電機(jī)的平均速度為                        Vd=Vmax·D                            2.7式中,Vd——電機(jī)的平均速度      Vmax——電機(jī)全通時(shí)的速度(最大)      D=t1/T——占空比              平均速度Vd與占空比D的函數(shù)曲線,如圖2.4所示。
圖2.4 平均速度和占空比的關(guān)系
由圖2.4所示可以看出,Vd與占空比D并不是完全線性關(guān)系(圖中實(shí)線),當(dāng)系統(tǒng)允許時(shí),可以將其近似地看成線性關(guān)系(圖中虛線)。因此也就可以看成電機(jī)電樞電壓Ua與占空比D成正比,改變占空比的大小即可控制電機(jī)的速度。由以上敘述可知:電機(jī)的轉(zhuǎn)速與電機(jī)電樞電壓成比例,而電機(jī)電樞電壓與控制波形的占空比成正比,因此電機(jī)的速度與占空比成比例,占空比越大,電機(jī)轉(zhuǎn)得越快,當(dāng)占空比α1時(shí),電機(jī)轉(zhuǎn)速最大。2.4 基于單片機(jī)的直流電機(jī)PWM調(diào)速方案
圖 2.5 基于單片機(jī)控制的PWM調(diào)速系統(tǒng)
如圖2.5所示為基于單片機(jī)的直流電機(jī)PWM調(diào)速方案的系統(tǒng)方框圖。D/A轉(zhuǎn)換器接在單片機(jī)AT89C51的P0引腳上,由軟件編程的產(chǎn)生的信號(hào)從P0腳輸出經(jīng)D/A轉(zhuǎn)換器后輸出周期性線性增加的鋸齒波電壓,同時(shí)在模擬比較器另一端接給定的參考電壓。當(dāng)鋸齒波電壓小于參考電壓時(shí)輸出低電平,當(dāng)鋸齒波電壓大于參考電壓時(shí)輸出高電平。改變滑動(dòng)電阻的值便可以改變參考電壓的大小,從而改變PWM波形中高電平的寬度,改變直流電機(jī)的占空比,改變直流電機(jī)的速度。關(guān)于電機(jī)運(yùn)動(dòng)方向控制,本設(shè)計(jì)在單片機(jī)的P2口引出兩個(gè)端口P2.1、P2.2控制直流的方向。其控制的原理是在PWM波形輸出端加上兩個(gè)與門,其分別與電機(jī)的方向控制端P2.1、P2.2相與,其具體的連接如圖2.5。當(dāng)P2.1、P2.2輸出02H控制模型P2.1=1P2.2=0時(shí),三極管V1和V4導(dǎo)通,V2和V3截止,電機(jī)全速正轉(zhuǎn)。當(dāng)P2.1P2.2輸出01H模型(P2.1=0,P2.2=1)時(shí),V1和V4截止,V2和V3導(dǎo)通,電機(jī)全速反轉(zhuǎn)。在這里需要注意的問題的是,當(dāng)輸出全為1時(shí),電機(jī)剎車,全為0時(shí),電機(jī)滑行。工作狀態(tài)表如下:
表1 電機(jī)工作狀態(tài)真值表
P2.1
P2.2
狀態(tài)
V1
V2
V3
V4
1
0
正轉(zhuǎn)
1
0
0
1
0
1
反轉(zhuǎn)
0
1
1
0
1
1
剎車
1
1
1
1
0
0
滑行
0
0
0
0

從以上的分析可知基于單片機(jī)的直流電機(jī)PWM調(diào)速方案要用到D/A轉(zhuǎn)換器、模擬比較器,外圍電路比較復(fù)雜。2.5 基于FPGA的直流電機(jī)調(diào)速方案
圖 2.6 基于FPGA的直流電機(jī)調(diào)速系統(tǒng)
如圖2.6所示為基于FPGA的直流電機(jī)調(diào)速方案的方框圖,F(xiàn)PGA中的數(shù)字PWM控制基于單片機(jī)PWM控制不同,用FPGA產(chǎn)生PWM波形,只需要FPGA內(nèi)部資源就可以實(shí)現(xiàn),如數(shù)字比較器、鋸齒波發(fā)生器等均為FPGA內(nèi)部資源,我們只要直接調(diào)用就可以。外部端口U_D、EN1、Z/F、START接在鍵盤電路上,CLK2和CLK0接在外部時(shí)鐘電路上,所用到的時(shí)鐘頻率為100MHz和50MHz其具體的連接方式如圖3.1。
其工作原理是:設(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]。
2.6 方案論證
與基于單片機(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 直流電機(jī)PWM調(diào)速控制電路設(shè)計(jì)
如圖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)行。
圖3.1  FPGA直流電機(jī)PWM 控制電路
3.1 系統(tǒng)工作原理
在圖3.1中所示的FPGA是根據(jù)設(shè)計(jì)要求設(shè)計(jì)好的一個(gè)芯片,其內(nèi)部邏輯電路如圖4.1。
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]。
3.2 鍵盤電路設(shè)計(jì)本設(shè)計(jì)系統(tǒng)的命令輸入模塊是鍵盤電路和時(shí)鐘電路,通過以按鍵的方式向FPGA控制系統(tǒng)表達(dá)人的命令來實(shí)現(xiàn)直流電機(jī)的正轉(zhuǎn)、反轉(zhuǎn)、停止和加減速,實(shí)現(xiàn)人機(jī)互換。下面就對(duì)鍵盤電路和時(shí)鐘電路的類型以及工作原理分別進(jìn)行論述。鍵盤電路有兩種類型,其中一種是獨(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í)間審閱本論文的專家教授

00.png
完整的Word格式文檔51黑下載地址(共頁):
http://www.torrancerestoration.com/bbs/dpj-113482-1.html


回復(fù)

使用道具 舉報(bào)

ID:302773 發(fā)表于 2019-9-25 23:01 | 顯示全部樓層
請(qǐng)問樓主有這個(gè)項(xiàng)目的代碼嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表