基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx

上传人:b****2 文档编号:11569590 上传时间:2023-06-01 格式:DOCX 页数:23 大小:1.59MB
下载 相关 举报
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第1页
第1页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第2页
第2页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第3页
第3页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第4页
第4页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第5页
第5页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第6页
第6页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第7页
第7页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第8页
第8页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第9页
第9页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第10页
第10页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第11页
第11页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第12页
第12页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第13页
第13页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第14页
第14页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第15页
第15页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第16页
第16页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第17页
第17页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第18页
第18页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第19页
第19页 / 共23页
基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx

《基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx》由会员分享,可在线阅读,更多相关《基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx(23页珍藏版)》请在冰点文库上搜索。

基于嵌入式QT平台下GISGPS电子定位专业系统设计.docx

基于嵌入式QT平台下GISGPS电子定位专业系统设计

基于嵌入式QT平台下GISGPS电子定位专业系统设计

基于嵌入式QT平台下GIS/GPS电子定位系统设计

兰见春

三明学院物理与机电工程学院08电子科学与技术

[摘要]:

本设计主要由三星ARM9芯片s3c2440、nandflash、norflash、sdram、群创7寸触摸屏、GPS模块等硬件组成,使用linux2.6.30.4内核,QT4.5嵌入式开发环境,mitab源码,madplay源码等等软件组成,软硬件组合搭建好嵌入式环境,实现电子地图的显示和定位、语音提示功能。

具有精简、高效、调试简单的特点

[关键字]:

linux嵌入式QTmitabGPS/GIS

第1章引言

1.1背景意义

GPS是英文GlobalPositioningSystem(全球定位系统)的简称,GIS是在地理学、地图学、测量学和计算机科学等学科基础上发展起来的一门学科,目前市面上的导航仪大部分都是使用WinCE系统,界面很漂亮,支持很多PPC版的导航软件。

但是WinCE不开源,对于嵌入式开发不利。

本系统采用了开源linux做为系统内核,很好的支持了开发者的开发,同时也支持大量的开源软件。

满足嵌入式开发者的各种需求。

系统使用开源的mitab和QT4.5,解决了电子地图图形界面要求,搭配GIS开发软件mapinfo制作的基于WGS84坐标系的电子地图,与sirf第三代的GPS模块,共同实现了电子定位,同时调用madplayMP3播放器,实现语音播报功能。

目前国内关于GPS/GIS的研究已经很火热了,关于GPS的周边学科也得到迅速发展,地图数据公司群雄崛起,导航软件也很出色,往嵌入式发展的趋势已经很明显。

Linux平台下的开源导航软件很少,但是支持GPS的源码和工具还是很多,像GPSd,GPSdriver等,这些开源的工具软件给开发者提供很好的开发思路。

同时QT4也是linux开发的利器,这几年QT发展迅猛,已超越MFC,仅次与java。

最近Android(一种以Linux为基础的开放源码操作系统)操作系统很热门,大部分的导航软件的开发都有往安卓发展的趋势。

当下苹果的mac操作系统和谷歌的Android系统竞争手持智能设备终端,已经趋于白热化了。

综合上述信息,使用Linux内核+QT4+mitab+mapinfo地图制作嵌入式电子地图,是一种比较精简的做法,满足嵌入式平台小内存、小体积的要求,程序设计过程中,采用尽量压缩地图数据内存的方法,以提高嵌入式平台的反应速度与工作效率。

1.2嵌入式发展和QT介绍

1.2.1嵌入式的发展

近几年,嵌入式系统产品日臻完善,并在全世界各行业得到广泛应用。

嵌入式系统产品的研制和应用已经成为我国信息化带动工业化、工业化促进信息化发展的新的国民经济增长点。

随着消费家电的智能化,嵌入式更显重要。

像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。

据预测,随着Internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。

在中国,嵌入式软件发展过程中,政府已充分认识到它的重要作用,并在政策、资金等方面给予了大力支持。

2004年国家发改委、科技部、商务部联合颁布的《当前优先发展的高技术产业化重点领域指南》,把嵌入式软件产业作为国家发展的一个重要领域。

最近几年来,中国的嵌入式软件发展速度一直高于中国软件产业的发展速度和全球嵌入式软件的发展速度,在中国软件产业和全球嵌入式软件产业中所占的比重越来越大。

