APP下载

TD-SCDMA终端探测设备的DSP设计与实现*

2012-07-03亓英杰刘永康田增山

电子技术应用 2012年4期
关键词:译码指令信道

周 非,亓英杰,刘永康,田增山

(重庆邮电大学 无线定位与空间测量研究所,重庆400065)

在一些特殊情况下(如灾害搜救、警用安全和国防安全领域),基于通信网络的手机探测及定位技术具有很高的研究和利用价值[1]。目前,手机探测技术大致分为三类:(1)在有限范围内通过检测手机信号强弱,定位到手机。缺点是容易受干扰,不具备辨别能力;(2)在目标正在通信时,利用通信网络检测出目标手机所在基站[2],定位到目标所在小区。该方法主动性和精确度不足;(3)在目标手机上安装手机定位卡等追踪器或者智能追踪软件,然后利用特殊装置搜索和定位目标手机。该技术实现起来比较复杂,同样缺乏主动性和灵活性。因此,本文设计了一种基于通信网络基带数字信号处理(DSP)的手机终端探测系统。该系统在对基站进行下行同步后,利用哑呼功能,诱使目标手机产生上行链接,系统对这一上行链接进行同步、解码和发射功率检测,实现目标信号的探测、捕获和跟踪。考虑到TD-SCDMA移动通信网络良好的发展前景和研究环境,首先设计出的是基于TDSCDMA的终端探测系统,系统能够灵活、主动地对TD手机用户进行探测和定位。

1 系统设计

系统设计的难点在于对基站下行信号和手机上行信号进行实时处理,例如对同步、解码和解帧等复杂算法的处理都需要高性能的芯片支持。为此,系统选用高速数字信号处理芯片TMS320C6416作为核心处理器,以增强系统的处理速度。此外,对探测算法进行代码级的优化,以进一步提高系统的实时处理能力。探测系统的硬件架构如图1所示,以DSP模块为信号处理核心,辅以射频处理模块、FPGA模块、ARM模块、哑呼模块等。

1.1 系统各模块功能设计

(1)哑呼模块:哑呼模块采用中兴公司的 MC8630模块,利用MC8630的CDMA呼叫功能,对目标手机进行哑呼,诱使目标手机产生上行链接信号。

(2)射频模块:射频模块采用TD-SCDMA射频收发芯片 RDA8206,RDA8206接收 TD-SCDMA空中射频信号,并在其内部把射频信号转化为基带数字信号,然后送至FPGA。

(3)FPGA模块:该模块采用Altera公司的EP3C25E144芯片,用于初始化射频模块、提供10.24 MHz采样时钟以及对基带数字信号进行FIFO缓存控制,实现数据的高速传输。

(4)DSP模块:此模块为系统的核心模块,选用TI公司的TMS3220C6416芯片,片内RAM和片外SDRAM、Flash作为数据和程序存储器。对数字基带信号进行分析处理,实现TD-SCDMA探测系统的算法部分,包括搜索、检测目标手机信号和对目标手机信号进行跟踪定位。

(5)ARM模块:采用三星公司的S3C2440A芯片,提供系统的可视化操作和信息显示。

1.2 系统工作流程

TD-SCDMA探测系统的主要工作流程为:系统的FPGA模块初始化射频模块;射频模块持续地对TDSCDMA空中射频信号进行采样,并转化为基带信号传给FPGA;基带信号经过FPGA的FIFO缓冲后传输到DSP的存储器;DSP对基带信号进行处理后(完成下行同步、解广播信道等),确定目标手机接入的小区,触发中断,提醒哑呼模块对目标手机进行哑呼;DSP对此时刻及以后采到的数据进行处理(上行同步、解随机接入信道等);DSP解出目标手机的功率信息;DSP将相关信息和数据传送给ARM端,LCD触摸屏显示需要的数据和信息;最后,系统跟踪目标手机的功率变化,实现定位。

2 探测算法的DSP设计

探测算法对硬件的数字信号处理能力要求非常高,为此采用性能强大的TMS320C6416数字信号处理器设计和实现探测算法。

2.1 TMS320C6416信号处理芯片

TMS320C6416是TI公司推出的C6000系列高端芯片,系统采用600 MHz的版本,最大处理能力为4 800 MIPS。除了拥有C6000系列芯片共同特性以外,TMS320C6416片上拥有16 KB的一级程序cache,16 KB的一级数据cache,1 024 KB的二级cache和SRAM共享存储器;拥有64个EDMA通道,由于其出色的并行性能,能够处理KMB/s的数据传输;集成了Turbo协处理器(TCP)和Viterbi协处理器(VCP)[3]。因此,TMS320C6416被广泛应用于3G无线通信设计和高速信号处理领域。

