嵌入式GPS导航系统设计
扫描二维码
随时随地手机看文章
随著科技化的角度持续加快,迫使有越来越多的人必须在紧凑的时间及地点进行工作,而当城市化的速度不断地膨胀后,不仅导致交通网络日益复杂,人们必要的移动性也有越来越频繁的趋势。
使得每个人对空间信息有了更多的依赖,使得人们对于「我身处在何方?」、「前往的目的地?」、「如何前往?」等问题,存在著前所未有的需求性。因此,以嵌入式系统为主要平台的数码地理整合性应用与其因应方案,也就是手持式、车载GPS全球卫星导航系统,便可解决对此人们急迫的需求性。
图说:附加功能仍持续呈现高度扩张,过去车用导航系统中不需要AM/FM收音机、DVD/VCD影音系统、CD/MP3播放器,又或者兼具语音导航的音效系统、拥有存放地图的存储器等诸多功能性。
嵌入式GPS导航系统 体现最佳化导航系统
今日GPS卫星导航定位的应用已愈来愈普及,但大多数人对它的认识仍限定在行车导航的用途之上,不过针对广泛的应用市场,车载式GPS的应用只是开端而已,其实它在国防、地理信息和建筑工程等领域已是不可或缺的重要技术,而下一步,GPS将走入每个人的生活,成为人手一支的GPS手机或手持导航设备(PND)。
这可以由嵌入式GPS导航系统的核心技术来看,以三星ARM9系列中的16/32位RISC处理器S3C2410A芯片为例,该芯片强大的实时处理能力和丰富的外围界面非常适合嵌入式系统的开发,而该系统就是基于该芯片的这些特点而设计的。该系统以S3C2410A微处理器为核心,与2片32M的SDRAM(HY57V561620CT)和64M的NAND Flash(K9F1208U0B)整合为最小的一套系统;另外,就是在系统外部加装可用于收GPS信号的GPS模块,用于显示的液晶面板,以及UDA1341TS的语音芯片系统。
建立系统平台完善架构 兼容性是主要目标
主要来说,其系统平台架构的建立,可细分为2个主要部分,也就是主控的计算机主机的操作系统的选择和交叉编辑设备与工具链的建立。在计算机的主机上,其操作系统可以有多种选择,包括:安装Linux发行版、在Windows下使用虚拟机或者使用Cygwin。由于现今Microsoft Windows统领著全球超过半数的计算机系统,而许多开发者开始使用虚拟机等手段来实现在Windows平台下进行嵌入式Linux的开发,但这些方法都会或多或少地带来些兼容性问题。开发嵌入式Linux最好的选择便是在计算机主机上安装Linux发行版,因为这样与Windows毫无关联,可占有系统全部资源,拥有系统最高性能和最佳的兼容性。
其次,就是在建立交叉式编辑设备的工具链方面,必须注意一点就是在计算机运行系统的选择。现在可供选择的运行系统有glibc、uClibc以及newlib等。glibc是由GNU项目提供的标准系统,因为主要是针对计算机而应用设计,主体架构较为巨大,不过却能供应最佳的兼容性。如果一般的嵌入式开发可选用uClibc,而uClibc原本就是uCLinux开发过程中的一个C语言库,现已经独立于uCLinux项目并且进一步完善。它对glibc的大部分函数进行了重写,并且目标就定位于嵌入式,所以其相对glibc而言要小巧很多。此外由于它的函数与glibc保持一致,这样很多原本基于glibc开发的软件基本不需要更改,便能使uClibc在编辑的过程中获得最佳化,使得在嵌入式系统上占用的存储器和磁盘空间更少,不过由于不是标准的运行系统,因此uClibc拥有著一定的兼容性问题。
图说:使用在不同设备上的GPS导航设备,比方说,手持式导航设备或者是汽车上所嵌入式的GPS导航架构,这都是要选择适当的硬件架构之前,必须要先行确认的使用范畴及定位方向。(www.u-blox.com)
GPS导航应用软件 关乎导航系统优劣
基本上,软件功能也是决定导航系统好坏的重要关键之一;首先是操作系统的选择,由于是车载嵌入式系统,车厂对内装设备的可靠性要求远高于消费性或家用等设备系统,而作为导航系统的计算机主要机体的操作系统,以及分别使用buildroot和crosstool建立两条采用不同的运行系统的交叉编辑设备工具链。由于系统开发需要使用U-Boot的TFTP功能下载Linux内核,以及Linux的NFS网络文件系统,所以首先需要对Fedora Core 5设置TFTP,以及NFS,而后需要设置一个接口通信软件与开发平台上进行互动之用,因此,在选择上可采用Kermit通讯协定,进行资料的传输。使用2不同运行系统的交叉编辑器工具链的主要原因在于,导航应用程序使用uClibc有兼容性问题,所以不得不采用glibc,而为了减少占用资源,而U-Boot、Linux内核和Busybox仍然采用的是uClibc。
在系统平台建立之后,Linux操作系统提供了底层的操作,包括:文件系统的管理、存储器分配以及基本快闪存储器的烧录读取,但并没有提供最佳的的显示界面,而再同一时间为了体现出地理数据的显示与导航功能,就需要在操作系统上放入图形用户界面支持系统和地理信息开发平台。
整个软件系统依靠响应不同窗口或者控制元件所发出的讯息,进行一部体现出各式各样的导航系统功能,再透主窗口建立后注册mGIS控件,可以较为方便的实现一些常用的地图操作。主窗口建立后,将会创建许多用于子窗口,包括:用于显示地图经纬度信息、时间。最后,在速度的静态功能上,则可用于实现快速便捷操作的工具栏,用于实现GPS功能关闭和地图数据加载的菜单栏。
图说:手持式GPS系统电路结构图。GPS的应用范围十分广泛,也必然有其市场的卖点,但要将GPS做到手机当中,仍有不少瓶颈需要突破。手机的GPS应用与车载导航差异甚大,前者要求在行走的环境中能获得精准的定位信息,而手机用户又经常会处于收讯不良的室内或巷弄当中。(www.Edom.com)
「Find My Way」是GPS卫星导航的终极目标
Find My Way嵌入式移动地图导航系统经过最初设计、实现及应用检验,已经具备基本的功能,可初步满足个人移动导航信息系统的需求。能完成数码地图的加载、缩放、拖动、搜索、简易导航、测距、GPS功能开闭等功能。同时必须要针对较为可行的矢量地图的制作方法,能依据使用的场合不同,较快速的完成地图数据源的制作及相关信息的添加,有一定的扩展能力。
当然由于时间和能力的有限,这款产品也有其一定的不足,值得进一步的深入研究,例如:在打开GPS接收模块之后,系统的响应速度将有显著的下降,虽然已经对Linux核心和编辑器经过适当的优化过程,但情况并没有显著的改善。问题可能在硬件平台的处理速度和可调用的资源有限,也有可能在软件接收上的程序结构不合理,嵌套过多。
GPS接收信号有时会发生信号接收的不稳定,出现信号的偏移,超过标称的误差值。问题可能在开发平台的设计电路中对于数据信号线的照排上,没有使信号线等距,也没有设置合理的信号隔离和保护带,导致最终出现了不应有的误差。但从软件上着手,如何纠正这样的误差也是值得研究的一个方向,不过,在本文中只说明了固定点导航,并不能完成从任意点至任意点的导航,导航功能可以从软件方面继续深入的研究,包括对地图格式的选择等,这些都是未来必须要面对到的问题与挑战。