EDN China > 设计实例 > 可编程器件 > FPGA > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

(多图) FPGA与GPS-OEM板的串行通讯系统设计

陈石磊 刘贵喜 向国华?? 2008年12月01日 ?? 收藏0

  0 引言

  全球定位系统(Global Positioning System简称GPS)是美国第二代卫星导航系统。它是在子午仪卫星导航系统的基础上发展起来的,GPS能提供全天候、连续、实时高精度导航参数,可实现三维定位,并可提供精确的时间信息。GPS系统由空间部分、地面监控部分和地面接收机部分组成。GPS定位技术的基本原理是利用测距交会定位的方法。用户接收机接收到卫星发播的信号并利用本机产生的伪随机噪声码取得距离观测量和导航电文:再根据导航电文提供的卫星位置和钟差改正信息来计算接收机的位置。由于GPS具有全球覆盖以及精度高、定位速度快、实时性好、抗干扰能力强等特点。近年来,GPS在国内外得到广泛的应用,并在各个领域发挥了极大的作用,已成为信息时代不可缺少的一部分。然而,GPS定位接收机价格比较昂贵,而且难以满足特定条件下的应用需求。因此,众多用户期望按照自己的使用环境和性能要求来设计和使用个性化的GPS定位接收机。出于电路面积、占用空间以及电路稳定性和可靠性等因素的考虑,本设计选择现场可编程门阵列(FPGA)来实现GPS信号的接收、提取以及存储。

  1 OEM板的工作原理和通讯协议

  1.1 OEM板的工作原理

  GPS信号接收机的任务是捕获按一定卫星高度截止角所选择的若干待测卫星的信号,并跟踪这些卫星的运行。然后对所接收到的GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间,再解译出GPS卫星所发送的导航电文.最后实时计算出观测站的三维位置、三维速度和时间等。

  GPS-OEM板是GPS接收机的核心部件。该电路板具有接收GPS信号、处理信号、输出观测信号和定位结果等功能。用户利用OEM板进行二次硬件开发可研制成各种应用的GPS接收机。现以GARMIN公司的GPS25 OEM板为例,该板作为GPS接收机的主要组成部分,可接收来自天线单元的信号,并通过变频、放大、滤波等一系列处理过程,从而实现对GPS卫星信号的跟踪、锁定、测量,最后产生计算位置的数据信息(包括:纬度、经度、高度、速度、日期、时间、航向、卫星状况等),并由RS-232标准串口输出串行数据,该OEM板为12通道的GPS接收机,可以同时跟踪多达12颗GPS卫星,并可连续追踪GPS卫星,以实现快速定位。

  最终用户可以使OEM板工作在出厂设定的默认状态,此时无需设置输入语句。但要使用GPS的信息,则必须通过输出语句来获得。

  1.2 GPS-OEM板通信协议

  GPS-OEM板的型号甚多、性能各异,但它们的GPS定位信息串行输出格式大多采用美国国家海洋电子协会制定的NMEA-0183通信标准格式。其输出数据采用的是ASCII码,数据格式设置为1个起始位,8个数据位,1个停止位,无奇偶校验。输出默认波特率为4800 baud。内容包含纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息.常用语句有6种,包括GGA、GLL、GSA、GSV、RMC和VTG。一般应用只关心其时间、经纬度、地面速度信息等,因此,通常采用GPRMC最小定位信息来获得所需信息。不过要注意,这些设置信息只在系统本次上电,并进行设置后才有效。每次重新上电时均需重新设置。NMEA-0183通信标准格式如下:

  $<地址区>,<数据区>,<数据区>,…<校验区>,<CR><LF>

  其中: "$"为语句起始标志; "地址区"为识别符; "数据区"为发送数据内容; ","为数据区分隔符; "校验区"内为校验和;<CR><LF>为语句结束符。

  下面以GPRMC语句为例来介绍。该语句包含时间、日期、方位、速度和磁偏角等信息,基本上可以满足一般的导航需求。GPRMC语句的结构为:$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<lO>,<11>,*hh<CR><LF>。其中, "GP"为交谈识别符, "RMC"为语句识别符;"*"是检验和识别符。 "hh"是校验和,它们代表了"$"与"*"之间所有字符的按位异或值(不包括这两个字符)。

  $GPRMC语句数据区的内容如下:

  (1)UTC时间,hhmmss(时分秒)格式

  (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(西)

  实际应用中,一般只需提取时间和位置信息,并对定位数据的有效性进行验证。

  2 串行通信系统的设计

  2.1 系统通信原理

  由于FPGA接口采用TTL电平,而OEM板的串行通信采用RS-232标准电平,故需电平转换,电平转换接口可以通过MAX202芯片来实现。GPS25有两个串行口,其端口1可用来输入差分修正信息和输出卫星的原始测量信息,而端口2则用来输入设定语句和输出定位语句,因此,只需将FPGA接口与GPS25串行口2对应连接即可.其接口电路如图l所示。FPGA的全局时钟Global_clk由24 MHz的晶振产生。

接口电路

  2.2 OEM板的个性配置

  当FPGA模块完成开机上电后.其中的异步串行发送电路将发送用户制定的配置语句,以对OEM板进行个性化的设置。

  由于GPS25的默认波特率是4800 bit/s。故应将FPGA中异步串行发送电路的波特率时钟也设置为此值,具体可通过对系统的全局时钟进行分频来实现,发送完结束标志符后,FPGA中的定位信息接收读取电路即可开始工作,并等待数据的接收。本例用$GPRMC语句接收OEM板的定位信息,如果应用系统有特殊要求,还需要进行初始化、配置以及对输出语句进行选择。应该注意的是,NMEA-0183格式中的校验和无需发送。

  初始化可用$GRMI语句来实现,其结果是:

公式

  其中,<1>~<4>项用以设置地理位置,它们的格式与$GPGGA语句的对应项相同,第<5>项为UTC日期,格式为"日日月月年年",第<6>项为UTC时间,格式与$GPGGA语句相同,第<7>项中,A=自动定位,R=设备复位。

  OEM板的配置可利用$PGRMC语句来完成。该语句共有14个有效项,其中第<10>项选择波特率,1~7分别代表标准波特率300~19200,配置时,可以用空项表明保持原配置项不变。例如,配置为9600波特、输出秒脉冲时,其则语句为:

公式

  GPS25的输出语句共有10多条,默认的输出语句为$GPGGA等5条。用户对输出信息的设定可以通过$PGRMO语句实现。其结构是:

公式

  其中,<1>为合法语句名,如GPRMC;<2>为语句状态,1表示禁止该语句输出,2表示允许该语句输出,3表示禁止所有语句输出,4表示允许所有语句输出。

  例如,下列输入语句只允许OEM板输出$GPRMC语句:

  $PGRMO,3<CR><LF>;禁止所有语句输出。

  $PGRMO,GPRMC,2<CR><LF>;允许$GPRMC语输出。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

FPGA? 串行通讯? GPS?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