阅读:2174回复:1
嵌入式GPS定向系统的研究与实现
夏晖1,杨东凯1,陈新2<br>(1 北京航空航天大学电子信息工程学院,北京,100083)<br>(2 北京时空港天地科技有限公司,北京,100038)<br>摘要:描述了利用载波相位差分法计算载体航向角的方法.基于这种方法,设计了一套嵌入式GPS定向系统.该系统以PC/104嵌入式主板为数据处理核心,使用两套独立的GPS接收设备,包括GPS OEM板和GPS天线,在GPS基线长固定的条件下以载波相位差分法解算载体的航向角.并将嵌入式Linux,多线程技术应用到GPS定向系统的研究中,提高了系统的稳定性和工作效率,降低了系统的成本.试验证明该设计方案可行.<br>关键词: GPS定向;载波相位;嵌入式Linux;多线程技术<br>中国分类号:P228<br>Research and realization of embedded GPS-based direction determination system<br>Xia Hui1, Yang Dongkai1, Chen Xin2<br>(1 School of Electronics and Information Engineering , Beihang University , Beijing 100083 , China)<br>(2 Beijing Spatial Port Geosystems Co Ltd , Beijing 100038 , China)<br>Abstract: A method of calculating heading angle of carrier using carrier phase differential is described. Based on this method, an embedded GPS-based direction determination system is designed. With PC/104 embedded motherboard as the data processing core, the system use two sets of GPS receiver, including GPS OEM boards and GPS antennas, to calculating heading with the method of carrier phase differential. The embedded Linux and multithread technical are applied to the system. The experiment results prove the feasibility of the proposed design.<br>Key words: GPS-based direction determination; carrier phase; embedded Linux; multithread technical<br>前言<br>航向信息对于船舶和汽车导航都是十分重要的.一直以来,船舶都使用磁罗经和陀螺罗经获得航向信息,以控制船舶在大海中沿着航线行驶,一旦船舶无法获得准确的航向信息,船<br><br>就会偏航,无法正确到达目的地,那将是十分危险的.陀螺罗经精度较高,但是其造价昂贵,一般小型船舶难以承受,而且存在累计误差;磁罗经虽然价格便宜,但是其精度较低,而且无法直接输出电信号,不易与自动操舵装置集成.而GPS定向系统是实时测量系统,不存在累积误差,体积小,易集成,造价比陀螺罗经要低很多;与磁罗经相比,GPS定向系统精度要高,而且可以直接输出电信号,用于自动操舵.因此GPS定向系统可以在船舶导航,特别是小型船舶导航中发挥重要的作用.在陆地汽车导航中,随着世界性零事故目标的提出,对车辆运动状态信息的获取提出更高的要求,精确车辆航向信息对于车辆自动驾驶系统和自动防撞系统都是必不可少的.<br>本文以GPS OEM板,GPS天线,PC/104嵌入式主板,嵌入式LINUX操作系统和定向软件实现了一整套独立的GPS定向系统.该系统可广泛用于船舶及车辆导航,输出精确的航向信息.<br>GPS定向原理<br>GPS 定向是依靠GPS基线矢量在载体坐标系和本地坐标系中的相互关系来确定载体的空间方向.GPS基线矢量指两GPS天线相位中心连线构成的矢量.用与两GPS天线分别相连的GPS 接收机同时测定GPS 卫星载波信号的瞬时相位,比较其相位差, 则可以测定基线的空间方向.这种方法就是定向的载波相位差分法.<br>如图1 所示,由于基线长度相对于天线到卫星的距离很短, 因此, GPS 卫星信号可以看作平面波.则有:<br>(1)<br>式(1)中: 表示卫星i到接收机A的载波相位整周模糊度,表示接收机A对卫星i的载波相位观测值,表示接收机到卫星i的单位向量,表示载波波长,表示测量噪声.<br>式(1)就是单差相位观测方程.单差可以消除电离层,对流层误差以及卫星钟差,为了进一步消除接收机钟差,组成双差观测方程:<br>(2)<br>式(2)中,如果知道了整周模糊度,则可以通过最小二乘法得到基线的矢量解,通过坐标变换即可求解出载体的方位角.<br>本文所实现的系统使用两个GPS天线组成一条测量基线,两个GPS OEM板接收载波相位,利用载波相位差分法,计算出载体的航向角.<br>系统构成<br>本GPS定向系统主要由GPS接收部分,数据处理硬件系统,数据处理软件系统组成.GPS接收部分和数据处理硬件系统组成了系统的硬件部分,如图二所示.<br>3.1, GPS接收部分<br>GPS接收部分包括两个GPS测量型天线,两个GPS OEM板.两GPS天线用钢性连杆连接支撑,以保证测量基线长度不变.天线和OEM板之间以电缆连接,供电和传输信号.GPS OEM板上的TTL串口通过串口转换板与PC/104嵌入式主板上的RS232串口相连,将GPS OEM板输出的各种GPS原始数据,如SNV,MCA,PBN,输入给PC/104嵌入式主板,作为定位软件的数据输入.<br>3.2,数据处理嵌入式硬件系统<br>GPS定向系统是一个实时系统,要求至少1HZ的数据输出刷新速度,所以数据处理硬件系统核心部分要求数据处理能力强大,能满足实时要求.同时,定向系统作为一个可能用于汽车,船舶甚至航空器等各种不同环境的独立的设备,要求硬件体积小,结构简单,可靠性高,功耗低.<br>基于以上考虑,数据处理硬件系统的主体采用PC/104嵌入式主板,该板包括PII级别低功耗CPU,在板内存,提供3个RS232串行接口,以及并口,DOC接口,CRT接口等.主板除能满足性能上的要求之外,其系统架构是x86系统架构,与PC机一致,因而可以大幅度降低开发成本,缩短开发周期,同时也减少了系统维护和技术支持的难度.<br>系统采用DOC电子硬盘作为系统外存,可满足系统便携性和在恶劣环境下工作的可靠性要求.DOC电子硬盘通过DOC接口与嵌入式主板连接.<br>嵌入式主板通过并口外接一块点阵LCD,实时显示定向结果.<br>另外,系统还通过一个RS232接口与PC机相连,通过此接口,系统可以将处理结果实时送给PC机,PC机可对数据作进一步的处理,以更加详细的方式显示出来,同时PC/104嵌入式主板也可以接收PC机发送的命令,用于系统设置,数据导出等.<br>3.3,数据处理软件系统<br>数据处理软件系统是定向系统的核心,它包含嵌入式操作系统和定向软件两部分.<br>3.3.1,嵌入式Linux操作系统<br>本定向系统选择嵌入式Linux作为操作系统.相对于其他操作系统, Linux源代码开放,不存在黑箱技术,免费,可以有效的减少系统成本;内核高效稳定,又小巧灵活,同时Linux支持POSIX多线程技术,可以有效地协调众多硬件模块的运行.但是由于本文所设计定向系统属于嵌入式系统,资源有限,特别是二级存储设备采用的是DOC电子硬盘,存储空间有限,所以必须针对特定的嵌入式硬件定制Linux操作系统,以保证系统能在硬件资源受限的情况下良好运行.<br>定制嵌入式Linux操作系统主要包括以下几个方面:<br>选择合适的Linux内核,针对本系统特定的硬件编译.本文所设计的定向系统选用版本号为2.4.18的内核,根据本硬件系统选择合适的CPU类型,加入对串口,并口的支持,去除不必要的内核功能,进行编译,使内核在满足需求的情况体积最小.<br>创建文件系统.首先要用将一块已安装好Linux操作系统的硬盘挂载到PC/104嵌入式主板上,并设置从该硬盘启动,进入系统后,安装DOC厂家所提供的驱动程序.待识别出DOC设备后,对DOC进行分区.本系统将DOC分为两个分区,系统分区存放Linux操作系统以及定向软件.此分区采用ext2文件系统,并将分区设为只读,以防止在恶劣环境下发生意外掉电而对操作系统和定向软件的损坏,造成系统无法正常工作.用户分区用于存放解算结果以及GPS原始数据.由于DOC属于Flash设备,擦写次数有限制,为了延长DOC设备的寿命,用户分区采用了JFFS文件系统,该文件系统采用了优化算法,可以保证操作系统对DOC设备的写入是平均的,而不是集中到设备的某一部分.<br>安排root文件系统.合理的安排root文件系统是将控制系统大小的关键,本系统采用了BusyBox这一软件来代替bin和sbin目录下的部分可执行文件,可以有效地减少操作系统的体积.然后拷入系统需要的的重要配置文件和设备文件,以及定向软件所用到的库文件.<br>安装BootLoader.BootLoader会在定向系统加电的时候找到Linux内核,顺利地启动系统.为了使系统支持从DOC启动.本系统采用DOC厂商所提供的dlilo作为BootLoader.经过上述步骤,本定向系统所采用的Linux操作系统可以流畅的运行在上述PC/104嵌入式主板上.<br>3.3.2,定向软件<br>定向软件以C语言开发,采用模块化设计的方式,如图三,整个软件分为六个模块.模块与模块之间通过良好定义的接口连接.GPS数据接收模块1和2负<br>责从RS232串口读取GPS OEM板发送的SNV,MCA,PBN等GPS原始数据,并对原始数据做前期的处理,同时通知定向解算模块该周期的数据前期处理完成.<br>定向解算模块负责解算GPS数据接收模块发送过来的数据得到载体的方位角和俯仰角以及各种误差数据.其核心是定向解算算法,本系统的定向解算算法使用了单历元精密相对定位方法,图四显示了定向解算算法的粗略流程.<br>LCD显示模块负责驱动点阵式LCD,把定向解算模块的输出结果显示在LCD上.模块使用inb(),outb()端口指令完成对点阵LCD的控制.为了使显示更加直观,模块采用了点阵LCD的图形模式,把方位角度转化为图形显示在LCD上.<br>与PC机通讯模块负责将定向解算模块的结果通过RS232输出到PC机,并可以接收PC发送的命令,完成调试,输出历史数据,关机等动作.<br>DOC数据备份模块负责将定向结果以及部分GPS原始数据作为历史数据存储到DOC中,以备事后处理需要.<br>因为定向系统要求1HZ的数据刷新率,所以各模块之间的数据通信与同步是数据处理顺利完成的前提.在实际实现中,采用多线程编程的方法,每个模块以单独的线程实现,各线程之间可以共享内存空间,因此不会因为数据通信而产生额外的系统开销.在GPS接收模块和定向解算模块之间定义结构变量A1,A2,定向解算模块与LCD显示模块,与PC机通信模块,DOC存储模块之间定义结构变量B1,B2,B3,作为各模块之间的通信接口.GPS接收模块1,2接收一组数据,写入A1,A2,之后定向解算模块读取A1,A2,进行定向解算,得到的结果写入B1,B2,B3,LCD显示模块,与PC机通信模块,DOC存储模块分别读取B1,B2,B3,执行相应操作(如图三).<br>在实现中,使用互斥锁和条件变量来实现模块之间的数据同步.首先创建互斥锁Mutex_A1,Mutex_A2,条件变量Cond_A,变量Flag_A1,Flag_A2,对GPS接收模块1来说,在写入A1时,应保证定向解算模块已经读取A1中的上一组数据.所以先锁定互斥锁Mutex_A1,判断Flag_A1是否为0,为0表示A1中的数据已被读取,写入下一组数据,Flag_A1置1,并发出Cond_A1线程唤醒信号,通知阻塞在Cond_A1上的定向解算线程A1已经写入新一组数据,解锁Mutex_A1;否则利用条件变量Cond_A将该线程阻塞,Mutex_A1解锁,等待唤醒,然后重新判断Flag_A1.对定向解算模块来说,在读入A1,A2时,应保证GPS接收模块已写入新一组数据.所以先锁定互斥锁Mutex_A1,Mutex_A2,判断Flag_A1,Flag_A2是否均为1,均为1表示A1,A2已写入新的数据,则读取A1,A2,进行数据解算,并对Flag_A1,Flag_A2清零,发出Cond_A1线程唤醒信号,通知阻塞在Cond_A1上的GPS接收线程A1已经被读取,可以写入新一组数据,然后解锁Mutex_A1,Mutex_A2;否则利用条件变量Cond_A阻塞该线程,Mutex_A1,Mutex_A2解锁,等待唤醒,重新判断Flag_A1,Flag_A2.<br>试验结果及分析<br>为了对定向系统的数据解算结果进行分析,在静止状态下对系统进行实验,天线及支架固定在未发动汽车的车顶,基线长度为1m,卫星可见数8到10颗,实验时间为10分钟,图五显示静止状态下解算出的方位角.从图中可以看出,系统解算出来的方位角在275.5度到276.4度之间漂移,跨度为0.9度,使用公式<br>计算这组数据标准偏差为0.1673度.<br>由以上的分析可以看出,定向系统的方位角解算精度在可接受的范围内,但与惯性陀螺系统相比较还有一定的差距,这与系统所采用的GPS接收机非专业测量型接收机有关,另外,车顶属于金属表面,多径干扰比较严重,对天线的抗多径性能有较高的要求.如果更换较好的接收设备,定向解算精度和稳定性都会有进一步的提升.<br>结束语<br>本文所实现的GPS定向系统在硬件上采用了PC/104嵌入式主板,结构简单,可靠性高,在软件的实现中采用了嵌入式Linux,多线程编程机制.试验结果表明,本系统各项性能良好,以后考虑采取措施增强系统的抗多径干扰的能力,以获得更好的工作性能.<br>参考文献<br>[1]陈俊宏.Embedded Linux嵌入式系统原理与务实[M].北京:中国铁道出版社,2004.<br>[2]魏子卿,葛茂荣.GPS相对定位的数学模型[M].北京:测绘出版社,1998.<br>[3]蒋浩宇,富立,范跃祖.基于OEM板的GPS罗盘设计[J].航天控制,2005,Vol.23:83-91.<br>[4]张浩,黄晓瑞.单频GPS定向系统研究[J].遥测遥控,2004,7:5-8.<br>
[此贴子已经被作者于2007-4-18 21:42:02编辑过]
|
|
|
1楼#
发布于:2007-04-21 20:36
感谢<STRONG>帝国</STRONG>总统的辛勤劳动
<P> 支持</P> |
|