基于Linux操作系统和S3C2410微处理器实现GPS实时导航系统的设计

发布者:心愿成真最新更新时间:2023-01-03 来源: elecfans关键字:Linux操作系统  GPS 手机看文章 扫描二维码
随时随地手机看文章

定位系统自问世后便得到了蓬勃发展,其应用已渗入到各行各业。个人消费领域引领移动定位类型科技产品集中涌现,其他领域和行业也有大量技术更新。目前各领域的定位系统主要集中在平台和地图的研发上,平台配合应用要求选用硬件,地图根据显示要求实现软件算法。因而,它们在定位系统的研究工作中各成体系,兼容性不强。


近年来,在定位系统设计中,硬件选择越来越集中在几个品牌的几个型号上。而软件设计方面比较分散。因而在一个兼容性强的平台上实现软件的集中研发,将是未来的研发方向。


这里提出一种系统构造模式,弱化硬件平台的影响而力求最大限度的统一软件设计。


1 、系统整体设计方案

这里提出一种实用的设计方案,通过对系统的各方面配置,实现GPS实时导航功能。系统主控器件采用韩国Samsung公司生产的ARM核32位RISC微处理器S3C2410,并在由其组成的开发板上移植Linux操作系统,Linux操作系统负责系统的整体调度和控制。通过S3C2410的UART接口连接GPS接收机,用以接收NEMA0183格式的GPS定位信息。通过UART接口和GSM/GPRS模块MC35进行通信。

基于Linux操作系统和S3C2410微处理器实现GPS实时导航系统的设计

为了在移动LED上实现电子地图的绘制显示,系统的整体层次结构框图如图1所示。Linux操作系统负责底层硬件的初始化和管理,并向上层提供应用接口,MiniGUI完成电子地图在LED上的绘制,并通过Linux内核提供的应用接口与GPS接收机和GSM/GPRS模块完成通信等功能。


2 、图形界面支持系统——MiniGUI

MiniGUI是一个针对嵌入式系统的轻量级图形界面支持系统。MiniGUI能够在各个不同的平台上提供最大程度的接口兼容性,可运行于AR-M、MIPS等各种主流嵌入式硬件平台之上。它能够提供一个轻型、资源开销少的嵌入式图形接口。

这里利用MiniGUI Ver l.3.3版本,将其编译为lite版本并移植到基于ARM核的32位微处理器S3C2410上。在此基础上,开发基于MiniG-UI的电子地图显示应用程序,配合GPS信号接收机实现定位导航功能。


2.1 交叉编译MiniGUI

MiniGUI从结构层次上可以分为3层,最上层是APT层,中间层是MiniGUI核心,负责维护整个窗口系统的运行,最下层由2部分组成,即图形抽象层(GAL)和输人抽象层(IAL)。

为了使MiniGUI能够在不同的目标平台上运行,必须有针对相应平台的交叉编译环境。根据本文的设计选用S3C2410器件,则选择交叉编译环境Linux-ARM,选择Mizi公司针对Samsung公司32位ARM核RISC微处理器S3C2410设计开发的工具链,这样的配置环境使软件和硬件具有更好的兼容性。具体交叉编译的步骤如下:

1)修改configure文件。设置make环境变量CC、LD及AR等。

2)GAL(图形引擎)和IAL(输入引擎)接口的实现。在MiniGUI中,GAL和IAL是MinGUI的2个基础设施,MiniGUI的高可靠度在很大程度上也是由于这2个接口提供了独立于硬件的抽象能力。这2个接口的抽象类似于Linux内核中的虚拟文件系统。

在具体实现一个输入引擎(IAL)时,其中最为关键的是事件处理函数wait_event()的实现,MiniGUl会不断的调用该函数,来确定在输入引擎上是否有输入事件发生。这里需要特别注意的是,因为MiniGUI是通过select系统调用来实现进程间通信机制的,因此在实现lite版本输入引擎的wait_event函数时,一定要通过select函数或与其等价的poll函数实现。与此同时,在实现目标板的触摸屏驱动时,必须要实现对应file_operaTIons结构中的poll函数指针。即使触摸屏驱动未提供poll函数,也要在wait_event返回之前调用select,并传递相关参数。

Linux系统提供了一种基础设施——FrameBuffer,通过这个设施Linux的图形输出有了统一的接口。由于MiniGUI可以通过FrameBuffer获得统一的图形引擎接口。

