基于OMAP-L138 DSP+ARM的處理器與FPGA實現(xiàn)SDR系統(tǒng)
CritICal Link公司的某客戶需要針對多個應用開發(fā)一個擴頻無線電收發(fā)器。該客戶已經開發(fā)出一套算法,準備用于對信號進行調制和解調,但他們卻缺少構建完整系統(tǒng)的資源和專業(yè)知識??蛻粝M密浖x無線電(SDR)系統(tǒng)的靈活性優(yōu)勢。本文將探討如何基于德州儀器(TI)的OMAP-L138 DSP+ARM處理器與FPGA來實現(xiàn)該系統(tǒng)。
平臺
Critical Link選擇其MityDSP-L138F嵌入式系統(tǒng)模塊作為SDR的基礎,因為該模塊不僅具有很強的處理能力,而且可以為客戶節(jié)省大量的預先設計成本。MityDSP-L138F模塊具有一個TI的OMAP-L138DSP+ARM處理器,該處理器集成了一個456MHz ARM9處理內核和一個456MHz TMS320C674x DSP內核。此外,該模塊還包含了FPGA、NAND和NOR閃存以及DDR2存儲器。
出于原型考慮,該設計使用了TI針對無線電的高速ADC與DAC評估套件。此外,它還需要能夠在60MHz采樣頻率轉換的數據轉換器。
針對A/D轉換器,該設計選用了TI的ADS5562。該轉換器具有16位精度,可以以80MSPs采樣速率進行轉換。因為擴頻無線電需要將信號從背景噪聲中抽離,所以高動態(tài)范圍對于這種無線電來說非常重要。
對于DAC,該平臺選用了TI的THS5671。這是一款14位125Msps差分電流輸出DAC。負責本項目的客戶為該系統(tǒng)提供的前端設計如圖所示。
圖:客戶提供的前端設計。
數據傳送問題
許多基于DSP的應用要求具有高速數據傳輸功能,以使系統(tǒng)能夠采集和處理數據,或者將數據傳送到外設。通常,數字信號處理器都包含了異步地址/數據總線,以使處理器能夠讀寫外設。這些接口可以滿足低速傳送數據的要求,但是在高速情況下卻會成為瓶頸。
OMAP-L138 DSP+ARM處理器具有一個稱為外部存儲器接口A(EMIFA)的地址/數據總線。EMIFA允許對外部存儲器或設備進行異步尋址,并含有若干控制引腳,以滿足不同等待狀態(tài)和傳輸寬度等等要求。因為該接口具有很強的通用性,所以每次事務處理都可以利用多個時鐘周期來完成。例如,最小的讀取周期需要每16位3個周期。在100MHz下運行EMIFA,假設總線上沒有其他數據,可得到的數據傳輸速率最大為66MB/s。在總線上進行交錯讀寫會顯著地降低傳輸速率,因為這必須增加額外的轉換周期。
OMAP-L138處理器還包括了一個更為專用的接口,即通用并行端口(uPP)。該接口專門用來將大量數據連續(xù)送入處理器內存或從其中讀出。uPP的傳輸速率為每時鐘周期1個數據字(8位或16位);或者針對雙數據速率為每時鐘周期2個數據字,但是時鐘速率必須減半。uPP時鐘速率可以高達處理器時鐘速率的一半。對于在300MHz下運行的OMAP-L138處理器,uPP時鐘可以達到75MHz。這使吞吐量可以達到150MB/s。
OMAP-L138處理器實際包括2個uPP接口,每個都可以單獨配置。這允許我們?yōu)閼媒⒁粋€傳輸端口和一個接收端口,從而消除單一總線上的資源爭用問題。
從硬件角度看,uPP接口是一種非常簡單的同步數據接口。它包含一個時鐘引腳、數據引腳和若干控制引腳,用于指明有效數據和起始/等待條件。事實上,該接口可以與一些并行ADC和DAC實現(xiàn)無縫連接。
架構
因為我們的SDR需要與DSP之間進行高速數據傳送,所以我們選擇使用uPP端口來實現(xiàn)FPGA接口。我們使用一個端口作為接口的發(fā)送端,使用另一端口作為接收端。事實上,該處理系統(tǒng)可以同時進行發(fā)送和接收,盡管這并非系統(tǒng)要求。這個功能的優(yōu)勢在于,它允許我們在發(fā)送器和接收器之間建立循環(huán),以進行大量的測試和調試工作。
對于一個10MHz載波來說,這種調制所需的處理特性,使系統(tǒng)過多地將全部處理任務在OMAP-L138處理器的DSP中完成。在速度較慢的應用中,DSP可以單獨滿足數據速率的要求,但由于客戶要求以更高的速率發(fā)送數據,所以我們需要使用FPGA來執(zhí)行部分處理任務。
FPGA尤其擅長以非常高的頻率執(zhí)行重復任務,因此,我們選擇在FPGA中執(zhí)行初始解調和基帶處理。這樣,我們就可以大量減少DSP中的數據并降低DSP的數據速率。在發(fā)送側,DSP可以預先計算最終的射頻信號,以便將有效負載數據的編碼時間降至最短。因此,F(xiàn)PGA僅僅將發(fā)送波形數據從uPP端口發(fā)送到DAC。事實上,不使用FPGA也可以完成這項工作,但是我們在設計系統(tǒng)時仍將FPGA加入,以便在需要時使用。
FPGA的雙端口RAM中包含一個正弦或余弦查找表,用于合成接收機的本機振蕩器信號。FPGA中的乘法器/累加器用于根據要求解調信號。
發(fā)送處理鏈
當ARM微處理器上的軟件向DSP發(fā)出傳輸消息包時,發(fā)送過程將會啟動。DSP對數據進行編碼,使其成為擴頻調制序列,并將其編入一個預先計算的已調制正弦波查找表。然后,DSP使用uPP的內置DMA引擎建立一個DMA傳輸,用以將數據從DSP存儲器傳送到DAC。FPGA則起到中間調解作用,負責向DAC和uPP提供可編程時鐘,用于設置發(fā)送采樣率。
接收處理鏈
接收流程連續(xù)運行。ADC樣本被同步送入FPGA——通過將輸入樣本與正交正弦和余弦波形相乘并積分,對數據進行基帶處理,從而以較低的數據速率向DSP提供同相和正交樣本。這些樣本被uPP DMA引擎以DMA方式送入DSP存儲器,再由DSP處理剩余的擴頻解調處理步驟。一旦信號被解調,得到的數據包將使用TI的DSPLink處理器之間通信庫傳送回ARM處理器。ARM軟件接收解碼數據,并通過命令接口將數據呈現(xiàn)給用戶。
使用FPGA執(zhí)行接收器初始基帶處理能夠釋放足夠的DSP處理能力,從而輕松完成剩余的解調和解碼工作。如果系統(tǒng)中的輸入信號采樣率顯著低于60MHz,則DSP可不借助FPGA的力量,獨自執(zhí)行基帶處理任務。
該系統(tǒng)的初始工作使用了一個低頻段(幾十或幾百kHz)的載頻。在初始實施過程中,F(xiàn)PGA僅負責將數據發(fā)送至DSP,由DSP執(zhí)行所有的解調功能。這種方式很奏效,但是無法達到更高采樣率應用的要求。通過在FPGA中實施基帶處理,我們可以在全采樣率下進行數字基帶處理和濾波,從而改善系統(tǒng)的噪聲性能:這在欠采樣下是無法做到的。
本文小結
該項目實現(xiàn)的原型系統(tǒng)已經為多個應用實施過概念驗證。與理想擴頻無線電的理論性能相比,該系統(tǒng)的性能非常優(yōu)異。TI OMAP-L138 DSP+ARM處理器與FPGA的結合,實現(xiàn)了具有出色性能的高性價比解決方案。將DSP的部分處理負載分配給FPGA,使系統(tǒng)可以使用低成本、低功耗的處理器來構建,而不是由GHz級的DSP處理所有工作。uPP接口支持簡單的FPGA接口功能,并且與其他可用的DSP接口相比,具有明顯的性能優(yōu)勢。使用uPP中的DMA進行數據傳送,可以進一步釋放DSP資源,將DSP周期用于更加重要的工作。[!--empirenews.page--]
在OMAP-L1x平臺中加入ARM處理器后,便可使用嵌入式Linux提供通信基礎設施,來管理系統(tǒng)中的用戶界面和所有的內務處理功能。此外,使用SD卡、USB驅動器或者以太網連接,可以對系統(tǒng)軟件(ARM、DSP和FPGA)進行現(xiàn)場升級。因此,SDR系統(tǒng)的靈活性可以充分滿足處理算法的發(fā)展要求。