基于AD9361的簡易頻譜分析儀設(shè)計與實現(xiàn)
地址0x005為AD9361的RFPLL Dividers寄存器,可以配置該寄存器的值,對VCO進(jìn)行分頻,得到接收通路的LO頻率信息。
本文引用地址:http://cafeforensic.com/article/201608/296189.htm(1)
地址0x012為AD9361的 Parallel Port Configuration寄存器,可以配置AD9361數(shù)字接口的方式,本設(shè)計中,采用LVDS的雙端口模式,因此,這里設(shè)置該寄存器的值為0x10。
地址0x013為AD9361的ENSM Mode寄存器,可以通過配置該寄存器AD9361的FDD狀態(tài)機(jī)和TDD狀態(tài)機(jī)之間的轉(zhuǎn)換。本設(shè)計中,采用FDD模式,因此設(shè)該寄存器的值為0x01。
AD9361的VCO頻率相關(guān)寄存器地址為0x231~0x235,該組寄存器設(shè)置的VCO值可以為6GHz~12GHz,經(jīng)過0x005寄存器所設(shè)置的值進(jìn)行分頻后,作為AD9361 RX的LO。其計算公式為:
(2)
(3)
此外,ADI公司提供了基于Xilinx SDK的AD9361控制函數(shù),可以使用這些函數(shù)對AD9361進(jìn)行配置,這樣可以簡化AD9361的配置過程,提高工作效率,并提高配置的準(zhǔn)確性。
2.2 ZYNQ PS與AD9361的通信
ZYNQ PS與AD9361采用SPI和GPIO接口進(jìn)行通信。ZYNQ內(nèi)包含兩個SPI控制器,可以工作在主/從模式或多主機(jī)模式下。本次設(shè)計采用ZYNQ PS中的一組SPI控制器對AD9361的相關(guān)寄存器進(jìn)行讀寫。在ZYNQ上,我們可以通過MIO引出最多54個GPIO引腳,所有的GPIO都可以單獨配置成輸入、輸出以及中斷的功能。本設(shè)計中,采用GPIO對AD9361的TXNRX、ENABLE以及RESETB引腳進(jìn)行配置,以達(dá)到對AD9361控制的目的。
2.3 基于ZYNQ PL的頻譜分析模塊
頻譜分析模塊主要由時序處理模塊、加窗模塊、FFT模塊及DMA模塊完成,F(xiàn)FT的點數(shù)由ZYNQ PS部分通過AXI_GPIO模塊控制,圖3為ZYNQ PL頻譜分析部分的框圖。
數(shù)字信號輸入為模擬信號,經(jīng)過射頻輸入及轉(zhuǎn)換模塊后得到的數(shù)字信號,該數(shù)字信號的采樣率為60MSPS,由LVDS方式通過FMC接口輸入至該模塊輸入端。
時序處理模塊將PL中相關(guān)模塊的時序和AD9361收發(fā)機(jī)的數(shù)字接口時序進(jìn)行相互轉(zhuǎn)換,使其頻譜分析模塊可以正常工作。
由于在使用FPGA進(jìn)行信號處理中,不可能對無限長的信號進(jìn)行測量和分析,只能對信號進(jìn)行截斷,并對截斷部分進(jìn)行周期拓展并進(jìn)行處理。但這樣得到的信號會發(fā)生頻譜泄露現(xiàn)象。為了減小頻譜泄露的影響,需在計算FFT變換之前采用加窗技術(shù),常見的窗有:hanning窗、hamming窗以及Gaussian窗等。本設(shè)計采用8192點的hanning窗,以減少由于信號截斷所帶來的頻譜泄露現(xiàn)象。
FFT模塊對輸入的數(shù)據(jù)進(jìn)行FFT或IFFT變換,得到時域數(shù)據(jù)的頻譜信息或頻域數(shù)據(jù)的時域信息。其中FFT模塊的計算點數(shù)為8~8192點,F(xiàn)FT模塊使用Xilinx官方提供的IP 核。
ZYNQ PS模塊為頻譜分析模塊提供控制信息,并接收由AXI_DMA傳輸?shù)念l譜數(shù)據(jù)。ZYNQ PS與AXI_GPIO通過AXI4協(xié)議進(jìn)行數(shù)據(jù)傳輸,與AXI_DMA通過AXI_Lite協(xié)議進(jìn)行控制信號傳輸。FFT與DMA之間使用AXI_Stream協(xié)議進(jìn)行數(shù)據(jù)傳輸。
DMA與ZYNQ PS HP接口之間通過AXI協(xié)議進(jìn)行傳輸,這樣可以擁有很高的吞吐率和性能,但需要花費額外的邏輯資源。
2.4 ZYNQ與PC通信
為了更方便地進(jìn)行頻譜分析以及對頻譜分析儀的控制,設(shè)計參考文獻(xiàn)[7]采用串口方式將得到的頻譜分析數(shù)據(jù)發(fā)送到PC端,頻譜分析首先數(shù)據(jù)經(jīng)過DMA傳輸?shù)絇S的內(nèi)存中,然后通過串口將數(shù)據(jù)發(fā)送到PC端。串口速率傳輸較慢,F(xiàn)FT轉(zhuǎn)換并不是持續(xù)轉(zhuǎn)換,一次轉(zhuǎn)換數(shù)據(jù)全部通過串口發(fā)送完畢后,再進(jìn)行下一次轉(zhuǎn)換。
3 系統(tǒng)測試
為了方便觀察結(jié)果,我們在工程中加入了ILA模塊監(jiān)視AD采集到的數(shù)據(jù),如圖4所示,在Vivado中的Hardware Manager中抓取的AD輸入數(shù)據(jù),圖5為串口收到對應(yīng)FFT后的數(shù)據(jù)。
將AD9361的本振設(shè)置為1.9GHz,外接信號源設(shè)置為1.902GHz,且頻率為-50dBm,得到的頻譜數(shù)據(jù)經(jīng)過上位機(jī)處理后得出圖6所示的結(jié)果,其中MATLAB所計算出來的2MHz的功率值為-49.7101dBm。
表1為利用該頻譜分析儀測試的一些數(shù)據(jù),測試時本振設(shè)置為1.9GHz。
測試結(jié)果表明,該頻譜分析儀通帶范圍為LO-20MHz到LO+20MHz,在該通帶范圍內(nèi)可以較為準(zhǔn)確地分析的信號功率為0dBm到-65dBm,平均誤差小于1.5dB。當(dāng)信號源頻率與LO頻率相差為20MHz時,絕對誤差約為1dB左右。經(jīng)過分析,是AD9361內(nèi)部的模擬低通濾波器部分對信號造成了消減,因此產(chǎn)生了誤差。
4 總結(jié)與展望
論文采用ZedBoard平臺以及AD9361射頻收發(fā)機(jī)設(shè)計并實現(xiàn)了一款簡易頻譜分析儀,該頻譜分析儀核心部件為AD9361和ZedBoard,外加一臺電腦,成本低廉,方便可靠,成品作為個人或小型團(tuán)隊使用。如果對傳輸速率有更高的要求,可以利用ZedBoard的網(wǎng)口將頻譜分析后的數(shù)據(jù)傳送到PC端。
參考文獻(xiàn):
[1]Harikrishnan B, Raghul R, Shibu R M, et al. All programmable SOC based standalone SDR platform for researchers and academia[C]// Computational Systems and Communications (ICCSC), 2014 First International Conference on. IEEE, 2014:384 - 386.
[2]陸佳華, 江舟, 馬岷. 嵌入式系統(tǒng)軟硬件協(xié)同設(shè)計實戰(zhàn)指南:基于Xilinx Zynq[M]. 北京:機(jī)械工業(yè)出版社, 2013.
[3]Analog Devices, Inc. RF Agile Transceiver AD9361 Data Sheet[EB/OL]. http://www.analog.com/media/en/technical-documentation/data-sheets/AD9361.pdf.
[4]Analog,Devices.AD-FMCOMMS3-EBZ-UserGuide[EB/OL].http://wiki.analog.com/resources/eval/user-guides/ad-fmcomms3-ebz.
[5]孟憲元. Xilinx新一代FPGA設(shè)計套件Vivado應(yīng)用指南[M]. 清華大學(xué)出版社, 2014.
[6]Louise, H. Crockett, Ross, A. Elliot, Martin, A. Enderwitz, Robert, W. Stewart. The Zynq Book Tutorials[J/OL]. http://www.zynqbook.com/downloads.html.
[7]夏柯, 門蘭寧. 基于ZYNQ-7000 DMA控制器的UART數(shù)據(jù)傳輸?shù)脑O(shè)計與實現(xiàn)[J]. 信息系統(tǒng)工程, 2014, (9):113-114.
本文來源于中國科技期刊《電子產(chǎn)品世界》2016年第8期第49頁,歡迎您寫論文時引用,并注明出處
評論