因此其适应性大大提高,也就很少需要再为MiniGUI编写GAL驱动层。

3)依次运行configure、make和make install命令,完成MiniGUl的配置和编译。

经过上述编译过程,会将编译好的MiniGUI库文件安装在/home/MiniGUI-lite目录下。为了减小库文件的大小,根据需要利用config-ure命令去掉MiniGUI中一些不需要的功能,同时利用交叉编译工具链中的strip命令删除MiniGUI函数库中的符号信息和其他一些调试信息。


2.2 MiniGUI向S3C2410上的移植

嵌入式系统开发过程中,编译完MiniGUI和应用程序后,把MiniGUI库和应用程序拷贝到为目标系统准备的文件系统目录中,然后使用相关工具生成文件系统映像,下载到目标板上。

MiniGUI在运行时需要一个配置文件,用来配置MiniGUI运行所需要的环境参数。本设计中,将配置文件MiniGUI.cfg放到目标板的/etc目录下。另外,MiniGUI使用framebuffer作为其输入引擎,因此在编译Linux内核时,选择将framebuffer相关的功能编译到内核中去。


3、绘制基于MiniGUI的电子地图的算法

3.1 提取电子地图数据的算法实现

由于GUI的程序和传统单一流程的程序不太相同,因此通过简单的循环获取GPS数据的方式是不可取的。该系统通过多线程的循环提取数据,每组数据的提取与处理是在一个单线程中完成的,从而避免了数据和处理的复杂交互,能更好地体现实时性。

首先,对所采用的坐标系进行说明:假定有一个形状为严格矩形的地图,其像素坐标原点为(O,0),地图X轴方向上的宽度为W个像素点,Y轴方向上的高度为H个像素点,地图上某点的坐标为(X,Y),则定义该像素点的归一化坐标为(x/W,y/H)。对于终端而言,其覆盖的地理范围相对于地球半径来说几乎可以看作无穷小,故可以认为电子地图所对应的经纬度坐标在其覆盖的区域内是线性变化的。有了这2个点的坐标数据后,当从GPS接收机读取到经纬度坐标时,根据近似的线性映射关系,就可以算出该坐标在电子地图上的归一化坐标。这种映射关系,根据欧式几何原理即式(1)和式(2),由已知的2个点可以算出点A和点B的未知参数。


要得到地图的左上角和右下角的经纬度坐标,只需知道地图边界范围内任取的2个参考点的4个参数即可。通过在某地实地采集的3个参考点,得到表l所列的坐标数据。


根据公式,上面的3个参考点共有3种组合方式,分别得出3组经纬度值,对这3组取平均值,以减少误差,提高精度。最终求得左上角和右下角的坐标数据,如表2所示。

从而得到基准点,并将其坐标数据保存到坐标数据文件taiyuan_gps.dat中。

为了提高灵活性,这里为坐标源数据定义如下数据结构:


3.2 GPS线程

采用单线程对采集的一组数据进行读取、解析和计算。在程序中定义一个pthread_t类型变量,代表采集并解析GPS数据的后端线程。由于GUI的前端和后端GPS线程都要访问某些GPS数据,因此需要在线程间采用同步策略。这里利用线程锁来实现,将其定义为GPSL0CK。它是一个pthread_mutex_t类型的变量。

对应于Point型、Pline型和Region型3种类型的地理信息,分别定义数据结构_POINT、_PLINE和_REGION。以道路为例,在程序中定义对应的_PLINE结构来描述相关信息,该结构定义如下:


3.3 MiniGUI下电子地图的绘制

MiniGUI程序的入口点为MiniGUIMain.main函数已在MiniGUl的函数库中定义,该函数在进行一些MiniGUI的初始化工作后调用MiniGUI-Main函数。先调用SetDesktopRect函数来设置程序的显示区域,然后调用CreateMainWindow函数创建并显示程序的主窗口,最终进入消息循环。


MiniGUI是消息驱动的系统,一切运作都围绕消息进行,MiniGUI应用程序通过接收消息来与外界交互。在电子地图的绘制过程中,主要用到MiniGUI的窗口绘制消息MSG_PAINT。该消息在需要进行窗口重绘时发送到窗口过程。MiniGUI通过判断窗口是否含有无效区域来确定是否需要重绘,在需要进行重绘时,MiniGUI会向相应的窗口过程发送MSG_PAINT消息。MSG_TIMER则主要负责从后端GPS线程中取得当前的经纬度信息,格式化之后输出到文本框中。


