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