微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于ETX与VxWorks的嵌入式车辆导航系统的设计

基于ETX与VxWorks的嵌入式车辆导航系统的设计

时间:05-21 来源:互联网 点击:

度可裁减,只占用很小的存储空间,保证了其能以较高的效率运行于导航系统中。VxWorks包括微内核wind、高级的网络支持、强有力的文件系统和I/O管理、C++和其他标准支持等核心功能。微内核wind处于VxWorks操作系统的核心,支持所有的实时特征:快速任务切换、中断支持、抢占式和时间片轮转调度等,能够很好的满足导航系统对实时性和多任务的要求。

本系统的软件功能框图如图-3所示,分为VxWorks环境下的驱动程序和应用软件两部分。前者主要是对TL16C554驱动的开发,而其它设备(如显卡,网卡等)由于VxWorks自带了X86的相关驱动而不必涉及。TL16C554的驱动开发可参照VxWorks自带的串行驱动模板来进行,这里只简单描述一下开发步骤。VxWorks系统的串行设备驱动不是直接挂在IO系统中,而是由虚拟设备ttyDrv在中间充当转换层。因此驱动需要根据系统接口实现驱动并挂到ttyDrv上。首先需要修改config.h、sysSerial.c等文件中的相关参数,然后再编写具体的驱动程序实现设备的 I/O操作,包括TL16C554的初始化函数、I/O控制函数、中断处理函数等。这样,系统在初始化时就会将设备和驱动程序安装好,应用程序就可以按照与设备无关的统一方式进行I/O操作了。

应用软件的开发包括电子地图和导航应用程序设计两部分的设计:

(1)电子地图的设计

电子地图的设计包括图形界面和地图数据库两部分。本系统通过VxWorks的WindML(Wind River Multimedia Library)实现了电子地图的图形界面。WindML主要是用来实现基本的图形、视频和音频技术以及设计标准设备驱动程序框架,它提供了一个统一的图形硬件接口以及处理输入设备和输入设备事件的能力。电子地图数据库的数据结构采用了Arc—Node结构。该结构的基本原理是采用“以直代曲”的思想,即在允许的精度范围内,通过加入多个节点将现实中的真实道路用一系列线段来模拟或近似表示,整个道路网络就是由Arc(小段的线段)和Node(Arc的两个端点)组成,并具有明确的拓扑关系,可以实现路径规划。本系统实现了北京市四环以内的电子地图,并实现了地图浏览、地点查询、路径规划等功能。

(2)导航应用程序的设计

导航应用程序包括了对电子地图的操作、GPS定位、收发短消息、语音提示、人机接口等功能的实现。在设计中,根据VxWorks提供的良好的多任务特性,将不同的导航功能模块分给了不同任务去执行,通过任务间通信机制保证多任务的同步。其中系统的主任务负责实现硬件设备的初始化(如串口、看门狗的配置等)、电子地图的初始化和首次显示、发起子任务等功能,其流程图可如图-4所示。

主任务中发起了四个子任务,分别负责响应用户的输入、标准串口的数据输入、ISA总线16C554的数据输入以及实现路径规划算法。前三个功能独立出来是因为这些功能的触发时间都是不确定的,需要单独监视;最后一个则因为需要较大的运算量。这里只以接收串口数据的子任务为例进行分析。该任务需要监视两个串口的信息:GPS数据和从语音模块返回的状态信息。VxWorks将I/O系统设计成为与设备无关的接口,因此对串口的操作可以视为对文件的操作。串口的打开,关闭和写操作均比较简单,而串口的读操作采用了select函数,利用其触发机制阻塞任务。有数据到来时,任务才会被激活并从串口读取数据,然后通过任务间通信机制,通知主任务进行相应的处理,如进行地图更新、输出语音提示等操作。

5 结束语

经过实验,本系统能够稳定可靠的运行。系统的实验结果可如图-5所示,展示了其GPS定位和路径规划的功能。本系统功能的实现证明了ETX平台以及VxWorks操作系统的优良性能,表明两者的结合具有开发简单、性能可靠等优点,有着良好的应用前景。

参 考 文 献

[1] 张其善等. 智能车辆定位导航系统及应用. 北京:科学出版社,2002

[2] 探矽工作室. 嵌入式系统开发圣经. 北京:中国铁道出版社,2003

[3] 陈智育等. VxWorks程序开发实践. 北京:人民邮电出版社,2004

[4] 何江水等. VxWorks汉字的显示支持. 微计算机信息,2005年第五期

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top