目前,中国嵌入式软件产业在整个软件产业中的比重已经超过了三分之一强。

从2006年至2010年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为25.8%,到2010年将达到3339.6亿元的规模。

中国嵌入式软件产业的发展面临着良好的发展环境与机遇,这包括政府的重视与扶植、信息产业与传统产业的融合机遇、垄断局面尚未形成、中国制造的良好基础、自由软件运动的兴起等等。

1.2.2QT简介

Qt是诺基亚开发的一个跨平台的C++图形用户界面应用程序框架。

它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。

Qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。

自从1996年早些时候,Qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。

Qt也是流行的Linux桌面环境KDE的基础。

基本上,Qt同XWindow上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西,但Qt具有优良的跨平台特性、面向对象、丰富的API、大量的开发文档等优点。

信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。

信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。

信号和槽是QT自行定义的一种通信机制,它独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(MetaObjectCompiler)的QT工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。

 

第2章设计方案与系统架构

2.1总体方案论证

目前关于电子导航地图的方案有好多,选择一个合适的方案,实现在嵌入式平台下稳定运行显得尤为重要,下面是几种比较成熟的方案。

方案一:

使用谷歌地图API和XX地图API函数接口,实现地图浏览显示功能。

下面是使用方案一在windows下的运行效果

优点:

实现方法简单,界面简介。

缺点:

需要网络支持,不能离线浏览地图,不利于嵌入式手持设备上应用。

在windows下运行卡顿现象明显,由网速决定地图显示效果,

在嵌入式linux下基本是不能运行的。

方案二:

下载地图图片在QTGraphicsView架构中添加,实现平移和缩放等等显示功能

由于地图图片在高精度下,数据量很大,而且像素值巨大。

这里考虑把大图分割成多张小图,小图片根据经纬度进行编号。

当需要显示某个经纬度范围时,在QTGraphicsScene中实现多张图片无缝拼接。

然后根据经纬度显示当前的位置。

优点:

界面质量比较高,显示效率比较高

无缝拼接显示图片有效的降低了系统内存,提高了系统效率

缺点:

无缝拼接图片操作麻烦,显示区域较大(不能显示较小区域)

下面是下载的拼接图片显示效果:

从图中可以看出,显示区域较大,三明学院基本看不到

再来看看google地球的效果

从图中很明显的看到当放大到很大的时候图像毛边现象明显,显示比较模糊

方案三:

使用mitab源码解析地图信息或者使用数据库存储地图信息

这两种方法都是现在比较流行的方法,特别是数据库存储地图信息,是一种万金油做法。

只要是涉及到数据存储处理,常规做法都是使用数据库。

而且嵌入式平台下数据库SQLite操作简单,节省内存,有效的提高了系统效率。

Mitab是一个专用于GIS平台处理TAB、MIF等地图文件的源码。

能够直接从地图文件中读取出经纬度、地图要素,中间省去了一些步骤,直接操作文件,接下来把数据交给QT去处理,显示地图界面,进一步提高了系统效率

综合上面三种方法,得到运行在嵌入式上的最优方案:

mitab源码解析地图文件

2.2系统的体系结构设计

根据上面得到的方案,设计出下面的系统架构

硬件部分:

操作系统层面:

QT4图形界面(map_layer类中包括了mitab解析):

2.3开发工具链

Window下使用的开发工具:

QtSDKbyNokiav2010.05(opensource)QT开发工具包

VS2005Windows下编译mitab获取动态库文件

SecureCRT.exe串口调试工具远程登录linux工具

串口调试助手用于模拟GPS数据发送

VMwareWorkstation虚拟机

UltraEdit和Insight代码编辑查看工具

MapInfoProfessional7.0SCP地图绘制软件

MIFandTABMIF、TAB相互转换工具

Google地球地图数据来源、后期调试工具

Linux下使用的开发工具:

4.3.3交叉工具链

QT4.5包括QT/X11和QT/Embedsky

 

第3章硬件部分

3.1系统硬件平台

本系统使用的是天嵌科技的TQ2440开发板,TQ2440体积小,便于携带;接口丰富,易于扩展;功耗低。

3.1.1处理器电路

主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良

部分电路的原理图

3.1.2外围电路

Nandflash部分

Norflash部分

Sdram部分

