基于ARM-LINUX的GPS导航系统论文_第1页
基于ARM-LINUX的GPS导航系统论文_第2页
基于ARM-LINUX的GPS导航系统论文_第3页
基于ARM-LINUX的GPS导航系统论文_第4页
基于ARM-LINUX的GPS导航系统论文_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE PAGE 73目 录0摘要 1TOC p h z t 样式47,1,样式48,2,样式49,3 HYPERLINK l _Toc217034711 1引言2 HYPERLINK l _Toc217034712 1系统方案选择择与论证 PAGEREF _Toc217034712 h 2 HYPERLINK l _Toc217034713 1.1总体设计计方案 3 HYPERLINK l _Toc217034714 1.2部分模块块设计方案 PAGEREF _Toc217034714 h 3 HYPERLINK l _Toc217034715 1.2.1 主主控芯片选择择方案 PAGER

2、EF _Toc217034715 h 3 HYPERLINK l _Toc217034715 1.2.2 操操作系统及选选择方案 PAGEREF _Toc217034715 h 3 HYPERLINK l _Toc217034716 1.2.3 GGPS模块设设计方案 PAGEREF _Toc217034716 h 3 HYPERLINK l _Toc217034718 1.2.4显示示模块设计方方案 3 HYPERLINK l _Toc217034718 1.2.5地图图文件存放方方案 PAGEREF _Toc217034718 h 4 HYPERLINK l _Toc217034720 1

3、.3总体方案案确定42 系统硬件设设计2.1主控芯芯片电路52.2 fllash芯片片电路 72.3串口电电路 82.4 ussb接口电路路 92.6系统总总线及lcdd接口电路 92.5电源电电路 10 HYPERLINK l _Toc217034726 3系统的软件设设计 PAGEREF _Toc217034726 h 11 HYPERLINK l _Toc217034727 3.1程序结构构框图 PAGEREF _Toc217034727 h 11 HYPERLINK l _Toc217034728 3.2 Maiintab类类 PAGEREF _Toc217034728 h 111 H

4、YPERLINK l _Toc217034729 3.3 Maiinwidgget类 PAGEREF _Toc217034729 h 11 HYPERLINK l _Toc21170347730 3.4 connfig 类类 PAGEREF _Toc217034730 h 12 HYPERLINK l _Toc217034731 3.5 mapp类 PAGEREF _Toc217034731 h 13 HYPERLINK l _Toc217034732 3.6 gpss_diveer 类 PAGEREF _Toc217034732 h 14 HYPERLINK l _Toc217034735

5、3.7 staaSNR 类类 PAGEREF _Toc217034735 h 14 HYPERLINK l _Toc217034736 3.8 debbug_PDDF 类 PAGEREF _Toc217034736 h 15 HYPERLINK l _Toc217034737 3.9 Makkefilee 文件 PAGEREF _Toc217034737 h 16 HYPERLINK l _Toc217034738 3.10 地图图文件 (mmapinffo.txtt文件) PAGEREF _Toc217034738 h 16 HYPERLINK l _Toc217034739 4测试 PAG

6、EREF _Toc217034739 h 16 HYPERLINK l _Toc217034740 4.1操作系统统烧写测试 116 HYPERLINK l _Toc217034741 4.2 卫星接接收测试18 HYPERLINK l _Toc217034743 4.3地图显示示测试 20 HYPERLINK l _Toc217034744 4.4GPS信信号检测测试试 PAGEREF _Toc217034744 h 22 HYPERLINK l _Toc217034745 4.5功耗测试试 PAGEREF _Toc217034745 h 224.6其他测试试 2234.7测试结果果分析 2

7、3 HYPERLINK l _Toc217034746 5总结 23 HYPERLINK l _Toc217034747 参考文献: 23 HYPERLINK l _Toc217034748 谢: 24 HYPERLINK l _Toc217034749 录: 24基于ARM-LLINUX的的GPS导航航系统 李双元(西安交通大学学城市学院 计算机科学学与技术 08级) 摘要:本系统由由GPS数据据采集并显示示、地图显示示两大部分组组成,模拟GGPS导航的的过程。通过过GPS模块块、arm111硬件环境境、嵌入式LLINUX操操作系统、TTFT触摸屏屏等模块来完完成整个体系系的运作,使使其实时

