Global Sources
電子工程專輯
 
電子工程專輯 > 處理器/DSP
 
 
處理器/DSP  

用低成本FPGA和中等性能DSP實現Rake接收機

上網時間: 2005年11月02日     打印版  Bookmark and Share  字型大小:  

關鍵字:FPGA  DSP  Rake  接收機  finger 

許多因素影響著實現無線基地台的元件選擇。ASIC具有低廉的價格,但要耗費大量開發時間和昂貴的NRE成本,而且缺少DSPFPGA的靈活性。DSP或許是最靈活和最容易開發的,但是碼片率處理所需的高性能DSP成本很高,這阻礙了它們的廣泛應用。

圖1:顯示Rake接收機位置的行動基地台示意圖。

對於無線基地台中的基頻模組,其越來越苛刻的功能之一就是接收機,特別是遭受到一個多徑訊息通道後的訊號解擴。Rake接收機是針對這個問題的一種通用的解決方案,用低成本FPGA和低成本、中等性能DSP實現Rake接收機設計是一個很好的例子。本文闡述用一片FPGA來實現針對3GPP WCDMA標準的Rake接收機參考設計。該參考設計主要目標是說明在低成本針對DSP的FPGA中能實現多少數量的Rake解調器和得出一種減少整個設計成本的方法。

Rake接收方法的背景介紹

遭受多徑訊息通道的訊號的接收問題已在各種文獻中討論了很多年。WCDMA標準就是基於該問題的一種解決方法而設計,即採用高頻位序列擴展數據符號。選出這個序列以致它們擁有一些屬性,使得最終訊號有別於其自身的延遲版本。這個屬性使得從一組具有不同延遲的路徑接收訊號並組合它們成為可能,最終改善了可靠性和性能。

1958年,Price和Green發明了這個技術,命名為Rake。因為該接收方法涉及到幾個相關器的使用,每個都可以形象地看作是花圃的耙爪(finger)或者叉(tine)。

CDMA訊號的接收還要求執行另外兩個主要任務:一個是要找到邊沿最強路徑的延遲,另一個是決定邊沿路徑傳播時對訊號的影響。第一個任務被稱為路徑研究,第二個是訊息通道估計。這兩種功能在本設計中被忽略,原因如下:首先硬體不是很複雜,其次對訊息通道估計問題有許多不同的解決方案。況且訊息通道變化往往相對緩慢(5-10ms的更新時間是能接受的),因此估計演算法通常在DSP中用軟體實現,而不是用硬體實現。

WCDMA的一些關鍵參數如下:

圖2:使用Rake接收機的簡單系統。


1.碼片率(擴展後)=3.84MHz;


2.數據輸入至Rake的過採樣率=2(特定採樣率7.68Msps);


3.對於數據訊息通道擴展因子4至256,控制訊息通道固定在256;


4.同時在上行鏈路(來自手機)發射的數據和控制訊息通道。

很多文獻中引用了各種容量指標,但沒有清楚地闡明這些指標的意義。為了與其它解決方案進行比較,這裡選擇64個用戶為基準容量。為了與實現相聯繫,假設支援一個訊息通道需要平均4個Rake finger,每個用戶佔用一個控制訊息通道和一個數據訊息通道。因此,finger的總數應除以8以得到用戶的容量。

BTS系統構成

為了釐清設計前後關係,這裡使用了針對行動無線系統基地台的OBSAI系統分割。這樣把主要功能分割成模組以及稱為參考點的介面。圖1為Rake接收機,從圖中可以看到,它是基頻處理功能之一。考慮的關鍵點是在一個系統中需要被緩衝的數據量,這個系統具有連接到一個基頻模組的多個無線模組。實現完整的解決方案時,可以看到FPGA支援DDR介面和SDRAM控制器IP被證明是有用的。這樣的解決方案將處理來自無線模組的幾個數據串流的數據。這些數據的源頭是若干不同天線上很多不同的載波訊號。術語天線載波(A-C)用來表示這些訊號源,一旦被接收的天線載波訊號被合成轉移到IF,經過數位下變頻器(DDC)的數位化和下變頻,數據率變為7.68Msps(假設2倍於3.84MHz的擴展數據過採樣率)。

儘管圖1展示了無線和基頻模組的實體分割,但主要是基地台的功能概覽。下一節討論將Rake設計與其它單元結合可構成一個簡單工作系統的方法。

href="/ARTICLES/2005NOV/A/0511A_DC_S7F3.JPG" target="_blank">

