首页 » 技术文章 » 嵌入式定位系统的实用设计与软件算法实现

嵌入式定位系统的实用设计与软件算法实现

作者:  时间:2010-10-22 10:07  来源:EDN

  定位系统自问世后便得到了蓬勃发展,其应用已渗入到各行各业。个人消费领域引领移动定位类型科技产品集中涌现,其他领域和行业也有大量技术更新。目前各领域的定位系统主要集中在平台和地图的研发上,平台配合应用要求选用硬件,地图根据显示要求实现软件算法。因而,它们在定位系统的研究工作中各成体系,兼容性不强。

  近年来,在定位系统设计中,硬件选择越来越集中在几个品牌的几个型号上。而软件设计方面比较分散。因而在一个兼容性强的平台上实现软件的集中研发,将是未来的研发方向。

  这里提出一种系统构造模式,弱化硬件平台的影响而力求最大限度的统一软件设计。

  1 系统整体设计方案

  这里提出一种实用的设计方案,通过对系统的各方面配置,实现GPS实时导航功能。系统主控器件采用韩国Samsung公司生产的ARM32RISC微处理器S3C2410,并在由其组成的开发板上移植Linux操作系统,Linux操作系统负责系统的整体调度和控制。通过S3C2410UART接口连接GPS接收机,用以接收NEMA0183格式的GPS定位信息。通过UART接口和GSMGPRS模块MC35进行通信。

  为了在移动LED上实现电子地图的绘制显示,系统的整体层次结构框图如图1所示。Linux操作系统负责底层硬件的初始化和管理,并向上层提供应用接口,MiniGUI完成电子地图在LED上的绘制,并通过Linux内核提供的应用接口与GPS接收机和GSMGPRS模块完成通信等功能。

  2 图形界面支持系统——MiniGUI

  MiniGUI是一个针对嵌入式系统的轻量级图形界面支持系统。MiniGUI能够在各个不同的平台上提供最大程度的接口兼容性,可运行于AR-MMIPS等各种主流嵌入式硬件平台之上。它能够提供一个轻型、资源开销少的嵌入式图形接口。

  这里利用MiniGUI Ver l33版本,将其编译为lite版本并移植到基于ARM核的32位微处理器S3C2410上。在此基础上,开发基于MiniG-UI的电子地图显示应用程序,配合GPS信号接收机实现定位导航功能。

  21 交叉编译MiniGUI

  MiniGUI从结构层次上可以分为3层,最上层是APT层,中间层是MiniGUI核心,负责维护整个窗口系统的运行,最下层由2部分组成,即图形抽象层(GAL)和输人抽象层(IAL)

  为了使MiniGUI能够在不同的目标平台上运行,必须有针对相应平台的交叉编译环境。根据本文的设计选用S3C2410器件,则选择交叉编译环境Linux-ARM,选择Mizi公司针对Samsung公司32ARMRISC微处理器S3C2410设计开发的工具链,这样的配置环境使软件和硬件具有更好的兼容性。具体交叉编译的步骤如下:

  1)修改configure文件。设置make环境变量CCLDAR等。

  2)GAL(图形引擎)IAL(输入引擎)接口的实现。在MiniGUI中,GALIALMinGUI2个基础设施,MiniGUI的高可靠度在很大程度上也是由于这2个接口提供了独立于硬件的抽象能力。这2个接口的抽象类似于Linux内核中的虚拟文件系统。

  在具体实现一个输入引擎(IAL)时,其中最为关键的是事件处理函数wait_event()的实现,MiniGUl会不断的调用该函数,来确定在输入引擎上是否有输入事件发生。这里需要特别注意的是,因为MiniGUI是通过select系统调用来实现进程间通信机制的,因此在实现lite版本输入引擎的wait_event函数时,一定要通过select函数或与其等价的poll函数实现。与此同时,在实现目标板的触摸屏驱动时,必须要实现对应file_operaTIons结构中的poll函数指针。即使触摸屏驱动未提供poll函数,也要在wait_event返回之前调用select,并传递相关参数。

  Linux系统提供了一种基础设施——FrameBuffer,通过这个设施Linux的图形输出有了统一的接口。由于MiniGUI可以通过FrameBuffer获得统一的图形引擎接口。

  因此其适应性大大提高,也就很少需要再为MiniGUI编写GAL驱动层。

  3)依次运行configuremakemake install命令,完成MiniGUl的配置和编译。

  经过上述编译过程,会将编译好的MiniGUI库文件安装在/homeMiniGUI-lite目录下。为了减小库文件的大小,根据需要利用config-ure命令去掉MiniGUI中一些不需要的功能,同时利用交叉编译工具链中的strip命令删除MiniGUI函数库中的符号信息和其他一些调试信息。

  22 MiniGUIS3C2410上的移植

  在嵌入式系统开发过程中,编译完MiniGUI和应用程序后,把MiniGUI库和应用程序拷贝到为目标系统准备的文件系统目录中,然后使用相关工具生成文件系统映像,下载到目标板上。

  MiniGUI在运行时需要一个配置文件,用来配置MiniGUI运行所需要的环境参数。本设计中,将配置文件MiniGUIcfg放到目标板的/etc目录下。另外,MiniGUI使用framebuffer作为其输入引擎,因此在编译Linux内核时,选择将framebuffer相关的功能编译到内核中去。

相关推荐

Ctrack选用u-blox GPS和蜂巢式模组开发车队管理解决方案

u-blox  嵌入式  Ctrack  2014-05-21

动作撷取追踪的嵌入式体感控制新技术

嵌入式  体感控制  2013-12-06

嵌入式系统的固件更新

嵌入式  Flash  RAM  缓冲区  2013-09-12

汽车电子向一体化集成、网络化与智能化发展

汽车电子  嵌入式  2013-05-23

东芝开发嵌入式SRAM低功耗技术智能手机

东芝  嵌入式  SRAM  2013-02-23

飞思卡尔基于ARM平台全系列MCU引领嵌入式应用新趋势

飞思卡尔  ARM  嵌入式  2013-01-29
在线研讨会
焦点