DIY分享:嵌入式导航系统硬件+软件设计教程
出处:电子发烧友 发布于:2020-02-12 12:33:09
1 嵌入式导航系统主要组成
嵌入式导航系统由硬件层、软件层和中间层组成。硬件层主要由一片嵌入式处理器控制模块,再加上外围的功能模块组成;软件层主要由系统软件和应用软件组成,其中系统软件主要指嵌入式操作系统,应用软件实现对被控对象的控制功能;中间层也称为板级支持包(BSP),它将上层软件和底层硬件分离开来,使系统的底层驱动与硬件无关。
BSP 是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP 是相对于操作系统而言的,不同的操作系统对应于不同定义形式的 BSP,例如 VxWorks 的 BSP 和 Linux 的 BSP 相对于某一 CPU 来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写 BSP 一定要按照该系统 BSP 的定义形式来写(BSP 的编程过程大多数是在某一个成型的 BSP 模板上进行修改)。这样才能与上层 OS 保持正确的接口,良好的支持上层 OS.
2 嵌入式导航系统硬件设计
2.1 系统硬件总体设计
2.2 GPS 模块电路设计
GPS 是英文 GlobalPositioningSystem(定位系统)的简称,而其中文简称为"球位系".GPS 是 20 世纪 70 年代由美国陆海空三军联合研制的新一代空间卫星导航定位系统。其主要目的是为陆、海、空三大领域提供实时、全天候和性的导航服务,并用于情报收集、核爆监测和应急通讯等一些军事目的经过 20 余年的研究实验,耗资 300 亿美元,到 1994 年 3 月,覆盖率高达 98%的 24 颗 GPS 卫星星座己布设完成。在机械领域 GPS 则有另外一种含义:产品几何技术规范(GeometricalProductSpecIFicaTIons)- 简称 GPS. 另外一种解释为 G/s(GBpers)
该导航系统上使用的 GPS 接收芯片是芬兰 Fas-trax 公司的 iTrax300 GPS 接收芯片。iTrax 300 是具有可编程 NEMA 协议的 OEM GPS 接收芯片,具有极低功耗、少的硬件设计等特点。模块与 S3C2440A 接口电路如图 2 所示。其中,RX_GPS,RX_GPS 接入 UART 端。
该系统软件由嵌入式系统软件(Win CE 5.0)和应用软件(GPS 导航软件)组成。
3.1 Win CE 5.0 嵌入式操作系统的构建
WindowsCE 是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的 32 位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的 Windows95,WindowsCE 的图形用户界面相当出色。WinCE5.0 在 2004 年 5 月份推出,微软宣布 WinCE5.0 扩大开放程序源代码。在这个开放源代码计划授权下,微软开放 250 万行源代码程序作为评估套件(evaluaTIonkit)。凡是个人、厂商都可以这些源代码加以修改使用,未来厂商 OEM 时,则再依执行时期(Run-TIme)授权,支付 WinCE5.0 每台机器 3 美元的授权费用,这也是微软个提供商业用途衍生授权的操作系统。
3.2 Win CE 操作系统下的应用软件设计
应用软件是基于 win CE 5.0 嵌入式操作系统开发的导航软件应用程序,用来实现对被控对象的控制功能。导航软件需要提供一个友好的人机界面,同时配合多功能电子地图,完成对 GPS 信号的解析和定位;终将路径规划和语音导航功能映射到整个系统的硬件和软件的设计过程中。Embedded Visual C++4.0 下编写 GPS 导航软件设计流程如图 3 所示。
4 结 语
这里从硬件、软件两部分入手,简述了嵌入式导航系统的整个设计过程,涉及到 S3C2440A,WindowsCE5.0 和 GPS 模块在系统中的实现。该系统的可运用在手持式、车载式卫星导航系统中,使人们日常生活中出行更加便捷,行车更加安全,有广阔的应用前景。
版权与免责声明
凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。
本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。
如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。
- EMMC和NAND闪存的区别2025/4/30 16:52:00
- RRAM:高性能嵌入式应用程序的非挥发记忆2025/2/25 16:28:35
- J-LINK、U-LINK和ST-LINK有什么区别?2025/2/24 17:45:52
- 嵌入式开发需要什么硬件2025/1/7 17:20:10
- 如何使用 TDD 为嵌入式软件编写更好的单元测试2024/12/31 16:40:57