基于ARM处理器的GPS导航系统设计报告
下载后可任意编辑 基于ARM处理器的GPS导航系统设计报告 一.引言 随着我国经济水平的快速进展,汽车行业也蓬勃进展起来。汽车的增长速度远远超过公路的增长速度,汽车拥有量的急剧增加和城市现代化交通建设的相对滞后导致城市交通情况不断恶化。同时,现代物流对运输车辆和货物安全与准时调运的要求、公交与出租车的运营管理、大型的企事业单位日常车辆管理也都对车辆的监控与导航有迫切的需求。面且随着旅游行业的进展,人们急需要一种可以随时随地知道自己方位和目的地的方便设备。 GPS(全球定位系统)具有全球、全天候工作,定位精度高,功能多,应用广的特点,通过GPS接收机可以实现精确的自主定位,这为实现车辆的定位和导航奠定了基础。伴随ARM处理器、嵌入式操作系统、路径优化控制算法和GPS网络的成熟,车辆定位导航系统有了新的进展,可以在短时间内实现定位和最优路径导航。 本项目在信息系统终端的设计中采纳了ARM处理器和嵌入式操作系统uC/OS-II作为开发平台,通过采纳ARM处理器可达到最大为60MHz的CPU操作频率,使得数据处理能力大大加强,同时,基于嵌入式操作系统uC/OS-II开发设计的软件具备了很强的扩展性和稳定性。 二.方案简介 1. 功能简介 该嵌入式GPS导航系统由GPS系统获得当时所在的位置的经纬度,通过换算和地图匹配在地图上得到当时的实际位置,然后由用户输入目的地,通过A*最短路径算法计算最短路径并在矢量地图上显示,同时提取GPS提供的速度,时间等信息显示在屏幕上。 2. 硬件实现 本嵌入式GPS导航系统的硬件核心是意法半导体ARM7系列中的16/32位RISC处理器STR710FZ2T6芯片,该芯片强大的实时处理能力和丰富的外围接口非常适合嵌入式系统的开发,本系统正是基于该芯片的这些特点面设计的。系统框图如图1所示。 系统以STR710FZ2T6微处理器为核心,与2片512KB的SDRAM(IS61LV25616)、一片8MB的NAND Flash和一片2MB NOR FLASH(SST39LF160)组成。外部添加了用于接收GPS信号的GPS模块,用于显示的液晶面板以及键盘输入模块。 图1 硬件框图 三.软件设计 3.1 软件数据设计 导航软件中的数据主要是导航地图的空间数据,主要由与导航需求相关的一些信息组成,包括道路网几何形状、道路等级、道路特征、交规限制、地理政治边界、感兴趣的点、路标和服务设施等。这些数据主要分为两大类:道路网数据和非道路网数据。道路网数据包括基本的道路网的地理数据(如道路的地理位置信息)以及道路上与车辆行驶相关的数据(如道路的交规信息、收费信息、和限速的信息)。道路网数据的主要特征是有较强的拓扑关系。非道路网数据主要包括能反映区域的基本地理面貌的地物信息(如河流.湖泊.边界等)以及与出行信息相关的单位信息(如学校、政府机关、医院等)。整个导航数据的猎取和录入可以通过转换通用的地图为矢量图,并且以点代替具体的路面实况。 3.2软件系统设计 导航软件是以导航数据库为数据基础的。针对导航数据库的操作行为.从功能上将导航软件分为具有导航功能的部分和具有浏览功能的部分。导航功能部分是在动态行进过程中进行导航规划服务的,可分为导航定位、地图匹配、路径规划和路径引导等模块。主要通过导航界面与用户实现交互、浏览功能主要是在静态过程中对导航的地理信息提供浏览查询服务的通过浏览界面与用户实现交互。软件系统结构如图2所示。 图2.软件系统框图 3.2.1导航功能模块设计 该方面的设计中主要包括以下4个模块的设计: (1)导航定位模块实时地从通信端口读取数据.然后进行分析处理,得到可以进行地图匹配的经、纬度数据并将其传给地图匹配模块。 (2)地图匹配模块根据导航定位模块输入的经纬度在导航数据库中进行匹配。 (3)路径规划模块主要是根据用户指定的出发地和目的地在导航数据库中的道路网络中规划出一条最佳路径。 (4)导航引导模块将地图匹配的结果和规划好的路径结合导航地图数据库的数据以地图的方式显示出来。这样就可以直观、无误地引导用户行进。 3. 2. 2浏览功能模块设计 该方面的设计中主要包括以下2个模块的设计: (1)地图浏览模块主要是在浏览界面中实现对地图的缩放、平移等基本浏览操作。 (2)地图查询模块主要是根据用户的要求在导航地图数据库中进行查询操作并通过浏览界面显示出来。 3. 3软件界面设计 如前所述,从大的功能上导航软件分为具有浏览功能的部分和具有导航功能的部分。因此在界面方面也设计了两种不同的界面:浏览界面和导航界面。浏览界面主要为用户在查找浏览相关地理信息过程中提供交互服务。导航界面主要将当前的位置在导航地图中显示出来并在实时定位过程中为用户提供关于导航服务方面的一些交互提示。要求浏览界面和导航界面可以实时地进行切换这样可以方便地为用户提供所有的功能。 3.4嵌入式软件设计 该嵌入式系统采纳uC/OSII操作系统,由于MCU的处理功能有限,所以在具体的软件实现过程中采纳多线程技术,如图3所示。 图3.线程图 主控线程主要实现界面功能、导航功能中的地图匹配和导航引导模块、浏览功能中的地图浏览模块以及这些模块间的消息派送、接收和处理,同时协调各个工作线程异步运行。 导航定位线程主要完成导航定位模块中的接收当前位置数据(经、纬度)的功能。在导航过程中运行线程,线程处理函数把接收到的经、纬度数据实时通过消息发到主线程,由主线程调用地图匹配模块作处理。 路径规划线程主要完成在道路网中求解最佳路径的任务。在用户要求提供最佳路径时根据用户的出发地和目的地求出一条最佳路径。在最佳路径求解算法中采纳A*算法。 地图数据库查询线程主要完成对导航地图数据库的查询功能,根据用户要求生成线程.完成对相关地理信息的查询。 3.4.1软件的导航功能由主控线程控制实现.其基本实现流程如下(可见图4) (1)运行导航定位线程从输入口读取GPS人线接收到的当前位置的经纬度坐标值。 (2)将经纬度坐标转换到屏幕的像素坐标。 (3)根据当前位置结合导航地图进行匹配处理,把当前位置信息匹配到地图上。 (4)显示并实时刷新导航地图和当前位置。 (5)是否求解最佳路径,若是,则执行下面的第(6)条;否则执行前而的第(4)条。 (6)在导航数据库中选择起始和终止位置,运行路径规划线程在道路网数据中解算出最佳路径并显示到地图上。 图4.导航功能流程图 3.4.2GPS数据提取 GPS板只要处于工作状态就会源源不断地把接收并计算出的GPS导航定位信息通过串口传送到嵌入式系统中。由于从串口接收的数据帧是一长串ASCII码字节流,在没有经过分类提取之前是无法加以利用的。因此,必须通过程序将各个字段的信息从接收到的字节流中提取出来,将其转化成有实际意义的,可供高层决策使用的定位信息数据。对GPS信息进行提取必须首先明确其帧结构,数据帧主要由帧头、帧尾和帧内数据组成。对于不同的数据帧,其帧头是不同的,主要有“$GPGGA”、 “$GPGS