8、采集集GPS数据据,然后将GGPS数据对对应的地图显显示出来,再再利用串口将将数据送入PPC机数据库库中实现查询询等一系列功功能。本设计计的特点在于于界面友好、用用户易操作、功功耗低、便于于长时间户外外导航。关键词:ARMM11;LINNUX;GPPS;C+语言;SHHELL编程程;嵌入式LLinux操操作系统;SS3C64110 The ARMM-LINUUX-bassed GPPS navvigatiion syystemZhu Henng(Instittute: Instiitute of Phhysicss and Electtronicc Infoormatiion Prrofess

9、sionall: Appplied Electtronicc Techhnologgy Eduucatioon Yeaar: 066 Insttructoor: ZHHOU Yoong-hoong) Abstracct: This systeem connsistss of GGPS daata coollecttion, map ddisplaay commposedd of ttwo paarts, simullated GPS nnavigaation proceess. TThrouggh thee GPS modulle, arrm11 harrdwaree enviironmeen

10、t, eembeddded LIINUX ooperatting ssystemm, TFTT toucch scrreen aand otther mmodulees to compllete tthe opperatiion off the entirre sysstem tto colllect real-time GPS ddata, GPS ddata aand thhen diisplayy the correespondding mmap, rre-usee the data into the PPC serrial pport mmachinne in the ddatabaa

11、se quueriess, andd so tto achhieve a serries oof funnctionns. Thhis deesign featuure iss userr-frieendly, userr easyy to ooperatte, loow powwer coonsumpption, easyy to nnavigaate a long time outdooors.Keywordds: ARM11; LIINUX; GPS; C + + langguage; SHELLL proogrammming; Embeddded linux operaating sy

12、steem ;S3C664100 引言GPS 是英文文Globaal Possitionning SSystemm(全球定位位系统)的简简称,而其中中文简称为“球球位系”。GGPS是200世纪70年年代由美国陆陆海空三军联联合研制的新新一代空间卫卫星导航定位位系统 。其其主要目的是是为陆、海、空空三大领域提提供实时、 全天候和全全球性的导航航服务,并用用于情报收集集、核爆监测测和应急通讯讯等一些军事事目的。随着着人民生活水水平的法杖,GGPS技术被被越来越多的的应用在个人人PDA、个个人车载终端端、手机等个个人设备上。人人们通过手持持GPS,能能准确知道自自己所在的位位置,从实现现到导航、确确

13、定旅游路线线、获取地理理信息等功能能。本文介绍绍的GPS导导航系统,以以ARM作为为主控芯片,配配以GPS、TTFT触摸屏屏、嵌入式LLINUX操操作系统,构构建了一个集集GPS信息息显示、地图图显示、语音音导航为一体体的完整系统统。本系统在一定定程度上推动动了个人手持持GPS导航航设备研究的的发展。1 系统方案选选择和论证1.1 总体设设计方案个人手持设备要要求界面美观观、功耗低、易易于操作。系系统应有彩色色触摸屏;低低功耗、高速速度的处理芯芯片;带有嵌嵌入式操作系系统;GPSS信息接收模模块;sd卡卡用以存放地地图;TFT触摸屏模块框图分别如如图1所示:TFT触摸屏 Nand flashS

14、d卡(存放地图)Gps模块S3c64Sd卡(存放地图)Gps模块S3c6410串口(调试及下载)串口(调试及下载)电 源图1 系统结结构框图Fig.1 Systeem Strructurre Diaagram1.2 部分模模块设计方案案1.2.1 控控制模块设计计方案采用samsuung公司的的s3c6410。S3c64110采用ARRM-Linnux2.33.28的内核,实现现了MMU、AARBA、BBUS和Haarvardd高速缓冲体体系结构。是是一块高性能能、低功耗的的嵌入式芯片片。可植入操操作系统。在在个人PDAA领域应用及及广。植入操操作系统后,在在用户GUII编程方面具具有很大优势

15、势。内置ADD/DA,便便于扩展语音音模块。1. 2. 22 操作系统统选择方案Linux操操作系统广泛泛应用在嵌入入式设备中,其其源代码开放放、免费;内内核性能高效效、多任务、可可制定;完善善的图形管理理、文件管理理机制;良好好的开发环境境、强大的工具具集。可移植QT开发发环境,可实实现跨平台的的编译,代码码重用率高。1.2.3 GGPS模块选选择方案采用串口接口GGPS模块。优优点:便于驱驱动,价格便便宜。缺点:嵌入式liinux的调调试需要用到到串口,若GGPS模块占占用了串口会会造成调试不不便。1.2.4显示示模块设计方方案采用TFT显示示。TFT屏屏幕带有四线线式电阻触摸摸膜,能实现

