ARM在GPS导航系统中的应用
随着我国经济水平的快速发展,汽车行业也蓬勃发展起来。汽车的增长速度远远超过公路的增长速度,汽车拥有量的急剧增加和城市现代化交通建设的相对滞后导致城市交通情况不断恶化。同时,现代物流对运输车辆和货物安全与准时调运的要求、公交与出租车的运营管理、大型的企事业单位日常车辆管理也都对车辆的监控与导航有迫切的需求。面且随着旅游行业的发展,人们急需要一种可以随时随地知道自己方位和目的地的方便设备。
GPS(全球定位系统)具有全球、全天候工作,定位精度高,功能多,应用广的特点,通过GPS接收机可以实现精确的自主定位,这为实现车辆的定位和导航奠定了基础。伴随ARM处理器、嵌入式操作系统、路径优化控制算法和GPS网络的成熟,车辆定位导航系统有了新的发展,可以在短时间内实现定位和最优路径导航。
1 方案简介
1.1 功能简介
该嵌入式GPS导航系统由GPS系统获得当时所在的位置的经纬度,通过换算和地图匹配在地图上得到当时的实际位置,然后由用户输入目的地,通过最短路径算法计算最短路径并在矢量地图上显示,同时提取GPS提供的速度,时间等信息显示在屏幕上。
1.2 硬件实现
本嵌入式GPS导航系统的硬件核心是意法半导体ARM7系列中的16/32位RISC处理器STR710FZ2T6芯片,该芯片强大的实时处理能力和丰富的外围接口非常适合嵌入式系统的开发,本系统正是基于该芯片的这些特点面设计的。系统框图如图1所示。
图1 硬件框图
系统以STR710FZ2T6微处理器为核心,与2片512KB的SDRAM(IS61LV25616)、一片8MB的NAND Flash和一片2MB NOR FLASH(SST39LF160)组成。外部添加了用于接收GPS信号的GPS模块,用于显示的液晶面板以及键盘输入模块。
2 软件设计
2.1 软件数据设计
导航软件中的数据主要是导航地图的空间数据,主要由与导航需求相关的一些信息组成,包括道路网几何形状、道路等级、道路特征、交规限制、地理政治边界、感兴趣的点、路标和服务设施等。这些数据主要分为两大类:道路网数据和非道路网数据。道路网数据包括基本的道路网的地理数据以及道路上与车辆行驶相关的数据。道路网数据的主要特征是有较强的拓扑关系。非道路网数据主要包括能反映区域的基本地理面貌的地物信息(如河流。湖泊。边界等)以及与出行信息相关的单位信息。整个导航数据的获取和录入可以通过转换通用的地图为矢量图,并且以点代替具体的路面实况。
2.2 软件系统设计
导航软件是以导航数据库为数据基础的。针对导航数据库的操作行为。从功能上将导航软件分为具有导航功能的部分和具有浏览功能的部分。导航功能部分是在动态行进过程中进行导航规划服务的,可分为导航定位、地图匹配、路径规划和路径引导等模块。主要通过导航界面与用户实现交互、浏览功能主要是在静态过程中对导航的地理信息提供浏览查询服务的通过浏览界面与用户实现交互。软件系统结构如图2所示。
图2.软件系统框图
2.2.1 导航功能模块设计
该方面的设计中主要包括以下4个模块的设计:
(1)导航定位模块实时地从通信端口读取数据。然后进行分析处理,得到可以进行地图匹配的经、纬度数据并将其传给地图匹配模块。
(2)地图匹配模块根据导航定位模块输入的经纬度在导航数据库中进行匹配。
(3)路径规划模块主要是根据用户指定的出发地和目的地在导航数据库中的道路网络中规划出一条最佳路径。
(4)导航引导模块将地图匹配的结果和规划好的路径结合导航地图数据库的数据以地图的方式显示出来。这样就可以直观、无误地引导用户行进。
2.2.2 浏览功能模块设计
该方面的设计中主要包括以下2个模块的设计:
(1)地图浏览模块主要是在浏览界面中实现对地图的缩放、平移等基本浏览操作。
(2)地图查询模块主要是根据用户的要求在导航地图数据库中进行查询操作并通过浏览界面显示出来。
2.3 嵌入式软件设计
该嵌入式系统采用uC/OSII操作系统,由于MCU的处理功能有限,所以在具体的软件实现过程中采用多线程技术,如图3所示。
图3.线程图
主控线程主要实现界面功能、导航功能中的地图匹配和导航引导模块、浏览功能中的地图浏览模块以及这些模块间的消息派送、接收和处理,同时协调各个工作线程异步运行。
导航定位线程主要完成导航定位模块中的接收当前位置数据(经、纬度)的功能。在导航过程中运行线程,线程处理函数把接收到的经、纬度数据实时通过消息发到主线程,由主线程调用地图匹配模块作处理。
路径规划线程主要完成在道路网中求解最佳路径的任务。在用户要求提供最佳路径时根据用户的出发地和目的地求出一条最佳路径
ARM GPS导航系统 数据帧处理 STR710FZ2T6 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)