admin 管理员组

文章数量: 887609


2024年2月25日发(作者:客户端证书有误 请检查手机的时间设置是否)

车载导航系统设计

摘要:随着汽车产业的迅速发展,GPS车载导航系统得到了越来越广泛的应用,已成为汽车上的重要配置,为用户提供便利。另一方面随着计算机技术、通信技术的迅猛发展,微型化和专业化成为发展的新趋势,嵌入式系统已经成为信息产业的热点。而Linux操作系统以其性能稳定可靠、源码公开免费、可裁剪、易移植等优点成为嵌入式系统的首选操作系统,具有巨大的市场价值和潜力。

在此基础上,本文提出了将GPS导航定位技术和嵌入式Linux系统相结合,设计基于嵌入式Linux的GPS车裁定位导航定位系统。在ARM9平台上移植嵌入式Linux操作系统,然后基于此平台实现GPS车载定位导航系统。与此同时,要求系统平台具备一个完整的车载多媒体终端的潜力,包括GPS导航定位、语音导航、防盗以及MP3/MP4播放等功能。该系统设计中,硬件系统是基础,嵌入式Linux操作系统是软件的运行平台,它们在GPS车载导航系统中具有重要的地位。

关键词:嵌入式系统;车载导航:GP5;Linux;ARM9

开发文档: 车载导航系统设计

1.引言

1.1目的

 对需求的进一步明确,提出系统的解决方案,划分模块,初步确定数据结构,可作为编写详细设计说明书的参考,也可作为了解整个系统的的参考资料使用;

 面向的读者:程序员、测试人员、详细设计说明书编写人员,其他读者;

1.2项目背景

 现在,随着GPS技术、多媒体应用、LCD显示技术的日趋成熟,汽车导航、防盗系统在高端汽车中已经是现实,而在普通汽车中实现,也是指日可待了。车载导航系统中包含了很多前卫、实用的技术,如:GPS应用技术、GPRS应用技术、GUI开发技术、多媒体功能应用技术、传感器技术、嵌入式操作系统应用开发技术、系统构建技术、驱动编写技术、数据库技术等等。通过项目的完成,对于巩固理论知识、拓展实用的项目经验都有很大的帮助。[2][3][4]

1.3术语及缩略语定义

1.3.1术语定义[2][3][4]

GPS:全球定位系统。

GPRS:通用分组无线服务。

GUI:图形化用户界面。

sql:结构化查询语言。

1.3.2缩略语定义[2][3][4]

GPS: Global Position System

GPRS: 通用分组无线服务。

GUI: Graphic User Interface

sql: Struct Query Language

开发文档: 车载导航系统设计

2.系统概述

2.l需求规定

 系统目标

设计开发出一个GPS导航系统,并实现短信防盗报警和简单的娱乐功能。

 功能需求

系统应实现以下功能[15]:

1. 定位功能

GPS通过接收卫星信号,可以准确地定出其所在的位置,位置误差小于10米。利用GPS,在地图上实时显示车辆当前位置。

2. 地图导航功能

输入目标地点后,自动在地图上显示出行车路线;假如用户因为不小心错过路口,没有走车载GPS导航系统推荐的最佳线路,新为用户设计一条回到主航线路线,或是为用户设计一条从新位置到终点的最佳线路。

3. 语音导航功能

输入目标地点后,车辆只要遇到前方路口或者转弯,车载GPS语音系统提示用户转向等语音提示。

4. 防盗功能

通过发送GPRS短信[7],可以返回车辆当前位置。

5. 娱乐功能

播放U盘、SD卡中的MP3、MP4文件。

6. 增加兴趣点功能

由于我国大部分城市都处于建设阶段,随时随地都有可能冒出新的建筑物,由此,电子地图的更新也成为众多消费者关心的问题。因此遇到一些电子地图上没有的目标点,只要你感兴趣或者认为有必要,可将该点或者新路线增加到地图上。

开发文档: 车载导航系统设计

2.2系统结构图

GPS模块GSM/GPRS模块定位信息收发短信用户交互液晶+触摸屏ARM9平台语音提示音乐播放扬声器数据交互SD卡/USB存储嵌入式linux+QT/E+SQLITE数据库加速度测试加速度传感器

系统基于ARM9的硬件平台,采用了嵌入式linux的软件架构,通过扬声器完成语音提示及音乐播放;液晶是进行人机交互的接口;。。。。。。。