圖3:採樣緩衝(上)和符號緩衝(下)。

設計概述

圖2顯示Rake如何與DSP和DDR SDRAM構成一個完整功能的基頻子系統。Rake設計具有簡單記憶體映射的暫存器介面以便於由DSP控制。Rake引擎內的暫存器控制對特定用戶的finger分配、保存路徑延遲值以及為所用的訊息通道定義參數(即擴展和擾碼)。在這個例子中,訊息通道估計用DSP中的軟體來完成,因此DSP透過暫存器介針對引擎寫訊息通道修正數據。圖中未展示這個搜索器,但是相關峰值為每個finger初始相關的路徑延遲構成了基礎。由於路徑延遲隨著時間而變化,位元誤差率對在採樣列隊中的差錯是很感應的,在引擎中有一個追蹤機制不斷更新這些延遲。

訊框緩衝器要使用合適的外部記憶體,因為WCDMA 10ms訊框需要將近1Mb記憶體,超過了低成本FPGA的容量。對要支援多個7.68Msps數據串流(來自一個以上天線載波)的較大訊框緩衝器,支援DDR介面和具有SDRAM控制器IP的FPGA是一個可行的選擇。帶DDR介面的FPGA能執行上至400 DDR(200MHz),因此32位元寬的數據介面可以很容易地支援12個天線載波。

圖2還展示了與Rake介面的簡單,這提供了使用記憶體的靈活性。用RAM塊實現晶片上輸出FIFO是可行的。例如,帶最低擴展因子4的8位元數據的16個訊息通道需要2個sysRAM塊。需要少量的邏輯實現FIFO尋址。指明數據用於哪個訊息通道的Chan_out訊號用於構成部份記憶體地址。分離的FIFO指針需要為每個訊息通道而保存,它們可以放入一個分佈式RAM中。

設計考慮與選擇

圖4:具有追蹤功能的Rake引擎。

基本的Rake finger執行頗為簡單。將複雜輸入數據和對應複雜解擴/解擾碼的一系列二進制乘積求和來執行相關。倘若不了解沿路徑的延遲情況,這種相關只不過是產生噪音。正如前面所提,搜索器用於從已知的發射訊號(包括在控制訊息通道訊號裡的導引符號)來尋找相關峰值。最強的峰值顯示了最強的路徑是在傳播訊息通道的哪個位置。這些峰值然後用來設立分配到特定訊息通道的每個finger上的相對延遲。不同的傳播訊息通道情況將應用到不同的行動用戶,所以最優的finger數量將從用戶到用戶而變化,並在連接至一個特定用戶期間變化。於是,設計中考慮的特性之一就是對訊息通道的finger分配問題。

在設計裡,沿路徑不同的延遲在一些點上需要平衡,這樣解擴展符號可以及時再結合,組成一個或多個精確結果。這需要在設計中的某個地方有一個緩衝器,但是哪裡是最佳的放置點?圖3顯示兩個供選擇的位置。第一種稱為採樣緩衝(上圖),用來緩衝進入的採樣值。這形成一個簡單的控制情況,也許是最顯而易見的解決方案。每個天線載波所需的記憶體數量是合理的。假設延遲擴展小於33us或128碼片週期和同相和正交輸入數據是8位元解析度,那麼緩衝器需要4,096Kb的雙埠記憶體。

圖5:符號時序追蹤的Matlab圖形。

圖3(下)所示的另外一種方法在糾正和組合前緩衝解擴符號。這或許比第一種方案要用更多的記憶體,取決於finger的數目和解擴器輸出的位元寬。假設最壞的情況,所有的finger是擴展因子為4的解擴數據,以及用於複雜解擴數據的2×16位元寬,那麼需要16Kb的緩衝器。此外,因為對一個finger的相關延遲必須分配在符號緩衝器和程式碼產生器之間,控制和追蹤方案變得更加複雜。到目前為止,採樣緩衝器從兩個方面看似乎是更好的選擇:記憶體大小和是否簡單。

設計Rake接收機架構時,內插器(interpolator)是可選的,但它對性能有很大的影響。內插器用來在輸入數據串流中運算採樣點。這允許數據和編碼互相以較好的隊列形式進行解擴,產生較好的整體誤碼率。在採樣緩衝架構中,每個finger需要一個內插器,然而符號緩衝只允許對所有finger使用一個內插器,這些finger處理來自相同天線載波的數據。這個決策似乎取決於內插器有多複雜以及執行此功能的硬體是否能被許多finger共享。事實上,很明顯這是傾向於選擇符號緩衝的唯一因素。可以看出符號緩衝也增加了設計靈活性。

