崔博凱 ,溫今凡 ,溫懷疆
(1.浙江傳媒學院,浙江杭州,310018;2.蘭州交通大學,甘肅蘭州,730070)
相控揚聲器陣列是運用DSP(數(shù)字信號處理技術)代替機械偏轉(zhuǎn)措施,相控揚聲器陣列主要是由各單元相位的調(diào)整,影響空間中聲場的指向性函數(shù),使聲波波束完成一定角度的偏移,達到指向調(diào)控的目的。相控揚聲器陣列不僅可以增加揚聲器的輻射功率,還可以調(diào)整陣列系統(tǒng)聲波的輻射范圍,大大地提高其指向性。
相控揚聲器陣列,如圖1所示,在聲學工程中,任意一個點聲源在與其相距為r處產(chǎn)生的聲壓,取一次近似后可以表示為:
圖1 相控揚聲器陣列原理
p(r,t)點聲源的聲壓。
經(jīng)過推導,得:
其中,p(r,θ)點聲源的聲壓。
陣因子為:
陣因子表達式(3)可以看出,它是影響線陣列中波束形成的主要因素[2~6],它包括:頻率、陣元間距、陣元數(shù)、空間信號加權方式及陣元間的相位差。其中頻率、陣元數(shù)(信號路數(shù))、信號加權方式及陣元間的相位差,均對測試信號源提出了較高的具體化的要求,傳統(tǒng)信號源測試揚聲器陣列時,在信號路數(shù)、相位差控制精度和信號加權方式等方面存在著較大的局限性。而基于DDS(直接頻率合成器)的信號生成技術以其高分辨率、高穩(wěn)定性的諸多優(yōu)勢和能夠輸出多波形(各種調(diào)制波形)、多通道、多輸出頻率的特點,則可以較好地實現(xiàn)多通道、多相位差及不同信號加權方式的輸出,使得產(chǎn)生音頻相控陣測試信號的解決方案相對簡單。
DDS通過頻率調(diào)節(jié)字對系統(tǒng)時鐘進行濾波處理的數(shù)字分頻器。它由相位累加器,相位-幅度變換器,數(shù)/模變換器和低通濾波器等組成,如圖2所示。
圖2 DDS原理框圖
(1)相位累加器
DDS合成正弦波的基礎是基于信號相位的線性變化。DDS根據(jù)頻率調(diào)節(jié)字的位數(shù)N,把0°~360°的相位變化平均分成2N等份。假設系統(tǒng)參考時鐘為fs;輸出頻率為fout。在每個時鐘周期轉(zhuǎn)過一個角度360°/2N,則可以產(chǎn)生一個頻率為fs/2N的相位增量。因此,只需選擇恰當?shù)念l率調(diào)節(jié)字M,就可以得到所需的輸出頻率fout。
由式(4)可以得到DDS的頻率分辨率為:
(2)相位幅度轉(zhuǎn)化器
根據(jù)相位累加器的輸出,可以得到合成fout頻率所對應的相位信息,相位幅度轉(zhuǎn)化器可以把累加器輸出的數(shù)字相位信息變換成相應的幅度值。這個數(shù)值以二進制的形式被送入DAC進行數(shù)模轉(zhuǎn)換。此相位到幅度的轉(zhuǎn)換通過查表操作完成。
(3)D/A數(shù)模變換器
從相位幅度轉(zhuǎn)換器得到的二進制數(shù)字信號被送入數(shù)/模(D/A)轉(zhuǎn)換器中,變換成模擬信號輸出。此處D/A變換器的位數(shù)對輸出頻率的分辨率并沒有影響。輸出頻率的分辨率由頻率調(diào)節(jié)字的位數(shù)決定。
整個系統(tǒng)的硬件設計框圖如圖3所示,系統(tǒng)由MCU(STM32F103ZET6以下簡稱STM32)主控板、電路轉(zhuǎn)接板以及兩塊DDS(AD9959芯片)電路板組成。用戶可通過按鍵與STM32主控板進行交互,修改輸出信號的參數(shù),STM32主控板會輸出控制信號;電路轉(zhuǎn)接板為STM32主控板和DDS電路板供電并提供時鐘信號,同時將STM32主控板的控制信號分發(fā)給兩塊AD9959電路板,最終由這兩塊AD9959電路板實現(xiàn)8路信號的輸出。
圖3 系統(tǒng)硬件框圖
2.3.1 AD9959芯片外圍電路
AD9959板電路如圖4所示,設計時,需將AD9959芯片17腳(DAC_RST)外接一定值電阻Rset,阻值由公式(6)計算得到,一端接地,該電阻用來控制芯片內(nèi)部DAC的輸出電流范圍,電流IOUT一般應取8~10mA左右。
圖4 AD9959芯片電路圖
AD9959芯片每個通道均有2個差分輸出端,即IOUT和IOUT,其電流輸出方式屬于源極開路的輸出方式,為了完成電流到電壓的轉(zhuǎn)換,設計時需要在每個輸出端接一個51Ω的上拉電阻。
2.3.2 AD9959信號輸出電路與低通濾波器
AD9959中的各信道的輸出雖都有差分輸出,但在實際應用中可以采用單端輸出,如CHxIOUT。由于DDS采用直接數(shù)字合成波形,其輸出波形中含有時鐘頻率的雜散干擾,因此,為有效地消除干擾,一般采用低通濾波器LPF對輸出信號進行濾波。
通常在每一塊AD9959電路板各路輸出都設計了如圖5所示的9階的巴特沃斯低通濾波器。巴特沃斯低通濾波器是一種常用的濾波器,其主要特點為:通頻帶內(nèi)的頻率響應曲線最大限度平坦,沒有紋波,而在阻頻帶則逐漸下降為零。本濾波器要求截止頻率為200MHz,輸入和輸出阻抗均為50Ω。
圖5 200MHz巴特沃斯低通濾波器
2.3.3 STM32F103ZET6芯片外圍電路
STM32F103ZET6主控板的硬件電路如圖6所示。
圖6 STM32F103ZET6電路圖
圖中STM32電源電壓為3.3V;復位方式采用手動復位,即按下復位鍵,使STM32的RESET引腳得到一個低電平實現(xiàn)復位;系統(tǒng)時鐘部分則采用了一個32.768kHz的低速晶振和一個8MHz的高速晶振來為系統(tǒng)提供時鐘信號;此外,用于顯示的2.8寸LCD液晶顯示屏通過17×2的排母座與STM32硬件電路板相連接。
除此之外,STM32的硬件電路還設計了3個獨立按鍵用以實現(xiàn)人機交互部分的各個控制功能。
2.3.4 控制信號轉(zhuǎn)接電路
由于控制兩塊AD9959芯片的控制信號幾乎一致,只有CS片選信號需要區(qū)分,為了簡化接線和方便代碼編寫,設計了轉(zhuǎn)接電路,如圖7所示。
圖7 控制信號轉(zhuǎn)接電路
2.3.5 電源電路
電源電路設計方面,采用兩片線性穩(wěn)壓芯片AMS1117-5.0和AMS1117-3.3分別給AD9959電路板、STM32主控板以及有源晶振供電,如圖8所示。
圖8 整體電源電路
而在AD9959電路板中,由于AD9959芯片核心采用1.8V供電,因此又設計了用一塊AX1117-1.8降壓穩(wěn)壓芯片為該電路板供電,如圖9所示。
圖9 AX1117-1.8降壓電路
還有一個關鍵問題就是如何解決兩塊AD9959芯片間8個通道間的信號同步。為此擬采用外部25MHz晶振為兩個AD9959電路板同時提供時鐘信號,具體電路如圖10所示。
圖10 25MHz有源晶振電路
之所以要選擇由外部晶振來給兩片AD9959提供時鐘的方案,是因為AD9959芯片內(nèi)四個通道共用一個時鐘系統(tǒng),它們的同步是沒有問題的;因此在設計的時只要保證多塊芯片都在同一個時鐘下運行,即所有的輸出通道都共用一個時鐘系統(tǒng),從理論上來說就可以保證它們的之間的信號也是同步的,當然這里還要考慮兩個芯片間的微小系統(tǒng)誤差,這個可在測試中視情況進行必要的補償。
系統(tǒng)中的通信主要是由STM32單片機向AD9959發(fā)送命令,從而輸出相應的正弦波信號,STM32單片機對于AD9959的控制主要是通過串行總線SDIO和SCLK來實現(xiàn)的。
AD9959有4種串行控制傳輸模式可供選擇,分別 是Single-Bit Serial(2-wire and 3-wire)Modes,2-Bit Serial Mode和4-Bit Serial Mode。AD9959四個輸出通道共享寄存器0x03~0x18,這種寄存器地址共享模式,能夠使4個通道同時寫入控制字。如果使4個通道互相獨立操作,可以通過通道選擇寄存器(CSR)進行選擇。
本系統(tǒng)采用的控制傳輸模式為Single-Bit Serial 2-wire Mode,在該工作模式下,AD9959的數(shù)據(jù)傳輸管腳為SDIO0,所有指令和數(shù)據(jù)均在SCLK信號的上升沿寫入,而在SCLK信號的下降沿讀出。STM32單片機對AD9959進行操作的過程主要分為以下兩個階段,如圖11所示:第一個階段稱為指令周期,在這個階段STM32單片機把指令寫入到AD9959中;第二個階段稱為數(shù)據(jù)傳送周期,主要傳送的是波形參數(shù)的控制字。
整個軟件系統(tǒng)的設計流程圖如圖12所示。系統(tǒng)上電后首先對各個模塊進行初始化操作,然后讀取EEPROM中的初始參數(shù)值,進入主循環(huán)之后,判斷AD9959輸出的波形參數(shù)是否需要修改,如果需要修改則將新的波形參數(shù)發(fā)送給AD9959,不需要修改則進入下一個環(huán)節(jié),即顯示GUI界面,之后判斷是否有按鍵按下,如果有則執(zhí)行交互命令完成相應的動作,如果沒有則回到循環(huán)的開始進行下一輪操作。
圖12 系統(tǒng)軟件設計流程圖
2.5.1 AD9959波形產(chǎn)生
AD9959芯片輸出波形,主要包含兩個步驟:首先要將輸入的信號波形參數(shù)值轉(zhuǎn)換為相應格式的控制字,然后將轉(zhuǎn)換得到的控制字寫入AD9959的對應寄存器中。具體的程序設計如下所示。
首先是對輸出信號波形的頻率進行設定,AD9959內(nèi)置有4顆 DDS內(nèi)核,每個內(nèi)核中都包含有32比特的相位累加和相位——幅度轉(zhuǎn)換器。使用公式(7)可以計算每個DDS的輸出信號的頻率。
其中,fOUT表示輸出信號的頻率,F(xiàn)TW為頻率控制字,0≤FTW≤231,fs表示系統(tǒng)時鐘頻率。
為了輸出某一頻率時,首先將要設置的頻率值Freq乘以精度得到頻率因子,然后將頻率因子分為四個字節(jié)得到頻率控制字,最后通過選擇要輸出的通道將頻率控制字寫入對應的寄存器即可完成頻率設置。
其次是對輸出信號波形的相位進行設定, DDS芯片可以提供相位偏移,它主要通過通道相位偏移字(CPOW)來完成。CPOW是一種用于儲存相位偏差的14比特寄存器。該數(shù)值被加入到輸出相位累加器中,用于使輸出的相位信號發(fā)生偏移。每個通道都有各自的相位偏移字寄存器,公式(8)則給出了相位偏差的準確值。
與設置頻率的方式一樣,當我們需要輸出某一相位值時,需要先將要設置的相位參數(shù)phase的具體數(shù)值乘以精度得到對應的相位因子,然后將得到的相位因子分為兩個字節(jié)得到相位控制字,最后通過選擇要輸出的通道將相位控制字寫入AD9959芯片的對應寄存器即可完成相位設置。
最后是對輸出信號波形的幅度進行設定,與之前設置頻率值與相位值得方法一致,首先將要設置的幅度參數(shù)的具體數(shù)值Ampli乘以精度得到幅度因子,然后將幅度因子轉(zhuǎn)換為相應的幅度控制字,最后通過選擇要輸出的通道將幅度控制字寫入對應的寄存器即可完成幅度設置。
2.5.2 人機交互界面
為了能夠直觀地控制輸出波形的參數(shù),還需要設計一個人機交互界面GUI,如圖13所示,其中包含各個通道的頻率、相位和幅度等信息。整個系統(tǒng)的人機交互界面有3個,分別負責界面切換、參數(shù)選擇和參數(shù)修改。
圖13 GUI界面
為了實現(xiàn)對這些信息的修改,則需要使用的單片機上的按鍵。由于本次設計選用的單片機板上只有三個按鍵:KEY_UP、KEY1和KEY0,為了能夠在不增加按鍵個數(shù)的情況下實現(xiàn)需要的功能,因此在設計時對每個按鍵的功能做了如表1所示的定義。
表1 按鍵功能定義表
通過對每個按鍵在不同界面的功能復用設置,僅使用單片機板上自帶的三個獨立按鍵就實現(xiàn)了包括界面切換、參數(shù)選擇和參數(shù)修改在內(nèi)的多種功能,具體的程序如下:
當檢測到某個按鍵按下時,首先判斷是哪一個按鍵被按下了,直到是哪一個按鍵被按下之后就要判斷當前所在的界面是哪一個,在知道目前處于哪一個界面之后就能夠做出對應的反應以實現(xiàn)使用者對其的控制。
2.5.3 波形參數(shù)存儲
為了能夠用戶每次上電使用時都能夠使用上次使用時調(diào)整好的參數(shù)而不是從初始值開始重新調(diào)整,在系統(tǒng)中還設計了能夠存儲信號發(fā)生器參數(shù)到EEPROM芯片AT24C02的模塊,具體的程序如下:
首先定義了一個數(shù)據(jù)表,用來存儲各個通道的頻率、相位、幅度信息和其他一些要存儲的信息。
其次,在存儲之前需要將數(shù)據(jù)表中的值更新為當前最新的參數(shù)信息。
最后調(diào)用EEPROM芯片AT24C02的存儲函數(shù)將更新后的數(shù)據(jù)表存儲到EEPROM中。
將制作好的信號發(fā)生器通電之后首先可以看到LCD顯示了各個通道的頻率、相位以及幅度信息,如圖14所示。
圖14 初始UI界面效果圖
將其輸出口通過同軸線連接到示波器則上可以觀察到各 通道輸出的波形,可以看到在相位同為0°的情況下,各通道的波形基本重疊在了一起,表示各個通道基本上是同步的。如圖15所示。
圖15 示波器觀察初始波形
經(jīng)過測試,當設置各個通道相位都為0°時,各通道輸出波形的相位均為0°,沒有任何偏差。表2則顯示的是在頻率為1000Hz,幅度為200mV的情況下各通道相位設計值與實測值的對比??梢钥吹剑谠O計相位小于15°時,誤差在8%左右;設計相位在15°~30°之間時,誤差在1%~2%左右;設計相位大于30°后,誤差均在1%以下。
表2 相位參數(shù)測試表(Fre = 1000 Hz Amp = 200 mV)
6 30 30.40 1.33 90 90.00 0.00 CH 設計值/°實測值/° 誤差/% 設計值/° 實測值/° 誤差/%0 0 0.00 0.00 0 0.00 0.00 1 30 30.60 2.00 60 59.55 -0.75 2 60 59.55 -0.75 120 120.20 0.17 3 90 90.00 0.00 180 180.00 0.00 4 120 120.40 0.33 240 239.50 -0.21 5 150 150.15 0.10 300 300.60 0.20 6 180 180.00 0.00 360 360.00 0.00
通過按下按鍵KEY0、KEY1和KEY_UP按鍵調(diào)整不同的頻率值,測得的頻率數(shù)據(jù)如表3所示,可以看到,該信號源輸出信號的頻率與設置頻率幾乎完全一致,只在最高頻率處產(chǎn)生了0.16%的誤差。
表3 頻率參數(shù)測試表(Pha = 0° Amp = 200 mV)
本系統(tǒng)還對信號輸出設置了7種模式的7路信號加權方式,分別是:均勻加權、余弦加權、升余弦加權、blackman加權、Kaiser加權、漢明窗加權、比切雪夫加權以及泰勒加權。初始設定為均勻加權。
在均勻加權情況下,設定200mV的幅度值,輸出信號幅度為202mV,誤差在1%左右。表4則展示了在頻率為1000Hz,相位為0°,余弦加權和比切雪夫加權的情況下各通道信號幅度設定值與實測值的對比??梢钥吹?,該7路信號輸出的信號幅度誤差均在1%以下。
表4 幅度參數(shù)測試表(Fre = 1000 Hz Pha = 0°)
本次設計的8路相控陣號源(實際測試采用了7路)采用STM32F103ZET6作為核心控制器實現(xiàn)了對AD9959的操作控制,主要可以實現(xiàn)以下幾種功能:
(1)輸出頻率在200~12800Hz之間可變,步長10Hz;
(2)每路信號輸出相位差成等差數(shù)列,步長5°;
(3)每路信號輸出幅度均可獨立在0~500mV之間可變,步長1mV;
(4)各路信號可以一定的方式組輸出,有均勻加權、余弦加權、升余弦加權、blackman加權、Kaiser加權、漢明窗加權、比切雪夫加權以及泰勒加權等8種模式可供選擇。從而更好地適應音頻相控陣揚聲器的測量。
本信號源在音頻相控陣揚聲器的實際測量中的表現(xiàn)良好,圖16為測試中的具體應用連接圖,圖中顯示信號源連接相控陣揚聲器陣列,在有一定隔音和吸音空間里繪制一個一定半徑圓弧,并標注上刻度,在刻度線上放置CLIO系統(tǒng)的標準測試話筒,便可對相控陣揚聲器陣列的聲場偏轉(zhuǎn)情況進行測試,大大提高了測量效率和準確度,同時也減輕了測量的勞動強度,因此本裝置是具有一定的應用前景的。
圖16 多路移相信號源在測試中的連接圖