当MiniGUI主程序接收到其GPS通信子进程发送的SIGUSRl信号时,就会调用相应的信号处理函数。为了实时更新定位点在电子地图中的位置,必须在该函数中读取共享内存中的最新位置信息;同时根据定位点位置的变化确定需要重绘的区域,调用MiniGUI中的lnvalidateRect函数使该区域无效。通过这种方式使得最新的位置信息实时地显示在电子地图上。


4 、结束语

随着社会信息化的发展,GPS导航终端的使用已成燎原之势,越来越多的设备配备定位或导航功能。本设计利用MiniGUI来实现GPS的基本功能,使地图的绘制工作脱离繁琐的底层硬件,大大简化了此项工作,再配合GPS信号接收机实现实时定位导航功能。同时,本设计还有许多地方值得改进,例如通讯反馈精度和矢量化地理信息的优化显示等。


关键字:Linux操作系统  GPS 引用地址:基于Linux操作系统和S3C2410微处理器实现GPS实时导航系统的设计

上一篇:S3C44B0的可用I/O口分析
下一篇:以s3c2440为例讲解arm芯片的启动过程

推荐阅读最新更新时间:2024-10-29 19:43

为汽车无线电和GPS提供测试系统
为了开发一个针对汽车无线电和全球定位系统(GPS)接收器的射频(RF)信号测试解决方案,以减少耗时且昂贵的现场测试,同时进一步提高设备的质量。IAV与Averna 的工程师们利用 NI PXI 产品高带宽的优势,实现了一个完整的解决方案,记录真实世界的射频信号、信号损失以及环境数据,用于在实验室内很方便地回放。而且,为了从长远的角度提高测试效率,Averna 联同用户创建了共同的用户参考库。 给汽车制造商提供优质产品 全球总部位于德国的 IAV 汽车工程公司是汽车工业内全球顶尖的工程和设计服务提供商之一。该公司最近为一家德国顶尖的汽车制造商测试和验证车载收音机和导航系统。IAV 必须在这些装置上进行全面的射频信号测试,包括 AM
[嵌入式]
面板厂商积极探求新商机,PND、MP3/PMP成为中小型LCD需求主力军
据iSuppli公司,虽然手机仍然是中小尺寸液晶显示屏(LCD)的最主要应用设备,但便携导航设备(PND)、数码相框和MP3/便携媒体播放器(PMP)等新型设备,正在该市场的销售额中占有越来越大的份额。由于这些产品所使用的显示屏大于手机所用的显示屏,因此在供应商的工厂中同样需要更多的面板,这对于LCD面板生产商来说是个绝好的机会。 各种中小尺寸LCD的产能扩张和价格下降,促进了其应用领域的多元化。这又进一步刺激了需求,并吸引许多其它产品来采用中小型LCD,如白色家电和零售标牌。 iSuppli公司认为,为了利用手机市场和新兴产品,中小尺寸显示屏供应商必须相应地平衡和调整策略,否则就可能错失整个市场。 导航设备 PND的主要
[焦点新闻]
CSR向汽车市场推出SiRFstarIV技术
  CSR公司(伦敦证券交易所:CSR.L)日前推出SiRFstarIV GSD4e-9500 GPS引擎,这是首款SiRFstarIV架构的GPS设备,经过优化能够满足车载行业日趋严苛的需求。CSR公司此举进一步巩固了自己在车载市场的领先地位。该公司还宣布已经开始发售车用级CSR8311,这是一款先进的蓝牙HCI设备,首次将蓝牙低功耗和宽带语音(也称高清语音)功能推广到车载市场。         新的SiRFstarIV GSD4e-9500 GPS引擎与CSR8311蓝牙和CSR6000 Wi-Fi连接设备一起,形成了一个完整的车用级定位与连接系统,为车载市场的一级供应商和OEM厂商提供高性能的平台解决方案,在全球范围内为