16、现触摸功能、便便于用户操作作。1.2.5地图图文件存放方方案采用外置sdd卡。Sd卡读取速速度相对较慢慢,且会增加加成本。但能能存放大量数数据(),地地图更新升级级也很方便。1.3 总体方方案确定1) 控制芯片片: 采用用s3c64410 arrm11 处理器器2) 液晶显示示模块: 采用4.33寸TFT真真彩液晶屏幕幕块(4800*272)3) GPS模模块: 采采用三星公司司的GPS模模块4) nandd flassh: 采用 K9F12088;5) 音频处理理芯片: UDA11341TSS;6) SD卡 模块: 采用用金士顿公司司的 4GBB SD卡;7) 电源模块块: 插座座;8) 操

17、作系统统: 采用用嵌入式liinux操作作系统2 系统的硬件件设计与实现现 UT-SS3C64110开发板是是性能稳定、功功能强大、高高性价比的AARM11处处理器开发板板;专为消费费类电子、工工业控制、车车载导航、行行业PDA等等电子产品的的开发而设计计,主要供广广大企业用户户进行产品前前期软硬件性性能评估验证证、设计参考考用,其小巧巧、紧凑、一一体式的人性性化外观设计计也是高校、培培训机构、嵌嵌入式爱好者者学习研究的的最佳工具。如下图 图2 主控芯片片电路Fig.2 MMasterr-chipp circcuitryy2.1 主控芯芯片电路主控芯片为ss3c64110的6层核核心板,该核核

18、心板性能稳稳定、工艺精精良。图2.1 主控控芯片电路Fig.2.11 Circcuit oof ulttrasonnic trransmiittingg and receiiving2.2 flaash芯片电电路2.21 nand flashh芯片电路Nand fflash 是操作系统统的程序存储储区,该芯片片掉电不丢失失数据、寿命命长,可反复复擦写。芯片片容量1288M。适合存存放高密度数数据结构图2.2.1 主控芯片电电路Fig.2.22.1 Ciircuitt of uultrassonic transsmittiing annd recceivinng 2.22 nnor fllash

19、芯片片电路Nor fllash是系系统 BIOOS 存储区区。该芯片掉掉电不丢失数数据、寿命长长,可反复擦擦写。芯片容容量8M。适合高高速度、低数数据密度的数数据结构。 图2.2.2 主控芯片电电路 Fig.2.2.22 nor fflash chip circuuitry2.3 串口电电路 采用mmax32332电平转换换芯片与计算算机通信图2.3 串口口电路Fig.2.33 Seriaal cirrcuit2.4 usbb端口电路采用usb2.0协议,uusb接口用用以连接gpps模块图2.4 ussb端口电路路Fig.2.44 Drivving ccircuiit2.5 系统总总线及lc

20、dd接口电路图2.5系统总总线及lcdd接口电路Fig.2.55 Drivving ccircuiit2.6 电源电电路系统输入电压为为DC5VCC,通过LMM1117-1.8、LLM11177-33、MMAX88669EU188芯片转换成成系统需要的的三种电压:1.8V、33.3V、11.25V图2.6 电源源电路Fig.6 PPower circuuit3 系统的软件件设计本系统的所有程程序均采用CC+语言编编写,开发工工具为QT embedd 2.0。程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。3.1 程序整整体结构框图图图3.1 maaintabb类流程

21、图 Fig.3.1 DDiagraam of the ooveralll strructurre of progrram3.2 Maiintab类类 Maintabb 类负责程程序外框基本本定义及程序序初始化 开始 设置好卫星星信号强度数数据设置窗口大小、颜颜色显示窗口图3.2 maaintabb类流程图 FFig.3.2 maiintab Classs Flowwchartt3.3 maiinwidggt类Mainwiidgt类负负责对各个按按钮部件、页页面部件的初初始化开始 定义义GPS时钟钟 绘制主框 绘制上下左左右四个按键键 绘制三个个页面标签 连接点击按按钮事件与处处理按键程序序 结

22、束图3.3 maainwiddget 类类流程图Fig.3.33 maiinwidgget cllass FFlowchhart3.4 connfig类流流程图Config类类用以实现对对地图路径、ggps模块波波特率的设置置 开始 设置地图路路径 设置ggps的波特特率 结束束图3.4 coonfig 类流程图Fig.3.44 conffig cllass FFlowchhart 3.5 mapp类Map类负责读读取mapiinfo文件件里的地图 ,并显示对对应地图。地图显示算法:首先把地图图分割成n*n小块。然然后系统通过过得知整张地地图四角的坐坐标,计算出出地图每个像像素点所对应应的坐标

