




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于嵌入式qt平台下gis/gps电子定位系统设计兰见春三明学院 物理与机电工程学院 08电子科学与技术摘要:本设计主要由三星arm9芯片s3c2440、nand flash、nor flash、sdram、群创7寸触摸屏、gps模块等硬件组成,使用linux2.6.30.4内核,qt4.5嵌入式开发环境,mitab源码,madplay源码等等软件组成,软硬件组合搭建好嵌入式环境,实现电子地图的显示和定位、语音提示功能。具有精简、高效、调试简单的特点关键字:linux 嵌入式 qt mitab gps/gis 第1章 引言1.1 背景意义gps 是英文global positioning system(全球定位系统)的简称,gis 是在地理学、地图学、测量学和计算机科学等学科基础上发展起来的一门学科,目前市面上的导航仪大部分都是使用wince系统,界面很漂亮,支持很多ppc版的导航软件。但是wince不开源,对于嵌入式开发不利。本系统采用了开源linux做为系统内核,很好的支持了开发者的开发,同时也支持大量的开源软件。满足嵌入式开发者的各种需求。系统使用开源的mitab和qt4.5,解决了电子地图图形界面要求,搭配gis开发软件mapinfo制作的基于wgs84坐标系的电子地图,与sirf第三代的gps模块,共同实现了电子定位,同时调用madplay mp3播放器,实现语音播报功能。目前国内关于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 、机顶盒(set top box)、高清电视(hdtv )、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等,都是典型的嵌入式系统。据预测,随着internet的迅速发展和廉价微处理器的出现,嵌入式系统将在日常生活里形成更大的应用领域。在中国,嵌入式软件发展过程中,政府已充分认识到它的重要作用,并在政策、资金等方面给予了大力支持。 2004 年国家发改委、科技部、商务部联合颁布的当前优先发展的高技术产业化重点领域指南,把嵌入式软件产业作为国家发展的一个重要领域。最近几年来,中国的嵌入式软件发展速度一直高于中国软件产业的发展速度和全球嵌入式软件的发展速度,在中国软件产业和全球嵌入式软件产业中所占的比重越来越大。目前,中国嵌入式软件产业在整个软件产业中的比重已经超过了三分之一强。从2006年至2010年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为25.8%,到2010年将达到3339.6亿元的规模。中国嵌入式软件产业的发展面临着良好的发展环境与机遇,这包括政府的重视与扶植、信息产业与传统产业的融合机遇、垄断局面尚未形成、中国制造的良好基础、自由软件运动的兴起等等。1.2.2 qt简介qt是诺基亚开发的一个跨平台的c+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。qt是完全面向对象的,很容易扩展,并且允许真正地组件编程。自从1996年早些时候,qt进入商业领域,它已经成为全世界范围内数千种成功的应用程序的基础。qt也是流行的linux桌面环境kde 的基础。 基本上,qt 同 x window 上的 motif,openwin,gtk 等图形界 面库和 windows 平台上的 mfc,owl,vcl,atl 是同类型的东西,但qt具有优良的跨平台特性、面向对象 、丰富的api、大量的开发文档等优点。信号和槽机制是 qt 的核心机制,要精通 qt 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,它是 qt 的核心特性,也是 qt 区别于其它工具包的重要地方。信号和槽是 qt 自行定义的一种通信机制,它独立于标准的 c/c+ 语言,因此要正确的处理信号和槽,必须借助一个称为 moc(meta object compiler)的 qt 工具,该工具是一个 c+ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。第2章 设计方案与系统架构2.1总体方案论证目前关于电子导航地图的方案有好多,选择一个合适的方案,实现在嵌入式平台下稳定运行显得尤为重要,下面是几种比较成熟的方案。方案一:使用谷歌地图api和百度地图api函数接口,实现地图浏览显示功能。下面是使用方案一在windows下的运行效果 优点:实现方法简单,界面简介。 缺点:需要网络支持,不能离线浏览地图,不利于嵌入式手持设备上应用。 在windows下运行卡顿现象明显,由网速决定地图显示效果, 在嵌入式linux下基本是不能运行的。方案二:下载地图图片在qt graphics view架构中添加,实现平移和缩放等等显示功能由于地图图片在高精度下,数据量很大,而且像素值巨大。这里考虑把大图分割成多张小图,小图片根据经纬度进行编号。当需要显示某个经纬度范围时,在qt graphics scene中实现多张图片无缝拼接。然后根据经纬度显示当前的位置。优点:界面质量比较高,显示效率比较高 无缝拼接显示图片有效的降低了系统内存,提高了系统效率缺点:无缝拼接图片操作麻烦,显示区域较大(不能显示较小区域)下面是下载的拼接图片显示效果:从图中可以看出,显示区域较大,三明学院基本看不到再来看看google地球的效果从图中很明显的看到 当放大到很大的时候 图像毛边现象明显,显示比较模糊方案三:使用mitab源码解析地图信息或者使用数据库存储地图信息这两种方法都是现在比较流行的方法,特别是数据库存储地图信息,是一种万金油做法。只要是涉及到数据存储处理,常规做法都是使用数据库。而且嵌入式平台下数据库sqlite操作简单,节省内存,有效的提高了系统效率。mitab是一个专用于gis平台处理tab、mif等地图文件的源码。能够直接从地图文件中读取出经纬度、地图要素,中间省去了一些步骤,直接操作文件,接下来把数据交给qt去处理,显示地图界面,进一步提高了系统效率综合上面三种方法,得到运行在嵌入式上的最优方案:mitab源码解析地图文件2.2系统的体系结构设计根据上面得到的方案,设计出下面的系统架构硬件部分:操作系统层面:qt4图形界面(map_layer类中包括了mitab解析):2.3开发工具链 window下使用的开发工具:qt sdk by nokia v2010.05 (open source) qt开发工具包vs2005 windows下编译mitab获取动态库文件securecrt.exe 串口调试工具 远程登录linux工具串口调试助手 用于模拟gps数据发送vmware workstation 虚拟机ultraedit和insight 代码编辑查看工具mapinfo professional 7.0 scp 地图绘制软件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 外围电路nand flash 部分nor flash 部分sdram 部分3.2 sirf3代 gps模块本系统使用的是韩国产的nsa-c3m3535br的sirf第三代的gps模块该模块提高了搜星的速度和定位精度(精确到小数点后4位)、冷启动时间也缩短了。gps输出的数据格式遵循nmea0183协议,后面gps应用程序设计中只使用到gpemc这一条语句读取出经纬度。$gprmc, 1) 标准定位时间(utc time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。 2) 定位状态,a = 数据可用,v = 数据不可用。 3) 纬度,格式:度度分分.分分分分(ddmm.mmmm)。 4) 纬度区分,北半球(n)或南半球(s)。 5) 经度,格式:度度分分.分分分分。 6) 经度区分,东(e)半球或西(w)半球。 7) 相对位移速度, 0.0 至 1851.8 knots 8) 相对位移方向,000.0 至 359.9度。实际值。 9) 日期,格式:日日月月年年(ddmmyy)。 10) 磁极变量,000.0 至180.0。 11) 度数。 12) checksum.(检查位) 3.3 max232串口制作max232串口 rs232转ttl 用于模拟gps数据格式和串口调试第4章 电子地图设计4.1地图设计方案一般使用最多的gis软件有autocad map3d和mapinfo ,这两款软件都有各自的优点和缺点,autocad map3d对地图的3d模型绘制比较方便,而mapinfo是2d地图绘制的主流,大多数的地图数据制造商都是使用后者,后者对其他程序的兼容性很好,并且有自己的编程语言,方便开发人员使用。所以,电子地图设计使用mapinfo软件。4.2 mapinfo professional简介mapinfo是美国mapinfo公司的桌面地理信息系统软件,是一种数据可视化、信息地图化的桌面解决方案。它依据地图及其应用的概念、采用办公自动化的操作、集成多种数据库数据、融合计算机地图方法、使用地理数据库技术、加入了地理信息系统分析功能,形成了极具实用价值的、可以为各行各业所用的大众化小型软件系统。mapinfo 含义是“mapping + information(地图+信息)”即:地图对象+属性数据。mapinfo professional 7.0 scpmapinfo professional是一套强大的基于windows平台的地图化解决方案,可以方便地将数据和地理信息的关系直观的展现,其复杂而详细的数据分析能力可帮助用户从地理的角度更好地理解各种信息;可以增强报表和数据表现能力,找出以前无法看到的模式和趋势,创建高质量的地图以便做出高效的决策;凭借其新特性和增强功能,mapinfo professional 使得桌面地图化和分析功能更快和更容易-并可延伸至整个企业。mapinfo professional提供一整套功能强大的工具来进行复杂的商业地图化、数据可视化和gis功能。通过mapinfo professional可连接本地及服务器端的数据库,创建地图和图表以揭示数据行列背后的真正含义。也可以定制mapinfo professional以满足用户的特定需要。 支持oracle8i完全读/写,通过oci对oracle8i及通过odbc对其它数据源的实时访问。4.3 电子地图设计一般地图都是由一个个地图要素组成,mapinfo中分别定义了这九种地图要素:点(point)、直线(line)、折线(polyline)、区域(region)、圆弧(arc)、文本(text)、矩形(rectangle)、圆角矩形(rounded rectangle)、椭圆(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层地图显示出来,在qt sdk中显示效果:(1000*1000像素)(使用vs2005编译mitab获取动态链接库)4.4 tab文件转换mif与mid由于制作的地图是由.tab、.id、.map、.dat组成,而mitab源码解析的文件是mid和mif 格式的地图数据,所以要把tab文件转换为mid和mif文件。使用mapinfo professional自带的转换工具和mifandtab(网友制作的转换器),再做适当的修改。获取的正确的mif和mid文件下面是mif和mid的文件格式:mid中一般存放的标注信息,包括所需标注的内容和标注的位置。mif中存放地图要素及坐标位置、画笔颜色、画笔大小、画笔线型、画刷颜色。region 15地图要素:区域类型117.559479 26.202542117.559479 26.202782117.559902 26.202782坐标位置:闭合区域的顶点坐标117.559902 26.202542117.559479 26.202542pen(1,2,16711680)画笔的大小和颜色(rgb格式)、类型brush (2,16711680,16777215)画刷的颜色(rgb格式)第5章 软件部分5.1 gis mitab源码介绍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.2 qt graphics view framework简介qt graphics view 提供了用于管理和交互大量定制的 2d 图形对象的平面以及可视化显示对象的视图 widget,并支持缩放和旋转功能。graphics view 使用 bsp(二进制空间划分)树形可非常快速地找到对象,因此即使是包含百万个对象的大型场景,也能实时图形化显示。graphics view提供一个model和一个view。所谓model就是我们添加的种种对象,所谓view就是我们观察这些对象的视口。同一个model可以由很多view从不同的角度进行观察,这是很常见的需求。使用qpainter就很难实现这一点,这需要很复杂的计算,而qt的graphics view就可以很容易的实现。graphics view提供了一个qgraphicsscene作为场景,即是我们添加图形的空间,相当于整个世界;一个qgraphicsview作为视口,也就是我们观察的窗口,相当于照相机的取景框,这个取景框可以覆盖整个场景,也可以是场景的一部分;一些qgraphicsitem作为图形元件,以便scene 添加,qt内置了很多图形,比如line、polygon等,都是继承自qgraphicsitem。设计程序时,我们先将所有的地图元素都添加到item中,让后再把item中的元素在scene中显示,最后在主界面中显示scene,这样地图就显示出来了。移动、缩放功能graphics view 都自动帮你实现了。5.3 gps应用程序设计gps模块输出的是ttl电平,s3c2440芯片的串口同样是ttl电平,所以中间不要再经过什么转换了,只需把两个串口交叉连接。gps模块波特率为9600,设置和普通的串口差不多。由于linux内核中包括了三星官方的开发板smdk2410的配置,只需稍作修改就可以在tq2440上使用,驱动程序就直接拿来用。gps的应用程序设计的目的是为了解析gps数据中的经纬度等信息。完成这个目的,可以参考单片机串口通信模式,首先要初始化串口,设置波特率、起始位、停止位等等,然后用中断或者是查询方式读数据。linux编程中为串口设置等问题得到了完美的解决,它提供一个库,波特率等的设置只需调用函数,输入参数,当然具体的设置远远没有这么简单。解决了串口初始化的问题,下面就是数据处理的问题。gps模块输出的是ascii码的字符型,而且每秒输出的数据量大,单片机处理的思想是:将接收到的数据(ascii码)转换为2进制的数据,而且只能一位一位的转换,显示处理速度就慢很多了。linux编程中提供了处理fifo数据的接口函数,一次处理的数据量大,使用strstr函数可以快速的获取一个数组的指定格式的起始位置,使用sscanf函数可以用一个数组中获取指定格式的数据,并且自动将数据转换为字符型,整型,浮点数据等等,相比单片机一个一个的解析数据要快得多,操作也跟简单。5.4 madplay移植与使用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模块,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年教师招聘之《幼儿教师招聘》考前冲刺练习题附答案详解【巩固】
- 司机担保人合同7篇
- 6.2.4生态系统类型说课稿-2023-2024学年济南版生物八年级下册
- 强校工程督导方案(3篇)
- 2025年教师招聘之《幼儿教师招聘》考前冲刺模拟题库及参考答案详解一套
- 璞玉工程实施方案(3篇)
- 培育头雁工程方案模板(3篇)
- 洞察消费升级:2025年电商平台本地生活服务市场细分领域报告
- 酒店装修工程计划方案(3篇)
- 民间防水补漏工程方案(3篇)
- 新版规范(2017)沥青混凝土路面设计(详细应用)
- 机器学习基础讲义
- 产品耐压、绝缘、接地测试报告
- 铁路交通事故调查处理规定-事故调查
- 慢性鼻窦炎鼻息肉护理查房课件
- set2020标准文件编写工具软件使用说明书
- 中小学教师参与学校管理研究论文
- 动叶可调式轴流风机液压调节系统课件
- 标准件与常用件课件
- 报价单(报价单模板)
- 液氧泄漏应急处置的培训与演练
评论
0/150
提交评论