当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于ARM的车载GPS智能导航系统

1  引言

随着中国的城市化的程度不断加快,使得越来越多的人口与事业单位集中在一个“狭小”范围内生活与工作。城市的迅速“膨胀”直接导致了交通网络的日趋复杂,人员流动的日益频繁也使得每个人对空间信息有了更多的依赖。人们更加关心“当前我在哪里?”“目的地在哪里?”“如何到达?”等问题。而以嵌入式系统为平台的数字地理集成应用方案可以有效地解决这些矛盾。在此背景下,本文给出了基于ARM的嵌入式解决方案。

2 硬件实现

本嵌入式GPS导航系统的硬件核心是三星公司ARM9系列中的16/32RISC处理器S3C2410A芯片,该芯片强大的实时处理能力和丰富的外围接口非常适合嵌入式系统的开发,本系统正是基于该芯片的这些特点而设计的。系统框图如图1所示。


  该系统以
S3C2410A微处理器为核心,与232MSDRAM(HY57V561620CT)和一片64MNAND Flash(K9F1208U0B)组成了最小系统。外部添加了用于接收GPS信号的GPS模块,用于显示的液晶面板以及一片UDA1341TS的声音芯片。此外,为了调试的方便,我们还增加了一片CS8900A10M网卡芯片。



图1  系统框图

3 系统平台的建立

系统平台的建立主要包括两部分,即宿主机(PC机)上操作系统的选择和交叉编译器工具链的建立。


  PC
机上的操作系统可以有多种选择:安装Linux发行版、在Windows下使用虚拟机或者使用Cygwin。由于现今Microsoft Windows统领着全球超过半数的PC机(在中国Windows占据近90%的份额),许多开发者开始使用虚拟机等手段来实现在Windows平台下进行嵌入式Linux的开发,但这些方法都会或多或少地带来些兼容性问题。开发嵌入式Linux最好的选择便是在PC机上安装Linux发行版,因为这样与Windows毫无关联,可占有系统全部资源,拥有系统最高性能和最佳的兼容性。


  在建立交叉编译器工具链方面必须注意一点的便是
C运行库的选择。现在可供选择的C运行库有glibc, uClibc以及newlib等。glibc是由GNU项目提供的标准C运行库,它针对PC应用设计,较庞大,但能提供最优的兼容性。如果一般的嵌入式开发可选用uClibcuClibc原本是uCLinux开发过程中的一个C语言库,现已经独立于uCLinux项目并且进一步完善。它对glibc的大部分函数进行了重写,并且目标就定位于嵌入式,所以其相对glibc而言要小巧很多。此外由于它的函数与glibc保持一致,这样很多原本基于glibc开发的软件基本无需改动便可改用uClibc编译运行,使得在嵌入式系统上占用的内存和磁盘空间更少。但由于毕竟不是标准的C运行库,因此uClibc拥有着一定的兼容性问题。


  本系统选用了
Fedora Core 5作为宿主机(PC机)的操作系统以及分别使用buildrootcrosstool建立两条采用不同的C运行库的交叉编译器工具链。由于我们系统开发需要使用U-BootTFTP功能下载Linux内核以及LinuxNFS网络文件系统,所以首先需要对Fedora Core 5设置TFTP以及NFS,而后需要设置一个串口通信软件与开发板互动,本系统选择了Kermit


  使用两条采用不同
C运行库的交叉编译器工具链的主要原因在于,我们的导航应用程序使用uClibc有兼容性问题,所以不得不采用glibc。而为了减少占用资源,我们U-BootLinux内核和Busybox仍然采用的是uClibc


  本课题主要环境设置如下:

课题主目录

/Project

编译器目录

arm-linux-uclibc-

/Project/toolchina/uclibc/buildroot/build_arm_nofpu/

staging_dir

arm-unknown-linux-gnu-

/Project/toolchain/glibc/tools/gcc-4.1.0-glibc-2.3.2/

arm-unknown-linux-gun

NFS目录

/Project/nfs

TFTP目录

/tftpboot

PC机的IP地址

192.168.0.110

开发板的IP地址

192.168.0.3

4 应用软件的开发

在系统平台建立之后,Linux操作系统提供了底层的操作,包括文件系统的管理、内存分配以及基本flash的烧录读取,但并没有提供友好的显示界面。同时也为了实现地理数据的显示和导航,就需要在操作系统上放入图形用户界面支持系统和地理信息开发平台。为此我们分别选择了MiniGUImGIS


              
3是应用软件的流程图

整个软件系统依靠响应不同窗口或者控件发出的事件,来实现各种功能。通过主窗口建立后注册mGIS控件,可以较为方便的实现一些常用的地图操作。主窗口建立后,将会创建许多用于子窗口,包括用于显示经纬度信息,时间。速度的静态框,用于实现快速便捷操作的工具栏,用于实现GPS功能关闭和地图数据加载的菜单栏。

           图4 GPS接收模块流程图

