1 引言 國內普遍采用TM320系列的DSP器件作為永磁同步電機控制系統的主控制器,因CPU負載過(guò)重導致系統實(shí)時(shí)性降低的問(wèn)題日益顯著(zhù)。采用具有并行工作特性的FPGA器件作為主控制器能夠提高系統實(shí)時(shí)性。因此,這里給出一種基于FPGA的永磁同步電機控制器設計方案。 FPGA器件內嵌NiosⅡCPU軟核的SoPC是Altera公司首創(chuàng )的SoC解決方案。將SoPC應用到電機控制中,是當前的研究熱點(diǎn)。FPGA依靠硬件邏輯門(mén)工作,NiosⅡ處理器依靠執行軟件程序工作。而在電機控制中實(shí)現軟硬件協(xié)同工作則是設計的難點(diǎn)和創(chuàng )新之處。本設計需要特別注意軟硬件協(xié)同工作的時(shí)序控制。軟硬件之間信號的交換需按嚴格時(shí)序進(jìn)行控制。 2 片上系統規劃 片上系統功能總體規劃為電機硬件驅動(dòng)和NiosⅡ系統模塊兩部分,前者主要完成速度外環(huán),電流內環(huán)的雙閉環(huán)運算;而后者主要完成按鍵輸入、LED數碼管顯示、電機驅動(dòng)器參數設置和傳輸以及上位機通信。 3 系統硬件設計 3.1 NioslI系統模塊 3.1.1 Nios lI系統模塊的設計 在QuaauslI的SoPC builder中調出nioslI軟核。調用4個(gè)用于輸出的PIO核,掛接到Avalon總線(xiàn)上,作為信號輸出I/O端口,這4個(gè)PIO核分別是 start(啟動(dòng)電機信號),Data(16位,電機參數值),ec(8位,參數寄存器使能信號),choice(3位,多路選擇信號)。調用6個(gè)作為輸入的PIO核用以按鍵輸入。設置中斷掩碼寄存器為中斷有效,邊沿捕獲寄存器為上升沿檢測。按鍵經(jīng)FPGA引腳,用戶(hù)設計硬件防抖動(dòng)后,產(chǎn)生一個(gè)上升沿信號,啟動(dòng)NioslI處理器中斷,執行相應中斷功能。調用異步串口UART內核,實(shí)現與上位機通信,設置其波特率同定,UART通過(guò)中斷請求實(shí)現數據通信功能。圖1和圖2分別給出Niosll系統結構框圖和其電路原理圖。 ![]() ![]() 3.1.2 NiosⅡ系統軟件設計 該系統設計的軟件程序主要在Nios IED軟件中編輯調試,實(shí)現按鍵中斷程序,按鍵如下:reset(復位),start/stop(啟動(dòng)和暫停),choose(參數選擇),increase(參數值的增量),de-crease(參數值的減量),transmit(參數的傳輸);并實(shí)現串口通信中斷程序。圖3為 NiosⅡ處理器軟件執行流程。 ![]() 這里只給出 stait按鍵中斷軟件程序代碼,而choose,in-crease,decrease,transmit程序與之相同。 int main(void) { alL_irq_register(start_IRQ,start_BASE,start_ISR);//按鍵 start 的中斷注冊 IOWR_ALTERA_AVALON_PIO_IRQ_MASK(start_BASE, 0x01);//開(kāi)啟中斷使能; IOWR_ALTERA_AVALON_PIO_EDGE_CA(start_BASE, 0x00)://清除捕獲寄存器; //只給出start變量(用于啟動(dòng)電機)初始化,并寫(xiě)入輸出 寄存器:其他變量初始化相同; Unsigned start=0; . IOWR_ALTERA_AVALON_PIO_data(start_BASE,start); //變量寫(xiě)入輸出 PIO寄存器; While() } 3.2 電機硬件驅動(dòng)模塊 電機硬件驅動(dòng)模塊實(shí)現clark,park,i_park坐標變換,PI調節器,SVPWM產(chǎn)生器,轉速檢測等硬件模塊等雙閉環(huán)結構。由于上述各個(gè)模塊設計比較簡(jiǎn)單常見(jiàn),因此,這里主要介紹SoPC時(shí)序控制部分。Reset按鍵為全局復位。復位后系統軟件從主程序入口開(kāi)始執行;而此時(shí)硬件驅動(dòng)模塊中的兩個(gè)狀態(tài)計數器為“-1”。這兩個(gè)計數器計數時(shí)間對應50μs和1 ms,分別對應于電流環(huán)和速度環(huán)的采樣時(shí)間。一旦檢測到來(lái)自NiosⅡ處理器的start高電平信號,該信號作為計數使能信號,這兩個(gè)計數器從“0”開(kāi)始計數,計數為“0”時(shí)產(chǎn)生一個(gè)高電平脈沖信號,電流環(huán)計數器脈沖用于鎖存SVPWM中的Ta,Tb,Tc(三相占空比信號),并啟動(dòng)A/D轉換。速度環(huán)的計數器脈沖鎖存一個(gè)反饋速度信號,然后計數器循環(huán)計數。 4 仿真結果 該系統設計對電機驅動(dòng)部分進(jìn)行開(kāi)環(huán)驗證。給定uq(旋轉坐標中的力矩分量)為2 048(16位Q12的定點(diǎn)),ud(旋轉坐標中的勵磁分量)為0。正余弦兩個(gè)查找表各有720個(gè)地址,相鄰地址相差0.5°。每相隔50μs查找地址增量為l,即電機每隔50μs轉過(guò)0.5°,約為1 666 r/m。在QuartusⅡ中進(jìn)行時(shí)序仿真可得到如圖4和圖5所示的波形。 ![]() 由圖4可知,A相上橋臂在每個(gè)PWM周期的占空比不同,具有從增到減,從減到增的規律;從圖5可知,器件實(shí)際工作時(shí),上下橋臂死區時(shí)間為2μs,而且死區時(shí)間可采用NiosⅡ處理器設置。由于有死區時(shí)間的控制,該PWM可接入電機進(jìn)行開(kāi)環(huán)調試。 5 結論 本設計的SoPC器件已產(chǎn)生PWM波,用于開(kāi)環(huán)驗證,為后續閉環(huán)驗證提供條件。FPGA在高速數字信號處理領(lǐng)域逐顯優(yōu)越,且SoC已成為集成電路發(fā)展的主流,而SoPC是SoC一種靈活的解決方案。其具有軟硬件協(xié)同工作,合理分配軟硬件功能等特點(diǎn),從而能夠快速靈活實(shí)現系統設計。SoPC控制電機可提高電機動(dòng)態(tài)響應,縮小系統面積,節省成本。 參考文獻 1. Parkhi V,Shilaskar S,Tirmare M,et al.FPGA Implementation of PWM control technique for three phase induction motor drive[C].2008. 2. 汪洋.基于SoPC的嵌入式系統設計[J].儀器儀表用戶(hù),2008,15(2):59-61. 3. 侯建軍,郭勇.SoPC技術(shù)基礎教程[M].北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2008. 4. 李廣深,任德志.基于SoPC技術(shù)的運動(dòng)控制器設計[J].儀器儀表用戶(hù),2007,14(4):39-40. 5. 謝明偉.交流同步伺服馬達控制晶片之設計[D].基隆:國立臺灣海洋大學(xué),2004. 6. 徐凱.矢量控制中電流采樣值的定點(diǎn)Q格式處理[J].儀表技術(shù),2006(1):56-57,62. 作者:陳平 曾岳南 楊志平 (廣東工業(yè)大學(xué)模式識別實(shí)驗室,廣東,廣州,510006) 來(lái)源:電子設計工程 2009 17(12) |