目 录
第1章 绪论… …1
1.1 选题背景和意义… … .1
1.2 主要研究内容… … …1
第2章 GPS系统基础知识介绍… … … …2
2.1 GPS 定位的坐标系统… … … …2
2.2 GPS 定位的时间系统… … … …3
2.4 电磁波的传播与 GPS 卫星信号… … …4
2.4.1 电磁波的介绍… … … .4
2.4.2 大气层对GPS信号传播的影响…… … … .5
2.4.3 GPS卫星的测距码信号… … … .6
2.4.4 GPS 定位的观测量及误差分析… … … .8
2.4.5 GPS定位的方法与观测量… … .8
2.4.6 观测量的误差来源及其影响… … .9
第3章 GPS系统关键技术… … …12
3.1 1linux开发平台… …12
3.2 QT图形化界面的处理… …12
3.3 串口的操作… …13
3.4 数据的格式… …15
第4章 GPS系统分析与设计… …18
4.1 需求分析… … …18
4.2 技术可行性分析… …18
4.4 总体设计… …18
4.4.1 开发环境选定… …18
4.4.2 操作系统选定… …18
4.4.3 处理器选定… … …18
4.4.4 软硬件划分… … … … … … …19
第5章 GPS系统实现… … … …20
5.1 串口端口读取配置实现… … … …20
5.2 读取GPS信息的实现… … … …21
5.3 奇偶校验处理… … … …22
5.4 数据格式的转换与处理的实现… … … …22
5.5 Sqlit数据库对接收到的数据的处理… … … …23
5.6 各种按键的信号函数处理… … … …23
5.7 第二主界面… … … …24
5.8 地图… … … … … …26
第6章 总结和展望… … … … … … .27
6.1 总结… … … … … …28
6.2 展望… … … … … …28
致谢… … … … … … … … … …29
参考文献… … … … … … … … … …30
研究内容
开发一款车载GPS定位导航系统,主要是基于ARM11开发板实现的,主要技术和知识包括几方面:
(1)、C++语言在QT界面编程中的应用和API的调用
(2)、QT界面的设计和绘制
(3)、数据的读取解析和使用
第4章 GPS分析与设计
4.1、需求分析
自从GPS问世以来,就以其高精度、全天候、全球覆盖、方便灵活和优质价廉吸引了世界许多用户。目前,国内GPS应用发展势头迅猛,但是在北岛的问世以后,国家的调控,使之有所下滑,但是gps在以往的几年发展过程中,已经占据了国内的市场,要想马上从北岛到GPS的转换是不切合实际的。所以GPS在国内的市场还是有广阔的前景的。
尤其是我国GPS车辆跟踪系统市场现在已进入规模发展时期,尤其从北京市申奥及物流配送推动了GPS车辆跟踪市场的发展,尤其是在城市中公家车和出租车系统的投入,特别是长途运输车辆的应用的实施,将可能给车辆跟踪带来前所未有的机遇。
4.2、技术可行性分析
4.2.1 技术基础
了解linux基础,懂得在linux下使用通信终端软件,在linux下调用api,同时了解pc版板的设计,使用qt的gui的界面设计和程序设计
4.2.2 项目技术要求
熟悉C++编程,熟悉QTgui,了解各个gui的作用
4.2.3 界面编程要求
使用开源GIS界面平台quantumGis
4.2.4接口编码要求
串口通信 GPS信号格式
4.2.5.软件基础
Linux系统使用基础,minicom的设置,nfs设置,gcc编译基础,arm-linux交叉编译器基础,QT界面 设计,开发板文件传输。
4.3 总体设计
4.3.1. 开发环境选定
开发的linux版本,Ubuntu10.10发行版本
附带的交叉编译器:arm-linux-gcc-2.95.3,arm-linux-gcc-2.93.3,arm-linux-gcc-3.3.2 编译内核和应用程序使用3.4.1版本的编译器,编译Qtopia使用的是3.3.2版本
qt界面处使用的是QT4 create
4.3.2操作系统的选定
选用2.26版本的linux内核进行裁剪配置得到在开发板所用的linux系统
4.3.3处理器选定
1.S3C6410:32bitARM11内核,标准工作频率400MHz
2.系统时钟:内部pll产生400MHzcpu内核工作频率,外部总线频率100-133MHz
3.LCD控制器:cpu内置STN/CSTN/TFT LCD控制器,支持1024*768分辨率以上的各种液晶。
4.触摸屏控制器:cpu内置4线制电阻式触摸屏控制器
5.100MHz以太网控制器
6.1通道5线制串口 2通道3限制串口
7.1通道USB1.1主机接口,本文转载自http://www.biyezuopin.vip/onews.asp?id=12529可接USBhub,可扩充多个USB主口
8.1通道USB1.1设备接口
9.SD/MMC卡接口
10.LCD接口,可接多种尺寸的TFT真彩液晶屏
11.专用复用电路
12.触摸屏控制电路
13.RTC实时时钟及大容量后备电池
14.标准20pin JTAG调试接口
15.4只自定义功能LED指示灯
16.电源指示灯
17.6只自定义按键
18.复位按键
19.SPI接口
20.标准的64M nand-flash
21.标准配置64M SDRAM
4.4 软硬件划分
软件使用Qt/embedded作为前台界面的主要开发环境,同时通过结合调用底层驱动程序取得硬件控制信号和数据,得到定位效果。
mySerial::mySerial(){struct termios opt;fd = open("/dev/ttyUSB0", O_RDWR);if(fd<0)printf("error");//start settcgetattr(fd, &opt);//获取与终端相关的参数,参数fd为终端的文件描述符,返回的结果保存在termios结构体中,该结构体一般包括如下的成员.//set speedtcflush(fd, TCIOFLUSH);//同时刷新收到的数据但是不读,并且刷新写入的数据但是不传送cfsetispeed(&opt, B9600);//指定输入波特率cfsetospeed(&opt, B9600);//指定输出波特率//set databitsopt.c_cflag |= CS8;//将数据位修改为8bit//set parityopt.c_cflag &= ~PARENB;//设置为无校验位//set stopbitsopt.c_cflag &= ~CSTOPB;//空格//end settcsetattr(fd, TCSANOW, &opt);//将修改后的termios数据设置到串口中tcflush(fd, TCIOFLUSH);memset(buf, 0, 200);//清空bufwrite(fd,buf,200);}void mySerial::readSerial(){read(fd, buf, 199);//从buf里面读取199个大小的字节}