3.2sirf3代GPS模块

本系统使用的是韩国产的NSA-C3M3535BR的sirf第三代的GPS模块

该模块提高了搜星的速度和定位精度(精确到小数点后4位)、冷启动时间也缩短了。

GPS输出的数据格式遵循NMEA0183协议,后面GPS应用程序设计中只使用到GPEMC这一条语句读取出经纬度。

$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>

1)标准定位时间(UTCtime)格式:

时时分分秒秒.秒秒秒(hhmmss.sss)。

2)定位状态,A=数据可用,V=数据不可用。

3)纬度,格式:

度度分分.分分分分(ddmm.mmmm)。

4)纬度区分,北半球(N)或南半球(S)。

5)经度,格式:

度度分分.分分分分。

6)经度区分,东(E)半球或西(W)半球。

7)相对位移速度,0.0至1851.8knots

8)相对位移方向,000.0至359.9度。

实际值。

9)日期,格式:

日日月月年年(ddmmyy)。

10)磁极变量,000.0至180.0。

11)度数。

12)Checksum.(检查位)

3.3max232串口

制作MAX232串口RS232转TTL用于模拟GPS数据格式和串口调试

 

第4章电子地图设计

4.1地图设计方案

一般使用最多的GIS软件有AutoCADMap3d和Mapinfo,这两款软件都有各自的优点和缺点,AutoCADMap3d对地图的3D模型绘制比较方便,而Mapinfo是2D地图绘制的主流,大多数的地图数据制造商都是使用后者,后者对其他程序的兼容性很好,并且有自己的编程语言,方便开发人员使用。

所以,电子地图设计使用Mapinfo软件。

4.2MapInfoProfessional简介

MapInfo是美国MapInfo公司的桌面地理信息系统软件,是一种数据可视化、信息地图化的桌面解决方案。

它依据地图及其应用的概念、采用办公自动化的操作、集成多种数据库数据、融合计算机地图方法、使用地理数据库技术、加入了地理信息系统分析功能,形成了极具实用价值的、可以为各行各业所用的大众化小型软件系统。

MapInfo含义是“Mapping+Information(地图+信息)”即:

地图对象+属性数据。

MapInfoProfessional7.0SCP

MapInfoProfessional是一套强大的基于Windows平台的地图化解决方案,可以方便地将数据和地理信息的关系直观的展现,其复杂而详细的数据分析能力可帮助用户从地理的角度更好地理解各种信息;可以增强报表和数据表现能力,找出以前无法看到的模式和趋势,创建高质量的地图以便做出高效的决策;凭借其新特性和增强功能,MapInfoProfessional使得桌面地图化和分析功能更快和更容易-并可延伸至整个企业。

MapInfoProfessional提供一整套功能强大的工具来进行复杂的商业地图化、数据可视化和GIS功能。

通过MapInfoProfessional可连接本地及服务器端的数据库,创建地图和图表以揭示数据行列背后的真正含义。

也可以定制MapInfoProfessional以满足用户的特定需要。

支持Oracle8i完全读/写,通过OCI对Oracle8i及通过ODBC对其它数据源的实时访问。

4.3电子地图设计

一般地图都是由一个个地图要素组成,Mapinfo中分别定义了这九种地图要素:

点(point)、直线(line)、折线(polyline)、区域(region)、圆弧(arc)、文本(text)、矩形(rectangle)、圆角矩形(roundedrectangle)、椭圆(ellipse)。

每个要素由多个属性构成,如名称,是否显示,更新时间,点,对应点的经纬度等属性,每种要素的属性类型和个数是不相同的。

但要素的名字和经纬度数据则是必须的。

同时使用Mapinfo绘图时,可以把地图分为多层,每一层都可以显示响应的地图要素。

mapinfo格式的地图是由四个文件构成的,如map.TAB,map.ID,map.MAP,map.DAT四个文件共同构成一个地图。

如果是多层地图,每一层都是由这四个文件组成。

4.3.1获取地图栅格文件

绘制地图时使用的参考图,对比参考图绘制地图很方便,数据偏差较小。

Mapinfo地图所需的栅格文件支持几乎所有的图片格式。

所以直接使用截图工具在google地球上获取三明学院的地图图片

4.3.2绘图坐标系的选择

