摘要:介紹了一種用于WCDMA系統中下行物理信道解調器,采用了FPGA器件實現該解調器,并給出該解調器總體結構和邏輯設計。該解調器把從基站發送過來的碼片級數據解調成符號級數據,并結合外部微處理器將解調后的結果實時上報給后臺PC。該解調器可用于WCDMA系統中下行多用戶多小區信息的實時測量,有實時性好、配置靈活等特點。
關鍵詞:WCDMA;物理信道;解調;FPGA
引言

在WCDMA系統中高層的數據通過傳輸信道映射到物理層的物理信道上,物理信道復用著多用戶信息和控制信息。物理信道質量的好壞直接影響無線鏈路的性能,同時也直接決定了用戶終端與交換設備的復雜度。根據WCDMA標準物理信道在成幀之后,下行方向從NodeB(基站)側天線發送給用戶(UE)之前的符號數據需要擴頻和加擾。對于UE來說收到的下行數據就是經過加擴加擾的數據,為了方便評估下行物理信道的質量,首先要對下行物理信道解調,即將加擴加擾之后的數據解擴解擾恢復出原來的物理信道上承載的符號數,這樣才能方便在后臺評估。
基于FPGA下行物理信道的實時解調不僅可以在某些方面代替昂貴的儀器測試信道質量,而且因其靈活的配置,可以實現對多個小區的多個物理信道實時解調并將解調的結果實時上報給后臺PC,為測試提供了極大的方便。
解調器的設計
總體設計
該解調器主要完成的功能是從背板接收過來的經加擴加擾后的碼片級天線數據數據還原成符號級數據,并結合后臺和MPC8270完成上報實時解調功能,其整體結構如圖1所示。
其中FPGA主要完成的功能是:進行各個公用及專用碼道的解調,即進行解擾解擴處理,將來自天線的碼片級數據轉為符號級軟bit數據,根據各個碼道的Chipoffset緩存組幀,到公共數據幀結束后通過中斷上報數據、進行各個數據域的功率測量再進行硬判決,得到每幀的Pilot的錯誤個數后進行TFCI譯碼處理。FPGA內部具體的功能如圖2所示。FPGA內部模塊主要分為:天線接口模塊、碼發生器模塊、公用和專用解調模塊、上報模塊。
天線接口模塊
天線接口模塊負責接收從背板發送過來的3載3扇兩天線的高速LVDS數據,解復用之后發送給解調模塊,再根據配置的扇區號、天線號和載頻號從18路IQ數據中選擇出一路IQ數據。背板過來的天線數據和本地時鐘是異步時鐘,所以在接收IQ數據時就要加緩存進行異步時鐘域的切換。
碼發生器模塊
WCDMA中信道化碼采用OVSF碼(正交可變長擴頻碼)用于對物理信道比特信息的擴頻,經過與擴頻碼的相乘,物理層的比特速率提高為碼片速率,而且統一到同一個碼片速率3.84Mbit/s。由于碼片速率的提高,信號頻譜也隨之擴展。碼字(SF)的長度與速率提高的倍數相等。它是一種正交碼,其生成過程參考3GPP協議。
擾碼采用的是Gold碼作為擾碼,有自相關性。其生成過程如下:

其生成過程如圖3所示。

其中,各信道碼發生器是由擾碼發生器和信道碼發生器組成,如圖4所示,其中各物理信道所用擾碼相同,因此可以共用一個擾碼發生器。
各碼發生器與輸入IQ數據之間做復數乘法運算,參加乘法運算的兩個復數都是I做實部,Q做虛部;運算前,碼發生器的輸出要先做共軛運算。積分器在復數乘法運算后,積分長度等于擴頻因子。積分后得到的IQ數據就是軟bit值。功率計算用的是積分后的IQ數據,先取出各域的bit數,然后計算功率,功率值=∑(I×I+Q×Q)/N,N為積分長度。在需要上報bit值(例如TPCbit,TFCIBit)及上報的碼道中,如果配置了發射分集開關,還要進行去STTD運算功能。


