基于FIFO的DDC與DSP高速數據傳輸實現
軟件無線電數字中頻接收機通常采用可編程數字下變頻器DDC和DSP的實現方案。中頻模擬信號通過A/D數字化,送入DDC混頻、抽取濾波處理,DSP接收到的是DDC輸出的低速零中頻信號,其后的解調、譯碼、信號識別等算法都可以用DSP來實現。
1 系統器件的選用
高速DSP具有精度高、靈活性大,可以采用多種性能優(yōu)良的數字信號處理算法,其強大的數據處理能力適用于高速、重復性和數值運算密集型的實時處理。本設計選用TI公司的TMS320C6201 DSP,其時鐘頻率200MHz、最高1 600MIPS的數據處理能力,可以滿足軟件無線電的零中頻信號處理要求。
由于ADC的高數據率輸出,用DSP進行實時處理會有很大壓力。在DSP進行運算之前,需要進行數字下變頻以降低數據率。設計選用Harris公司的HSP50214B數字下變頻器件, HSP50214B輸入數據為14位,最大輸入速率為65MS/s,支持偏移碼和2的補碼兩種輸入格式。最大抽取因子為2,具備多種輸出格式,包括I/Q通道數據、幅度、相位和頻率輸出等,能夠直接解調AM、FM和QASK等信號,內部有256個控制字,用戶可以由此設置載波中心頻率、抽取因子、輸出格式與方式等參數。內部結構如圖1所示。
HSP50214B的輸出方式有三種模式:直接并行輸出、緩沖模式輸出和串行輸出。本設計HSP50214B采用并行直接輸出模式,此模式下,HSP50214B輸出兩組16位的實時數據:AOUT(15:0)和BOUT(15:0),AOUT端口可以輸出數據I、幅度和頻率。BOUT端口可以輸出數據Q、相位和幅度。
2 FIFO雙向接口設計
工作過程:ADC輸出的14bit中頻信號經鎖存器輸入到HSP50214B,在HSP50214B中經程控的NCO驅動混頻器后,混頻得到更低的中頻信號或零中頻信號,該信號經積分梳狀濾波器(CIC)和有限沖激響應濾波器(FIR)抽取濾波,最后將得到的信號以所需格式輸出送DSP處理。
如果DDC直接與DSP的外部存儲器接口(EMIF)連接傳輸數據,由于DSP需擴展外部存儲器,與采樣數據輸入共用僅有的一條外部總線,CPU要進行外部存儲器的訪問,不允許數據采集始終占用外部總線。另外,如果存儲控制系統不能及時接收數據,上次采樣的數據會馬上被下次的數據更新,造成數據丟失。因此DDC與DSP之間需采用高速緩存。
目前常用的緩存有FIFO、SRAM及雙口RAM等。雙口RAM和SRAM存儲量較大,但必須配以復雜的地址發(fā)生器。本設計只需要單向的數據傳輸,對于FIFO芯片,數據順序進出,且允許數據以不同的速率寫入和讀出,外圍電路簡單,所以選用TI公司SN74ACT7804 FIFO作為數據緩存,在HSP50214B與DSP之間將兩片FIFO并列,分別緩存HSP50214B輸出的AOUT和BOUT兩路16bit的數據。
TI公司的SN74ACT7804是512×18bit的觸發(fā)式FIOF存儲器,單向數據傳輸,有空(/EMPTY)、滿(/FULL)、半滿(Half-Full)狀態(tài)標志引腳,還有可編程的近滿/近空(Almost-FulL/Almost-Empty)狀態(tài)標志,處理數據的速度可達到50MHz。
2.1 FIFO與DDC接口設計
在設計DDC與FIFO接口時,應仔細考慮DDC及所選中間邏輯器件的時序和延時特性,以保證數據的有效傳輸。HSP50214B采用并行直接輸出模式,HSP50214B輸出兩組16位的數據:AOUT(15:0)和BOUT(15:0),信號直接與兩FIFO低16位輸入數據線連接,FIFO輸入時鐘信號LDCK由HSP50214B的/DATARDY信號提供。當HSP-50214B中的數據在并行數據總線上準備輸出時,/DATARDY引腳會在PROCCLK時鐘的第一個下降沿產生一個下降沿的電平跳變,并會持續(xù)一個PROCCLK時鐘周期的低電平。同時,可用此低電平來控制并行輸出使能/OEAL、/OEAH、/OEBL和/OEBH。由于FIFO的信號輸入時鐘LDCK在上升沿時有效,所以需要將/DATARDY信號反向后供給。
評論