CN115695591A - 一种基于fpga的多路gps报文上报系统 - Google Patents

一种基于fpga的多路gps报文上报系统 Download PDF

Info

Publication number
CN115695591A
CN115695591A CN202211327412.7A CN202211327412A CN115695591A CN 115695591 A CN115695591 A CN 115695591A CN 202211327412 A CN202211327412 A CN 202211327412A CN 115695591 A CN115695591 A CN 115695591A
Authority
CN
China
Prior art keywords
data
gps
module
message
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211327412.7A
Other languages
English (en)
Inventor
刘勇
韩旭
刘永前
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202211327412.7A priority Critical patent/CN115695591A/zh
Publication of CN115695591A publication Critical patent/CN115695591A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Position Fixing By Use Of Radio Waves (AREA)

Abstract

本发明公开了一种基于FPGA的多路GPS报文上报系统,包括:多路GPS数据处理模块,每路GPS数据处理模块实现一路GPS报文处理;每路GPS数据处理模块包括GPS复位模块、UART数据接收模块、GPS报文解析模块、数据缓存组帧模块和接口数据上报模块;GPS复位模块包括上电复位和运行异常复位;UART数据接收模块接收GPS模块发送的数据;GPS报文解析模块通过状态机接收特定帧头的数据并校验数据有效性;数据缓存组帧模块负责将GPS报文从DPRAM读出缓存数据帧到FIFO;接口数据上报模块将FIFO数据通过局部总线上报给CPU。本发明不仅能保证数据并行接收,还能大大减轻处理器负荷。

Description

