基于TMS320TCI6618 FFTC的LTE基带信号设计测试

2017-03-02 11:04魏静文
无线电工程 2017年3期
关键词:寄存器队列移位

魏静文,常 俊,郑 宇

(云南大学 信息学院,云南 昆明 650091)

基于TMS320TCI6618 FFTC的LTE基带信号设计测试

魏静文,常 俊,郑 宇

(云南大学 信息学院,云南 昆明 650091)

针对LTE系统中OFDM算法缓慢的问题,给出了一种基于DSP的高效基带信号处理的设计。对TI公司的TMS320TCI6618中的FFTC进行了简单介绍,详细介绍了如何在TMS320TCI6618上使用FFTC实现快速傅里叶变换(FFT),并结合LTE系统对FFTC的应用进行了测试,完成了数据验证。实验结果充分证明了FFTC在算法上的高效性和实用性,并能简化FFT算法实现、加快系统设计和缩短开发时间,提升FFT算法性能,为LTE系统提供了一种很好的解决方案。

TMS320TCI6618;FFTC;快速傅里叶变换;DSP

0 引言

快速傅里叶变换(FFT)是信号频域分析的常用工具,日益成为现代电子与通信的重要技术。传统的傅里叶算法已无法满足快速增长的数据处理需求,新一代处理器将面对功能和性能的挑战,TI公司采用多核并行架构和专用高速协处理器等新技术,研发了基于KeyStone架构[1]的以优化通信算法性能和降低开发成本为目的的新一代处理器。本文介绍的TMS320TCI6618[2]正是KeyStone家族系列之一,其强大的处理器内部集成了BCP、FFTC和VCP等协处理器,并实现了通信系统中常用的各种算法,如Turbo编译码和FFT快速傅里叶算法等,利用DSP内部集成的协处理器[3]即可完成高效快速的通信系统算法的研究。实验结果充分证明了FFTC在算法上的高效性和实用性,并能简化FFT算法实现,加快系统设计和缩短开发时间,提升FFT算法性能,为LTE系统提供了一种很好的解决方案。

1 FFTC

FFTC在DSP6618内部的结构图如图1所示。

图1 FFTC模块结构

本文介绍的FFTC[3]是DSP6618内部集成的一个加速器,它适用于所有多核DSP C66xx系列[1]。DSP6618内部集成了3个FFTC协处理器,并且支持并行运算,FFTC内部可编程,每个FFTC内部内存被划分为3个banks,每个bank最大支持4 096个采样点的输入,同时也支持小于4 096个采样点的乒乓缓存输入。FFTC可以用来计算FFT或者IFFT,最大支持8 192个采样点的运算,其中以2 048个采样点的输入效率最高,速度最快,4.8 μs即可完成一次2 048点的FFT运算。

FFTC内部一共包含4组配置寄存器,每组寄存器包含5个寄存器,每个寄存器课单独进行配置。DSP给FFTC分配了4个队列,队列是用来将数据包发送给FFTC的,每组寄存器分别用来配置相应的传输队列。每组寄存器包含5个寄存器:冲突检测寄存器、目的队列寄存器、缩放和移位寄存器、循环前缀寄存器和LTE频偏参数寄存器。

FFTC的核心是FFT引擎,用来计算FFT或IFFT。FFTC内部采用“频域抽取”的方式实现FFT运算。FFTC可支持8 192个采样点的输入,每个FFT的复数采样点分成16位虚部和16位实部,并且按地址从高到低,虚部在前,实部在后。对于小于4 096个点的输入,内部可进行乒乓缓存[3]加速运算。

FFTC数据的传递以PacketDMA的方式进行,通过多核导航[4]对包和队列进行管理,并且数据的传递不需要CPU的干涉。PktDMA有2种包:monolithic和host。PktDMA数据包存放着FFT数据,数据量的多少可以通过寄存器进行配置。

连接PktDMA和FFTC引擎的是FFTC流接口。对于传输到FFTC的流数据,FFTC流接口对其进行状态的指示,并提供握手信号。

FFTC调度器用来决定队列的优先顺序,采用round-robin算法策略对队列的优先级进行管理、调度,决定哪一个队列应该被优先处理。

2 FFTC寄存器说明

测试以CCS5.3为平台,TI提供的FFTC库,并以LTE系统[1]为例,介绍FFTC寄存器的配置。

状态寄存器:用来查询FFTC的运行状态,0表示启动状态,1表示暂停状态。

目的队列和移位寄存器:用来配置FFTC传输数据使用的目的队列,默认配置为0x3FFF,采用自动配置,即系统随机选择一个可用的队列作为目的队列。

FFTC有2种移位方式:向左/右移位[3]和可变移位[3]。LTE系统采用可变移位,可变移位是用来处理输入数据有直流信号的情况,将输入序列先进行0填充,补足采样的个数,然后再进行循环移位。这里需要注意的是,填充0的个数必须满足4的倍数,如对1 200个子载波进行移位运算,按2 048个采样点的FFT,就是2 048-1 200-1=847,不满足4的倍数,因此要在原有的子载波[4]基础上添加3个0变成1 204个子载波,移位因子就变成2 048-1 204=844,满足4的倍数。LTE系统中的处理如图2所示。

