基于FPGA的直流電機系統(tǒng)控制研制_第1頁
基于FPGA的直流電機系統(tǒng)控制研制_第2頁
基于FPGA的直流電機系統(tǒng)控制研制_第3頁
基于FPGA的直流電機系統(tǒng)控制研制_第4頁
基于FPGA的直流電機系統(tǒng)控制研制_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

.z.---.可修編.本科畢業(yè)設(shè)計論文基于FPGA的直流電機控制系統(tǒng)研制學(xué)生**:*明達班級:電自113學(xué)號:0901011022指導(dǎo)教師:*曉峰所在單位:電氣工程學(xué)院答辯日期:2015年6月28日-.z.摘要EDA技術(shù)具有很強的實踐性,在學(xué)習(xí)過程中必須加強實際動手能力的訓(xùn)練,將書本上介紹的理論知識與實際應(yīng)用相結(jié)合,從豐富多樣的實驗操作中增加實踐經(jīng)驗,從應(yīng)用實例中學(xué)習(xí)和模仿編程方法,可以獲得事半功倍的效果。直流電機具有速度控制容易,啟、制動性能良好等優(yōu)點,本文利用了PWM(脈寬調(diào)制)調(diào)速方法。本課題介紹了利用FPGA對直流電機實現(xiàn)控制的方法及其電路設(shè)計,直流電機轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,來實現(xiàn)對直流電機的控制。采用VHDL語言對FPGA進行編程,將直流電機轉(zhuǎn)速控制器和鋸齒波發(fā)生器的值進行比較,從而實現(xiàn)對直流電機速度以及旋轉(zhuǎn)方向精確靈活的控制。關(guān)鍵詞:FPGA,直流電機,VHDL,QuartusⅡAbstractThetechnologyofEDAhastheverystrongpracticality,wemuststrengthenthecapacityoftheactualhands-traininginthelearningprocess,wemustputtheknowledgewehavelearnedfromthebooksintoapplication,thenwecanaccumulatemuche*periencefromvariousoperations,wecanalsolearnhowtoprogramandimitateit.Thiscanbesuppressedeffectively.DCmotorshavemanyadvantages,suchaseasyspeedcontrollingandgoodstartingandbrakingperformance.ThisarticleintroduceshowtouseFPGAtocontroltheDCmotorsanddesignelectriccircuit,wecancontroltheDCmotorsthroughDCmotorspeedcontroller,sawtoothgeneratorandPMWwaveformgenerator.WeuseVHDLforFPGAprogramming,WeparethevalueoftheDCmotorspeedcontrollerandsawtoothgeneratorsothatwecancontrolthespeedofDCmotorandtherotationdirectionaccuratelyandfle*ibly.Keywords:FPGA,DCMotor,VHDL,QuartusII目錄摘要IAbstractII第1章緒論11.1課題研究背景及意義11.2課題研究現(xiàn)狀11.3本課題所做的工作1第2章EDA技術(shù)及VHDL描述語言32.1EDA的發(fā)展歷程32.1.1EDA的起源32.1.2EDA發(fā)展史及其主要內(nèi)容.32.2FPGA簡介42.2.1FPGA的開發(fā)與配置52.2.2FPGA優(yōu)點及FPGA/CPLD的選擇52.3VHDL簡介62.3.1VHDL的特點7第3章直流電機控制方案概述和對比83.1直流電機控制概述83.1.1直流電機控制方案對比83.1.2FPGA為核心器件的直流電機控制的系統(tǒng)構(gòu)成9第4章基于VHDL的硬件模塊設(shè)計104.1基于FPGA的直流電機PWM控制104.2實現(xiàn)系統(tǒng)控制的各模塊114.2.1直流電機轉(zhuǎn)速控制器(binary_up_down_counter)114.2.2鋸齒波發(fā)生器(binary_counter)154.2.3PMW波形發(fā)生器(CMP)164.3直流電機工作時序分析21第5章液晶圖文顯示225.1LCD液晶顯示225.5.1OCMJ液晶顯示器225.5.2模塊管腳說明225.2液晶圖文顯示23結(jié)論27致謝28參考文獻29附錄1:原理圖30附錄2:液晶顯示部分實物圖31第1章緒論1.1課題研究背景及意義電動機作為機電能量轉(zhuǎn)換裝置,一直在現(xiàn)代化的生產(chǎn)和生活中起著十分重要的作用[1]。直流電機由于具有速度控制容易,啟、制動性能良好,且在寬*圍內(nèi)平滑調(diào)速等特點而在冶金、制造、輕工等工業(yè)部門中得到廣泛應(yīng)用。由于現(xiàn)今集成電路、現(xiàn)代電力電子技術(shù)、控制理論的飛快發(fā)展,如今電機控制技術(shù)已經(jīng)得到普及,已經(jīng)由過去的提供動力為目的轉(zhuǎn)變?yōu)榭梢詫﹄姍C進行精確管制。通常應(yīng)用ALTERA公司的現(xiàn)場可編程門陣列(FPGA)芯片來進行對電機控制器的設(shè)計、制造和調(diào)試且在此基礎(chǔ)上來分析研究應(yīng)用控制器對直流電機來進行調(diào)度控制的方法。1.2課題研究現(xiàn)狀近幾年來,由于微電子技術(shù)與計算機技術(shù)的飛速發(fā)展及單片機的普及,將調(diào)速裝置向密集化、小型化和智能化方向發(fā)展。國外交直流系統(tǒng)數(shù)字化已經(jīng)達到實用階段。由微處理器為技術(shù)核心的數(shù)字控制系統(tǒng)硬件電路的標準化程度高,需要成本低,并不受器件的溫度漂移所引起的影響。數(shù)字控制系統(tǒng)能夠有效的進行邏輯判斷和復(fù)雜的運算,能做到不同于一般線性調(diào)節(jié)的最優(yōu)化、適應(yīng)性、非線性、智能化等控制規(guī)律。如采用微機控制產(chǎn)生PWM信號。用微機或單片機產(chǎn)生PWM信號波形,需要通過D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和設(shè)置參考電壓,通過外接模擬比較器輸出PWM波形,因此外圍電路比較復(fù)雜[2]。單片機,雖然DSP具備生成PWM信號及捕獲電機編碼器信號的能力,但其對IC生成PWM信號的通道數(shù)目及電機編碼器捕獲通道數(shù)目有限。對多個直流電機的控制很難滿足要求?;诂F(xiàn)場可編程門陣列FPGA對直流電機的控制策略,為實現(xiàn)電動機數(shù)字控制提供了一種有效的方法[3]。FPGA器件具有集成度高、體積小、運算速度快、易于修改等特點。用FPGA來實現(xiàn)多路PWM調(diào)控,內(nèi)部自帶數(shù)模變換功能,不再需要外接數(shù)模轉(zhuǎn)換設(shè)備,形式簡單,誤差小、控制性能強。用單片機和DSP的控制都難以達到同樣的控制效果。1.3本課題所做的工作FPGA的開發(fā)語言(VHDL語言)是一種用于數(shù)字系統(tǒng)設(shè)計和測試的硬件描述語言,也是我們國家極力推廣的一種標準語言。本課題采用VHDL語言編程,利用Altera公司的QuartusII開發(fā)平臺創(chuàng)建成調(diào)速系統(tǒng)所需的各個特殊功能“器件”。通過設(shè)計工具QuartusⅡ?qū)υO(shè)計進行綜合、適配與時序仿真,利用FPGA器件—EP1K30實現(xiàn)對PMW占空比的調(diào)節(jié),從而達到對直流電機控制系統(tǒng)的設(shè)計[4]。具體工作如下:1.掌握VHDL硬件編程語言;2.掌握Altera公司推出的集成仿真工具QuartusII6.0的使用方法;3.利用VHDL硬件編程語言設(shè)計直流電機系分驅(qū)動控制模塊工程項目;4.以EP1K30TC144-3器件為核心制作可實際運行的直流電機系分驅(qū)動控制硬件電路。第2章EDA技術(shù)及VHDL描述語言2.1EDA的發(fā)展歷程EDA的起源EDA是電子設(shè)計自動化(ElectronicDesignAutomation)縮寫,是1965年結(jié)合了CAD、CAM、CAT和CAE的理念,并將其完善得到的。EDA技術(shù)是以計算機為工具,根據(jù)硬件描述語言HDL(HardwareDescriptionlanguage)完成的設(shè)計文件,然后由計算機自動地完成邏輯編譯、化簡、分割、綜合及優(yōu)化、布局布線和仿真以及對于特定目標芯片的適配編譯和編程下載等工作。典型的EDA工具中必須包含兩個特殊的軟件包,即綜合器和適配器。綜合器的功能就是將設(shè)計者在EDA平臺上完成的針對*個系統(tǒng)項目的HDL、原理圖或狀態(tài)圖形描述,針對給定的硬件系統(tǒng)組件,進行編譯、優(yōu)化、轉(zhuǎn)換和綜合,最終獲得我們欲實現(xiàn)功能的描述文件[4]。綜合器在工作前,要給定所要實現(xiàn)的硬件結(jié)構(gòu)參數(shù),其功能就是將軟件描述和所給定的硬件結(jié)構(gòu)用一定的方式聯(lián)系起來。也就是,綜合器要在軟件描述與硬件實現(xiàn)間搭一座橋梁。綜合過程就是要將電路的高級語言描述轉(zhuǎn)換成低級的、可與目標器件FPGA/CPLD相映射的網(wǎng)表文件。2.1.2EDA發(fā)展史及其主要內(nèi)容.人類已步入高度發(fā)達的信息化社會,信息化社會的發(fā)展永遠離不開電子產(chǎn)品的進步。雖然電子產(chǎn)品的功能越來越強大,制作工藝也愈加繁瑣,可其價格卻只低不高,同時電子產(chǎn)品的淘汰速度逐年加開,淘汰率也逐年增大,導(dǎo)致上述現(xiàn)象的因素很多,但之所以有這樣飛躍性的發(fā)展,要歸功于電子設(shè)計技術(shù)的日益發(fā)達。電子設(shè)計技術(shù)當(dāng)中應(yīng)用最廣泛的便是EDA。EDA可以對以下三種設(shè)計進行輔助:IC設(shè)計電子電路設(shè)計PCB設(shè)計在EDA沒有被研發(fā)成功時,要實現(xiàn)超大規(guī)模集成電路的設(shè)計制造是不可能的,同時,怎樣完善EDA來適應(yīng)發(fā)展愈發(fā)快速的電子設(shè)計工業(yè),是一個值得探討的問題。EDA技術(shù)有三個發(fā)展階段:(1)第一個階段為CAD的應(yīng)用,在這個階段以前,人們對于版圖設(shè)計,布局等工作只能手工完成。而在這之后,人們開始利用計算機對其進行輔助工作。這個時期的主要存在兩個問題,即:EDA軟件的功能單一,相互獨立;對相對復(fù)雜的電子系統(tǒng)設(shè)計,不能提供系統(tǒng)級的仿真和綜合,所以在設(shè)計中錯誤只能在產(chǎn)品開發(fā)的后期才能發(fā)現(xiàn),這時想要修正是十分困難的。(2)八十年代為CAE階段,與CAD相比,除了純粹的圖形繪制功能外,又增加了電路功能設(shè)計和結(jié)構(gòu)設(shè)計,并通過電氣連接網(wǎng)絡(luò)表將兩者結(jié)合于一起,實現(xiàn)了工程設(shè)計,這就是計算機輔助工程的概念。CAE的主要作用是:原理圖輸入,邏輯仿真,電路分析,自動布局布線,PCB后分析。在這個階段中,基于門陣列和標準單元庫設(shè)計的半定制ASIC得到了極大的發(fā)展,將電子系統(tǒng)設(shè)計推入了ASIC時代。但是,大部分從原理圖出發(fā)的CAE工具仍然不能適應(yīng)復(fù)雜電子系統(tǒng)的要求,而且具體化的元件圖形也制約著優(yōu)化設(shè)計。(3)九十年代為ESDA階段。盡管CAD/CAE的技術(shù)取得了巨大的成功,但并沒有將人從繁重的設(shè)計工作中徹底的解放出來。在整個的設(shè)計過程中,自動化與智能化的程度還不高,各種EDA軟件界面也千差萬別,要學(xué)習(xí)并使用很困難,并且互不兼容,這直接影響到了設(shè)計環(huán)節(jié)間的銜接。針對上述的情況,更多學(xué)者開始追求貫徹整個設(shè)計過程的自動化,這就是ESDA即電子系統(tǒng)設(shè)計自動化。從目前的EDA技術(shù)來看,其未來趨勢是政府重視、使用普及、應(yīng)用廣泛、工具多樣、軟件功能強大[5]。EDA技術(shù)相當(dāng)于在電子設(shè)計領(lǐng)域中發(fā)起的一場變革,它一直引領(lǐng)著電子設(shè)計領(lǐng)域走向更高的高度,如今正在飛速發(fā)展階段,新的EDA工具正在不斷的被開發(fā)出來,但國內(nèi)的EDA技術(shù)的應(yīng)用水平長期落后于發(fā)達國家,廣大電子工程人員需盡早掌握這一先進技術(shù),這不僅是提高設(shè)計效率的需要,更是我國電子工業(yè)在世界市場上生存、競爭與發(fā)展的需求。2.2FPGA簡介FPGA(FieldProgrammableGateArray)即現(xiàn)場可編程門陣列,它是在PAL(ProgrammableLogicArray)、GAL(GenericLogicArray)、EPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。FPGA是一種半定制電路,它不僅彌補了定制電路的不足,也在一定程度上改進了原始的可編程門列陣門數(shù)受限的劣勢。它是一種采用可編程互連連接在一起的邏輯單元陣結(jié)構(gòu)。是其內(nèi)部呈陣列狀排列的多個可配置邏輯塊(CLB),可以提供用戶需要的邏輯功能;四周圍繞輸入/輸出接口塊(IOB),可以提供內(nèi)部邏輯和外部封裝之間的接口;其余為垂直交叉的可編程互連資源,用于在塊與塊之間的傳輸信號,類似與連接中,小規(guī)模集成電路器件的印刷版上的走線[6]。FPGA較原有電路的優(yōu)勢:體積小、精度高、響應(yīng)迅速、靈活性、穩(wěn)定性,可無限次反復(fù)編程,主要是能現(xiàn)場模擬調(diào)試驗證。通常利用FPGA器件很短時間內(nèi)便可以實現(xiàn)電子系統(tǒng)的設(shè)計和制造。利用研制周期短這一優(yōu)勢,在上市時間和制作成本等方面都有很好的效果。FPGA有著很強的‘變通能力’,當(dāng)數(shù)據(jù)輸入發(fā)生變化時,其電路功能也發(fā)生相應(yīng)的變化。所以FPGA已經(jīng)成為許多領(lǐng)域中運用最普遍的一種電路。2.2.1FPGA的開發(fā)與配置FPGA的設(shè)計是應(yīng)用FPGA開發(fā)系統(tǒng)完成的。人們要做的僅僅是將硬件描述語言或電路原理圖輸入計算機,F(xiàn)PGA開發(fā)系統(tǒng)便可以自動完成設(shè)計過程,完成FPGA的內(nèi)部配置,使硬件描述語言或電路原理圖所描述的功能,這樣一塊空白的FPGA芯片就變成了一塊特殊功能ASIC芯片。常用的配置模式有:并行主模式:一個FPGA加一個EPROM;(2)主從模式:用一個PROM可對多個FPGA進行編程;(3)外設(shè)模式:將FPGA作為微處理器的外設(shè);(4)串行模式:可以采用串行PROM編程FPGA。2.2.2FPGA優(yōu)點及FPGA/CPLD的選擇PGA采用了邏輯單元陣列LCA(LogicCellArray)這樣一個新概念,其內(nèi)部含有三個部分,分別是:可配置邏輯模塊CLB(ConfigurableLogicBlock)輸出輸入模塊IOB(InputOutputBlock)內(nèi)部連線(Interconnect)所以FPGA具有很多的基本特點,主要有:1)設(shè)計ASIC時,用戶無須進行投片生產(chǎn),便可制作出合適的芯片。2)可用作其它ASIC電路試樣片。3)內(nèi)部含充足的觸發(fā)器和輸入輸出引腳。4)具有設(shè)計周期短、成本低的優(yōu)點。5)CHMOS的運用,減小了功耗,能和CMOS、TTL電平兼容。可以說,F(xiàn)PGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。CPLD是由GAL(GenericLogicArray)發(fā)展起來的,其主題結(jié)構(gòu)人人是與或陣列,具有ISP功能的CPLD器件由于具有和FPGA器件相似的集成度和易用性,使其在可編程邏輯期間技術(shù)的競爭中和FPGA并駕齊驅(qū),成為兩支領(lǐng)導(dǎo)可編程器件技術(shù)發(fā)展的力量之一[7]。在很多的時候需要對兩者進行比較,使用最佳選擇,這里簡單比較如下。FPGA與CPLD都是可編程ASIC器件,有很多共同的特點,且在一些領(lǐng)域中,它都體現(xiàn)出巨大的優(yōu)勢,但基于兩者的結(jié)構(gòu)不同,它們的特征也存在著一定的不同當(dāng)今世界正經(jīng)歷著波瀾壯闊的科技技術(shù)的巨大變革,F(xiàn)PGA等可編程邏輯器件技術(shù)發(fā)展一日千里,推動著電子技術(shù)設(shè)計的變革和深入發(fā)展,我們應(yīng)該不斷更新知識,掌握不斷發(fā)展的科學(xué)技術(shù)2.3VHDL簡介目前用于CPLD/FPGA、ASIC設(shè)計的語言種類有如下幾種:VHDL語言、Verilog語言、AHDL語言、ABEL語言等。其中在CPLD/FPGA編程中使用最廣泛的當(dāng)屬VHDL語言和AHDL語言,但Verilog以其統(tǒng)一的標準,強大的描述能力,也逐漸被用戶接受[9]。VHDL的英文全稱是VHSIC(VeryHighSpeedIntegratedCircuitHdwareDescriptionLanguage),誕生于1982年。1987年底,VHDL被IEEE和美國國防部確認為標準硬件描述語言。自IEEE-1076(簡稱87版)之后,各EDA公司相繼推出自己的VHDL設(shè)計環(huán)境,或宣布自己的設(shè)計工具可以和VHDL接口。1993年,IEEE對VHDL進行了修訂,從更高的抽象層次和系統(tǒng)描述能力上擴展VHDL的內(nèi)容,公布了新版本的VHDL,即IEEE標準的1076-1993版本,簡稱93版?,F(xiàn)在,VHDL和Verilog作為IEEE的工業(yè)標準硬件描述語言,又得到眾多EDA公司的支持,在電子工程領(lǐng)域,已成為事實上的通用硬件描述語言[10]。相信,在未來,VHDL將擔(dān)負起大部分的數(shù)字系統(tǒng)設(shè)計任務(wù)。2.3.1VHDL的特點VHDL語言是一種用于電路設(shè)計的高級語言,主要是應(yīng)用在數(shù)字電路的設(shè)計中。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu)/行為/功能和接口。VHDL的程序結(jié)構(gòu)特點是將一項工程設(shè)計,或稱設(shè)計實體分成外部和內(nèi)部,既涉及實體的內(nèi)部功能和算法完成部分。在對一個設(shè)計實體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計就可以直接調(diào)用這個實體。這種將設(shè)計實體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計的基本點。應(yīng)用VHDL進行工程設(shè)計的優(yōu)點是多方面的[11]。與其它的硬件描述語言比較,VHDL擁有更為強大的行為描述能力,這也奠定了它會是系統(tǒng)設(shè)計領(lǐng)域的最佳硬件描述語言。其強大的行為描述能力是避開具體的器件結(jié)構(gòu),從邏輯行為上描述和設(shè)計大規(guī)模電子系統(tǒng)的重要保證。VHDL具有豐富的仿真語句和庫函數(shù),使它能在任何大系統(tǒng)的設(shè)計早期就能查驗設(shè)計系統(tǒng)的功能可行性,并隨時可對設(shè)計進行仿真模擬。VHDL語句的行為描述能力和程序結(jié)構(gòu)決定了他具有支持大規(guī)模設(shè)計的分解和已有設(shè)計的再利用功能。符合市場對大規(guī)模系統(tǒng)高效的需求,且能高速完成需由多人或多個代發(fā)組共同并行工作才能實現(xiàn)的設(shè)計。對于用VHDL來完成的一個確定的設(shè)計,可以利用EDA工具進行邏輯綜合和優(yōu)化,并自動的把VHDL描述設(shè)計轉(zhuǎn)變成門級網(wǎng)表。VHDL對設(shè)計的描述具有相對對立性,使設(shè)計者可以不必懂硬件的結(jié)構(gòu),也不必管理最終設(shè)計現(xiàn)實的目標器件是什么,而進行獨立的設(shè)計。VHDL本身的生命周期長。第3章直流電機控制方案概述和對比3.1直流電機控制概述直流電機由于具有速度控制容易,啟、制動性能良好,且在寬*圍內(nèi)平滑調(diào)速等特點而在冶金、制造、輕工等工業(yè)部門中得到廣泛應(yīng)用。通常我們將直流電動機轉(zhuǎn)速的控制方法分為兩類,一類是勵磁控制法,另一類是電樞電壓控制法。勵磁控制法控制磁通,其控制功率雖然小,但低速時受到磁飽和的限制,高速時受到換向火花和換向器結(jié)構(gòu)強度的限制;而且由于勵磁線圈電感較大,動態(tài)響應(yīng)較差。所以我們常用的控制方法是改變電樞端電壓調(diào)速的電樞電壓控制法。通過調(diào)節(jié)電阻R就可以改變端電壓,從而達到調(diào)速目的。但是用這種傳統(tǒng)的調(diào)壓調(diào)速方法效率非常低。如今隨著電力電子技術(shù)的進步,出現(xiàn)了許多新的電樞電壓控制方法,其中PWM(脈寬調(diào)制)是常用的一種調(diào)速方法。其基本原理是用改變電機電樞(定子)電壓的接通和斷開的時間比(占空比)來控制馬達的速度,在脈寬調(diào)速系統(tǒng)中,當(dāng)電機通電時,其速度增加;電機斷電時,其速度減低[12]。只需按一定的規(guī)律改變通、斷電的時間,就可以使電機的速度達到并保持一穩(wěn)定值。本文采取了FPGA來改進步進電機多路PWM控制,內(nèi)部自帶數(shù)模變換功能,不再需要外接數(shù)模轉(zhuǎn)換設(shè)備,形式簡單,誤差小、控制性能強。用單片機和DSP的控制都難以達到同樣的控制效果。3.1.1直流電機控制方案對比由于以微處理器為核心的數(shù)字控制系統(tǒng)硬件電路的標準化程度高,制作成本低,又不受器件溫度漂移的影響。其控制軟件能夠進行邏輯判斷和復(fù)雜運算,能夠?qū)崿F(xiàn)不同于一般線性調(diào)節(jié)的最優(yōu)化、自適應(yīng)、非線性、智能化等控制規(guī)律。如采用微機控制產(chǎn)生PWM信號[13]。一般的PWM信號事通過模擬比較器產(chǎn)生的,比較器的一端接給定的參考電壓,另一端接周期性線性增加的鋸齒波電壓。當(dāng)鋸齒波電壓小于參考電壓時輸出低電平,當(dāng)鋸齒波電壓大于參考電壓時輸出高電平。改變參考電壓就可以改變PWM波形中的高電平的寬度。若用微機或單片機產(chǎn)生PWM信號波形,需要通過D/A轉(zhuǎn)換器產(chǎn)生鋸齒波電壓和設(shè)置參考電壓,通過外接模擬比較器輸出PWM波形,因此外圍電路比較復(fù)雜。FPGA中的數(shù)字PWM控制與一般的模擬PWM控制不同。用FPGA產(chǎn)生PWM波形,只需FPGA內(nèi)部資源就可以實現(xiàn)。用數(shù)字比較器代替模擬比較器,數(shù)字比較器的一端接設(shè)定值計數(shù)器輸出,另一端接線性遞增計數(shù)器輸出。當(dāng)線性計數(shù)器的計數(shù)值小于設(shè)定值時輸出低電平,當(dāng)計數(shù)器大于設(shè)定值時輸出高電平。與模擬控制相比,省去了外接的D/A轉(zhuǎn)換器和模擬比較器,F(xiàn)PGA外部連線很少,電路更加簡單,便于控制[14]。具有廣泛的應(yīng)用前景。經(jīng)過對比本課題決定采用基于FPGA的直流電機控制系統(tǒng)。FPGA為核心器件的直流電機控制的系統(tǒng)構(gòu)成直流電機控制系統(tǒng)主要由五部分組成,如圖3-1所示:直流電機轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,直流電機轉(zhuǎn)動方向控制器和由功率放大電路和H橋組成的正∕反轉(zhuǎn)功率驅(qū)動電路。圖3-1FPGA直流電機控制電路第4章基于VHDL的硬件模塊設(shè)計4.1基于FPGA的直流電機PWM控制如圖4-1所示:直流電機控制系統(tǒng)主要由五部分組成:直流電機轉(zhuǎn)速控制器,鋸齒波發(fā)生器,PMW波形發(fā)生器,直流電機轉(zhuǎn)動方向控制器和由功率放大電路和H橋組成的正∕反轉(zhuǎn)功率驅(qū)動電路。圖4-1直流電機PMW控制圖圖4-1所示電路完成的主要功能為:Enable為使能信號,當(dāng)Enable=1時允許調(diào)速,相反當(dāng)Enable=0時則禁止調(diào)速。Up_Down為加速\減速控制信號,當(dāng)Up_Down=1,輸入CLK1使直流電機轉(zhuǎn)速控制器計數(shù)器的輸出值增大,PMW占空比增大,電機轉(zhuǎn)速加快;當(dāng)Up_Down=0,輸入CLK1使直流電機轉(zhuǎn)速控制器的輸出值減小,PMW的占空比減小,電機轉(zhuǎn)速變慢。在CLK0的作用下,鋸齒波計數(shù)器輸出周期性線性增加的鋸齒波。當(dāng)鋸齒波的計數(shù)值小于直流電機轉(zhuǎn)速控制器的設(shè)定值時,數(shù)字比較器輸出高電平;當(dāng)鋸齒波的計數(shù)值大于直流電機轉(zhuǎn)速控制器的設(shè)定值時,數(shù)字比較器輸出低電平,由此產(chǎn)生周期性的PMW波形。旋轉(zhuǎn)方向控制電路控制控制直流電動機轉(zhuǎn)向和啟∕停,該電路由兩個2選1多路選擇器組成,Zheng_Fan為方向控制信號,Zheng_Fan引腳控制選擇進入H橋的PMW波形,以控制電機的旋轉(zhuǎn)方向。Start_Stop為啟/停信號,Start_Stop引腳通過“與”門控制PMW的輸出,實現(xiàn)對電機的工作∕停止控制。H橋電路由大功率晶體管組成,PMW波形經(jīng)方向控制電路送至H橋,將功率放大以后驅(qū)動電機轉(zhuǎn)動。PMW控制電路由直流電機轉(zhuǎn)速控制器(binary_up_down_counter)和鋸齒波發(fā)生器(binary_counter)組成。binary_up_down_counter是一個簡單的5位二進制計數(shù)器,做直流電機轉(zhuǎn)速控制器,而binary_counter是一個線性遞增計數(shù)器,作鋸齒波發(fā)生器,其余的模塊是2選1多路選擇器和比較器。鋸齒波發(fā)生器在CLK0的激勵下輸出從0開始的逐漸增大的鋸齒波。兩路計數(shù)器的輸出同時加在數(shù)字比較器上,當(dāng)直流電機轉(zhuǎn)速控制器輸出值小于鋸齒波發(fā)生器輸出的值,比較器輸出低電平;當(dāng)直流電機轉(zhuǎn)速控制器輸出大于鋸齒波發(fā)生器輸出的值時,比較器輸出高電平。這樣就產(chǎn)生了占空比保持不變的方波。改變直流電機轉(zhuǎn)速控制器的設(shè)定值initial時,就可以改變PMW輸出信號的在占空比即初調(diào);直流電機轉(zhuǎn)速控制器是一個雙向計數(shù)器,能夠進行加∕減計數(shù),由Up_Down控制其加∕減計數(shù)方向,在時鐘CLK上升沿到來時可以改變binary_up_down_counter的輸出即微調(diào)。為了方便連續(xù)變速控制,在計數(shù)器CLK端通過“與”門,加入了CLK1外部變速控制附加時鐘,并由Enable信號控制是否允許變速。4.2實現(xiàn)系統(tǒng)控制的各模塊4.2.1直流電機轉(zhuǎn)速控制器(binary_up_down_counter)直流電機轉(zhuǎn)速控制器(binary_up_down_counter)是一個可控制的加減計數(shù)器,作細分計數(shù)器。輸出CQ[4.0]加載到數(shù)字比較器的一端。通過VHDL語言實現(xiàn)的直流電機轉(zhuǎn)速控制器硬件電路如圖4-2所示:圖4-2直流電機轉(zhuǎn)速控制器通過VHDL語言的編譯定義了直流電機轉(zhuǎn)速控制器硬件電路的五個輸入引腳,分別為系統(tǒng)時鐘引腳(CLK)、數(shù)據(jù)清零引腳(Reset)、使能輸入引腳(Enable)、變速控制引腳(Up_Down)、起始數(shù)據(jù)輸入引腳(Initial)。還有一個輸出端(CQ)。直流電機轉(zhuǎn)速控制器是一個雙向計數(shù)器,能夠進行加∕減計數(shù),并由Up_Down控制其加∕減計數(shù)方向,CLK是計數(shù)時鐘輸入端。為了方便連續(xù)變速控制,在計數(shù)器CLK端通過“與”門,加入了CLK1外部變速控制附加時鐘,并由Enable信號控制是否允許變速。Reset為清零鍵用來控制初值是否給定。Initial用來給定控制直流電機速度的初始值,即給定初始速度。幾個輸入引腳相互配合起到了對直流電機轉(zhuǎn)速控制器控制速度的功能。具體程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.numeric_std.all;entitybinary_up_down_counteris port ( clk :instd_logic; reset :instd_logic; enable :instd_logic; updown :instd_logic; Initial :instd_logic_vector(4downto0); CQ :outstd_logic_vector(4downto0) );endentity;直流電機轉(zhuǎn)速控制器是五位的加減計數(shù)器,計數(shù)器加的過程實為系統(tǒng)的加速過程,相反減的過程為系統(tǒng)的減速過程。直流電機轉(zhuǎn)速控制器輸出的數(shù)據(jù)被連到PMW波形發(fā)生器(數(shù)字比較器)與鋸齒波發(fā)出的數(shù)據(jù)相比較,從而完成直流電機速度的控制。初值的加入,當(dāng)reset引腳輸入低電平時由initial引腳輸入五位數(shù)據(jù)初值,從而給定直流電機的初始速度。系統(tǒng)的加速過程,當(dāng)enable引腳輸入高電平且up_down引腳輸入高電平時,此時直流電機轉(zhuǎn)速控制器進行一個加的過程,通過比較與鋸齒波發(fā)生器發(fā)出的數(shù)值使輸出波形的占空比變大,從而達到直流電機加速的目的。相反enable引腳輸入低電平則不發(fā)生加速過程。系統(tǒng)的加速過程,當(dāng)enable引腳輸入高電平且up_down引腳輸入低電平時,此時直流電機轉(zhuǎn)速控制器進行一個減的過程,通過比較與鋸齒波發(fā)生器發(fā)出的數(shù)值使輸出波形的占空比變小,從而達到直流電機減速的目的。具體程序如下:architecturertlofbinary_up_down_counteris signalInit :std_logic_vector(4downto0);begin init<=initial; process(clk) variablet:std_logic_vector(4downto0); begin --Synchronouslyupdatecounter ifreset='0'then --Resetthecountertoinitial t:=init; elsif(rising_edge(clk))then ifenable='1'then ifupdown='1'then ift="11111"thent:=t; elset:=t+1; endif; else ift="00000"thent:=t; elset:=t-1; endif; endif; endif; endif; CQ<=t; endprocess;endrtl;直流電機轉(zhuǎn)速控制器功能仿真如圖4-3所示:當(dāng)輸入時鐘clk為上升沿時,輸出值CQ就會加1。輸出值*圍由0可以自加到31。圖4-3binary_up_down_counter仿真波形圖4.2.2鋸齒波發(fā)生器(binary_counter)鋸齒波發(fā)生器(線性遞增計數(shù)器)通過脈寬時鐘作用下遞增計數(shù),產(chǎn)生階梯形上升的周期性的鋸齒波。鋸齒波發(fā)生器輸出五位數(shù)據(jù)。鋸齒波發(fā)生器確定了脈沖的寬度,其輸出的數(shù)據(jù)被連到PMW波形發(fā)生器與直流電機轉(zhuǎn)速控制器輸出的數(shù)據(jù)比較。從而達到了對占空比的控制。通過VHDL語言實現(xiàn)的鋸齒波發(fā)生器硬件電路如圖4-4所示:圖4-4binary_counter(鋸齒波發(fā)生器)具體設(shè)計程序如下:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;useieee.numeric_std.all;entitybinary_counteris port ( clk :instd_logic; CQ :outstd_logic_vector(4downto0) );endentity;architecturertlofbinary_counterisbegin process(clk) variablet:std_logic_vector(4downto0); begin if(rising_edge(clk))then ift="11111"thent:="00000"; else t:=t+1; endif; endif; --Outputthecurrentcount CQ<=t; endprocess;endrtl;鋸齒波發(fā)生器功能仿真如圖4-5所示:當(dāng)輸入時鐘clk為上升沿時,輸出值CQ就會加1。輸出值*圍由0可以自加到31。圖4-5binary_counter仿真波形4.2.3PMW波形發(fā)生器(CMP)PMW波形發(fā)生器(數(shù)字比較器)用來對鋸齒波發(fā)生器和直流電機轉(zhuǎn)速控制器輸出值的大小做比較,當(dāng)鋸齒波發(fā)生器的值小于直流電機轉(zhuǎn)速控制器的設(shè)定值時輸出高電平,當(dāng)鋸齒波發(fā)生器的值大于直流電機轉(zhuǎn)速控制器的設(shè)定值時輸出低電平。由此可輸出周期性的PWM波形。其硬件電路如圖4-6所示:圖4-6比較器PMW波形發(fā)生器的生成步驟如下:(1)打開MegaWizardPlugInManager初始對話框。選擇Tools→MegaWaizardPlugInManager命令,打開如圖對話框,選中Createanewcustommegafuncitionvariation單選按鈕,即定制一個新的模塊。如圖4-7所示:圖4-7定制新的宏功能塊(2)單擊Ne*t按鈕后,打開如圖對話框,在左欄選擇storage項下的LPMPARE然后選擇ACE*1K器件和VHDL語言方式:最后再輸入文件存放的路徑和文件名。如圖4-8所示:圖4-8比較器選擇定義路徑(3)比較器的生成如圖4-9所示:圖4-9采用LPM宏功能模塊生成的位比較器(4)單擊Ne*t按鈕,由于本文涉及到的數(shù)值不為常數(shù)且無符號,所以分別選擇No和Unsigned。如圖4-10所示::圖4-10選擇數(shù)的類型(5)單擊Ne*t按鈕,選擇No即不加時鐘。如圖4-11所示:圖4-11時鐘的選擇(6)生成的文件會保存在設(shè)定的路徑當(dāng)中。如圖4-12所示:圖4-12完成定制4.3直流電機工作時序分析圖4-13直流電機PWM仿真波形圖圖4-13是直流電機仿真波形圖,給出了直流電機工作過程的仿真波形。圖中展示了FPGA控制直流電機的情況。直流電機轉(zhuǎn)速控制器輸出的5位數(shù)據(jù)作為直流電機電流的參考值,通過PMW波形發(fā)生器來調(diào)節(jié)占空比,從而達到調(diào)節(jié)直流電機速度的目的。圖中,Start_Stop用來控制直流電機的啟動和停止,Enable為使能信號用來命令直流電機是否加速,Reset為清零信號當(dāng)為低電平時允許輸入初始值。Up_Down則為控制速度的信號當(dāng)為高電平時電機開始加速,低電平時電機開始減速。Zheng_Fan則用來調(diào)節(jié)直流電機的方向,當(dāng)為高電平時正向旋轉(zhuǎn),低電平時為反向旋轉(zhuǎn)。實測結(jié)果表明,通過啟∕停信號、使能信號、清零信號、速度控制信號、方向控制信號的設(shè)置可以對直流電機的速度方向做出精確的控制。