23、。最最后根据读取取的gps信信息,找到对对应的地图,并并显示到lccd上。 开始 读取地图图的基本信息息根据当前ggps信息找找到对应的地图并显显示 N 地图按键按按下 Y 修修改显示的地地图 结结束图3.5 maap 类流程程图Fig.3.55 map classs Flowwchartt 3.6 gpss_diveer类gps_divver类负责责驱动gpss模块,gpps驱动原理理如下所述: GGPS卫星发发射两种频率率的载波信号号,即频率为为1575.42MHzz的L1载波波和频率为11227.660HMz的的L2载波。L1为民用频频率,L2为为军用。民用用GPS信号号调试成C/A码发

24、送,C/AA码又被称为为粗捕获码,是1MHzz的伪随机噪噪声码(PRRN码),其其码长为10023位(周周期为1mss)。用户机机接受到C/A码后,通通过gps接接受器,解调调为发送次CC/A码的卫卫星时间。并并通过多个卫卫星发送的CC/A码时间间差(至少33个),来确确定当前位置置。并以串口口的形式把经经纬度数据发发送给上位机机。 开始 设置串口属性性,访问gpps模块设置gps时钟钟 驱动gpss模块计算经纬度坐标标值结束图3.6 gpps_driiver类流流程图Fig.3.66 gps_driveer claass Flowcchart 3.7 staaSNR类StaSnR类类负责对检

25、测测卫星数量,并并告知gpss_drivver类。 开始 检检测卫星数量量 N 卫星数数量3?Y 结束图3.7 sttrSNR类类流程图Fig.3.77 strSSNR cllass FFlowchhart 3.8 debbugPDFF类debugPDDF类负责提提供调试信息息,错误编号号等内容。调调试程序时,配配合linuux中gdbb命令。能实现断点调试试、逐步调试试等功能并显显示对应的错错误信息。定义如下:#includde #includde #ifndeff DEBUUG_PDFF_H#definee DEBUUG_PDFF_H/=debugg leveel forr infoo t

26、racce bugg #definee debbug 1#definee POOP3DEBBUG 1#ifdef POOP3DEBBUG #definee PDF(levell, fmtt, arggs.) if (debbug = leveel) prrintf(%s:%d fmt, _PRRETTY_FUNCTTION_, _LLINE_ , # argss)#else#definee PDF(levell, fmtt, arggs.) do whiile(0)#endif0:没有任何的的显示!1:正常工作的的,能显示工工作运行主流流程erroor exiit fattal shhow i

27、tt2:更进一显示示信息3:完全跟踪!3.9 Makkefilee文件Makefille文件为整整个工程的管管理文件 ,作作用是连接各各个头文件、cc文件,最终终编译成可执执行文件。由由于使用qtt开发环境,程程序可以在xx86平台上上与arm平平台上分别运运行。只需要要修改Makkefilee文件中的编编译期即可。3.10 地图图文件(maapinfoo.txt 文件)地图文件由一大大张西安市区地图图分割成许多多小地图。MMap.cffg文件里包包含了整张地地图信息。分分别代表整个个地图的左上上角经纬度、右右下角经纬度度、地图像素素的长度、地地图像素的宽宽度、每张地地图的像素宽宽度。软件通通

28、过读取maap.cfgg的内容,来来获取地图的的基本信息。地图软件获取方方法:采用专专业地图下载载软件 UMMD(uniiversaal mapps dowwnloadd),用户只只需在此软件件里输入想要要地图的四角角经纬度坐标标。即可得到到所需地图。保保证mapiinfo.ttxtL里的的地图坐标与与实际坐标一一致。4 测试4.1 操作系系统烧写测试试安装操作系统统测试的目的的是搭建系统统的软件环境境,便于后续续工作安装linuux有如下步步骤格式化nandd flassh安装bootlloaderr安装内核文件安装文件系统如下图所示图44.1.1 烧写操作作系统-vvivi界面面Fig.4

29、.11.1 Flow chartt of proogram of coooling automaaticallly安装好操作系统统后,重启系系统,将出现现如下画面。 图 4.1.2 操作系系统启动画面面Figgure 44.1.2 operaating systeem to startt screeen系统烧写成功4.2 卫星接接收测试卫星接收测试的的目的是检测测接收到卫星星的数量,以以便在接收到到相同卫星的的情况下,检检测gps信信号。测试位位置:四川省省成都市。第一次测试:位位置室内 卫星数量 0 如下图图: 图图 4.2.1 第一次次卫星接收测测试Figgure 44.2.1 The f

