基于嵌入式技术的多功能汽车导航系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于嵌入式技术的多功能汽车导航系统
作者:胡鹏
来源:《电脑知识与技术》2010年第21期
摘要:提出了一种嵌入式多功能汽车导航系统的设计方案,系统中以S3C2440A为处理器核心,Linux为操作系统平台,构建了嵌入式车载导航终端的软硬件平台,简要介绍了其硬件结构,并详细阐述了软件系统的设计与实现,实现了导航功能、电子地图、GPS定位等功能。

关键词:车载导航;全球定位系统;嵌入式技术
中图分类号:TP316文献标识码:A文章编号:1009-3044(2010)21-5971-03
Multifunctional Vehicle Navigation System Based on Embedded Technology
HU Peng
(Department of Computer Technology and Application, Wuhan Institute of Technology, Wuhan 430074, China)
Abstract: This paper puts forward design solution of multifunctional vehicle navigation system based on embedded technology. The system is designed with the core being S3C2440A and the operating system Linux. The paper introduces briefly the hardware structure and describes detailed the design and realization of the software system, navigation function, displaying of electronic map, and GPS orientation were carried out on vehicle navigation system terminal.
Key words: vehicle navigation terminal; GPS; embedded technology
随着社会不断发展和人们生活水平的提高,汽车走进了平常百姓家庭,由于城市的快速发展和交通道路的日益复杂,人们常因不熟悉道路而迷路,从而延误时间。

车载导航系统不仅能够准确地提供一条通往目的地的行车路线,而且使得车辆能够避开拥挤的道路,明显改善交通拥堵状况。

前几代车载导航系统存在一些缺陷,比如硬件体积大、软件冗余度大、功耗高、成本高等等,基于此,本文根据车载导航系统的特点和功能需求,应用嵌入式技术,设计了一种体积小、功耗低及功能强的车载导航系统。

1 方案设计
1.1 车载导航系统功能分析
根据车辆导航的实际需要,一般车载自主导航系统具有以下功能:
1) 导航功能:司机在车载GPS导航系统上选择行车路线的起点和终点,导航系统便会自动根据当前的位置及交通状况,为司机提供最优的行车路线,导航过程中,如驾驶者走错路线,系统会在极短时间内,自动重新计算出一条新路线。

2) 电子地图:电子地图可以覆盖全国的各大城市及本地道路信息,功能强大的地图系统包含了中小城市,可以随时查看目的城市的交通、周围建筑物等情况。

3) 转向语音提示功能:如果前方遇到路口或者转弯,系统提前以语音的方式提醒司机,这样可以避免车主走弯路。

4) 定位功能:GPS通过接收卫星信号,准确地定出其所在的位置,位置误差小于10米,可以在地图上相应的位置用记号标记出来,同时,系统还可以显示方向,显示海拔高度等信息。

5) 安全提示功能:内置道路安全属性信息,如红绿灯、超/限速路段、事故危险区域、禁行区等,汽车行驶至上述路段时,导航器将及时以语音和图标形式,提醒驾驶者,避免违反交通规则,防止发生交通事故。

6) 显示航迹:能够实时记录存储车辆行驶经过的路线,并在必要的时候对车辆信息按照日期进行回放。

1.2 硬件设计
鉴于以上功能,系统以嵌入式Linux操作系统和ARM9芯片S3C2440A为核心,通过GPS定位模块获得三维定位坐标,结合GIS地理信息系统中读取出来的电子地图,并显示到LCD上,系统通过GPRS无线通讯模块与监控中心进行数据交换,实时更新下载电子地图、进行车辆监控。

系统硬件框图如图1所示。

1)嵌入式处理器:S3C2440A是SAMSUNG公司生产的一款16/32位RISC嵌入式微处理器,S3C2440A为低功耗、高性能的应用于小型设备和常用应用程序而提供了微控制解决方
案,S3C2440A采用ARM920T内核,0.13um标准CMOS单元和一个辅助存储器。

