微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 北斗二代导航接收机的卫星导航系统设计

北斗二代导航接收机的卫星导航系统设计

时间:10-10 来源:互联网 点击:

e.JPG


主控模块完成硬件的初始化、调用北斗定位模块和GPRS通信模块提供的函数、调用LCD显示模块以显示运行状态信息。
3.3 北斗定位模块程序设计
UM220模块输出的定位信息符合NMEA-0183通信标准格式,其输出数据采用的是ASCII字符组成的字符串,包含了经度、纬度、速度、时间、日期及卫星状况等信息。消息的基本格式为:
$MSGNAME,datal,data2,data3,…\r\n
NMEA—0183协议中最常见的几种格式有GGA、RMC、GSV、VTG。用户可根据需要选用某种数据句型。本系统将采用BDRMC数据格式。
北斗定位模块程序的设计首先判断所收到的数据是否为RMC记录,如果是则对BDRMC字段进行解析并保存数据,即只接收该语句即可。
$BDRMC数据格式如下所示:
$BDRMC,1>,2>,3>,4>,5>,6>,7>,8>,9>,10>,11>,12>*13>CR>LF>
其中1>~12>字段分别表示固定位置的UTC时间、是否有效、纬度、纬度半球、经度、经度半球、地面速度、地面方位、固定位置UTC日期、磁偏角、磁偏角方向、模式指示。
接收数据前,要先对串口进行配置,Linux下串口的配置信息大部分都保存在termios结构体中,可以直接使用Linux API提供的接口或通过掩码设置相关数据位进行串口的配置操作,具体操作在这里不再一一赘述。
开始接收数据时,若从串口读入的不是“$”,则说明接收错误,重新接收数据;若等于“$”,则接收正确。开始接收,再次判断缓存,若接收的是“$BDRMC”语句,则开始将北斗数据存入Beidou_data[]数组中,最后仍判断串口接收缓存。接收到“A”说明此次定位是有效的,若接收到“N”则释放缓存,重新接收。由于北斗定位数据以“*”为分隔符,接收到字符“*”,即当缓存等于“*”的时候,说明北斗定位信息接收完毕。其程序流程图如图6所示。

f.JPG


3.4 GPRS/GSM模块设计
GPRS/GSM模块负责接收远程信息并且传送定位信息。对短消息的控制共有3种实现途径:Block Mode、基于AT命令的Text Mode和基于AT命令的PDU Mode。使用Block Mode需要厂家提供的驱动支持。Text Mode比较简单,但这种模式只能发送ASCII码,不能发送中文的Unicode码。PDU模式是发送接收短信息的一种方法,短信息正文经过十六进制编码后被传送。目前PDU已取代Block Mode,因此本文主要讨论PDU模式。
在PDU模式中,有三种编码方式来对发送的内容进行编码,它们是7位、8位和UCS2编码。7位编码用于发送普通的ASCII字符,8位用于发送数据信息,UCS2编码用来发送Unicode字符。所以当发送含有中文的信息时,只能使用Unicode编码。GPRS/GSM模块程序设计流程图如图7所示。

4 测试结果
系统各模块正确连接后,LCD能够正确显示定位信息,图8为北斗模块输出的ASCII信息。图9为LCD显示的经纬度信息。

g.JPG



结语
卫星导航定位系统被广泛应用于国防、通信等各领域。本系统将嵌入式技术、卫星导航系统、GPRS无线通信技术相结合,成功实现了北斗定位与GPRS通信为一体的嵌入式定位设备。在项目设计中,以嵌入式系统开发流程为依据,通过进行需求分析,制定了合理的系统软硬件功能划分,分析了软件系统和硬件系统设计,完成了设备的研制。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top