文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)04-0016-04
在一些特殊情況下(如災(zāi)害搜救、警用安全和國(guó)防安全領(lǐng)域),基于通信網(wǎng)絡(luò)的手機(jī)探測(cè)及定位技術(shù)具有很高的研究和利用價(jià)值[1]。目前,手機(jī)探測(cè)技術(shù)大致分為三類:(1)在有限范圍內(nèi)通過(guò)檢測(cè)手機(jī)信號(hào)強(qiáng)弱,定位到手機(jī)。缺點(diǎn)是容易受干擾,不具備辨別能力;(2)在目標(biāo)正在通信時(shí),利用通信網(wǎng)絡(luò)檢測(cè)出目標(biāo)手機(jī)所在基站[2],定位到目標(biāo)所在小區(qū)。該方法主動(dòng)性和精確度不足;(3)在目標(biāo)手機(jī)上安裝手機(jī)定位卡等追蹤器或者智能追蹤軟件,然后利用特殊裝置搜索和定位目標(biāo)手機(jī)。該技術(shù)實(shí)現(xiàn)起來(lái)比較復(fù)雜,同樣缺乏主動(dòng)性和靈活性。因此,本文設(shè)計(jì)了一種基于通信網(wǎng)絡(luò)基帶數(shù)字信號(hào)處理(DSP)的手機(jī)終端探測(cè)系統(tǒng)。該系統(tǒng)在對(duì)基站進(jìn)行下行同步后,利用啞呼功能,誘使目標(biāo)手機(jī)產(chǎn)生上行鏈接,系統(tǒng)對(duì)這一上行鏈接進(jìn)行同步、解碼和發(fā)射功率檢測(cè),實(shí)現(xiàn)目標(biāo)信號(hào)的探測(cè)、捕獲和跟蹤??紤]到TD-SCDMA移動(dòng)通信網(wǎng)絡(luò)良好的發(fā)展前景和研究環(huán)境,首先設(shè)計(jì)出的是基于TD-SCDMA的終端探測(cè)系統(tǒng),系統(tǒng)能夠靈活、主動(dòng)地對(duì)TD手機(jī)用戶進(jìn)行探測(cè)和定位。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)設(shè)計(jì)的難點(diǎn)在于對(duì)基站下行信號(hào)和手機(jī)上行信號(hào)進(jìn)行實(shí)時(shí)處理,例如對(duì)同步、解碼和解幀等復(fù)雜算法的處理都需要高性能的芯片支持。為此,系統(tǒng)選用高速數(shù)字信號(hào)處理芯片TMS320C6416作為核心處理器,以增強(qiáng)系統(tǒng)的處理速度。此外,對(duì)探測(cè)算法進(jìn)行代碼級(jí)的優(yōu)化,以進(jìn)一步提高系統(tǒng)的實(shí)時(shí)處理能力。探測(cè)系統(tǒng)的硬件架構(gòu)如圖1所示,以DSP模塊為信號(hào)處理核心,輔以射頻處理模塊、FPGA模塊、ARM模塊、啞呼模塊等。
1.1 系統(tǒng)各模塊功能設(shè)計(jì)
(1)啞呼模塊:?jiǎn)『裟K采用中興公司的MC8630模塊,利用MC8630的CDMA呼叫功能,對(duì)目標(biāo)手機(jī)進(jìn)行啞呼,誘使目標(biāo)手機(jī)產(chǎn)生上行鏈接信號(hào)。
(2)射頻模塊:射頻模塊采用TD-SCDMA射頻收發(fā)芯片RDA8206,RDA8206接收TD-SCDMA空中射頻信號(hào),并在其內(nèi)部把射頻信號(hào)轉(zhuǎn)化為基帶數(shù)字信號(hào),然后送至FPGA。
(3)FPGA模塊:該模塊采用Altera公司的EP3C25E144芯片,用于初始化射頻模塊、提供10.24 MHz采樣時(shí)鐘以及對(duì)基帶數(shù)字信號(hào)進(jìn)行FIFO緩存控制,實(shí)現(xiàn)數(shù)據(jù)的高速傳輸。
(4)DSP模塊:此模塊為系統(tǒng)的核心模塊,選用TI公司的TMS3220C6416芯片,片內(nèi)RAM和片外SDRAM、Flash作為數(shù)據(jù)和程序存儲(chǔ)器。對(duì)數(shù)字基帶信號(hào)進(jìn)行分析處理,實(shí)現(xiàn)TD-SCDMA探測(cè)系統(tǒng)的算法部分,包括搜索、檢測(cè)目標(biāo)手機(jī)信號(hào)和對(duì)目標(biāo)手機(jī)信號(hào)進(jìn)行跟蹤定位。
(5)ARM模塊:采用三星公司的S3C2440A芯片,提供系統(tǒng)的可視化操作和信息顯示。
1.2 系統(tǒng)工作流程
TD-SCDMA探測(cè)系統(tǒng)的主要工作流程為:系統(tǒng)的FPGA模塊初始化射頻模塊;射頻模塊持續(xù)地對(duì)TD-SCDMA空中射頻信號(hào)進(jìn)行采樣,并轉(zhuǎn)化為基帶信號(hào)傳給FPGA;基帶信號(hào)經(jīng)過(guò)FPGA的FIFO緩沖后傳輸?shù)紻SP的存儲(chǔ)器;DSP對(duì)基帶信號(hào)進(jìn)行處理后(完成下行同步、解廣播信道等),確定目標(biāo)手機(jī)接入的小區(qū),觸發(fā)中斷,提醒啞呼模塊對(duì)目標(biāo)手機(jī)進(jìn)行啞呼;DSP對(duì)此時(shí)刻及以后采到的數(shù)據(jù)進(jìn)行處理(上行同步、解隨機(jī)接入信道等);DSP解出目標(biāo)手機(jī)的功率信息;DSP將相關(guān)信息和數(shù)據(jù)傳送給ARM端,LCD觸摸屏顯示需要的數(shù)據(jù)和信息;最后,系統(tǒng)跟蹤目標(biāo)手機(jī)的功率變化,實(shí)現(xiàn)定位。
2 探測(cè)算法的DSP設(shè)計(jì)
探測(cè)算法對(duì)硬件的數(shù)字信號(hào)處理能力要求非常高,為此采用性能強(qiáng)大的TMS320C6416數(shù)字信號(hào)處理器設(shè)計(jì)和實(shí)現(xiàn)探測(cè)算法。
2.1 TMS320C6416信號(hào)處理芯片
TMS320C6416是TI公司推出的C6000系列高端芯片,系統(tǒng)采用600 MHz的版本,最大處理能力為4 800 MIPS。除了擁有C6000系列芯片共同特性以外,TMS320C6416片上擁有16 KB的一級(jí)程序cache,16 KB的一級(jí)數(shù)據(jù)cache,1 024 KB的二級(jí)cache和SRAM共享存儲(chǔ)器;擁有64個(gè)EDMA通道,由于其出色的并行性能,能夠處理KMB/s的數(shù)據(jù)傳輸;集成了Turbo協(xié)處理器(TCP)和Viterbi協(xié)處理器(VCP)[3]。因此,TMS320C6416被廣泛應(yīng)用于3G無(wú)線通信設(shè)計(jì)和高速信號(hào)處理領(lǐng)域。
2.2 探測(cè)算法的DSP設(shè)計(jì)
DSP通過(guò)EMIF接口接收由FPGA傳輸?shù)幕鶐?shù)據(jù),放入乒乓緩存中。CPU讀取數(shù)據(jù),進(jìn)行算法處理。探測(cè)算法流程如圖2所示,主要包括:同步基站下行導(dǎo)頻信道,確定小區(qū)配置信息等參數(shù);廣播信道解碼,解碼過(guò)程包含解擾、解擴(kuò)、解調(diào)、反物理信道映射、去交織、反打孔、卷積譯碼和CRC校驗(yàn);檢測(cè)小區(qū)內(nèi)的上行同步鏈接,確定目標(biāo)手機(jī)的上行同步過(guò)程;檢測(cè)上行接入信道,對(duì)上行隨機(jī)接入信道進(jìn)行解碼,隨機(jī)接入信道的解碼步驟類似廣播信道解碼過(guò)程;對(duì)隨機(jī)接入信道解幀,獲取TMSI等信息;最后解出接入信道的Midamble的接收信號(hào)強(qiáng)度指示RSSI(Received Signal Strength Indicator),計(jì)算出目標(biāo)手機(jī)RSSI的值。
3 算法的實(shí)時(shí)性處理及實(shí)現(xiàn)
提高算法的實(shí)時(shí)性能、加快系統(tǒng)的處理速度、減少因時(shí)間延遲帶來(lái)的誤差,使系統(tǒng)更快更精確地探測(cè)到目標(biāo)位置。
3.1 使用Viterbi譯碼協(xié)處理器(VCP)
TMS320C6416片上的Viterbi譯碼協(xié)處理器(VCP)是專門(mén)針對(duì)3G無(wú)線通信中的卷積碼譯碼設(shè)計(jì)的。由于采用硬件解碼,效率比軟件編寫(xiě)的譯碼算法高得多[4],并且VCP不干擾CPU的運(yùn)行,充分釋放CPU以進(jìn)行其他工作,縮短了整體時(shí)間。在終端探測(cè)算法中,解廣播信道(BCCH)用的譯碼對(duì)象是(3,1,9)卷積碼,解隨機(jī)接入信道(RACH)用的譯碼對(duì)象是(2,1,9)卷積碼。以TMS-320C6416的時(shí)鐘周期作為代碼效率指標(biāo),對(duì)BCCH和RACH進(jìn)行譯碼測(cè)試,其中,BCCH測(cè)試用的原始數(shù)據(jù)是unsigned char類型,RACH測(cè)試用的原始數(shù)據(jù)是int類型,軟件算法均已做充分優(yōu)化,測(cè)試結(jié)果如表1所示。
從表1可以看出,即使把軟件譯碼算法做了充分優(yōu)化,在處理810 bit的BCCH數(shù)據(jù)時(shí),使用VCP譯碼的效率比使用軟件譯碼的效率提高了近19倍;而處理388 bit的RACH數(shù)據(jù)時(shí),使用VCP譯碼的效率比使用軟件譯碼的效率提高了34倍。所以,只需掌握VCP譯碼技術(shù),就能實(shí)現(xiàn)各種規(guī)則的Viterbi譯碼,不僅縮短了開(kāi)發(fā)周期,而且很大程度上提高了譯碼效率,使工程更能滿足實(shí)時(shí)處理的要求。
3.2 終端探測(cè)算法的代碼級(jí)優(yōu)化
由于探測(cè)算法以C語(yǔ)言開(kāi)發(fā)為主,在算法定版后,通過(guò)對(duì)代碼進(jìn)行優(yōu)化,可以進(jìn)一步提高系統(tǒng)效率。
TMS320C6416內(nèi)部具有8個(gè)獨(dú)立的功能單元,在一個(gè)周期內(nèi)可以最多并行執(zhí)行8條32 bit指令。針對(duì)這一特點(diǎn),代碼優(yōu)化的主要思路就是盡量提高指令的并行能力。采用的優(yōu)化方法主要有以下幾種[5]:
(1)修改編譯器選項(xiàng),給編譯器反饋相關(guān)操作信息
編譯器的options里面包含很多與性能相關(guān)的選項(xiàng)(如-o3、-pm、-mt等優(yōu)化使能選項(xiàng)),擇優(yōu)選取能提高代碼運(yùn)行效率的選項(xiàng)。
(2)CACHE優(yōu)化
增加CACHE的支配空間可以提高代碼的運(yùn)算速度,可用CSL函數(shù)將片內(nèi)L2層存儲(chǔ)器中的128 KB設(shè)置為CACHE模式,使DSP在運(yùn)算時(shí)擁有更大的CACHE容量。
(3)降低存儲(chǔ)器相關(guān)性
編譯器只能安排不相關(guān)的指令并行執(zhí)行,如果編譯器不能確定訪問(wèn)存儲(chǔ)器的指令是否相關(guān),則默認(rèn)指令是相關(guān)的,安排串行執(zhí)行。所以,要盡可能地去除指令相關(guān)性,可使用關(guān)鍵字const來(lái)實(shí)現(xiàn)。const告知編譯器被指定的變量或者變量指向的存儲(chǔ)器是不變的(即訪問(wèn)存儲(chǔ)器的指令是不相關(guān)的),編譯器就可以安排這些指令并行執(zhí)行,以提高效率。
(4)調(diào)用內(nèi)聯(lián)函數(shù)(intrinsics)
intrinsics是C6000編譯器提供的在線函數(shù),直接調(diào)用intrinsics代替對(duì)應(yīng)的運(yùn)算指令,能最高效率地實(shí)現(xiàn)代碼功能。例如,C語(yǔ)言實(shí)現(xiàn)飽和加法需要多行代碼,而調(diào)用intrinsics只用一條_sadd()指令就夠了。
(5)數(shù)據(jù)打包處理技術(shù)
TMS320C6416訪問(wèn)存儲(chǔ)器要消耗大量的時(shí)鐘周期,要提高數(shù)據(jù)處理效率,就要盡可能使一條存(或?。┲噶钅茉L問(wèn)多個(gè)數(shù)據(jù)。例如,若使用64 bit指令操作訪問(wèn)2個(gè)32 bit或者4個(gè)16 bit數(shù)據(jù)等,不僅提高了數(shù)據(jù)存取的操作效率,而且可以更充分地使用TMS320C6416內(nèi)核的8個(gè)功能單元進(jìn)行并行運(yùn)算。
(6)邏輯運(yùn)算替代算術(shù)運(yùn)算
由于DSP處理邏輯運(yùn)算的指令要比處理乘除運(yùn)算的指令快得多,所以,在源程序中要盡可能地用移位運(yùn)算替代乘除運(yùn)算,以縮短運(yùn)算時(shí)間。
(7)時(shí)空轉(zhuǎn)換技術(shù)
為了減少手持探測(cè)算法源程序中不必要的壓棧和出棧帶來(lái)的操作指令,用內(nèi)聯(lián)函數(shù)代替一些子函數(shù)寫(xiě)入主函數(shù)內(nèi),或者把一些調(diào)用不多的小函數(shù)直接寫(xiě)入主函數(shù)內(nèi),雖然代碼長(zhǎng)度增加了,但是提高了效率,即用空間的增加換取時(shí)間上的減少。
(8)優(yōu)化源程序中的循環(huán),充分使用軟件流水技術(shù)
軟件流水技術(shù)是優(yōu)化過(guò)程中非常重要的一個(gè)步驟,能極大程度地提高源程序中循環(huán)的執(zhí)行速度,例如執(zhí)行下面這段源程序:
LDH
LDH
MPY
ADD
對(duì)它執(zhí)行5次循環(huán)(不考慮指令延遲)。圖3為不使用軟件流水時(shí)的執(zhí)行效果,圖4為使用軟件流水時(shí)的執(zhí)行效果。經(jīng)對(duì)比可見(jiàn),使用軟件流水技術(shù)有效地減少了指令周期數(shù)。為了最充分地利用軟件流水技術(shù),對(duì)于程序中的各種循環(huán)采用了以下措施:
(1)避免循環(huán)中出現(xiàn)條件終止或者提前退出循環(huán)等指令[6]。
(2)在保證最小安全迭代循環(huán)次數(shù)的同時(shí),要盡量減少循環(huán)次數(shù)。
(3)循環(huán)修改使用遞減計(jì)數(shù)或者使用程序指令:MUST_ITERATE以避免冗余循環(huán)。
(4)多層循環(huán)中,循環(huán)核內(nèi)的一次迭代沒(méi)有充分利用DSP資源時(shí),采取循環(huán)展開(kāi)技術(shù),即完全展開(kāi)執(zhí)行周期很少的內(nèi)循環(huán)(軟件流水只對(duì)內(nèi)循環(huán)有效),使其外層循環(huán)變成一個(gè)大的內(nèi)循環(huán),這樣不但減少了循環(huán)填充和循環(huán)排空的指令數(shù),而且提高了內(nèi)循環(huán)指令的并行執(zhí)行能力。
4 測(cè)試及結(jié)果分析
4.1 測(cè)試
測(cè)試分為兩部分,首先對(duì)設(shè)備運(yùn)行探測(cè)算法的實(shí)時(shí)效果進(jìn)行測(cè)試,使用CCS的profile功能分析DSP算法的效率;然后在外場(chǎng)環(huán)境對(duì)設(shè)備的整體功能進(jìn)行現(xiàn)場(chǎng)測(cè)試,使設(shè)備脫離PC機(jī),進(jìn)行外場(chǎng)測(cè)試,搜尋處于隨機(jī)位置的TD目標(biāo)手機(jī)。
4.2 測(cè)試結(jié)果分析
以TMS320C6416運(yùn)行的時(shí)鐘周期(1.67 ns)為性能指標(biāo),測(cè)試源程序優(yōu)化前后的效率,其結(jié)果如表2所示。圖5為設(shè)備外場(chǎng)測(cè)試時(shí)LCD屏顯示的運(yùn)行結(jié)果,為了顯示清晰,系統(tǒng)設(shè)定為每隔5 s返回一次運(yùn)行結(jié)果。
表2的結(jié)果表明,優(yōu)化工作的效果是非常顯著的,程序優(yōu)化后的運(yùn)行效率比優(yōu)化之前運(yùn)行效率提高了241倍左右,極大地提高了信號(hào)處理速度,也即提高了系統(tǒng)的實(shí)時(shí)性。而圖5顯示的設(shè)備現(xiàn)場(chǎng)測(cè)試結(jié)果表明,探測(cè)系統(tǒng)成功地捕獲了目標(biāo)手機(jī)的TMSI信息,并且成功地檢測(cè)出目標(biāo)信號(hào)的功率值,從而證明經(jīng)過(guò)實(shí)時(shí)性處理的代碼運(yùn)行正確無(wú)誤,系統(tǒng)運(yùn)行正常。根據(jù)此功率值的變化,逐步接近目標(biāo)手機(jī),并最終準(zhǔn)確地找到目標(biāo)手機(jī),探測(cè)最大有效范圍在500 m左右。
本文介紹了基于TD-SCDMA通信網(wǎng)絡(luò)的TD終端探測(cè)系統(tǒng),描述了硬件結(jié)構(gòu)設(shè)計(jì)和功能設(shè)計(jì)思路;給出了系統(tǒng)實(shí)現(xiàn)的DSP核心算法流程;針對(duì)系統(tǒng)的實(shí)時(shí)性,對(duì)DSP代碼進(jìn)行了一系列優(yōu)化工作,并對(duì)比分析了優(yōu)化工作前后的代碼效率。最后進(jìn)行現(xiàn)場(chǎng)測(cè)試,能夠成功探測(cè)到目標(biāo)手機(jī)。本文設(shè)計(jì)的手機(jī)探測(cè)系統(tǒng)基于單一的TD通信網(wǎng)絡(luò),由于國(guó)內(nèi)存在多個(gè)通信網(wǎng)絡(luò),如何實(shí)現(xiàn)多網(wǎng)絡(luò)融合的手機(jī)探測(cè)系統(tǒng)是下一步研究的主要工作。
參考文獻(xiàn)
[1] 田增山,茍舉,何維.手機(jī)信號(hào)采集與傳輸技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J].重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,23(2):178-182.
[2] 朱鯉,孫亞,胡小文.基于手機(jī)定位的動(dòng)態(tài)行程時(shí)間探測(cè)[J].計(jì)算機(jī)工程與應(yīng)用,2007,43(10):244-248.
[3] Texas Instruments Incorporate.TMS320C6414T,TMS320C6415T, TMS320C6416T fixed-point digital signal processors[Z].2006.
[4] 陳晨,張?zhí)?基于VCP的DSP維特比譯碼器的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(4-2):202-203.
[5] 李方慧,王飛,何佩琨.TMS320C6000系列DSPs原理與應(yīng)用[M].北京:電子工業(yè)出版社,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 International Conference on Education Technology and Computer(ICETC),June,2010.