TD-SCDMA中CRC的DSP實(shí)現(xiàn)
摘要:針對(duì)生成CRC多采用移位寄存器不易于DSP實(shí)現(xiàn)和實(shí)時(shí)性差的問(wèn)題,提出固定寄存器的實(shí)現(xiàn)方法。該方法由標(biāo)志位和移位算法組成,利用高性能DSP特殊指令實(shí)現(xiàn),具有程序小,速度快的優(yōu)點(diǎn),可應(yīng)用于3G、4G通信系統(tǒng)中。
本文引用地址:http://m.butianyuan.cn/article/147854.htm引言
TD-SCDMA系統(tǒng)多采用FPGA+ARM+DSP的方案,其中DSP用于實(shí)現(xiàn)物理層信號(hào)處理。物理層信號(hào)處理一般流程,如圖1所示。流程包括給每個(gè)傳輸模加CRC、傳輸塊級(jí)連/碼塊分段、信道編碼、無(wú)線幀尺寸均衡、交織(分兩步)、無(wú)線幀分段、速率匹配、傳輸信道復(fù)用、比特加擾、物理信道分段、子幀分段、映射到物理信道、調(diào)制、擴(kuò)頻,最后生成TD-SCDMA的基帶信號(hào)[1,2]。
本文重點(diǎn)研究TD-SCDMA中CRC實(shí)現(xiàn)的DSP算法。CRC實(shí)現(xiàn)分為直接和查表兩種。查表實(shí)現(xiàn)用于存儲(chǔ)空間大,且對(duì)實(shí)時(shí)性要求高的場(chǎng)合。直接實(shí)現(xiàn)則不需要過(guò)大的存儲(chǔ)空間,通常采用移位寄存器,不能獲得很高的實(shí)時(shí)性。為了保證實(shí)時(shí)性,本文提出了基于標(biāo)志與移位算法的固定寄存器實(shí)現(xiàn)方法。寄存器用DSP內(nèi)存空間實(shí)現(xiàn),標(biāo)志用指針實(shí)現(xiàn),其關(guān)鍵是移位算法的實(shí)現(xiàn)。該方法具有占用內(nèi)存空間小,運(yùn)算速度快的優(yōu)點(diǎn),滿足TD-SCDMA系統(tǒng)的要求。
CRC原理
CRC(循環(huán)冗余校驗(yàn)碼)是一種系統(tǒng)的縮短循環(huán)碼,具有編碼及錯(cuò)誤檢測(cè)簡(jiǎn)單,容易實(shí)現(xiàn)且誤判概率低、檢錯(cuò)能力強(qiáng)等優(yōu)點(diǎn),廣泛應(yīng)用于幀校驗(yàn),其中包括TD-SCDMA。TD-SCDMA物理信道復(fù)用與編碼的第一步是附加CRC,是利用CRC校驗(yàn)校驗(yàn)功能實(shí)現(xiàn)傳輸塊的差錯(cuò)檢測(cè)。CRC校驗(yàn)的基本思想是利用線性編碼理論,在發(fā)送端根據(jù)要傳送的A位傳輸塊,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的監(jiān)督碼(既CRC碼)M位,并附在傳輸塊后,構(gòu)成一個(gè)新的(A+M)位傳輸塊,進(jìn)行后續(xù)信道處理,最后發(fā)送出去;在接收端,則根據(jù)信息碼和CRC碼之間所遵循的規(guī)則進(jìn)行檢驗(yàn),以確定傳送中是否出錯(cuò)。這里的規(guī)則是指CRC生成多項(xiàng)式。根據(jù)3GPP相關(guān)協(xié)議TD-SCDMA中采用生成多項(xiàng)式如下[3]:
TD-SCDMA中CRC多項(xiàng)式的選擇是由高層信令決定的,但是利用他們生成CRC的原理是一樣的[4]。生成CRC碼所采用運(yùn)算是模二加減運(yùn)算法則,既是不帶進(jìn)位和借位的按位加減。這種加減運(yùn)算實(shí)際上就是邏輯上的異或運(yùn)算,加法和減法等價(jià),乘法和除法運(yùn)算與普通代數(shù)式的乘除法運(yùn)算是一樣,符合同樣的規(guī)律。移位寄存器實(shí)現(xiàn)CRC的步驟如下:
(1)建立移位寄存器,長(zhǎng)度等于CRC長(zhǎng)度加1;
(2)移位寄存器的初始值清零;
(3)給輸入數(shù)據(jù)后補(bǔ)零,補(bǔ)零長(zhǎng)度等于CRC長(zhǎng)度;
(4)輸入數(shù)據(jù)從低位移入寄存器中,每次移一位;
(5)把寄存器值與生成多項(xiàng)式值做模二運(yùn)算,結(jié)果存儲(chǔ)在寄存器中;
(6)如果最高位為零,則移位寄存器向前移位一次,輸入數(shù)據(jù)也移進(jìn)一位,跳轉(zhuǎn)到步驟5;如果不為零,則直接跳轉(zhuǎn)到步驟5。
(7)如果輸入數(shù)據(jù)(不包括補(bǔ)的零)全部移出寄存器,此時(shí)寄存器的值就是CRC值。
評(píng)論