一种基于FPGA的GPS数据接收缓存系统的制作方法

文档序号:11545055阅读:432来源:国知局
一种基于FPGA的GPS数据接收缓存系统的制造方法与工艺

本发明涉及gps技术领域,特别是一种gps数据接收缓存系统。



背景技术:

目前,民用的gps接收器的应用相对成熟,厂商封装好的gps接收器能经过简单的电路搭建实现gps数据以nmea-0183协议格式输出。gps接收器产生的串行数据格式,可以通过微控制器mcu的串行通信接口(uart)直接读取。

中国专利cn200680028723.6公开了《一种软件gps处理装置》,包括用于接收gps信号样本流的fifo缓存器、存储器、用于从fifo缓存器向存储器传送gps信号样本的dma控制器、运行gps信号处理软件的mcu。该装置将接收到的gps数据进行模拟\数字转换,由独立的fifo器件缓存并送达存储器进行存储,由独立的计数器对数据进行计数,实现数据环形存储的目的,mcu能够得知存储的数据量,并能从存储器中读取数据,按照一定算法将gps数据计算出来。

中国专利cn103744812a公开了一种《gps模块控制系统和方法》,该系统包括上位机、通信模块和gps模块,上位机通过串行接口连接到通信模块,通信模块通过串行外设接口连接到所述gps模块。通信模块用于接收上位机的定位数据收集命令,响应定位数据收集命令并通过串行外设接口从gps模块读取定位数据,并且将定位数据上报给上位机。

传统上,对于gps数据的读取,基本是通过mcu的串行通信接口(uart)采用中断方式接收数据,然后将数据进行存储,然后处理,这种方法存在两种弊端:

1、mcu通过中断方式读取gps数据过程中,慢速的数据接收过程需要mcu程序持续干预,占用大量的mcu工作时间,难以达到实时性要求;

2、由gps模块返回的nmea-0183协议数据帧包含gga、gll、gsa、gsv、rmc和vtg六种格式的数据,最大数据量约为500字节,接收过程中,gps数据每刷新一次,mcu需将以上数据全部进行存储,这将占用mcu很大的内存。



技术实现要素:

为解决现有技术存在的上述问题,本发明要设计一种基于fpga的gps数据接收缓存系统,该系统能够高实时性的采集gps数据,并通过fpga的缓存有效降低mcu内存资源的消耗。

为了实现上述目的,本发明的技术方案如下:

一种基于fpga的gps数据缓存系统,包括gps模块电路、fpga芯片、flash芯片、mcu芯片、mcu读逻辑控制接口、电源模块、mcu时钟复位电路和fpga时钟复位电路;所述的mcu芯片分别与mcu读逻辑控制接口、电源模块和mcu时钟复位电路连接;所述的fpga芯片与mcu读逻辑控制接口、电源模块、fpga时钟复位电路、gps模块电路和flash芯片连接;

所述gps模块电路包括集成gps模块和天线电路:所述gps模块独立工作,并通过串行数据i/o口输出标准nmea-0183协议数据,波特率为9600bps;所述天线电路采用有源天线电路,l型电路滤波,有效的滤除干扰;

所述fpga芯片采用xilinx公司的spartan-3e系列下的xc3s250e芯片,内部设计1个uart模块,用于实现对nmea-0183协议数据接收和缓存;

所述mcu芯片采用cortex-m3架构的stm32f103rct6芯片,通过该芯片通用i/o口与fpga芯片进行连接,作为读使能信号线、时钟信号线、数据总线进行数据传输;

所述mcu读逻辑控制接口包括1根读使能信号线、1根时钟信号线和8根数据总线。

进一步地,所述flash芯片采用m25p80芯片;所述m25p80芯片是意法半导体的高速8mbit串行flash,用于存储fpga程序;

进一步地,所述电源模块包括3片spx5205电压转换芯片及其工作配置电路,将+5.0v电压转换为+3.3v电压、为mcu芯片和fpga芯片提供工作电源,转换为+1.2v和+2.5v为fpga芯片工作提供电源。

