×
嵌入式开发 > 详情

TD-SCDMA中CRC的DSP实现

发布时间:2020-07-13 发布时间:
|

摘要:针对生成CRC多采用移位寄存器不易于DSP实现和实时性差的问题,提出固定寄存器的实现方法。该方法由标志位和移位算法组成,利用高性能DSP特殊指令实现,具有程序小,速度快的优点,可应用于3G、4G通信系统中。

引言

TD-SCDMA系统多采用FPGA+ARM+DSP的方案,其中DSP用于实现物理层信号处理。物理层信号处理一般流程,如图1所示。流程包括给每个传输模加CRC、传输块级连/码块分段、信道编码、无线帧尺寸均衡、交织(分两步)、无线帧分段、速率匹配、传输信道复用、比特加扰、物理信道分段、子帧分段、映射到物理信道、调制、扩频,最后生成TD-SCDMA的基带信号[1,2]

本文重点研究TD-SCDMACRC实现的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值。



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
寻找半导体产业未来10年的驱动力