30、irstt testt sateellitee receeptionn第二次测试:位位置室外空旷地地带 卫星星数量 7 如下图图: 图 4.2.22 第二次卫卫星接收测试试Figgure 44.2.2 The seconnd tesst sattellitte recceptioon第三次测试:位位置街道 卫星数量量 6 如下图:图 4.2.33 第三次卫卫星接收测试试Figgure 44.2.2 The thirdd testt sateellitee receeptionn经测试,在室内内不能接收到到卫星的gpps信号。故故此系统只能能在户外使用用。4.3 地图显显示测试地图显示测试的的目

31、的是测试试载入地图的的正误、验证证地图上下左左右移动的功功能。第一次测试: 能实现上下下左右移动,显显示地图如下下图: 图 4.3.11第一次地图图显示测试 FFiguree 4.3.1 Thee firsst mapp showws tesst第二次测试:能能实现上下左左右移动,显显示地图如下下图: 图 4.3.22 第二次地地图显示测试试 Figurre 4.33.2 The seconnd mapp showws tesst第三次测试:能能实现上下左左右移动,显显示地图如下下图: 图 4.3.33 第三次地地图显示测试试 Figurre 4.33.3 The thirdd map sho

32、wss testt经测试地图能准准确的载入,并并能实现上下下左右移动的的功能4.4 gpss信号检测测测试 Gps信信号测试的目目的是测试ggps信号的的精确度,测测试数据列于于表3中。表3 gps数数据测量表测试次数(次)第一次第二次第三次显示经纬度东经:30.77974155北纬:106.0805117东经:30.88135444北纬: 1066.096884 东经:30.88045344北纬:106.085422 实际经纬度东经:30.77973677北纬:106.0802335 东经:30.77974155北纬:106.098511 东经:30.77974155北纬:106.08846

33、6误差计算 0.0133 0.012 00.00111%从上表可以看出出,gps数数据精确度较较高,误差都都在0.011%左右4.5 功耗测测试测试环境:户外外系统使用硬件:gps模块块、sd卡、液液晶屏测试次数(次)第一次第二次第三次电流 3000毫安 3550 毫安 3220毫安电压 3.32V 33.31V 2.95V功耗 0.99W 11.15W 0.94W从上表可看出,系系统功耗在11w左右。能能满足设计技技术指标。4.6 其他测测试1)地图路径变变更测试 。 功能实现现,测试通过过2)gps串口口波特率设置置。 功能实实现,测试通通过 4.7 测试结结果分析由以上的测试数数据可以看

34、出出:本GPSS导航系统能能很好地实现现题目要求的的各项功能。测测试期间运行行稳定,基本本达到了设计计要求。5 总结本系统成功的模模拟了个人手手持gps导导航系统。用用户通过点击击触摸屏幕、方方便的使用软软件。实现了了地图的显示示、拖动;ggps信息、卫卫星数量的显显示;地图路路径的更改;gps波特特率的更改的的功能。系统统低功耗、高高处理速度、操操作简易、界界面有好。已已具有一定的的实用价值。通过这次毕业设设计,我在更更加牢固、灵灵活地掌握了了所学的专业业知识的同时时。大量学习习了嵌入式方方面的相关知知识:armm体系结构、操操作系统、cc+编程、sshell编编程、硬件驱驱动程序。参考文献

35、:1 杜春雷雷 ARM体体系结构与编编程 清华大大学出版社 2003-08-122 2 c+语言程序设设计(第三版版) 郑莉 董渊 张瑞瑞丰 编著 清华大学出出版社 20001-100-113 嵌入式式系统开发 齐宇 徐俊俊 编著 人人民邮电出版版社 20005-06-054 美Dougllas Booling 嵌入式liinux编程程 北京科彦彦科技发展公公司 译 北北京大学出版版社 20003-03-125 张洪斌斌 QT编程程指南 电子子科技大学出出版社 20006-066-126 李先力力 文苍茂 GPS原理理及应用清华华大小而出版版社 20004-08-278 HYPERLINK /

36、book/search_pub.php?category=01&key2=%C0%EE%D0%C2%B7%E5 李新峰峰 HYPERLINK /book/search_pub.php?category=01&key2=%BA%CE%B9%E3%C9%FA 何广生 HYPERLINK /book/search_pub.php?category=01&key2=%D5%D4%D0%E3%CE%C4 赵秀文 基于ARMM9的嵌入式式Linuxx开发技术 电子工业出出版社20003-03-189Thommas L.Flooyd.Ellectroonic DDevicees M. PPrentiice-

