基于ARMLINUX的GPS导航系统论文.docx
- 文档编号:30750476
- 上传时间:2023-08-20
- 格式:DOCX
- 页数:55
- 大小:1.13MB
基于ARMLINUX的GPS导航系统论文.docx
《基于ARMLINUX的GPS导航系统论文.docx》由会员分享,可在线阅读,更多相关《基于ARMLINUX的GPS导航系统论文.docx(55页珍藏版)》请在冰豆网上搜索。
基于ARMLINUX的GPS导航系统论文
目录
0摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11引言„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21系统方案选择与论证„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„2
1.1总体设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2部分模块设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2.1主控芯片选择方案„„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2.2操作系统及选择方案„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2.3GPS模块设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2.4显示模块设计方案„„„„„„„„„„„„„„„„„„„„„„„„„„„3
1.2.5地图文件存放方案„„„„„„„„„„„„„„„„„„„„„„„„„„错误!
未定义书签。
1.3总体方案确定„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„42系统硬件设计
2.1主控芯片电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„5
2.2flash芯片电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„7
2.3串口电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„8
2.4usb接口电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„9
2.6系统总线及lcd接口电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„9
2.5电源电路„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„103系统的软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11
3.1程序结构框图„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11
3.2Maintab类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„11
3.3Mainwidget类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12
3.4config类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„12
3.5map类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„13
3.6gps_diver类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„14
3.7staSNR类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„15
3.8debug_PDF类„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16
3.9Makefile文件„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16
3.10地图文件(mapinfo.txt文件)„„„„„„„„„„„„„„„„„„„„„„„„错误!
未定义书签。
4测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16
4.1操作系统烧写测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„16
4.2卫星接收测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„18
4.3地图显示测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„20
4.4GPS信号检测测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„错误!
未定义书签。
4.5功耗测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
4.6其他测试„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
4.7测试结果分析„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„235总结„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23
参考文献:
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„23谢:
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„24录:
„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„24
基于ARM-LINUX的GPS导航系统
朱衡
(物理与电子信息学院应用电子技术教育专业06级指导老师:
周永宏)
摘要:
本系统由GPS数据采集并显示、地图显示两大部分组成,模拟GPS导航的过程。
通过GPS模块、arm9硬件环境、嵌入式LINUX操作系统、TFT触摸屏等模块来完成整个体系的运作,使其实时采集GPS数据,然后将GPS数据对应的地图显示出来,再利用串口将数据送入PC机数据库中实现查询等一系列功能。
本设计的特点在于界面友好、用户易操作、功耗低、便于长时间户外导航。
关键词:
ARM;LINUX;GPS;C++语言;SHELL编程;嵌入式操作系统
TheARM-LINUX-basedGPSnavigationsystem
ZhuHeng
(Institute:
InstituteofPhysicsandElectronicInformationProfessional:
AppliedElectronicTechnologyEducation
Year:
06Instructor:
ZHOUYong-hong)
Abstract:
ThissystemconsistsofGPSdatacollection,mapdisplaycomposedoftwoparts,simulatedGPSnavigationprocess.ThroughtheGPSmodule,arm9hardwareenvironment,embeddedLINUXoperatingsystem,TFTtouchscreenandothermodulestocompletetheoperationoftheentiresystemtocollectreal-timeGPSdata,GPSdataandthendisplaythecorrespondingmap,re-usethedataintothePCserialportmachineinthedatabasequeries,andsotoachieveaseriesoffunctions.Thisdesignfeatureisuser-friendly,usereasyto1
operate,lowpowerconsumption,easytonavigatealongtimeoutdoors.
Keywords:
ARM;LINUX;GPS;C++language;SHELLprogramming;embeddedoperatingsystem
0引言
GPS是英文GlobalPositioningSystem(全球定位系统)的简称,而其中文简称为“球位系”。
GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。
其主要目的是为陆、海、空三大领域提供实时、全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。
随着人民生活水平的法杖,GPS技术被越来越多的应用在个人PDA、个人车载终端、手机等个人设备上。
人们通过手持GPS,能准确知道自己所在的位置,从实现到导航、确定旅游路线、获取地理信息等功能。
本文介绍的GPS导航系统,以ARM作为主控芯片,配以GPS、TFT触摸屏、嵌入式LINUX操作系统,构建了一个集GPS信息显示、地图显示、语音导航为一体的完整系统。
本系统在一定程度上推动了个人手持GPS导航设备研究的发展。
1系统方案选择和论证
1.1总体设计方案
个人手持设备要求界面美观、功耗低、易于操作。
系统应有彩色触摸屏;低功耗、高速度的处理芯片;带有嵌入式操作系统;GPS信息接收模块;sd卡用以存放地图;
模块框图分别如图1所示:
图1系统结构框图
SystemStructureDiagram
1.2部分模块设计方案
1.2.1
控制模块设计方案
方案一:
采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。
用于语音处理和识别等领域。
满足系统GPS模块和语音导航功能的需要。
由于本系统需要彩色人机交互界面,对处理速度要求较高,故不采用。
方案二:
采用samsung公司的s3c2440。
S3c2440采用ARM920t内核,实现了MMU、ARBA、BUS和Harvard高速缓冲体系结构。
是一块高性能、低功耗的嵌入式芯片。
可植入操作系统。
在个人PDA领域应用及广。
植入操作系统后,在用户GUI编程方面具有很大优势。
内置AD/DA,便于扩展语音模块。
故选用此芯片为主控芯片。
1.2.2操作系统选择方案
Linux操作系统广泛应用在嵌入式设备中,其源代码开放、免费;内核性能高效、多任务、可制定;完善的图形管理、文件管理机制;良好的开发环境、强大的工具集。
可移植QT开发环境,可实现跨平台的编译,代码重用率高。
1.2.3GPS模块选择方案
方案一:
采用串口接口GPS模块。
优点:
便于驱动,价格便宜。
缺点:
嵌入式linux的调试需要用到串口,若GPS模块占用了串口会造成调试不便。
故不采用
方案二:
采用usb接口GPS模块。
优点:
便于携带、连接开发板。
缺点:
驱动相对较难、价格相对较贵。
为了便于调试和携带,采用usb接口GPS模块。
1.2.4显示模块设计方案
3
方案一:
采用LCD显示。
液晶显示屏(LCD)具有轻薄短小,低耗电量。
但不能实现触摸功能,故部采用。
方案二:
采用TFT显示。
TFT屏幕带有四线式电阻触摸膜,能实现触摸功能、便于用户操作,故采用。
1.2.5地图文件存放方案
方案一:
采用s3c2440核心板内置nandflash存放。
Nandflash读取速度快。
但容量较小,只有128M,不适合存放大量地图数据,故不采用。
方案二:
采用外置sd卡。
Sd卡读取速度相对较慢,且会增加成本。
但能存放大量数据(1G~8G),地图更新升级也很方便。
故采用。
1.3总体方案确定
1)控制芯片:
采用s3c2440arm9处理器
2)液晶显示模块:
采用NECTFT3.5寸屏幕
3)GPS模块:
采用三星公司的GPS-USBII模块
4)nandflash:
采用K9F1208;
5)norflash:
采用AM29LV160DB
5)音频处理芯片:
UDA1341TS;
6)SD卡模块:
采用金士顿公司的4GBSD卡;
7)电源模块:
采用两个8V可充电锂电池;
8)操作系统:
采用嵌入式linux操作系统
2系统的硬件设计与实现
系统硬件采用友善之臂的s3c2440mini2440开发板。
Mini2440体积小,便于携带;接口丰富,易于扩展;功耗低,便于长时间户外导航。
Mini2440硬件特性如下图:
4
图2主控芯片电路
Fig.2Master-chipcircuitry
2.1主控芯片电路
主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良。
5
6
图2.1主控芯片电路
Fig.2.1Circuitofultrasonictransmittingandreceiving
2.2flash芯片电路
2.2.1nandflash芯片电路Nandflash是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。
芯片容量128M。
适合存放高密度数据结构
图2.2.1主控芯片电路
Fig.2.2.1Circuitofultrasonictransmittingandreceiving
2.2.2norflash芯片电路
Norflash是系统BIOS存储区。
该芯片掉电不丢失数据、寿命长,可反复擦写。
芯片容量8M。
适合高速度、低数据密度的数据结构。
7
图2.2.2主控芯片电路
Fig.2.2.2norflashchipcircuitry
2.3串口电路
采用max3232电平转换芯片与计算机通信
8
图2.3串口电路
Fig.2.3Serialcircuit
2.4usb端口电路
采用usb2.0协议,usb接口用以连接gps模块
图2.4usb端口电路
Fig.2.4Drivingcircuit
2.5系统总线及lcd接口电路
9
图2.5系统总线及lcd接口电路
Fig.2.5Drivingcircuit
2.6电源电路
系统输入电压为DC5VC,通过LM1117-1.8、LM1117-33、MAX8869EU18芯片转换成系统需要的三种电压:
1.8V、3.3V、1.25V
图2.6电源电路
Fig.6Powercircuit
10
3系统的软件设计
本系统的所有程序均采用C++语言编写,开发工具为QTembed2.0。
程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。
3.1程序整体结构框图
图3.1maintab类流程图
Fig.3.1Diagramoftheoverallstructureofprogram
3.2Maintab类
Maintab类负责程序外框基本定义及程序初始化
图3.2maintab类流程图
Fig.3.2maintabClassFlowchart
3.3mainwidgt类
Mainwidgt类负责对各个按钮部件、页面部件的初始化
图3.3mainwidget类流程图
Fig.3.3mainwidgetclassFlowchart
3.4config类流程图
Config类用以实现对地图路径、gps模块波特率的设置12
图3.4config类流程图
Fig.3.4configclassFlowchart
3.5map类
Map类负责读取mapinfo文件里的地图,并显示对应地图。
地图显示算法:
首先把地图分割成n*n小块。
然后系统通过得知整张地图四角的坐标,计算出地图每个像素点所对应的坐标。
最后根据读取的gps信息,找到对应的地图,并显示到lcd上。
图3.5map类流程图
Fig.3.5mapclassFlowchart
3.6gps_diver类
gps_diver类负责驱动gps模块,gps驱动原理如下所述:
GPS卫星发射两种频率的载波信号,即频率为1575.42MHz的L1载波和频率为
1227.60HMz的L2载波。
L1为民用频率,L2为军用。
民用GPS信号调试成C/A码发送,C/A码又被称为粗捕获码,是1MHz的伪随机噪声码(PRN码),其码长为1023位(周期为1ms)。
用户机接受到C/A码后,通过gps接受器,解调为发送次C/A码的卫星时间。
并通过多个卫星发送的C/A码时间差(至少3个),来确定当前位置。
并以串口的形式把经纬度数据发送给上位机。
14
图3.6gps_driver类流程图
Fig.3.6gps_driverclassFlowchart
3.7staSNR类
StaSnR类负责对检测卫星数量,并告知gps_driver类。
图3.7strSNR类流程图
Fig.3.7strSNRclassFlowchart
3.8debugPDF类
debugPDF类负责提供调试信息,错误编号等内容。
调试程序时,配合linux中gdb命令。
能实现断点调试、逐步调试等功能并显示对应的错误信息。
15
定义如下:
#include
#include
#ifndefDEBUG_PDF_H
#defineDEBUG_PDF_H
//===============debuglevelforinfotracebug
#definedebug1
#definePOP3DEBUG1
#ifdefPOP3DEBUG
#definePDF(level,fmt,args...)\
if(debug>=level)printf("[%s:
%d]"fmt,__PRETTY_FUNCTION__,__LINE__,##args)
#else
#definePDF(level,fmt,args...)do{}while(0)
#endif
0:
没有任何的显示!
1:
正常工作的,能显示工作运行主流程errorexitfatalshowit
2:
更进一显示信息
3:
完全跟踪!
3.9Makefile文件
Makefile文件为整个工程的管理文件,作用是连接各个头文件、c文件,最终编译成可执行文件。
由于使用qt开发环境,程序可以在x86平台上与arm平台上分别运行。
只需要修改Makefile文件中的编译期即可。
3.10地图文件(mapinfo.txt文件)
地图文件由一大张成都市区地图分割成许多小地图。
Map.cfg文件里包含了整张地图信16
息。
mapinfo:
103.831787,30.687817,104.314155,30.473525,1500,1200,300。
分别代表整个地图的左上角经纬度、右下角经纬度、地图像素的长度、地图像素的宽度、每张地图的像素宽度。
软件通过读取map.cfg的内容,来获取地图的基本信息。
地图软件获取方法:
采用专业地图下载软件UMD(universalmapsdownload),用户只需在此软件里输入想要地图的四角经纬度坐标。
即可得到所需地图。
保证mapinfo.txtL里的地图坐标与实际坐标一致。
4测试
4.1操作系统烧写测试
安装操作系统测试的目的是搭建系统的软件环境,便于后续工作安装linux有如下步骤
1.格式化nandflash
2.安装bootloader
3.安装内核文件
4.安装文件系统
如下图所示
17
图4.1.1烧写操作系统--vivi界面
Fig.4.1.1Flowchartofprogramofcoolingautomatically
安装好操作系统后,重启系统,将出现如下画面。
图4.1.2操作系统启动画面
Figure4.1.2operatingsystemtostartscreen
系统烧写成功
4.2卫星接收测试
卫星接收测试的目的是检测接收到卫星的数量,以便在接收到相同卫星的情况下,检测gps信号。
测试位置:
四川省成都市。
第一次测试:
位置—室内卫星数量0如下图:
18
图4.2.1第一次卫星接收测试Figure4.2.1Thefirsttestsatellitereception
第二次测试:
位置—室外空旷地带卫星数量7如下图:
图4.2.2第二次卫星接收测试Figure4.2.2Thesecondtestsatellitereception
第三次测试:
位置—街道卫星数量6如下图:
19
图4.2.3第三次卫星接收测试
Figure4.2.2Thethirdtestsatellitereception
经测试,在室内不能接收到卫星的gps信号。
故此系统只能在户外使用。
4.3地图显示测试
地图显示测试的目的是测试载入地图的正误、验证地图上下左右移动的功能。
第一次测试:
能实现上下左右移动,显示地图如下图:
20
图4.3.1第一次地图显示测试
Figure4.3.1Thefirstmapshowstest
第二次测试:
能实现上下左右移动,显示地图如下图:
21
图4.3.2第二次地图显示测试
第三次测试:
能实现上下左右移动,显示地图如下图:
Figure4.3.2Thesecondmapshowstest
图4.3.3第三次地图显示测试
Figure4.3.3Thethirdmapshowstest
经测试地图能准确的载入,并能实现上下左右移动的功能
4.4gps信号检测测试
Gps信号测试的目的是测试gps信号的精确度,测试数据列于表3中。
表3gps数据测量表
22
从上表可以看出,gps数据精确度较高,误差都在0.01%左右
4.5功耗测试
测试环境:
户外
系统使用硬件:
gps模块、sd卡、液晶屏
从上表可看出,系统功耗在1w左右。
能满足设计技术指标。
4.6其他测试
1)地图路径变更测试。
功能实现,测试通过
2)gps串口波特率设置。
功能实现,测试通过
4.7测试结果分析
由以上的测试数据可以看出:
本GPS导航系统能很好地实现题目要求的各项功能。
测试期间运行稳定,基本达到了设计要求。
5总结
23
本系统成功的模拟了个人手持gps导航系统。
用户通过点击触摸屏幕、方便的使用软件。
实现了地图的显示、拖动;gps信息、卫星数量的显示;地图路径的更改;gps波特率的更改的功能。
系统低功耗、高处理速度、操作简易、界面有好。
已具有一定的实用价值。
通过这次毕业设计,我在更加牢固、灵活地掌握了所学的专业知识的同时。
大量学习了嵌入式方面的相关知识:
arm体系结构、操作系统、c++编程、shell编程、硬件驱动程序。
参考文献:
[1]杜春雷ARM体系结构与编程清华大学出版社2003-08-12
[2]c++语言程序设计(第三版)郑莉董渊张瑞丰编著清华大学出版社2001-10-11
[3]嵌入式系统开发齐宇徐俊编著人民邮电出版社2005-06-05
[4][美]DouglasBoling嵌入式linux编程北京科彦科技发展公司译北京大学出版社2003-03-12
[5]张洪斌QT编程指南电子科技大学出版社2006-06-12
[6]李先力文苍茂GPS原理及应用清华大小而出版社2004-08-27
[8]李新峰何广生赵秀文基于ARM9的嵌入式Linux开发技术电子工业出版社2003-03-18
[9]ThomasL.Floyd.ElectronicDevices[M].Prentice-HallInc,Newjersey1999-05-19
致谢
至此,我的毕业设计已经基本完成。
回想过去的点点滴滴,如果没有学校、学院、老师、同学的关心和帮助,我也无法按期完成这令我满意的作品。
在此,我首先感谢学校和学院为我提供优越的实验场所和器材,使我能够更加方便、顺利地进行作品设计与调试,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARMLINUX GPS 导航系统 论文