一种基于FPGA的多路GPS报文上报系统
技术领域
本发明属于航空计算机控制技术领域,涉及一种基于FPGA的多路GPS报文上报系统。
背景技术
GPS系统具备高精度、全天候、高效率、多功能、操作简便、应用广泛等特点。它最初只是运用于军事领域,现已被广泛应用于交通、测绘等许多行业。GPS的应用领域,大都是基于定位、同步或从相关延伸出去的,主要包括:授时同步、运动导航、轨迹记录、大地测量、周边信息查询等。
针对只有一路GPS上报的情况,可以通过处理器经过串口软件的方式实现数据接收和报文解析。但如果是多个模块并行接入、并行解析报文、并发传输,用DSP或工控机的方法无法实现。原因包括两方面,一方面通用处理器无法提供大量的硬件接口,如12个串口;另一方面软件无法并行处理多路数据,面对并发数据,可能存在数据无效或丢帧的情况。此外,不同的上层应用需要不同的报文,而GPS模块在1S内会会连续发送多个NEMA标准报文,相同报文根据GPS模块不同,1S内会重复发送多次。因此,通过软件的方式去识别特定报文并丢弃不关注报文,无疑会大大增加CPU占用率,造成资源浪费。基于上述描述,采用硬件门阵的方式实现多路GPS模块数据接入、报文解析、报文过滤功能具备更高的效率和可靠性。
中国发明专利CN202011116761.5涉及一种基于GPS秒脉冲产生毫秒ms级雷达时间信息的FPGA实现方法,本发明属于雷达信号处理领域。本方法分四步进行:调用FPGA的时钟管理模块IP核,分频产生计数时钟;在计数时钟时钟域下,产生一个计数器;对计数器截掉低位,并对截位所剩的高位进行算术加1运算,得到新的计数值;对新的计数值截掉最低位,此值即是毫秒ms级雷达时间信息的输出。本发明采用GPS提供的秒脉冲信号通过FPGA编程的方法,可以给雷达的数据信号流打入精准的毫秒级时间信息,便于后续对雷达数据信息流进行进一步跟踪与分析,以实现雷达数据流的精准可控。该发明侧重通过FPGA实现精确的毫秒级雷达时间,而基于FPGA实现多路GPS报文上报的方法侧重于通过FPGA实现多路报文的并行接收、解析、组帧上报。
中国发明专利CN201611126357.X公开一种分布式测试系统的GPS同步方法,该方法面向当前主流分布式测试系统的应用,解决了瞬态信号测试中,分布式测试系统因各测点独立工作造成物理上分散隔离而致使相互间难以同步的问题。该方法能够精确测量所设计的GPS同步单元产生的PPS脉冲信号与所接收到的被测信号之间的时间差,各测点分别测得该时间差后连同UTC时间一起上传至计算机,在计算机上建立起以PPS脉冲为基准的时间统一。本发明所设计的GPS同步单元包括GPS授时模块、控制芯片FPGA及高精度时钟源、EEPROM存储器、USB接口等。本专利适用于野外开阔环境下分布式测试系统的同步,以无线同步方式解决了有线同步中存在的可靠性低、工程量大等突出问题,该方法精度高、操作简单、易于工程实现。该方法只是利用一路GPS授时解决同步问题,与本发明支持并行解析多路GPS模块,并灵活根据需要上报指定报文明显不同。
发明内容
(一)发明目的
本发明的目的是:提供一种基于FPGA的多路GPS报文上报系统,实现多路GPS报文并行接收、解析、上报。
(二)技术方案
为了解决上述技术问题,本发明提供一种基于FPGA的多路GPS报文上报系统,其包括:多路GPS数据处理模块,每路GPS数据处理模块实现一路GPS报文处理;每路GPS数据处理模块包括GPS复位模块、UART数据接收模块、GPS报文解析模块、数据缓存组帧模块和接口数据上报模块;所述GPS复位模块包括上电复位和运行异常复位;所述UART数据接收模块接收GPS模块发送的数据;GPS报文解析模块通过状态机接收特定帧头的数据并校验数据有效性,将有效数据存储到双口RAM;所述数据缓存组帧模块负责将GPS报文从DPRAM读出,并增加帧头、帧序号、帧长度、帧校验后缓存数据帧到FIFO;所述接口数据上报模块指示每个FIFO是否有数据帧并负责将FIFO数据通过局部总线上报给CPU。
(三)有益效果
上述技术方案所提供的基于FPGA的多路GPS报文上报系统,不仅可以通过门阵方式实现多路GPS报文并行接收、解析、上报,而且可根据软件指令,灵活配置接收特定报文,过滤掉不需要的数据帧和异常数据,不仅能保证数据并行接收,还能大大减轻处理器负荷。
附图说明
图1为本发明多路GPS并行处理框图
图2为本发明所述方法的单路GPS处理流程。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1和图2所示,本实施例基于FPGA的多路GPS报文上报系统用于实现多路GPS模块并行数据解析、组帧上报,包括多路GPS数据处理模块,每路GPS数据处理模块实现一路GPS报文处理;每路GPS数据处理模块包括GPS复位模块、UART数据接收模块、GPS报文解析模块、数据缓存组帧模块和接口数据上报模块;所述GPS复位模块包括上电复位和运行异常复位;所述UART数据接收模块接收GPS复位模块中接收的数据;GPS报文解析模块通过状态机接收特定帧头的数据并校验数据有效性,将有效数据存储到双口RAM;所述数据缓存组帧模块负责将GPS报文从DPRAM读出,并增加帧头、帧序号、帧长度、帧校验后缓存数据帧到FIFO;所述接口数据上报模块指示每个FIFO是否有数据帧并负责将FIFO数据通过局部总线上报给CPU。
本实施例报文上报系统可以并行接收并解析多路GPS报文,报文内容可以根据软件灵活指定,所有流程处理由底层硬件实现,大大减轻CPU负荷,方便上层应用统一处理。
FPGA硬件通过例化多路GPS数据处理模块,实现多路GPS数据并行处理。下文以其中一路GPS数据处理模块详细介绍数据处理流程。
GPS复位模块包括上电复位和软件控制GPS模块复位管脚复位两种方式。所述上电复位保证GPS模块上电后硬件可靠工作。软件控制复位则是在检测到模块发生异常时,比如接收不到报文或UART接口数据发送超时等,处理器发送复位指令,FPGA逻辑解析后,通过GPS硬件复位管脚复位GPS模块。本发明对应多路GPS模块,因此存在多个物理地址用于GPS模块复位管理。
UART数据接收模块用于通过串口的形式接收GPS模块发送的数据。GPS模块发送数据波特率是可以设置,一般包括9600bps,115200bps等,软件可以通过FPGA门阵实现的UART功能配置GPS模块波特率。FPGA实现UART接收模块,通过软件可以配置UART接收模块的波特率。UART接收数据格式包括起始位,8位数据,结束位。本发明通过FPGA状态机实现不同波特率的数据接收,识别数据的起始位,数据位和结束位,每接收完一个字节发出结束标志,通知报文解析模块接收数据。
GPS报文解析模块包含以下功能:通过报文帧帧头筛选出指定报文,统计报文长度,对数据进行CRC校验。该模块通过状态机方式实现。CPU上电后,应用软件逐一配置各个GPS通道接收的报文命令,FPGA门诊通过译码方式进行识别,详细流程参考附录图1。FPGA首先检测报文帧头,查看是否是GNRMC或GNGGA报文。如果与指定报文不一致,则自动过滤掉该报文,重新筛选报文;如果收到报文与指定报文一致,则进入后续处理流程。FPGA将接收到到的GPS报文数据按接收循序逐字节存储到DPRAM,直到接收到*号后,再接收CRC校验数据,则停止接收后续数据。上述接收数据过程中,FPGA启动校验流程,根据NMEA0183协议,对$字符与*字符之间数据进行异或校验。数据接收结束后FPGA将计算的CRC结果同接收的校验结果比较,如果校验结果一致,则认为该数据帧有效,启动数据缓存组帧模块组帧处理;如果校验结果不一致,则认为数据帧无效,自动丢弃本包数据,重新返回识别帧头状态。所述存储报文的DPRAM,本发明采用FPGA IP核实现。根据报文长度,目前设计DPRAM读写数据宽度都是8bit,数据深度是512字节,该空间可保证报文数据可靠缓存。
缓存组帧模块实现对接收的报文组帧处理,方便后台软件统一处理。组帧过程包括增加帧头、帧长度、帧序号、帧数据、以及帧校验,并通过FPGA门阵统计FIFO内缓存的报文帧数。具体流程如下:缓存控制模块接收到GPS报文解析模块发送的数据组帧指示后,启动缓存控制状态机,首先创建帧头0xaa55,0x55aa,然后是帧长度和帧序号,帧序号从1开始到0x7fff后重新计数。帧头创建完毕后,缓存控制状态机负责从DPRAM读取GPS报文数据,并缓存到创建的FIFO里。所述FIFO根据输入输出数据特征,写入数据宽度设置为8bit,读出数据宽度设置为16bit,数据深度设置为512字节,通过FPGAIP核实现。GPS报文数据缓存结束后,将除帧头外所有数据作异或校验,校验结果作为帧尾填充到FIFO中,用于应用软件验证数据有效性。FIFO帧格式举例如下表1所示。
表1 FIFO帧格式
帧头 帧长度 帧序号 帧数据 帧校验
Oxaa5555aa 0x40 0x0001 0x7a
接口数据上报模块负责将多路FIFO地址译码,并将统计FIFO帧个数上报给处理器。接口数据模块提供每个FIFO是否存在数据帧标志以及帧个数,处理器通过轮询的方式查询各个GPS状态,进而读取FIFO中的GPS报文,FPGA逻辑负责动态统计帧个数。由于GPS报文按字节上报,而处理器总线一般为16bit,因此FIFO设计写入部分设计为8bit位宽,读出部分设计为16bit。
本发明基于FPGA的多路GPS报文上报系统支持多路GPS模块并行数据解析上报,支持12路报文上报但不限于12路;根据软件指令解析特定报文并上报,非指定报文则丢弃不予处理;支持DSP的EMIFA接口,PCI接口,ISA接口等局部总线上报,但不限于上述接口。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (10)