傳播訊息通道的每個路徑在訊號上強加了一個不同的相位旋轉。如果這些訊號是簡單的相加組合,結果不會比單一路徑好,有些情況下還更糟。組合它們之前,有必要從每個finger將這個解擴訊號去旋轉。訊息通道估計量決定相位旋轉量。對於每個finger(即路徑),訊息通道估計器提供代表訊息通道脈衝響應相關量的一個複數。用複訊息通道修正值乘以複數符號值來進行訊息通道修正。對於特定Finger中的每個符號,這個複數乘積需要4次乘法、一次加法和一次減法。然而,對於特定的WCDMA訊息通道,數據是映射至實部或者虛部,只要2次乘積與一次加/減。在訊息通道修正後,符號數據在組合塊裡被累加。這個組合塊跨越分配到一個特定訊息通道的所有finger。

圖6:校正與組合前後的情況。

另外要注意的是接收數據採樣率僅為7.68Msps,晶片速度只有一半(3.84MHz)。考慮到目前低成本FPGA執行速度能超過200MHz,足以為可共享時間的硬體提供很多機會。而且訊息通道修正硬體使用乘法器,倘若它們能執行得足夠快,能夠共享若干finger。理論上,執行於15.36MHz的乘法器可以服務16個finger。事實上,乘法器必須高於這個速度執行,因為符號是在任意的時間到達緩衝器,這取決於相關路徑延遲。緩解該問題的辦法是增加緩衝器容量,以便在它們被使用前符號數據點不會寫滿。對於這個應用,基於查找表的乘法器往往不夠快,而且消耗大量資源。嵌入式DSP塊可提供具有成本效益的方法來實現訊息通道修正功能。它們能以很高的速度執行,以及共享幾個finger。在此情況下,可保持最小的緩衝器容量,因為選擇元件時,乘法器的可用性對這個設計不是限制因素。

事實上,整個Rake引擎可以是時間共享以實現多個可用。時間分片的限製程度取決於目標元件的硬體最大時脈速率以及每個finger狀態的儲存容量。此外,在設計特定部份如果需要管線來達到期望的速度,也許還需要額外的狀態儲存容量。因此,增加時間共享finger的數目會迅速地產生逐漸縮小的回波。

時間共享需要狀態的儲存,提供1位元乘16字結構的16位元記憶體的小型分佈式記憶體塊是理想的解決方案。一個這樣的塊在一個片段(slice)裡使用查找表(LUT),因此實現小的、不同的儲存塊是一種理想的方法。若沒有這個特性,設計者面臨試圖把狀態儲存放入一個或幾個較大的儲存塊,或者使用slice觸發器。第一種方法是笨拙的,由於狀態需要在每個週期更新,以及狀態向量的寬度比記憶體寬度小(4個8位元向量封包化至32位元寬的記憶體)。如果每個向量放入單獨的記憶體,很快特定晶片的整個RAM塊被用滿,因此,封包化是唯一的解決方案。如果使用slice觸發器以16倍的速率佔用分佈式RAM,特定FPGA不久將被填滿。

圖7:輸入與輸出數據。

使用分佈式RAM引進了16這個量以選擇用多少finger進行時間共享。已經證明16個finger的Rake引擎是容易實現和有效地使用FPGA資源的最佳折衷方法。16個finger的Rake引擎可以在晶片上複製若干次用於產生可升級的解決方案。作為一個例子,表1顯示了Lattice ECP-DSP系列用於這個設計容量。

ECP33實現提供了在兩個元件中用足夠的容量來實現64個用戶系統,剩餘足夠的資源(大約9K slice)可實現輸入介面、可選的DDR介面和輸出緩衝器。

詳細架構

圖4為有控制訊號的Rake引擎的頂層架構,為了清楚表述的緣故省去了一些單元。邊界內的模組構成了跨越16個finger的時間共享Rake引擎的核心。內插器不是時間共享的,但是其輸出可以共享幾個Rake引擎核心以實現N倍於16個finger,用來處理特定天線載波的訊號。控制塊指揮整個引擎的運作。它含有一個計數器,該計數器與特定時間片段內被處理的finger相關,其值用來尋址各個小的記憶體,這些記憶體包含所有指針的每個控制域的狀態。其它小記憶體為每個指針保持參數,每個參數就有一個16字記憶體,這些參數有:擴展因子、擴展碼和擾碼。對用戶進行的finger分配也儲存為0到15的數字,以支援最大用戶數目,那裡只用到一個finger。