由于市面上的GPS模块大部分都遵循NMEA0183协议,NMEA0183协议中规定的经纬度是采用WGS84坐标系,为了省去坐标系转换,设计地图时同样采用WGS84坐标绘制,这样用mitab读取出来的经纬度就可以直接使用,省去了中间繁琐的坐标系转换。

4.3.3分层次绘制地图

分为4层来绘制,把4层全部显示出来就是我们所绘制的地图。

Background层:

该层中把三明学院分为南北区两部分,分别用不同颜色的画刷来显示。

Build层:

该层中把三明学院的建筑物都绘制出来,同时用不同颜色区分建筑物。

红色:

行政中心

蓝色:

教学楼

绿色:

宿舍区和田径场、蓝球场

墨绿色:

食堂

黑色:

商业区

紫色:

图书馆

浅蓝色:

教学辅楼

Road层:

该层中显示三明学院的主要道路。

黄色:

道路

粉红色:

阶梯、楼道

Char层:

该层中显示三明学院的建筑名称及标注信息。

将上面的4层地图显示出来,在QTSDK中显示效果:

(1000*1000像素)

(使用VS2005编译mitab获取动态链接库)

4.4TAB文件转换MIF与MID

由于制作的地图是由.TAB、.ID、.MAP、.DAT组成,而mitab源码解析的文件是mid和mif格式的地图数据,所以要把TAB文件转换为MID和MIF文件。

使用MapInfoProfessional自带的转换工具和MIFandTAB(网友制作的转换器),再做适当的修改。

获取的正确的MIF和MID文件

下面是MIF和MID的文件格式:

MID中一般存放的标注信息,包括所需标注的内容和标注的位置。

MIF中存放地图要素及坐标位置、画笔颜色、画笔大小、画笔线型、画刷颜色。

REGION1

5地图要素:

区域类型

117.55947926.202542

117.55947926.202782

117.55990226.202782坐标位置:

闭合区域的顶点坐标

117.55990226.202542

117.55947926.202542

PEN(1,2,16711680)画笔的大小和颜色(RGB格式)、类型

Brush(2,16711680,16777215)画刷的颜色(RGB格式)

 

第5章软件部分

5.1GISmitab源码介绍

Mitab是国外的一个开源项目,它是一个动态链接库,支持多个平台。

程序可以调用库直接进行文件操作,实现地图文件中信息的读取。

Mitab本身是C++编写的,它的功能很强大,不仅可以读取,也可写入即实现地图的编辑。

同时,为了方便调用,此项目还提供了一个简便的C语言的函数接口,方便开发人员使用。

下面列举部分函数加以说明:

mitab_c_get_pen_color获取画笔颜色

mitab_c_get_pen_pattern获取画笔类型

mitab_c_get_pen_width获取画笔线宽

mitab_c_get_vertex_x获取经度

mitab_c_get_vertex_y获取纬度

mitab_c_get_text获取文本信息

还有好多函数,这里就不一一列举了。

5.2QTGraphicsViewFramework简介

QtGraphicsView提供了用于管理和交互大量定制的2D图形对象的平面以及可视化显示对象的视图widget,并支持缩放和旋转功能。

GraphicsView使用BSP(二进制空间划分)树形可非常快速地找到对象,因此即使是包含百万个对象的大型场景,也能实时图形化显示。

GraphicsView提供一个model和一个view。

所谓model就是我们添加的种种对象,所谓view就是我们观察这些对象的视口。

同一个model可以由很多view从不同的角度进行观察,这是很常见的需求。

使用QPainter就很难实现这一点,这需要很复杂的计算,而Qt的GraphicsView就可以很容易的实现。

GraphicsView提供了一个QGraphicsScene作为场景,即是我们添加图形的空间,相当于整个世界;一个QGraphicsView作为视口,也就是我们观察的窗口,相当于照相机的取景框,这个取景框可以覆盖整个场景,也可以是场景的一部分;一些QGraphicsItem作为图形元件,以便scene添加,Qt内置了很多图形,比如line、polygon等,都是继承自QGraphicsItem。

设计程序时,我们先将所有的地图元素都添加到item中,让后再把item中的元素在Scene中显示,最后在主界面中显示Scene,这样地图就显示出来了。

移动、缩放功能GraphicsView都自动帮你实现了。

5.3GPS应用程序设计