2)存储模块:系统采用的系统存储器包括NOR Flash、NAND Flash、SDRAM、SD卡存储器,其中,采用的 SDRAM 的芯片是 K4S561632C-TC75,它的存储容量为 4 组×64M 位,用于存储系统运行时的数据和程序,采用了存储容量为 64M 字节的K9F1208UDM芯片, 用于存储启动代码Boot loader,选取64M用于存储嵌入式Linux系统内核和其他应用程序,选用外接SD卡存放电子地图。

3)GPRS模块:采用Sony Ericsson公司GR47模块,该模块使用方便,具有很高的性能,可以广泛应用于交通控制、导航系统等。

4)GPS模块:选用台湾HOLUX公司的GR-85串口GPS接收器,该接收器接收GPS卫星信号经过处理后实现定位,能给出三维坐标以及时间、速度、加速度等参数,特别适合应用导航系统。

5)LCD显示屏:采用LCD1602液晶显示屏 ,可以显示16 x 2个字符每行显示16个字符,显示2行,可以使用8/4根数据线连接方式。

6)语音报读:采用华邦电子的语音处理芯片WTS701,实现将文本信息转换为语音信号,而后经功率放大器放大后再通过扬声器进行报读。

2 软件设计
根据系统需要实现的功能,系统采用Linux操作系统,整个软件处理流程如图3所示。

下面重点介绍一下一些关键技术的实现。

2.1 Linux开发环境的建立
集中控制器的软件需要与ARM硬件平台相互协调完成集中控制器在系统中的功能,该部分的软件设计是基于嵌入式Linux操作系统的。

在使用Linux进行嵌入式应用系统开发时,首要工作就是把Linux移植到应用系统中,使它能在系统所采用的嵌入式微处理器(S3C2440A)上运行。

本课题的开发采用交叉编译调试的方式。

在宿主机上进行交叉编译最终生成可执行的二进制代码,然后把可执行文件下载通过JTAG下载到目标机上运行。

这里,选用适合于S3C2440A 的交叉编译器和调试器cross-2.95.3.tar.gz,以root身份登陆Linux,执行下列步骤:
1)在 /usr/local目录下新建arm目录:#mkdir/usr/local/arm
2)进入arm目录,将交叉编译器cross-2.95.3.tar.gz复制到该目录下,进入该目录执行解压命令:
#cd/ usr/local/arm
#cp/cdrom/cross-2.95.3.tar.gz ../(从光盘复制)
#tar jxvf cross-2.95.3.tar.gz
3)增加编译器路径,使用命令export增加环境变量
#export PATH =/uSr/local/arm/2.95.3/bin:$PATH
执行完上述步骤后,就可以在宿主机上开发适用于ARM的应用程序。

随后将安装 Berkeley DB时生成的动态库libdb-4.5.so拷贝到S3C2440A的根文件的/lib目录下,这样就基本上建立好了嵌入式Linux以开发环境。

Linux内核的移植方法可以参考相关文献,这里就不一一阐述了。

2.2 GPS数据接收与处理
采用中断方式对GPS数据进行接收,数据处理由独立子函数完成,主要完成时间、位置信息的过滤和分解,在缺省的状态下,GPS模块输出数据的波特率为4800bps,输出信息具有6种不同的消息类型:GPRMC、GPRGA、GPGSA、GPGSV、PGRME等,每秒钟定时输出。

GPS数据处理流程如图3所示,通过串口读取GPS接收机获得的定位数据进行过滤和分解,根据获得的目标物当前的位置(经纬度坐标、海拔),从中解析出纬度、经度、高度、速度、日期、时间、航向以及卫星状况等,经过相应的坐标转换,然后再将当前位置显示在电子地图上。

2.3 最优路径规划的实现
系统实现路径规划算法采用Dijkstra算法。

1)定义数据结构
Type struct NetPicture// (网络图结构)
{
LongPNum,ANum;//节点、弧段数
GP_NodeP[N]; //节点集
GP_Arcs[N,N];//弧段集
};
其中N为预定义的最大定点数。