5 总结和展望

“Find My Way”(完成项目的名称)嵌入式移动地图导航系统经过最初设计、实现及应用检验,已经具备基本的功能,可初步满足个人移动导航信息系统的需求。能完成数字地图的加载、缩放、拖动、搜索、简易导航、测距、GPS功能开闭等功能。同时我们也摸索出了一整套较为可行的矢量地图的制作方法,能依据使用的场合不同,较快速的完成地图数据源的制作及相关信息的添加,有一定的扩展能力。当然由于时间和能力的有限,这款产品也有其一定的不足,值得进一步的深入研究,例如:在打开GPS接收模块之后,系统的响应速度将有显著的下降,虽然已经对Linux核心和编译器经过适当的优化,但情况并没有显著的改善。问题可能在硬件平台的处理速度和可调用的资源有限,也有可能在软件接收上的程序结构不合理,嵌套过多。GPS接收信号有时会发生信号接收的不稳定,出现信号的偏移,超过标称的误差值。问题可能在开发平台的设计电路中对于数据信号线的排版上,没有使信号线等距,也没有设置合理的信号隔离和保护带,导致最终出现了不应有的误差。但从软件上着手,如何纠正这样的误差也是值得研究的一个方向。在本课题中只实现了固定点的导航,并不能完成从任意点至任意点的导航。导航功能可以从软件方面继续深入的研究,包括对地图格式的选择等。这些都是将来值得完善之处。



图5 硬件平台




图6 最终效果图


参考文献

1  飞漫软件,MiniGUI 技术白皮书 Ver 1.6.2www.minigui.org 2004.3.29

2  飞漫软件,mGIS技术文档www.minigui.org 2005.3

3  飞漫软件,mGIS产品介绍www.minigui.org 2005.3

4   MapInfo Corporation, MapInfo7.5用户指南,www.mapinfo.com,2003.12

5  HOLUXGR-87使用手册,www.holux.com.cn,2006.2.21

6  HOLUXGR-86 manualwww.holux.com.cn,2005.5

7   邓滔,徐勇,GPS与嵌入式Linux平台串行通信研究,湖南大学电气与信息工程学院,2004.11.2,全文

8  孙天泽,袁文菊,张海峰. 嵌入式设计及Linux驱动开发指南. 北京:电子工业出版社,2005

9  马忠梅,李善平,康慨等. ARM & Linux嵌入式系统教程. 北京:航空航天出版社,2004

10  廖日坤. ARM嵌入式应用开发技术白金手册. 北京:中国电力出版社,2005

11  Samsung Electronics Co., Ltd. S3C2410X 32-Bit RISC Microprocessor User's Manual. Revision 1.2. 2003

12  Samsung Electronics Co., Ltd. K9F1208U0B Datasheet. Revision 0.1. 2004

13  Corbet J, Rubini A, Kroah-Hartman G. Linux设备驱动程序. 魏永明,耿岳,钟书毅译. 第三版. 北京:中国电力出版社,2006

14  Love R. Linux内核设计与实现. 陈莉君,康华,张波译. 第二版. 北京:机械工业出版社,2006

15  Philips Semiconductors. UDA1341TS Product Specification. 2002

16  Sharp Corporation. LQ080V3DG01 Product Specification. 2003

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

业内消息,近日Arm公司官宣推出全新的基于Arm v9架构的CPU、GPU IP,以及设计软件工具,以帮助智能手机更好地处理人工智能(AI)任务,并加速AI应用。

关键字: ARM 芯片IP 黑鹰 超大核 Cortex-A725

最新消息,昨天北京开源芯片研究院官宣 ,2024 年 5 月 21 日开芯院通过线上会议的方式,向会员单位正式发布了全球首个开源大规模片上互联网络(Network on Chip,NoC)IP—— 研发代号“温榆河”。这...

关键字: ARM 垄断 开源 片上互联网络 温榆河

据《日经新闻》报道,软银旗下英国芯片制造商Arm计划到2025年销售AI芯片。该公司专门成立一个AI芯片部门,并将在2025年春季之前制造出原型产品,并于秋季开始大规模生产。

关键字: 软银 AGI ARM AI芯片

业内消息,近日日本软件银行集团(SoftBank Group)旗下安谋国际科技公司(Arm)计划研发人工智能(AI)芯片,先成立一个AI芯片部门,目标是明年春季建立AI芯片原型产品,然后将量产工作交由代工厂制造,预估20...

关键字: ARM AI芯片

【2024年5月8日,德国慕尼黑讯】Rust编程语言凭借其独特的内存安全特性,已经成为汽车软件开发中C/C++的有效补充和潜在替代品。全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OT...

关键字: 编译器 微控制器

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子
关闭
关闭