2.3软/硬件要求

硬件名称

CPU

FLASH

SDRAM

USB

网口

串口

SD卡接口

I/O

LCD

触摸屏

GPRS模块

GPS模块

加速度传感器

U盘

说明

S3C2410, MPLL=200M

2M norflash + 64M Nand Flash

64M

1个USB Host接口, 1.1标准

10M

2个3线串口

sd卡容量1G

8路I/O

3.5寸240*320 TFT屏

4线电阻式触摸屏

3线串口接线

3线串口接线

输出电压范围0-3V

容量1~4G

说明

Linux-2.6.22

GNU工具

u-boot 1.3.6

所有硬件驱动

根文件系统采用cramfs,用户文件系统采用yaffs2

软件名称

操作系统

开发工具

启动代码

驱动程序

文件系统

开发文档: 车载导航系统设计

GUI

地图

QT

3.系统硬件平台设计

3.1 ARM核心系统设计

1. ARM处理器[9]

ARM(Advanced KISC Machines)公司是全球领先的16/32位RISC微处理器知识产权设计供应商。ARM公司通过将其高性能、低成本、低功耗的RISC微处理器,外围和系统芯片设计技术转让给合作伙伴来生产各具特色的芯片。ARM公司已成为移动通信、手持设备、多媒体数字消费嵌入式解决方案的RISC标准。Intel、Motorola、Samsung、Atmel、Ti等公司都有采用ARM核生产ARM处理器。

3.2 液晶设计

……

3.3 扬声器设计

……

3.4 重力加速度模块设计

………

3.5 存储模块设计

………….

3.6 通信模块设计

1. GPS模块选择

GPS市场经过多年的发展已经非常成熟,而GPS设备随着技术的发展,体积、功耗和成本都得到极大改善,因此其选择余地非常大。国际上的各大知名芯片公司都有做GPS:包括SiRF、u.blox、Ti、Analog Devices、索尼、意法半导体、Atmel、SiGe、u-Nav等等。现在GPS设备大体上可以分为4类

开发文档: 车载导航系统设计

本课题选用了价格便宜、台湾HiMARK公司生产的GPS接收机:EB6808。它是一款基于HiMARK公司的全功能GPS接收机。接收GPS卫星信号经过处理后实现定位,能给出三维坐标以及时间、速度、加速度等参数,适合应用于:车用导航、航海导航、舰队管理、基地服务、自动驾驶、个人导航、旅游设备、轨迹设备、系统及绘图应用程序等。

EB6808 GPS接收机的主要性能参数:

 低耗损:<30mA

 通道数:可同时追踪、接收12颗卫星数据

 定位时问:每l00mS接收卫星信号;每秒更新定位数据

 启动时间:冷启动/温启动/热启动 60/35/10秒

 支持协议:NMEA-01830/二进制

 定时精度:<500纳秒

 接收机结构:AR2010(SoC)&RX3650(RF IC)

 灵敏度:静态-132dBm;跟踪-139dBm

 定位精度:5~15m

 动态性能:高度18000m,速度500m/s,加速度4G

 输出接口:RS-232,波特率4800/9600~115200bps

 输入电压:3.3V~9V DC

 操作温度:-40℃~85℃

2. 通信模块选择

现今我国正在使用的无线数据通信网络有3种:GSM、GPRS和CDMA。分别介绍如下:[7]

GSM(Global System for Mobile Communications)是全球移动通信系统的简称,基于窄带TDMA国制式,是世界上主要的蜂窝系统之一。

GPRS(General Packet Radio Service)是通用分组无线业务的简称,是在现有的GSM网络基础上发展出来的一个新的网络。GPRS能给用户提供端到端的、广域的无线IP连接。通俗地讲,GPRS是一项无线高速数据传输技术,它以分组交换技术为基础,用户通过GPRS可以在移动状态下使用各种高速数据业务,包括收发E-mail、Internet浏览、即时聊天等。

CDMA(Code Division Multiple Access)是码分多址技术的简称,它是在扩频通讯技术上发展起来的~种崭新而成熟的无线通信技术,目前的标准有W-CDMA、CDMA2000 Jx和TD--SCDMA。CDMA技术的原理是基于扩频技术,即将需要传送的具有一定信号带宽信息数据,用~个带宽远大于信号带宽的高速伪随机码进行调制,使原数据信号的带宽被扩展,再经载波调制并发送出去。开发文档: 车载导航系统设计

