孫南南,周洪波,張雋康,尚國(guó)武
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北 石家莊 050081)
軟件定義無(wú)線電(SDR)架構(gòu)可以簡(jiǎn)化系統(tǒng)設(shè)計(jì),實(shí)現(xiàn)無(wú)線電平臺(tái)標(biāo)準(zhǔn)化。提出SDR已經(jīng)二三十年[1-4],限于高昂的成本和復(fù)雜的實(shí)現(xiàn)方案,一直以來(lái)是少數(shù)高端應(yīng)用的獨(dú)寵。ADI推出的集成式RF收發(fā)器AD9364的優(yōu)勢(shì)在于為多種無(wú)線電方案提供統(tǒng)一的可再編程無(wú)線電平臺(tái)[5]。
AD9364射頻捷變收發(fā)器具備靈活性、可配置性、低功耗、體積小、重量輕以及支持現(xiàn)場(chǎng)升級(jí)等優(yōu)點(diǎn),在無(wú)人飛行器、LTE通信基礎(chǔ)設(shè)施以及防務(wù)電子等領(lǐng)域有較大的應(yīng)用價(jià)值[6-10]。AD9364將信號(hào)鏈封裝于一個(gè)軟件可配置IC之中,包括混頻器、發(fā)射和接收通道的頻率合成器、模擬濾波、數(shù)據(jù)轉(zhuǎn)換器和其他功能模塊。而一般的集成式寬帶捷變收發(fā)器解決方案在性能、可調(diào)帶寬方面受限,缺乏實(shí)用性、高性價(jià)比的SDR能力,因此,AD9364自上市以來(lái)供不應(yīng)求。
目前,國(guó)內(nèi)基于AD9364的研究主要集中在平臺(tái)架構(gòu)設(shè)計(jì),以及該芯片的指標(biāo)參數(shù)和芯片架構(gòu),這些在官方手冊(cè)中有比較全面的介紹[11]。但是涉及在實(shí)際工程中的使用并沒有詳盡的研究,尤其是配置方法和實(shí)際應(yīng)用中遇到的一些問(wèn)題。
本文基于現(xiàn)有AD9364常見平臺(tái)架構(gòu)設(shè)計(jì)方案[12-15],結(jié)合實(shí)際工程應(yīng)用中的經(jīng)驗(yàn),詳盡闡述了AD9364射頻捷變收發(fā)器的4種配置方法:FPGA邏輯配置方式、FPGA片上Nios配置方式、FPGA+SDRAM配置方式與FPGA+單片機(jī)配置方式。描述了其軟硬件設(shè)計(jì)方案,分析了各方法的適用場(chǎng)景和優(yōu)缺點(diǎn),為AD9364和AD936x系列的使用提供了指導(dǎo)。
ADI公司的AD9364射頻捷變收發(fā)器作為一款單發(fā)單收的零中頻信號(hào)發(fā)射模塊,由發(fā)射器、接收器、濾波器、混頻器、ADC、DAC、數(shù)字?jǐn)?shù)據(jù)接口及控制接口組成,其芯片架構(gòu)如圖1所示。
圖1 AD9364芯片架構(gòu)
AD9364的接口設(shè)計(jì)主要分為2部分:芯片與基帶處理芯片(比如FPGA)之間的12位并行數(shù)據(jù)端口P0,P1,用于芯片配置寄存器的控制參數(shù)傳輸?shù)目刂平涌凇?/p>
AD9364通過(guò)內(nèi)部寄存器映射表實(shí)現(xiàn)可配置和靈活性的特點(diǎn)。芯片內(nèi)部的寄存器雖然多達(dá)上千個(gè),但是這些寄存器按照其主要功能被分為基帶鎖相環(huán)頻率設(shè)定、發(fā)送與接收信號(hào)帶寬設(shè)定、數(shù)字?jǐn)?shù)據(jù)接口設(shè)置、發(fā)送與接收射頻頻點(diǎn)設(shè)定、接收功率控制和發(fā)射功率設(shè)定等。以上這些模塊需要根據(jù)實(shí)現(xiàn)的功能來(lái)設(shè)計(jì),而像低通濾波器參數(shù)設(shè)定、正交校正與直流補(bǔ)償這些功能模塊的寄存器值一般參照默認(rèn)值設(shè)置即可。
AD9364提供了2種配置控制接口的方式:SPI控制和管腳配置。在SPI控制模式下,AD9364通過(guò)芯片上的SPI接口與外圍控制模塊交互,可以實(shí)時(shí)修改芯片的所有寄存器值,尤其是芯片當(dāng)前工作狀態(tài)(比如:頻分雙工FDD、時(shí)分雙工TDD、發(fā)射狀態(tài)和接收狀態(tài))。而在管腳配置模式下,外圍控制模塊通過(guò)對(duì)芯片特定的幾個(gè)管腳進(jìn)行高低電平控制,只能實(shí)現(xiàn)芯片當(dāng)前工作狀態(tài)的切換,應(yīng)用范圍比較小。實(shí)際使用中,結(jié)合 SPI控制和管腳配置一起使用,只需要設(shè)置某幾個(gè)寄存器參數(shù)即可,這樣可以直觀簡(jiǎn)單地控制芯片當(dāng)前的工作狀態(tài)。
采用FPGA邏輯配置方式的硬件設(shè)計(jì)如圖2所示。FPGA自身具有強(qiáng)大的時(shí)鐘、運(yùn)算及擴(kuò)展能力,只需將FPGA與AD9364之間的管腳在物理上正確連接,通過(guò)編程實(shí)現(xiàn)與AD9364之間的SPI通信。從硬件設(shè)計(jì)角度分析,板卡可以通過(guò)一塊電源芯片、一片晶振及相關(guān)電路設(shè)計(jì)滿足FPGA,AD9364及其他器件的所有需求,從而減小板卡尺寸并節(jié)約成本。
圖2 FPGA邏輯配置方式
根據(jù)圖2 的設(shè)計(jì),在FPGA中利用VHDL語(yǔ)言或Verilog語(yǔ)言編程實(shí)現(xiàn)AD9364相關(guān)寄存器的賦值,通過(guò)SPI接口配置AD9364。同時(shí)AD9364的CTRL控制管腳只需要高低電平就可以工作,因此在FPGA中,對(duì)這類管腳的控制非常簡(jiǎn)單。
FPGA中AD9364寄存器賦值模塊的軟件設(shè)計(jì)如圖3所示。
圖3 FPGA邏輯配置方式軟件設(shè)計(jì)
首先按照順序依次給寄存器賦值,查詢SPI口的狀態(tài)決定是否寫數(shù),在某些寄存器寫完值后等待AD9364返回的校驗(yàn)值,如果校驗(yàn)值正確則繼續(xù)給寄存器賦值,反之重新給該寄存器賦值等待校驗(yàn)正確。
從硬件、軟件設(shè)計(jì)角度分析,該種配置模式的使用較簡(jiǎn)單,涉及的硬件電路和開發(fā)環(huán)境較少。但是,AD9364的配置是一個(gè)閉環(huán)過(guò)程,通過(guò)AD9364與外圍配置模塊之間配置環(huán)節(jié)的校驗(yàn)功能,根據(jù)反饋的信息更加精確地調(diào)整AD9364的工作狀態(tài),從而更好地實(shí)現(xiàn)設(shè)計(jì)的功能;同時(shí)把當(dāng)前工作狀態(tài)反饋給外圍配置模塊。而FPGA邏輯配置方式大量簡(jiǎn)化了校驗(yàn)功能,直接單向輸出控制指令,對(duì)校驗(yàn)的判斷僅限于是否配置正確而沒有校準(zhǔn)功能。如果校驗(yàn)一直失敗程序會(huì)陷入死循環(huán),導(dǎo)致AD9364工作指標(biāo)的偏差。AD9364每個(gè)寄存器的位寬是8 bit,每個(gè)比特代表不同的功能,該芯片的某些功能有時(shí)需要幾個(gè)寄存器一起配合實(shí)現(xiàn),而該芯片涉及了基帶信號(hào)處理、射頻信號(hào)處理和模擬電路等多方面知識(shí)。該種配置方式需要給所有相關(guān)的寄存器依次賦值,這就需要準(zhǔn)確地知道這些寄存器的功能,從這一角度來(lái)說(shuō),這種配置方式有一定的難度。
圖2與FPGA邏輯配置方式一致。從硬件設(shè)計(jì)來(lái)說(shuō)二者一致,不同的是該種配置方式對(duì)FPGA性能要求高,需要占用3 M左右的FPGA片上RAM資源。因此,在FPGA選型時(shí)需要注意。
根據(jù)圖2 的設(shè)計(jì),該種配置方式需要使用FPGA片上自帶的Nios II系列軟核處理器,作為Altera公司推出的第2代FPGA嵌入式處理器,其性能超過(guò)200DMIPS。在Nios II開發(fā)環(huán)境下使用C/C++語(yǔ)言編程實(shí)現(xiàn)AD9364相關(guān)寄存器的賦值,通過(guò)SPI接口配置AD9364。同時(shí),在FPGA中通過(guò)VHDL語(yǔ)言或Verilog語(yǔ)言編程實(shí)現(xiàn)對(duì)AD9364的CTRL管腳的控制。
FPGA片上Nios配置方式的軟件設(shè)計(jì)如圖4所示。
圖4 FPGA片上Nios配置方式軟件設(shè)計(jì)
軟件設(shè)計(jì)主要分為5部分:主要寄存器參數(shù)配置接口、寄存器參數(shù)回報(bào)接口、函數(shù)計(jì)算、寄存器賦值和指令校驗(yàn)。用戶通過(guò)主要寄存器參數(shù)配置接口模塊設(shè)計(jì)AD9364工作指標(biāo),函數(shù)計(jì)算模塊根據(jù)參數(shù)值進(jìn)行相關(guān)運(yùn)算,寄存器賦值模塊根據(jù)其輸出結(jié)果給AD9364的相關(guān)寄存器賦值,經(jīng)由指令校驗(yàn)?zāi)K處理后通過(guò)FPGA管腳輸出給AD9364,指令校驗(yàn)?zāi)K根據(jù)AD9364返回的指令調(diào)整相關(guān)寄存器的偏差并反饋給函數(shù)計(jì)算模塊,從而形成一個(gè)閉環(huán)的配置校驗(yàn)過(guò)程。同時(shí),用戶通過(guò)寄存器參數(shù)回報(bào)接口實(shí)時(shí)觀測(cè)AD9364的寄存值來(lái)分析其工作狀態(tài)。該種軟件設(shè)計(jì)方式的主要優(yōu)勢(shì)如下:
① 用戶體驗(yàn)佳,簡(jiǎn)潔、高效和直觀地使用AD9364;
② 形成一個(gè)完整的閉環(huán)配置校驗(yàn)過(guò)程,更加精準(zhǔn)地調(diào)整AD9364的工作狀態(tài)。
從硬件設(shè)計(jì)角度分析,該配置模式的硬件電路比較簡(jiǎn)單。從軟件設(shè)計(jì)角度分析,該種配置模式實(shí)現(xiàn)了AD9364的閉環(huán)配置過(guò)程,但是需要研發(fā)人員熟練掌握C/C++語(yǔ)言編程。Nios II作為FPGA片上嵌入式處理器,在跨芯片平臺(tái)、跨芯片系列使用時(shí)并不適用,并且不支持軟件開發(fā)工具的跨界使用。
采用FPGA+SDRAM配置方式的硬件設(shè)計(jì)如圖5所示,與前2種配置方式相比較,板卡上增加了一片SDRAM芯片及相關(guān)電路,從而節(jié)省了FPGA片上RAM資源。
眾所周知,F(xiàn)PGA片上RAM資源是寶貴的,一般中端系列的FPGA片上RAM資源約12 M左右。相較于前一種配置方式,該種配置方式將Nios II處理器運(yùn)行過(guò)程中需要占用的內(nèi)存資源轉(zhuǎn)移到SDRAM芯片內(nèi),從而釋放了原本需要在FPGA片上占用的RAM資源,進(jìn)而降低FPGA芯片的指標(biāo)要求并降低成本。
圖5 FPGA+SDRAM配置方式
FPGA+SDRAM配置方式的軟件設(shè)計(jì)方法與FPGA片上Nios配置方式一致,也需要借助Nios II開發(fā)環(huán)境,形成一個(gè)完整閉環(huán)的配置校驗(yàn)過(guò)程。
從硬件設(shè)計(jì)角度分析,該配置模式的硬件電路相對(duì)復(fù)雜,增加了額外成本。從軟件設(shè)計(jì)角度分析,該配置模式實(shí)現(xiàn)了AD9364的閉環(huán)配置過(guò)程。雖然SDRAM憑借其極高的性價(jià)比,廣泛應(yīng)用于高速數(shù)據(jù)存儲(chǔ)等設(shè)計(jì)中,但是相對(duì)于SRAM等其他存儲(chǔ)器件,SDRAM的控制相對(duì)復(fù)雜[16]。在實(shí)際工程應(yīng)用中發(fā)現(xiàn),SDRAM內(nèi)部的命令發(fā)送和數(shù)據(jù)傳輸都以同步工作時(shí)鐘為基準(zhǔn),因此對(duì)其與FPGA交互的44條信號(hào)線(數(shù)據(jù)線和地址線)的時(shí)鐘同步要求很高,會(huì)發(fā)生轉(zhuǎn)發(fā)給AD9364的指令無(wú)法解析的情況。這種情況下只能通過(guò)改善同步工作時(shí)鐘與信號(hào)線的時(shí)序關(guān)系來(lái)解決,增加了程序運(yùn)行的風(fēng)險(xiǎn)。同時(shí)SDRAM與FPGA交互的管腳數(shù)為54,大量占用了FPGA的IO口資源。
采用FPGA+單片機(jī)配置方式的硬件設(shè)計(jì)如圖6所示。與前2種配置方式相比,板卡上增加了一片單片機(jī)及相關(guān)電路,可以節(jié)省FPGA片上RAM資源,但是增加了板卡的尺寸和設(shè)計(jì)復(fù)雜度。
圖6 FPGA+單片機(jī)配置方式
相對(duì)于FPGA邏輯配置方式和FPGA+SDRAM配置方式,該種配置方式用單片機(jī)替代了FPGA片上嵌入式處理器,用Keil替代Nios II開發(fā)環(huán)境,F(xiàn)PGA只作為AD9364和單片機(jī)的電平轉(zhuǎn)換接口,不做任何信號(hào)處理。
該配置方式的軟件設(shè)計(jì)方法與前2種配置方式一致,只是在Keil開發(fā)環(huán)境中用C/C++語(yǔ)言編程,最終形成一個(gè)完整閉環(huán)的配置校驗(yàn)過(guò)程。
從硬件設(shè)計(jì)角度分析,該種配置模式的硬件電路最為復(fù)雜,雖然單片機(jī)成本低(約15元一片),但需要給單片機(jī)提供單獨(dú)的供電、晶振、調(diào)試接口和相關(guān)電路,因此增加了板卡尺寸和附帶成本。該種方式附帶總成本仍然比一片SDRAM成本的一半要少。單片機(jī)與FPGA交互的管腳數(shù)僅為2,大大節(jié)約了FPGA的IO口資源。從軟件設(shè)計(jì)角度分析,該種配置模式不僅能實(shí)現(xiàn)AD9364的閉環(huán)配置過(guò)程,還可以跨芯片平臺(tái)、跨芯片系列使用,移植性強(qiáng),但是需要研發(fā)人員熟練掌握單片機(jī)的開發(fā)。
根據(jù)上述介紹的4種配置方式,從軟件設(shè)計(jì)和硬件設(shè)計(jì)2個(gè)角度分析各自的特性。表1和表2以類別A,B,C,D分別表示FPGA邏輯配置方式、FPGA片上Nios配置方式、FPGA+SDRAM配置方式和FPGA+單片機(jī)配置方式。
AD9364四種配置方式的軟件設(shè)計(jì)特性如表1和表2所示。
表1 軟件設(shè)計(jì)特性
類別代碼可讀性校驗(yàn)功能是否支持浮點(diǎn)運(yùn)算時(shí)序要求調(diào)試編譯時(shí)長(zhǎng)A差不支持不支持一般長(zhǎng)B好支持支持一般短C好支持支持較高短D好支持支持一般一般
表2 軟件設(shè)計(jì)特性
AD9364的4種配置方式的硬件設(shè)計(jì)特性如表3和表4所示。
表3 硬件設(shè)計(jì)特性
表4 硬件設(shè)計(jì)特性
類別額外增加的成本是否支持跨FPGA系列是否支持跨FPGA品牌國(guó)產(chǎn)化要求A無(wú)支持支持支持B無(wú)不支持不支持不支持C最多不支持不支持不支持D較少支持支持支持
結(jié)合表1~表4,可以發(fā)現(xiàn):
① 對(duì)AD9364配置程序移植性要求高,只能采用FPGA邏輯配置方式和FPGA+單片機(jī)配置方式;
② 對(duì)板卡尺寸、復(fù)雜度和成本要求高,建議采用FPGA邏輯配置方式和FPGA片上Nios配置方式;
③ 對(duì)研發(fā)人員要求低,建議選擇FPGA邏輯配置方式;
④ 對(duì)程序可讀性、調(diào)試便捷性要求高,建議采用FPGA片上Nios配置方式、FPGA+SDRAM配置方式、FPGA+單片機(jī)配置方式。
在ADI公司提供的配置方法的基礎(chǔ)上,根據(jù)實(shí)際工程經(jīng)驗(yàn)總結(jié)了射頻捷變收發(fā)器AD9364的4種配置方式并分析了常見問(wèn)題,從硬件設(shè)計(jì)復(fù)雜度、硬件設(shè)計(jì)成本、軟件開發(fā)復(fù)雜度及是否滿足國(guó)產(chǎn)化要求等方面分析。FPGA邏輯配置方式成本較低但調(diào)試最為復(fù)雜,F(xiàn)PGA片上Nios配置方式成本較低但移植性差,F(xiàn)PGA+SDRAM配置方式節(jié)省FPGA片上RAM資源但開發(fā)復(fù)雜,F(xiàn)PGA+單片機(jī)配置方式移植性好但板卡尺寸最大。闡述的4種配置方式可以靈活滿足各種硬件平臺(tái)架構(gòu),從而滿足大多數(shù)軟件無(wú)線電平臺(tái)的應(yīng)用需求。