摘 要:隨著移動通信技術的發展,基于移動通信系統的無線定位算法越來越吸引人們的關注。為了對該類算法進行實際驗證,設計和實現硬件驗證平臺。該平臺以Xilinx的Spartan XC3S1600E FPGA為核心,采用先進的MicroBlaze 軟處理器作為控制CPU,并與用Verilog語言描述的控制邏輯進行集成,充分展現了FPGA的強大功能。經過Matlab處理的發射數據可以通過USB接口下載到數據FLASH中,并且可以自由的進行更換,從而可以方便地驗證不同的定位算法。該平臺經初步實測,證明能夠滿足算法驗證的要求。
關鍵詞:無線定位;FPGA;軟處理器;MicroBlaze;verilog
中圖分類號:TP332,TN92文獻標識碼:B
文章編號: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 引 言
隨著基于位置救援、智能運輸、位置附費等業務出現,人們開始對無線定位服務有了越來越強烈的需求。無線移動定位技術可以分為2大類:一類是衛星定位技術(例如中國的北斗系統,美國的GPS系統,歐洲的伽利略系統,俄羅斯的格洛納斯系統),另一類是基于全球移動通信系統的定位技術(如基于TDOA:Time delay of arrival,AOA:Angular of arrival,TOA:Time of arrival等技術,其基本原理與衛星定位技術是類似的)。隨著移動通信技術的發展,人們對后者越來越關注,開始研究基于移動通信系統的定位算法。本文依托國家863項目“基于無線定位方法的環境自適應高效鏈路傳輸技術研究”,討論無線定位算法驗證硬件平臺的設計與實現。
2 系統結構及工作原理
根據算法驗證的需求,考慮到硬件平臺的集成度和靈活性,采用Xinlinx公司的Spartan XC3S1600E FPGA作為平臺的核心芯片。在設計中,同時采用Xinlinx公司優秀的MicroBlaze軟處理器作為控制CPU,并將其和其他數字邏輯都在同一片XC3S1600E中實現,而且由于MicroBlaze可以將一些不需要的部件及其驅動程序裁減掉,因此大大提高了系統的集成度。從靈活性的角度考慮,沒有在XC3S1600E中實現基
帶信號處理的硬線邏輯,而是將數據在Matlab中處理(包括編碼、交織、數字調制等)好后直接下載到數據FLASH并搬移至SRAM中,經D/A變換后送至射頻模塊發射。這樣每次驗證新的算法時不必重新生成新的FPGA配置bit流,而是直接將Matlab處理后生成的二進制數據文件燒錄至數據FLASH中即可。
圖1只給出了系統處于發射狀態時的配置示意圖,處于接收狀態時, RAM和DAC部分不工作,而要將射頻模塊輸出的基帶信號RxI和RxQ連接到安裝在計算機內的凌華采集卡PCI-9820的2個A/D輸入通道上。系統工作時,一臺設備處于發射狀態,另一臺則處于接收狀態。
圖1 系統發射狀態配置示意框圖
在系統正式工作前,應先將經Matlab處理的二進制基帶數據文件燒錄到數據FLASH(Intel JS28F128J3D75)中,這可以利用EDK軟件自帶的Program FLASH Memory功能來實現。這樣,系統正式工作時,首先進行GPS模塊和射頻模塊的初始化工作,然后MicroBlaze讀取數據FLASH中的數據,并將其對應寫入RAMI和RAMQ中,然后將RAM的控制權交于控制邏輯,此后可以啟動發射機,這時,GPS模塊每輸出1個秒脈沖PPS(設計為每啟動發射1次連續觸發1 000個秒脈沖后停止,同時會把每個秒脈對應的時間位置信息保存在E2ROM中),發射機就觸發RAM中的數據發射1次,而接收機GPS模塊的秒脈沖PPS與發射機是同步的,它同時觸發PCI-9820采集卡對接收信號RxI和RxQ進行數據采集。收發端實際上組成了一個異地同步發射采集系統,由于發射信號到達接收端有延時,所以PCI-9820會采到空點,這段空點對應的時間即為發端到收端的延時。
3 系統軟件設計
軟件設計建立在Xilinx嵌入式開發工具EDK自帶的板級支持包(BSB)的基礎之上。EDK會根據實際用到的MicroBlaze的片上外設(如OPB總線或PLB總線、UART接口、GPIO接口、EMC接口等)自動選擇相應的驅動程序,從而生成與硬件相對應的板級支持包。軟件設計流程見圖2。
LCD模塊的型號是ATM2004D(驅動芯片為HD44780),根據其使用說明,編寫5個驅動函數。
void LCDcommand(Xuint8 commanddata);//用于寫控制命令
void LCDdata(Xuint8 data);//用于寫顯示字//符代碼
void LCDreadstatus();//用于讀狀態寄存器
void LCDreadbusy();//用于判斷控制命令
//寫操作是否完成
void void LCDinitial();//按手冊說明完成初//始化工作,需調用上述子函數
GPS模塊的初始化和控制通過通用串口來實現(用EDK工具生成了UART接口及相應的驅動),根據手冊說明,調用UART接口的驅動程序(void XUartLiteSendByte(u32 BaseAddress,u8 Data))發送相應的控制字符即可。
圖2 軟件流程圖
射頻模塊的核心芯片是MICRO DEVICES公司的RF2958,其控制接口為3線串行數據接口,其操作時序見圖3。SSB為串行選擇線,SDI為串行數據線,SCLK為串行時鐘線。
圖3 RF2958控制接口時序圖
1幀數據為24位,0~17位為數據,18~23位為寄存器地址,第23位用來區別讀寫操作,0為寫操作,1為讀操作。可以用程序操作GPIO接口來模擬以上時序,并根據RF2958手冊編寫了4個驅動函數:
void RF2958writecfgreg(Xuint16 regaddr,Xuint32 data);//寫寄存器
Xuint32 RF2958readcfgreg(Xuint16 regaddr);//讀寄存器
Xboolean RF2958setchannel(Xuint16 channel);//設置載頻通道
Xboolean RF2958init();//完成RF2958初始化,需調用上面3個自函數
設置了3個外部硬件觸發中斷函數分別用于執行相應的中斷處理。
void Verifyinthandler();//校驗從FLASH搬//移到RAM中的數據
void PPSNewinthandler();//保存GPS位置、//時間信息至E2ROM
void Readinthandler();//讀取GPS位置、時//間信息自E2ROM
4 控制邏輯設計
控制邏輯用來實現對GPS秒脈沖、RAM和DAC的控制,同時可以完成MicroBlaze的OPB地址總線與控制邏輯內部的地址發生器地址線的切換工作,切換后,發射數據完全由純硬件邏輯觸發,不再受MicroBlaze的控制,這樣數據觸發沒有任何軟件延時,從而提高收端時延測量的精度。整個控制邏輯可以用ramlogic模塊實現,并被調用2次,分別驅動RAMI,RAMQ。
Module ramlogic
其中,clk為時鐘輸入;rst為復位信號;start為啟動信號;ppsin為秒脈沖輸入;emccs,emcoen,emcwen,emcaddr分別為EMC接口的片選、讀使能、寫使能、地址信號,ramcen0, ramcen1,ramoen,ramwen, ramaddr分別為外部RAM片選0、片選1、讀使能、寫使能、地址信號;dacclk為DAC時鐘,ppsout為受控秒脈沖輸出;sel為Microblaze的OPB總線和控制邏輯的切換控制信號,由1位的GPIO輸出口控制,0電平為OPB總線控制狀態,1電平為邏輯控制狀態。
5 硬件測試結果
為了初步驗證系統的性能,設計5.5 MHz的復正弦波形文件55Mcomnopulse.bin,并在EDK界面下,通過Xilinx Platform Cable USB 下載線燒錄到數據FLASH中。
圖4為雙通道DAC2900輸出的復正弦實測波形(未經濾波器),同向通道超前正交通道90°相位,一個周期8個數據點,時鐘為44 MHz,信號頻率為5.5 MHz。
圖4 DAC2900輸出波形
圖5為相應的發射信號頻譜,載頻為2.452 GHz,由實測頻譜圖可以看出,信噪比為50 dB左右;圖6為相應的接收機解調下來的信號頻譜,由實測頻譜圖可以看出,信噪比為35 dB左右,發射、接收信噪比均達到預期要求。
圖5 發射信號頻譜
圖6 接收信號頻譜
6 結 語
這里討論了無線定位算法驗證平臺的設計與實現。在設計中,采用Xilinx公司的MicroBlaze軟處理器技術,并聯合運用ISE和EDK開發軟件,將控制邏輯和MicroBlaze軟處理器集成在同一塊FPGA中,大大提高了系統的集成度,充分體現了FPGA的靈活性。
文中只討論SISO(Single Input Single Output)系統的實現,實際上可以方便地擴充為MIMO(Multiple Input Multiple Output)系統,這只要增加硬件設備即可,從而可以實現延時和到達角的測試,完成相關無線定位算法的驗證。另外,存儲了每個秒脈沖時刻發射機和接收機的GPS位置與時間信息,可以為算法驗證提供比對信息。目前該平臺已經成功測定了東南大學四牌樓校區李文正樓和體育館之間的電波時延,經轉換成距離并與實際距離比較,測量結果達到了較高精度,從而證明該平臺能夠滿足無線定位算法驗證的要求。
參考文獻
[1]薛小剛,葛毅敏.Xilinx ISE 9.x FPGA/CPLD設計指南[M].北京:人民郵電出版社,2007.
[2]劉波.精通Verilog HDL語言編程[M].北京:電子工業出版社,2007.
[3]閻石.數字電子技術基礎[M].北京:高等教育出版社,1998.
[4]徐欣.基于FPGA嵌入式系統設計[M].北京:機械工業出版社,2004.
[5]閆勝利,袁芳革.Altium Designer 6.0中文版FPGA設計教程[M].北京:電子工業出版社,2006.
[6]譚浩強.C程序設計[M].2版.北京:清華大學出版社,1999.
[7]\\ 普羅科斯.數字通信[M].北京:電子工業出版社,2006.
[8]高燕.OFDM系統中符號定時同步及無線定位技術研究[D].南京:東南大學,2007.
[9]姜宇柏,黃志強.通信收發信機的Verilog實現與仿真[M].北京:機械工業出版社,2006.
[10]張志涌,徐彥琴.Matlab教程——基于6.x版本[M].北京:北京航空航天大學出版社,2001.
[11]王金明,楊吉斌.數字系統設計與Verilog HDL[M].北京:電子工業出版社,2002.
[12]文全剛,劉志成,王雪瑞.FPGA邏輯測試中的器件建模方法\\.現代電子技術,2006,29(16):9-11.
作者簡介 趙 飛 男,1977年出生,碩士研究生。研究方向為MIMO移動通信系統中的信號檢測技術、計算機測控技術。
王 炎 男,1969年出生,教授,博士生導師。研究方向為通信與雷達中的陣列天線、分布式多天線、信號處理、檢測算法以及相關的電子系統設計。
燕 斌 男,1984年出生,碩士研究生。研究方向為基于無線網絡的定位技術及同步技術。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文