摘要:随着卫星导航系统运用的日益深入,对导航终端的信息处理能力、便携性以及交互性提出了更高的要求。针对当前市面上的主流导航定位终端大多对他国依赖程度很高,而基于北斗导航系统的终端由于体积大、能耗高、价格贵等因素,推广应用并不理想的问题,提出了在嵌入式操作系统基础上,利用北斗导航系统实现定位,设计的一种移动导航定位终端。
关键词:北斗导航系统,嵌入式系统,Linux,无源定位,算法
中***分类号:TN965文献标识码: A
引言
随着空间信息技术的发展,卫星导航系统的运用日益深入。伴随计算机硬件技术与通信技术的进步,对导航终端的信息处理能力、便携性以及交互性提出了更高的要求。但是,当前市面上销售的主流导航定位终端大多基于GPS系统,对他国依赖程度很高。另外,基于我国的北斗导航系统的终端由于体积大、能耗高、价格贵等因素,推广应用并不理想。针对这一问题,笔者设计了在嵌入式操作系统基础上,利用北斗导航系统实现定位的一种移动导航定位终端。
背景及意义
自20世纪90年代以来,全球卫星导航系统以其速度快、效率高、测量定位精度高等特点,深受各个行业数据采集和资源监测人员的青睐。卫星导航系统的出现,解决了大范围、全球性以及高精度快速定位的问题。其应用范围已经渗透至国民经济和社会发展的各部门、各领域、各行业[1]。目前,正朝着集成度不断提高、用户更加广泛、使用更加便捷的方向发展。但是,国内使用基于GPS的定位导航系统将受制于美国的***策,一旦在紧要关头,特别是在战时,美国有针对性地限制或关闭对我国的应用,后果将不堪设想。
为此,我国自主研制了“北斗卫星导航系统”,标志着我国成为世界上第三个拥有自主知识产权卫星定位导航系统的国家,打破了美国等发达国家垄断卫星定位导航技术的局面,大大推进了我国信息基础设施建设,提高了我国的经济社会和***事信息化的水平。
笔者设计的移动导航终端由通信模块、定位模块、地***显示、地***搜索、电子地***以及系统维护模块组成,可实现定位、地***查询、路径选择等多种功能。终端采用嵌入式主板ARM8010作为设计母板,搭载Samsung公司的S3C2410处理器作为主控芯片。在此基础上,采用威科姆科技的北斗接收模块BD-7700和Fidelix公司的CDMA通信模块FD810,用于获取卫星信号和网络通信。通过各个模块的处理软件设计,实现终端的完整功能。
设计方案
总体规划
该导航定位终端针对移动式应用而开发,具有重量轻、体积小、交互友好、安全性高等特点,具有***的操作系统和***形化的人机界面,可以进行全天候的准确定位和安全通信。其系统结构***见***1。
***1 移动导航定位终端系统结构***
用户界面:此模块以表单或字符输入方式接受用户指令,并以***形或文字方式返回数据。
通信:向总部发送信息,接收卫星信号。
定位:根据用户选择的定位方式得到当前坐标。
地***显示:显示区域地***、用户当前所在位置。当用户进行方向选择、动态移动、拉近拉远等动作时,进行相应的变化。
地***搜索:根据用户输入某一地点的信息,找到该点并显示出来,或者在用户输入出发地和目的地后,通过路由算法找到最短路径,并在地***上显示。
电子地***:存储地***文件。
加密:使用AES算法对发送数据进行加密。
系统维护:对导航终端所进行总体设置,定期备份、更新地***数据,提供所有的地***文件***接口,设置用户各种操作权限,在软件出现新版本是出现版本更新提示。
硬件设计
核心的主控制器要应对实时路径规划、数据定位处理等实时性的计算任务,同时,为了实现人机交互功能,主控制器需要具备丰富的I/O接口[2]。根据这些要求,选择Samsung公司的S3C2410处理器。其是一款Samsung公司为手持终端设计的低价格、低功耗、高性能的处理器,运行频率可达203 MHz,支持TFT的LCD控制器,NAND闪存控制器,具有3路UART,Touch Screen接口,SD主机和MMC接口,4路DMA等丰富的I/O接口。
S3C2410的串口UART2和UART3分别与CDMA模块、北斗卫星接收模块通信[3,4],在实际通信时两路连接都加有LVTTL电平到RS232电平的转换电路。扩展的Flash存储器可用于存放嵌入式Linux操作系统及应用程序代码,扩展的SDRAM主要用作系统的内存。
CDMA模块是整个系统的通信基础,采用Fidelix公司的CDMA通信模块FD810。该模块符合IS-95A/B与CDMA2000 1x-RTT技术规范,支持CDMA2000 1X无线数据传输。高速上下行速率与大缓存,数据传输速率高达153.6 kb/s,可通过AT命令远程控制内置TCP/IP协议堆栈。DTGS-800与AT91RM9200通过串口UART2实现数据的收发和AT指令的操作。
卫星信号的接收采用威科姆科技的BD-7700北斗接收模块,其功耗低、重量轻、尺寸小,可跟踪3颗卫星,处理6个波束数据,捕获时间<2 s,授时精度≥30 ns,可输出时间信息、精度、纬度、高程以及接收状态信息。
此外,通过S3C2410处理器的其他接口,完成显示屏、键盘、存储设备的接入,其硬件结构见***2。
***2 移动导航定位终端硬件结构***
操作系统设计
嵌入式Linux系统只需引导程序、Linux微内核、初始化进程3个基本元素。移植嵌入式Linux,就是使实时内核能在其他处理器(CPU)或微控制器(MCU)上运行。将嵌入式Linux移植到S3C2410平台上,需要4个步骤:***源码和建立交叉编译环境,配置编译内核,制作文件系统,***和调试内核[5,6]。
理论设计计算
无源定位算法
首先,利用接收机终端同时接收3颗卫星的测距码信息,得到测站点到3颗卫星的伪距D1,D2,D3,并用测高仪量测测站点的海拔高度H0,设观测值矢量为l=(D1, D2,D3),待定点坐标为r=(x,y,z),待定点初始坐标r0=(X0,Y0,Z0),卫星1的坐标为r1=(Xs1,Y s1,Z s1),卫星2的坐标为r2=(Xs2,Y s2,Z s2),卫星3坐标为r3=(Xs3,Y s3,Z s3),利用接收机终端进行自主定位,须要考虑接收机时钟和卫星时钟的差值,设差值为∆t,则根据测距码所得到的距离
(1)
(2)
注:a0为参考椭球体长半轴,e为参考椭球体第一偏心率
(3)
根据以上分析,需要求解4个未知数:X,Y,Z和∆t,而实际可以得到3个伪距观测值和1个高程值,因此,可以求得这4个未知数。具体解算时,可先利用式(2)把式(1)中坐标转换成经纬度和高程表示,同时,把用测高仪量测的高程数据代入方程,并与式(3)联立。然后,进行迭代计算,即可求出测站的坐标,最后再利用(3)式便可以把坐标转换成测站的经纬度值[7]。
路由选择算法
在地***文件的节点信息已知的情况下,采用Dijkstra算法计算最短路径,其基本思想是按照路径长度递增的方式,利用贪心策略,求得从起始地点到目标节点的最短路径。针对嵌入式系统处理器运算能力有限的缺陷,采取空间换时间的思想,进行改进。
首先在内存中建立一个有序表T,用来记录节点的编号和距离,在传统算法进行到第二步时,将已取得标记的节点和其相连的节点(包括存储在T表中的节点)的距离L计入到有序表T中,进行临时性标记,直到所有相连节点都扫描完成。然后将有序表中的第一项记录(即距离最短节点)作为永久标记节点[8],并将其从表T内删除。然后在没有标记的节点中按照上述步骤继续搜索。这样就大大减少了重复计算未标记节点所带来的巨大计算量。
工作原理及性能分析
工作原理
初始化系统各功能部件,如果发现异常则报警提示并退出;
选择定位模式。如,选择有源模式,终端在不断收到控制站出站信号的前提下,以出站信号中的帧时标为发射启动时间基准,根据指定协议发射定位申请等入站信号;
入站信号经卫星转发到控制站,控制站进行定位处理之后,把定位数据由卫星发往终端,从而实现定位功能。
在无源定位模式下,终端通过北斗卫星的接收模块获取卫星信号,根据卫星的测距码信息,由终端自带的定位模块解算当前位置。
启用地***导航。通过有源或无源模式获取当前终端位置信息后,坐标数据传递到地***显示模块。地***显示模块调用地***文件,将坐标数据载入,显示当前终端所在位置。
当用户选择地***查询功能时,地***搜索模块根据用户输入的地名信息,在地***文件中检索。如地***匹配成功,则在地***显示界面上予以标识,并漫游至此处;若未能找到,则返回并告知用户。
当用户选择路径查找功能时,地***搜索模块根据起始点信息,通过路由算法进行最短路径计算,并将路径显示于地***上;如果由于信息不足无法完成,则返回告知用户。
在此过程中,用户可选择是否向服务器返回当前位置信息。如果选择返回终端位置信息,则终端将信号加密后,通过发送接收模块向网络发送坐标数据,告知总控制台当前终端位置。
性能分析
在综合考虑硬件运算和软件算法设计的情况下,拟定终端的工作基本要求。
初始化:从启动终端到显示用户界面的响应时间拟定为5 s;
定位:在无源模式下,通过终端自身解算,精度在纬度方向达到58 m,经度方向达到±4.3 m[9];
地***显示:用户进行方向选择或拉近拉远操作要求地***和操作基本同步,响应时间拟定为5 ms;
路径搜索:用户搜索路径的响应时间拟定为20 s;
发送:从启动通讯模块到向服务器发送完毕当前位置信息时间小于10s;
系统维护:对地***数据进行备份时间<5 min。
目前,已在移动导航定位终端上实现了地***显示、路径搜索以及电子地***存储功能,在微机上实现了无源定位算法。实验表明,地***显示、搜索响应时间已达到设计要求,而无源定位的精度则远未达到设计要求,有待进一步改进,并需移植入终端。在终端的功能集成方面,仍有大量工作等待完成。
创新点及应用
创新点
定位方式:提供有源定位和无源定位两种方式。在有源模式下,终端向地面控制站发送定位请求,由地面控制站根据终端发送的信号解算终端所在位置,并向终端发送定位数据,定位具有较高的精度。在无源工作模式下,终端根据北斗卫星接收模块数据,使用自带的定位解算软件完成。无缘工作模式的精度低于有源模式,但无需与控制站进行通讯,隐蔽性与时效性较好。正对不同的用途,用户可自由选择工作模式。
路径选择:在采用矢量地***数据的基础上,采用Dijkstra算法进行最短路径的计算,并针对嵌入式系统对该算法进行改进,能够快速为用户制定出出行路线,提供了更为强大的导航功能。
加密:AES算法是当前加密算法中安全性很高,能抵抗现有己知的攻击方式。同时,其编码紧凑、设计简单、运算速度快,非常适合于嵌入式系统的数据加密工作。终端采用AES算法对用户向服务器的发送数据进行加密,可有效保证用户的数据安全[10]。
应用
笔者设计的移动导航定位终端在嵌入式操作系统的基础上集成北斗定位系统,同时发挥有源定位和无源定位各自的特长以实现不同要求的定位,并利用了成熟的路由算法实现快速导航的功能,这样的用户终端更为人性化,用户可以根据自己的需要选择终端的工作模式把快速和精准结合起来,达到更高的效率。这样的终端由于集成了不同的算法,适用性更加广泛,很容易推广,可以用于大地测量、商业物流管理土建工程、考古、个人移动电话定位、城市管理、社会治安综合治理、电子商务、农林业管理、灾害和突发事件控制、通信行业的时间同步测控,也可以用于交通运输部门营建监控系统、公安和银行等营建紧急救援或报警系统。
参考文献
[1]/2008/04/2211134676.shtml.2008.4.22.
[2]Craig Hollabaugh. Embedded Linux:Hardware,Software and Interfacing. Pearson Education, 2002.7-21.
[3] 苏丽华,赵可萍,崔胡.基于嵌入式ARM—LINUX的GPS智能终端设计[J].现代电子技术,2009(12):25-27.
[4] 潘永才,鲁启华.基于S3C2410的GPS通讯的实现[J].现代电子技术.2006(15):157-159.
[5] 邹思轶.嵌入式Linux设计与应用[M].北京:清华大学出版社,2002.
[6] 马忠梅,李善平.ARM & Linux嵌入式系统教程[M].北京:北京航空航天大学出版社,2005.
[7] 刘雅娟.北斗三星无源定位技术[J].无线电工程,2006,36(2):36-39.
[8] C John.Database design and programming with access,SQL and visual C[M].[S1]:The MacGraw—Hill Co.Ltd,2002.
[9] 方兆宝,夏哲仁,赵培海,等.北斗三星无源导航定位技术研究[J].海洋测绘,2007,27(2):15-17.
[10] Joan Daemen,Vincent Aijme.The Design of Rijindael: AES-the Advanced Eneryption Standard[J].Springer Verlag,2003:57-72.
转载请注明出处学文网 » 基于北斗导航的一种移动导航定位终端