资料介绍
定位系统自问世后便得到了蓬勃发展,其应用已渗入到各行各业。个人消费领域引领移动定位类型科技产品集中涌现,其他领域和行业也有大量技术更新。目前各领域的定位系统主要集中在平台和地图的研发上,平台配合应用要求选用硬件,地图根据显示要求实现软件算法。因而,它们在定位系统的研究工作中各成体系,兼容性不强。
近年来,在定位系统设计中,硬件选择越来越集中在几个品牌的几个型号上。而软件设计方面比较分散。因而在一个兼容性强的平台上实现软件的集中研发,将是未来的研发方向。
这里提出一种系统构造模式,弱化硬件平台的影响而力求最大限度的统一软件设计。
1 系统整体设计方案
这里提出一种实用的设计方案,通过对系统的各方面配置,实现GPS实时导航功能。系统主控器件采用韩国Samsung公司生产的ARM核32位RISC微处理器S3C2410,并在由其组成的开发板上移植Linux操作系统,Linux操作系统负责系统的整体调度和控制。通过S3C2410的UART接口连接GPS接收机,用以接收NEMA0183格式的GPS定位信息。通过UART接口和GSM/GPRS模块MC35进行通信。
为了在移动LED上实现电子地图的绘制显示,系统的整体层次结构框图如图1所示。Linux操作系统负责底层硬件的初始化和管理,并向上层提供应用接口,MiniGUI完成电子地图在LED上的绘制,并通过Linux内核提供的应用接口与GPS接收机和GSM/GPRS模块完成通信等功能。
2 图形界面支持系统——MiniGUI
MiniGUI是一个针对嵌入式系统的轻量级图形界面支持系统。MiniGUI能够在各个不同的平台上提供最大程度的接口兼容性,可运行于AR-M、MIPS等各种主流嵌入式硬件平台之上。它能够提供一个轻型、资源开销少的嵌入式图形接口。
这里利用MiniGUI Ver l.3.3版本,将其编译为lite版本并移植到基于ARM核的32位微处理器S3C2410上。在此基础上,开发基于MiniG-UI的电子地图显示应用程序,配合GPS信号接收机实现定位导航功能。
2.1 交叉编译MiniGUI
MiniGUI从结构层次上可以分为3层,最上层是APT层,中间层是MiniGUI核心,负责维护整个窗口系统的运行,最下层由2部分组成,即图形抽象层(GAL)和输人抽象层(IAL)。
为了使MiniGUI能够在不同的目标平台上运行,必须有针对相应平台的交叉编译环境。根据本文的设计选用S3C2410器件,则选择交叉编译环境Linux-ARM,选择Mizi公司针对Samsung公司32位ARM核RISC微处理器S3C2410设计开发的工具链,这样的配置环境使软件和硬件具有更好的兼容性。具体交叉编译的步骤如下:
1)修改configure文件。设置make环境变量CC、LD及AR等。
2)GAL(图形引擎)和IAL(输入引擎)接口的实现。在MiniGUI中,GAL和IAL是MinGUI的2个基础设施,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)依次运行configure、make和make install命令,完成MiniGUl的配置和编译。
经过上述编译过程,会将编译好的MiniGUI库文件安装在/home/MiniGUI-lite目录下。为了减小库文件的大小,根据需要利用config-ure命令去掉MiniGUI中一些不需要的功能,同时利用交叉编译工具链中的strip命令删除MiniGUI函数库中的符号信息和其他一些调试信息。
2.2 MiniGUI向S3C2410上的移植
在嵌入式系统开发过程中,编译完MiniGUI和应用程序后,把MiniGUI库和应用程序拷贝到为目标系统准备的文件系统目录中,然后使用相关工具生成文件系统映像,下载到目标板上。
MiniGUI在运行时需要一个配置文件,用来配置MiniGUI运行所需要的环境参数。本设计中,将配置文件MiniGUI.cfg放到目标板的/etc目录下。另外,MiniGUI使用framebuffer作为其输入引擎,因此在编译Linux内核时,选择将framebuffer相关的功能编译到内核中去。
3 绘制基于MiniGUI的电子地图的算法
3.1 提取电子地图数据的算法实现
由于GUI的程序和传统单一流程的程序不太相同,因此通过简单的循环获取GPS数据的方式是不可取的。该系统通过多线程的循环提取数据,每组数据的提取与处理是在一个单线程中完成的,从而避免了数据和处理的复杂交互,能更好地体现实时性。
首先,对所采用的坐标系进行说明:假定有一个形状为严格矩形的地图,其像素坐标原点为(O,0),地图X轴方向上的宽度为W个像素点,Y轴方向上的高度为H个像素点,地图上某点的坐标为(X,Y),则定义该像素点的归一化坐标为(x/W,y/H)。对于终端而言,其覆盖的地理范围相对于地球半径来说几乎可以看作无穷小,故可以认为电子地图所对应的经纬度坐标在其覆盖的区域内是线性变化的。有了这2个点的坐标数据后,当从GPS接收机读取到经纬度坐标时,根据近似的线性映射关系,就可以算出该坐标在电子地图上的归一化坐标。这种映射关系,根据欧式几何原理即式(1)和式(2),由已知的2个点可以算出点A和点B的未知参数。
要得到地图的左上角和右下角的经纬度坐标,只需知道地图边界范围内任取的2个参考点的4个参数即可。通过在某地实地采集的3个参考点,得到表l所列的坐标数据。
近年来,在定位系统设计中,硬件选择越来越集中在几个品牌的几个型号上。而软件设计方面比较分散。因而在一个兼容性强的平台上实现软件的集中研发,将是未来的研发方向。
这里提出一种系统构造模式,弱化硬件平台的影响而力求最大限度的统一软件设计。
1 系统整体设计方案
这里提出一种实用的设计方案,通过对系统的各方面配置,实现GPS实时导航功能。系统主控器件采用韩国Samsung公司生产的ARM核32位RISC微处理器S3C2410,并在由其组成的开发板上移植Linux操作系统,Linux操作系统负责系统的整体调度和控制。通过S3C2410的UART接口连接GPS接收机,用以接收NEMA0183格式的GPS定位信息。通过UART接口和GSM/GPRS模块MC35进行通信。
为了在移动LED上实现电子地图的绘制显示,系统的整体层次结构框图如图1所示。Linux操作系统负责底层硬件的初始化和管理,并向上层提供应用接口,MiniGUI完成电子地图在LED上的绘制,并通过Linux内核提供的应用接口与GPS接收机和GSM/GPRS模块完成通信等功能。
2 图形界面支持系统——MiniGUI
MiniGUI是一个针对嵌入式系统的轻量级图形界面支持系统。MiniGUI能够在各个不同的平台上提供最大程度的接口兼容性,可运行于AR-M、MIPS等各种主流嵌入式硬件平台之上。它能够提供一个轻型、资源开销少的嵌入式图形接口。
这里利用MiniGUI Ver l.3.3版本,将其编译为lite版本并移植到基于ARM核的32位微处理器S3C2410上。在此基础上,开发基于MiniG-UI的电子地图显示应用程序,配合GPS信号接收机实现定位导航功能。
2.1 交叉编译MiniGUI
MiniGUI从结构层次上可以分为3层,最上层是APT层,中间层是MiniGUI核心,负责维护整个窗口系统的运行,最下层由2部分组成,即图形抽象层(GAL)和输人抽象层(IAL)。
为了使MiniGUI能够在不同的目标平台上运行,必须有针对相应平台的交叉编译环境。根据本文的设计选用S3C2410器件,则选择交叉编译环境Linux-ARM,选择Mizi公司针对Samsung公司32位ARM核RISC微处理器S3C2410设计开发的工具链,这样的配置环境使软件和硬件具有更好的兼容性。具体交叉编译的步骤如下:
1)修改configure文件。设置make环境变量CC、LD及AR等。
2)GAL(图形引擎)和IAL(输入引擎)接口的实现。在MiniGUI中,GAL和IAL是MinGUI的2个基础设施,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)依次运行configure、make和make install命令,完成MiniGUl的配置和编译。
经过上述编译过程,会将编译好的MiniGUI库文件安装在/home/MiniGUI-lite目录下。为了减小库文件的大小,根据需要利用config-ure命令去掉MiniGUI中一些不需要的功能,同时利用交叉编译工具链中的strip命令删除MiniGUI函数库中的符号信息和其他一些调试信息。
2.2 MiniGUI向S3C2410上的移植
在嵌入式系统开发过程中,编译完MiniGUI和应用程序后,把MiniGUI库和应用程序拷贝到为目标系统准备的文件系统目录中,然后使用相关工具生成文件系统映像,下载到目标板上。
MiniGUI在运行时需要一个配置文件,用来配置MiniGUI运行所需要的环境参数。本设计中,将配置文件MiniGUI.cfg放到目标板的/etc目录下。另外,MiniGUI使用framebuffer作为其输入引擎,因此在编译Linux内核时,选择将framebuffer相关的功能编译到内核中去。
3 绘制基于MiniGUI的电子地图的算法
3.1 提取电子地图数据的算法实现
由于GUI的程序和传统单一流程的程序不太相同,因此通过简单的循环获取GPS数据的方式是不可取的。该系统通过多线程的循环提取数据,每组数据的提取与处理是在一个单线程中完成的,从而避免了数据和处理的复杂交互,能更好地体现实时性。
首先,对所采用的坐标系进行说明:假定有一个形状为严格矩形的地图,其像素坐标原点为(O,0),地图X轴方向上的宽度为W个像素点,Y轴方向上的高度为H个像素点,地图上某点的坐标为(X,Y),则定义该像素点的归一化坐标为(x/W,y/H)。对于终端而言,其覆盖的地理范围相对于地球半径来说几乎可以看作无穷小,故可以认为电子地图所对应的经纬度坐标在其覆盖的区域内是线性变化的。有了这2个点的坐标数据后,当从GPS接收机读取到经纬度坐标时,根据近似的线性映射关系,就可以算出该坐标在电子地图上的归一化坐标。这种映射关系,根据欧式几何原理即式(1)和式(2),由已知的2个点可以算出点A和点B的未知参数。
要得到地图的左上角和右下角的经纬度坐标,只需知道地图边界范围内任取的2个参考点的4个参数即可。通过在某地实地采集的3个参考点,得到表l所列的坐标数据。
下载该资料的人也在下载
下载该资料的人还在阅读
更多 >
- 基于嵌入式Linux的GPS车载定位导航系统设计
- 背篼酥课堂-GPS定位(一) nodemcu 解析gps
- 基于GPS的云爆炸定高引信系统设计方案 17次下载
- 基于51单片机的简易GPS定位器设计方案资料下载.pdf 14次下载
- 射频通信的GPS定位系统设计 4次下载
- 车载GPS/DR组合导航系统硬件设计解析 0次下载
- 车载GPS/DR组合导航系统硬件设计 1次下载
- 无人机的指挥中枢:GPS模块导航系统 26次下载
- 北斗+GPS双模定位导航模块 49次下载
- 基于嵌入式 的GPS 导航信息处理方案的实现 9次下载
- 车辆导航定位系统GPS接收机的原理与研制 27次下载
- 有源RFID局域定位系统设计方案 28次下载
- 基于GPS的小型组合导航系统设计 58次下载
- 基于GPRS网络的GPS图形导航仪
- 基于GPS的汽车导航系统的设计与实现
- 什么是gps定位? gps定位放线的步骤有哪些 4515次阅读
- bds是什么地理技术 BDS与GPS的区别 1.4w次阅读
- GPS定位的基本原理 3492次阅读
- 基于GPS/MEMS组合芯片实现高精度定位解决方案 3451次阅读
- 基于伽利略与GPS定位技术的结合应用分析 3180次阅读
- 基于LPC2210芯片和uClinux实现导航定位信息获取模块的设计 1703次阅读
- 基于GSM和GPRS实现GPS定位信息传输系统的应用设计 3713次阅读
- 基于GPS和航位推算技术实现组合导航系统的应用方案 4247次阅读
- 基于FPGA-DSP平台实现GPS卫星导航接收机的设计 2170次阅读
- 基于Linux操作系统和S3C2410微处理器实现GPS实时导航系统的设计 1003次阅读
- MiniGUI与嵌入式系统的关系 MiniGUI移植的过程 4803次阅读
- 一种基于MiniGUI的GPS导航定位系统设计与实现 1558次阅读
- 基于嵌入式Linux系统的导航软件设计思路 4964次阅读
- 双频带GPS/Galileo射频前端接收系统的设计方案 3481次阅读
- 基于SOPC技术的便携式定位系统方案 1288次阅读
下载排行
本周
- 1TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 2开关电源基础知识
- 5.73 MB | 6次下载 | 免费
- 3100W短波放大电路图
- 0.05 MB | 4次下载 | 3 积分
- 4嵌入式linux-聊天程序设计
- 0.60 MB | 3次下载 | 免费
- 5基于FPGA的光纤通信系统的设计与实现
- 0.61 MB | 2次下载 | 免费
- 6基于FPGA的C8051F单片机开发板设计
- 0.70 MB | 2次下载 | 免费
- 751单片机窗帘控制器仿真程序
- 1.93 MB | 2次下载 | 免费
- 8基于51单片机的RGB调色灯程序仿真
- 0.86 MB | 2次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33564次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21548次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6653次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537796次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420026次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191185次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183278次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多