接收端使用完全相同的伪随机码,与接收的带宽信号作相关处理,把带宽信号转换为原信息数据的窄带信号(即解扩),以实现信息通信。

AnyDATA.NET公司一直致力于开发设计简单、体积小并且成本低廉的无线数据模块,己成功地研制出DTG系列。DTU-800X是AnyDATA.NET公司最新的一款小巧精密型的无线数据模块。DTU-800X的工作频率:上行824.04~849.97MHz,下行869.04~893.97MHz;工作电压为外部直流4.0V~5.0V;空闲时电流低于1.5mA,忙状态下电流不超过700mA;最大输出功率为0.3w:而且该模块会在空闲时进入睡眠模式,自动切断不工作电路的供电,从而大大降低功耗。DTU-800X的接口方面包括:标准RS-232、数字音频、外部重启、LCD显示、键盘、响铃和R-UIM(中国市场)。软件方面有标准AT指令,内嵌TCP/IP协议、UDP协议。AnyDATA DTU-800X提供了一个操作方便、价格低廉的无线数据传输解决方案。当然,它的功能多于无线数据传输,不过就其在本课题中的应用而言,我们仅需研究其数据传输方面的功能。DTU-800X模块和系统主控器之间的数据传输是通过串13实现的,其提供了三个UART串口。UARTl带有512Byte的FIFO寄存器,波特率可达230.4kbps:UART2和UART3带有64Byte的FIFO寄存器,最高波特率115.2kbps。

3. 串口电路设计

串行口是计算机一种常用的接口,具有连线少、通讯简单的特点。串口技术如今已经发展的很成熟、很稳定,被广泛的应用于各种设备之间的互联。现在使用最广的是9针串口,其针脚功能如表3-2所示。

S3C2410A内置有串口收发模块,只要在外围模块中设计串口电平转换电路就可以与其他设备进行串行通信(本系统中采用了Maxim公司的电平转换芯片MAX3232,可以实现2对串口收发信号电平转换,连线详见图3-13)。

开发文档: 车载导航系统设计

4. 操作系统设计

3.1系统功能结构图

系统移植

系统编码:

子系统编码:

加工编号:

输入数据流:

处理说明:

系统移植主要包括如下三个部分:

1、U-Boot:

编译基于ARM9平台的U-Boot引导程序,并下载到NAND Flash中。实现U盘和SD卡的自动升级功能。

2、Linux 内核:

编译基于ARM9平台的linux内核,去除不必要的内核功能和模块,使内核尽量小巧。

3、文件系统:

根文件系统采用cramfs,用户文件系统采用yaffs2。

文件名称:,zImage,文件系页次:

子文件名称:

加工名称:

填写:XXX

审核:XXX

输出数据流:

日期:XXX

日期:XXX

3.2软件模块说明

3.2.1操作系统模块说明

系统编码:

子系统编码:

模块编号:

功能描述:

初始化硬件平台,运行linux操作系统。

输入数据:开机上电

处理说明:

开发板上电后,由 U-Boot引导启动linux内核,加载文件系统,并最终进入linux字符见面。

输出数据:linux命令行界面

文件名称:

子文件名称:

系统

填写:XXX

模块名称:linux操作审核:XXX

页次:

日期:XXX

日期:XXX

开发文档: 车载导航系统设计

4.驱动开发设计

4.1系统功能结构图

驱动开发

系统编码: 文件名称:

gps.c,gprs.c,framebuffer.c,touchscreen.c,usb.c,sd.c

子系统编码:

加工编号:

输入数据流:

处理说明:

驱动开发主要完成以下几个功能:

1、GPS定位:

内核识别GPS模块,获取GPS经纬度信息,实现用户层到内核层的系统调用。

2、GPRS通讯服务:

内核识别GPRS模块,通过GPRS模块向用户手机发送报警短信息。

3、LCD显示:

内核识别LCD模块,显示字符见面,进而实现图形化用户界面的开发。

4、触摸屏输入:

内核识别触摸屏,实现触摸屏输入。

5、USB接口:

内核识别U盘,实现U盘存储设备的数据交互。

6、SD卡接口:

内核识别SD卡,实现SD卡存储设备的数据交互。

子文件名称:

加工名称:

