首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

基于MicroBlaze软处理器的无线定位算法验证平台的设计与实现

作者:赵 飞 王 炎 燕 斌 来源:现代电子技术


  摘 要:随着移动通信技术的发展,基于移动通信系统的无线定位算法越来越吸引人们的关注。为了对该类算法进行实际验证,设计和实现硬件验证平台。该平台以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格式阅读原文