1.一种基于FPGA的多路GPS报文上报系统,其特征在于,包括:多路GPS数据处理模块,每路GPS数据处理模块实现一路GPS报文处理;每路GPS数据处理模块包括GPS复位模块、UART数据接收模块、GPS报文解析模块、数据缓存组帧模块和接口数据上报模块;所述GPS复位模块包括上电复位和运行异常复位;所述UART数据接收模块接收GPS模块发送的数据;GPS报文解析模块通过状态机接收特定帧头的数据并校验数据有效性,将有效数据存储到双口RAM;所述数据缓存组帧模块负责将GPS报文从DPRAM读出,并增加帧头、帧序号、帧长度、帧校验后缓存数据帧到FIFO;所述接口数据上报模块指示每个FIFO是否有数据帧并负责将FIFO数据通过局部总线上报给CPU。
2.如权利要求1所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述GPS复位模块包括上电复位和软件控制GPS模块复位管脚复位两种方式。
3.如权利要求2所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述UART数据接收模块通过串口的形式接收GPS模块发送的数据。
4.如权利要求3所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述UART数据接收模块接收的数据格式包括起始位、8位数据、结束位。
5.如权利要求4所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述GPS报文解析模块通过报文帧帧头筛选出指定报文,统计报文长度,对数据进行CRC校验;GPS报文解析模块通过状态机方式实现。
6.如权利要求5所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述缓存组帧模块对接收的报文组帧处理,组帧过程包括增加帧头、帧长度、帧序号、帧数据、以及帧校验,并通过FPGA门阵统计FIFO内缓存的报文帧数。
7.如权利要求6所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述缓存组帧模块进行报文组帧处理时,先接收到GPS报文解析模块发送的数据组帧指示后,启动缓存控制状态机,创建帧头0xaa55、0x55aa,然后是帧长度和帧序号,帧序号从1开始到0x7fff后重新计数;帧头创建完毕后,缓存控制状态机负责从DPRAM读取GPS报文数据,并缓存到创建的FIFO;GPS报文数据缓存结束后,将除帧头外所有数据作异或校验,校验结果作为帧尾填充到FIFO中,用于应用软件验证数据有效性。
8.如权利要求7所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述FIFO根据输入输出数据特征,写入数据宽度设置为8bit,读出数据宽度设置为16bit,数据深度设置为512字节,通过FPGA IP核实现。
9.如权利要求8所述的基于FPGA的多路GPS报文上报系统,其特征在于,所述接口数据上报模块负责将多路FIFO地址译码,并统计FIFO帧个数上报给处理器;接口数据上报模块提供每个FIFO是否存在数据帧标志以及帧个数,处理器通过轮询的方式查询各个GPS状态,进而读取FIFO中的GPS报文,FPGA逻辑负责动态统计帧个数。
10.一种基于权利要求1-9中任一项所述的基于FPGA的多路GPS报文上报系统在航空计算机控制技术领域中的应用。
CN202211327412.7A 2022-10-27 2022-10-27 一种基于fpga的多路gps报文上报系统 Pending CN115695591A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211327412.7A CN115695591A (zh) 2022-10-27 2022-10-27 一种基于fpga的多路gps报文上报系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211327412.7A CN115695591A (zh) 2022-10-27 2022-10-27 一种基于fpga的多路gps报文上报系统

Publications (1)

Publication Number Publication Date
CN115695591A true CN115695591A (zh) 2023-02-03

Family

ID=85099626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211327412.7A Pending CN115695591A (zh) 2022-10-27 2022-10-27 一种基于fpga的多路gps报文上报系统

Country Status (1)

Country Link
CN (1) CN115695591A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001616A1 (en) * 1995-08-25 2001-05-24 Rakib Selim Shlomo Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops
EP1942607A2 (en) * 2000-09-11 2008-07-09 Broadcom Corporation Cable modem with voice processing capability
JP2008259238A (ja) * 2001-04-24 2008-10-23 Nvidia Corp ギガビット・イーサネット・アダプタ
US20130117766A1 (en) * 2004-07-12 2013-05-09 Daniel H. Bax Fabric-Backplane Enterprise Servers with Pluggable I/O Sub-System
CN104065587A (zh) * 2014-06-30 2014-09-24 中国西电电气股份有限公司 基于fpga的智能变电站网络风暴处理模块及解决方法
WO2016119525A1 (zh) * 2015-01-26 2016-08-04 国电南瑞科技股份有限公司 数据弹性交互综合总线系统
CN109547161A (zh) * 2018-11-22 2019-03-29 四川九洲电器集团有限责任公司 一种ads-b多通道信号产生方法
CN114499772A (zh) * 2020-11-12 2022-05-13 华为技术有限公司 数据传输方法及电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010001616A1 (en) * 1995-08-25 2001-05-24 Rakib Selim Shlomo Apparatus and method for SCDMA digital data transmission using orthogonal codes and a head end modem with no tracking loops
EP1942607A2 (en) * 2000-09-11 2008-07-09 Broadcom Corporation Cable modem with voice processing capability
JP2008259238A (ja) * 2001-04-24 2008-10-23 Nvidia Corp ギガビット・イーサネット・アダプタ
US20130117766A1 (en) * 2004-07-12 2013-05-09 Daniel H. Bax Fabric-Backplane Enterprise Servers with Pluggable I/O Sub-System
CN104065587A (zh) * 2014-06-30 2014-09-24 中国西电电气股份有限公司 基于fpga的智能变电站网络风暴处理模块及解决方法
WO2016119525A1 (zh) * 2015-01-26 2016-08-04 国电南瑞科技股份有限公司 数据弹性交互综合总线系统
CN109547161A (zh) * 2018-11-22 2019-03-29 四川九洲电器集团有限责任公司 一种ads-b多通道信号产生方法
CN114499772A (zh) * 2020-11-12 2022-05-13 华为技术有限公司 数据传输方法及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
肖菊兰: "基于FPGA的ISO/IEC 18000-6C RFID读写器设计", 中国优秀硕士学位论文全文数据库, no. 7, 15 July 2011 (2011-07-15) *

Similar Documents

Publication Publication Date Title
US7710969B2 (en) Rapid I/O traffic system
US20110029823A1 (en) Techniques for generating a trace stream for a data processing apparatus
CN109743301A (zh) 一种基于Modbus协议的数据收发系统及方法
EP4149058A1 (en) Network performance measurement method, apparatus, device and system, and storage medium
CN105207794A (zh) 统计计数设备及其实现方法、具有统计计数设备的系统
CN113852533B (zh) 一种多通道数据通信系统、方法及电子设备
CN115695591A (zh) 一种基于fpga的多路gps报文上报系统
CN114449644A (zh) 一种系统帧号同步方法以及相关装置
US8745455B2 (en) Providing an on-die logic analyzer (ODLA) having reduced communications
US9229841B2 (en) Systems and methods for detecting errors and recording actions on a bus
US20060282719A1 (en) Unique Addressable Memory Data Path
US20060256877A1 (en) Rapid I/O Compliant Message Mapper
CN113709010B (zh) 一种不限帧长的Modbus通信协议系统
US20070028010A1 (en) Peripheral device utilization monitoring
US20060268714A1 (en) Rapid I/O Compliant Congestion Control
CN114490459A (zh) 数据传输方法、装置、设备、接收机和存储介质
CN116074191A (zh) 一种ioam处理方法、装置、电子设备和计算机可读存储介质
CN114816778A (zh) 一种时延控制方法、系统及相关设备
US20060256878A1 (en) Out of Order Message Completion Management
US8938649B2 (en) Debug trace stream timestamping using upstream correlation
US11290361B1 (en) Programmable network measurement engine
CN112671546A (zh) 一种基于北斗导航的航电接口系统
CN116680088B (zh) 一种针对多寄存器存储的多模块同时访问系统及访问方法
CN117579522B (zh) 一种ib网络交换芯片的带宽及延时性能测量方法和电路
US11848837B2 (en) Network telemetry based on application-level information

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination