当前位置:首页 > 工业控制 > 电子设计自动化
[导读] 全球定位系统(Clobal Position System,GPS)能够提供实时、全天候、全球性和高精度的服务,其广泛应用于各行各业中。GPS接收机通过天线单元接收卫星信号,将信号进行带通滤波、下变频混频、AGC放大、A/D转换等一系

 全球定位系统(Clobal Position System,GPS)能够提供实时、全天候、全球性和高精度的服务,其广泛应用于各行各业中。GPS接收机通过天线单元接收卫星信号,将信号进行带通滤波、下变频混频、AGC放大、A/D转换等一系列处理,得到数字中频信号,进而对中频信号进行捕获、跟踪,解调出用户的纬度、经度、高度、速度、时间等导航信息,将这些信息按NMEA-0183协议封装,通过串口输出数据。用户设备中的GPS接收器在收到GPS信息后,需要对相关信息予以解码处理,从而得到用户的位置、时间等信息,进而实现用GPS导航和定位的目的。近几年来,现场可编程门阵列(FPGA)凭借其开发过程投资少、设计周期短、灵活方便以及可反复编程等特点,在现代电子设计中得到了广泛应用。本设计选择现场可编程门阵列(FPGA)来实现GPS信号的解析处理。

1 NMEA-0183协议的数据格式

NMEA-0183是美国国家海洋电子协会(NMEA,The National Marine Electronics Association)为海用电子设备制定的标准格式,它现在已被广泛地应用于多个领域的设备之间的数据传输。NMEA标准格式输出采用ASCII码,每个ASCII数据码长8位,串行通信的波特率为9600位/秒,数据位8位,开始位1位,停止位1位,无奇偶校验位。

NMEA-0183协议由语句组成,每条语句以字符“$”作为语句起始标志,数据之间以逗号相隔,字符“*”作为校验和前缀,最后以校验和数值和回车/换行字符结束。最常用的有6种语句格式:$GPGGA,$GPGLL,$GPGSA,$GPGSV,$GPRMC,$GPVTG。下面以推荐定位信息GPRMC语句为例介绍数据格式。语句的格式如下:

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*<13>

<1>UTC时间,格式hhmmss.sss(时分秒);

<2>定位状态,A=有效定位,V=无效定位;

<3>纬度,ddmm.mmmm(度分)格式(前导位不足则补0);

<4>纬度半球N(北半球)或S(南半球);

<5>经度,dddmm.mmmm(度分)格式(前导位不足则补0);

<6>经度半球E(东经)或W(西经);

<7>地面速率(000.0~999.9节,前导位不足则补0);

<8>地面航向(000.0~359.9度,以真北为参考基准,前导位不足则补0);

<9>UTC日期,ddmmyy(日月年)格式;

<10>磁偏角(000.0~180.0度,前导位不足则补0);

<11>磁偏角方向,E(东)或W(西);

<12>模式指示(仅NMEA-0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效);

<13>校验和;

2 NMEA-0183协议解析器设计

2.1 系统的总体设计

以深圳星际通公司生产的GP5MX1513F1导航芯片为例进行说明。该芯片为一个64并行通道单频接收机,只接受L1波段的卫星信号,定位精度2 m(2D RMS)。该芯片依次输出6种NMEA信息,分别是:$GPGGA,$GPGLL,$GPGSA,$GPGSV,$GPRMC,$GPVTG,串口默认设置:波特率9 600bps,起始位1位,数据位8位,无奇偶校验位,停止位1位。NMEA-0183协议解析系统的总体设计框图如图1所示,GP5MX1513F1导航芯片通过天线单元接收卫星信号,将信号滤波、下变频、放大和模数转换等一系列处理,得到数字中频信号,进而对中频信号进行捕获、跟踪、位同步及帧同步,解调出导航数据,最后计算出用户的纬度、经度、高度、速度、时间等信息,以NMEA-0183协议格式打包成数据帧,再通过标准的串口输出数据。NMEA-0183协议解析模块生成的硬件电路内嵌在FPGA中,一方面通过串口模块接收GP5MX1513F1芯片发出的串行数据,将接收的信号给解析模块进行处理,另一方面解析模块根据NMEA-0183协议的数据格式提取出所需要的信息。

