<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > LTE系統(tǒng)的CRC校驗算法研究及DSP實現(xiàn)

          LTE系統(tǒng)的CRC校驗算法研究及DSP實現(xiàn)

          作者: 時間:2010-11-18 來源:網(wǎng)絡 收藏

          碼[1]CRC(Cyclic Redundancy Check)是數(shù)據(jù)通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。

          為了完成信號傳輸過程中誤碼檢測,獲得正確無誤的傳輸數(shù)據(jù),LTE(Long Term Evolution)系統(tǒng)針對不同的數(shù)據(jù)傳輸采用了多種格式的循環(huán)冗余碼,以適應系統(tǒng)高速率高性能的需求。

          1 LTE系統(tǒng)中的循環(huán)冗余碼

          LTE作為準4G技術,以正交頻分復用OFDM(Orthogonal Frequency Division Multiplexing)和多輸入多輸出MIMO(Multiple-Input Multiple-Out-put)技術為基礎,下行采用正交頻分(OFDM)多址技術,上行采用單載波頻分(SC-FDMA)多址技術,在20 MHz頻譜帶寬下能夠提供下行100 Mb/s與上行50 Mb/s的峰值速率。

          LTE TDD(亦稱TD-LTE)系統(tǒng)采用了4種格式[2]的CRC:CRC24A、CRC24B、CRC16、CRC8。其生成多項式如下:

          其中長度為24的CRC24A和CRC24B主要用于共享信道數(shù)據(jù)傳輸[3],長度為16的CRC16主要用于下行控制信道和廣播信道數(shù)據(jù)傳輸,長度為8的CRC8主要用于CQI(Control quality information)信息的傳輸。

          2 CRC算法分析及選擇

          CRC的校驗原理非常簡單,它要求發(fā)送方和接收方采用同一個生成多項式g(x),且g(x)的首位和末位的系數(shù)必須為l。編碼時將待發(fā)送的數(shù)據(jù)t(x)除以g(x),得到的余數(shù)作為CRC校驗碼添加到t(x)的后面;譯碼時將接收到的數(shù)據(jù)r(x)除以g(x),如果余數(shù)為0,則說明校驗正確,否則校驗失敗,從而判斷數(shù)據(jù)幀是否出錯。在工程應用中,常用的CRC校驗算法主要有兩種:查表生成法和。

          這種算法的優(yōu)點是運算量小、速度快、效率高;缺點是可移植性較差,且要事先計算出余式表,而不同長度的生成多項式的余式表不同,因此余式表會占用系統(tǒng)較大的存儲空間,增大系統(tǒng)資源開銷。

          2.2

          是依據(jù)CRC校驗碼的產生原理實現(xiàn)的。算法描述如下:

          (1)初始化,將寄存器初始化為0。
          (2)在信息比特后添加CRC長度個0,最終作為CRC添加的空間。
          (3)讀取一個數(shù)據(jù)塊(塊的大小由處理器的字的單位長度決定)。
          (4)判斷塊的最高位是否為‘1’,若為‘1’則數(shù)據(jù)塊與生成多項式做一次異或操作。
          (5)將數(shù)據(jù)左移一位,如果當前塊的剩余比特等于CRC生成多項式的長度,則轉入步驟(3);否則轉入步驟(4)。
          (6)如果所有數(shù)據(jù)都已經操作完畢,則計算結束,寄存器中的值為最終求得的CRC。

          這種算法的優(yōu)點是算法簡單、容易實現(xiàn)、修改靈活、可移植性好,對任意長度的生成多項式都適用;但因為它一次只能處理一位數(shù)據(jù),因此計算效率低,運算量大。

          如前所述,在TD-LTE系統(tǒng)中采用了4種格式的CRC,如果采用查表算法,則需要建立4張查找表,會占用系統(tǒng)較大的存儲空間,且程序移植性差;如果采用塊異或長除法,則又會出現(xiàn)計算效率低,運算量大的問題。

          綜上分析,結合項目需求及系統(tǒng)硬件配置,考慮到系統(tǒng)所采用的高效DSP處理器——TMS320C64x(主頻最高可達到1.2 GHz)可以彌補塊異或長除法的低效性,系統(tǒng)最終采用塊異或長除法來實現(xiàn)。

          3 CRC算法的

          3.1 硬件簡介

          TMS320C6000系列DSP是TI公司1997年2月推向市場的高性能DSP,綜合了目前DSP性價比高、功耗低等優(yōu)點。TMS320C64x系列在TMS320C6000 DSP芯片中處于領先水平,它不但提高了時鐘頻率,而且在體系結構上采用了VelociTI甚長指令集VLIW(Very Long Instruction Word)結構[5],片內有8個獨立功能單元的內核,每個周期可以并行執(zhí)行8條32 bit指令,最大峰值速度4 800 MIPS,2組共64個32 bit 通用寄存器,32 bit 尋址范圍,支持8/16/32/40位的數(shù)據(jù)訪問,片內集成大容量SRAM,最大可達8 Mbit。由于其出色的運算能力、高效的指令集、大范圍的尋址能力,使其特別適用于無線基站、測試儀表等對運算能力和存儲量有高要求的應用場合。

          3.2 CRC校驗的

          因為系統(tǒng)采用了4種格式的CRC,如果對每種格式進行單獨實現(xiàn),不僅任務繁瑣,而且增加了系統(tǒng)的代碼量,更給代碼測試和維護增加了難度。因此本實現(xiàn)采用統(tǒng)一實現(xiàn),即同一個程序,支持系統(tǒng)中的所有CRC格式,僅需在程序頭部增添一點格式判斷的代碼即可。

          雖然TMS320C64x DSP處理器的字長為32 bit,但是為了兼容4種格式的CRC,最終決定數(shù)據(jù)的分塊長度為半字,即16 bit,這樣做的目的就是為了支持CRC24,因為TMS320C64x DSP的寄存器在用作邏輯移位寄存器使用時,其有效長度為40 bit。

          根據(jù)LTE協(xié)議,輸入數(shù)據(jù)按大端模式輸入。為了處理方便,每次讀入半字都將其倒序,采用低端對齊的方式進行CRC除法,因此,CRC多項式也必須經過倒序。最后生成的CRC也是倒序的,需要再次倒序,然后進行加擾[2](如果必要的話),最后添加到輸入數(shù)據(jù)后面。倒序可使用指令“BITR”,簡單易行。

          輸出數(shù)據(jù)仍為大端模式。由前面所述可知:CRC8的生成多項式倒序值為0x1b3;CRC16的生成多項式倒序值為0x10811;CRC24A的生成多項式倒序值為0x1be64c3;CRC24B的生成多項式倒序值為0x18c0003。

          值得注意的是:輸入數(shù)據(jù)后面應該多寫入一個字的0,因為每次取半字處理,當剩余比特為最大15 bit且CRC為最長24 bit時,組合起來也不會超過40 bit,避免特殊性的出現(xiàn),以便統(tǒng)一處理。同時完成CRC計算過后,可以直接將CRC添加到原數(shù)據(jù)之后,而不擔心其會覆蓋系統(tǒng)中的其他數(shù)據(jù),引起不必要的錯誤。

          圖1為CRC計算及添加的程序實現(xiàn)流程。當CRC格式為CRC16、CRC24A、CRC24B時,讀取的第一個數(shù)據(jù)塊(半字)在第一次內循環(huán)中將只作16次的移位,而沒有異或操作,表面上看在這里應該加一個判斷,如果是這種情況則直接將數(shù)據(jù)右移16 bit,然后接著處理第二個數(shù)據(jù)塊。但這樣會對后續(xù)的數(shù)據(jù)塊造成麻煩,因為每個數(shù)據(jù)塊到達此處都需判斷一次,當數(shù)據(jù)量比較大時,會帶來更大的開銷,因此在程序流程中可以忽略此問題。

          在接收端,CRC的校驗與發(fā)送端的計算基本相同,只是由于LTE系統(tǒng)的特殊性,如果在發(fā)送端CRC曾被加擾過,則在接收端校驗之前,應先從接收到的數(shù)據(jù)末尾截取出CRC進行解擾,然后再將解擾后的CRC添加回去,最后對整個接收數(shù)據(jù)進行CRC校驗。如果CRC校驗正確,則接收數(shù)據(jù)正確;否則接收數(shù)據(jù)錯誤,在此程序流程不再贅述。

          4 性能分析

          在DSP軟件實現(xiàn)中,通過指令并行,盡量優(yōu)化程序循環(huán)體[6],減少或消除程序中的“NOP”指令。對于不同格式的CRC,根據(jù)它們所用的環(huán)境以及數(shù)據(jù)的大致長度,通過程序仿真運行,可以得到統(tǒng)計結果如表1。

          表1的數(shù)據(jù)長度僅為個別舉例,但不失一般性。從表中可以看出,雖然塊異或長除法的運算量較大,但是當運用TMS320C64x芯片實現(xiàn)時,由于處理器的超高主頻,其計算速率也非??欤耆梢院雎运挠嬎懔?。因此,本實現(xiàn)采用塊異或長除法不僅簡化了程序實現(xiàn)方法,還減少了模塊程序代碼,節(jié)約了系統(tǒng)存儲空間。

          本文從理論分析出發(fā),根據(jù)TD-LTE系統(tǒng)特性,選擇了一種最優(yōu)的CRC校驗算法,并在TMS320C64x芯片上加以實現(xiàn),詳細講述了塊異或長除法在DSP中的實現(xiàn)方法。程序運行結果表明,本實現(xiàn)能夠滿足LTE系統(tǒng)的需要,具有可行性和高效性。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();