close
当前位置: 物联网在线 > 技术文库 >

基于Xilinx MicroBlaze 的嵌入式GPS 接收机研究

随着超大规模集成电路(VLSI)和现场可编程门阵列(FPGA)技术的发展,GPS接收机也正朝着小型化、高度集成化的方向发展。应用FPGA进行数字系统设计,不但能减小系统的体积,而且还能提高系统运行的可靠性。FPGA可使数字系统在线重新配置,设计更加灵活,且易于更改和升级[1-3]。更为重要的是,目前,Spartan3E系列现场可编程阵列中可以嵌入32位MicroBlaze软核处理器。因此,利用FPGA完成GPS接收机中对实时性要求比较高的处理,由MicroBlaze完成GPS接收机中相应的控制以及运算工作,使得整个GPS接收机的功能实现在一个FPGA芯片内完成,这不仅提高了系统的抗干扰性能,而且为系统将来进行ASIC设计提供基础。

现针对Xilinx MicroBlaze 软核处理器的GPS 接收机系统的设计进行了深入的研究,给出了软硬件的设计、存储器空间的详细设置方法。

1 嵌入式GPS 接收机系统的总体设计
嵌入式GPS接收机系统是基于Xilinx公司的Spartan™-3E Starter进行开发的。在嵌入式GPS接收机设计中,采用NJ1006A作为射频前端;利用FPGA的逻辑单元执行相关处理;利用FPGA中的软核处理器MicroBlaze执行基带信号处理、位同步、帧同步以及导航解算功能;FPGA的逻辑部分和嵌入式软核处理器之间通过处理器内部的片上外设总线(OPB)进行通信;从而,使得整个GPS接收机的中频信号处理可以在一个FPGA芯片内完成。系统设计的总体框图如图1所示。

 基于Xilinx MicroBlaze 的嵌入式GPS 接收机研究

2 基于MicroBlaze的嵌入式GPS接收机设计
利用MicroBlaze 嵌入式处理器进行GPS 接收机系统设计主要包括两大部分:系统硬件的构建和系统软件的开发。

2.1 系统硬件框架的建立
在用Xilinx公司的FPGA进行嵌入式设计时,Xilinx公司提供嵌入式开发工具EDK。EDK提供了本地存储器总线(LMB)、OPB总线接口,外部存储器接口,同步动态随机存储器(SDRAM)控制器,闪速存储器(Flash)控制器,串口中断控制器,定时器以及其他一些外围设备接口资源。这些接口都是以IP core的形式进行应用。用户可以根据自己的实际需求通过IP core来建立一个完善的嵌入式处理器系统[4],GPS接收机系统完整的硬件框架[5]如图2所示。

 基于Xilinx MicroBlaze 的嵌入式GPS 接收机研究

2.2 系统软件的开发
在嵌入式工具套件(XPS)中,嵌入式处理器硬件系统的构建由微处理器硬件规范(MHS)文件和微处理器外围设备描述(MPD)文件定义;软件系统结构由微处理器软件规范(MSS)文件定义,其中,MHS 文件用于描述嵌入式处理器平台FPGA 的硬件系统结构,主要定义当前平台FPGA 设计的处理器类型、总线结构、外设接口、中断处理和地址空间。MSS 文件用于完整描述嵌入式处理器平台的FPGA 的软件系统结构,主要定义当前平台FPGA 设计的软件库、驱动程序和文件系统。其开发流程如图3 所示。

 基于Xilinx MicroBlaze 的嵌入式GPS 接收机研究

3 嵌入式GPS接收机GPIO外设的程序设计
为了方便说明,下面以GPS 接收机中对外的用户输入/输出(I/O)接口为例说明嵌入式开发的具体方法。在进行Microblaze 开发时可以把Microblaze 作为Top Module,那么在开发过程中,不需要使用ISE,只用嵌入式开发套件(EDK)。另外,也可以把Microblaze 作为Sub Module,这时,在ISE 工程中可以像调用诸如时钟管理模块(DCM)的IP Core一样,调用Microblaze 软核处理器。在本程序设计中利用XMD 调试时将Microblaze 作为Top Module 来设计,利用ISE和modelsim 进行仿真时Microblaze 作为Sub Module 来处理。本程序是在Xilinx 公司Spartan-3E STARTER KIT 开发板上进行设计和实现的。在进行本系统设计时,需要在MicroBlaze的OPB 总线上添加MDM(硬件调试模块)和通用输入/输出驱动(General Purpose IO)。

