新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 一種基于FPGA的永磁同步電機(jī)控制器的設(shè)計

        一種基于FPGA的永磁同步電機(jī)控制器的設(shè)計

        作者: 時間:2010-03-17 來源:網(wǎng)絡(luò) 收藏

          
          3.1.2 NiosⅡ系統(tǒng)軟件設(shè)計
          
          該系統(tǒng)設(shè)計的軟件程序主要在Nios IED軟件中編輯調(diào)試,實(shí)現(xiàn)按鍵中斷程序,按鍵如下:reset(復(fù)位),start/stop(啟動和暫停),choose(參數(shù)選擇),increase(參數(shù)值的增量),de-crease(參數(shù)值的減量),transmit(參數(shù)的傳輸);并實(shí)現(xiàn)串口通信中斷程序。圖3為NiosⅡ處理器軟件執(zhí)行流程。

        本文引用地址:http://www.104case.com/article/226186.htm


          
          這里只給出 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);//開啟中斷使能;
          
          IOWR_ALTERA_AVALON_PIO_EDGE_CA(start_BASE,
          
          0x00)://清除捕獲寄存器;
          
          //只給出start變量(用于啟動電機(jī))初始化,并寫入輸出
          
          寄存器:其他變量初始化相同;
          
          Unsigned start=0;
          
          . IOWR_ALTERA_AVALON_PIO_data(start_BASE,start);
          
          //變量寫入輸出PIO寄存器;
          
          While()
          
          }
          
          3.2 電機(jī)硬件驅(qū)動模塊
          
          電機(jī)硬件驅(qū)動模塊實(shí)現(xiàn)clark,park,i_park坐標(biāo)變換,PI調(diào)節(jié)器,SVPWM產(chǎn)生器,轉(zhuǎn)速檢測等硬件模塊等雙閉環(huán)結(jié)構(gòu)。由于上述各個模塊設(shè)計比較簡單常見,因此,這里主要介紹SoPC時序控制部分。Reset按鍵為全局復(fù)位。復(fù)位后系統(tǒng)軟件從主程序入口開始執(zhí)行;而此時硬件驅(qū)動模塊中的兩個狀態(tài)計數(shù)器為“-1”。這兩個計數(shù)器計數(shù)時間對應(yīng)50μs和1 ms,分別對應(yīng)于電流環(huán)和速度環(huán)的采樣時間。一旦檢測到來自NiosⅡ處理器的start高電平信號,該信號作為計數(shù)使能信號,這兩個計數(shù)器從“0”開始計數(shù),計數(shù)為“0”時產(chǎn)生一個高電平脈沖信號,電流環(huán)計數(shù)器脈沖用于鎖存SVPWM中的Ta,Tb,Tc(三相占空比信號),并啟動A/D轉(zhuǎn)換。速度環(huán)的計數(shù)器脈沖鎖存一個反饋速度信號,然后計數(shù)器循環(huán)計數(shù)。



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 秦皇岛市| 霍邱县| 金华市| 博湖县| 乌拉特后旗| 双桥区| 安福县| 石屏县| 社旗县| 绥棱县| 贵州省| 乌拉特中旗| 巴里| 霍山县| 乐业县| 宕昌县| 科尔| 乌鲁木齐市| 通城县| 祁连县| 仁寿县| 廉江市| 天门市| 鄂尔多斯市| 中阳县| 娄烦县| 康定县| 汝阳县| 西乌珠穆沁旗| 通榆县| 宁陵县| 阜康市| 沛县| 岳普湖县| 崇左市| 灌云县| 平乐县| 大荔县| 湖州市| 福清市| 团风县|