基于FPGA的多通道直流電機(jī)控制器設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:設(shè)計(jì)了一種基于FPGA的多通道直流電機(jī)控制系統(tǒng),充分利用FPGA并行控制的特點(diǎn),采用自項(xiàng)而下的設(shè)計(jì)方法,將系統(tǒng)劃分為轉(zhuǎn)速測(cè)量模塊,并行控制模塊,PWM生成模塊,電機(jī)驅(qū)動(dòng)模塊。采用Verilog HDL語(yǔ)言實(shí)現(xiàn)完成了對(duì)多通道直流電機(jī)的控制。通過(guò)Quartus II自帶仿真功能對(duì)系統(tǒng)進(jìn)行時(shí)序仿真表明系統(tǒng)結(jié)構(gòu)簡(jiǎn)單,且具有良好的功能擴(kuò)展性。
關(guān)鍵詞:FPGA;PWM;多通道;并行
機(jī)電一體化系統(tǒng)中常需要產(chǎn)生多通道PWM信號(hào)以完成對(duì)多臺(tái)電機(jī)進(jìn)行協(xié)調(diào)控制,而傳統(tǒng)控制系統(tǒng)仍然采用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)產(chǎn)生所需要的PWM信號(hào),但由于定時(shí)/計(jì)數(shù)器及IO端口數(shù)量的限制,單個(gè)單片機(jī)控制器常不能滿足多通道電機(jī)并行控制的要求。而FPGA內(nèi)部程序并行運(yùn)行,不同邏輯任務(wù)可同時(shí)執(zhí)行,使其工作更有效率,且其具有豐富的邏輯資源和I/O引腳資源。文中采用Altera公司Cyclone II系列的EP2C8Q208芯片,采用模塊化的設(shè)計(jì)方法,以四臺(tái)無(wú)刷直流電機(jī)為控制對(duì)象,完成了多通道的直流電機(jī)控制器的設(shè)計(jì),有效地縮小了設(shè)計(jì)規(guī)模,節(jié)約了設(shè)計(jì)成本。
1 系統(tǒng)整體設(shè)計(jì)
本系統(tǒng)采用自頂向下的設(shè)計(jì)思路,將系統(tǒng)主要分為以下模塊:FPGA控制模塊、電機(jī)驅(qū)動(dòng)模塊,轉(zhuǎn)速檢測(cè)模塊。如圖1所示。本系統(tǒng)以FPGA為控制核心,通過(guò)程序設(shè)定控制電機(jī)速度的PWM信號(hào)的占空比,由FPGA的I/O口輸出給直流電機(jī)驅(qū)動(dòng)電路以完成對(duì)直流電機(jī)的驅(qū)動(dòng)。電機(jī)轉(zhuǎn)速測(cè)量由霍爾傳感器完成,反饋給FPGA計(jì)數(shù)模塊,通過(guò)計(jì)數(shù)結(jié)果以決策電機(jī)控制狀態(tài)。文中將著重介紹FPGA控制模塊及各部分的功能設(shè)計(jì)與實(shí)現(xiàn)方法。
設(shè)計(jì)中將FPGA控制模塊又分為分頻模塊,計(jì)數(shù)模塊,并行控制模塊,PWM生成模塊4部分。分頻模塊把外部高頻時(shí)鐘信號(hào)降低為系統(tǒng)所需的標(biāo)準(zhǔn)頻率。計(jì)數(shù)模塊對(duì)霍爾傳感器輸入脈沖進(jìn)行計(jì)數(shù)以完成對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。并行控制模塊通過(guò)計(jì)數(shù)模塊的計(jì)數(shù)結(jié)果決策PWM信號(hào)的占空比。PWM生成模塊通過(guò)并行控制模塊輸出的占空比信號(hào)生成PWM波形。如圖2所示。
2 各功能模塊設(shè)計(jì)
2.1 電機(jī)驅(qū)動(dòng)模塊
本設(shè)計(jì)中直流電機(jī)驅(qū)動(dòng)模中采用ST公司生產(chǎn)的一種高電壓、大電流電機(jī)驅(qū)動(dòng)芯片L298P,內(nèi)含兩個(gè)H橋的高電壓大電流全橋式驅(qū)動(dòng)器,采用標(biāo)準(zhǔn)TIL邏輯電平信號(hào)控制。由L298P構(gòu)成的脈寬調(diào)速電路如圖3所示。在圖中,L298P可驅(qū)動(dòng)兩個(gè)直流電機(jī),可以分別控制它們的轉(zhuǎn)速、轉(zhuǎn)向、運(yùn)轉(zhuǎn)與停止。圖中ENA、ENB分別控制兩個(gè)電機(jī)的運(yùn)轉(zhuǎn)與停止,當(dāng)端口為高電平時(shí)電機(jī)旋轉(zhuǎn),加低電平時(shí)電機(jī)停止旋轉(zhuǎn):由In1,In2端送入脈寬調(diào)制信號(hào),通過(guò)改變信號(hào)的脈寬達(dá)到調(diào)速和換向的目的。M1_+,M1_-和M2_+,M2_-分別是兩個(gè)直流電機(jī)的電壓輸入端。
2.2 分頻模塊
盡管可以設(shè)計(jì)中采用鎖相環(huán)來(lái)完成分頻器的設(shè)計(jì),但為了節(jié)省邏輯資源,降低芯片功耗,在對(duì)于時(shí)鐘要求不太嚴(yán)格的設(shè)計(jì)中,可自主設(shè)計(jì)進(jìn)行時(shí)鐘分頻。本設(shè)計(jì)中采用常用的計(jì)數(shù)分頻,只改變分頻系數(shù)就可實(shí)現(xiàn)隨意分頻。其設(shè)計(jì)過(guò)程簡(jiǎn)單,且消耗系統(tǒng)資源少。在本設(shè)計(jì)中輸入時(shí)鐘CLK_25M為25 MHz,為了設(shè)計(jì)方便,選擇分頻系數(shù)設(shè)為16。通過(guò)對(duì)模塊輸出進(jìn)行仿真,測(cè)量時(shí)鐘輸出頻率為1.562 5 MHz,周期為640 ns滿足設(shè)計(jì)要求。
2.3 計(jì)數(shù)模塊
本設(shè)計(jì)中采用霍爾傳感器對(duì)直流電機(jī)進(jìn)行轉(zhuǎn)速測(cè)量,電機(jī)每轉(zhuǎn)一圈,霍爾傳感器就輸出一個(gè)高脈沖。測(cè)速模塊其功能主要是計(jì)數(shù),并且將所得到的數(shù)字應(yīng)予鎖存輸出。根據(jù)單位周期內(nèi)霍爾傳感器輸出的高脈沖數(shù)就可以估算出電機(jī)的轉(zhuǎn)速。在本設(shè)計(jì)中設(shè)定每500 ms的周期內(nèi)對(duì)計(jì)數(shù)結(jié)果進(jìn)行一次輸出并清零。根據(jù)其具體邏輯功能將利用Verilog HDL語(yǔ)言實(shí)現(xiàn),其邏輯框圖如圖4所示。
測(cè)速模塊的邏輯仿真結(jié)果如圖5所示,分頻后系統(tǒng)時(shí)鐘頻率為1.562 5 MHz,系統(tǒng)復(fù)位后,開(kāi)始對(duì)被測(cè)霍爾傳感器輸入進(jìn)行計(jì)數(shù)測(cè)量,其結(jié)果為20。已經(jīng)被測(cè)輸入信號(hào)周期為50 ms,則頻率為20,表明設(shè)計(jì)完全正確。
2.4 并行控制模塊
并行控制模塊部分是電機(jī)控制的核心部分,主要負(fù)責(zé)根據(jù)預(yù)定設(shè)置和計(jì)數(shù)模塊的計(jì)數(shù)結(jié)果,按照設(shè)計(jì)目的,完成對(duì)PWM占空比的控制。由于要實(shí)現(xiàn)各通道電機(jī)之間互不干擾,則要求各并行控制模塊與測(cè)速模塊和PWM生成模塊一一對(duì)應(yīng),以實(shí)現(xiàn)各通道并行獨(dú)立控制。
2.5 PWM生成模塊
產(chǎn)生PWM原理:FPGA中的基準(zhǔn)計(jì)數(shù)器用來(lái)產(chǎn)生類似模擬電路的三角波基準(zhǔn),是一個(gè)最小計(jì)數(shù)值為0,最大計(jì)數(shù)值為周期寄存器中保存的數(shù)值。PWM的任務(wù)邏輯由輸入時(shí)鐘CLK,輸出信號(hào)pwm_out,使能位,32位計(jì)數(shù)器以及一個(gè)32位比較器組成。輸入時(shí)鐘作為32位計(jì)數(shù)器的時(shí)鐘信號(hào),32位計(jì)數(shù)器的當(dāng)前值與占空比設(shè)定寄存器中的值經(jīng)過(guò)比較器后來(lái)決定pwm_out的輸出為高或?yàn)榈?。?dāng)前計(jì)數(shù)器中的值小于或等于占空比寄存器中的值時(shí),pwm_out輸出低電平,否則輸出高電平。PWM的周期設(shè)定寄存器來(lái)設(shè)置pwm_out的信號(hào)周期,當(dāng)前計(jì)數(shù)器的值等于周期設(shè)定寄存器中設(shè)定的值時(shí)產(chǎn)生一個(gè)復(fù)位信號(hào)來(lái)清除計(jì)數(shù)器中的值。使能控制寄存器能使時(shí)鐘信號(hào)有效或無(wú)效,從而控制計(jì)數(shù)器是否工作,進(jìn)而控制pwm_out是否保持當(dāng)前狀態(tài)不變。PWM生成模塊邏輯圖如圖6所示。
本系統(tǒng)共設(shè)計(jì)了4條PWM信號(hào)輸出通道,每條通道的仿真波形如圖7所示。通過(guò)仿真發(fā)現(xiàn),當(dāng)改變占空比寄存器data中的數(shù)據(jù)時(shí),模塊輸出信號(hào)波形的占空比也隨之發(fā)現(xiàn)變化,符合脈寬調(diào)制的要求。在本設(shè)計(jì)中采用時(shí)鐘同步信號(hào),只有當(dāng)一個(gè)完整的PWM波輸出時(shí),才能接收data下一個(gè)數(shù)據(jù),有效避免輸出信號(hào)發(fā)生混亂,使輸出信號(hào)具有良好的可預(yù)見(jiàn)性。
3 實(shí)驗(yàn)結(jié)果與分析
本實(shí)驗(yàn)中設(shè)計(jì)了四通道PWM以完成對(duì)4個(gè)直流電機(jī)控制。利用Quartus II自帶的仿真工具對(duì)系統(tǒng)進(jìn)行時(shí)序仿真,如圖7所示。由圖可以看出各個(gè)通道的PWM波的占空比與每個(gè)通道的霍爾傳感器輸入信號(hào)有關(guān),各通道之間互不影響。
對(duì)系統(tǒng)綜合之后,通過(guò)觀察RTL邏輯視圖,如圖8所示,可以看出,各個(gè)通道是并行的,互不影響,符合設(shè)計(jì)要求。同時(shí),也不難看出,系統(tǒng)結(jié)構(gòu)較為簡(jiǎn)單,具有較強(qiáng)的拓展能力,能夠方便地實(shí)現(xiàn)多通道電機(jī)的并行控制。
隨著PWM設(shè)計(jì)通道數(shù)量的增多,所需要的片內(nèi)邏輯資源也就越多,即設(shè)計(jì)PWM通道數(shù)目在一定程度上取決于FPGA片機(jī)邏輯資源的大小。
4 結(jié)束語(yǔ)
本設(shè)計(jì)充分利用了FPGA豐富的I/O引腳資源及程序并行運(yùn)行的特點(diǎn),代替了普通的單片機(jī)實(shí)現(xiàn)了多通道電機(jī)的控制,克服了傳統(tǒng)PWM控制器通道少的不足,同時(shí)有效地減少了電路規(guī)模。本系統(tǒng)采用Quartus II自帶的仿真工具進(jìn)行仿真,驗(yàn)證了設(shè)計(jì)的可行性。雖然本設(shè)計(jì)在功能上還比較單一,在由于其具有良好拓展性,可根據(jù)實(shí)現(xiàn)設(shè)計(jì)要求,能夠方便的對(duì)系統(tǒng)進(jìn)行升級(jí)和維護(hù)。