正如前面所述,帶輸入碼片的採樣點隊列對系統的性能有很大的影響。為了確保在手機和基地台間時序的偏差或者初始路徑延遲估計的差錯不破壞這個性能,在此設計中包含了一個追蹤環。時序差錯檢測器(TED)和NCO構成了追蹤環。NCO累計TED塊的輸出,超過1碼片時,它產生碼片步長訊號,增加finger的指針到2。如果累加溢出,該finger的指針不再增加。

圖8:追蹤情況。

設計模擬

該設計開發借助於發射器、無線傳播訊息通道和無線模組的Matlab模型。這裡用一些採樣結果與從RTL模擬得到的同等結果比較來說明Rake接收機的原理。

1. 追蹤符號時序誤差

對每個Rake finger,‘早/遲閘(early/late gate)’檢測器的輸出用來調整NCO,控制該finger每個碼片的準確採樣點。圖5顯示了兩個獨立的Rake finger的動態追蹤:上面一個的起始時序偏移量提前1個碼片,下面一個滯後1個碼片;X軸是符號數,擴展因子為256。

在圖5中,第一欄‘早/遲誤差輸出’展示了時間推進時誤差如何收斂於零;第二欄‘碼片部份偏移’是正使數據延遲的碼片部份,用來選擇每個碼片週期上源自內插器16個採樣中的一個。在兩種情況中,這個偏移量看起來是環繞的。為了補償,一個附加的‘碼片步長’訊號產生(未顯示出),如果滯後,則提前2步,或者太超前,則在下一個週期將擾頻/擴展程式碼產生器凍結。

第三欄展示了每個finger的最終符號輸出值,及追蹤電路校正時序偏移量。注意對輸出數據‘眼’的開度。這顯示了小的時序誤差會對性能有很大的影響。

表1:用Lattice ECP-DSP系列實現Rake引擎設計容量。

這些圖形中初始偏移誤差只是用來說明追蹤器的功能。實際的情況中不會遇到1碼片偏移量,搜索器會產生更加精確的初始偏移。

2. 多徑延遲與Rake finger組合

這些圖說明了多於一個Rake finger的組合輸出的有益影響。組合是在用去除旋轉消除傳播訊息通道路徑效應之後完成的。性能的改進可以在‘組合’圖中看到,那裡所有的點都從y軸上移開,減少了符號值的模糊性。

正如文章開頭所述,基地台會收到沿著多個路徑而來的終端訊號。每個訊號路徑會有與之相聯繫的不同延遲和相位旋轉。圖6為Rake接收機中一個訊號的兩個多徑分量的接收和組合。

頂部整合圖展示了在解擾、解擴和在符號週期整合後的兩個多徑分量。圖的中間展示對每個多徑分量施加了訊息通道相位修正和加權值後,Rake接收機校正塊的輸出。最後一行顯示了兩個去旋轉finger輸出的總和,考慮較大的X軸範圍,組合影響已加寬了‘星座雲團’間的間隙。注意在此圖上Y軸(虛部)數據已被捨棄,因為被解碼的特定DPDCH訊息通道只出現在實軸上。

3. RTL模擬結果

最後兩個圖展示了RTL模擬得到的結果,說明了設計實際實現情況。輸入I和Q數據如圖7所示。有兩組數據多工,用模擬步長波形來辨別它們是可能的,這些是針對現有控制訊息通道訊框和先前數據訊息通道訊框的數據。處理數據和在設計頂端共享輸入的兩個平行Rake引擎被模擬。數據訊息通道延遲的原因是一旦平行控制訊框被譯碼,其擴展因子是唯一可知的。

Data0_out_dpcch訊號可以看到突發的輸出數據,Chan0_out_dpcch顯示了此數據用於0、2、3訊息通道,然後是1訊息通道。

圖8顯示了8號finger的延遲點由追蹤器跨越一個碼片邊界而步進的情況。對一個正常週期來說,2位元碼片步長訊號是1,但在此情況下是0,意味著路徑已經縮短,使得延遲已越過碼片邊界。僅僅3ms後,可以看到從1到0再回到1的轉換,但0的持續時間持續太短而無法看到。7號finger的追蹤情況也在圖中顯示出來。

作者: Dyson Wilkes


Lattice半導體公司





投票數:   加入我的最愛
我來評論 - 用低成本FPGA和中等性能DSP實現Rake接...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首