TD-SCDMA中CRC的DSP實現
摘要:針對生成CRC多采用移位寄存器不易于DSP實現和實時性差的問題,提出固定寄存器的實現方法。該方法由標志位和移位算法組成,利用高性能DSP特殊指令實現,具有程序小,速度快的優點,可應用于3G、4G通信系統中。
本文引用地址:http://www.104case.com/article/147854.htm引言
TD-SCDMA系統多采用FPGA+ARM+DSP的方案,其中DSP用于實現物理層信號處理。物理層信號處理一般流程,如圖1所示。流程包括給每個傳輸模加CRC、傳輸塊級連/碼塊分段、信道編碼、無線幀尺寸均衡、交織(分兩步)、無線幀分段、速率匹配、傳輸信道復用、比特加擾、物理信道分段、子幀分段、映射到物理信道、調制、擴頻,最后生成TD-SCDMA的基帶信號[1,2]。

本文重點研究TD-SCDMA中CRC實現的DSP算法。CRC實現分為直接和查表兩種。查表實現用于存儲空間大,且對實時性要求高的場合。直接實現則不需要過大的存儲空間,通常采用移位寄存器,不能獲得很高的實時性。為了保證實時性,本文提出了基于標志與移位算法的固定寄存器實現方法。寄存器用DSP內存空間實現,標志用指針實現,其關鍵是移位算法的實現。該方法具有占用內存空間小,運算速度快的優點,滿足TD-SCDMA系統的要求。
CRC原理
CRC(循環冗余校驗碼)是一種系統的縮短循環碼,具有編碼及錯誤檢測簡單,容易實現且誤判概率低、檢錯能力強等優點,廣泛應用于幀校驗,其中包括TD-SCDMA。TD-SCDMA物理信道復用與編碼的第一步是附加CRC,是利用CRC校驗校驗功能實現傳輸塊的差錯檢測。CRC校驗的基本思想是利用線性編碼理論,在發送端根據要傳送的A位傳輸塊,以一定的規則產生一個校驗用的監督碼(既CRC碼)M位,并附在傳輸塊后,構成一個新的(A+M)位傳輸塊,進行后續信道處理,最后發送出去;在接收端,則根據信息碼和CRC碼之間所遵循的規則進行檢驗,以確定傳送中是否出錯。這里的規則是指CRC生成多項式。根據3GPP相關協議TD-SCDMA中采用生成多項式如下[3]:

TD-SCDMA中CRC多項式的選擇是由高層信令決定的,但是利用他們生成CRC的原理是一樣的[4]。生成CRC碼所采用運算是模二加減運算法則,既是不帶進位和借位的按位加減。這種加減運算實際上就是邏輯上的異或運算,加法和減法等價,乘法和除法運算與普通代數式的乘除法運算是一樣,符合同樣的規律。移位寄存器實現CRC的步驟如下:
(1)建立移位寄存器,長度等于CRC長度加1;
(2)移位寄存器的初始值清零;
(3)給輸入數據后補零,補零長度等于CRC長度;
(4)輸入數據從低位移入寄存器中,每次移一位;
(5)把寄存器值與生成多項式值做模二運算,結果存儲在寄存器中;
(6)如果最高位為零,則移位寄存器向前移位一次,輸入數據也移進一位,跳轉到步驟5;如果不為零,則直接跳轉到步驟5。
(7)如果輸入數據(不包括補的零)全部移出寄存器,此時寄存器的值就是CRC值。
評論