《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于Chirp函數的NiosⅡ嵌入式實現
基于Chirp函數的NiosⅡ嵌入式實現
摘要: 文章標題:基于Chirp函數的NiosⅡ嵌入式實現。中國IT實驗室嵌入式開發(fā)頻道提供最全面的嵌入式開發(fā)培訓及行業(yè)的信息,、技術以及相關資料的下載.
關鍵詞: ARM Chirp函數 Nios Ⅱ SoPC
Abstract:
Key words :

 摘 要:首先分析Chirp函數" title="Chirp函數">Chirp函數在頻域上的一般特性,,提出利用FPGA的嵌入式軟核NiosⅡ處理器在嵌入式操作系統(tǒng)μC/OS-Ⅱ上實現Chirp的方法,,即通過NiosⅡ處理器根據Chirp函數在頻域上頻率的跳變情況實時改變輸出DDS(直接數字合成序列)模塊的頻率步進控制字的辦法,控制DDS模塊的頻率輸出,,實現Chirp函數所要達到的掃頻輸出性的目的,。通過在NiosⅡIDE編程環(huán)境中的Console窗口觀察,,該設計能很好地實現Chirp函數功能,。

關鍵詞:μC/OS-ⅡSoPC" title="SoPC">SoPC;DDs,;FPGA,;Chirp函數
 
