基于ADSP-BF533的數(shù)字通信信號(hào)發(fā)生器設(shè)計(jì)與實(shí)現(xiàn)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
0 引言
在通信對(duì)抗的研究中,要想模擬出真實(shí)數(shù)字通信信號(hào)場(chǎng)景,數(shù)字通信信號(hào)發(fā)生器是不可或缺的儀器。而市面上的通信信號(hào)發(fā)生器價(jià)格十分昂貴,功能也比較簡(jiǎn)單。而且這類通信信號(hào)發(fā)生器的輸出碼元不可控,信噪比及干信比也不能動(dòng)態(tài)調(diào)節(jié),因此無法模擬多種調(diào)制類型通信信號(hào)的混合環(huán)境,用作通信對(duì)抗系統(tǒng)的性能測(cè)試信號(hào)源極為不便。所以開展高精度通信信號(hào)及噪聲干擾波形的重構(gòu)方法研究工作,具有重要的理論意義和實(shí)用價(jià)值。
1 ADSP-BF533芯片簡(jiǎn)介
ADSP-BF533是Blackfin系列的中高性能產(chǎn)品,專門針對(duì)多媒體(特別是視頻處理)和通信方面的各種應(yīng)用。其內(nèi)部包含2個(gè)乘/累加器(MAC),2個(gè)40位的ALU,4個(gè)視頻ALU和1個(gè)40位移位器。BF533內(nèi)核工作時(shí)鐘可高達(dá)600MHz。運(yùn)算單元處理來自寄存器組的8位、16位或者32位數(shù)據(jù)。
BF533的每個(gè)MAC每周期可完成一個(gè)16位乘16位的乘法運(yùn)算,并可把結(jié)果累加到40位的累加器中,同時(shí)可提供8位的精度擴(kuò)展。其ALU單元執(zhí)行標(biāo)準(zhǔn)的算術(shù)和邏輯運(yùn)算,兩個(gè)ALU可處理16或32位的數(shù)據(jù),運(yùn)算單元具有很大的靈活性.因此可以滿足各種應(yīng)用中信號(hào)處理的要求。
ADSP-BF533把存儲(chǔ)器視為一個(gè)統(tǒng)一的4GBytes的地址空間。所有的資源,包括內(nèi)部存儲(chǔ)器、外部存儲(chǔ)器和I/O控制寄存器,都占據(jù)公共地址空間中相應(yīng)的部分,并且相互獨(dú)立。此地址空間的各部分存儲(chǔ)器按分級(jí)結(jié)構(gòu)排列,以提供高性能價(jià)格比。高速、低延遲、小容量的存儲(chǔ)器(如CACHE或SRAM)的位置非常接近處理器,而低速、高延遲、大容量、低成本的存儲(chǔ)器(如SDRAM或Flash)遠(yuǎn)離處理器。
BF533內(nèi)的L1存儲(chǔ)器是內(nèi)核中性能最高最重要的存儲(chǔ)器;L2存儲(chǔ)器用以提供額外的存儲(chǔ)能力,性能較低:片外存儲(chǔ)系統(tǒng)通過外部總線接口單元(EBIU)進(jìn)行訪問;異步存儲(chǔ)器單元可以連接4個(gè)異步存儲(chǔ)器bank或IO接口,每個(gè)bank可支持最大1MBytes物理尋址空問;同步存儲(chǔ)器單元可以由SDRAM進(jìn)行擴(kuò)展,可以訪問多達(dá)128MBytes的物理存儲(chǔ)空間;存儲(chǔ)器的DMA控制器提供高帶寬的數(shù)據(jù)傳輸能力,能夠在內(nèi)部L1/L2存儲(chǔ)器和外部存儲(chǔ)器空間之間完成代碼或數(shù)據(jù)的塊傳輸。
另外,ADSP-BF533還提供一個(gè)可直接與并行A/D和D/A轉(zhuǎn)換器、符合ITU-656標(biāo)準(zhǔn)的視頻編碼和解碼器以及其它通用外設(shè)連接的并行接口(PPI)。PPI包括一個(gè)專用時(shí)鐘引腳、多達(dá)3個(gè)幀同步引腳和多達(dá)16個(gè)數(shù)據(jù)引腳。PPI的通用模式分為4種主要的工作方式,即:內(nèi)部產(chǎn)生幀同步中信號(hào)的數(shù)據(jù)接收,外部產(chǎn)生幀同步信號(hào)的數(shù)據(jù)接收,內(nèi)部產(chǎn)生幀同步信號(hào)的數(shù)據(jù)發(fā)送,外部產(chǎn)生幀同步信號(hào)的數(shù)據(jù)發(fā)送。每種每個(gè)PPI_CLK時(shí)鐘周期可傳送高達(dá)16bits的數(shù)據(jù),廣泛應(yīng)用于各種數(shù)據(jù)采集和數(shù)據(jù)傳輸?shù)膱?chǎng)合。
2 系統(tǒng)硬件設(shè)計(jì)
數(shù)字通信信號(hào)發(fā)生器系統(tǒng)分為兩大模塊:微型計(jì)算機(jī)模塊和波形產(chǎn)生模塊。其中微型計(jì)算機(jī)為通用計(jì)算機(jī)或PC,波形發(fā)生模塊為設(shè)計(jì)的信號(hào)發(fā)生板卡。圖1所示為系統(tǒng)總體框圖。
通用微型計(jì)算機(jī)首先根據(jù)用戶輸入的參數(shù).分別產(chǎn)生各種類型的數(shù)字調(diào)制信號(hào)和高斯窄帶白噪聲及各種類型的干擾信號(hào),然后將數(shù)據(jù)通過USB接口傳送到信號(hào)發(fā)生板卡。信號(hào)發(fā)生板卡再通過波形產(chǎn)生控制器循環(huán)取出通信波形存儲(chǔ)器和干擾/噪聲存儲(chǔ)器中的數(shù)據(jù),最后通過DAC產(chǎn)生連續(xù)的數(shù)字通信信號(hào)波形。圖2所示為系統(tǒng)硬件設(shè)計(jì)框圖。
硬件設(shè)計(jì)中的DSP1為整個(gè)系統(tǒng)的核心,可直接和微型計(jì)算機(jī)通信,并且控制著DSP2的加載和運(yùn)行。DSP1的加載方式為BMODE 01方式,從外部Flash加載;DSP2為BMODE 10方式,通過SlaveSPI接口加載。
DSP1首先接收微型計(jì)算機(jī)通過USB接口傳送的波形數(shù)據(jù)包,并將數(shù)據(jù)包中的通信波形或通信環(huán)境波形數(shù)據(jù)以MDMA方式傳送到通信/通信信號(hào)環(huán)境波形數(shù)據(jù)存儲(chǔ)器(SDRAM1)。同時(shí)將噪聲數(shù)據(jù)以SPI MDA方式傳送到DSP2的內(nèi)部RAM中,然后在DSP2接收后,將噪聲/干擾數(shù)據(jù)以MDMA方式分別存儲(chǔ)到噪聲/干擾數(shù)據(jù)存儲(chǔ)段(SDRAM2)內(nèi)。DSP1通過SPI非DMA方式傳送信噪比/干信比參數(shù)到DSP2的內(nèi)部RAM中。其中通信數(shù)據(jù)的高位(D15)為基帶碼流數(shù)據(jù),D14為同步信號(hào),用于測(cè)試基帶碼流。
系統(tǒng)中,所有波形參數(shù)的采樣頻率為10MHz,數(shù)據(jù)容量為16 M×16位,可存儲(chǔ)1.5秒鐘的波形數(shù)據(jù)。數(shù)據(jù)有效位數(shù)為14位。DSP1通過PPIDMA方式直接從SDRAM1中循環(huán)讀取通信波形數(shù)據(jù)傳送給DAC1,產(chǎn)生通信波形。DSP2利用程序產(chǎn)生隨機(jī)地址,得到MDAM0的起始地址,然后將存儲(chǔ)的噪聲波形數(shù)據(jù)從SDRAM2中讀入DSP2內(nèi)部RAM中,并且根據(jù)信噪比在內(nèi)部RAM中進(jìn)行幅度加權(quán),然后通過PPI DMA傳送給DAC2,產(chǎn)生噪聲波形。若包含干擾信號(hào),DSP2需要通過MD-MAl將干擾數(shù)據(jù)讀入內(nèi)部RAM,并根據(jù)干信比在內(nèi)部RAM中進(jìn)行幅度加權(quán),然后和噪聲疊加,再通過PPI DMA輸出到DAC2來產(chǎn)生干擾與噪聲的混合波形。其中PPI時(shí)鐘PPI_CLK信號(hào)均由各DSP的定時(shí)器產(chǎn)生。
兩個(gè)DAC的位數(shù)是14位,并且設(shè)置為4倍插值方式,即DAC輸入數(shù)據(jù)率為10MSPS,輸出轉(zhuǎn)換速率為40MSPS。DAC轉(zhuǎn)換需要的時(shí)鐘與PPI_CLK共用,DAC連接在BF533PPI總線的低14位PPI13~PPI0?;鶐Тa流通過DSPl的PPI15引腳輸出,同步信號(hào)通過DSP1的PPI14引腳輸出,經(jīng)過74AC11244驅(qū)動(dòng)輸出波形。
DAC輸出的模擬信號(hào)后經(jīng)過AD8054緩沖放大,再經(jīng)信號(hào)和噪聲合成后分為兩路,可作為測(cè)試波形和信號(hào)源。
若需要模擬通信信號(hào)環(huán)境,需要在微型計(jì)算機(jī)中計(jì)算多種信號(hào)的疊加數(shù)據(jù),然后傳送到通信/通信信號(hào)環(huán)境數(shù)據(jù)存儲(chǔ)器(SDRAM1)中,其它過程均與通信方式相同。此模式下不能測(cè)試基帶碼流,但仍可測(cè)試同步信號(hào)。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)中的微型計(jì)算機(jī)采用Windows 2000/XP操作系統(tǒng),其USB驅(qū)動(dòng)程序由DDK開發(fā),控制應(yīng)用程序可通過VS2005進(jìn)行開發(fā)。計(jì)算機(jī)可根據(jù)用戶的輸入?yún)?shù)產(chǎn)生2ASK、2FSK、8FSK、2PSK、2DPSK、QPSK、QDPSK等通信信號(hào)或者它們幾種混合的通信環(huán)境信號(hào),窄帶高斯白噪聲和噪聲干擾、局部頻帶干擾、梳狀干擾、相關(guān)干擾信號(hào).并可將數(shù)據(jù)打包后通過USB接口發(fā)送到信號(hào)發(fā)生板卡。隨后由計(jì)算機(jī)通過發(fā)送控制命令字的方式來處理數(shù)據(jù),主要是開始輸出波形、停止輸出波形,更新波形數(shù)據(jù),更新通信信號(hào)環(huán)境波形數(shù)據(jù),更新干擾/噪聲數(shù)據(jù),更新信噪比或干信比。
系統(tǒng)的軟件設(shè)計(jì)主要是針對(duì)BF533進(jìn)行編程。Blackfin系列DSP在軟件方面支持C語言和匯編語言,同時(shí)支持二者的混合編程。C語言程序結(jié)構(gòu)好、可讀性強(qiáng)、易移植,但對(duì)于中斷的處理速度慢。匯編語言處理速度快但可讀性差,不易調(diào)試。C和匯編混合編程結(jié)合了各自的優(yōu)勢(shì),能構(gòu)造出結(jié)構(gòu)好且執(zhí)行速度快的程序。本系統(tǒng)的軟件程序流程圖如圖3所示。另外,在編程過程中主要注意以下事項(xiàng):
(1)無論用C還是匯編,系統(tǒng)中只有一組相同的寄存器可供使用,因此要使用這些寄存器,子函數(shù)必須先保存,返回之前恢復(fù)。
(2)要嚴(yán)格按照寄存器的類型來使用,不同類型的寄存器不可混用。
(3)盡量節(jié)省寄存器資源。
(4)為了提高代碼運(yùn)行的速度,要善于使用并行指令。
在本系統(tǒng)中,中斷與DMA方式運(yùn)用較多,主要用到了PF中斷、MDMA中斷、SPI DMA中斷和PPI DMA中斷,系統(tǒng)中斷控制器可控制所有的系統(tǒng)中斷,并且管理他們的優(yōu)先級(jí)。DMA不需要內(nèi)核參入,在DMA運(yùn)行中內(nèi)核可以用于計(jì)算也可以響應(yīng)中斷。
系統(tǒng)上電后,DSP1先從Flash中讀取自身的加載代碼,然后再從Flash中讀取DSP2的加載代碼通過SPI接口傳送到DSP2加載DSP2,最后再初始化系統(tǒng)時(shí)鐘、SDRAM、NET2272USB控制芯片,進(jìn)入等待微機(jī)用戶指令狀態(tài)。
4 結(jié)束語
該數(shù)字通信信號(hào)發(fā)生器只需要在通用微機(jī)或者PC機(jī)上安裝軟件即可實(shí)現(xiàn),其成本低,效率高,實(shí)時(shí)性好,特別是在通信對(duì)抗信號(hào)源模擬方面,更是顯示了無可比擬的優(yōu)越性。