图2 移位方式图解

以上是ADD模式下的配置,另外Mutiply模式可在队列控制寄存器中进行配置。

FFTC数据scaling寄存器:FFTC引擎计算FFT时,每一步蝶形运算都会保留一个中间值,中间值的大小取决于内存空间的大小。因此为了防止蝶形运算的中间结果超出范围而发生溢出,都会对中间结果进行调整,即用一个乘积因子乘以中间结果以缩小数据的长度,达到防止数据溢出现象。FFTC的scaling寄存器就是用来配置这个乘积因子的,可以配置成动态调整,也可以配置成手动调整。

队列循环前缀寄存器:根据具体的应用场景,可以对序列进行添加CP[3]和移除CP[3]操作,是否需要去CP可通过使能位进行配置。这里需要注意的是,去CP的长度不是直接进行配置,而是通过配置数据的偏移量来进行的,FFTC通过配置的偏移量的多少和FFT包的大小来确定去CP的位置和长度。

队列控制寄存器:FFT数据都是通过队列来传送的,通过配置队列控制寄存器可以对队列的数据进行控制。FFTC的队列控制寄存器可以用来配置FFT中的参数属性,属性值如下:

① 0填充模式:ADD Mode[3]和Mutiply Mode[3];

② 0填充数量:0~8 191,配置成0时表示禁止0填充;

③ Suppress Side Info:0表示禁止输出,1表示使能输出;

④ DFT/IDFT选择:配置FFT运算模式为FFT/IFFT;

⑤ DFT Size:配置DFT采样点数。

队列控制寄存器:对于每个为FFTC分配的队列,可以给每一个队列配置相应的LTE频移,配置完以后就直接应用到相应FFT数据中。

3 设计过程

3.1 系统功能

本文设计主要实现IFFT运算,并将DSP计算得到的结果与Matlab[5]计算得到的结果进行对比验证,得出结论。在DSP上实现如下功能:

① IFFT运算;

② Multiply模式下的补零操作;

③ 添加CP;

④ 输入循环移位;

⑤ 0 kHz频偏;

⑥ 动态蝶形缩放因子;

⑦ 与Matlab结果对比;

⑧ FFTC速率测试。

3.2 模块构成

程序设计基于以下模块:

① Sys/bios:用于管理系统任务、启动/停止和系统初始化等;

② CPPI:数据包的传输需要用到CPPI传输通道,使用时可通过相关寄存器对CPPI进行配置;

③ QMSS:队列管理系统,用于管理入队/出队,队列的分配等,DSP6618为FFTC分配了4个队列,可以对每个队列进行配置;

④ PktDMA:基于包的DMA,队列中的数据都是以包的形式传输的,因此PktDMA为数据的传输提供了便捷的方式。

3.3 系统配置

DSP6618有3个FFTC:FFTCA、FFTCB和FFTCC,3个FFTC可并行处理提高FFT的运算效率。程序使用核0来启动FFTC,其余核暂时不用,发送队列号采用0号queue[2],接收队列号使用系统自动进行配置,flow[1,3]使用系统指定一个free flow,接收结果不采用中断的方式而是轮询结果寄存器。描述符[2]的使用情况如下:描述符个数为1;描述符大小为64 bytes(包含PS信息);描述符类型为host;描述符位置为memory region0。

4 系统测试

4.1 测试流程

LTE系统中数据的传输分为4部分:下行发送(BSTX)、下行接收(BSRX)、上行发送(UETX)和上行接收(UERX),这里以下行发送为例说明。测试平台均基于TI公司的CCS开发平台,版本v5.3,测试环境为Windows7,TMS320TCI6618为核心的基带板卡。测试数据采用LTE-C模型提供的数据(注:仅为数据,可自行定义,对结果无影响)。测试流程如图3所示。

图3 测试流程

4.2 寄存器配置

基于FFTC的测试均已封装成函数,启动FFTC之前先要对寄存器进行配置,以初始化数据,FFTC的配置均通过数组的方式进行,即将寄存器的配置封装到一个数组,并由FFTC的API函数对数组读取即可完成配置,详细的参数配置如表1所示。

表1 FFTC寄存器配置

4.3 下行发送数据测试

下行发送数据的测试是在LTE协议[6-7]中定义的一个子帧的数据,下行物理层[8,9]信道定义了14个OFDM[10-11]符号[6-7],一共1 200×14个采样数据,采样数据分为实部和虚部2部分。利用DSP计算IFFT,结果如图4所示。然后,利用Matlab计算相应的IFFT,并将FFTC计算得到的IFFT与用Matlab计算得到的IFFT进行对比,如图5所示。

图4 DSP6618计算IFFT

图5 FFTC结果与Matlab结果对比

cplxScaling(a,b)是用Matlab编写的脚本函数[5],功能是分别将a和b的实部与虚部进行除法运算。从结果可以看出,用FFTC计算得到的IFFT和用Matlab计算得到的IFFT存在一个比例关系,根本原因在于蝶形运算过程中对数据的处理方式不一致,导致结果存在比例差异,理论上是正确的。

4.4 FFTC效率分析

利用CCS5.3[12]自带的工具,可以测试FFTC运行时间,并将实际得到的与官方给出的测试结果进行对比,从而验证FFTC的有效性。在CCS5.3环境下,对程序中的fftc_core函数进行测试,其执行时间为280 951个cycles。这里的fftc_core函数是FFTC核心调用函数,其执行时间已经优化成FFTC的实际执行时间。测试的数据为14个OFDM符号,两天线端口数据的测试时间为280 951个cycles,约为285.81 μs 。TI官方给出的测试是基于6 670,其他参数均保持一致,发送10个packet,每个packet配置为3个block,用时约0.15 ms,基本接近官方提供的理论值。

5 结束语

本文通过使用FFTC实现LTE物理层的FFT算法,该算法是利用LTE协议系统参数并基于LTE系统模型上的仿真实现。同时在仿真结果的基础上评估了其算法的效率,与传统FFT运算效率相比,性能得到大大的提高,为LTE系统物理层实现高效的OFDM提供了新的解决思路,这也充分证明了使用FFTC替代软件实现的FFT将是必然趋势,相信在新一代5G技术中会得到充分的运用。

[1] 牛金海.TMS320C66x KeyStone架构多核DSP入门与实例精解[M].上海:上海交通大学出版社,2014.

[2] 孙进平,王 俊,李 伟,等.DSP/FPGA嵌入式实时处理技术基应用[M].北京:北京航空航天大学出版社,2011.

[3] 马 超.基于CORDIC的FFT处理器设计及验证[D].哈尔滨:哈尔滨工程大学,2013.

[4] 沈 嘉,索士强,全海洋.3GPP长期演进(LTE)技术原理与系统设计[M].北京:人民邮电出版社,2008.

[5] 张志涌,杨祖樱.MATLAB教程R2011a[M].北京:北京航空航天大学出版社,2012.

[6] 3GPPTS 36.212.3rd Generation Partnership Project;Technical Specification Group Radio Access Network;Evolved Universal Terrestrial Radio Access (E-UTRA);Multiplexing and channel coding(Release 8)[S],2009.

[7] 3GPPTS 36.211.3rd Generation Partnership Project;Technical Specification Group Radio Access Network;Evolved Universal Terrestrial Radio Access (E-UTRA);Physical Channels and Modulation(Release 8)[S],2009.[8] 李三江.LTE物理层下行关键技术研究[D].成都:电子科技大学,2009.

[9] 李 强.TD-LTE基站物理层下行链路设计与实现[D].安徽:中国科学技术大学,2012.

[10] 杨 昉,何丽峰,潘长勇.OFDM原理与标准——通信技术的演进[M].北京:电子工业出版社,2013.

[11] 李 莉.MIMO-OFDM系统原理、应用及仿真[M].北京:机械工业出版社,2014.

[12] 尹 勇.DSP集成开发环境[M].北京:北京航天航空大学出版社,2013.

魏静文 男,(1990—),硕士研究生。主要研究方向:无线通信。

常 俊 男,(1970—),副教授。主要研究方向:无线通信、宽带无线通信与软件无线电技术、新一代移动通信组网与优化、信息系统开发与数据工程。

Design and Test of LTE Baseband Signal Based on TMS320TCI6618 FFTC

WEI Jing-wen,CHANG Jun,ZHENG Yu

(SchoolofInformationScienceandEngineeringofYunnanUniversity,KunmingYunnan650091,China)

This paper mainly aims at the problem of slow OFDM algorithm in current LTE systems,and gives a design of efficient baseband signal processing based on DSP.This paper first introduces the FFTC of TI TMS320TCI6618 in brief,and then details how to use FFTC on TMS320TCI6618 for realization of Fast Fourier Transform (FFT).And the application of FFTC system is tested in combination with LTE systems.Data validation is also achieved.Test data proved the efficiency and practicality of FFTC,which can simplify algorithm implementation,accelerate system design,shorten development time for LTE system,enhance system performance of FFT algorithm,and provide a good solution for LTE.

TMS320TCI6618;FFTC;FFT;DSP

10.3969/j.issn.1003-3106.2017.03.04

魏静文,常 俊,郑 宇.基于TMS320TCI6618 FFTC的LTE基带信号设计测试[J].无线电工程,2017,47(3):15-18.

2016-12-13

国家自然科学基金资助项目(61162004)。

TN911.6

A

1003-3106(2017)03-0015-04

猜你喜欢
寄存器队列移位
MDT诊疗模式在颞下颌关节盘不可复性盘前移位中的治疗效果
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
再生核移位勒让德基函数法求解分数阶微分方程
队列里的小秘密
基于多队列切换的SDN拥塞控制*
大型总段船坞建造、移位、定位工艺技术
在队列里
移位寄存器及算术运算应用
丰田加速驶入自动驾驶队列