第5章液晶圖文顯示5.1LCD液晶顯示由于液晶顯示器具有體積小,功耗低,質(zhì)量輕等特點,因此廣泛應(yīng)用于各種智能型儀器和低功耗電子產(chǎn)品中。許多電子公司相繼推出各種型號各種系列的液晶顯示模塊,這些模塊不僅可以顯示字符和數(shù)字,有的還可以顯示各種圖形和漢字。這里介紹了液晶顯示器OCMJ液晶顯示器及軟件編程特點。5.5.1OCMJ液晶顯示器OCMJ液晶顯示器內(nèi)含GB231216×16點陣國標一級簡體漢字和ASCII8×8點陣英文字庫,輸入?yún)^(qū)位碼或ASCII碼即可實現(xiàn)文本顯示。它同時為用戶提供位點陣和字節(jié)點陣兩種圖形顯示功能,用戶可在指定的屏幕位置上以位為單位或以字節(jié)為單位進行圖形顯示。完全兼容一般的點陣模塊。OCMJ中文模塊所有的設(shè)置初始化工作都是在上電時自動完成的,實現(xiàn)了“即插即用”。同時保留了一條專用的復(fù)位線供用戶接口命令代碼,非常容易記憶。標準擁護硬件接口采用REQ/BUSY握手協(xié)議,簡單可靠。5.5.2模塊管腳說明LCD+/LCD-為背光源引腳,由用戶接上相應(yīng)的電阻調(diào)整LCD背光亮度,電阻阻值在10~30Ω之間。RT1/RT2接腳為輝度調(diào)節(jié)電位器接腳,接10kB左右電位器可調(diào)節(jié)輝度。RESET為低電平有效。接口協(xié)議為請求/應(yīng)答(REQ/BUSY)握手方式。應(yīng)答B(yǎng)USY高電平(BUSY=1)表示OCMJ忙于內(nèi)部處理,不能接收用戶命令;BUSY低電平(BUSY=0)表示OCMJ空閑,等待接收用戶命令。發(fā)送命令到OCMJ可在BUSY=0后的任意時刻開始,先把用戶命令的當(dāng)前字節(jié)放到數(shù)據(jù)線上,接著發(fā)高電平REQ信號(REQ=1)通知OCMJ請求處理當(dāng)前數(shù)據(jù)線上的命令或數(shù)據(jù)。OCMJ模塊在接收到外部的REQ高電平信號后立即讀取數(shù)據(jù)線上的命令或數(shù)據(jù),同時將應(yīng)答線BUSY變?yōu)楦唠娖?,表示模塊已收到數(shù)據(jù)并正在忙于對此數(shù)據(jù)的內(nèi)部處理,此時,用戶對模塊的寫操作已經(jīng)完成,用戶可以撤消數(shù)據(jù)線上的信號并可做模塊顯示以外的其他工作,也可不斷的查詢應(yīng)答線BUSY是否為低,如果BUSY=0,表明模塊對用戶的寫操作已經(jīng)執(zhí)行完畢,可以再送下一個數(shù)據(jù)。如果模塊發(fā)出一個完整的顯示漢字的命令,包括坐標及漢字代碼在內(nèi)共需5個字節(jié),模塊在接收到最后一個字節(jié)后才開始執(zhí)行整個命令的內(nèi)部操作,因此,最后一個字節(jié)的應(yīng)答B(yǎng)USY高電平(BUSY=1)持續(xù)時間較長,具體時序圖參見圖5-1。圖5-1對模塊寫漢字時序圖5.2液晶圖文顯示顯示單元可以顯示電機的轉(zhuǎn)速、和轉(zhuǎn)向。如圖5-2所示液晶顯示模塊各引腳功能如下:d3至d0為測速譯碼模塊4位輸入引腳。busy、req、dout為液晶輸入輸出引腳。clr為系統(tǒng)復(fù)位引腳。如圖5-2所示:圖5-2液晶顯示模塊具體程序如下:IBRARYieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;ENTITYlcd_displayIS PORT(d3,d2,d1,d0 :INSTD_LOGIC_VECTOR(3DOWNTO0); busy :IN STD_LOGIC; dout :out STD_LOGIC_VECTOR(7DOWNTO0); req :OUT STD_LOGIC; clr :in STD_LOGIC );ENDlcd_display;ARCHITECTUREoneOFlcd_displayISSIGNALaddr:integerrange0to40; BEGINP1:PROCESS(busy,clr) BEGIN ifclr='0'thenaddr<=0; ELSIFbusy'eventANDbusy='1'THEN ifaddr=25thenaddr<=0;--rest<='1'; elseaddr<=addr+1; endif; ENDIF; ENDPROCESSP1; req<='1'WHENbusy='0'ELSE'0'; P2:PROCESS(addr) BEGIN CASEaddrIS when0=>dout<="11110100";--F4 WHEN1=>dout<="11110000";--F0--d3 WHEN2=>dout<="00000000";--00 WHEN3=>dout<="00000000";--00 WHEN4=>dout<=*"d7";--轉(zhuǎn) WHEN5=>dout<=*"aa"; WHEN6=>dout<="11110000";--F0--d3 WHEN7=>dout<="00000001";--00 WHEN8=>dout<="00000000";--00 WHEN9=>dout<=*"cb";--速 WHEN10=>dout<=*"d9"; WHEN11=>dout<="11110000";--F0 WHEN12=>dout<="00000000"; WHEN13=>dout<="00000001";--03 WHEN14=>dout<=*"d7";--轉(zhuǎn) WHEN15=>dout<=*"aa"; WHEN16=>dout<="11110000";--f0 WHEN17=>dout<="00000001";--04 WHEN18=>dout<="00000001";--00 WHEN19=>dout<=*"cf";--向 WHEN20=>dout<=*"f2"; WHEN21=>dout<="11111001";--F9--d3 WHEN22=>dout<="00000010";--02 WHEN23=>dout<="00000000";--00 WHEN24=>dout<=*"30"+d3; WHEN25=>dout<="11111001";--F9--d2 WHEN26=>dout<="00000011";--03 WHEN27=>dout<="00000000";--00 WHEN28=>dout<=*"30"+d2; WHEN29=>dout<="11111001";--F9--d1 WHEN30=>dout<="00000100";--04 WHEN31=>dout

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論