基于ARM-LINUX的GPS导航系统.doc
《基于ARM-LINUX的GPS导航系统.doc》由会员分享,可在线阅读,更多相关《基于ARM-LINUX的GPS导航系统.doc(44页珍藏版)》请在沃文网上搜索。
1、目 录0摘要 11引言21系统方案选择与论证21.1总体设计方案 31.2部分模块设计方案31.2.1 主控芯片选择方案 31.2.2 操作系统及选择方案 31.2.3 GPS模块设计方案31.2.4显示模块设计方案 31.2.5地图文件存放方案 41.3总体方案确定42 系统硬件设计2.1主控芯片电路52.2 flash芯片电路 72.3串口电路 82.4 usb接口电路 92.6系统总线及lcd接口电路 92.5电源电路 103系统的软件设计 113.1程序结构框图 113.2 Maintab类 113.3 Mainwidget类 113.4 config 类 123.5 map类 133
2、.6 gps_diver 类 143.7 staSNR 类 143.8 debug_PDF 类 153.9 Makefile 文件 163.10 地图文件 (mapinfo.txt文件)164测试 164.1操作系统烧写测试 164.2 卫星接收测试184.3地图显示测试 204.4GPS信号检测测试224.5功耗测试 224.6其他测试 234.7测试结果分析 235总结 23参考文献: 23谢: 24录: 24基于ARM-LINUX的GPS导航系统 摘要:本系统由GPS数据采集并显示、地图显示两大部分组成,模拟GPS导航的过程。通过GPS模块、arm9硬件环境、嵌入式LINUX操作系统、T
3、FT触摸屏等模块来完成整个体系的运作,使其实时采集GPS数据,然后将GPS数据对应的地图显示出来,再利用串口将数据送入PC机数据库中实现查询等一系列功能。本设计的特点在于界面友好、用户易操作、功耗低、便于长时间户外导航。关键词:ARM;LINUX;GPS;C+语言;SHELL编程;嵌入式操作系统 The ARM-LINUX-based GPS navigation system Abstract: This system consists of GPS data collection, map display composed of two parts, simulated GPS navig
4、ation process. Through the GPS module, arm9 hardware environment, embedded LINUX operating system, TFT touch screen and other modules to complete the operation of the entire system to collect real-time GPS data, GPS data and then display the corresponding map, re-use the data into the PC serial port
5、 machine in the database queries, and so to achieve a series of functions. This design feature is user-friendly, user easy to operate, low power consumption, easy to navigate a long time outdoors.Keywords: ARM; LINUX; GPS; C + + language; SHELL programming; embedded operating system0 引言GPS 是英文Global
6、 Positioning System(全球定位系统)的简称,而其中文简称为“球位系”。GPS是20世纪70年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统 。其主要目的是为陆、海、空三大领域提供实时、 全天候和全球性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的。随着人民生活水平的法杖,GPS技术被越来越多的应用在个人PDA、个人车载终端、手机等个人设备上。人们通过手持GPS,能准确知道自己所在的位置,从实现到导航、确定旅游路线、获取地理信息等功能。本文介绍的GPS导航系统,以ARM作为主控芯片,配以GPS、TFT触摸屏、嵌入式LINUX操作系统,构建了一个集GPS信息
7、显示、地图显示、语音导航为一体的完整系统。本系统在一定程度上推动了个人手持GPS导航设备研究的发展。1 系统方案选择和论证1.1 总体设计方案个人手持设备要求界面美观、功耗低、易于操作。系统应有彩色触摸屏;低功耗、高速度的处理芯片;带有嵌入式操作系统;GPS信息接收模块;sd卡用以存放地图;TFT触摸屏模块框图分别如图1所示:Nor flash Nand flashSd卡(存放地图)Gps模块S3c2440串口(调试及下载)电 源图1 系统结构框图Fig.1 System Structure Diagram1.2 部分模块设计方案1.2.1 控制模块设计方案方案一:采用凌阳公司的16位单片机,
8、它是16位控制器,具有体积小、驱动能力高、集成度高、易扩展、可靠性高、功耗低、结构简单、中断处理能力强等特点。用于语音处理和识别等领域。满足系统GPS模块和语音导航功能的需要。由于本系统需要彩色人机交互界面,对处理速度要求较高,故不采用。方案二:采用samsung公司的s3c2440。S3c2440采用ARM920t内核,实现了MMU、ARBA、BUS和Harvard高速缓冲体系结构。是一块高性能、低功耗的嵌入式芯片。可植入操作系统。在个人PDA领域应用及广。植入操作系统后,在用户GUI编程方面具有很大优势。内置AD/DA,便于扩展语音模块。故选用此芯片为主控芯片。1. 2. 2 操作系统选择
9、方案Linux操作系统广泛应用在嵌入式设备中,其源代码开放、免费;内核性能高效、多任务、可制定;完善的图形管理、文件管理机制;良好的开发环境、强大的工具集。可移植QT开发环境,可实现跨平台的编译,代码重用率高。1.2.3 GPS模块选择方案方案一:采用串口接口GPS模块。优点:便于驱动,价格便宜。缺点:嵌入式linux的调试需要用到串口,若GPS模块占用了串口会造成调试不便。故不采用方案二:采用usb接口GPS模块。优点:便于携带、连接开发板。缺点:驱动相对较难、价格相对较贵。为了便于调试和携带,采用usb接口GPS模块。1.2.4显示模块设计方案方案一:采用LCD显示。液晶显示屏(LCD)具
10、有轻薄短小,低耗电量。但不能实现触摸功能,故部采用。方案二:采用TFT显示。TFT屏幕带有四线式电阻触摸膜,能实现触摸功能、便于用户操作,故采用。1.2.5地图文件存放方案方案一:采用s3c2440核心板内置nand flash 存放。Nand flash 读取速度快。但容量较小,只有128M,不适合存放大量地图数据,故不采用。方案二:采用外置sd卡。Sd卡读取速度相对较慢,且会增加成本。但能存放大量数据(),地图更新升级也很方便。故采用。1.3 总体方案确定1) 控制芯片: 采用s3c2440 arm9 处理器2) 液晶显示模块: 采用NEC TFT 3.5 寸屏幕3) GPS模块: 采用三
11、星公司的GPS-USBII模块4) nand flash: 采用 K9F1208;5) nor flash: 采用 AM29LV160DB5) 音频处理芯片: UDA1341TS;6) SD卡 模块: 采用金士顿公司的 4GB SD卡;7) 电源模块: 采用两个8V可充电锂电池;8) 操作系统: 采用嵌入式linux操作系统2 系统的硬件设计与实现 系统硬件采用友善之臂的s3c2440 mini2440开发板。Mini2440 体积小,便于携带;接口丰富,易于扩展;功耗低,便于长时间户外导航。Mini2440硬件特性如下图:图2 主控芯片电路Fig.2 Master-chip circuitr
12、y2.1 主控芯片电路主控芯片为s3c2440的6层核心板,该核心板性能稳定、工艺精良。图2.1 主控芯片电路Fig.2.1 Circuit of ultrasonic transmitting and receiving2.2 flash芯片电路2.21 nand flash芯片电路Nand flash 是操作系统的程序存储区,该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量128M。适合存放高密度数据结构图2.2.1 主控芯片电路Fig.2.2.1 Circuit of ultrasonic transmitting and receiving 2.22 nor flash芯片电路Nor
13、 flash是系统 BIOS 存储区。该芯片掉电不丢失数据、寿命长,可反复擦写。芯片容量8M。适合高速度、低数据密度的数据结构。 图2.2.2 主控芯片电路 Fig.2.2.2 nor flash chip circuitry2.3 串口电路 采用max3232电平转换芯片与计算机通信图2.3 串口电路Fig.2.3 Serial circuit2.4 usb端口电路采用usb2.0协议,usb接口用以连接gps模块图2.4 usb端口电路Fig.2.4 Driving circuit2.5 系统总线及lcd接口电路图2.5系统总线及lcd接口电路Fig.2.5 Driving circuit
14、2.6 电源电路系统输入电压为DC5VC,通过LM1117-1.8、LM1117-33、MAX8869EU18芯片转换成系统需要的三种电压:1.8V、3.3V、1.25V图2.6 电源电路Fig.6 Power circuit3 系统的软件设计本系统的所有程序均采用C+语言编写,开发工具为QT embed 2.0。程序定义了许多类来分别管理各个模块,通过对各个类的操作,来构建整个程序框架。3.1 程序整体结构框图图3.1 maintab类流程图 Fig.3.1 Diagram of the overall structure of program3.2 Maintab类 Maintab 类负责
15、程序外框基本定义及程序初始化 开始 设置好卫星信号强度数据设置窗口大小、颜色显示窗口图3.2 maintab类流程图 Fig.3.2 maintab Class Flowchart3.3 mainwidgt类Mainwidgt类负责对各个按钮部件、页面部件的初始化开始 定义GPS时钟 绘制主框 绘制上下左右四个按键 绘制三个页面标签 连接点击按钮事件与处理按键程序 结束图3.3 mainwidget 类流程图Fig.3.3 mainwidget class Flowchart3.4 config类流程图Config类用以实现对地图路径、gps模块波特率的设置 开始 设置地图路径 设置gps的波
16、特率 结束图3.4 config 类流程图Fig.3.4 config class Flowchart 3.5 map类Map类负责读取mapinfo文件里的地图 ,并显示对应地图。地图显示算法:首先把地图分割成n*n小块。然后系统通过得知整张地图四角的坐标,计算出地图每个像素点所对应的坐标。最后根据读取的gps信息,找到对应的地图,并显示到lcd上。 开始 读取地图的基本信息根据当前gps信息找到对应的地图并显示 N 地图按键按下 Y 修改显示的地图 结束图3.5 map 类流程图Fig.3.5 map class Flowchart 3.6 gps_diver类gps_diver类负责驱动
17、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个),来确定当前位置。并以串口的形式把经纬度数据发送给上位机。 开始 设置串口属性,访问gps模块设置gps时钟 驱动gps模块计算经纬度坐标值结束图3.6 gps_dri
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 ARM LINUX GPS 导航系统