进一步地,所述mcu时钟复位电路与fpga时钟复位电路结构相同,包括8mhz晶振电路和20mhz晶振电路:所述8mhz晶振电路为stm32芯片提供外部输入时钟源,所述20mhz晶振电路为fpga芯片提供外部输入时钟源。

与现有技术相比,本发明具有以下有益效果:

1、本发明将fpga芯片置于gps模块电路与mcu芯片之间,按照固定的波特率(9600bps)从gps模块中读取nmea-0183协议数据,并交由fpga芯片缓存,mcu芯片经过数据总线从缓存中高速读取协议数据。数据传输过程中,mcu芯片以高速的数据传输速率从fpga芯片中读取数据,而不干预fpga芯片慢速的数据缓存过程,实现高速实时数据传输。

2、传统的串口通信方式中设uart工作波特率为9600bps,以本发明的nmea-0183协议数据计算,uart每传输1帧协议数据需要时间约为520.83ms;本发明中mcu芯片与fpga芯片之间数据传输速率较快:以mcu芯片的i/o读写速率为1mhz计算,每帧数据传输仅需500μs,相比传统的mcu芯片通过串口方式收发数据的速率而言,本发明的数据传输速率十分具有优势。

3、本发明中,mcu芯片与gps模块通信过程中,gps模块与fpga芯片之间慢速的数据传输过程不需mcu芯片干预,而mcu芯片与fpga芯片之间则能够进行高速的数据传输,这种方式避免了mcu在gps数据接收功能上浪费大量时间。

4、对于gps数据而言,本发明的fpga芯片内部具有足够的ram资源,通过fpga芯片缓存,并将数据直接发送到mcu芯片,避免了mcu芯片存储空间的大量占用,mcu将读取到的数据直接进行筛选处理,得到有用信息,其他非功能所需的信息不再占用存储空间。

附图说明

图1是本发明实施例提供的电路原理框图;

图2是本发明实施例提供的mcu程序流程图。

具体实施方式

下面结合附图对本发明进行进一步地描述。如图1所示,一种基于fpga的gps数据缓存系统,包括gps模块电路、fpga芯片、flash芯片、mcu芯片、mcu读逻辑控制接口、电源模块、mcu时钟复位电路和fpga时钟复位电路;所述的mcu芯片分别与mcu读逻辑控制接口、电源模块和mcu时钟复位电路连接;所述的fpga芯片与mcu读逻辑控制接口、电源模块、fpga时钟复位电路、gps模块电路和flash芯片连接。

本发明实施例gps模块电路通过串行数据i/o口将nmea-0183协议数据发送到fpga芯片,由fpga芯片进行数据缓存,mcu芯片则根据系统设计需求主动向fpga芯片发送读取数据请求,从缓存中高速读取数据。

图2所示为本发明实施例提供的mcu子程序流程图,该流程分为以下几个步骤:

s1:进入子程序首先设fpga芯片读使能,即使能信号置为逻辑电平“1”;

s2:将时钟信号置为“1”,然后从8根数据总线读取gps数据,接收过程中每接收1字节数据需将时钟信号置为“0”,再置“1”,如此达到fpga芯片按相应时钟发送数据的功能;

s3:判断mcu芯片请求的数据是否接收完毕,如果没有,则返回s2继续接收,如果接收完毕,则将时钟信号置为“0”,关断接收时钟并将读使能信号置为“0”,告知fpga芯片接收完毕;

s4:以上数据接收完毕后,mcu芯片对gps数据进行处理,本发明实施例中需利用gps的经纬度和时间信息,因此将nmea-0183协议中的rmc格式数据取出,计算得出所需的信息,其他数据不作处理。

本发明将gps模块的nmea-0183协议数据进行接收,经过fpga芯片缓存,mcu芯片从fpga芯片缓存中高速读取所需数据,而不干预慢速的数据缓存过程,大大提升了mcu芯片的工作效率。

本发明涉及许多包含mcu和fpga器件的系统,鉴于系统功能中需要获取gps数据,因而采用本发明实施例所阐述的处理方法,实际应用中系统功能不仅限于gps数据接收缓存部分。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1