2.2 串口模块

串口模块主要负责接收由GP5MX1513芯片输出的导航定位信息,串口模块通过波特率发生器将系统时钟进行分频,产生16倍数据波特率的时钟。系统复位后,接收端以16倍波特率的速率读取线路状态,检测信号GPS_TX出现下降沿,在GPS_TX信号下降沿后第8个采样点确认是否为低电平,如果检测得到的是高电平,则认为起始位无效,返回到空闲状态,重新等待起始信号的到来。起始位找到后,开始接收数据,当数据计数器data_bit_cnt计到7时,8位数据都已经输入完成。最后,检测停止位,如果正确检测到高电平,则

说明本帧的各位数据正确接收,将数据存入到8位数据寄存器中,否则出错。

串口模块接收端的状态转移图如图2所示,接收机由4个工作状态组成,分别是空闲状态、起始位、数据位和停止位。当系统复位后,电路处于空闲状态,等待信号的触发,连续8个时钟检测出数据发生负跳变,sof信号为高,进入起始状态,当sample为1时,进入数据位,接着的数据位将每隔16个采样周期被采样一次。即取每一位的第8次的波特率时钟采样值来确保采样正确。连续采样8次后,采样计数器data_bit_cnt==7,进入停止位,当sample为1时,进入空闲状态,开始接收下一个数据。

在状态机模型的基础上,使用verilog HDL语言来描述其功能,其主要代码如下:

2.3 解析模块

串口模块输出的8位数据送到解析模块,解析模块采用6MUX1选择器来选择提取哪种语句,通过外部输入信号对寄存器config_Reg进行配置来实现,当config_Reg=000时,提取GGA语句,当config_Reg=001时,提取GLL语句,当config_Reg=010时,提取GSA语句,当config_Reg=001时,提取GSV语句,当config_Reg=011时,提取RMC语句,当config_Reg =100时,提取VTG语句。下面以RMC语句为例,来说明解析过程,解析模块将串口模块接收端接收的数据进行循环检测,判断报文头、定位状态、校验位、结束位信息,提取时间信息。首先,对config_Reg进行配置,设置config_Reg=011;其次,检测报文头$GPRMC,如果是,则进行下一步,否则,继续检测;最后,用逗号计数器的值来决定提取$GPBMC语句的哪段信息,当逗号计数器为1时,提取时分秒信息,存储在data_hh_mm_ss寄存器中;当逗号计数器为2时,提取定位状态信息,当VALID信号为高,则有效定位;当VALID信号为低,则无效定位;当逗号计数器为3时,提取纬度信息,存储在lat_data寄存器中;当逗号计数器为5时,提取经度信息,存储在lon_data寄存器中;当逗号计数器为9时,提取日月年信息,存储在data_dd_mm_yy寄存器中。程序设计的流程图如图3所示。

其主要代码如下:

3 仿真测试及硬件实现

根据编写的测试模块在ModelSim 6.2软件下进行了功能仿真,其仿真结果如图4所示,GPS_TX为输入的串行数据,rcv_data为接收的8位数据,hh_mm_ss为提取出时分秒信息:15:49:41,dd_mm_yy为提取出日月年信息:13.06.09,lat_data为提取的纬度信息:3409.3297,lon_data为提取的经度信息:10853.6986,从仿真波形上看,仿真的结果与测试激、励中的数据一致。