37、Haall Innc, New jerseey 1999-005-19致谢至此,我的毕业业设计已经基基本完成。回回想过去的点点点滴滴,如如果没有学校校、学院、老老师、同学的的关心和帮助助,我也无法法按期完成这这令我满意的的作品。在此,我首先感感谢学校和学学院为我提供供优越的实验验场所和器材材,使我能够够更加方便、顺顺利地进行作作品设计与调调试,减少了了设计周期;其次,我要感谢谢指导老师周永宏老师在在百忙之中抽抽出时间同我我一起探讨系系统构架和软软件的编写,并并不厌其烦地地替我修改论论文,给我了了莫大的帮助助,并使我学学到了很多东东西。周老师严谨负负责的治学态态度,给我留留下了深刻的的印象,将使

38、使我终身受益益。我再次对对周老师这一年年多来对我的的关心和帮助助表示最诚挚挚的谢意;最后,向在整个个设计过程中中关心和帮助助过我的其他他老师和同学学致谢。附录:附录1:测试仪仪器表7 测试仪仪器设备清单单序号型号、名称用途数量1PC机编译程序12UT33D 数数字万用表测量各电路工作作情况13Gps导航仪测试显示的gpps正误14vm虚拟机测试操作系统15成都、南充市区区地图测试显示地图正正误26精密电流、电压压表测试系统功耗2附录2:部分参参考源程序Maintabb 类程序:#includde #includde #includde #includde #includde #includde

39、 #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde #includde /=#includde MaainWiddget.hh#includde zhhMap.hh#includde gpps_driiver.hh#includde maaintabb.h#includde GPPS.hMainTabb:MaiinTab(QWidgget *ppa

