專利名稱:基于fpga的直流電機(jī)控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于現(xiàn)場可編程門陣列FPGA的直流電機(jī)控制器,特別是一種可驅(qū)動三相直流無刷電機(jī)和直流有刷電機(jī)的、以FPGA為核心并內(nèi)嵌微控制器單元和通用異步收發(fā)器UART接口邏輯的可編程直流電機(jī)控制器。
背景技術(shù):
目前廣泛應(yīng)用的電機(jī)控制器大多是基于MCU/DSP設(shè)計的,因為一些MCU和DSP中配置了用于電機(jī)控制的專用指令、接口和外設(shè),應(yīng)用較為方便,但是,在實際應(yīng)用中仍需要大量外圍邏輯電路擴(kuò)展其硬件功能。單片機(jī)程序串行執(zhí)行的特點決定了軟件功能的增多將會影響到運算的實時性。在一些特殊的應(yīng)用領(lǐng)域,例如,在高溫、低溫,強電磁干擾或者有放射性粒子輻射的太空環(huán)境中,MCU和DSP就無法正常工作。而FPGA具有以下優(yōu)點,可以滿足上述應(yīng)用場合的需要。(1)FPGA能最大限度地集成外圍邏輯,實現(xiàn)單片化設(shè)計,提高系統(tǒng)的整體可靠性;(2)FPGA可采用獨立的定制運算邏輯,運算的實時性好;(3)FPGA可以方便地采用硬件定序器和冗余邏輯設(shè)計,以提高抗干擾性能;(4)FPGA已有從商用級到航天級不同級別的芯片,環(huán)境適用范圍廣泛。
為此,國內(nèi)外一些研究者將FPGA應(yīng)用于電機(jī)控制中,研制出了可以實際應(yīng)用的裝置。
香港Dynacity公司采用DSP和FPGA組成的多維位置控制系統(tǒng)(“ModularMulti-Axis Motion Control And Driving System And Method Thereof”,US0100723,11 May2006)中,DSP完成電流、位置雙閉環(huán)控制算法以及上位機(jī)通信功能,F(xiàn)PGA可根據(jù)DSP給定的脈寬值和電機(jī)霍爾反饋信號,產(chǎn)生PWM驅(qū)動信號。FPGA與DSP之間采用總線連接,采用單DSP、多FPGA結(jié)構(gòu)完成多個電機(jī)的控制。由于依然由DSP實現(xiàn)控制算法,控制的實時性將會受到被控電機(jī)數(shù)量的影響。
日本SANYO(三洋)公司采用MCU和FPGA組成的自動機(jī)械控制器(“ROBOTCONTROL DEVICE”,JP2001322078,2001-11-20)由FPGA完成閉環(huán)控制算法,MCU用于上位機(jī)通信和FPGA的在線配置。該系統(tǒng)采用單MCU、多FPGA結(jié)構(gòu)完成多個電機(jī)的控制,避免了上述系統(tǒng)控制實時性方面的問題。但是,F(xiàn)PGA僅僅實現(xiàn)控制算法,驅(qū)動信號的產(chǎn)生仍需其它芯片完成,系統(tǒng)結(jié)構(gòu)復(fù)雜且依賴MCU完成上位機(jī)通信。
日本TOSHIBA(東芝)公司采用MPU(微處理器)和FPGA組成的伺服控制器(“SERVO CONTROLLER”,JP2000330641,2000-11-30)由MPU完成控制功能,由FPGA實現(xiàn)位置傳感器的通信協(xié)議轉(zhuǎn)換,利用FPGA重配置成不同的串行通信協(xié)議邏輯,使該控制器可靈活地適應(yīng)多種串口通信的位置傳感器。FPGA的使用減少了系統(tǒng)大量外圍硬件并具有一定的可升級能力,但是,系統(tǒng)的控制實際是由MPU實現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明避免了上述系統(tǒng)存在的不足,提供了一種以FPGA為核心,整合電機(jī)驅(qū)動波形發(fā)生、閉環(huán)控制運算、上位機(jī)通信功能于一體,可在線編程的基于FPGA的直流電機(jī)控制器。
本發(fā)明解決技術(shù)問題所采用的技術(shù)方案的特點是本發(fā)明基于現(xiàn)場可編程門陣列FPGA的直流電機(jī)控制器,由FPGA芯片、FPGA配置芯片、ADC模數(shù)轉(zhuǎn)換芯片、電源模塊和功率放大模塊組成;所述電機(jī)控制器利用FPGA芯片對輸入的電機(jī)霍爾反饋信號進(jìn)行解碼,得到電機(jī)轉(zhuǎn)子位置以驅(qū)動三相直流無刷電機(jī);或?qū)PGA芯片霍爾反饋輸入端設(shè)置為固定的預(yù)設(shè)電平,以驅(qū)動直流有刷電機(jī);電機(jī)控制器由FPGA芯片捕獲電機(jī)光電碼盤的兩路脈沖信號,比較二者相位得出電機(jī)轉(zhuǎn)子的旋轉(zhuǎn)方向,并對脈沖計數(shù)得到電機(jī)轉(zhuǎn)速;電機(jī)控制器利用FPGA芯片控制ADC模數(shù)轉(zhuǎn)換芯片對電機(jī)的電樞電流進(jìn)行恒定周期采樣;在所述FPGA芯片內(nèi)分別設(shè)置驅(qū)動模塊、控制模塊和通信模塊;由控制模塊對速度給定和速度反饋比較和運算,得出驅(qū)動信號脈寬給定值;驅(qū)動模塊根據(jù)所述脈寬給定值和電機(jī)轉(zhuǎn)子位置反饋信號產(chǎn)生相應(yīng)的帶有可編程死區(qū)時間的PWM驅(qū)動信號,由FPGA芯片輸出至功率放大模塊,驅(qū)動電機(jī)構(gòu)成閉環(huán)速度控制系統(tǒng);所述通信模塊至少包括一個含有UART(通用異步收發(fā)器)接口的嵌入式MCU(微控制器單元),由所述MCU管理FPGA芯片內(nèi)的用戶寄存器,并通過UART接口與上位機(jī)通信;在FPGA芯片完成配置后,由所述MCU對FPGA芯片進(jìn)行內(nèi)部用戶寄存器的初始化,并通過所述UART接口向上位機(jī)發(fā)出握手信號;上位機(jī)(通用計算機(jī)或單片機(jī))通過UART接口與所述MCU通信,并實時讀寫FPGA芯片內(nèi)的用戶寄存器,實現(xiàn)對電機(jī)的遠(yuǎn)程控制。
本發(fā)明基于FPGA的直流電機(jī)控制器的特點也在于FPGA芯片內(nèi)嵌的MCU采用取指令-指令譯碼-指令執(zhí)行三級流水線和8位指令總線;其中MCU寄存器寫操作指令的高4位是操作碼,低4位是立即數(shù),上位機(jī)通過UART接口發(fā)送所述寄存器寫操作指令對MCU寄存器進(jìn)行寫操作,并通過讀取寄存器的數(shù)值驗證指令執(zhí)行的正確性;其余指令格式為高4位是操作碼、低4位是校驗碼,有校驗碼且校驗錯誤的指令被MCU取指單元用空操作指令替換。
MCU使用FPGA內(nèi)部分布式存儲器(Distributed RAM)和FPGA芯片外部并口ROM共同作為其程序存儲器;MCU依次執(zhí)行塊存儲器和外部ROM內(nèi)的預(yù)編程指令完成FPGA工作寄存器的初始化。
MCU采用帶校驗邏輯的主從PC設(shè)計;主從PC同步計數(shù),如二者數(shù)值不等,主從PC將在下一個時鐘周期同時復(fù)位,MCU取指單元同步終止下一時鐘周期的取指令操作。
控制模塊對速度給定和速度反饋的運算是采用PI(比例、積分)算法,并在所述FPGA芯片內(nèi)嵌設(shè)硬件運算模塊,由所述運算模塊進(jìn)行實時并行運算,所述運算模塊的系數(shù)寄存器由上位機(jī)在線讀寫。
驅(qū)動模塊是以電機(jī)霍爾傳感器相位差、轉(zhuǎn)向給定值和霍爾反饋信號作為地址對所述FPGA內(nèi)部塊存儲器中存儲的霍爾真值表查表得到未經(jīng)脈寬調(diào)制的驅(qū)動信號。
ADC模數(shù)轉(zhuǎn)換芯片采用具有低功耗模式和高速采樣模式的AD7819芯片,所述AD7819芯片在加電后由FPGA芯片內(nèi)嵌的看門狗進(jìn)行低功耗模式到高速采樣模式的切換,并工作于高速采樣模式下。
與已有技術(shù)相比,本發(fā)明的有益效果體現(xiàn)在1.本發(fā)明采用單片F(xiàn)PGA實現(xiàn)控制功能;FPGA內(nèi)部各模塊時序均由硬件定序器實現(xiàn);整體可靠性優(yōu)于采用通用單片機(jī)的系統(tǒng)和同時采用單片機(jī)和FPGA的多片系統(tǒng)。
2.本發(fā)明可以通過采用FPGA內(nèi)部Distributed RAM和外部并口ROM共同作為其嵌入式MCU的程序存儲器以完成用戶寄存器初始化,用戶僅需了解MCU的10條指令和各用戶寄存器地址,即可對外部ROM中初始化程序編程,使其滿足使用需要,其中不涉及FPGA原程序,相對于已知的可編程控制器來說,使用更為簡單。
3.本發(fā)明可以通過采用雙PC結(jié)構(gòu)的嵌入式MCU,使復(fù)位時間僅為一個時鐘周期,優(yōu)于通用單片機(jī)采用的看門狗復(fù)位方式。
4.本發(fā)明的控制模塊可以采用獨立的并行運算邏輯實現(xiàn),運算延時小且恒定,運算實時性優(yōu)于采用單片機(jī)完成控制算法的系統(tǒng)。
圖1是本發(fā)明系統(tǒng)硬件框圖。
圖2是本發(fā)明FPGA芯片配置原理圖。
圖3是本發(fā)明TTL-LVTTL電平轉(zhuǎn)換電路圖。
圖4是本發(fā)明模數(shù)轉(zhuǎn)換電路原理圖。
圖5是本發(fā)明TTL-RS232電平轉(zhuǎn)換電路原理圖。
圖6是本發(fā)明光電隔離電路原理圖。
圖7是本發(fā)明MOSFET功率放大電路原理圖。
圖8是本發(fā)明電流采樣前置放大電路原理圖。
圖9是FPGA芯片功能模塊及接口說明。
圖10是本發(fā)明FPGA芯片驅(qū)動模塊框圖。
圖11是本發(fā)明FPGA芯片通信模塊框圖。
圖12是本發(fā)明系統(tǒng)初始化流程圖。
以下通過具體實施方式
,并結(jié)合附圖對本發(fā)明作進(jìn)一步說明。
具體實施例方式參見圖1,本實施例中控制對象選用了24V/16W的永磁直流無刷電機(jī),其內(nèi)置的霍爾傳感器相位差為120度,配有200線/圈的同軸光電碼盤。電機(jī)為三相八極,每周換向4次,力矩波動較小??刂破饔蓛刹糠纸M成控制部分以FPGA芯片為核心,由電平轉(zhuǎn)換、模數(shù)轉(zhuǎn)換和數(shù)碼管顯示、撥碼開關(guān)給定等輔助電路組成;驅(qū)動部分由光電隔離、前置放大和三相MOSFET功率橋組成。
本實施例中FPGA芯片選用Xilinx公司的Spartan II S150,其內(nèi)部包含約3888個邏輯單元,48Kbit的雙口塊存儲器BlockRAM,核心電壓2.5V,采用主動串行配置模式,由專用芯片XCF01實現(xiàn),配置電路如圖2所示。
電機(jī)的霍爾電路和光電碼盤由額外的低壓電源供電,信號均為+5V標(biāo)準(zhǔn)TTL電平,需要轉(zhuǎn)換為與FPGA芯片一致的3.3V的LVTTL。轉(zhuǎn)換電路如圖3所示,三路霍爾信號Hall1、Hall2、Hall3經(jīng)濾波后送入3.3V供電的74HC14,兩路光電脈沖信號channel_A、channel_B和一路來自驅(qū)動板的保護(hù)反饋信號Fault_n直接接入74HC14轉(zhuǎn)換為LVTTL電平。
參見圖4,電機(jī)的電流反饋采用8位模數(shù)轉(zhuǎn)換芯片AD7819實現(xiàn),最高采樣速度可達(dá)200KPS,其并行數(shù)據(jù)接口相對于串口ADC可以獲得更小的采樣延時。由TL431為ADC提供一個2.5V的參考電壓源,圖5所示,本實施例中采用PC機(jī),即個人計算機(jī)作為上位機(jī),串口電平為RS232標(biāo)準(zhǔn),與FPGA芯片之間采用ICL3232進(jìn)行電平轉(zhuǎn)換。當(dāng)Spartan II的輸入口配置為LVTTL標(biāo)準(zhǔn)時可承受5V電壓,因此,ICL3223使用5V或3.3V供電皆可。
圖6所示,驅(qū)動部分使用電機(jī)電源+24V供電,PWM輸入信號和保護(hù)反饋信號皆經(jīng)過光耦隔離。高速光耦6N137用于隔離PWM信號。
功率管的驅(qū)動采用基于浮柵驅(qū)動技術(shù)的IR2130,它能與電機(jī)高壓電源共地運行,從而實現(xiàn)功率模塊的單電源設(shè)計。該芯片可同時驅(qū)動6只N溝道MOSFET組成三相功率橋,并具有過電流保護(hù)功能,其典型應(yīng)用原理圖如圖7所示。
參見圖8,檢流電阻上的壓降經(jīng)過濾波并由LM358進(jìn)行前置放大后送至ADC模塊。
FPGA芯片作為控制器核心,整合了驅(qū)動波形發(fā)生、閉環(huán)控制運算和上位機(jī)通信功能。如圖9所示,絕大部分控制參數(shù)可由撥碼開關(guān)和上位機(jī)共同給定,包括PWM輸出使能、剎車、換向、脈寬/速度給定,輸入?yún)?shù)經(jīng)過FPGA芯片內(nèi)部優(yōu)先級判定后送入控制和驅(qū)動模塊。通信模塊則完成控制器參數(shù)的初始化和遠(yuǎn)程控制。
FPGA芯片的霍爾傳感器相位選擇管腳和霍爾反饋管腳決定驅(qū)動電機(jī)的種類驅(qū)動有刷電機(jī)時,霍爾相位選擇腳接高電平,U相霍爾反饋腳接高電平,V、W兩相接低電平,驅(qū)動部分由U相、W相上下橋臂構(gòu)成H橋驅(qū)動;接三相無刷電機(jī)時,霍爾反饋管腳用于輸入電機(jī)的轉(zhuǎn)子位置反饋信號,霍爾相位選擇腳應(yīng)與電機(jī)霍爾傳感器的相位一致當(dāng)霍爾傳感器相位差為60/300時,該管腳接高電平,120/240時接低電平,本實施例中選擇后者。
驅(qū)動模塊包括了PWM波形產(chǎn)生,電機(jī)轉(zhuǎn)子位置譯碼、剎車和過流保護(hù)、死區(qū)檢測、驅(qū)動時序控制、ADC控制狀態(tài)機(jī)、速度反饋脈沖計數(shù)器和數(shù)碼管顯示驅(qū)動等電機(jī)開環(huán)驅(qū)動所需的功能,參見圖10。
驅(qū)動信號的脈寬給定量為8位,由外部撥碼開關(guān)和脈寬寄存器(所述脈寬寄存器在加電時初始化并可由上位機(jī)讀寫)中的數(shù)值比較決定,比較器會選擇其中一個較小值作為有效輸入量。當(dāng)上位機(jī)進(jìn)行調(diào)速時,外部撥碼開關(guān)可以進(jìn)行限速。當(dāng)開/閉環(huán)控制位選擇為閉環(huán)控制時,脈寬給定寄存器的值被作為速度給定量送入控制模塊,經(jīng)過運算得到的脈寬給定量取代原脈寬寄存器的值送入驅(qū)動模塊。PWM波發(fā)生器根據(jù)脈寬產(chǎn)生相應(yīng)的PWM載波,載波頻率為20.8KHz(周期48.1uS),占空比調(diào)節(jié)范圍是15.6%~95.0%,對應(yīng)脈寬約為7.5uS~45.7uS。
轉(zhuǎn)子位置譯碼器根據(jù)霍爾相位選擇位、旋轉(zhuǎn)方向位和三路霍爾信號查表得出功率橋的驅(qū)動信號。三路下橋臂驅(qū)動信號作為PWM的門控信號對載波進(jìn)行調(diào)制,三路上橋臂信號不做PWM調(diào)制。錯誤的霍爾信號會被捕獲并顯示在一個LED上,同時所有功率管被截止。
電機(jī)制動時,控制器輸出的驅(qū)動信號使上橋臂功率管全部截止,下橋臂全部導(dǎo)通進(jìn)行能耗制動,此時需考慮功率管的耗散功率。也可以使用功率電阻做能耗元件,由輸出使能腳控制繼電器切換,本實施例中選用前者。
直流無刷電機(jī)的驅(qū)動信號不會使上下橋臂同時切換,但是,剎車和換向時存在使功率模塊橋臂直通的可能,因此,內(nèi)置了一個可編程的死區(qū)發(fā)生器以避免上述情況的發(fā)生。死區(qū)時間從300nS~67.2uS可調(diào),該時間定義為最小死區(qū)時間,設(shè)定值應(yīng)小于正常驅(qū)動信號的死區(qū)時間。當(dāng)剎車或換向?qū)е买?qū)動信號的死區(qū)時間小于設(shè)定時間時,死區(qū)發(fā)生邏輯會延長死區(qū)時間至設(shè)定值。
本實施例中有雙重過流保護(hù),分別由外部過流保護(hù)電路和FPGA芯片內(nèi)部保護(hù)邏輯完成,當(dāng)過流保護(hù)有效時,功率管被全部截止。功率管的過流保護(hù)由驅(qū)動板上IR2130完成,其動作延時約150nS,保護(hù)的同時會將過流信號反饋給FPGA。內(nèi)部保護(hù)信號來自電流反饋模塊,其動作延時約20uS,用于保護(hù)電機(jī)。電流反饋模塊由一個帶看門狗的狀態(tài)機(jī)構(gòu)成,用于反饋采樣的AD7819擁有兩種工作模式低功耗模式和高速采樣模式,加電后器件初始工作狀態(tài)為低功耗模式,看門狗使其切換至高速采樣模式后再由狀態(tài)機(jī)驅(qū)動其連續(xù)采樣,當(dāng)ADC輸出值為最大值時,電流反饋模塊就會產(chǎn)生一個內(nèi)部過流信號。上述兩種過流信號都會導(dǎo)致FPGA輸出功率管截止信號。當(dāng)過流反饋信號無效時,過流保護(hù)邏輯可被內(nèi)部PWM信號的低電平重置,下一個周期PWM信號將正常輸出。
頻繁的剎車和輸出截止會受到驅(qū)動時序控制邏輯的限制,由剎車或截止?fàn)顟B(tài)轉(zhuǎn)換到正常輸出會有320mS的延時檢測,脈寬低于此值的控制給定信號不會使驅(qū)動邏輯產(chǎn)生相應(yīng)的動作。
電機(jī)的速度反饋是通過對一個與電機(jī)同軸安裝的光電碼盤的輸出脈沖計數(shù)實現(xiàn)的。該碼盤為增量式碼盤,電機(jī)旋轉(zhuǎn)時輸出A、B兩路有90度相位差的脈沖信號。一個10mS定時器控制計數(shù)器對光電碼盤的反饋脈沖計數(shù)得到轉(zhuǎn)速,旋轉(zhuǎn)方向則通過檢測A、B兩路脈沖相位差的極性判定。計算出的轉(zhuǎn)速經(jīng)過譯碼后由掃描邏輯驅(qū)動數(shù)碼管實時顯示,同時也送至控制模塊以完成閉環(huán)運算。
控制模塊采用PI控制算法,可表述為u(k)=Kpe(k)+KiΣj=0ke(j)]]>上述表達(dá)式由FPGA內(nèi)的硬件運算模塊進(jìn)行實時運算,比例、積分系數(shù)可由上位機(jī)在線更改。積分運算電路擁有積分限檢測邏輯以防止積分飽和造成系統(tǒng)振蕩,當(dāng)輸出達(dá)到最小脈寬后,積分累加器只做加法,反之則只減不加。
通信模塊用于完成驅(qū)動模塊和控制模塊內(nèi)的寄存器的加電初始化和上位機(jī)通信功能,其核心是一個帶有UART口的嵌入式MCU,見圖11。
UART波特率為9600Bd,即每個數(shù)據(jù)位周期約為104us。其發(fā)送、接收數(shù)據(jù)格式為一位啟動位(低電平),8位數(shù)據(jù)位,一位停止位(高電平),啟動位檢測邏輯能夠識別脈寬低于52us的低電平干擾信號。
MCU采用取指令、指令譯碼、指令執(zhí)行三級流水線結(jié)構(gòu),主頻10MHz。MCU指令共8位,其中MCU寄存器寫操作指令的高4位是操作碼,低4位是立即數(shù),其余指令格式為高4位是操作碼、低4位是校驗碼,有校驗碼且校驗錯誤的指令將被MCU取指單元用空操作指令替換。
MCU內(nèi)有兩個8位寄存器分別用于地址寄存和數(shù)據(jù)寄存,寄存器操作指令中的4位立即數(shù)分次寫入地址、數(shù)據(jù)寄存器高4位和低4位組成8位地址和數(shù)據(jù)。MCU使用上述寄存器與用戶寄存器進(jìn)行數(shù)據(jù)交換,最大可管理256個8位用戶寄存器,這些用戶寄存器也可以靈活地自由組合,例如定義為128個16位寄存器。
系統(tǒng)加電初始化后MCU狀態(tài)字的使能位為‘0’,取指單元即從程序存儲器中取指令以完成寄存器的加電初始化,見圖12。指令地址由主PC(程序計數(shù)器)給出,一個同步計數(shù)的從PC和主PC的數(shù)值一起送入PC校驗邏輯進(jìn)行比較,校驗錯誤信號將使PC在下一個時鐘復(fù)位,并終止下一時鐘周期的取指令操作(流水線操作時,主PC當(dāng)前地址對應(yīng)的指令將在下一個時鐘周期取出)。程序存儲器由FPGA內(nèi)部DistributedRAM和外部并口ROM組成,內(nèi)部RAM中存儲了預(yù)置的默認(rèn)參數(shù)和無需用戶更改的信息,外部ROM由用戶編程,程序的最后一條指令應(yīng)將初始化使能位置為‘1’,從而使MCU進(jìn)入對UART接收器的硬件查詢狀態(tài)。本實施例中預(yù)留了ROM接口而僅使用內(nèi)部RAM作為程序存儲器。
當(dāng)初始化完成后,控制器進(jìn)入工作狀態(tài),用戶寄存器的初始值和外部撥碼開關(guān)的給定經(jīng)過優(yōu)先級判定后作為控制器的工作參數(shù)給定量。當(dāng)控制器獨立工作時,用戶可以通過撥碼開關(guān)進(jìn)行控制量給定;當(dāng)采用上位機(jī)控制時,撥碼開關(guān)應(yīng)預(yù)置為低優(yōu)先級的狀態(tài)給定量,此時控制器參數(shù)完全由用戶寄存器中的值決定。
當(dāng)UART接口接收到上位機(jī)指令時,MCU即取指令并執(zhí)行,否則插入空操作指令。通過讀寫用戶寄存器中的數(shù)值,上位機(jī)可在線接管控制模塊實現(xiàn)遠(yuǎn)程速度閉環(huán)控制,從而實現(xiàn)控制算法的升級。
權(quán)利要求
1.一種基于FPGA的直流電機(jī)控制器,其特征是由FPGA芯片、FPGA配置芯片、ADC模數(shù)轉(zhuǎn)換芯片、電源模塊和功率放大模塊組成;所述電機(jī)控制器利用FPGA芯片對輸入的電機(jī)霍爾反饋信號進(jìn)行解碼,得到電機(jī)轉(zhuǎn)子位置以驅(qū)動三相直流無刷電機(jī);或?qū)PGA芯片霍爾反饋輸入端設(shè)置為固定的預(yù)設(shè)電平,以驅(qū)動直流有刷電機(jī);電機(jī)控制器由FPGA芯片捕獲電機(jī)光電碼盤的兩路脈沖信號,比較二者相位得出電機(jī)轉(zhuǎn)子的旋轉(zhuǎn)方向,并對脈沖計數(shù)得到電機(jī)轉(zhuǎn)速;電機(jī)控制器利用FPGA芯片控制ADC模數(shù)轉(zhuǎn)換芯片對電機(jī)的電樞電流進(jìn)行恒定周期采樣;在所述FPGA芯片內(nèi)分別設(shè)置驅(qū)動模塊、控制模塊和通信模塊;由控制模塊對速度給定和速度反饋比較和運算,得出驅(qū)動信號脈寬給定值;驅(qū)動模塊根據(jù)所述脈寬給定值和電機(jī)轉(zhuǎn)子位置反饋信號產(chǎn)生相應(yīng)的帶有可編程死區(qū)時間的PWM驅(qū)動信號,由FPGA芯片輸出至功率放大模塊,驅(qū)動電機(jī)構(gòu)成閉環(huán)速度控制系統(tǒng);所述通信模塊至少包括一個含有UART接口的嵌入式MCU,由所述MCU管理FPGA芯片內(nèi)的用戶寄存器,并通過UART接口與上位機(jī)通信;在FPGA芯片完成配置后,由所述MCU對FPGA芯片進(jìn)行內(nèi)部用戶寄存器的初始化,并通過所述UART接口向上位機(jī)發(fā)出握手信號;上位機(jī)通過UART接口與所述MCU通信,并實時讀寫FPGA芯片內(nèi)的用戶寄存器,實現(xiàn)對電機(jī)的遠(yuǎn)程控制。
2.根據(jù)權(quán)利要求1所述的直流電機(jī)控制器,其特征是所述FPGA芯片內(nèi)嵌的MCU采用取指令-指令譯碼-指令執(zhí)行三級流水線和8位指令總線;其中MCU寄存器寫操作指令的高4位是操作碼,低4位是立即數(shù),上位機(jī)通過UART接口發(fā)送所述寄存器寫操作指令對MCU寄存器進(jìn)行寫操作,并通過讀取寄存器的數(shù)值驗證指令執(zhí)行的正確性;其余指令格式為高4位是操作碼、低4位是校驗碼,有校驗碼且校驗錯誤的指令被MCU取指單元用空操作指令替換。
3.根據(jù)權(quán)利要求2所述的直流電機(jī)控制器,其特征是所述MCU使用FPGA內(nèi)部分布式存儲器和FPGA芯片外部并口ROM共同作為其程序存儲器;MCU依次執(zhí)行塊存儲器和外部ROM內(nèi)的預(yù)編程指令完成FPGA工作寄存器的初始化。
4.根據(jù)權(quán)利要求2所述的直流電機(jī)控制器,其特征是所述MCU采用帶校驗邏輯的主從PC設(shè)計;主從PC同步計數(shù),如二者數(shù)值不等,主從PC將在下一個時鐘周期同時復(fù)位,MCU取指單元同步終止下一時鐘周期的取指令操作。
5.根據(jù)權(quán)利要求1所述的直流電機(jī)控制器,其特征是所述控制模塊對速度給定和速度反饋的運算是采用PI算法,并在所述FPGA芯片內(nèi)嵌設(shè)硬件運算模塊,由所述運算模塊進(jìn)行實時并行運算,所述運算模塊的系數(shù)寄存器由上位機(jī)在線讀寫。
6.根據(jù)權(quán)利要求1所述的直流電機(jī)控制器,其特征是所述驅(qū)動模塊是以電機(jī)霍爾傳感器相位差、轉(zhuǎn)向給定值和霍爾反饋信號作為地址對所述FPGA內(nèi)部塊存儲器中存儲的霍爾真值表查表得到未經(jīng)脈寬調(diào)制的驅(qū)動信號。
7.根據(jù)權(quán)利要求1所述的直流電機(jī)控制器,其特征是所述的ADC模數(shù)轉(zhuǎn)換芯片采用具有低功耗模式和高速采樣模式的AD7819芯片,所述AD7819芯片在加電后由FPGA芯片內(nèi)嵌的看門狗進(jìn)行低功耗模式到高速采樣模式的切換,并工作于高速采樣模式下。
全文摘要
一種基于FPGA的直流電機(jī)控制器,是以FPGA為核心,整合電機(jī)驅(qū)動波形發(fā)生、閉環(huán)控制運算、上位機(jī)通信功能于一體,既可以利用ROM自編程、又可以由上位機(jī)在線編程的直流電機(jī)控制器??煽啃愿?、控制實時性好、編程簡單靈活、應(yīng)用范圍廣泛。
文檔編號H02P6/16GK1929288SQ20061004155
公開日2007年3月14日 申請日期2006年9月15日 優(yōu)先權(quán)日2006年9月15日
發(fā)明者周揚, 徐科軍 申請人:合肥工業(yè)大學(xué)