1 引言
随着汽车等各种车辆交通工具的普及,车辆导航设备的需求也变得日益旺盛。作为车载设备。不仅要有可靠的性能,而且需要具有便携、低功耗和低价格等特点。而采用基于ARM微处理器的嵌入式系统与GPS模块相配合的GPS导航终端机的设计方案,可以很好的满足这一系统需求。为此,本文介绍了一种利用 ARM9开发板和GPS模块实现GPS导航功能的终端机的软硬件结构和设计方法。
2 GPS导航系统结构
本文所介绍的GPS全球定位导航系统按功能可分为嵌入式主控模块、GPS模块、显示模块、扩展模块及供电模块等五大部分。
嵌入式主控模块基于S3C2440处理器,主要负责对GPS导航模块数据的响应、处理和控制。在硬件上,主控模块就是一个嵌入式开发板,包括触摸LCD接口电路、SD卡接口电路、FLASH、SDRAM等。而在软件上,主控模块上应当运行嵌入式Linux系统。而嵌入式Linux操作系统的主要作用是管理程序模块进程并调度进程等。
GPS模块主要用于接收导航卫星数据,并以特定的格式发送给主控模块。显示模块可选用3.5寸TFT带触摸屏LCD,主要用于与用户进行交互。扩展模块主要指的是SD卡。供电模块主要为系统正常工作提供电源。图1所示是该系统的结构图。
3 GPS数据的提取
GR-87型GPS模块的输出语句遵循NMEA-0183标准。该标准的语句都是以“$”开始,以《CR》《LF》结束。 “$”之后是5字符地址,头两个字符为发送者识别码(GPS为“GP”),后3位为语句名称。定位信息中的数据由“,”来划分。GPS模块一般每秒可以输出一次NMEA-0183格式语句。在导航系统中,一般只需要用到时间、日期、经纬度、速度。而由于RMC语句完整包含了系统所需的上述信息,因此。只需要对RMC语句进行提取即可。图2所示是对GPS数据进行提取的具体流程。
4 导航地图的实现
在获得了经纬度等定位信息之后,还需要将它们直观的显示在电子地图或其它显示媒体上,这样才能真正起到导航的作用。要想将其准确的显示在电子地图上,就需要用一定的算法进行转化,即地图匹配算法。
一般来说,地图匹配的基本思路是通过车辆的GPS轨迹与地图上矢量化的路段对象进行匹配,从而寻找当前所行进的道路,并将当前的GPS定位点投影到道路上。
地图匹配的关键是确定匹配点,设计时可以用投影法来寻找匹配点。投影法的基本思路是依据点到直线的距离来确定最小的值为投影的匹配点,并用最邻近法进行处理,然后通过设置阈值来滤掉错误匹配点,得到初步结果,从而完成点到线的匹配。
具体的实现方法是先预处理道路层,再将道路转换为折线段,找到当前道路,然后把当前定位点投影到道路上,再找到离定位点最近的公路图层中的一条线段,之后再计算得到点到线上距离最短的点,最后查找各层中在误差范围之内的道路。
其算法的基本流程代码如下:
导航地图的实现可以采用嵌入式图形界面工具Qt embedded来实现。该图形界面为人机交互界面,用户可以通过屏幕来了解导航信息,也可以直接操作触摸屏来操作系统,如地图的缩放、查看定位信息等。
5 结束语
由于ARM处理器具有低功耗、高性能等特点,因此可以广泛用于各种便携式电子产品中。本设计在现有的电子产品基础上,通过外接GPS模块来扩展 GPS导航功能,可为用户在节省费用的同时又不损失太多的便携性。为此,作者希望使用ARM开发板和GPS模块相结合来实现GPS导航功能的方法,可以为智能设备扩展GPS功能提供一个参考。
关键字:嵌入式Linux 导航软件 设计思路
引用地址:
基于嵌入式Linux系统的导航软件设计思路
推荐阅读最新更新时间:2024-05-02 23:35
基于ARM9的嵌入式Linux代码移植
0 引言 随着计算机技术、通信技术以及Internet的飞速发展。嵌入式系统已得到越来越广泛的应用。与此同时,嵌入式系统的复杂性也在不断增加,嵌入式操作系统已经成为其中最重要的组成部分。目前,市场上存在着众多的嵌入式操作系统,而在这些系统之中,兼有Linux和嵌入式优点的嵌入式Linux操作系统,凭借其在结构清晰、源代码开放性、裁剪性好,开发与使用均易实现等方面的优势,拥有巨大的市场前景和商业机会。当前嵌入式Linux的一个热点应用就是将Linux内核移植到一些典型的微控制器和微处理器上,提供操作系统层面支持,以实现嵌入式系统用软件的开发。 此研究基于Linux 2.6内核的嵌入式Linux系统,分析了所面临的理论问题、关
[单片机]
基于嵌入式Linux的语音识别系统硬软件设计详细讲解教程
该设计运用三星公司的S3C2440,结合ICRoute公司的高性能语音识别芯片LD3320,进行了语音识别系统的硬件和软件设计。在嵌入式Linux操作系统下,运用多进程机制完成了对语音识别芯片、超声波测距和云台的控制,并将语音识别技术应用于多角度超声波测距系统中。通过测试,系统可以通过识别语音指令控制测量方向,无需手动干预,最后将测量结果通过语音播放出来。 1.引言 语言是人类传播信息的重要手段,语音识别则是实现语音控制的关键技术。采用嵌入式语音识别技术使得设备具有功耗低、使用简便、灵活等优点,摆脱了复杂按键和按钮的困扰,在服务机器人、智能家居及消费电子等领域发挥着重要作用。 2.系统构成与原理 语音识别主要包括两个阶段
[单片机]
基于嵌入式linux的数控系统软件设计
引言 数控技术是发展尖端工业的使能技术和基础装备,数控系统作为数控车床的大脑,其性能直接影响甚至决定着机床的整体性能。数控机床既是高新技术专业不可缺少的基础装备,又是传统产业更新换代的重要手段。随着半导体技术的飞速发展,数控系统逐渐朝嵌入式方向发展。嵌人式系统是近年发展最快的技术之一,它是以应用为中心,以计算机技术为基础、软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。目前市面上主流的经济型数控系统如广州数控的GSK980TDb和北京凯恩帝K90Ti等都是使用了ARM处理器构建的嵌入式数控系统。 本数控系统硬件平台分为两大组成部分:ARM子系统和FPGA子系统,采用主从式的两级插
[单片机]
嵌入式linux在工业控制领域中的应用
摘要:针对嵌入网络设备的应用特点,介绍了嵌入式linux的主要技术及在工业控制领域的应用方法。结合硬件平台详细说明了嵌入式linux系统的主要实现方法同时也简要介绍了该嵌入式系统的实时内核、内存机制和文件系统的设计等内容。
关键词:嵌入式系统;嵌入式linux;工业控制
1 前言
随着Internet的飞速发展,网络应用越来越广泛,对各种工业控制设备的网络功能要求也越来越高。当前的要求是希望工业控制设备能够支持TCP/IP以及其它Internet协议,从而能够通过用户熟悉的浏览器查看设备状态、设置设备参数,或者将设备采集到的数据通过网络传送到Windows或Unix/Linux服务器上的数据库中。这就要求工控系统必须具备两
[嵌入式]
嵌入式Linux系统CGI程序设计技术
摘要:在详细介绍一种嵌入式Web服务器BOA的实现与配置方法的基础上,以一个Web在线远程监控GPIO(通用输入/输出)的程序为实例,介绍嵌入式Linux系统下CPU程序设计技术。
关键词:嵌入式系统Linux BOA CGI GPIO
1 概述
随着互联网应用的普及,越来越多的信息化产品需要接入互联网通过Web页面进行远程访问。嵌入式Web系统提供了一种经济、实用的互联网嵌入式接入方案。这里结合一种嵌入式Web Server BOA来介绍嵌入式Linux系统下的CGI程序设计技术。
2 Web Server BOA的实现与配置
2.1 uClinux下,主要有三个Web Server:HTTPD、THTTPD和BOA
[嵌入式]
OK6410A学习笔记三:嵌入式Linux驱动之LED驱动
开发环境: Windows7 + vmware workstation 6.5 + Ubuntu9.10 Linux Source Code: FORLINX_linux-3.0.1.tar.gz ARM CROSS GCC: arm-linux-gcc v4.3.2 源码: //s3c6410_led.c driver file #include linux/kernel.h #include linux/module.h #include linux/fs.h #include linux/mm.h #include linux/io.h #define DEV_MAJOR 176 #define DEV_N
[单片机]
一款基于嵌入式Linux的触摸屏自助点菜机
引言 随着人民生活水平的提高和生活方式的转变,餐饮业的市场急剧扩大,利润飞速增长,被称为中国的黄金产业。而电子点菜系统的应用,提高了餐馆档次和营业效率、优化了业务流程,为餐饮行业带来崭新的管理理念与服务手段。目前较为流行的点菜终端主要分为2 种模式。第一种采用 单片机 单片机 单片机是单片微型计算机(Single-Chip MICrocomputer)的简称,是一种将中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)采用超大规模集成电路技术集成到一块硅片上构成的微型计算机系统。 和无线模块
[单片机]
07-S3C2440驱动学习(一)嵌入式linux字符设备驱动-查询+中断+引入poll机制的按键驱动程序
一、查询方式的按键驱动程序 查询方式的按键驱动程序,与LED驱动程序类似,我们来复习一下上节的写好的字符设备驱动程序框架,改写出查询方式的按键驱动程序。 (1)按键驱动程序如下: Open中配置引脚 Read中返回引脚状态 入口函数:地址映射 虚拟地址 #include linux/module.h #include linux/kernel.h #include linux/fs.h #include linux/init.h #include linux/delay.h #include asm/uaccess.h #include asm/irq.h #include asm/io.h #
[单片机]