40、rentt,consst chaar * nname):QTabWWidgett(pareent,naame)GpMainLLayoutt=new MainLLayoutt;GpGPS=nnew GPPS;GpConfiig=neww Conffig;GpConfiig-GeetObjeect(GppMainLLayoutt);GpConfiig-GeetObjeect(GppGPS);GpConfiig-seetCOMBBDRatee();GpConfiig-seetMapPPath();addTab(GpMaiinLayoout,QSStringg(MAPP);addTab(GpGPSS,

41、QStrring(GPS IINFO);addTab(GpConnfig,QQStrinng(COONFIG);timeridd=starrtTimeer(10000);void MaainTabb:timmerEveent(QTTimerEEvent * eveent)GPS_DAATA mmGPSDaata;int i;PDF(3,TABMMasterr timeer alaarm!nn);/=设置置好卫星信号号强度数据!GpGPS-mpSattSNR-SetDaata(GppMainLLayoutt-pzhhDrawRRect-pGpsddriverr-mGPPSStaSSNR);/=G

42、pMainLLayoutt-pzhhDrawRRect-pGpsddriverr-GettData(mGPSDData);GpGPS-mpGPSSinfo-SetDData(mmGPSDaata);/=PDF(3,TABMaaster timerr endn);int maiin(intt argcc, chaar* aargv) QAppliicatioon appp(argcc,argvv);MainTaab t;app.seetMainnWidgeet(&t);t.showw();returnn app.exec();Gps_driiver 类类程序:#includde #includd

43、e gpps_driiver.hh#includde #includde #includde #includde /*NMEA 0183 的 Cheecksumm 只能作88位异或包括括,的运运算,但不包包括$ 及 * 定义符号号的运算。 最后的两位是检检验码的heex(16进进制)转成AASCII 两个符号 (0-9, A-F)。*/char nmmea_chhecksuum(chaar *seentencce)/* is tthe chhecksuum on the sspeciffied ssentennce goood? */unsignned chhar suum = 0;char

44、cc, *p = senntencee,csumm2; c = *p; wwhile (c != *) sum = c;p+;cc=*p; /= csuum0=sum&00 x0f; if(csum0=110) cssum0+=A; elsse csuum0+=0;/= csuum1=(sum&0 xf0)4; if(csum1=110) cssum1+=A; elsse csuum1+=0;c= (cssum1=touupper(p1) & ccsum00=tooupperr(p2) );returnn c;/ 0 iss erroor int zh_gpsDrriver:fifooctl(

45、FFifoTyype * priv ,int data ,consst unssignedd charr flagg)int teemp = -1;unsignned innt widdx = 00; wiidx = priv-w_iddx; /* SSave tthe olld inddex beefore proceeedingg */ iff (flaag = WR) /writte datta /* Saave itt to bbufferr */ if (privv-w_iidx + 1) % BUFSIIZE) = priiv-r_idx) /* Addjust read inde

46、xx sincce bufffer iis fulll */ /* 无法法写入来处理理fifo满满。can wd too fifoo */ /priiv-r_idx = (priiv-r_idx + 1) % BUFSSIZE;/保证证是环状的FFIFO。 PDF(22,bufffer ffullnn);retuurn -11; priv-buffferprriv-ww_idx = daata; priv-w_iddx = (priv-w_iddx + 11) % BBUFSIZZE;/保证是是环状的FIIFO。 returrn 0; ellse /read data if (priv-r_i

47、ddx = widx) PDFF(2, buffeer empptyn);retturn -1; else temp= privv-buffferppriv-r_idxx; priv-r_idxx = (ppriv-r_idxx + 1) % BUUFSIZEE;/保证证是环状的FFIFO。retuurn teemp; PDDF(2, flagg erroorn);returnn -1;zh_gpsDDriverr:zh_gpsDrriver(QObjeect * parennt,connst chhar * name):QObjject(pparentt,namee)COM_PAARAM m

48、mCOMPaaram;mCOMPaaram.SSeriallDeviccePathh=/deev/ttyyUSB0;mCOMPaaram.BBaudRaate=96600;id=staartTimmer(2000);buf.poos=0;buf.sww=0;mpGPS_GPRMCC=&mGPPS_GPRRMC;mpGPS_GPRMCC-gpss_sw=V;mpGPS_GPGSVV=&mGPPS_GPGGSV;PDF(1,gps driveer connstrucct!n);/* Oppen moodem ddevicee for readiing annd wriiting and nnot

49、ass conttrolliing * ttty. | O_NONNBLOCKK*/fd=-1;setCOMM(mCOMMParamm);int zh_gpsDrriver:GPRSS_GetTTextLiineFroomFIFOO( CMMD_BUFF * ppcmd_bbuf) / 去去掉换行符 int jj=0;int iddata;do idataa=fifooctl(&fifo,idataa,RD);if(iddata=-1) returrn 0;else if(iddata=n) pcmdd_buf-bufpcmd_buf-pos=(charr)(idaata&0 xx00ff);

50、pcmdd_buf-pos+;pcmmd_buff-sw=1;breaak;elsepcmdd_buf-bufpcmd_buf-pos=idataa;pcmdd_buf-pos+;while(j+poos)(BBUFSIZZE-5) PDF(22,pottentiaal fifflo ovverfloow!n);CMDDBUF_IInit(ppcmd_bbuf);PDF(2,pos=%dn,pcmdd_buf-pos);pcmd_bbuf-bbufpccmd_buuf-poos=0;/PDFF(4,ppos=%dd ibuufpos=%d a msg=%sn,pos,iibufpoos,pSt

51、trBufffer); returnn 1;int zhh_gpsDDriverr:zh_getGPPSdataa(GPS_DATA & gpssdata)PDF(3,zh_ggetGPSSdata!n);gpsdatta.latti=mpGGPS_GPPRMC-latittude;gpsdatta.lonnt=mpGGPS_GPPRMC-longiitude ;returnn mpGPPS_GPRRMC-ggps_sww;double ddmm22dddd(doublle ddmmm)doublee fi,fffz,fffx;int fzz;fi=ddmmm;fz=(innt)fi; fff

52、z=(doouble)fz;/取整数部分分ffx=fii-ffz;/取小数数部分fi=ffzz+ffx/0.6; PPDF(2,ddmmm=%lf dddd:%lfnn ,dddmm,fii ); returnn fi; int zhh_gpsDDriverr:GPGGSV_Annalysiis( GPPS_GPGGSV * pGPS_GPGSVV)switchh(pGPSS_GPGSSV-GSSV_ID)case 11:memccpy(&(mGPSSStaSNRR.Sta0),&(pGPSS_GPGSSV-Stta1),ssizeoff(STA_INFO);memcpyy(&(mGGPSSt

53、aaSNR.SSta1),&(ppGPS_GGPGSV-Sta22),sizzeof(SSTA_INNFO);memcpyy(&(mGGPSStaaSNR.SSta2),&(ppGPS_GGPGSV-Sta33),sizzeof(SSTA_INNFO);memcpyy(&(mGGPSStaaSNR.SSta3),&(ppGPS_GGPGSV-Sta44),sizzeof(SSTA_INNFO);break;case 22:memccpy(&(mGPSSStaSNRR.Sta4),&(pGPSS_GPGSSV-Stta1),ssizeoff(STA_INFO);memcpyy(&(mGGPSSt

54、aaSNR.SSta5),&(ppGPS_GGPGSV-Sta22),sizzeof(SSTA_INNFO);memcpyy(&(mGGPSStaaSNR.SSta6),&(ppGPS_GGPGSV-Sta33),sizzeof(SSTA_INNFO);memcpyy(&(mGGPSStaaSNR.SSta7),&(ppGPS_GGPGSV-Sta44),sizzeof(SSTA_INNFO);break;case 33:memccpy(&(mGPSSStaSNRR.Sta8),&(pGPSS_GPGSSV-Stta1),ssizeoff(STA_INFO);memcpyy(&(mGGPSSt

55、aaSNR.SSta9),&(ppGPS_GGPGSV-Sta22),sizzeof(SSTA_INNFO);memcpyy(&(mGGPSStaaSNR.SSta100),&(pGPS_GPGSVV-Staa3),siizeof(STA_IINFO);memcpyy(&(mGGPSStaaSNR.SSta111),&(pGPS_GPGSVV-Staa4),siizeof(STA_IINFO);break;defaullt:breeak;int zhh_gpsDDriverr:CMDD_Anallysis( CMMD_BUFF * ppcmd_bbuf )char* pcmdd;int i;i

56、f( pcmmd_buff-sw =1) PDF(3,senteence: %sn endnn,pcmmd_buff-buff);pcmd=sttrstr(&pcmdd_buf-buf0,$GPRMCC);/只对此语句句解析if (pccmd!=NNULL) if (!nmea_checkksum(&pcmd1) PDF(22,cheeck suum errrorn);/*CMMDBUF_Init(&buf); returrn 1;*/ /2:判判断有效性。i= ssscanf(pcmd,%*AV%cc,&mmpGPS_GPRMCC-gpss_sw);PDF(33,gpssSwFilled=%

57、ccn,mmpGPS_GPRMCC-gpss_sw);if(mppGPS_GGPRMC-gps_sw=V) PDF(3,V invallid daatan); CMMDBUF_Init(&buf); reeturn 2; /ssccanf 并并不能由空值值来输入浮点点数。 / printtf(Gppsid=%sn uutc_tiime=%ssn gpps_sw=%cn latittude=%lfn lati_ns=%ccn loongituude=%llfn llongi_ew=%ccn sppd=%lff,/Gpssid,uttc_timme,gpss_sw,llatituude, llat

58、i_nns,lonngitudde,lonngi_eww,spd); i= ssscanf(pcmd,%,%,%cc,%lf,%c,%llf,%c,%lf,%lf,%,%lf,%cc,%s,mpGPSS_GPRMMC-Gppsid, mpGPSS_GPRMMC-uttc_timme,&mppGPS_GGPRMC-gps_sw, &mpGPSS_GPRMMC-laatitudde,&mppGPS_GGPRMC-latii_ns, &mpGPPS_GPRRMC-llongittude,&mpGPSS_GPRMMC-loongi_eew,/*77*/&mpGPPS_GPRRMC-sspeed,&mp

59、GPPS_GPRRMC-aangle,mpGPSS_GPRMMC-uttc_datte,&mppGPS_GGPRMC-magnneDecllinat,&mpGPPS_GPRRMC-mmagneDDeclinnatAnggle,mppGPS_GGPRMC-sumCCheck);/请检查查 sscaanf 的返返回值,可能能会失败,如如果小于要收收得的数目。if(igps_ssw=V; CMDDBUF_IInit(&buf);returrn 3;/转换成成度制,而不不是度,分,十十进制分形式式。mpGPSS_GPRMMC-laatitudde=ddmmm2ddddd(mppGPS_GGPRMC-l

60、atiitude/100);mpGPSS_GPRMMC-loongituude=dddmm2ddddd(mmpGPS_GPRMCC-lonngitudde/1000);PDF(33,gpss_sw=%cn llatituude=%llfn llati_nns=%cn, mmpGPS_GPRMCC-gpss_sw,mmpGPS_GPRMCC-lattitudee, mpGGPS_GPPRMC-lati_ns);PDF(33,lonngitudde=%lffn loongi_eew=%cn, mmpGPS_GPRMCC-lonngitudde,mpGGPS_GPPRMC-longii_ew);go

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论