基于嵌入式LINUX车载导航系统设计_第1页
基于嵌入式LINUX车载导航系统设计_第2页
基于嵌入式LINUX车载导航系统设计_第3页
基于嵌入式LINUX车载导航系统设计_第4页
基于嵌入式LINUX车载导航系统设计_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、图1 系统结构系统软件基于嵌入式Linux 操作系统,并选择Qt/Embedded 作为图形用户界面(GUI)开发环境。Qt 是Trolltech 公司推出的跨平台的应用程序框架,Qt/Embedded 是Qt 面向嵌入式应用的版本,一次编写,随处编译。 Qt 特有的信号/槽(singal /slot)机制,加强了对象间通信的灵活性;通过裁剪去掉无关模块可以调整库文件的大小,适合嵌入式系统使用;在QT 中支持OpenGL 接口和矢量图形格式SVG. 能充分满足导航系统绘图需要。系统从GPS实时获取车辆位置(包括经纬度与时间等)和运行信息(包括车速与方向等),在电子地图上显示相关导航信息,用户通

2、过触摸屏操作,提供地图漫游、地图查询和道路信息管理等功能。3 GPS/GPRS 系统的组成原理及构成(1) GPS 定位基本原理GPS 的定位原理实质上就是测量学的空间测距定位,利用在平均20200km 高度均匀分布在6 个轨道的24 颗卫星,发射测距信号码和载波,用户通过接收机接收这些信号测量卫星至接收机之距,通过一系列方程演算,便可知地面定位坐标。用户测得的到卫星的距离称为“伪距”,它不是用户到卫星的真正距离,其中还包括卫星时钟的偏差,用户时钟的偏差信号,传播延迟引起的测距误差等,因此在至少收到三颗卫星后,即可计算出平面坐标(经纬度)值,收到四颗则可在计算出方程值,这就是GPS 的基本定位

3、原理。图 2 GPS 定位原理图程式中各个参数意义如下: x,y,z 为待测点坐标的空间直角坐标。x i 、y i 、z i (i=1, 2, 3, 4)分别为4 颗卫星在t 时刻的空间直角坐标,可由卫星导航电文求得。Vti (i=1, 2, 3, 4)分别为4 颗卫星的卫星钟的钟差,由卫星星历提供。Vt0为接收机的钟差。由以上方程即可解算出待测点的坐标 x,y,z 和接收机的钟差Vt0。(2) GPRS 网络结构及传输原理GPRS 是在原有的GSM 网络中增加了两个节点:SGSN(Serving GPRS SupportNode,服务GPRS 节点)和GGSN(Gateway GPRS Su

4、pportNode,网关GPRS 节点),SGSN 的主要作用就是记录车辆的当前位置信息,并在车辆和GGSN 之间完成移动分组数据的发送和接收,GGSN 主要是起网关作用,它可以和许多不同的数据网络连接。GGSN 提供了GPRS 网络与Internet 的接口,而SGSN 负责联系移动终端和GGSN,应此,一个完整的GPRS 通讯过程就是车载终端发出的数据先传至BSS(Base Station System 基站系统),经由GPRS 网络传至GGSN,通过GGSN 接入Internet,在Internet 上依靠TCP 协议传给上位机,终端接收数据的流程则与此相反,GPRS 数据收发在网络层使

5、用TCP/IP 协议。4 系统软件的设计与实现(1) 系统软件结构主要由以下模块组成:用户界面显示模块、GPRS 通讯模块、GPS 定位模块、地图匹配模块、路径规划模块、电子地图模块、底层通讯模块等。图3 系统软件结构总体框图用户界面显示模块:用户与车载导航系统交互的平台,通过调用其它模块起到信息交互的作用;GPRS 通讯模块:将用户驾驶信息及车况信息实时传送至远程监控端,不仅起到记录车况的作用,而且还能防盗;GPS 定位模块:实时接收卫星定位数据,包括经纬度,时间,海拔,即时速度等;地图匹配模块:根据GPS 定位获得的数据,与系统中存储的地图信息进行匹配,获得车辆周围的地理信息,为用户提供参

6、照;路径规划模块:用户输入起始坐标和终点坐标,系统自动计算最近道路,从而起到车辆导航的作用;底层通讯模块:通过CAN 总线及232 总线,获取车辆各种信息,从而在用户显示界面上显示出来。(2) Linux 在S3C2440 上的移植嵌入式 Linux 管理整个导航系统的硬件设备并对所有程序进行调度,是软件系统的核心。由于Linux 是面向PC 机的操作系统,将其用于嵌入式领域,需要进行移植,它一般包括启动加载代码(Bootloader)的移植、内核移植、驱动程序的编写、文件系统的构建等。将 U-boot 源代码在ADS 环境下进行编译,将编译成功的二进制代码烧写到开发板所带Flash 上,然后

7、在上电启动。Bootloader 首先完成硬件设备的初始化,然后设置Linux 内核的启动参数,最后调用Liuux 内核,直接跳转到Linux 内核的第一条指令处。从 Linux 的方式看待设备可区分为3 种基本设备类型:字符设备,块设备,或者网络设备。车载导航系统设备驱动程序由以下三个部分组成:(1)自动配置和初始化子程序。初始化子程序首先运行,负责检测硬件设备是否存在和能否正常运行;(2)中断服务子程序。由嵌入式Liuux 系统来接收硬件中断,再通过系统来调用中断服务子程序;(3)服务于I/O 请求的子程序。对I/O 设备进行存取。将编写好的设备驱动编译到内核中,在系统启动时和内核一起启动

8、。文件系统构成了 Linux 系统上所有数据的基础。经过比较,系统设计时决定使用Cramfs文件系统,当访问文件时,Cramfs 文件系统自动的将要访问的文件解压到RAM 中,会尽可能给实际执行的应用程序保留RAM 空间,而且可以为运行时解压缩挪出额外的CPU 周期。使用mkcramfs 命令生成cramfs 镜像文件,再将其下载到系统中去,Linux 启动时自动加载根文件系统,完成系统的启动。(3)多线程技术在Qt 中的应用在具有图形用户界面的 Qt 应用程序中,主线程由GUI 线程充当,它同时拥有一个或多个非GUI 线程作为工作线程来处理其它耗时操作,例如不断更新的车辆方向、速度,地图的匹

9、配等。这样,即使在负载很重的情况下,应用程序也可以保证图形用户界面的响应。依赖 Qt 提供的多线程技术,使得该导航系统中的多数据交互成为可能,GUI 线程在调用了exec()函数后,要么等待一个事件,要么处理一个事件,每一个线程都可以有自己的事件循环,如图4所示,起始线程通过QcoreApplication:exec()启动事件循环,其他非GUI 线程通过Qthread:exec()启动各自的事件循环。图 4 Qt 线程事件模型5 结论本文作者的创新点:(1)将嵌入式Liuux 操作系统用于车载导航系统,是对传统的车辆导航系统的重大改进,成本大幅降低,同时利用Linux 系统的多线程技术,可以解决系统中多个任务并行处理的问题,保障了系统的稳定性、可靠性,提高了系统的运行速度。(2)显示系统采用Qt/Embeded

温馨提示

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

评论

0/150

提交评论