基于ARM9处理器S3C2440的GPS导航终端机的设计方案
8
拍明
原标题:基于ARM9处理器S3C2440的GPS导航终端机的设计方案
基于ARM9处理器S3C2440的GPS导航终端机的设计方案
一、引言
随着汽车等交通工具的普及,车辆导航设备的需求日益旺盛。车辆导航设备不仅需要具备可靠的性能,还需满足便携、低功耗和低成本等要求。基于ARM9处理器S3C2440的嵌入式系统与GPS模块相结合的方案,能够很好地满足这些需求。本文将详细介绍基于ARM9处理器S3C2440的GPS导航终端机的设计方案,包括硬件选型、各模块功能、软件设计以及地图匹配算法等内容。

二、系统总体架构
本GPS全球定位导航系统按功能可分为嵌入式主控模块、GPS模块、显示模块、扩展模块及供电模块等五大部分。
嵌入式主控模块基于S3C2440处理器,它是整个系统的核心,主要负责对GPS导航模块数据的响应、处理和控制。在硬件上,主控模块就是一个嵌入式开发板,包含触摸LCD接口电路、SD卡接口电路、FLASH、SDRAM等。而在软件上,主控模块上运行嵌入式Linux系统,该系统的主要作用是管理程序模块进程并调度进程等。
GPS模块用于接收导航卫星数据,并以特定的格式发送给主控模块。显示模块选用合适的LCD显示屏,主要用于与用户进行交互,用户可以通过屏幕了解导航信息,也可以直接操作触摸屏来操作系统,如地图的缩放、查看定位信息等。扩展模块主要指的是SD卡,可用于存储地图数据等。供电模块则为系统正常工作提供电源。
三、硬件选型及功能介绍
(一)主控处理器——S3C2440AL - 40
1. 元器件型号及参数
选择三星电子出品的S3C2440AL - 40处理器,它采用ARM920T内核,运行频率稳定在405MHz,最高可达533MHz。封装形式为BGA289,具备1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电,拥有16KB的I - Cache和16KB的DCache,还集成了MMU(内存管理单元)。
2. 器件作用
作为整个GPS导航终端机的核心,S3C2440AL - 40负责协调各个模块的工作。它接收GPS模块发送的定位数据,进行处理和分析后,将相关信息发送给显示模块进行显示。同时,它还管理与扩展模块(如SD卡)的数据交互,读取存储在SD卡中的地图数据等。此外,通过运行嵌入式Linux系统,实现对整个系统进程的管理和调度。
3. 选择原因
S3C2440AL - 40是一款高性能、低功耗的嵌入式微处理器,专为手持设备和一般消费电子而设计,能满足小型嵌入式系统中低成本低功耗高性能小体积的要求。它集成了丰富的片上资源,如外部存储控制器、LCD控制器、多通道UART、PWM定时器等,在开发过程中可有效减少外围的设备部件,降低系统的成本。其较高的运行频率能够保证系统快速处理GPS定位数据和其他任务,满足导航系统对实时性的要求。
4. 功能介绍
外部存储控制:支持SDRAM控制和片选逻辑,可方便地连接外部存储器,为系统提供足够的数据存储空间。例如,可连接64MB的SDRAM用于代码的执行,保证系统程序的流畅运行。
LCD控制:内置LCD控制器支持多种类型的LCD显示屏,包括单色、每像素2位(4级灰度)、每像素4位(16级灰度)的黑白屏,也支持每像素8位(256色)和每像素12位(4096色)的彩色LCD,还支持每像素16位和每像素24位的真彩显示。可通过编程选择支持不同的LCD屏的要求,如行和列像素、数据总线宽度、入口时序和刷新频率等,满足不同显示需求。
多通道UART:提供3通道UART(IrDA1.0,64B TxFIFO,和64B RxFIFO),可用于与其他设备进行串行通信,如与GPS模块进行数据传输,接收GPS模块发送的定位信息。
PWM定时器:具备4通道PWM定时器和1通道内部定时器/看门狗定时器。定时器可用于系统时序控制、任务调度等多种功能,看门狗定时器则用于监测和管理系统的状态,确保系统在出现故障或停止响应时能够自动重启。
(二)GPS模块——GR - 87型GPS模块
1. 元器件型号及参数
选用GR - 87型GPS模块,其输出语句遵循NMEA - 0183标准。“$”之后是5字符地址,头两个字符为发送者识别码(GPS为“GP”),后3位为语句名称。定位信息中的数据由“,”来划分,一般每秒可以输出一次NMEA - 0183格式语句。
2. 器件作用
主要负责接收导航卫星数据,并将这些数据转换为特定的格式(如NMEA - 0183格式)发送给主控模块。主控模块通过对这些数据的处理和分析,获取车辆的经纬度、速度、时间等信息,从而实现导航功能。
3. 选择原因
GR - 87型GPS模块遵循通用的NMEA - 0183标准,这种标准被广泛应用于各种GPS设备中,具有良好的兼容性。其每秒输出一次数据的频率能够满足导航系统对实时定位信息的需求。而且,该模块输出的语句中包含了系统所需的多种信息,如时间、日期、经纬度、速度等,方便主控模块进行数据提取和处理。
4. 功能介绍
卫星数据接收:能够接收来自导航卫星的信号,通过内部的处理电路对信号进行解调和解码,获取卫星的定位信息。
数据格式转换与输出:将接收到的定位信息按照NMEA - 0183标准进行格式转换,并通过串口等接口将数据发送给主控模块。输出的语句中包含了丰富的定位相关信息,如GPRMC语句完整包含了时间、日期、经纬度、速度等信息,主控模块只需对相关语句进行提取即可获取所需数据。
(三)显示模块——3.5寸TFT带触摸屏LCD
1. 元器件型号及参数
选择3.5寸TFT带触摸屏LCD,其具有较高的分辨率和色彩显示能力,能够清晰地显示导航地图和相关信息。触摸屏功能则方便用户与系统进行交互,如输入目的地、缩放地图等操作。
2. 器件作用
作为人机交互的重要界面,将主控模块处理后的导航信息直观地显示给用户,同时接收用户的触摸操作指令,并将指令反馈给主控模块,实现用户对系统的操作和控制。
3. 选择原因
3.5寸的尺寸大小适中,既不会占用过多空间,又能提供足够的显示区域,方便用户查看导航信息。TFT显示屏具有较好的色彩显示效果和较高的分辨率,能够清晰地显示地图的细节和各种导航信息。触摸屏功能则增加了系统的操作便捷性,用户无需通过额外的按键等设备进行操作,只需通过触摸屏幕即可完成各种功能设置。
4. 功能介绍
显示功能:通过与主控模块的连接,接收主控模块发送的显示数据,将导航地图、车辆位置、行驶方向等信息清晰地显示在屏幕上。支持地图的缩放、滚动等操作,方便用户查看不同范围的地图信息。
触摸感应功能:能够感知用户的触摸操作,将触摸位置信息转换为电信号,并发送给主控模块。主控模块根据接收到的触摸位置信息,判断用户的操作意图,如点击、滑动等,并执行相应的操作,如选择目的地、调整地图视角等。
(四)存储模块——SDRAM和NAND Flash
1. 元器件型号及参数
SDRAM:选用韩国现代公司的HY57V561620芯片,作为数据存储空间,为系统程序的运行提供快速的读写支持。
NAND Flash:用于保存代码和各种文件,如地图数据、系统配置文件等。可选用合适容量的NAND Flash芯片,以满足系统的存储需求。
2. 器件作用
SDRAM:在系统运行过程中,为程序提供临时的数据存储空间,保证程序的流畅运行。例如,在运行嵌入式Linux系统和导航应用程序时,需要将正在处理的数据和指令存储在SDRAM中,以便CPU快速访问。
NAND Flash:用于长期存储系统的代码和各种文件。地图数据通常较大,需要存储在NAND Flash中,系统在需要时从NAND Flash中读取地图数据进行显示和处理。
3. 选择原因
SDRAM:HY57V561620芯片具有较高的存储容量和较快的读写速度,能够满足系统对临时数据存储的需求。其与S3C2440处理器的兼容性好,能够稳定地工作在系统环境中。
NAND Flash:具有较高的存储密度和较低的成本,适合用于存储大量的数据,如地图数据等。同时,NAND Flash具有较好的可靠性和稳定性,能够保证数据的长期安全存储。
4. 功能介绍
SDRAM:通过与S3C2440处理器的内存控制器连接,实现数据的快速读写操作。在系统启动时,将操作系统和应用程序加载到SDRAM中运行,提高系统的运行速度。在程序运行过程中,为变量、数组等数据提供存储空间,保证程序的正常执行。
NAND Flash:通过特定的接口与S3C2440处理器连接,处理器可以通过发送相应的命令和地址来对NAND Flash进行读写操作。在系统初始化时,将存储在NAND Flash中的操作系统和应用程序加载到SDRAM中运行。同时,系统可以将用户设置的参数、下载的地图数据等存储在NAND Flash中,以便下次使用时直接读取。
(五)供电模块
1. 元器件型号及参数
根据系统各模块的电源需求,选择合适的电源管理芯片和电源转换电路。例如,可使用线性稳压芯片为S3C2440处理器的内核、存储器和I/O提供稳定的电源电压。对于一些需要较高电流的模块,如LCD显示屏,可选用开关电源芯片进行供电,以提高电源转换效率。
2. 器件作用
为整个GPS导航终端机的各个模块提供稳定、合适的电源电压,确保系统正常工作。不同的模块可能需要不同的电源电压,供电模块需要将这些不同的电压准确地提供给各个模块。
3. 选择原因
合适的电源管理芯片和电源转换电路能够根据系统各模块的需求,提供稳定、高效的电源供应。线性稳压芯片具有输出电压稳定、噪声低等优点,适合为对电源质量要求较高的模块供电,如处理器的内核。开关电源芯片则具有较高的转换效率,能够减少电源损耗,适合为需要较大电流的模块供电,如LCD显示屏。
4. 功能介绍
电压转换:将输入的电源电压转换为系统各模块所需的不同电压,如将5V或12V的输入电压转换为1.2V、1.8V、2.5V、3.3V等不同电压,分别供给处理器的内核、存储器、I/O等模块使用。
电源管理:对电源进行管理和控制,如实现电源的开关控制、过压保护、过流保护等功能。当系统出现异常情况时,如电压过高或电流过大,电源管理模块能够及时切断电源,保护系统各模块不受损坏。
四、软件设计
(一)嵌入式Linux操作系统的移植
1. 启动代码移植
启动代码是系统上电后运行的第一段代码,主要负责硬件初始化、设置系统时钟、初始化内存等操作,为操作系统的运行做好准备。在移植启动代码时,需要根据S3C2440处理器的硬件特性进行相应的修改和配置,如设置处理器的时钟频率、初始化SDRAM控制器、配置NAND Flash控制器等。
2. 内核定制
根据系统的功能需求,对嵌入式Linux内核进行定制。选择需要的内核模块和驱动程序,去除不需要的模块,以减少内核的大小,提高系统的运行效率。例如,在导航系统中,需要保留与GPS模块、LCD显示屏、存储设备等相关的驱动程序,去除一些不必要的网络协议栈模块等。
3. 根文件系统制作
根文件系统是操作系统启动时挂载的第一个文件系统,它包含了系统运行所需的基本文件和目录结构,如系统库、配置文件、设备文件等。制作根文件系统时,需要选择合适的文件系统类型,如JFFS2、YAFFS2等,这些文件系统适合在NAND Flash等存储设备上使用,具有较好的可靠性和稳定性。同时,需要将系统所需的各种文件和目录按照一定的结构组织到根文件系统中。
(二)驱动程序开发
1. GPS模块驱动程序
GPS模块通过串口与主控模块进行通信,因此需要开发串口驱动程序来实现与GPS模块的数据传输。在驱动程序中,需要初始化串口的相关参数,如波特率、数据位、停止位等,使其与GPS模块的输出设置相匹配。同时,需要实现数据的接收和发送功能,将接收到的GPS定位数据传递给上层应用程序进行处理。
2. LCD显示屏驱动程序
LCD显示屏驱动程序负责控制LCD显示屏的显示操作。根据所选用的LCD显示屏的类型和参数,配置LCD控制器的相关寄存器,如行和列像素、数据总线宽度、入口时序和刷新频率等。实现将显示数据从内存中读取并发送到LCD显示屏的功能,支持地图的显示、文字的显示等操作。
3. 触摸屏驱动程序
触摸屏驱动程序用于感知用户的触摸操作,并将触摸位置信息转换为电信号发送给主控模块。在驱动程序中,需要初始化触摸屏控制器的相关参数,如采样频率、触摸阈值等。实现触摸位置信息的读取和处理功能,将触摸位置坐标传递给上层应用程序,以便应用程序根据触摸位置执行相应的操作。
(三)导航应用程序设计
1. 导航电子地图处理
导航电子地图一般都是分层的数字矢量地图,具有一定的分层结构,如道路层、兴趣点层、文本层等。导航应用程序需要读取存储在SD卡中的地图数据,并将其加载到内存中进行显示和处理。同时,需要将地图数据中的经纬度坐标信息转换为平面坐标,以便在LCD显示屏上进行显示。
2. GPS数据提取与处理
从GPS模块接收到的数据中提取出所需的信息,如时间、日期、经纬度、速度等。由于RMC语句完整包含了系统所需的上述信息,因此只需对RMC语句进行提取即可。对提取到的数据进行处理和分析,如计算车辆的行驶方向、距离目的地的距离等。
3. 地图匹配算法实现
地图匹配的基本思路是通过车辆的GPS轨迹与地图上矢量化的路段对象进行匹配,从而寻找当前所行进的道路,并将当前的GPS定位点投影到道路上。本文采用投影法来实现地图匹配,具体步骤如下:
预处理道路层:将地图中的道路数据转换为折线段的形式,方便后续的匹配计算。
寻找当前道路:根据车辆的GPS定位信息,初步确定车辆可能所在的道路范围,然后在该范围内寻找最接近车辆位置的道路。
投影匹配:将当前的GPS定位点投影到找到的道路上,计算投影点到定位点的距离。通过设置阈值来滤掉错误匹配点,得到初步的匹配结果。
优化处理:采用最邻近法等算法对初步匹配结果进行优化处理,提高地图匹配的准确性。
4. 图形用户界面设计
选用QT/Embedded作为图形用户接口界面,QT Designer是一个跨平台的符合C++规范的图形用户界面程序开发工具。利用QT的图形显示函数将矢量地图分层画出,分为道路层、道路名层、交叉结点层、兴趣点层等。在此基础上开发出相应的功能,如地图的缩放、滚动、兴趣点查询等。用户可以通过触摸屏与图形用户界面进行交互,实现各种导航功能。
五、系统测试与优化
(一)功能测试
对系统的各个功能模块进行测试,包括GPS定位功能、地图显示功能、导航功能、触摸屏交互功能等。检查系统是否能够准确接收GPS定位数据,并将车辆位置正确显示在地图上;测试导航功能是否能够根据用户输入的目的地规划出合理的行驶路线,并在行驶过程中实时更新车辆位置和导航信息;验证触摸屏交互功能是否灵敏、准确,用户能否通过触摸屏顺利完成各种操作。
(二)性能测试
测试系统的性能指标,如定位精度、响应时间、系统资源占用率等。通过与专业的定位设备进行对比,评估系统的定位精度是否满足要求;测量系统从接收GPS定位数据到在地图上显示车辆位置的时间,检查系统的响应时间是否在合理范围内;使用系统监控工具查看系统在运行过程中CPU、内存等资源的占用情况,确保系统资源占用率在可接受范围内,不会出现因资源不足导致系统卡顿或死机的情况。
(三)优化措施
根据测试结果,对系统进行优化。如果定位精度不满足要求,可以检查GPS模块的安装位置和周围环境是否存在干扰,或者对地图匹配算法进行进一步优化;如果系统响应时间过长,可以优化软件代码,减少不必要的计算和数据传输,提高系统的运行效率;如果系统资源占用率过高,可以对内核进行进一步定制,去除不必要的模块和驱动程序,减少系统资源的占用。
六、结论
本文详细介绍了基于ARM9处理器S3C2440的GPS导航终端机的设计方案,包括硬件选型、软件设计、地图匹配算法以及系统测试与优化等方面。通过选择合适的硬件元器件,如S3C2440AL - 40处理器、GR - 87型GPS模块、3.5寸TFT带触摸屏LCD等,并对其进行合理的配置和连接,构建了稳定的硬件平台。在软件方面,通过移植嵌入式Linux操作系统、开发相应的驱动程序和导航应用程序,实现了系统的各项功能。采用投影法实现地图匹配算法,提高了车辆定位的准确性。通过对系统进行功能测试和性能测试,并根据测试结果进行优化,确保了系统的稳定性和可靠性。该设计方案具有一定的实用性和参考价值,可为智能设备扩展GPS功能提供借鉴。
方案元器件采购找拍明芯城www.iczoom.com 拍明芯城提供型号查询、品牌、价格参考、国产替代、供应商厂家、封装、规格参数、数据手册等采购信息查询PDF数据手册中文资料_引脚图及功能
责任编辑:David
【免责声明】
1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。
2、本文的引用仅供读者交流学习使用,不涉及商业目的。
3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。
4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。
拍明芯城拥有对此声明的最终解释权。

产品分类

2012- 2022 拍明芯城ICZOOM.com 版权所有 客服热线:400-693-8369 (9:00-18:00)