基于嵌入式Linux的车载定位系统设计_第1页
基于嵌入式Linux的车载定位系统设计_第2页
基于嵌入式Linux的车载定位系统设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图 1 硬件框图基于嵌入式的车载定位系统设计Lin u xDe s ig n o f Ve h icle Na vig a tio n S ys te m Ba s e d o n Em b e d d e d Lin u x(湖南大学) 李晓侠彭楚武 易 珂 黎职富LI Xia o-xia P ENG Chu-wu YI Ke LI Zhi-fu摘要: 本 文 以 Samsung S3C2410 为 核 心 处 理 器 , 以 嵌 入 式 Linux 为 操 作 系 统 , 结 合 GPS 接 收 机 和 LCD 液 晶 显 示 等 模 块 设 计 了一 个 基 于 嵌 入 式 系 统 的 车 载 定 位 系 统 。详 细 介 绍 了 移 植 Linux 操 作 系 统 到 S3C2410 开 发 板 上 的 方 法 以 及 GPS 模 块 串 口 通 信 的 实 现 。关键词: 嵌入式 Linux; S3C2410; 串口通信; 车载定位中图分类号: TP316文献标识码: AAbstr act: Vehicle Navigation System based on Embedded Linux was designed , regarding the S3C2410 controller as the core , using Embedded Linux operation system, combining the modules of GPS and LCD Display。 In this paper introduced the transplantation to the goal platform of Linux operation system and the implementation of serial- port communication in detail。Key wor ds: Embedded Linux; S3C2410; Ser ial- Por t Communication; Vehicle Navigation技术 创 新引言随着私人汽车的普及, 车载导航系统越来越被人们关注。 目前车载导航系统的使用还多和奢侈相联系, 因此降低其价格 是普及车载导航系统的关键之一。车载导航系统作为嵌入式应用的典 范 ,它 上 面 运行 的 多 是目 前 流 行的 商 用 嵌入 式 操 作系统 , 如 PSOS, Windows CE, Vxworks 等 , 这 些 操 作 系 统 均 属 于 商业 系 统 , 价 格 昂 贵 , 且 源 代 码 不 公 开 , 使 得 产 品 的 开 发 费 用 提 高。嵌入式 Linux 却有着 GNU/GPL 的开源性、支持多种 CPU 的兼容性, 且继承了 UNIX 良好的稳定性和安全性等许多优点, 它的运用越来越广泛, 因此选用嵌入式 Linux 系统来开发车载定 位系统是可行和最为适合的选择之一。系统概述:车载定位系统是 ITS 系统 (智能交通系统) 的重要组成部 分, 它将卫星定位技术(GPS), 地理信息系统(GIS)以及现 代通 信 技术融于一身。主要功能是将装有 GPS 接收机的移动载体的动 态位置、时间 、状 态 等信 息 在 具有 强 大 地理 信 息 处理 和 查 询功 能的电子地图上进行显示, 并能对载体的准确位置、速度、运动 方向、车辆状态等基本信息进行监控和查询。系统硬件结构框图如图 1 所示, 由于操作系统所占用的空间比较大, 所以 Flash 里面装有系统引导程序, 通常称为 Boot Loader, 是在系统复位后执行的第一段代码, 相当于 PC 上 的 BIOS, 完成系统硬件的初始化, 包括时钟的设置、存储区的映射 等, 设置堆栈指针, 然后跳转到操作系统内核的入口, 将系统控 制权交给操作系统, 在此之后系统的运行和 Boot Loader 再无任 何关系。Boot Loader 独立于操作系统, 它的实现高度依赖于硬 件, 包括处理器的体系结构、具体型号、硬件电路板的设计。嵌入式硬件平台1系统选用广州友善之臂的 SBC- 2410X 开发板作为硬件开发平台, 在对其 进 行 硬件 裁 减 的基 础 上 , 构成 设 计 所需 的 硬 件 系统, 由嵌入 式 处 理器 、SDRAM、NAND FLASH、TFT LCD、触 摸屏 、GPS 模 块 等 构 成 。 嵌 入 式 处 理 器 选 用 三 星 公 司 推 出 基 于ARM920T 内核的 S3C2410 处理器。S3C2410 是 Samsung 公司专 门为 PDA、Intenet 设备和手持设备等专门开发的微处理器。该嵌入式软件系统2通 过 将 嵌 入 式 Linux 和 图 形 用 户 界 面(GUI)移 植 到 上 述 的硬件平台, 并开发外围设备的驱动程序和用户运用程序来搭建 软件系统。底层软件平台为具有自主知识产权的全套实时多任务操 作 系统 系 统(RTOS), 包括 调 度 内核(KERNEL)、图 形 软 件 包 (GRAFIX)以及文件系统(FILE)等。驱动软件包括触摸屏驱动、键 盘驱动、串口驱动、以及卫星定位系统驱动等。2.1 Linux2.4.18 内核移植(1)交叉编译环境的建立芯片还包含有 16kB 一体化的 Cache/MMU,这一特性可以方便地将 Linux 移植到基于该处理器的目标系统中。李晓侠: 硕士研究生基金项目: 湖南省 2004 年重点科技攻关项目(04GK2012)元 年 邮局订阅号图 2 嵌入式应用程序结构图GP S GIS交叉 编 译环 境 就 是在 一 个 平台 上 生 成可 以 在 另 一 个 平 台上执行的代码。采用交叉编译的主要原因在于, 多数嵌入式目 标机不能提供资源供编译过程使用, 因而只好将编译工作转移 到高性能的宿主机中进行。目标机(SBC- 2410X)和宿主机(PC)之 间通过串口, 并口或以太网口建立连接。在 PC 机上装上 Red- hat linux 9.0, 执 行 完 全 安 装 。 然 后 在 PC 端 以 root 身 份 登 陆 linux 系 统 , 下 载 交 叉 编 译 器 toolchain 安 装 包 arm - linux - toolchains.tgz 置 于 根 目 录 下 , 在/usr/local 目 录 下 建 立 名 为 arm 的目录, 进入该目录, 执行解包:# cd /usr/local/arm# tar xvzf /arm- linux- toolchains.tgz(2)Linux 核心代码的移植可以在目标系统板上运行了。2.2 嵌入式图形用户界面图形用户界面(GUI)提供常用的控件类和消息传递机制, 使 用户能实现绚丽的界面和丰富的操作; 而用户也只要使用 GUI 提供的各种接口来编写自己的应用程序。系统采用 Linux 自带 的 Qt Designer 来编写程序。Qt Designer 是一个优秀的可视化开 发工具, 用它来设计十分容易。它的界面类似于 Delphi, 但使用 C+语言编写应用程序。最重要的功能为地图显示与浏览功能。 显示的地图 可 为 栅格 地 图 , 也可 为 矢 量地 图 , 根 据实 际 需 要选 择, 这两种地图数据格式在显示实现时有区别。系统采用的电 子地图是矢量地图, 矢量地图使用经纬度来描述地理位置, 非 矢量地图 没有 保 存 比例 尺 、经 纬度 信 息 , 只能 使 用 图片 的 像 素 点来描述地理位置, 查询起来不方便。2.3 GPS 通信程序的实现图 2 所示为嵌入式应用程序的功能结构示意图。它主要有 两部分组成:一部分为与用户进行交互的应用程序部分, 另一部 分为与 GPS 没备进行通信的通信程序。在/opt 目录下建立名为 SBC- 2410II 的目录,执行解包:# cd /opt/SBC- 2410II# tar xvzf /SBC- 2410II.tgz(3)设置系统环境变量:# vi /etc/profile进入该目录,Pathmunge /usr/local/sbin 后 面 添 加 一 行 Pathmunge /usr/lo-cal/arm/2.95.3/bin技术 创 新这样,内核或其他应用程序均可以用 arm- linux- 来指定使用该交叉编译器。(4)编译 VIVI# cd /opt/SBC- 2410II/vivi# make menuconfig选 中 Load an Alternate Configuration File 进 入 相 关 参 数 设 置, 保存为 arch/def- configs/SBC- 2410X 后退出。# make编 译 成 功 后 在 vivi 目 录 下 将 产 生 一 个 名 为 vivi 的 二 进 制 文件, 也即我们要烧入目标板的 boot loader。(5)编译内核# cd /opt/SBC- 2410II/kernel# make menuconfig选 中 Load an Alternate Configuration File 进 入 相 关 参 数 设 置, 保存为 sbc2410_cfg 后退出。# make dep# make clean# make zImage编译结束后在/arch/arm/boot 目录下 得 到 linux 内核 压 缩 映 像文件 zImage。(6)准备 root 文件系统:yaffs 是一种专门为嵌入式系统中常用的 flash 设备设计的一种 可读写的文件系统, 具有较快的启动速度, 对 flash 使用寿命有 更好的保护机制。# cd /opt/SBC- 2410II/yaffs# cp yaffsimage /usr/bin# cd /opt/SBC- 2410II# yaffsimage root_dir sbc_fs.imgGPS 通信模块采用的是 HIMARK 的 AR2010- GM,输出数据格式为 NMEA 标准定位数据格式。系统初始化时。该模块波特率设置为 19200。输出数据被置为 RMC 格式输出。微处理器 采用中断查询的方式, 通过 UATR0 口按设定时间取出经度、纬 度、速度、UTC 时间和定位有效性指示等数据。GPS 作为 DTE (数字终端设备) 与嵌入式平台之间通过 RS- 232 串行通信接口 进行数据交换。因此, 与 GPS 的数据通信实际上即完成 Linux 下 的串口编程。两者之间的通信协议采用 NMEA0183 通信协议。 NMEA0183 协议是 GPS 串口通信的通信协议, 在完成 GPS 通信 时, 并不需要了解协议的全部内容, 只需了解通信基本参数和所 需信息的语句格式,从中选取有用信息,而忽略其他信息。定位 数 据主 要 由 帧头 、帧 尾 和帧 内 数 据组 成 , 根 据 数 据 帧 的 不 同 , 帧 头 也 不 相 同 , 主 要 有$GPGGA、$GPGSA、$GPGSV 以及$GPRMC 等。每种帧头后的数据也有其固定的格式, 各帧均 以回车符和换行符作为帧尾标识一帧的结束。我们所关心的定位数据如经纬度、速度、时间等均可以$GPRMC 帧中获取得到。 所以, 必须对接收到的数据进行过滤处理, 因此判断$GPRMC 就成为过滤的一个条件。$GPRMC 后面的 59 个字符是有用的信息, 所以, 设计时以“59”作为判断定位语句完整的依据。另外 由于从 GPS 接收机中获得的时间信息为格林尼治时间, 需要在 获取时间上加 8h 才为我国标准时间。成功后将会在/opt/SBC2410II 目录下生成 sbc_fs.img,要固化到 Nand flash 中去的 yaffs 文件系统。就是结论3利用终端仿真程序 DNW 和 Boot loader 引导程序通过串口就可以把 Linux 内核移植到目标系统板。移植完成后, Linux 就基 于 ARM9 内 核 的 处 理 器 S3C2410, 以 其 资 源 丰 富 、处 理邮局订阅号: 82-946 360 元 / 年 - 189 -P LC 技术应用 200 例您 的 论 文 得 到 两 院 院 士 关 注GP S GIS中 文 核 心 期 刊 微 计 算 机 信 息 ( 测 控 自 动 化 ) 2008 年 第 24 卷 第 5-1 期能力强、功耗 低 、性 价比 高 等 优点 而 成 为很 多 嵌 入式 系 统 平台的首选。实验证明, 基于 S3C2410 平台开发的车载定位系统能 很好地完成 GPS 定位和 LCD 显示等功能。目前, 仍在对系统进 一步完善, 以 充 分 利用 现 有 的硬 软 件 平台 , 使 其 功能 更 加 趋于 多功能化和智能化。创新点:1.在设计过程中, 对硬件实现采用集成化的思想, 充分利用 开发板的资源 ; 软 件 设计 采 用 模块 化 思 想, 提 高 系 统的 可 扩 展 性和可维护性, 增长软件的生命周期。2. 开 发 平 台 为 ARM9+Linux, 系 统 功 耗 低 、可 靠 性 高 、功 能 强大、性能价格比高、实时性强、支持多任务、占用空间小、效率 高。面向特定应用, 可根据需要灵活定制。作者简介:李晓侠(1983- ), 男(汉族), 山西孝义人, 湖南大学 电气与信息工程学院硕士研究生, 主要从事嵌入式系统的研究 与应用; 彭楚武(1949- ), 男(汉族), 湖南大学电气与信息工程学 院教授, 主要从事嵌入式系统及 CIMS 的研究。参考文献:1张纪坤,张小全。嵌入式 Linux 系统开发技术详解基于ARMM。人民邮电出版社,2006。2谭金,孟志强,丁伟。基于 ARM 的车载导航定位终端硬件设 计J,微计算机信息。2006.7- 2:142- 143。 3Wall.Watson.Whitis。GNU/Linux 编程指南M。清华大学出版 社,2000。4孙天泽,袁文菊,张海峰。嵌入式设计及 Linux 驱动开发指南M。北京:电子工业出版社,2005。5邬伦,刘瑜等。地理信息系统原理方法和应用M。科学出版 社,2001。Biogr aphy:LI Xiaoxia(1983- ), male(Han ethnic), Shanxi, HUNAN University, graduate, ResearchArea:embeddedsystemPENG Chuwu (1949 - ), male, (Han ethnic), Hunan, HUNAN University, professor, Research Area:embedded system and CIMScase 4: num+;return 0;break;/* 减速 */通过 s 指针得到 stepper 结构中的表示命令类型的参数, 根据 该 参 数 判 断 命 令 类 型 , 0 是 start 起 动 , 1 是 stop 停 止 , 2 是reverse 反向, 3 是 up 电机加速, 4 是 down 电机减速,通过改变全局变量 num 和 status 来控制电机。电机的起动是通过在 start分支中起动一个定时器 ttimer, 然后在定时器处理函数time_tick 中 发 送 步 进 电 机 脉 冲 , 并 重 新 添 加 定 时 器 , 从 而 实 现 步进电机的转动。结语4本文归纳了嵌入式 Linux 驱动程序开发的特点并且结合嵌入式 Linux 下步进电机的驱动说明了驱动程序的编写。本文论 述的驱动程序比较简单, 一个功能齐全的驱动程序除了本文提到 的几种功能外, 还应该包括中断处理。这些工作有待日后完成。本文作者创新点:步进电机在嵌入式的应用中传统的方式 都是在没有操作系统中完成, 或者在没有支持 MMU 的操作系 统中实现, 本文在操作系统支持 MMU 的情况下完成了对于步 进电机的控制。参考文献:1钱晨,徐荣华,王钦若. 基于 Linux 操作系统的设备驱动程序 开发J微计算机信息,2004.20- 9:1312alessandro rubinni. LINUX DEVICE DRIVERSM. OReilly,2000, 117- 119作者简介: 赵敏(1978- ), 男(汉族), 湖北省人, 武汉科技大学信息 科学与工程学院助教, 硕士, 2004 年供职于武汉创维特公司。主 要从事嵌入式系统的研究; 刘振兴(1965- )男(汉族)武 汉 科技 大 学 信 息 科 学 与 工 程 学 院 教 授 , 博 士 生 导 师 , 主 要 从 事 工 业 控 制和自动化方面的研究。技术 创 新湖 南 长 沙湖 南 大 学 电 气 与 信 息 工 程 学 院 )李 晓 侠(410082Biogr aphy:ZHAO Min (1978 - ), Male (Han), Hubei ,Wuhan彭楚武 易珂 黎职富(College of Electr ical and Infor mation Engineer ing, Hunanuniversity of science and technology College of inform

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论