Type struct Path
{
Long vt;//顶点信息
Long L;//最短路径长度
Long Pre;///前趋顶点
};
2)通过数据集获取数据表中各字段,从而得到该路段长度及通过该路段的时间。

3)用Dijkstra算法计算最优路线,若前点为目标顶点,则算法终止,此时的路径即是最优路
线。

4)通过Dijkstra算法,得到从源点到终点最短路径所经过的顶点,并由此获取经过的路段顶点值,根据这个顶点值,通过调用相关绘图函数,就可以将最优路线在电子地图上用显眼的方式显示出来。

2.4 GPRS通信
系统采用采用Sony Ericsson公司GR47模块进行GPRS通信,GR47提供一系列AT命令来完成TCP/IP协议的功能,以简化应用集成的流程,GR47模块共提供了三个串口供用户使用,其中最重要的是UART1。

GPRS数据传输是GR47模块的核心功能,其控制过程主要包含建立数据
帐户、激活 PDP环境、TCP或UDP连接3个步骤。

如下建立GR47模块与Internet连接的步骤:
1)GR47 模块进行初始化并为GPRS模块开通TCP/IP服务,
AT+CGDCONT=1,“IP”,“CMNET”,AT+IPR=9600;&W,正常情况下返回“OK”。

2)调用 gtb(APPS_NETWORK_STATUSBYTE)函数,对 GR47模块进行网络注册,并获得固
定虚拟IP地址,可通过发送指令“AT*E2IPI=0”获得IP地址
3)获得 IP 地址后,调用库函数 ipo(char SockType, char* SockNum)获取指向套接字 Socket 号的指针 SockNum。

4)调用 tcpc( )库函数建立车载移动终端到监控中心服务器的 TCP 会话,这时 TCP 握手请求的 IP 封包通过 GPRS 内网与 Internet 连接的网关路由至数据中心。

5)数据中心收到握手请求后,发送的同步响应报文经过GPRS 网关的 NAT转换递交到车载移动终端。

6)车载移动终端到监控中心服务器的 TCP 连接建立后,调用库函数 tcps( )在 TCP 连接上发送数据、tcpr( )读取数据,开始数据传输。

3 系统测试
为验证对车载终端导航定位的准确性,分别进行了距离优先测试、速度优先测试及定位测试、。

用PC机根据GPS系统的定位数据对车辆行驶轨迹进行恢复,并与实际车辆轨迹进行比较。

1)距离优先测试:某路属于本市中心区域,路况比较复杂,在经过几个立交桥时,导航仪都能准确地提示第几个路口转向,一般都能提前300米左右通知车主转向下一个路口,在经过一些老路和小巷,电子地图显示都比较详细,同时给出正确的指引。

2)速度优先测试:某段路一般很少人走,车速相对比较高,在速度优先的情况下导航仪能选出这段路实属不易,经过一段导航仪上没有记载的路名,但导航仪仍然可以做出正确指引,缩短行车时间。

3)定位测试:车辆在行驶过程中,考虑到车载终端对各种环境的适应性,既选择了城市宽阔道路,也选择了像地下停车场等不容易接收信号的地方。

车辆全程运行时间约为90min,共采集定位数据6080次,通过CDMA网络传输接收到的定位数据5960次,丢包率约为2%。

测试结果说明了系统软件各个功能基本符合系统要求,但由于时间和能力的有限,该车载终端也有一些不足之处,值得进一步的深入研究改进。

参考文献:
[1] 赵祥模.基于GPS的多车载终端系统中数据整合方法[J].微电子学与计算机,2008(8).
[2] 甘业兵.GPS接收机镜像信号抑制[J]. 微电子学与计算机,2010(2).
[3] 汪宿梁.基于GPS预捕获的算法研究及硬件实现[J].微电子学与计算机,2009(6).
[4] 赵慷慨.基于FPGA高动态GPS快速捕获协处理器设计实现[J].微电子学与计算
机,2010(2).
[5] 吴岳.Linux C程序设计大全[M].北京:清华大学出版社,2009.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。

相关文档
最新文档