填写:XXX

审核:XXX

输出数据流:

日期:XXX

日期:XXX

页次:

4.2模块说明

4.2.1 GPS驱动模块说明

系统编码:

子系统编码:

文件名称:

gps.h,gps.c

子文件名称: 填写:XXX 日期:XXX

页次:

开发文档: 车载导航系统设计

模块编号:

功能描述:

模块名称:

GPS驱动

审核:XXX 日期:XXX

初始化GPS模块,提供给用户层获取经纬度数据的接口。

输入数据:

处理说明:

在导航模式下,实时获取GPS模块接收的经纬度信息,并更新值,当用户层应用程序需要时,将数据返回给用户层应用程序。

在防盗模式下,保存原有值不更新,并实时获取新的经纬度值,当新值与旧值相差一定数量时发出信号,通知用户层应用程序。

输出数据:

经度值,纬度值。

4.2.2 GPRS驱动模块说明

系统编码:

子系统编码:

模块编号:

功能描述:

初始化GPRS模块,为用户层应用程序提供交互接口。

输入数据:

要发送的信息内容

处理说明:

由用户层应用程序向GPRS设备文件写入要发送的信息内容,最后通过系统调用通过驱动程序完成信息发送到指定手机终端。

输出数据:

文件名称:

gprs.h,gprs.c

子文件名称:

模块名称:

GPRS驱动

填写:XXX

审核:XXX

日期:XXX

日期:XXX

页次:

4.2.3 LCD驱动模块说明

系统编码:

子系统编码:

模块编号:

功能描述:

初始化LCD屏,实现framebuffer,为用户层应用程序提供显示接口。

开发文档: 车载导航系统设计

文件名称:

lcd.h,lcd.c

子文件名称:

模块名称:

LCD驱动

填写:XXX

审核:XXX

页次:

日期:XXX

日期:XXX

输入数据:

要发送的信息内容

处理说明:

输出数据:

将用户层应用程序写入LCD设备文件的信息通过framebuffer正确传输并显示。

4.2.4 触摸屏驱动模块说明

系统编码:

子系统编码:

模块编号:

功能描述:

初始化触摸屏,为用户层应用程序提供触摸屏输入接口。

输入数据:

触摸事件

处理说明:

初始化触摸屏,响应中断,返回坐标值。

输出数据:

触摸点的坐标

文件名称:

touchscreen.h,touchscreen.c

子文件名称:

模块名称:

触摸屏驱动

填写:XXX

审核:XXX

日期:XXX

日期:XXX

页次:

4.2.5 USB存储设备驱动模块说明

系统编码:

子系统编码:

模块编号:

功能描述:

内核识别USB接口,初始化USB设备,实现读写U盘。

输入数据:

触摸事件

处理说明:

初始化函数,可读/可写中断,读写函数。

输出数据:

触摸点的坐标

文件名称:

usb.h,usb.c

子文件名称:

模块名称:

USB驱动

填写:XXX

审核:XXX

日期:XXX

日期:XXX

页次:

4.2.6 SD卡存储设备驱动模块说明

系统编码: 文件名称: 页次:

开发文档: 车载导航系统设计

sd.h,sd.c

子系统编码:

模块编号:

功能描述:

内核识别SD卡接口,初始化SD卡设备,实现读写SD卡。

输入数据:

触摸事件

处理说明:

初始化函数,可读/可写中断,读写函数。

子文件名称:

模块名称:

SD卡驱动

填写:XXX

审核:XXX

日期:XXX

日期:XXX

输出数据:

触摸点的坐标

开发文档: 车载导航系统设计

5.GPS导航应用程序设计

5.1系统功能结构图

导航应用

系统编码:

子系统编码:

加工编号:

输入数据流:

经纬度坐标值

处理说明:

1. 根据实时获取的坐标值,在地图中显示当前位置。

2. 根据用户输入的起点、终点坐标值,计算最优路径。

3. 在导航过程中,将要到达每一个交叉点时,提供语音提示。

文件名称:

子文件名称:

加工名称:

填写:XXX

审核:XXX

输出数据流:

地图中相对位置

页次:

日期:XXX

日期:XXX

防盗应用

系统编码:

子系统编码:

加工编号:

输入数据流:

经纬度坐标值

处理说明:

保存旧的坐标值,实时获取新的坐标值,当两值相差一定数量值时,产生报警信息。