解調模塊
解調之前首先要產生相應的配置數據,配置如下:將所要解調的信道的參數通過CPU配置來確定所要解調的信道的類型、擴頻因子、擴頻號,以及相對于CPICH信道的時延等。再根據配置的擴頻因子和擴頻號碼發生器產生相應的解擴序列。定時模塊負責定時計數,并在每一個無線幀頭來的時候將串行的幀號轉換為并行的幀號。其計數格式是:SlotCounter+SymbolCounter+ChipCounter+CycleCounter。該模塊在設計中的定時計數關系起著至關重要的作用,因為后面的各個模塊的定時都是以它為參考。確定了各個信道類型之后,還需各信道各比特域的結構,所以在這里各信道域的定時模塊負責產生各個域的定時標志。
解調模塊是該設計中最主要的模塊,分為公用解調模塊和專用解調模塊。其中公用解調信道實現的框圖如圖5所示。其功能包括每時隙符號解調,平均功率和E-RGCHE-HICH的40個簽名的符號相關值。并將這些解調解調出來的結果緩存起來,根據每個時隙測量結果緩存DPRAM讀寫控制信號,每個時隙測量結果緩存DPRAM讀寫控制信號,每個時隙需要進行3DPRAM的乒乓操作,即讀RAM塊比寫RAM塊落后2個塊的長度。這里只說明一下E-RGCH和E-HICH簽名解調的過程。根據協議,在解簽名的時候有一個40×40的簽名序列表,這其中的簽名是完全正交序列。所以在程序里邊將這個表例化成一個可查詢的ROM,這樣可以節約對寄存器使用的開支。其解調過程是由狀態機完成的,簽
名解調狀態機當收到符號有效時將相關運算的符號更新一次,并根據符號計數值移位操作保證低位先發。接下來在等待1狀態時,將移位得到的簽名值與符號值相關并累加。在等待2狀態時,將累加的結果存放在中間的DPRAM中,這樣可以節省資源。并同時判斷符號計數器的值是否為20,如果是則證明一個時隙的簽名解調完畢并進行求平均運算,這里求平均直接進行截位,即將低5位截掉,等于給累加的結果除以了32,本來應該除以40,這樣做的好處是節約資源,后面的精確計算等將結果上報后臺再進一步精確計算。否則繼續進行相關累加運算,返回到等待1狀態。
專用解調模塊比靜態模塊復雜的地方在于它的擴頻因子和擴頻號是變化的,通過后臺配置進來的,是可以隨時根據發送的下行信道配置的發送的信道變化的。其整體框圖如圖6所示。
其解調上報的結果比較多,包括:符號值,時隙功率平均幅度,導頻誤碼數統計,TPC比特命令,TFCI譯碼,每時隙的TPC平均功率,每時隙Pilot平均功率。它們的上報模式對于TFCI譯碼,支持128種TFCI。采樣預先生成128個32bit的TFCI表,在每幀進行TFCI譯碼時,將32個軟符號和32bit數進行相關運算,進行128次,然后比較得到最大值作為TFCI譯碼值。首先統計每幀數據的30個TFCI比特位,生成串行的數據送入到TFCI譯碼模塊中。
上報模塊
上報模塊負責將緩存在3DPRAM中的結果在每個10ms幀中斷來臨時將緩存在大的上報緩存區的數據中斷上報給MPC8270,這里開辟了兩塊大小為8192×16的DPRAM,上報方式采用乒乓操作。每個系統時隙標志到來時將所有的靜態和動態信道所要上報的數據從小的DPRAM中取出,送入到上報緩存DPRAM中相應的位置,在幀中斷來時,CPU將上一幀緩存的數據讀走。其中幀中斷的產生是通過判斷系統幀號的最低位,只要最低位變化就證明新的一幀來臨。因CPU與FPGA之間的地址空間有限,CPU需要復用地址空間,分多段(多個bank)將緩存在FPGA中的數據讀走,每個讀bank之前,CPU要先向FPGA寫段地址,FPGA將該段地址作為每段DPRAM的高地址來使用。即在FPGA中例化了兩個8192×16的DPRAM,來緩存每一幀的數據。因為這牽扯到異步時鐘域,而CPU讀取數據的速度又很快,所以使用了乒乓操作方式可行性好。其中往上報緩存里邊寫上報結果時,靜態信道上報的數據放在前1200個地址空間中,并且不同信道相同時隙的數據存放是連續的,不同時隙之間結果存放地址是跳動的,跳動間隔為80個存儲空間,動態信道上報的結果存放在后面的區域,同一信道的相鄰兩個時隙的上報結果地址相差248。這樣上報的好處是方便后臺將得到的結果統計。
系統驗證與仿真
本設計采用Verilog硬件描述語言,經過Modelsim仿真進行功能和時序仿真,結果顯示能夠達到預期的功能。并利用Altera公司的stratix系列芯片的EPIS30F780C7,并配以Freescale的MPC8270實現了多信道實時解調,運用系統時鐘61 44MHz的時鐘頻率進行多信道分時復用解調。FPGA將解調的結果每10ms上報一次給MPC8270,MPC8270再將所得到的結果通過ftp方式上報給后臺PC。驗證結果表明該系統能完成所預期的目標。
結語
本文提出的基于FPGA的WCDMA系統下行物理信道實時解調。利用FPGA易于處理底層電路信號的特點,實現了下行多物理信道的實時解調,為方便測試WCDMA系統中下行基站到用戶的信道提供了方便的途徑,其特點是方便現場測試,在后臺配置下應用靈活,在某些測試方面可以替代儀器的使用。