在建立好硬件系统之后,对system.ucf文件进行引脚约束。在系统硬件建立完成后,MicroBlze产生的库文件和头文件,用户可以直接进行调用,这些应用程序接口(API)函数都提供了调用接口,用户只需给函数传递相应的实参即可对挂在总线上的设备进行操作。

为了验证上面设计的程序正确与否,可以利用ISE 调用Modelsim 对其进行仿真。正如上面所述,此时需要将MicroBlaze 处理器当作一个IP core 添加到ISE 工程中,并在ISE 的顶层文件中编写测试文件,为处理器的输入信号提供激励,输出信号提供端口。测试文件编写完成后,直接可以点击ISE 中的Update Bitstream with Processor Data,随后可以进行Modelsim 仿真。仿真中用到系统复位信号,时钟信号sys_clk_pin 和fpga_0_LEDs_8Bit_GPIO_d_out_pin控制信号。时钟周期与系统的主时钟50 MHz是同步的,系统的复位电平为高电平复位。所以,在系统复位后,复位引脚保持低电平状态。


(责任编辑:ioter)

用户喜欢...

以Arty A7为例,教你如何从Flash启动MicroBlaze软核

在诸多关于MicroBlaze软核处理器的例程中,往往都是使用JTAG下载然后借助SDK执行程序代码。然而无论是在项目展示还是实际应用中,我们都希望我们的设计可以即插即用,免去重复烧写的麻烦...


Xilinx开发板Si570频率配置方法详解

Xilinx大部分的开发板上都集成了Si570时钟芯片,该时钟的性能指标比较好,可以满足大部分高速串行接口应用对于参考时钟的要求。同时该时钟还可以通过I2C接口配置其输出频率。 该专题详细...


基于AT89S52单片机的智能数字电子时钟设计

(1)数字钟实现对年、月、日、时、分、秒、星期显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带...


基于Spartan-6平台简单实现异步fifo与UART串口通信的联合使用

UART(即Universal Asynchronous Receiver Transmitter 通用异步收发器)是广泛使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。 串行外设用到RS232-C异步串行接口,一般采用专用的集成...


在Arty Z7上入门Xilinx SDSoC开发工具

作者:阿Q 来源:开源硬件创客坊微信公众号 细心的小伙伴们可能早已留意到,在Digilent今年全新出品的Zynq评估板中,无论是第二代经典入门级的Zynq™ Board - ZYBO Z7,还是创客最爱的ARTY Z7,都...


基于NFC的无线通信系统电路设计

在很多场合有线通信技术并不能满足实际需要,比如在野外恶劣环境中作业。使用无线射频通信芯片构建的通信模块,用单片机作为控制部件,配合一定的外围电路就能很好地进行两地空间区...


开始使用Xilinx Zynq 一款可全编程系统芯片 (SoC)

什么是FPGA Xilinx以制造可编程门阵列(FPGA)而闻名,它是基于一个通过可编程接点连接的可配置逻辑块(CLBs)矩阵。根据Control Engineering Europe中的 FPGA的优点(Advantages of FPGA)这篇文章,多种控制回...


基于ADXRS810提高航位推算导航系统的精度

汽车航位推算 (DR)导航系统采用一个陀螺仪(gyro)来推算车辆的即时航向。借助该信息再加上行驶的距离,导航系统可以正确确定车辆的位置,即使卫星信号因拥挤的城区环境或隧道而受阻时亦是...


基于成ADAS3022解决多通道数据采集系统设计中遇到的诸多难题

可编程逻辑控制器(PLC)是很多工业自动化和过程控制系统的核心,可监控和控制复杂的系统变量。基于PLC的系统采用多个传感器和执行器,可测量和控制模拟过程变量,例如压力、温度和流量。...


基于ADI惯性MEMS稳定系统设计方案

稳定系统简介 无人飞行器安装的监控设备、海上微波接收机、车辆安装的红外成像系统传感器以及其他仪器系统都需要具有稳定的平台,以达到最佳性能,但它们通常在可能遇到振动和其他类...