基于EZ-USB單片機(jī)的正弦信號發(fā)生器
一引言
近年來,隨著通信系統(tǒng)的發(fā)展,人們對信號源的要求越來越高,直接數(shù)字頻率合成器(Direct Digital Frequency Synthesis簡稱DDS或DDFS)正是在這樣的背景下進(jìn)一步得到了發(fā)展。它具有相對帶寬、頻率分辨率高、頻率轉(zhuǎn)換時間短、控制靈活和全數(shù)字化的優(yōu)點,并且成本低,功耗小。它的優(yōu)越性能使其在跳頻通信、雷達(dá)系統(tǒng)、電子測量等領(lǐng)域得到了廣泛的應(yīng)用。采用DDS芯片AD9851和EZ-USB單片機(jī)CY7C68013實現(xiàn)的正弦信號發(fā)生器,通過上位機(jī)控制AD9851可以調(diào)節(jié)輸出信號,使輸出信號具有高精度、高頻率、高穩(wěn)定度的特點。
二信號發(fā)生器系統(tǒng)硬件構(gòu)成
1.單片機(jī)系統(tǒng).
本文采用CYPRESS公司的高速USB2.0芯片 CY7C68013 ,該芯片集成增強(qiáng)型 8051內(nèi)核和 USB接口的單片機(jī) , 完全遵從 USB2.0協(xié)議,昀高速度可達(dá) 480Mbps的傳輸率;片內(nèi)擁有 8KB 的 RAM,可完全滿足系統(tǒng)每次傳輸數(shù)據(jù)的需要,無需再外接 RAM。由于芯片內(nèi)部沒有 ROM,一旦 USB設(shè)備斷開與 PC的連接,程序代碼將無法保存,需要每次在 PC機(jī)接 USB設(shè)備后,重新下載,另外,CY7C68013支持一種“E2PROM引導(dǎo)方式”,即先將固件下載到片外 E2PROM中,當(dāng)每次 USB設(shè)備通電后,FX2自動將片外 E2PROM中的程序讀入芯片中。
由于該系統(tǒng)主要是利用其特殊的 USB2.0和單片機(jī)特性,所以外部電路較容易實現(xiàn),如圖 1所示。2 DDS硬件電路設(shè)計。
1) DDS的原理及特點
DDS由相位累加器、正弦查表、D/A 轉(zhuǎn)換器和低通濾波器組成,如圖 2所示。 DDS 的參考時鐘是一個穩(wěn)定的晶體振蕩器,用它來同步整個合成器的各個功能模塊。相位累加器類似于一個簡單的計數(shù)器,相位累加器把頻率控制字 FSW 的數(shù)據(jù)變成相位抽樣來確定輸出頻率的大小。相位增量的大小隨外部指令 FSW 的不同而不同,通過給定的相位增量來確定輸出頻率的值。當(dāng)用這樣的數(shù)據(jù)尋址時,正弦查表就把存儲在相位累加器中的抽樣值轉(zhuǎn)換成正弦波幅度的數(shù)字量函數(shù)。通過 D/A 變換器和低通濾波器得到所需的信號波形。DDS 的輸出=fr·FSW/2N , DDS 的頻率分辨率為: Δf O =fr/2N 。
2) AD9851的工作原理及特性
AD9851是 AD公司推出的采用先進(jìn)的 CMOS技術(shù)生產(chǎn)的直接數(shù)字頻率合成器,其昀高工作時鐘為180MHz,內(nèi)部除了有完整的高速 DDS外,還集成了一個時鐘 6倍頻器和一個高速比較器。集成的 6倍頻時鐘器降低了外部參考時鐘頻率,僅需一個 30MHz 晶振即可。因此減小了高頻輻射,提高了系統(tǒng)的電磁兼容能力。 AD9851DDS 系統(tǒng)采用 32bits相位累加器及10bitsDAC,在 70MHz模擬輸出時,DAC輸出的抑制寄生動態(tài)范圍 SFDR>43dB。5bits 相位控制可實現(xiàn)昀小 11.5° 的相位改變。頻率控制和相位調(diào)節(jié)可采用并行或串行輸入方式。
3)濾波器
在AD9851D/A轉(zhuǎn)換器輸出端與其內(nèi)部比較器輸入之間,需要外接一個低通濾波器,用于抑制諧波干擾。考慮到橢圓函數(shù)濾波器比全極點型濾波器(如巴特沃茲、切貝雪夫濾波器等)能做到對理想低通的昀佳近似,且在同等技術(shù)指標(biāo)下所需階數(shù)昀低, 因此電路實現(xiàn)起來也比其他類型濾波器容易。故采用橢圓函數(shù)濾波器。圖3是利用Ansoft Designer System進(jìn)行設(shè)計的橢圓低通濾波器原理圖。該圖指標(biāo)為: 從0—60MHz 昀大波紋小于12dB,在75MHz處昀小衰減為50dB。
3調(diào)制信號發(fā)生器
在本系統(tǒng)的調(diào)制信號發(fā)生器模塊中,設(shè)計了幾個外擴(kuò)模塊,從而使的系統(tǒng)更加完善和健全。
1)2ASK:
單片機(jī)首先計算出 100KHz載波的控制字,直接送入 DDS芯片,再根據(jù)比特率 10Kbps的要求,每隔100us,通過 PB口,輸出一個控制信號到模擬開關(guān),將正弦波信號變?yōu)?2ASK信號。
2)2PSK:
實現(xiàn)原理與 2ASK類似,單片機(jī)計算出 AD9851所需要的兩組控制字,然后根據(jù)比特率10Kbps的要求,每隔50us,將這兩組控制字依次送入 DDS芯片。
3)頻率調(diào)制:
根據(jù)調(diào)制信號的周期,計算出頻率控制字更新的時間,然后循環(huán)送至DDS,模擬調(diào)頻信號頻率的變化。
4寬帶功率放大電路
采用 AD811的兩級信號放大電路,第一級為電壓放大電路,通過調(diào)節(jié)電阻阻值來調(diào)整電路的增益。后一級為電壓跟隨,進(jìn)一步提高電路的帶載能力。
三:信號發(fā)生器系統(tǒng)軟件構(gòu)成
本系統(tǒng)開發(fā)主要是基于高速 USB特性,加上豐富的軟件開發(fā)包,有利于快速開發(fā)一個穩(wěn)定,高效的系統(tǒng),對進(jìn)一步拓展系統(tǒng)的功能和精度有很好的快速升級能力。Cypress 公司的網(wǎng)站提供了 CY7C68013 芯片的開發(fā)工具包下載, 該開發(fā)包提供了開發(fā)固件程序的所需的一些資源,如 Keil μVision2 集成開發(fā)環(huán)境(限制版)、Cypress C51固件框架程序以及一些例子程序。CY7C68013 的固件主要有兩種引導(dǎo)方式, 一種是存儲在 EEPROM上, 通過上電后的自檢自動將固件程序加在 CY7C68013上;另一種方式是通過主機(jī)將固件程序下載到CY7C68013。
本系統(tǒng)在設(shè)計上采用外接一片 EEPROM芯片來存放 USB設(shè)備配置信息和 8051應(yīng)用程序。該應(yīng)用程序在上電后加載到 8051內(nèi)核,主要完成兩個任務(wù):實現(xiàn) USB協(xié)議,包括 USB設(shè)備配置及 USB數(shù)據(jù)傳輸;實現(xiàn)對 AD9851的初始化以及對信號的產(chǎn)生和控制。
1固件程序框架
固件程序流程如圖 4所示,主要執(zhí)行以下任務(wù),其中步驟①~⑤主要是完成 USB接口的初始化工作,而步驟⑥~⑩可以看作是任務(wù)執(zhí)行階段,完成 USB事務(wù)及用戶特定的任務(wù)。[!--empirenews.page--]
① 初始化所有的狀態(tài)變量;
② CY7C68013中 USB端點寄存器進(jìn)行初始化設(shè)置;
③ 判斷是否重新定位描述符表,以確保描述符表的存放地址位于片內(nèi)RAM;
④ 使能 USB中斷,并允許所選擇的中斷;
⑤ 判斷是否有來自系統(tǒng)的“重新枚舉”命令,如有,則重新枚舉;
⑥ 初始化 AD9851模塊內(nèi)部寄存器以及缺省模式下的信號配置;
⑦ 判斷是否接收到 setup令牌包,如有,則調(diào)用相應(yīng)函數(shù)響應(yīng) USB設(shè)備請求命令;
⑧ 判斷是否進(jìn)入睡眠狀態(tài),如是,則將 CY7C68013置于睡眠狀態(tài);
⑨ 查詢是否有來自上位機(jī)的修改波形命令,按照程序執(zhí)行與波形修改有關(guān)的任務(wù);
⑩ 返回⑦,循環(huán)接收并執(zhí)行來自上位機(jī)的各種命令。
2 AD9851工作流程 AD9851工作流程共包含40位控制碼(D39~D0),其作用為:
(1)D39、D38用來控制AD9851數(shù)據(jù)輸入的模式。AD9851的數(shù)據(jù)輸入模式分為并行輸入模式和串行輸入模式兩種。在并行輸入模式下,模式控制碼為“00”,每次8bit數(shù)據(jù)輸入端D0~D7分5次數(shù)輸入頻率控制字。
(2)D37用來調(diào)節(jié)AD9851輸出的功率。
(3)D36~D32相位調(diào)制碼,用來控制AD9851的相位調(diào)制量。
(4)D31~D0用來控制AD9851輸出的頻率。這32位頻率控制碼是由輸入的頻率控制字轉(zhuǎn)換過來的。具體轉(zhuǎn)換關(guān)系為:
(5) AD9851 中的 DDS內(nèi)核所需輸入控制字由單片機(jī)提供。在進(jìn)行頻率控制時, 首先送入相位調(diào)制碼、功率調(diào)節(jié)碼和輸入模式控制碼, 然后送入 32bit頻率控制碼。本系統(tǒng)設(shè)置AD9851工作在并行數(shù)據(jù)輸入模式。系統(tǒng)啟動后,接受用戶從鍵盤所輸入的功能,調(diào)用相應(yīng)的子程序,根據(jù)信號的頻率值、以及 2psk功能下相位值,單片機(jī)將頻率值根據(jù)公式轉(zhuǎn)換為頻率相位控制字,初始相位值按照公式Phase(度)/11.25°轉(zhuǎn)換為 5位二進(jìn)制數(shù)相位調(diào)制字,準(zhǔn)備送往 AD9851頻率控制輸出。在傳輸數(shù)據(jù)之前,單片機(jī)先向 AD9851產(chǎn)生一個 RESET上升沿信號, 并延時 7ns,使整個下位機(jī)系統(tǒng)復(fù)位, 再依次傳輸一個 8 bit的相位調(diào)制碼和置AD9851工作模式碼以及 32bit的頻率控制碼。每傳輸一次 8bit的控制碼后,需由軟件產(chǎn)生一個有效的 WCLK上升沿信號,將控制碼送入 AD9851輸入數(shù)據(jù)寄存器中,重復(fù)五次后即可將40位的控制碼全部加載到AD9851內(nèi)部的數(shù)據(jù)寄存器中,昀后產(chǎn)生一個有效的 FQUD上升沿信號,將 40bit的控制碼全部加載到 AD9851中的 DDS頻率合成單元中,經(jīng)過 13到 18個時鐘周期后,就可獲得所需的頻率輸出信號。
3 驅(qū)動程序設(shè)計在 Cypress 公司的 EZ-USBFX2 開發(fā)包中,提供了完整的 CY7C68013 驅(qū)動程序源代碼、控制面板程序及固件的框架,可以大大加快用戶開發(fā)的進(jìn)度。用戶只需對所帶驅(qū)動程序稍加
修改,再經(jīng)過 DDK 編譯后使用,使得軟件開發(fā)者大量的時間主要集中在應(yīng)用程序和固件的開發(fā)上。本設(shè)計采用的 USB設(shè)備驅(qū)動程序就是對 FX2開發(fā)包所帶的驅(qū)動程序做了一些修改,主要是修改了 DeviceIoControl例程,增加了控制數(shù)據(jù)傳輸函數(shù)、啟動和停止 AD9851等。四結(jié)束語
本文提出了一種基于 EZ-USB和 AD9851的正弦信號發(fā)生器系統(tǒng)方案,利用 EZ-USB的優(yōu)點,通過上位機(jī)軟件的簡單數(shù)據(jù)輸入,可以產(chǎn)生供實驗所需要的信號源,極大的提高了系統(tǒng)的靈活性和可配置性。通過實驗測定,測試的輸出頻率準(zhǔn)確度與穩(wěn)定度達(dá)到 10 -6。