基于NiosⅡ的直流電機PID調(diào)速控制系統(tǒng)
圖2中:clk為時鐘信號端;sta用來控制直流電機正反轉(zhuǎn);conword為占空比信號;PWM_A表示直流電機處于正轉(zhuǎn)狀態(tài)時的占空比輸出;PWM_B表示直流電機處于反轉(zhuǎn)時的占空比輸出。
PWM模塊的原理如下:將時鐘源50 MHz的基頻信號64分頻,作為PWM模塊的基頻信號,以256個該基頻脈沖信號作為PWM輸出的一個周期,由NiosⅡ處理器給出的conword的值指定一個PWM周期內(nèi)高電平持續(xù)時間,改變conword的值即刻改變占空比輸出的值。
1.3 測速模塊
系統(tǒng)中的測速模塊生成方式如PWM模塊,它在整個系統(tǒng)中的作用如下:主要是利用基頻的周期來計算光柵信號的周期,算出直流電機的轉(zhuǎn)速,其生成的模塊如圖3所示。
圖3中:clk為時鐘信號端;en為使能信號,即表示光柵有效;dout表示光櫥有效時間。
測速模塊的原理如下:給出已知頻率的基頻,用光柵作為門限,測基頻脈沖的個數(shù),由基頻的周期來計算光柵信號的周期,再算出轉(zhuǎn)速,電機控制算法即根據(jù)測速模塊測出的速度進(jìn)行算法調(diào)整,達(dá)到閉環(huán)控制的效果。
2 系統(tǒng)軟件設(shè)計
本次設(shè)計的軟件主要分為兩部分:
(1)利用QuartusⅡ7.2完成NiosⅡ系統(tǒng)的構(gòu)建:利用SOPC Builder構(gòu)建NiosⅡCPU;使用VHDL編寫各控制模塊。
(2)利用NiosⅡIDE完成系統(tǒng)控制與控制算法編寫,主要使用C語言進(jìn)行控制與算法編寫;對直流電機進(jìn)行成功控制后,在NiosⅡIDE上采集輸出轉(zhuǎn)速的實測數(shù)據(jù),將其導(dǎo)入Matlab畫出控制效果圖,整體軟件框圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/151391.htm
本次設(shè)計使用SOPC Builder組建的NiosⅡ嵌入式系統(tǒng),如圖5所示。該系統(tǒng)除了配置NiosⅡ最小系統(tǒng)的CPU核NiosII CPU,Avalon總線,使用FPGA資源例化的存儲器之外,還有以下外接設(shè)備的控制單元:
(1)SDRAM Controller;
(2)Common Flash Interface;
(3)JTAG UART;
(4)鎖相環(huán)PLL;
(5)Interval Timer;
(6)通用I/O接口,包括PWM模塊接口conw,msta和測速模塊接口speed,按鈕接口button。
對于SOPC Builder組建的NiosⅡ系統(tǒng),可以在QuartusⅡ軟件方便地調(diào)用,在QuartusⅡ中Block Diagram設(shè)計調(diào)用NiosⅡ系統(tǒng)的框圖如圖6所示。給該系統(tǒng)配備工作時鐘,并分配FPGA的I/O管腳,程序經(jīng)綜合,布局,仿真之后,就可將配置文件通過各種配置方法下載到FPGA上。本文使用JTAG+AS方式配置,通過USB Blaster下載電纜線將計算機USB接口與FPGA的JTAG口相連,把配置文件從計算機下載到FPGA中,這樣就完成了系統(tǒng)的軟件設(shè)計。
評論