李翔宇
(同濟大學中德學院英飛凌實驗室,上海 200092)
現代的信號發生器是一種多功能多波形的信號源。它可以產生正弦波、方波、三角波、鋸齒波,甚至任意波形,另外,高端的信號發生器還可以產生平穩的白噪聲波和特種波。目前,國內信號發生器的實現方法有多種,最常用的方法是使用含有專門的函數信號發生器IC,如L8038、BA205、XR2207/2209等,它們的功能較少,精度不高,頻率上限只有300 kHz,無法產生更高頻率的信號,調節方式也不夠靈活。還有一種是利用單片集成芯片的函數發生器:如ICMAX038,它克服了頻率低的缺點,可以達到更高的技術指標,因而被大多數工程師所喜愛。文章所介紹的,是一種可以達到更高頻率,并且產生波形更加穩定的一種方案,即單片機+DDS的解決方案。
2.1.1 人機界面
128×64像素寬屏藍色液晶顯示,對比度可任意調節;開機QQ企鵝歡迎界面及公司信息界面,全中文操作菜單;4按鍵全功能控制,按鍵聲音提示;電源手動開關和電源指示燈,即開即用;全數字化波形類型及參數設置,單路自動切換波形輸出。
2.1.2 常用波形發生——正弦波、方波
正弦波、方波是控制系統設計和實驗中常用的波形,這兩種波形最重要的兩項指標是波的頻率和幅值,通過單片機產生的正弦波、方波的最大幅值為5 V,最大頻率根據單片機的主頻率確定。本多功能信號發生器要求波形信號幅值3.3 V~5 V,信號頻率步進調節1 Hz,最高頻率10 MHz,波形失真率3%以內。
2.1.3 工業檢測用波形發生——白噪聲波
白噪聲是指功率譜密度在整個頻域內均勻分布的噪聲。所有頻率具有相同能量的隨機噪聲稱為白噪聲。從人們耳朵的頻率響應聽起來它是非常明亮的“咝”聲(每高一個八度,頻率就升高1倍。因此,高頻率區的能量也顯著增強)。由于現實中產生的波形帶寬不可能為無限寬,所以本設計只要求設計產生限帶白噪聲,帶寬在300 MHz左右,波形失真度在3%以內。
2.2.1 系統整體結構設計
在確定了各個部分模塊的功能后,系統的整體結構圖也就形成了,見圖1。

圖1 多功能信號發生器整體系統框圖
直接數字式頻率合成器DDS(Direct Digital Synthesizer),實際上是一種分頻器:通過編程頻率控制字來分頻系統時鐘(SYSTEM CLOCK)以產生所需要的頻率。DDS有兩個突出的特點,一方面,DDS工作在數字域,一旦更新頻率控制字,輸出的頻率就相應改變,其跳頻速率高;另一方面,由于頻率控制字的寬度寬(48 bit或者更高),頻率分辨率高。
DDS基本原理:DDS的基本原理是利用采樣定理,通過查表法產生波形。DDS的內部結構圖主要分為3部分:相位累加器、相位幅度轉換、數模轉換器(DAC)。
3.1.1 相位累加器
一個正弦波,雖然它的幅度不是線性的,但是它的相位卻是線性增加的。DDS正是利用了這一特點來產生正弦信號。根據DDS的頻率控制字的位數N,把360°平均分成了2^n等份。假設系統時鐘為Fc,輸出頻率為Fout,每來1個時鐘脈沖,加法器將控制字M與累加寄存器輸出的累加相位數據相加,把相加后的結果送到累加寄存器的數據輸入端,使加法器在下一個時鐘脈沖的作用下繼續與頻率控制字相加。相位累加器在時鐘作用下,不斷對頻率控制字進行線性相位累加??梢缘玫饺缦碌仁剑?/p>
化簡后可得輸出頻率:

