【delphi开源代码栏目提醒】:网学会员delphi开源代码为您提供基于嵌入式linux的车载定位系统设计 - 期刊论文参考,解决您在基于嵌入式linux的车载定位系统设计 - 期刊论文学习中工作中的难题,参考学习。
GPS GIS 中文核心期刊<微计算机信息)(测控自动化)2008年第24卷第5-1期 文章编号:1008-0570(2008)05一l-0188—02 基于嵌入式Li n ux的车载定位系统设计 Design of Vehicle Navigation System Based on Embedded Linux (湖南大学)李晓侠彭楚武易珂黎职富 LI Xiao-xia PENG Chu-wu YI Ke LI Zhi-fu 摘要:本文以Samsung¥3C24.10为核心处理器,以嵌入式Linux为操作系统,结合GPS接收机和LCD液晶显示等模块设计了 一个基于嵌入式系统的车载定位系统。
详细介绍了移植Linux操作系统到¥3C2410开发板上的方法以及GPS模块串口通信 的实现。
关键词:嵌入式Linux;¥3C2410;串口通信:车载定位 中图分类号:TP316 文献标识码:AAbstract:Vehicle Navigation System based on Embedded Linux wa¥designed,regarding the¥3C2410 controller as the COre,usingEmbedded Linux operation system,combining the modules of GPS and LCD Display。
In this paper introduced the transplantation tothe goal platform of Linux operation system and the implementation of serial—pert communication in detail。
Key words:Embedded Linux;¥3C2410;Serial-Port Communication;Vehicle Navigation 引言 随着私人汽车的普及.车载导航系统越来越被人们关注。
目前车载导航系统的使用还多和奢侈相联系.因此降低其价格是普及车载导航系统的关键之一。
车载导航系统作为嵌入式应用的典范.它上面运行的多是目前流行的商用嵌入式操作系 A磁啦2叮 S3C2410统,如PSOS,Windows CE,Vxworks等,这些操作系统均属于商业系统,价格昂贵,且源
代码不公开。
使得产品的开发费用提高。
嵌入式Linux却有着GNU,GPL的
开源性、支持多种CPU的兼容性.且继承了UNIX良好的稳定性和安全性等许多优点。
它的运用越来越广泛。
因此选用嵌入式Linu】【系统来开发车载定位系统是可行和最为适合的选择之一。
系统概述: 图1硬件框图 车载定位系统是ITS系统(智能交通系统)的重要组成部 系统硬件结构框图如图1所示。
由于操作系统所占用的空分,它将卫星定位技术(GPS),地理信息系统(GIs)以及现代通信 间比较大.所以Flash里面装有系统引导程序,通常称为Boot技术融于一身。
主要功能是将装有GPS接收机的移动载体的动 Loader.是在系统复位后执行的第一段
代码。
相当于Pc上的态位置、时间、状态等信息在具有强大地理信息处理和查询功 BIOS。
完成系统硬件的初始化.包括时钟的设置、存储区的映射能的电子地图上进行显示,并能对载体的准确位置、速度、运动 等.设置堆栈指针.然后跳转到操作系统内核的人I:1,将系统控方向、车辆状态等基本信息进行监控和查询。
制权交给操作系统.在此之后系统的运行和Boot Loader再无任 何关系。
Boot Loader独立于操作系统,它的实现高度依赖于硬 1嵌入式硬件平台 件.包括处理器的体系结构、具体型号、硬件电路板的设计。
系统选用广州友善之臂的SBC一2410X开发板作为硬件开发平台,在对其进行硬件裁减的基础上,构成设计所需的硬件 2嵌入式软件系统系统.由嵌入式处理器、SDRAM、NAND FLASH、7IW LCD、触摸 通过将嵌入式Linux和图形用户界面(cui)移植到上述的屏、GPS模块等构成。
嵌入式处理器选用三星公司推出基于 硬件平台.并开发外围设备的驱动程序和用户运用程序来搭建ARM920T内核的¥3C2410处理器。
¥3C2410是Samsung公司专 软件系统。
底层软件平台为具有自主知识产权的全套实时多任门为PDA、Intenet设备和手持设备等专门开发的微处理器。
该 务操作系统系统(RTOS)。
包括调度内核(KERNEL)、图形软件包芯片还包含有16kB一体化的Cache/MMU。
这一特性可以方便 (GRAFIX)以及文件系统(FILE)等。
驱动软件包括触摸屏驱动、键地将Linux移植到基于该处理器的目标系统中。
盘驱动、串口驱动、以及卫星定位系统驱动等。
李晓侠:硕士研究生 2.1 1.inux2.4.18内核移植基金项目:湖南省2004年重点科技攻关项〔〕(04GK2012) (1)交叉编译环境的建立一188—360元,年邮局订阅号:82-946 惚的
论文得到两院院士关注l GPS GIS 交叉编译环境就是在一个平台上生成可以在另一个平台 可以在目标系统板上运行了。
。
上执行的
代码。
采用交叉编译的主要原因在于.多数嵌入式目 2.2嵌入式图形用户界面标机不能提供资源供编译过程使用,因而只好将编译工作转移 图形用户界面(GUl3提供常用的控件类和消息传递机制,使到高性能的宿主机中进行。
目标机(sBc一2410x)和宿主机(PC)之 用户能实现绚丽的界面和丰富的操作:而用户也只要使用GUI间通过串口,并口或以太网口建立连接。
在PC机上装上Red一 提供的各种接口来编写自己的应用程序。
系统采用Linu】【自带hat linux 9.0,执行完全安装。
然后在Pc端以root身份登陆 的Qt Designer来编写程序。
Qt Designer是一个优秀的可视化开linux系统。
下载交叉编译器toolehain安装包arm—linux— 发工具,用它来设计十分容易。
它的界面类似于Delphi,但使用toolehains.tgz置于根目录下.在/usr/local目录下建立名为arm C++语言编写应用程序。
最重要的功能为地图显示与浏览功能。
的目录。
进入该目录。
执行解包: 显示的地图可为栅格地图.也可为矢量地图.根据实际需要选 #cd/usr/local/ann 择.这两种地图数据格式在显示实现时有区别。
系统采用的电 #tar xvzf/arm-linux—toolchains.tgz 子地图是矢量地图,矢量地图使用经纬度来描述地理位置,非 (2)Linux核心
代码的移植 矢量地图没有保存比例尺、经纬度信息,只能使用图片的像素 ,{!Y_Iopt目录下建立名为SBC一241011的目录。
进入该目录. 点来描述地理位置,查询起来不方便。
执行解包: 2.3 GPS通信程序的实现 #cd/opt/SBC-2410II 图2所示为嵌入式应用程序的功能结构示意图。
它主要有 毋tar xvd 1SBC-2410II.tgz 两部分组成:一部分为与用户进行交互的应用程序部分,另一部 (3)设置系统环境变量: 分为与GPS没备进行通信的通信程序。
#vi/etdpmille Pathmunge/usr/locai/sbin后面添加一行Pathmunge〕usr/lo-eaYam92.95.3/bin 这样,内核或其他应用程序均可以用arm-lJnttx一来指定使用该交叉编译器。
(4)编译VIⅥ 掸cd/opt/SBC-2410II/vivi 毒make menueonfig 选中kad锄Alternate Configuration File进入相关参数设置,保存为arch/def-configs/SBC一2410X后退出。
群make 图2嵌入式应用程序结构图 编译成功后在访“目录下将产生一个名为vivi的二进制 GPS通信模块采用的是HIMARK的AR2010一GM,输出数文件。
也即我们要烧入目标板的boot loader。
据格式为NMEA标准定位数据格式。
系统初始化时。
该模块波 (5)编译内核 特率设置为19200。
输出数据被置为RMC格式输出。
微处理器 #cd/opt/SBC-2410II/kernel 采用中断查询的方式.通过UATR0口按设定时间取出经度、纬 #make menuconilg 度、速度、UTC时间和定位有效性指示等数据。
GPS作为DTE 选中kad明Alternate Configuration File进入相关参数设 (数字终端设备1与嵌入式平台之间通过RS一232串行通信接口置,保存为sbc2410_cfg后退出。
进行数据交换。
因此.与GPS的数据通信实际上即完成Linux下 #make dep 的串口编程。
两者之间的通信协议采用NMEA0183通信协议。
#make clean NMEA0183协议是GPS串口通信的通信协议.在完成GPS通信 #make zlrnage 时.并不需要了解协议的全部内容.只需了解通信基本参数和所 编译结束后在/arch/arm/boot目录下得到linux内核压缩映 需信息的语句格式’从中选取有用信息,而忽略其他信息。
像文件zlmage。
定位数据主要由帧头、帧尾和帧内数据组成。
根据数据帧 (6)准备root文件系统: 的不同,帧头也不相同。
主要有¥GPGGA、SGPGSA、¥GPGSV以yaffs是一种专门为嵌入式系统中常用的flash设备设计的一种 及¥GPRMC等。
每种帧头后的数据也有其固定的格式,各帧均可读写的文件系统,具有较快的启动速度。
对flash使用寿命有 以回车符和换行符作为帧尾标识一帧的结束。
我们所关心的定更好的保护机制。
位数据如经纬度、速度、时间等均可以¥GPRMc帧中获取得到。
#cd/opt/SBC-24lOII/yaffs 所以.必须对接收到的数据进行过滤处理,因此判断SGPRMC #cp yaffsimage/usr/bin 就成为过滤的一个条件。
¥GPRMC后面的59个字符是有用的 #cd/opt/SBC-2410II 信息.所以,设计时以“59”作为判断定位语句完整的依据。
另外 样yaffsimage root._dir sbc_fs.img 由于从GPS接收机中获得的时间信息为格林尼治时间.需要在 成功后将会在/opt/SBC2410II目录下生成sbc__fs.img.就是 获取时间上加8h才为我国标准时间。
要固化到Nand flash中去的yaffs文件系统。
利用终端仿真程序DNW和Boot loader引导程序通过串口 3结论就可以把Linux内核移植到目标系统板。
移植完成后,Linux就 基于ARM9内核的处理器¥3C2410.以其资源丰富、处理 (爹目自控胃邮局订阅号:82—946 360元,年一189— GPS GIS 中文核心期千u‘微计算机信息>(测控自动化)2008年第24卷第5—1期 能力强、功耗低、性价比高等优点而成为很多嵌入式系统平台 CB,s18 4:num++; break; 严减速·, 的首选。
实验证明,基于¥3C2410平台开发的车载定位系统能 l 很好地完成GPS定位和LCD显示等功能。
目前,仍在对系统进 l 一步完善.以充分利用现有的硬软件平台,使其功能更加趋于 return 0: 多功能化和智能化。
J; 创新点: 通过s指针得到stepper结构中的表示命令类型的参数。
根 1.在设计过程中.对硬件实现采用集成化的思想,充分利用 据该参数判断命令类型,0是start起动,l是stop停止,2是 开发板的资源:软件设计采用模块化思想,提高系统的可扩展 reverse反向,3是up电机加速,4是down电机减速,通过改变 性和可维护性,增长软件的生命周期。
全局变量Hum和status来控制电机。
电机的起动是通过在start 2.开发平台为ARM9+Linux,系统功耗低、可靠性高、功能 分支中起动一个定时器Rimer,然后在定时器处理函数time_tick强大、性能价格比高、实时性强、支持多任务、占用空间小、效率 中发送步进电机脉冲,并重新添加定时器,从而实现 高。
面向特定应用,可根据需要灵活定制。
步进电机的转动。
作者简介:李晓侠(1983一),男(汉族),山西孝义人,湖南大学 4结语 电气与信息工程学院硕士研究生.主要从事嵌入式系统的研究 本文归纳了嵌入式“nux驱动程序开发的特点并且结合嵌与应用;彭楚武(1949一),男(汉族),湖南大学电气与信息工程学 入式Linux下步进电机的驱动说明了驱动程序的编写。
本文论 院教授。
主要从事嵌入式系统及CIMS的研究。
参考文献: 述的驱动程序比较简单.—个功能齐全的驱动程序除了本文提到 的几种功能外。
还应该包括中断处理。
这些工作有待日后完成。
【1】张纪坤,张小全。
嵌入式Linux系统开发技术详解——基于 本文作者创新点:步进电机在嵌入式的应用中传统的方式ARM〔M〕。
人民邮电出版社,2006。
都是在没有操作系统中完成。
或者在没有支持MMU的操作系〔2】谭金,孟志强,丁伟。
基于ARM的车载导航定位终端硬件设 统中实现.本文在操作系统支持MMU的情况下完成了对于步 计【J〕,微计算机信息。
2006.7—2:142—143。
进电机的控制。
【3〕Wall.Watson.whitis。
GNU/Linux编程指南【M】。
清华大学出版社,2000。
.
上一篇:
基于Web的呼叫中心测试系统
下一篇:
关于大学英语教学