摘 要:隨著移動(dòng)通信技術(shù)的發(fā)展,基于移動(dòng)通信系統(tǒng)的無線定位算法越來越吸引人們的關(guān)注。為了對(duì)該類算法進(jìn)行實(shí)際驗(yàn)證,設(shè)計(jì)和實(shí)現(xiàn)硬件驗(yàn)證平臺(tái)。該平臺(tái)以Xilinx的Spartan XC3S1600E FPGA為核心,采用先進(jìn)的MicroBlaze 軟處理器作為控制CPU,并與用Verilog語(yǔ)言描述的控制邏輯進(jìn)行集成,充分展現(xiàn)了FPGA的強(qiáng)大功能。經(jīng)過Matlab處理的發(fā)射數(shù)據(jù)可以通過USB接口下載到數(shù)據(jù)FLASH中,并且可以自由的進(jìn)行更換,從而可以方便地驗(yàn)證不同的定位算法。該平臺(tái)經(jīng)初步實(shí)測(cè),證明能夠滿足算法驗(yàn)證的要求。
關(guān)鍵詞:無線定位;FPGA;軟處理器;MicroBlaze;verilog
中圖分類號(hào):TP332,TN92文獻(xiàn)標(biāo)識(shí)碼:B
文章編號(hào):1004373X(2008)2202603
Wireless Location Algorithm Verifying Platform Based on MicroBlaze Soft Processor
ZHAO Fei,WANG Yan,YAN Bin
(National Mobile Communications Research Laboratory,Southeast University,Nanjing,210096,China)
Abstract:With the development of mobile communication technology,the wireless location algorithm based on mobile communication system begins to draw people′s attention more and more.In order to verify such algorithm,a hardware verifying platform has been designed and implemented.Xilinx Spartan XC3S1600E FPGA is the kernel of such a platform,which adopts advanced MicroBlaze soft processor works as control CPU,it is integrated with control logic described by Verilog,and the power function of FPGA is brought forth.The transmitting data processed by Matlab can be downloaded into data FLASH via USB interface,and also can be changed freely.Therefore,variant location algorithm can be verified conveniently.The platform has been proved to reach the design requirement via testing elementarily.
Keywords:wireless location;FPGA;soft processor;MicroBlaze;Verilog
1 引 言
隨著基于位置救援、智能運(yùn)輸、位置附費(fèi)等業(yè)務(wù)出現(xiàn),人們開始對(duì)無線定位服務(wù)有了越來越強(qiáng)烈的需求。無線移動(dòng)定位技術(shù)可以分為2大類:一類是衛(wèi)星定位技術(shù)(例如中國(guó)的北斗系統(tǒng),美國(guó)的GPS系統(tǒng),歐洲的伽利略系統(tǒng),俄羅斯的格洛納斯系統(tǒng)),另一類是基于全球移動(dòng)通信系統(tǒng)的定位技術(shù)(如基于TDOA:Time delay of arrival,AOA:Angular of arrival,TOA:Time of arrival等技術(shù),其基本原理與衛(wèi)星定位技術(shù)是類似的)。隨著移動(dòng)通信技術(shù)的發(fā)展,人們對(duì)后者越來越關(guān)注,開始研究基于移動(dòng)通信系統(tǒng)的定位算法。本文依托國(guó)家863項(xiàng)目“基于無線定位方法的環(huán)境自適應(yīng)高效鏈路傳輸技術(shù)研究”,討論無線定位算法驗(yàn)證硬件平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。
2 系統(tǒng)結(jié)構(gòu)及工作原理
根據(jù)算法驗(yàn)證的需求,考慮到硬件平臺(tái)的集成度和靈活性,采用Xinlinx公司的Spartan XC3S1600E FPGA作為平臺(tái)的核心芯片。在設(shè)計(jì)中,同時(shí)采用Xinlinx公司優(yōu)秀的MicroBlaze軟處理器作為控制CPU,并將其和其他數(shù)字邏輯都在同一片XC3S1600E中實(shí)現(xiàn),而且由于MicroBlaze可以將一些不需要的部件及其驅(qū)動(dòng)程序裁減掉,因此大大提高了系統(tǒng)的集成度。從靈活性的角度考慮,沒有在XC3S1600E中實(shí)現(xiàn)基
帶信號(hào)處理的硬線邏輯,而是將數(shù)據(jù)在Matlab中處理(包括編碼、交織、數(shù)字調(diào)制等)好后直接下載到數(shù)據(jù)FLASH并搬移至SRAM中,經(jīng)D/A變換后送至射頻模塊發(fā)射。這樣每次驗(yàn)證新的算法時(shí)不必重新生成新的FPGA配置bit流,而是直接將Matlab處理后生成的二進(jìn)制數(shù)據(jù)文件燒錄至數(shù)據(jù)FLASH中即可。
圖1只給出了系統(tǒng)處于發(fā)射狀態(tài)時(shí)的配置示意圖,處于接收狀態(tài)時(shí), RAM和DAC部分不工作,而要將射頻模塊輸出的基帶信號(hào)RxI和RxQ連接到安裝在計(jì)算機(jī)內(nèi)的凌華采集卡PCI-9820的2個(gè)A/D輸入通道上。系統(tǒng)工作時(shí),一臺(tái)設(shè)備處于發(fā)射狀態(tài),另一臺(tái)則處于接收狀態(tài)。
圖1 系統(tǒng)發(fā)射狀態(tài)配置示意框圖
在系統(tǒng)正式工作前,應(yīng)先將經(jīng)Matlab處理的二進(jìn)制基帶數(shù)據(jù)文件燒錄到數(shù)據(jù)FLASH(Intel JS28F128J3D75)中,這可以利用EDK軟件自帶的Program FLASH Memory功能來實(shí)現(xiàn)。這樣,系統(tǒng)正式工作時(shí),首先進(jìn)行GPS模塊和射頻模塊的初始化工作,然后MicroBlaze讀取數(shù)據(jù)FLASH中的數(shù)據(jù),并將其對(duì)應(yīng)寫入RAMI和RAMQ中,然后將RAM的控制權(quán)交于控制邏輯,此后可以啟動(dòng)發(fā)射機(jī),這時(shí),GPS模塊每輸出1個(gè)秒脈沖PPS(設(shè)計(jì)為每啟動(dòng)發(fā)射1次連續(xù)觸發(fā)1 000個(gè)秒脈沖后停止,同時(shí)會(huì)把每個(gè)秒脈對(duì)應(yīng)的時(shí)間位置信息保存在E2ROM中),發(fā)射機(jī)就觸發(fā)RAM中的數(shù)據(jù)發(fā)射1次,而接收機(jī)GPS模塊的秒脈沖PPS與發(fā)射機(jī)是同步的,它同時(shí)觸發(fā)PCI-9820采集卡對(duì)接收信號(hào)RxI和RxQ進(jìn)行數(shù)據(jù)采集。收發(fā)端實(shí)際上組成了一個(gè)異地同步發(fā)射采集系統(tǒng),由于發(fā)射信號(hào)到達(dá)接收端有延時(shí),所以PCI-9820會(huì)采到空點(diǎn),這段空點(diǎn)對(duì)應(yīng)的時(shí)間即為發(fā)端到收端的延時(shí)。
3 系統(tǒng)軟件設(shè)計(jì)
軟件設(shè)計(jì)建立在Xilinx嵌入式開發(fā)工具EDK自帶的板級(jí)支持包(BSB)的基礎(chǔ)之上。EDK會(huì)根據(jù)實(shí)際用到的MicroBlaze的片上外設(shè)(如OPB總線或PLB總線、UART接口、GPIO接口、EMC接口等)自動(dòng)選擇相應(yīng)的驅(qū)動(dòng)程序,從而生成與硬件相對(duì)應(yīng)的板級(jí)支持包。軟件設(shè)計(jì)流程見圖2。
LCD模塊的型號(hào)是ATM2004D(驅(qū)動(dòng)芯片為HD44780),根據(jù)其使用說明,編寫5個(gè)驅(qū)動(dòng)函數(shù)。
void LCDcommand(Xuint8 commanddata);//用于寫控制命令
void LCDdata(Xuint8 data);//用于寫顯示字//符代碼
void LCDreadstatus();//用于讀狀態(tài)寄存器
void LCDreadbusy();//用于判斷控制命令
//寫操作是否完成
void void LCDinitial();//按手冊(cè)說明完成初//始化工作,需調(diào)用上述子函數(shù)
GPS模塊的初始化和控制通過通用串口來實(shí)現(xiàn)(用EDK工具生成了UART接口及相應(yīng)的驅(qū)動(dòng)),根據(jù)手冊(cè)說明,調(diào)用UART接口的驅(qū)動(dòng)程序(void XUartLiteSendByte(u32 BaseAddress,u8 Data))發(fā)送相應(yīng)的控制字符即可。
圖2 軟件流程圖
射頻模塊的核心芯片是MICRO DEVICES公司的RF2958,其控制接口為3線串行數(shù)據(jù)接口,其操作時(shí)序見圖3。SSB為串行選擇線,SDI為串行數(shù)據(jù)線,SCLK為串行時(shí)鐘線。
圖3 RF2958控制接口時(shí)序圖
1幀數(shù)據(jù)為24位,0~17位為數(shù)據(jù),18~23位為寄存器地址,第23位用來區(qū)別讀寫操作,0為寫操作,1為讀操作??梢杂贸绦虿僮鱃PIO接口來模擬以上時(shí)序,并根據(jù)RF2958手冊(cè)編寫了4個(gè)驅(qū)動(dòng)函數(shù):
void RF2958writecfgreg(Xuint16 regaddr,Xuint32 data);//寫寄存器
Xuint32 RF2958readcfgreg(Xuint16 regaddr);//讀寄存器
Xboolean RF2958setchannel(Xuint16 channel);//設(shè)置載頻通道
Xboolean RF2958init();//完成RF2958初始化,需調(diào)用上面3個(gè)自函數(shù)
設(shè)置了3個(gè)外部硬件觸發(fā)中斷函數(shù)分別用于執(zhí)行相應(yīng)的中斷處理。
void Verifyinthandler();//校驗(yàn)從FLASH搬//移到RAM中的數(shù)據(jù)
void PPSNewinthandler();//保存GPS位置、//時(shí)間信息至E2ROM
void Readinthandler();//讀取GPS位置、時(shí)//間信息自E2ROM
4 控制邏輯設(shè)計(jì)
控制邏輯用來實(shí)現(xiàn)對(duì)GPS秒脈沖、RAM和DAC的控制,同時(shí)可以完成MicroBlaze的OPB地址總線與控制邏輯內(nèi)部的地址發(fā)生器地址線的切換工作,切換后,發(fā)射數(shù)據(jù)完全由純硬件邏輯觸發(fā),不再受MicroBlaze的控制,這樣數(shù)據(jù)觸發(fā)沒有任何軟件延時(shí),從而提高收端時(shí)延測(cè)量的精度。整個(gè)控制邏輯可以用ramlogic模塊實(shí)現(xiàn),并被調(diào)用2次,分別驅(qū)動(dòng)RAMI,RAMQ。
Module ramlogic
其中,clk為時(shí)鐘輸入;rst為復(fù)位信號(hào);start為啟動(dòng)信號(hào);ppsin為秒脈沖輸入;emccs,emcoen,emcwen,emcaddr分別為EMC接口的片選、讀使能、寫使能、地址信號(hào),ramcen0, ramcen1,ramoen,ramwen, ramaddr分別為外部RAM片選0、片選1、讀使能、寫使能、地址信號(hào);dacclk為DAC時(shí)鐘,ppsout為受控秒脈沖輸出;sel為Microblaze的OPB總線和控制邏輯的切換控制信號(hào),由1位的GPIO輸出口控制,0電平為OPB總線控制狀態(tài),1電平為邏輯控制狀態(tài)。
5 硬件測(cè)試結(jié)果
為了初步驗(yàn)證系統(tǒng)的性能,設(shè)計(jì)5.5 MHz的復(fù)正弦波形文件55Mcomnopulse.bin,并在EDK界面下,通過Xilinx Platform Cable USB 下載線燒錄到數(shù)據(jù)FLASH中。
圖4為雙通道DAC2900輸出的復(fù)正弦實(shí)測(cè)波形(未經(jīng)濾波器),同向通道超前正交通道90°相位,一個(gè)周期8個(gè)數(shù)據(jù)點(diǎn),時(shí)鐘為44 MHz,信號(hào)頻率為5.5 MHz。
圖4 DAC2900輸出波形
圖5為相應(yīng)的發(fā)射信號(hào)頻譜,載頻為2.452 GHz,由實(shí)測(cè)頻譜圖可以看出,信噪比為50 dB左右;圖6為相應(yīng)的接收機(jī)解調(diào)下來的信號(hào)頻譜,由實(shí)測(cè)頻譜圖可以看出,信噪比為35 dB左右,發(fā)射、接收信噪比均達(dá)到預(yù)期要求。
圖5 發(fā)射信號(hào)頻譜
圖6 接收信號(hào)頻譜
6 結(jié) 語(yǔ)
這里討論了無線定位算法驗(yàn)證平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。在設(shè)計(jì)中,采用Xilinx公司的MicroBlaze軟處理器技術(shù),并聯(lián)合運(yùn)用ISE和EDK開發(fā)軟件,將控制邏輯和MicroBlaze軟處理器集成在同一塊FPGA中,大大提高了系統(tǒng)的集成度,充分體現(xiàn)了FPGA的靈活性。
文中只討論SISO(Single Input Single Output)系統(tǒng)的實(shí)現(xiàn),實(shí)際上可以方便地?cái)U(kuò)充為MIMO(Multiple Input Multiple Output)系統(tǒng),這只要增加硬件設(shè)備即可,從而可以實(shí)現(xiàn)延時(shí)和到達(dá)角的測(cè)試,完成相關(guān)無線定位算法的驗(yàn)證。另外,存儲(chǔ)了每個(gè)秒脈沖時(shí)刻發(fā)射機(jī)和接收機(jī)的GPS位置與時(shí)間信息,可以為算法驗(yàn)證提供比對(duì)信息。目前該平臺(tái)已經(jīng)成功測(cè)定了東南大學(xué)四牌樓校區(qū)李文正樓和體育館之間的電波時(shí)延,經(jīng)轉(zhuǎn)換成距離并與實(shí)際距離比較,測(cè)量結(jié)果達(dá)到了較高精度,從而證明該平臺(tái)能夠滿足無線定位算法驗(yàn)證的要求。
參考文獻(xiàn)
[1]薛小剛,葛毅敏.Xilinx ISE 9.x FPGA/CPLD設(shè)計(jì)指南[M].北京:人民郵電出版社,2007.
[2]劉波.精通Verilog HDL語(yǔ)言編程[M].北京:電子工業(yè)出版社,2007.
[3]閻石.數(shù)字電子技術(shù)基礎(chǔ)[M].北京:高等教育出版社,1998.
[4]徐欣.基于FPGA嵌入式系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2004.
[5]閆勝利,袁芳革.Altium Designer 6.0中文版FPGA設(shè)計(jì)教程[M].北京:電子工業(yè)出版社,2006.
[6]譚浩強(qiáng).C程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,1999.
[7]\\ 普羅科斯.數(shù)字通信[M].北京:電子工業(yè)出版社,2006.
[8]高燕.OFDM系統(tǒng)中符號(hào)定時(shí)同步及無線定位技術(shù)研究[D].南京:東南大學(xué),2007.
[9]姜宇柏,黃志強(qiáng).通信收發(fā)信機(jī)的Verilog實(shí)現(xiàn)與仿真[M].北京:機(jī)械工業(yè)出版社,2006.
[10]張志涌,徐彥琴.Matlab教程——基于6.x版本[M].北京:北京航空航天大學(xué)出版社,2001.
[11]王金明,楊吉斌.數(shù)字系統(tǒng)設(shè)計(jì)與Verilog HDL[M].北京:電子工業(yè)出版社,2002.
[12]文全剛,劉志成,王雪瑞.FPGA邏輯測(cè)試中的器件建模方法\\.現(xiàn)代電子技術(shù),2006,29(16):9-11.
作者簡(jiǎn)介 趙 飛 男,1977年出生,碩士研究生。研究方向?yàn)镸IMO移動(dòng)通信系統(tǒng)中的信號(hào)檢測(cè)技術(shù)、計(jì)算機(jī)測(cè)控技術(shù)。
王 炎 男,1969年出生,教授,博士生導(dǎo)師。研究方向?yàn)橥ㄐ排c雷達(dá)中的陣列天線、分布式多天線、信號(hào)處理、檢測(cè)算法以及相關(guān)的電子系統(tǒng)設(shè)計(jì)。
燕 斌 男,1984年出生,碩士研究生。研究方向?yàn)榛跓o線網(wǎng)絡(luò)的定位技術(shù)及同步技術(shù)。
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文