3.1.2 相位幅度查詢
通過相位累加器,已經得到了合成Fout頻率所對應的相位信息,然后相位幅度轉換器把0°~360°的相位轉換成相應相位的幅度值。比如當DDS選擇為2Vp-p的輸出時,45°對應的幅度值為0.707 V,這個數值以二進制的形式被送入DAC,這個相位到幅度的轉換是通過查表完成的。
3.1.3 DAC輸出
代表幅度的二進制數字信號被送入DAC中,并轉換成為模擬信號輸出。注意DAC的位數并不影響輸出頻率的分辨率,輸出頻率的分辨率是由頻率控制字的位數決定的。
AD9851模塊采用了美國模擬器件公司采用先進DDS直接數字頻率合成技術生產的高集成度產品AD9851芯片。AD9851是由數據輸入寄存器、頻率/相位寄存器、具有6倍參考時鐘倍乘器的DDS芯片、10位的模/數轉換器、內部高速比較器這幾個部分組成。其中,具有6倍參考時鐘倍乘器的DDS芯片是由32位相位累加器、正弦函數功能查找表、D/A變換器以及低通濾波器集成到一起。這個高速DDS芯片時鐘頻率可達180 MHz,輸出頻率可達70 MHz,分辨率為0.04 Hz。
AD9851可以產生一個頻譜純凈、頻率和相位都可編程控制且穩定性很好的模擬正弦波,這個正弦波能夠直接作為基準信號源,或通過其內部高速比較器轉換成標準方波輸出,作為靈敏時鐘發生器來使用。
文章的DDS模塊經調試后得出以下特性:
(1)模塊能夠輸出0~10 MHz正弦波和方波
(2)采用70 MHz的低通濾波器,使波形的SN比更好。
(3)并口和串口數據輸入可以通過一個跳帽選擇。
(4)產生DA基準的(外接電阻)管腳引出,方便做輸出波形的幅度調節應用。
(5)比較器的基準輸入端電壓由可變電阻產生,調節該電阻可以得到不同的占空比方波。
白噪聲或白雜訊,是一種功率頻譜密度為常數的隨機信號或隨機過程。理想的白噪聲具有無限帶寬,因而其能量是無限大的,這在現實世界是不可能存在的。一般,只要一個噪聲過程所具有的頻譜寬度遠遠大于它所作用系統的帶寬,并且在該帶寬中其頻譜密度基本上可以作為常數來考慮,就可以把它作為白噪聲來處理。
想要用模擬方式產生白噪聲,就得用到平時最常用的雙極晶體管和半導體二極管。在雙極晶體管和半導體二極管等器件中,流動的電流不是平滑和連續的,而是各個攜帶著一個電子電荷的載流子的流動產生的電流脈沖之和。其原因在于這些器件中有勢壘存在,而載流子通過勢壘是隨機發生的一系列獨立事件。對于晶體管,當發射結處于正向偏置時,就有載流子越過發射結勢壘由發射區注入基區。雖然單位時間內注入基區的載流子平均數是一定的,但是,某一個載流子越過勢壘進入基區的事件確實隨機的,它取決于載流子是否具有足夠的能量以及指向結面方向的速度的大小。這就使得注入基區的少子數目在其平均數附近發生統計起伏,從而引起注入電流的起伏。這種由于載流子各自獨立而隨機地通過勢壘所引起的噪聲,稱為散粒噪聲。
散粒噪聲的功率譜密度與頻率無關,屬于白噪聲。值得強調的是該式只在中低頻范圍內有效,在接近1 GHz的高頻區,散粒噪聲也將隨頻率的上升而增加。盡管如此,在幾款的頻帶范圍內,其功率譜密度仍與頻率無關。而且,實驗還發現,PN結反向擊穿會使散粒噪聲激增。因此,PN結的散粒噪聲具有以下兩個特征,首先,在非常寬的頻率范圍內,從幾個赫茲到微波頻段,其功率譜密度與頻率無關,即呈白噪聲。其次,基極-發射極的PN結反響擊穿時,噪聲強度激增。因此,可以用作高性能固態噪聲源。
4.2.1 白噪聲發生電路設計
白噪聲信號發生器電路原理圖見圖2所示。發生器是利用普通的雙極性晶體管9014,它由雙極性晶體管2N2222提供恒流源偏置。為了增加可得到的散粒噪聲,9014的集電極處于開路而基極—發射極則為反向偏置。此時,BJT連接成其發射結處于反向擊穿狀態。

