《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > Chirp函數(shù)的Nios Ⅱ嵌入式實現(xiàn)
Chirp函數(shù)的Nios Ⅱ嵌入式實現(xiàn)
現(xiàn)代電子技術(shù)
董 亮1,2,汪 敏2,施碩彪2,許春2 1.中國科學(xué)院研
摘要: Chirp函數(shù)的Nios Ⅱ嵌入式實現(xiàn),摘 要:首先分析Chirp函數(shù)在頻域上的一般特性,提出利用FPGA的嵌入式軟核NiosⅡ處理器在嵌入式操作系統(tǒng)μC/OS-Ⅱ上實現(xiàn)Chirp的方法,即通過NiosⅡ處理器根據(jù)Chirp函數(shù)在頻域上頻率的跳變情況實時改變輸出DDS(直接數(shù)
Abstract:
Key words :

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


0 引 言
    SoC(System on(2hip)是20世紀(jì)90年代提出的概念,它是將多個功能模塊集成在一塊硅片上,提高芯片的集成度并減少外設(shè)芯片的數(shù)量和相互之間在PCB上的連接,同時系統(tǒng)性能和功能都有很大的提高。隨著FPGA芯片工藝的不斷發(fā)展,設(shè)計人員在FPGA中嵌入軟核處理器成為可能,Altera和Xilinx公司相繼推出了SoPC(System on a Programmable Chip)的解決方案,它是指在FPGA內(nèi)部嵌入包括(;PtJ在內(nèi)得各種IP組成一個完整系統(tǒng),在單片F(xiàn)PGA中實現(xiàn)一個完整地系統(tǒng)功能。與SoC相比,SoPC具有更高的靈活性,F(xiàn)PGA的可編程特性使之可以根據(jù)需要任意定制SoC系統(tǒng);與ASIC相比,SoPC具有設(shè)計周期短,設(shè)計成本低的優(yōu)勢,同時開發(fā)難度也大大降低。由于電磁波在傳輸過程中,經(jīng)過色散介質(zhì)如不均勻的波導(dǎo),高空電離層時會發(fā)生色散現(xiàn)象,Chirp函數(shù)在射電天文信號的消色散處理中發(fā)揮著重要的作用,研究在FPGA中實現(xiàn)Chirp函數(shù)是基于FPGA的射電宇宙信號處理的重要組成部分。


l 系統(tǒng)總體設(shè)計
    圖1為基于FPGA的射電宇宙信號處理框圖。

    該設(shè)計是基于SoPC技術(shù)設(shè)計的Chirp函數(shù)信號發(fā)生器,該系統(tǒng)把微處理器模塊和DDS模塊集成到單片F(xiàn)PGA芯片內(nèi)部,通過在嵌入式操作系統(tǒng)μC/OS-Ⅱ編寫的程序,實時控制微處理器對DDS的控制字輸出,DDS模塊根據(jù)頻率控制字的不同,輸出不同的數(shù)字化正弦波。使之符合Chirp函數(shù)的時變頻率特征。Chirp函數(shù)根據(jù)輸出頻率的遞變規(guī)律一般分為兩種:線性Chirp函數(shù)和非線性Chirp函數(shù),以下是兩種Chirp函數(shù)在頻域上的表現(xiàn)圖如圖2,圖3所示。

    從圖2,圖3可以看出Chirp函數(shù)的頻率輸出與時間的f-t關(guān)系可以總結(jié)為:
    (1)對于線性Chirp函數(shù)
    在連續(xù)域時間域內(nèi)有關(guān)系式:


式中:k為常數(shù);f0為初始輸出頻率;t為連續(xù)時間。
    在離散時間域有關(guān)系式:

   
    式中:k為常數(shù);f0為初始輸出頻率;n為采樣點。
    (2)對于非線性Chirp函數(shù)
    在連續(xù)域時間域內(nèi)有關(guān)系式:
   
    式中:f為非線性函數(shù);f0為初始輸出頻率;t為連續(xù)時間。
    在離散時間域有關(guān)系式: 

   
    式中:f為非線性函數(shù);f0為初始輸出頻率;n為采樣點。
    因此該Chirp信號源的功能是:在NiosⅡ中建立的微控制器;使用嵌入式操作系統(tǒng)μC/OS-Ⅱ建立對DDS頻率控制字輸出實時改變的任務(wù);根據(jù)線性和非線性Chirp函數(shù)的特點控制字的輸出根據(jù)需要線性或者非線性輸出,并且在此設(shè)計中將該任務(wù)的優(yōu)先級設(shè)置為最高。利用VHDL語言編寫DDS模塊,首先根據(jù)Matlab計算出需要的正弦數(shù)據(jù),然后將這些數(shù)據(jù)存儲于ROM中供DDS模塊調(diào)用,并且通過微控制器中的Jtag_uart傳輸模塊在編程監(jiān)視窗口實時觀測當(dāng)前輸入頻率的大小,具體結(jié)構(gòu)如圖4所示。

2 DDS模塊的設(shè)計
    數(shù)字式頻率合成器(DDS)模塊的工作原理是:將O~2π的正弦函數(shù)值分為N份,將各點的幅度值存入ROM中,再用一個相位累加器每次累加相位值ωT,得到當(dāng)前的相位值,通過查找ROM得到當(dāng)前的幅度值。其系統(tǒng)框如圖5所示。

    DDS的幾個主要參數(shù)是:系統(tǒng)時鐘頻率,頻率控制字長,頻率分辨率,ROM單元數(shù),ROM字長。該設(shè)計的DDS是32位的,時鐘頻率為50 MHz,頻率控制字長為32位,ROM單元數(shù)為2的11次方,ROM字長為16位。而且有如下關(guān)系:
    頻率分辨率=系統(tǒng)時鐘頻率/232;
    頻率控制字(FTW)=f×232/T;
    其中:f為要合成的頻率;T為系統(tǒng)時鐘。
    DDS的工作過程為:每次時鐘的上升沿到來時,相位累加器(32位)中的值累加上頻率寄存器(32位)中的值,再利用累加器的高11位作為地址進行ROM查表,輸出相應(yīng)的幅值數(shù)字信號。
    如果是掃頻工作,只需要根據(jù)一定的規(guī)律實時修改頻率控制字,就可以達(dá)到掃頻輸出的目的。但是該系統(tǒng)的性能受到以下兩個方面的制約:ROM單元數(shù)和ROM數(shù)值的有限字長。由于ROM大小的限制,ROM的單元地址位數(shù)一般都遠(yuǎn)小于相位累加器的位數(shù),這樣只能取相位累加器的高位作為ROM的地址進行查詢,這就相當(dāng)于引入了一個相位誤差。而且ROM的有限字長,不能精確表示幅度值,相當(dāng)于引入了一個量化誤差。因此應(yīng)根據(jù)系統(tǒng)的性能要求選擇合理的ROM。為了解決ROM的受限問題,該設(shè)計采用ROM壓縮技術(shù)。因為正弦函數(shù)存在對稱和反轉(zhuǎn)特性,即:

   
    對于O~2兀的幅度值,可以只存儲O~π/2的部分。這樣原本需要的2的11次方個單元的ROM現(xiàn)在只需要2的9次方個單元的ROM就可以實現(xiàn)。在MatIab中產(chǎn)生16位512點的O~π/2正弦波數(shù)據(jù)的命令如下:

   
    將Y數(shù)據(jù)依次存入Altera公司提供的Megawiz-ard宏單元實現(xiàn)的ROM中即可。


3 嵌入式微處理器的實現(xiàn)
    嵌入式微處理器的設(shè)計包括3個部分:利用SoPCBuilder定制的軟核CPU,在QuartusⅡ環(huán)境下設(shè)計的電路和NiosⅡ編程。
    本設(shè)計的軟核CPU采用NiosⅡ/S標(biāo)準(zhǔn)型內(nèi)核,帶有16 KB的Cache;集成了外部的FLASH和SDRAM控制器用于保存程序數(shù)據(jù);Jtag_Hart電腦開發(fā)板傳輸接口用于建立良好的用戶交互接口使用戶能在console界面上觀察程序運行情況;兩個位寬分別為8位和3位的輸出口作為輸出DDS模塊的控制字;定時器用于產(chǎn)生CPU系統(tǒng)時鐘;LCD控制接口用于在LCD顯示一些需要的信息。
    NiosⅡ的編程主要是基于嵌入式操作系統(tǒng)μC/OS-Ⅱ,μC/OS-Ⅱ是一個完整的、可移植、固化和剪裁的占先式實時多任務(wù)核(Kernel)。從1992年發(fā)布至今,μC/OS-Ⅱ已經(jīng)有了上百個的商業(yè)應(yīng)用案例,在40多種處理器上成功移植。其中Altera提供了對μCO/OS-Ⅱ的完整支持,非常容易使用。
    μC/OS-Ⅱ提供以下系統(tǒng)服務(wù):任務(wù)管理(TaskManagement);事件標(biāo)志(Event Flag);消息傳遞(Message Passing);內(nèi)存管理(Memory Management);信號量(Semaphores);時間管理(Time Management)。在應(yīng)用程序中,用戶可以方便地使用這些系統(tǒng)調(diào)用實現(xiàn)目標(biāo)功能。
    在該設(shè)計中建立一個主函數(shù)和兩個任務(wù)函數(shù),主函數(shù)的功能:調(diào)用系統(tǒng)任務(wù)初始化函數(shù)OSTaskCreateExt()初始化兩個任務(wù)函數(shù):調(diào)用系統(tǒng)開始函數(shù)OSStart()啟動系統(tǒng)開始工作。
    任務(wù)1:實時的改變DDS控制字的輸出,并且保持一段時間,在遍歷完所有的需要頻率以后,延遲調(diào)用系統(tǒng)延遲函數(shù)OSTimeDlyHMSM(),延遲63 s將該使用權(quán)交付給任務(wù)2。
    任務(wù)2:為了保證該系統(tǒng)以后能有功能擴展,建立一個任務(wù),其僅僅是通過函Jtag_uart接口使用函數(shù)printf(),向電腦發(fā)送一個任務(wù)2已經(jīng)開始工作的提示信息,如果以后需要擴展功能則只需修改任務(wù)2即可。程序的具體流程圖如圖6所示。

    在任務(wù)1中實時改變變量i的值步進為1,通過定義的Chirp函數(shù)關(guān)于時間和輸出頻率控制字之間的關(guān)系函數(shù)function(),計算得到此時的頻率控制字f,并且將f的值通過API函數(shù)IOWR_ALTERA_AVALON_PIO_DATA()從I/O端口輸出以控制DDS,然后延遲2 s使DDS保持該輸出頻率一段時間,并且通過Jtag_uart端口在Console調(diào)試界面向用戶提示當(dāng)前的信號源的輸出頻率,程序如下:


    圖7為QuartusⅡ中生成的嵌入式軟核示意圖。

4 結(jié) 語
    該設(shè)計在21controll公司提供的V4.O FPGA/SoPC開發(fā)學(xué)習(xí)套件上面通過仿真驗證,該套件的核心芯片為CycloneⅡ系列:EP2C20F484C8,其具有18 752個邏輯單元(LE)和52個M4K RAM塊,能夠很好地設(shè)計存儲需要的數(shù)據(jù),完全符合設(shè)計要求。通過調(diào)試程序在NiosⅡIDE編程環(huán)境中的Console窗口觀察如圖8所示。證明該程序能夠很好的完成Chirp函數(shù)的功能。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。