文件名称:

子文件名称:

加工名称:

填写:XXX

审核:XXX

输出数据流:

报警信息

页次:

日期:XXX

日期:XXX

5.2模块说明

5.2.1 定位模块说明

系统编码:

子系统编码:

模块编号:

文件名称:

子文件名称:

模块名称:定位模块

填写:XXX

审核:XXX

页次:

日期:XXX

日期:XXX

功能描述:实时更新,并在地图上显示当前位置信息。

输入数据:

经纬度坐标值

开发文档: 车载导航系统设计

输出数据:

在地图上标注位置信息

处理说明:

1. 从GPS设备文件中读取当前经纬度坐标。

2. 将经纬度坐标值转换为地图的相对坐标。

3. 以红色圆点的形式在地图上标注该坐标点。

4. 更新坐标点,返回1。

5.2.2导航模块说明

系统编码:

子系统编码:

模块编号:

文件名称:

子文件名称:

模块名称:

导航模块

功能描述: 根据两点坐标确定最优路径,并沿途语音提示导航。

输入数据:

地图上两点坐标

处理说明:

1. 接收用户输入的两点坐标。

2. 计算最优路径。

3. 实时获取经纬度坐标,转换为地图相对坐标,导航。

4. 当当前位置偏离导航路径时,语音提示,并根据当前坐标,重新计算路径。

5. 导航过程中,在即将通过交叉路口点前,提供语音提示,指示路口直行、左转、右转或掉头。

页次:

填写:XXX

审核:XXX

日期:XXX

日期:XXX

输出数据:

两点间最优路径

5.2.3 防盗模块说明

系统编码:

子系统编码:

模块编号:

文件名称:

子文件名称:

模块名称:

防盗功能模块

功能描述:在防盗模式下,通过GPS位置数据的改变,向指定手机发送报警短信息。

输入数据:

经纬度坐标值

输出数据:

报警短信息

填写:XXX

审核:XXX

页次:

日期:XXX

日期:XXX

开发文档: 车载导航系统设计

处理说明:

1. 保存原经纬度坐标值。

2. 实时获取新的坐标值。

3. 计算两点间距离,当距离超过一定值时,产生报警信息,通过GPRS服务发送给指定手机终端。

6.影音娱乐应用程序概要设计

6.1系统功能结构图

影音娱乐应用

系统编码: 文件名称:

子系统编子文件名称:

码:

加工编号: 加工名称:

输入数据:

视频/音频文件

处理说明:

播放视频/音频文件

页次:

填写:XXX

审核:XXX

输出数据:

影音

日期:XXX

日期:XXX

6.2模块说明

6.2.1影音娱乐应用程序模块说明

系统编码:

子系统编码:

模块编号:

文件名称:

影音娱乐模块

子文件名称:

模块名称:

影音娱乐模块

功能描述:播放视频/音频文件

输入数据:视频/音频文件

处理说明:

1.读取并播放U盘和SD卡的视频/音频文件。

开发文档: 车载导航系统设计

页次:

填写:XXX

审核:XXX

日期:XXX

日期:XXX

输出数据:影音

2.用户有选择播放文件、播放/暂停、停止、快进/快退、增大/减小音量和退出程序等操作。

开发文档: 车载导航系统设计

参考文献:

1. 陈赜,ARM9嵌入式技术及Linux高级实践教程,北京航空航天大学出版社,2006.1

2. 2006车载GPS市场投资状况研究报告,赛迪数据专题报告

3. 中国车载GPS产品市场发展趋势研究报告.汽车之家

4. 车载GPS导航定位系统的现状与发展趋势.慧聪网

5. 马忠梅,ARM&Linux嵌入式系统教程,北京航空航天大学出版社,2004年9月

6. Samsung Electronics,S3C2410AUSER’S MANUAL,Revision J.0,Mar.2004

7. Samsung Electronics,K4S561632D 256Mbit SDRAM,Revision1.0,Jan. 2002

8. Samsung Electronics,K9K2G08QOM 256MByte NAND Flash Memory,Jan.2003

9. 林永仁,嵌入式系统项目分析入门与实践,中国铁道出版社,2004年7月第l版

10. 詹荣开,嵌入式系Boot Loader技术内幕,Electronic Book,2003年2月

开发文档: 车载导航系统设计


本文标签: 系统 模块 车载 设计