圖2 白噪聲發生器原理圖
采用這樣的配置,發射極-基極結的反向擊穿電壓可以很容易地用一般的頻譜分析儀觀察,其頻譜帶寬約為300 MHz,而功率輸出大約是-70 dBm。
為了增大噪聲功率,后級電路對散粒噪聲進行了放大。首先是將直流信號濾除,并盡量使交流信號通過,NE5532是一個性能優良的低噪聲電壓放大器,工作電壓為正負12 V,由它組成的跟隨器。信號再經過一級電壓增益為100的放大電路,然后輸入一個四階的Butterworth開關電容低通濾波器電路TLC04/MF4A,最后再經過一級跟隨電路使輸入輸出隔離。
Atmega128是ATMEL公司的8位系列單片機的最高配置的一款單片機,它性能高,功耗低,采用先進的RISC結構,含有128 K字節的系統內可編程Flash,8路10位ADC,6路分辨率可編程的PWM,兩個具有預分頻器、比較功能和捕獲功能的16位定時器/計數器,并且有6種睡眠模式,功耗極低,應用十分廣泛。
為創造一個比較好的人機交互系統,鍵盤和顯示是必不可少的,但如果按鍵太多,功能太復雜,不僅提高成本,而且使用者也不方便用,所以本設計只有4個按鍵,分別是上升鍵、下降鍵、回車鍵和返回鍵,而屏幕更是把需要調試的數據通過LCD顯示在屏幕上。此外,為防止用戶誤操作及操作成功提示,本硬件電路還有蜂鳴器報警裝置。
在確定好框圖之后,把各個模塊的電路圖連在一起,最后,通過手工焊接及調試,文章制作出整個系統的實物,見圖3。

圖3 多功能信號發生器整體系統實物圖
文章中采用AVR Studio是Atmel官方發行的免費軟件,其強大的功能和正宗的血統,使其成為絕大部分AVR開發者必不可少的工具。
DDS軟件模塊主要有兩個函數:ad9851_reset_serial () 和ad9851_wr_serial (unsigned char w0,double frequence),第一個函數是DDS復位程序,第二個函數是寫DDS數據程序,復位程序比較容易,以下介紹寫AD9851的程序流程,見圖4。

圖4 DDS軟件模塊程序流程圖
鍵盤管理軟件模塊也分為兩個部分:keycounter(uint keytime)按鍵變頻加速部分和key()鍵盤管理主程序部分。按鍵變頻加速部分主要用于按鍵不放的情況下數碼的加速上升,原理是根據按鍵的頻率來修改判斷按鍵的延時。
顯示模塊包含的子函數較多,包括init_lcd(void)屏幕初始化程序、chn_disp(uchar const*chn) 漢字 /字符顯示函數、chn_disp1(uchar const*chn)上半屏顯示漢字或字符、img_disp(uchar const*img) 顯示圖形、img_disp1(uchar const*img)下半屏顯示圖形、lat_disp (uchar data1,uchar data2) 顯示點陣、con_disp(uchar data1,uchar data2,uchar x0,uchar y0,uchar xl,uchar yl) 反 白 顯 示 、clrram (void) 清 DDRAM、wr_lcd(uchar dat_comm,uchar content)寫入數據、chk_busy(void)忙檢測程序。5.8 主函數
由于每個模塊的程序都很完整,所以主程序讀起來也并不復雜,主程序如下:

其中,各級子程序通過按鍵程序調用,主程序只負責初始化及判斷有無按鍵,這樣給讀程序帶來了許多方便。
系統調試是一項漫長而艱苦的工作,但值得慶幸的是,這個過程也是最鍛煉人的,每個優秀的工程師都是從一步步的調試錯誤中成長起來的。
操作系統的運行畫面見圖5、圖6。

圖5 主菜單界面

圖6 正弦波發生器子菜單

圖7 正弦波波形圖及FFT頻譜圖(1 888 Hz)
圖7是高檔數字示波器的顯示圖截屏,上半部分為波形顯示,下半部分為波形的FFT處理后的頻譜圖。
文章著重介紹了最新DDS技術和白噪聲發生技術的應用,使AD9851這款經典DDS芯片得以揭開其真實的面紗,同時還為新興的白噪聲發生技術做了一些探索,讓大家領略了特殊信號的多種用途和發生技術。由于大部分部件是手工焊接,所以不可避免地帶來部分電磁干擾,如果采用全PCB工藝,效果會更好。