0 引 言
    SoC(System on(2hip)是20世紀90年代提出的概念,,它是將多個功能模塊集成在一塊硅片上,,提高芯片的集成度并減少外設芯片的數量和相互之間在PCB上的連接,同時系統(tǒng)性能和功能都有很大的提高,。隨著FPGA芯片工藝的不斷發(fā)展,,設計人員在FPGA中嵌入軟核處理器成為可能,Altera和Xilinx公司相繼推出了SoPC(System on a Programmable Chip)的解決方案,,它是指在FPGA內部嵌入包括(;PtJ在內得各種IP組成一個完整系統(tǒng),,在單片FPGA中實現一個完整地系統(tǒng)功能,。與SoC相比,SoPC具有更高的靈活性,,FPGA的可編程特性使之可以根據需要任意定制SoC系統(tǒng),;與ASIC相比,SoPC具有設計周期短,,設計成本低的優(yōu)勢,,同時開發(fā)難度也大大降低。由于電磁波在傳輸過程中,,經過色散介質如不均勻的波導,,高空電離層時會發(fā)生色散現象,Chirp函數在射電天文信號的消色散處理中發(fā)揮著重要的作用,,研究在FPGA中實現Chirp函數是基于FPGA的射電宇宙信號處理的重要組成部分,。
 
l 系統(tǒng)總體設計
    圖1為基于FPGA的射電宇宙信號處理框圖。
    該設計是基于SoPC技術設計的Chirp函數信號發(fā)生器,,該系統(tǒng)把微處理器模塊和DDS模塊集成到單片FPGA芯片內部,,通過在嵌入式操作系統(tǒng)μC/OS-Ⅱ編寫的程序,實時控制微處理器對DDS的控制字輸出,,DDS模塊根據頻率控制字的不同,,輸出不同的數字化正弦波。使之符合Chirp函數的時變頻率特征,。Chirp函數根據輸出頻率的遞變規(guī)律一般分為兩種:線性Chirp函數和非線性Chirp函數,,以下是兩種Chirp函數在頻域上的表現圖如圖2,圖3所示,。
    從圖2,,圖3可以看出Chirp函數的頻率輸出與時間的f-t關系可以總結為:
    (1)對于線性Chirp函數
    在連續(xù)域時間域內有關系式:
式中:k為常數;f0為初始輸出頻率,;t為連續(xù)時間。
    在離散時間域有關系式:
    
    式中:k為常數,;f0為初始輸出頻率,;n為采樣點。
    (2)對于非線性Chirp函數
    在連續(xù)域時間域內有關系式:
    
    式中:f為非線性函數,;f0為初始輸出頻率,;t為連續(xù)時間。
    在離散時間域有關系式: 
    
    式中:f為非線性函數,;f0為初始輸出頻率,;n為采樣點。
      因此該Chirp信號源的功能是:在NiosⅡ中建立的微控制器,;使用嵌入式操作系統(tǒng)μC/OS-Ⅱ建立對DDS頻率控制字輸出實時改變的任務,;根據線性和非線性Chirp函數的特點控制字的輸出根據需要線性或者非線性輸出,,并且在此設計中將該任務的優(yōu)先級設置為最高。利用VHDL語言編寫DDS模塊,,首先根據Matlab計算出需要的正弦數據,,然后將這些數據存儲于ROM中供DDS模塊調用,,并且通過微控制器中的Jtag_uart傳輸模塊在編程監(jiān)視窗口實時觀測當前輸入頻率的大小,,具體結構如圖4所示。

2 DDS模塊的設計
    數字式頻率合成器(DDS)模塊的工作原理是:將O~2π的正弦函數值分為N份,,將各點的幅度值存入ROM中,,再用一個相位累加器每次累加相位值ωT,得到當前的相位值,,通過查找ROM得到當前的幅度值,。其系統(tǒng)框如圖5所示。
    DDS的幾個主要參數是:系統(tǒng)時鐘頻率,,頻率控制字長,,頻率分辨率,ROM單元數,,ROM字長,。該設計的DDS是32位的,時鐘頻率為50 MHz,,頻率控制字長為32位,,ROM單元數為2的11次方,ROM字長為16位,。而且有如下關系:
    頻率分辨率=系統(tǒng)時鐘頻率/232,;
    頻率控制字(FTW)=f×232/T;
    其中:f為要合成的頻率,;T為系統(tǒng)時鐘,。
    DDS的工作過程為:每次時鐘的上升沿到來時,相位累加器(32位)中的值累加上頻率寄存器(32位)中的值,,再利用累加器的高11位作為地址進行ROM查表,,輸出相應的幅值數字信號。
    如果是掃頻工作,,只需要根據一定的規(guī)律實時修改頻率控制字,,就可以達到掃頻輸出的目的。但是該系統(tǒng)的性能受到以下兩個方面的制約:ROM單元數和ROM數值的有限字長,。由于ROM大小的限制,,ROM的單元地址位數一般都遠小于相位累加器的位數,這樣只能取相位累加器的高位作為ROM的地址進行查詢,,這就相當于引入了一個相位誤差,。而且ROM的有限字長,,不能精確表示幅度值,相當于引入了一個量化誤差,。因此應根據系統(tǒng)的性能要求選擇合理的ROM,。為了解決ROM的受限問題,該設計采用ROM壓縮技術,。因為正弦函數存在對稱和反轉特性,,即:
    
    對于O~2兀的幅度值,可以只存儲O~π/2的部分,。這樣原本需要的2的11次方個單元的ROM現在只需要2的9次方個單元的ROM就可以實現,。在MatIab中產生16位512點的O~π/2正弦波數據的命令如下:
    
    將Y數據依次存入Altera公司提供的Megawiz-ard宏單元實現的ROM中即可。
 
3 嵌入式微處理器的實現
    嵌入式微處理器的設計包括3個部分:利用SoPCBuilder定制的軟核CPU,,在QuartusⅡ環(huán)境下設計的電路和NiosⅡ編程,。
    本設計的軟核CPU采用NiosⅡ/S標準型內核,帶有16 KB的Cache,;集成了外部的FLASH和SDRAM控制器用于保存程序數據,;Jtag_Hart電腦開發(fā)板傳輸接口用于建立良好的用戶交互接口使用戶能在console界面上觀察程序運行情況;兩個位寬分別為8位和3位的輸出口作為輸出DDS模塊的控制字,;定時器用于產生CPU系統(tǒng)時鐘,;LCD控制接口用于在LCD顯示一些需要的信息。
       NiosⅡ的編程主要是基于嵌入式操作系統(tǒng)μC/OS-Ⅱ,,μC/OS-Ⅱ是一個完整的,、可移植、固化和剪裁的占先式實時多任務核(Kernel),。從1992年發(fā)布至今,,μC/OS-Ⅱ已經有了上百個的商業(yè)應用案例,在40多種處理器上成功移植,。其中Altera提供了對μCO/OS-Ⅱ的完整支持,,非常容易使用。
    μC/OS-Ⅱ提供以下系統(tǒng)服務:任務管理(TaskManagement),;事件標志(Event Flag),;消息傳遞(Message Passing);內存管理(Memory Management),;信號量(Semaphores),;時間管理(Time Management)。在應用程序中,,用戶可以方便地使用這些系統(tǒng)調用實現目標功能,。
    在該設計中建立一個主函數和兩個任務函數,主函數的功能:調用系統(tǒng)任務初始化函數OSTaskCreateExt()初始化兩個任務函數:調用系統(tǒng)開始函數OSStart()啟動系統(tǒng)開始工作,。
    任務1:實時的改變DDS控制字的輸出,,并且保持一段時間,,在遍歷完所有的需要頻率以后,延遲調用系統(tǒng)延遲函數OSTimeDlyHMSM(),,延遲63 s將該使用權交付給任務2,。
    任務2:為了保證該系統(tǒng)以后能有功能擴展,建立一個任務,,其僅僅是通過函Jtag_uart接口使用函數printf(),,向電腦發(fā)送一個任務2已經開始工作的提示信息,如果以后需要擴展功能則只需修改任務2即可,。程序的具體流程圖如圖6所示,。
    在任務1中實時改變變量i的值步進為1,,通過定義的Chirp函數關于時間和輸出頻率控制字之間的關系函數function(),,計算得到此時的頻率控制字f,并且將f的值通過API函數IOWR_ALTERA_AVALON_PIO_DATA()從I/O端口輸出以控制DDS,,然后延遲2 s使DDS保持該輸出頻率一段時間,,并且通過Jtag_uart端口在Console調試界面向用戶提示當前的信號源的輸出頻率,程序如下:
    圖7為QuartusⅡ中生成的嵌入式軟核示意圖,。
4 結 語
    該設計在21controll公司提供的V4.O FPGA/SoPC開發(fā)學習套件上面通過仿真驗證,,該套件的核心芯片為CycloneⅡ系列:EP2C20F484C8,其具有18 752個邏輯單元(LE)和52個M4K RAM塊,,能夠很好地設計存儲需要的數據,,完全符合設計要求。通過調試程序在NiosⅡIDE編程環(huán)境中的Console窗口觀察如圖8所示,。證明該程序能夠很好的完成Chirp函數的功能,。
此內容為AET網站原創(chuàng),未經授權禁止轉載,。