新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > Chirp函數的Nios Ⅱ嵌入式實現

        Chirp函數的Nios Ⅱ嵌入式實現

        作者: 時間:2009-06-16 來源:網絡 收藏

        因此該信號源的功能是:在Ⅱ中建立的微控制器;使用操作系統μC/OS-Ⅱ建立對DDS頻率控制字輸出實時改變的任務;根據線性和非線性的特點控制字的輸出根據需要線性或者非線性輸出,并且在此設計中將該任務的優先級設置為最高。利用VHDL語言編寫DDS模塊,首先根據Matlab計算出需要的正弦數據,然后將這些數據存儲于ROM中供DDS模塊調用,并且通過微控制器中的Jtag_uart傳輸模塊在編程監視窗口實時觀測當前輸入頻率的大小,具體結構如圖4所示。

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

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

        DDS的幾個主要參數是:系統時鐘頻率,頻率控制字長,頻率分辨率,ROM單元數,ROM字長。該設計的DDS是32位的,時鐘頻率為50 MHz,頻率控制字長為32位,ROM單元數為2的11次方,ROM字長為16位。而且有如下關系:
        頻率分辨率=系統時鐘頻率/232;
        頻率控制字(FTW)=f×232/T;
        其中:f為要合成的頻率;T為系統時鐘。
        DDS的工作過程為:每次時鐘的上升沿到來時,相位累加器(32位)中的值累加上頻率寄存器(32位)中的值,再利用累加器的高11位作為地址進行ROM查表,輸出相應的幅值數字信號。
        如果是掃頻工作,只需要根據一定的規律實時修改頻率控制字,就可以達到掃頻輸出的目的。但是該系統的性能受到以下兩個方面的制約:ROM單元數和ROM數值的有限字長。由于ROM大小的限制,ROM的單元地址位數一般都遠小于相位累加器的位數,這樣只能取相位累加器的高位作為ROM的地址進行查詢,這就相當于引入了一個相位誤差。而且ROM的有限字長,不能精確表示幅度值,相當于引入了一個量化誤差。因此應根據系統的性能要求選擇合理的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Ⅱ環境下設計的電路和Ⅱ編程。
        本設計的軟核CPU采用Ⅱ/S標準型內核,帶有16 KB的Cache;集成了外部的FLASH和SDRAM控制器用于保存程序數據;Jtag_Hart電腦開發板傳輸接口用于建立良好的用戶交互接口使用戶能在console界面上觀察程序運行情況;兩個位寬分別為8位和3位的輸出口作為輸出DDS模塊的控制字;定時器用于產生CPU系統時鐘;LCD控制接口用于在LCD顯示一些需要的信息。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 闵行区| 平罗县| 民丰县| 柞水县| 万载县| 益阳市| 轮台县| 潼关县| 行唐县| 会宁县| 南宁市| 苍梧县| 吉林市| 屯门区| 黄石市| 丹阳市| 宜良县| 新绛县| 正安县| 辽源市| 梓潼县| 陇西县| 闽清县| 平南县| 镇原县| 忻州市| 莱西市| 城口县| 遵义市| 叶城县| 江华| 桃园县| 馆陶县| 栾城县| 凌源市| 临漳县| 西乡县| 崇左市| 绩溪县| 阳原县| 惠州市|