[汽车电子]
CSR研发推出eGPS增强型全球定位系统技术
蓝牙连接及无线技术提供商CSR公司宣布,已成功将GPS与蜂窝测量结合,研发出eGPS(增强型全球定位系统)技术,该技术能够在任意环境下提供准确的位置信息。在巴塞罗那举办的2008年全球移动大会(Mobile World Congress 2008)上,CSR展示了eGPS的技术优势,其定位技术可以为采用eGPS技术的手机提供所需的强大功能和性能改进。CSR的第一款整合蓝牙和FM收音机技术的单芯片GPS现已问世。 CSR公司首席执行官Joep van Beurden说道:“随着上个月宣布有意与摩托罗拉成立eGPS论坛,我们制造的芯片以及在全球移动大会上展示的产品是CSR迈向生产高性能产品发展蓝图的重要一步。现在为手机安
[汽车电子]
汽车越来越智能,用户越来越“愚蠢”?
汽车越来越依赖于意在让驾驶更容易更安全的科技,但这些技术改进也造就出技术拙劣的司机? 几乎每周都有司机驶离公路或被困在狭窄街道上,这全是因为他们依赖卫星导航而迷路。 这情况在前几年还不至于那么糟糕,当时苹果推出了自家的地图应用,经常把司机领到不存在的桥梁或湖泊里。根据美国“米其林旅游合作伙伴”进行的一项调查显示,去年司机迷路的平均次数为4.4次。年轻的成年驾驶者更喜欢用小工具,依靠智能手机和平板上的地图应用进行导航,据他们说迷路的次数更多,平均达6.3次。 即便一切都不出问题,像GPS这种科技拐杖不仅使我们成为拙劣的驾驶者,还会使我们变得愚蠢。驾驶者在往返于不同地点时完全依靠导航系统,有可能失去空间意识和常识。 科
[嵌入式]
北斗与GPS信号兼容,背后的原因是科技落后的无奈?
中美双方签署《北斗与 GPS 信号兼容与互操作联合声明》,两大卫星 导航系统 将实现民用信号互操作。   消息传出后,引起部分读者不解:兼容有何意义?是否意味着北斗将技术拱手相让,GPS不劳而获?中科院国家授时中心副主任卢晓春18日向科技日报记者解读了此次合作。她表示,该协议的签署具有历史意义,将为用户带来更优质、便捷的服务。     此次《声明》指出, 北斗卫星导航系统 与GPS全球卫星导航系统在国际电联框架下实现射频兼容,两系统民用信号B1C和L1C实现互操作。用户可以同时使用北斗和GPS民用信号,无需显著增加成本就可以享受到更好的服务。   卢晓春介绍,根据卫星导航系统的工作原理,接收机需要同时“看到”至少4颗导航卫星,
[嵌入式]
便携式GPS设备设计挑战及发展趋势分析
根据市场调研公司iSuppli的数据显示,三大主要供应商TomTom、Garmin和中国台湾地区的神达目前占全球便携式导航设备80%以上的市场份额。作为GPS设备行业的后来者,尽管中国企业具有很强的生产成本优势,然而在系统方案选择、电路设计和系统设计方面,中国国内开发工程师还普遍缺乏经验。如何设计出满足特定目标客户的需求,具有稳定性、低功耗、高精度和易用性,工程师面临很大的挑战。 选择适合您的解决方案 GPS方案大致可以分为三类:独立于主处理器,所有的信号处理和算法实现都运行在GPS芯片组上;部分GPS软件运行在系统主处理器上; GPS基带处理和所有的算法由运行在主处理器上的软件完成,即所谓软件解决方案。这些方案在性能、对
[焦点新闻]
移动性应用,GPS手机渗透率上升使移动位置服务变得日益重要
Strategy Analytics无线媒体战略(WMS)发布的最新报告《移动位置服务:现状检查&平台评估》指出,打车、拼车和专车这类移动应用程序,以及融合了多模路径的手机地图应用程序(诸如苹果地图、谷歌地图和HERE WeGo)使移动位置服务变得愈发重要。在新兴市场,低价手机中GPS渗透率的不断增长促进了移动位置服务的发展。此外,在 Strategy Analytics定位平台标杆研究中,HERE已连续三年领跑,并且随着移动定位服务市场不断演变,HERE未来发展机遇也会一片光明。 包括Uber、Lyft和滴滴等以智能手机为中心的移动性应用被越来越多的使用,以及诸如Pokémon Go这类基于定位的增强现实游戏在2016年推动了移
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved