• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 基于單片機和AD9858的4頻點快速跳頻設計

    基于單片機和AD9858的4頻點快速跳頻設計

    ——
    作者:黃 旭 劉光祜 時間:2007-10-12 來源:國外電子元器件 收藏

      摘要:在分析了基本原理以及基本特點的基礎上,介紹了的送數方式及單片機接口程序。給出了利用內部寄存器來實現跳頻時間小于50ns的4頻點的具體方法。

        關鍵詞:;AD9858;

      在電子系統中,常常需要應用頻率合成技術來實現跳頻源設計。頻率合成指對一個高穩定的參考頻率進行各種技術處理,以生成一系列穩定的頻率輸出。目前應用最廣的是鎖相環(PLL)頻率合成技術,它是通過改變PLL中的分頻比N來實現跳頻的,但PLL無法避免環路鎖定時間縮短與頻率分辨率提高及雜散減小之間的矛盾,因此很難同時滿足高速跳頻和細步長、低雜散的要求。直接數字頻率合成(DDS)是一種新的頻率合成技術。它具有頻率分辨率高、頻率切換快、頻率切換時相位連續等優點,因而被廣泛應用于雷達跳頻、通信、電子對抗等系統中。

    基本原理

      DDS的原理框圖如圖1所示。相位累加器在A位頻率控制字FCW的控制下,以參考時鐘頻率fc為采樣率來產生待合成信號相位的數字線性序列,然后將其高P位作為地址碼,通過查詢正弦表ROM產生S位對應信號波形的數字序列S(n),再由數模轉換器將其轉化為階梯模擬電壓波形,最后由低通濾波器LPF平滑為正弦波輸出。

        頻率控制字FCW和時鐘頻率fc共同決定了DDS的輸出信號頻率fo 。其關系是:

      輸出頻率:f0=FCW fc/2A

      頻率的分辨率為:fo=fc/2A 2 AD9858的特點及送數方式

      AD9858的主要特點:

      ● 具有1千兆次/秒的采樣速率;

      ● 具有高達2GHz的輸入時鐘(通過2分頻);

      ● 集成有10位D/A轉換器;

      ● 內含32位可編程頻率寄存器;

      ● 帶有8位并行及SPI串行控制接口;

      ● 具有自動頻率掃描功能;

      ● 內帶4個頻率寄存器;

      ● 采用3.3V低電源供電;

      ● 電荷泵獨立供電電壓可達5V;

      ● 集成有2GHz混頻器。

      由于DDS產生的頻率是由頻率控制字FCW控制的,改變相應頻率的控制字即可獲得所需頻率。因此DDS的送數方法是實現DDS跳頻源的關鍵之一。其內部結構框圖如圖2所示。

      AD9858有并行和串行兩種送數方式。數據從用戶傳輸到DDS器件核心需要兩個步驟。在寫操作時,不管是用并行送數方式還是串行送數方式,用戶都要首先將數據寫入I/O緩沖器。只有當數據從I/O緩沖器鎖入存儲寄存器,DDS的核心才接收到數據。在AD9858中,觸發FUD腳或者改變預編程的Profile都可以使I/O緩沖器中的數據進入DDS的核心存儲寄存器。

      (1)并行送數模式時,系統應激活八個雙向數據口(D0~D7)、六個地址輸入口(ADDR5~ADDR0)、一個讀口(RD)和一個寫口(WR),寄存器的選擇由寄存器圖提供的地址決定。讀寫功能由RD和WR脈沖觸發控制,但這兩個功能不能同時起作用。讀寫的數據可通過D0~D7腳傳輸。

      (2)串行送數模式包括兩個階段。第一階段由一個8位的指令周期構成。最高位是標志位,用于確定是讀操作還是寫操作,低六位是串行送數目標寄存器的地址。第二階段就是送數據給寄存器。

      許多時候DDS都要求,而頻率的快速變化則要求寄存器的頻率控制字快速更新,因此,通常都要求DDS選用并行送數。相對于ADI公司以往的DDS芯片而言AD9858的優勢在于它具有四個頻率寄存器及四個相位補償寄存器這使得它可以方便快速的產生跳頻信號以及四相碼編碼調制信號而且它轉換時間極短。這是因為跳頻的頻率控制字已經送入DDS核心寄存器中的四組控制寄存器,頻點之間的選擇是依靠外部選擇信號PS1和PS0來實現的。

    3 基于AD9858的快速跳頻設計

    3.1 跳頻電路

      送數及四頻點的切換通過單片機來完成。89C51單片機可在5V電壓下工作,但實驗證明,3.3V供電時,89C51單片機的工作也是完全正常的,采用單片機和DDS芯片AD9858設計的跳頻原理圖如圖3。

    3.2 軟件程序設計

      根據AD9858的時序特點,可將單片機的P1.0和P1.1分別與RD和WR相連。這樣,編程時就可以對頻率控制字和相位補償字的地址列表作如下具體設置:

    FTW0_1 EQU 00101011B

    FTW0_2 EQU 00101111B

    FTW0_3 EQU 00110011B

    FTW0_4 EQU 00110111B

    POW0_1 EQU 00111011B

    POW0_2 EQU 00111111B

      最低兩位分別是RD和WR,初始化時將其均置為高位。三到六位才是送數的地址。一個頻點的送數程序如下:

    MOV P3, 40H

    MOV P1, #FTW0_1

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

     

    MOV P3, 40H

    MOV P1, #FTW0_2

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

     

    MOV P3,40H

    MOV P1, #FTW0_3

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

     

    MOV P3, #40H

    MOV P1, #FTW0_4

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

    ;

    MOV P3, #00H

    MOV P1, #POW0_1

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

    MOV P3, #00H

    MOV P1, #POW0_2

    CLR WR_

    SETB WR_

    SETB FUD

    CLR FUD

      設計時,應先將8位頻率控制字送入單片機的P3口,再將這8位的地址送入P1口。由于送8位地址的同時也將WR置為高位。因此,將WR置低就可將8位控制字和6位地址送入DDS緩沖器。由于頻率的更新只需FUD一個上升沿,所以將FUD置為高位就可將8位數據送入指定的頻率寄存器(初始化已將FUD置為低位),最后再將FUD置為低位,以為后邊的頻率更新設置上升沿做準備。

      通過一個簡單的程序可將一個頻點的控制字送入DDS的存儲寄存器。再通過相同的地址列表和送數方式就可將所需要的其它三個頻點送入DDS的存儲寄存器。這樣,通過外部選擇信號PS1和PS0就可以快速在這四個頻點間進行切換。

      由于AD9858內部的頻率寄存器有限,因此,在跳頻的頻點較多時,每次跳頻都需要改變頻率控制字。DDS的實際跳頻時間包括送數和內部切換時間。如果使用內部寄存器通過PS1和PS0來控制切換頻率,則跳頻時間只有內部切換時間,所以,這種跳頻是相當快的。

    4 實驗及測試結果

      實驗表明(該實驗采用400MHz低相噪時鐘):AD9858的內部切換時間僅為納秒級。該實驗使用周期邏輯電平控制 PS1和PS0,并通過對PS1和PS0信號的選擇來實現頻率的切換。最后使用高頻示波器來測試跳頻時間。

      筆者進行的第一個實驗是將一個寄存器的頻點FCW設為00000000H(0MHz),另一個寄存器的頻點FCW設為20000000H(125MHz)。測試結果為:從0MHz跳頻到125MHz所用的時間為17.6ns。

      第二個實驗是將一個寄存器的頻點FCW設為19999999H(100MHz),另一寄存器的頻點FCW設為20000000H(125MHz)。測試結果為:從100MHz跳頻到125MHz所用的時間為33.6ns。

    5 結論

      從兩次測試的結果來看利用AD9858內部寄存器來實現快速跳頻是完全可行的。由于測試過程中存在數據傳輸延遲,PS0和PS1控制電平的上升沿,所以測試存在一定的誤差,實際跳頻時間應比測試結果更短一些。

      由于AD9858內部只有四個頻率寄存器,所以跳頻的點有限。在跳頻點不需要很多、跳頻時間要求很短時,此方法優越性十分明顯。

     



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 浪卡子县| 琼海市| 陇川县| 平南县| 嘉定区| 武隆县| 榕江县| 青铜峡市| 江油市| 福鼎市| 吴江市| 南昌县| 五大连池市| 柳江县| 高雄县| 上饶市| 玉田县| 上饶市| 汾阳市| 霍林郭勒市| 鹿泉市| 姜堰市| 长顺县| 深水埗区| 扶余县| 洮南市| 漳州市| 南靖县| 新乐市| 眉山市| 乌兰浩特市| 凭祥市| 永仁县| 营山县| 惠安县| 会宁县| 昆山市| 石门县| 丰宁| 历史| 霍城县|