李 巖 方 彬 靳自璇 趙勇彪 張紅嶺
(河北建筑工程學院電氣工程學院,河北 張家口075000)
現(xiàn)階段,函數(shù)信號發(fā)生器已成為現(xiàn)代測試領(lǐng)域應用最為廣泛的通用儀器之一。隨著數(shù)字技術(shù)在儀器儀表和通信系統(tǒng)中的廣泛使用,可從參考頻率源產(chǎn)生多個頻率的數(shù)字控制方法誕生了,即直接數(shù)字頻率合成(DDS)。FPGA(現(xiàn)場可編程門陣列)具有高集成度、高速度、可實現(xiàn)大容量存儲器功能的特性,能有效地實現(xiàn)DDS 技術(shù),極大地提高了函數(shù)信號發(fā)生器的性能,大大降低了電子系統(tǒng)的生產(chǎn)成本。
傳統(tǒng)的信號發(fā)生器設計方案是采用模擬電路、單片機或DDS 專用芯片來實現(xiàn),雖然有著廣泛的應用,但仍然存在著許多缺陷,例如,設計方案成本高、輸出波形的種類少、輸出信號的頻率控制不靈活、系統(tǒng)升級困難等。而且傳統(tǒng)的信號發(fā)生器還有兩個突出問題,一個是通過電位器的調(diào)節(jié)來實現(xiàn)輸出頻率的調(diào)節(jié),很難將頻率調(diào)到某一固定值;另一個是脈沖的占空比不可調(diào)節(jié)。
隨著現(xiàn)代科學技術(shù)的飛速發(fā)展,用戶對函數(shù)信號發(fā)生器提出了越來越高的要求,例如高分辨率、高輸出頻率等要求,傳統(tǒng)的信號發(fā)生器已經(jīng)無法滿足這些要求。不論是在生產(chǎn)、實驗還是在科研與教學上,信號發(fā)生器都是用于仿真實驗的最佳工具。因此開發(fā)新型信號發(fā)生器具有重大意義。本文提出了一種新型的以FPGA 為核心的DDS 信號發(fā)生器設計,充分利用uc/GUI 控制方式靈活、FPGA 芯片運算處理速度快的優(yōu)點,能夠通過圖形用戶界面很好地實現(xiàn)頻率、相位、幅度可調(diào)、波形變換并且輸出信號質(zhì)量和精確度高于直接模擬頻率合成技術(shù)和鎖相環(huán)式頻率頻率合成技術(shù)。彌補了傳統(tǒng)信號發(fā)生器設計方案成本高、輸出波形的種類少、輸出信號的頻率控制不靈活、系統(tǒng)升級困難等缺陷。
DDS 是一種用于通過單個固定頻率的參考時鐘信號生成任意波形的頻率合成器,必須考慮所有與采樣相關(guān)的問題,包括量化噪聲、混疊、濾波等。DAC 輸出頻率的高階諧波會折回奈奎斯特帶寬,因而不可濾波,而基于PLL 的合成器的高階諧波則可以濾波。系統(tǒng)的核心是相位累加器,其內(nèi)容會在每個時鐘周期更新。相位累加器每次更新時,存儲在相位寄存器中的數(shù)字字就會累加至相位寄存器中的數(shù)字。系統(tǒng)在信號合成時,通過改變相位累加器的頻率控制字改變相位增量,相位增量的不同將導致一個周期內(nèi)取樣點的不同,從而改變輸出頻率。在具體的DDS 實現(xiàn)中,通過在采樣頻率不變的情況下,改變相位累加器的頻率控制字,將這種變化的相位、幅值量化的數(shù)字信號通過DA 變換及濾波,最后得到系統(tǒng)合成的模擬信號。直接數(shù)字頻率合成技術(shù)主要由頻率控制器、相位累加器、波形ROM、DAC 和低通濾波器組成,如圖1 所示。
圖1 DDS 的基本結(jié)構(gòu)圖
由相位累加器送出的相位(地址)經(jīng)過查表進行從相位到幅度的轉(zhuǎn)換就可以得到需要的正弦波。若在相位累加器的輸出相位上加上一個小的數(shù)值,那么查表后得到的數(shù)據(jù)也會相應的超前,也就是說此時的輸出波形的相位會相對于原來的波形超前。而且這個超前的相位值應該是和在相位加器輸出相位上加的數(shù)值成正比的。
本文設計了一款uc/GUI 圖形用戶界面的低成本、擴展性強、易于人機交互的函數(shù)信號發(fā)生器,把DDS 的技術(shù)與FPGA 芯片運算處理速度快的優(yōu)點相結(jié)合,運用適當?shù)乃惴ㄟM行信號調(diào)整和電路保護。利用FPGA 更好地實現(xiàn)了處理數(shù)據(jù)量大、處理速度高的底層信號處理算法,同時更能保證在市場上的生命周期。FPGA 部分實現(xiàn)DDS 核心功能,NIOS II CPU 運行程序?qū)崿F(xiàn)各種參數(shù)的設置和顯示。實現(xiàn)一個觸控的DDS 信號發(fā)生器,具體的輸出信號的最高頻率與DAC 的轉(zhuǎn)換速率相關(guān)。
3.1.1 FPGA 芯片選型
FPGA 是產(chǎn)生函數(shù)信號和提供SOPC 系統(tǒng)的核心部分,結(jié)合實際需求本文選用的是Altera 公司的CycloneIV 系列EP4CE10F17C8N 型號FPGA 芯片,該芯片具有10320 個邏輯單元,270Kbits M9K 存儲塊,15 個18x18 乘法器,10 個時鐘網(wǎng)絡,2個PLL,因此該型號芯片可以適應各類數(shù)字信號系統(tǒng)的設計,同時擁有較靈活的時序設計資源。FPGA 是整個系統(tǒng)的核心部分,嵌入了IP 軟核的SOPC 系統(tǒng),能夠用可編程邏輯搭建一個嵌入式軟核,基于軟件的思想利用嵌入式平臺的通用性以縮短電子系統(tǒng)的開發(fā)周期,高效地實現(xiàn)了目標系統(tǒng)功能。Altera 的FPGA芯片是基于Quartus 平臺開發(fā),本文主要涉及函數(shù)信號的可編程邏輯設計、QSYS 嵌入式平臺的搭建設計?;贔PGA 系統(tǒng)設計主要包括按鍵消抖設計和DDS 功能模塊,根據(jù)頻率控制字和相位控制字產(chǎn)生對應數(shù)據(jù)輸出。QSYS 是建立在FPGA 芯片內(nèi)的可編程邏輯上的,它是Altera 公司為其FPGA 上定制實現(xiàn)的SOPC 框架,其基于圖形界面的片上系統(tǒng)定義和定制開發(fā)流程能大大縮短開發(fā)者的開發(fā)周期。QSYS 采用Avalon 總線接口實現(xiàn)系統(tǒng)的可擴展性,各種外設控制器如串口、通用輸入輸出口、存儲器、定時器等通過Avalon 總線接口接入系統(tǒng),此外,QSYS還支待用戶開發(fā)自己的基于Avalon 總線規(guī)范的IP 核,IP 的邏輯由硬件描述語言直接實現(xiàn),總線接口和總線時序都可由開發(fā)者自定義。它定義了一套標準化的接口,稱為Avalon 接口,目的是適應各種各樣的通信需求,用以連接FPGA 芯片內(nèi)部的各個組件。將IO 外設的端口映射到接口信號并設置時序特性后,就可以整合到一個Avalon 系統(tǒng)中了。這些接口由互連結(jié)構(gòu)實現(xiàn),包括譯碼、多路選擇、仲裁和時序邏輯。盡管這種結(jié)構(gòu)通常被描述為共享實體,但是邏輯和路由結(jié)構(gòu)可以利用FPGA 的可編程性以分布式方式構(gòu)建。連接結(jié)構(gòu)由QSYS 軟件工具自動生成,自定義設計需要符合獨立系統(tǒng)配置。這種方法消除了對集中資源的競爭,提高了的系統(tǒng)性能。
3.1.2 DA 模塊設計
本文系統(tǒng)使用在模擬半導體領(lǐng)域久負盛名ADI 公司的AD9767 型DAC 芯片,該芯片有兩個信號輸出通道,分辨率為14 位,轉(zhuǎn)換速率為125Msps,支持I、Q 輸出模式。芯片輸出形式為差分電流輸出,輸出電流滿量程可設置范圍為2~20mA。同時該芯片內(nèi)部自帶1.2V 的參考電壓,因此芯片工作時無需外部提供參考源。
由于該芯片的輸出為電流型,輸出范圍為2~20mA,而用戶在實際使用時一般使用電壓信號,因此需要將AD9767 芯片的輸出電流轉(zhuǎn)換為電壓。對每一路輸出都使用了兩級運算放大電路,其中第一級完成電流到電壓的轉(zhuǎn)換,并執(zhí)行了一定的放大,將DAC 輸出電流轉(zhuǎn)換并放大為-1V~+1V 的電壓,第二級為放大電路,將-1V~+1V 的電壓信號放大到高達-5V~+5V 范圍內(nèi)。具體信號放大的倍數(shù)可通過滑動變阻器調(diào)節(jié)。
Quartus II 和QSYS 中進行的設計完成了硬件的控制與設備的驅(qū)動,這些驅(qū)動有的是需自行編寫有的是可以直接調(diào)用IP核。而基于Nios II SBT for Eclipse 所完成的設計稱之為軟件設計或軟件開發(fā),這種軟件開發(fā)類似于VC 中的設計,用行為級的設計語言去操作整個系統(tǒng),而不用多關(guān)注硬件的細節(jié),因此也可以稱之為嵌入式應用程序開發(fā)。Nios II SBT for Eclipse 軟硬件橋接工程結(jié)構(gòu)如圖2 所設示。
圖2 系統(tǒng)軟硬件橋接工程結(jié)構(gòu)圖
3.2.1 實時操作系統(tǒng)uC/OS II 的移植
uc/GUI 能夠在uC/OS II 操作系統(tǒng)中有序的工作,uc/0S II 中多個任務調(diào)用uc/GUI 的函數(shù),這樣避免了軟件造成的線程保護問題。通過uC/GUI 技術(shù)文集給出的資料以及官網(wǎng)給的uC/GUI源碼開發(fā)包,移植uC/GUI 文件夾。
3.2.2 圖形用戶界面uc/GUI 的實現(xiàn)
在圖形用戶界面系統(tǒng)設計過程中,本文選用通用的嵌入式圖形用戶界面軟件uc/GUI,可以實現(xiàn)其與uC/OS II 操作系統(tǒng)完美結(jié)合。uc/GUI 良好支持大多數(shù)的lcd 圖像顯示器,且消耗較少的系統(tǒng)資源, 占用的RAM 和ROM 空間很小。本系統(tǒng)采用uC/GUI 中一種特殊的控件,對話框控件。在uC/GUI 系統(tǒng)中,一個對話框就是一個窗口,在建立對話框時,必須為每個對話框指定一個資源表和一個回調(diào)函數(shù),資源表指定了包含在對話框中所有控件的間接創(chuàng)建函數(shù)、控件ID、控件在對話框中的坐標,大多數(shù)消息被對話框自動處理了,其它傳給了在建立對話框上指定的回調(diào)函數(shù)。本系統(tǒng)圖形用戶界面設計效果如圖3 所示。
圖3 圖形用戶界面設計
本文設計的信號發(fā)生器可以進行脫機操作,只需要一臺測試儀就能搭建完整的測試平臺。測試儀是一款普通的100M單蹤道示波器,該示波器最高采樣率是500MSa/s, 帶寬為100MHz,存儲深度為128kb。
在開發(fā)環(huán)境下生成可執(zhí)行程序,并通過下載電纜將可執(zhí)行程序下載到電子系統(tǒng)上,用示波器觀察兩通道產(chǎn)生的信號波形。
4.2.1 正弦波
對于常用正弦波信號的測試必不可少,設計的信號發(fā)生器最高達20MHz 無明顯失真,可滿足百分之八十的實驗測試需求。測試正弦波Vpp 為4.96V,頻率為400kHz,波形無失真,如圖4 所示。
圖4 正弦波信號波形
4.2.2 方波
本文設計的觸控式信號發(fā)生器支持支持方波設定占空比,測試方波Vpp 為5.12V,頻率為400kHz,無波形失真現(xiàn)象的出現(xiàn),如圖5 所示。
圖5 方波信號波形
4.2.3 三角波
系統(tǒng)產(chǎn)生的三角波信號如圖6 所示,可見線性度和對稱性較好,無失真現(xiàn)象的出現(xiàn)。測試三角波Vpp 為5.08V,頻率為400kHz,波形無失真,如圖6 所示。
本文基于uc/GUI 圖形界面設計了一款低成本、可擴展性強、實現(xiàn)難度低、易于人機交互的信號發(fā)生器。整個系統(tǒng)在使用FPGA 的同時還充分利用FPGA 的內(nèi)嵌資源搭建了一個Nios 軟核作為系統(tǒng)控制,控制核心和算法都集成在一塊FPGA 芯片上,相對于DSP+FPGA 或者ARM+FPGA 的系統(tǒng)更省功耗,進一步縮減系統(tǒng)板的面積以及縮短了產(chǎn)品開發(fā)的周期。
圖6 三角波信號波形