基于S3C2410的GPS通讯的实现
1 gps的基本介绍
gps(global positioning system,全球定位系统)是美国从20世纪70年代开始研制,历时20年,耗资200亿美元,具有在海、陆、空进行全方位实时三维导航与定位能力的新一代卫星导航与定位系统[1]。其地面监控系统的原理框图如图1所示。

1.1 gps定位原理
gps定位的基本原理是根据高速运动的卫星瞬间位置作为已知的起算数据,采用空间距离后方交会的方法,确定待测点的位置。如图2所示,假设t时刻在地面待测点上安置gps接收机,可以测定gps信号到达接收机的时间t,再加上接收机所接收到的卫星星历等其他数据可以确定以下4个方程式:
上述4个方程式中待测点坐标x,y,z和vt0为未知参数,其中di=cti(i=1,2,3,4)。di(i=1,2,3,4)分别为卫星1,卫星2,卫星3,卫星4到接收机之间的距离。ti(i=1,2,3,4)分别为卫星1,卫星2,卫星3,卫星4的信号到达接收机所经历的时间。c为gps信号的传播速度(即光速)。
4个方程式中各个参数意义如下:
x,y,z为待测点坐标的空间直角坐标。
xi,yi,zi(i=1,2,3,4)分别为卫星1、卫星2、卫星3、卫星4在t时刻的空间直角坐标,可由卫星导航电文求得。vti(i=1,2,3,4)分别为卫星1,卫星2,卫星3,卫星4的卫星钟的钟差,由卫星星历提供。vt0为接收机的钟差。
由以上4个方程即可解算出待测点的坐标x,y,z和接收机的钟差vt0。
目前gps系统提供的定位精度低于10m,而为得到更高的定位精度,通常采用差分gps技术:将一台gps接收机安置在基准站上进行观测。根据基准站已知精密坐标,计算出基准站到卫星的距离改正数,并由基准站实时将这一数据发送出去。用户接收机在进行gps观测的同时,也接收到基准站发出的改正数,并对其定位结果进行改正,从而提高定位精度。
1.2 gps主要用途
gps性能优异,应用范围极广。可以说,凡是需要导航和定位的部门,都可以采用gps。gps的建成和应用,是导航技术的一场革命,影响深远。其主要用途有:
(1)导航定位应用
gps是空中、海洋和陆地导航定位最先进、最理想的技术。他可以为飞机、舰船、车辆、坦克、炮兵、陆军部队和空降兵提供全天候连续导航定位。他是航天飞机和载人飞船最理想的制导、导航系统。为其起飞、在轨运行和再入过程连续服务。
(2)精密定位应用
应用gps载波相位测量技术,可以精确地测定两点间的相对位置,为大地测量、海洋测量、航空摄影测量和地球动力学测量提供了高精度、现代化的测量手段。gps已广泛应用于建立准确的大地基准、大地控制网和地壳运动监测网等。
(3)精密授时、大气研究
gps用户接收机通过对gps卫星的观测,可获得准确gps时。gps时与utc时是同步的,因此gps亦是当今精度最高的全球授时系统。一般接收机测时精度为100 ns;专用定时接收机可获得更高的精度,用于远距离时间同步可达ns级。由于utc时有跳秒,故gps时与utc时有已知的整数秒差。利用gps测定的电离层延迟和多普勒频移延迟,可用来研究电离层的电子积分浓度、折射系数、电子浓度随高度的分布,以及上述电离层参量在时间和空间上的相关性等。
(4)为武器精确制导
应用gps/ins组合制导系统时,gps不断修正导弹飞行中惯性导航误差,提高制导精度,增强武器的"精确打击"能力。在海湾战争中,gps为提高武器的命中精度,发挥了巨大作用,故被称为"效益倍增器"。
(5)航天与武器试验中的应用
gps在各类航天器定轨和导弹、常规武器试验中有着广泛的应用。gps可为各类卫星测定精密轨道。用差分gps完成飞船的交会和对接。在武器试验中,应用gps可精确测定弹道。他具有不受天气条件、发射场区、射向、射程和发射窗口的限制;可实现连续、全程跟踪测量,可跟踪低飞和多个目标,且精度高、费用低。
gps还可用于飞行器姿态测量。姿态测量采用gps载波相检测量技术。在卫星或其他航天器的适当位置上安装多副天线,用gps测定各天线的精确位置,从而确定航天器的姿态。
2 目标平台介绍
在本文中使用的目标平台s3c2410是samsung公司使用arm920t处理器内核开发的一款嵌入式处理器。s3c2410是samsung公司专门为pda,internet设备和手持设备等专门开发的微处理器。该芯片还包含有16 kb一体化的cache/mmu,这一特性使开发人员能够将linux和vx-work移植到基于该处理器的目标系统中。
该目标板的系统资源如下:
(1)cpu:s3c2410微处理器,工作频率为200 mhz;
(2)flash:16 mb;
(3)sdram:64 mb sdram;
(4)uart:rs 232串行接口;
(5)其他:14针arm jtag接口等;
(6)液晶显示屏。
在目标平台s3c2410上所选配的gps模块是gps15l/h。接口特性如下:rs 232输出,可输入rs 232或者具有rs 232极性的ttl电平。可选的波特率为:300,600,1 200,2 400,4 800,9 600,19 200。gps15与pc串口的连接见示意图(图3)所示。
串口输出协议:输出nema0183格式的ascii码语句,输出:gpalm,gpgga,gpgll,gpgsa,gpgsv,gprmc,gpvtg(nmea标准语句);pgrmb,pgrme,pgrmf,pgrmm,pgrmt,pgrmv(garmin定义的语句)。还可将串口设置为输出包括gps载波相位数据的二进制数据。输入:初始位置、时间、秒脉冲状态、差分模式、nmea输出间隔等设置信息。在缺省的状态下,gps模块输出数据的波特率为4800,输出信息包括:gprmc,gpgga,gpgsa,gpgsv,pgrme等,每秒钟定时输出,如3所示。

3 交叉编译环境的建立及程序的实现
基于linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主pc机所构成[2]。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主pc机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。
3.1 烧写linux内核等
通过串口,宿主pc机向目标开发板烧写vivi,经过裁减的linux内核以及根文件系统等,然后安装主编译器armv41-unknown-linux-gcc。
3.2 nfs服务器的配置
在本文中宿主pc机上装的是readhat 9.2,他默认的是打开了防火墙,目标开发平台无法用nfs mount。因此应先关闭防火墙,然后点击主菜单运行系统设置→服务器设置→nfs服务器(英文为:setup→system service→nfs),点击增加,在目录(directory)中填入需要共享的路径,主机(hosts);中填入允许进行连接的主机ip地址[3],并选择允许客户对共享目录的操作为只读(read-only)或读写(read/write)。
3.3 配置minicom
在linux操作系统xwindow界面下建立终端(在桌面上点击右键→新建终端),在终端的命令行提示符后输入minicom,回车,出现wincom的启动画面,然后按照提示设置即可。
3.4 编程和调试
在此交叉编译环境下,根据前面提到的gps定位原理,经过编程和调试,在目标平台的液晶显示屏上可显示本地的地理位置信息。
注意,gps的天线要放在能良好接受室外信号的地方,比如说窗台等。否则可能接收不到信号。
4 结语
本文介绍了gps定位的工作原理及其在s3c2410上的实现方法,在车载gps系统及其他导航系统中有很多的应用前景。
评论