GPS模块输出的是TTL电平,S3C2440芯片的串口同样是TTL电平,所以中间不要再经过什么转换了,只需把两个串口交叉连接。

GPS模块波特率为9600,设置和普通的串口差不多。

由于Linux内核中包括了三星官方的开发板SMDK2410的配置,只需稍作修改就可以在TQ2440上使用,驱动程序就直接拿来用。

GPS的应用程序设计的目的是为了解析GPS数据中的经纬度等信息。

完成这个目的,可以参考单片机串口通信模式,首先要初始化串口,设置波特率、起始位、停止位等等,然后用中断或者是查询方式读数据。

LINUX编程中为串口设置等问题得到了完美的解决,它提供一个库,波特率等的设置只需调用函数,输入参数,当然具体的设置远远没有这么简单。

解决了串口初始化的问题,下面就是数据处理的问题。

GPS模块输出的是ASCII码的字符型,而且每秒输出的数据量大,单片机处理的思想是:

将接收到的数据(ASCII码)转换为2进制的数据,而且只能一位一位的转换,显示处理速度就慢很多了。

Linux编程中提供了处理fifo数据的接口函数,一次处理的数据量大,使用strstr函数可以快速的获取一个数组的指定格式的起始位置,使用sscanf函数可以用一个数组中获取指定格式的数据,并且自动将数据转换为字符型,整型,浮点数据等等,相比单片机一个一个的解析数据要快得多,操作也跟简单。

5.4madplay移植与使用

Madplay的编译是参考国嵌的试验手册来做的,移植只需用交叉编译器编译即可。

把编译好的madplay放在文件系统中

Madplay*.mp3就可以播放mp3的歌曲了

 

第6章系统组合与调试

6.1系统组合

将上述的软硬件组合,添加mypoint类(定位点),设置在最上层显示,在QT程序中添加timerEvent事件,设置每秒读取一次GPS的数据,调用update(),实时刷新显示图像。

同时在指定区域内设计程序,实现在某个区域内调用madplay播放器,实现语音播报功能。

6.2调试

由于地图是用软件绘制的,与栅格图像还存在偏差,栅格图像是从google地球上获取的,google地球与GPS输出的经纬度同样也有偏差,所以系统有两个误差,这两个误差都只是水平和竖直方向的漂移,应该是没有线性漂移的,所以只需要计算水平和竖直方向上的偏移就可以了

6.2.1串口模拟调试

从google地球上获取一点的坐标,再在绘制好的地图上获取这个点的坐标。

经过多次测量,发现水平方向偏移较小,可以忽略,竖直方向偏移较大,多点平均值得到的数据为0.0093度。

修改程序,用串口模拟GPS的数据格式,可以准确的显示当前点在指定位置上

6.2.2室外调试

系统连上GPS模块,实地测量经纬度数据,对比界面上的位置,记录数据

系统经度

实地经度

精度偏差

系统纬度

实地纬度

纬度偏差

正门

117.5595

117.5598

0.0004

26.2040

26.2037

-0.0003

理工一

117.5608

117.5608

0.0000

26.2013

26.2010

-0.0003

图书馆

117.5600

117.5601

0.0001

26.1980

26.1979

-0.0001

田径场

117.5601

117.5603

0.0002

26.1953

26.1954

-0.0001

南校门

117.5579

117.5583

0.0004

26.1976

26.1973

-0.0003

平均偏差

0.00022

-0.00022

得到的偏移经纬度分别为:

0.00022和-0.00022

根据偏差修改程序,再次实地测量,记录数据

系统经度

实地经度

精度偏差

系统纬度

实地纬度

纬度偏差

正门

117.5597

117.5598

0.0001

26.2039

26.2037

-0.0002

理工一

117.5610

117.5608

-0.0002

26.2011

26.2010

-0.0001

图书馆

117.5600

117.5601

0.0001

26.1980

26.1979

-0.0001

田径场

117.5602

117.5603

0.0001

26.1956

26.1954

-0.0002

南校门

117.5582

117.5583

0.0001

26.1973

26.1973

-0.0000

平均偏差

0.00006

-0.00012

平均偏差较小可以忽略,系统总体调试完成。

从系统运行速度和显示速度来看,没有卡顿的情况,系统效率较高。

总结

本次毕业设计是在谢华老师精心

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2