完成了仿真后,在Quartus II 9.0下进行了逻辑综合,将程序下载到Altera公司生产的CycloneII系列EP2C5T144C8型号的FPGA中,用Quartus II 9.0软件自带的嵌入式逻辑分析仪SignalTapII,对FPGA内部的信号进行观测,FPGA内部实际工作波形如图5所示,从硬件调试结果观测,实际测出的结果:年月日2013.08.19,时分秒00:07:42,纬度为3412.0714,经度为10856.6625。由于所测得时间信息为世界协调时间,北京时间与世界协调时相差8个时差,北京时间应修正为:08:40:09,所测得结果与本地的时间一致。

结果分析:从图4和图5波形上可以看到我们测试的结果,实际测试中,我们让整个解析过程连续工作12 h,没有发现解析错误、丢包等不正常现象。因此,大量测试结果表明,该模块能够正确的接收和处理导航信息。

4 结论

根据NMEA—0183协议格式,提出使用FPGA实现NMEA-0183信息解析的一种方法,仿真及实际测试结果表明,该电路能够正确地提取出所需要的信息,如时间、位置等信息,最终实现了GPS数据采集及处理等工作,为搜查救援、事故定位等工作提供了技术依据。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

现代生物医学仪器正在向着微型化、多功能化、系列化等方向发展 , 系 统 中 的 数 字 部 分 越 来 越 重 要 。 现 场 可 编 程 门 阵 列是一种新型可编程逻辑器件, 性能优良,应用于生物医学工程领域,可显著降...

关键字: 智能化 微型化 现场可编程门阵列

专注于引入新品推动行业创新的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售Intel® Agilex™ F系列现场可编程门阵列 (FPGA) 开发套件。

关键字: FPGA 贸泽 现场可编程门阵列

现场可编程门阵列(FPGA)的起源可以追溯到20世纪80年代,从可编程逻辑器件(PLD)演变而来。自此之后,FPGA资源、速度和效率都得到快速改善,使FPGA成为广泛的计算和处理应用的首选解决方案,特别是当产量不足以证明...

关键字: 集成电路 现场可编程门阵列

贸泽电子 (Mouser Electronics) 即日起备货 Microsemi的PolarFire™现场可编程门阵列 (FPGA)。此款基于闪存的中密度PolarFire FPGA提供300K的逻辑元件,...

关键字: FPGA 现场可编程门阵列 贸泽电子

本文提出了一种基于DSP+FPGA的嵌入式便携数字存储示波表的设计方案,充分利用微控制器技术和ASIC技术实现了嵌入式实时处理,很好地达到了体积小、重量轻、功能强、可靠性高的要求。

关键字: 存储技术 嵌入式设计 数字信号处理器 现场可编程门阵列 便携式数字存储示波表

文章中选用目前应用较广泛的VHDL硬件电路描述语言,实现对路口交通灯系统的控制器的硬件电路描述,在Altera公司的EDA软件平台MAX+PLUSⅡ环境下通过了编译、仿真和测试,验证了本设计的正确性和可行性,实现了对交通...

关键字: EDA 现场可编程门阵列 交通控制

EDA技术己成为现代系统设计和电子产品研制开发的有效工具,成为电子工程师应具备的基本能力,介绍EDA技术,可编程逻辑器件和硬件描述语言的基本概念,着重分析EDA技术的发展历程、主要内容和数字系统层次化设计方法及应用展望等...

关键字: 硬件描述语言 eda技术可编程逻辑器件 层次化设计方法

EDA是电子设计自动化(Electronic Design Automation)的缩写。它是一门正在高速发展的新技术,是以大规模可编程逻辑器件为设计载体以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程...

关键字: EDA技术 硬件描述语言 cpld/fpga开发

一、 嵌入式系统设计方法变化的背景嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动。1 随着微电子技术的不断创新和发展,大规模集成电路的集成度和工

关键字: ip内核 单片系统 嵌入式开发 硬件描述语言

一、 嵌入式系统设计方法变化的背景嵌入式系统设计方法的演化总的来说是因为应用需求的牵引和IT技术的推动。1 随着微电子技术的不断创新和发展,大规模集成电路的集成度和工

关键字: ip内核 单片系统 嵌入式开发 硬件描述语言
关闭
关闭