2.2 探测算法的DSP设计

DSP通过EMIF接口接收由FPGA传输的基带数据,放入乒乓缓存中。CPU读取数据,进行算法处理。探测算法流程如图2所示,主要包括:同步基站下行导频信道,确定小区配置信息等参数;广播信道解码,解码过程包含解扰、解扩、解调、反物理信道映射、去交织、反打孔、卷积译码和CRC校验;检测小区内的上行同步链接,确定目标手机的上行同步过程;检测上行接入信道,对上行随机接入信道进行解码,随机接入信道的解码步骤类似广播信道解码过程;对随机接入信道解帧,获取TMSI等信息;最后解出接入信道的Midamble的接收信号强度指示 RSSI(Received Signal Strength Indicator),计算出目标手机RSSI的值。

图2 探测算法流程

3 算法的实时性处理及实现

提高算法的实时性能、加快系统的处理速度、减少因时间延迟带来的误差,使系统更快更精确地探测到目标位置。

3.1 使用Viterbi译码协处理器(VCP)

TMS320C6416片上的 Viterbi译码协处理器(VCP)是专门针对3G无线通信中的卷积码译码设计的。由于采用硬件解码,效率比软件编写的译码算法高得多[4],并且VCP不干扰CPU的运行,充分释放CPU以进行其他工作,缩短了整体时间。在终端探测算法中,解广播信道(BCCH)用的译码对象是(3,1,9)卷积码,解随机接入信道(RACH)用的译码对象是(2,1,9)卷积码。以 TMS-320C6416的时钟周期作为代码效率指标,对BCCH和RACH进行译码测试,其中,BCCH测试用的原始数据是unsigned char类型,RACH测试用的原始数据是int类型,软件算法均已做充分优化,测试结果如表1所示。

表1 VCP译码和软件算法译码效率测试结果

从表1可以看出,即使把软件译码算法做了充分优化,在处理 810 bit的BCCH数据时,使用 VCP译码的效率比使用软件译码的效率提高了近19倍;而处理388 bit的RACH数据时,使用VCP译码的效率比使用软件译码的效率提高了34倍。所以,只需掌握VCP译码技术,就能实现各种规则的Viterbi译码,不仅缩短了开发周期,而且很大程度上提高了译码效率,使工程更能满足实时处理的要求。

3.2 终端探测算法的代码级优化

由于探测算法以C语言开发为主,在算法定版后,通过对代码进行优化,可以进一步提高系统效率。

TMS320C6416内部具有8个独立的功能单元,在一个周期内可以最多并行执行8条32 bit指令。针对这一特点,代码优化的主要思路就是尽量提高指令的并行能力。采用的优化方法主要有以下几种[5]:

(1)修改编译器选项,给编译器反馈相关操作信息

编译器的options里面包含很多与性能相关的选项(如-o3、-pm、-mt等优化使能选项),择优选取能提高代码运行效率的选项。

(2)CACHE优化

增加CACHE的支配空间可以提高代码的运算速度,可用CSL函数将片内L2层存储器中的128 KB设置为CACHE模式,使DSP在运算时拥有更大的CACHE容量。

(3)降低存储器相关性

编译器只能安排不相关的指令并行执行,如果编译器不能确定访问存储器的指令是否相关,则默认指令是相关的,安排串行执行。所以,要尽可能地去除指令相关性,可使用关键字const来实现。const告知编译器被指定的变量或者变量指向的存储器是不变的(即访问存储器的指令是不相关的),编译器就可以安排这些指令并行执行,以提高效率。

(4)调用内联函数(intrinsics)

intrinsics是C6000编译器提供的在线函数,直接调用intrinsics代替对应的运算指令,能最高效率地实现代码功能。例如,C语言实现饱和加法需要多行代码,而调用intrinsics只用一条_sadd()指令就够了。

(5)数据打包处理技术

TMS320C6416访问存储器要消耗大量的时钟周期,要提高数据处理效率,就要尽可能使一条存(或取)指令能访问多个数据。例如,若使用64 bit指令操作访问2个32 bit或者4个16 bit数据等,不仅提高了数据存取的操作效率,而且可以更充分地使用TMS320C6416内核的8个功能单元进行并行运算。

(6)逻辑运算替代算术运算

由于DSP处理逻辑运算的指令要比处理乘除运算的指令快得多,所以,在源程序中要尽可能地用移位运算替代乘除运算,以缩短运算时间。

(7)时空转换技术

为了减少手持探测算法源程序中不必要的压栈和出栈带来的操作指令,用内联函数代替一些子函数写入主函数内,或者把一些调用不多的小函数直接写入主函数内,虽然代码长度增加了,但是提高了效率,即用空间的增加换取时间上的减少。

(8)优化源程序中的循环,充分使用软件流水技术

软件流水技术是优化过程中非常重要的一个步骤,能极大程度地提高源程序中循环的执行速度,例如执行下面这段源程序:

LDH

LDH

MPY

ADD

对它执行5次循环(不考虑指令延迟)。图3为不使用软件流水时的执行效果,图4为使用软件流水时的执行效果。经对比可见,使用软件流水技术有效地减少了指令周期数。为了最充分地利用软件流水技术,对于程序中的各种循环采用了以下措施:

(1)避免循环中出现条件终止或者提前退出循环等指令[6]。

(2)在保证最小安全迭代循环次数的同时,要尽量减少循环次数。

(3)循环修改使用递减计数或者使用程序指令:MUST_ITERATE以避免冗余循环。

(4)多层循环中,循环核内的一次迭代没有充分利用DSP资源时,采取循环展开技术,即完全展开执行周期很少的内循环(软件流水只对内循环有效),使其外层循环变成一个大的内循环,这样不但减少了循环填充和循环排空的指令数,而且提高了内循环指令的并行执行能力。

4 测试及结果分析

4.1 测试

测试分为两部分,首先对设备运行探测算法的实时效果进行测试,使用CCS的profile功能分析DSP算法的效率;然后在外场环境对设备的整体功能进行现场测试,使设备脱离PC机,进行外场测试,搜寻处于随机位置的TD目标手机。

4.2 测试结果分析

以TMS320C6416运行的时钟周期(1.67 ns)为性能指标,测试源程序优化前后的效率,其结果如表2所示。图5为设备外场测试时LCD屏显示的运行结果,为了显示清晰,系统设定为每隔5 s返回一次运行结果。

表2 代码运行效率测试结果

表2的结果表明,优化工作的效果是非常显著的,程序优化后的运行效率比优化之前运行效率提高了241倍左右,极大地提高了信号处理速度,也即提高了系统的实时性。而图5显示的设备现场测试结果表明,探测系统成功地捕获了目标手机的TMSI信息,并且成功地检测出目标信号的功率值,从而证明经过实时性处理的代码运行正确无误,系统运行正常。根据此功率值的变化,逐步接近目标手机,并最终准确地找到目标手机,探测最大有效范围在500 m左右。

本文介绍了基于TD-SCDMA通信网络的TD终端探测系统,描述了硬件结构设计和功能设计思路;给出了系统实现的DSP核心算法流程;针对系统的实时性,对DSP代码进行了一系列优化工作,并对比分析了优化工作前后的代码效率。最后进行现场测试,能够成功探测到目标手机。本文设计的手机探测系统基于单一的TD通信网络,由于国内存在多个通信网络,如何实现多网络融合的手机探测系统是下一步研究的主要工作。

[1]田增山,苟举,何维.手机信号采集与传输技术设计与实现[J].重庆邮电大学学报(自然科学版),2011,23(2):178-182.

[2]朱鲤,孙亚,胡小文.基于手机定位的动态行程时间探测[J].计算机工程与应用,2007,43(10):244-248.

[3]Texas Instruments Incorporate.TMS320C6414T,TMS320C6415T,TMS320C6416T fixed-point digital signal processors[Z].2006.

[4]陈晨,张太镒.基于 VCP的DSP维特比译码器的设计与实现[J].微计算机信息,2009,25(4-2):202-203.

[5]李方慧,王飞,何佩琨.TMS320C6000系列 DSPs原理与应用[M].北京:电子工业出版社,2003:197-310.

[6]Li Shuhua,Tie Yong,Guo Gaizhi.The pipeline analysis of the complex algorithm adopted in the dsp based image processing[C].In Proceedings of InternationalConference on Education Technology and Computer(ICETC),June,2010.

猜你喜欢

译码指令信道
分段CRC 辅助极化码SCL 比特翻转译码算法
基于校正搜索宽度的极化码译码算法研究
ARINC661显控指令快速验证方法
杀毒软件中指令虚拟机的脆弱性分析
从霍尔的编码译码理论看弹幕的译码
基于导频的OFDM信道估计技术
一种改进的基于DFT-MMSE的信道估计方法
LDPC 码改进高速译码算法
中断与跳转操作对指令串的影响
基于MED信道选择和虚拟嵌入块的YASS改进算法