logo资料库

基于嵌入式ARM-Linux的GPS智能终端设计.doc

第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
资料共8页,全文预览结束
典型工作任务三: 基于嵌入式ARM-Linux的GPS智能终端设计
一、概述
二、 硬件设计
三、 GPS智能终端的软件设计
典型工作任务三: 基于嵌入式 ARM-Linux 的 GPS 智能终端设计 一、概述 GPS 智能终端是智能交通系统(ITS 系统)的重要组成部分,它将卫星定位技术(GPS)、 地理信息系统(GIS)以及无线通信技术融于一身。目前,卫星定位终端通常由 8 位/16 位 单片机、GSM/GPRS 通信模块、GPS 模块、LCD 液晶显示器等组成,并且采用液晶部分 与主控芯片组分离在两个外壳里的分体式结构。这里介绍一种基于 ARM920 处理器和嵌入 式 Linux 操作系统,将 GPS 技术与 CDMA 网络相结合的嵌入式智能终端并设计。该终端 具有将 GPS 终端的动态位置、时间、状态等信息实时地通过 CDMA 无线网络链接到控制 中心,在具有地理信息处理和查询功能的电子地图上进行显示,并对终端的准确位置、速度、 运动方向、终端状态等基本信息进行监控和查询;报警(包括主动报警和自动报警);显示 调度信息;外接设备数据采集、本地温度采集及远程监控等功能。 1 GPS 智能监控系统总体设计方案 GPS 智能终端与监控中心的通信方式是影响整个 ITS 系统功能的重要因素。为了解决 目前终端采用 GSM,GPRS 网络进行数据传输不足的问题,设计中采用 CDMA 1X 网络, 其理论传输速率可达 300 Kb/s,数据传输速率高,永远在线,基于 IP 协议可以访问整个 Internet;按流量收费,价格合理;具有良好的可扩展性,覆盖室内绝大部分地区及距海 岸线 120 km 内的海域,基本不存在盲区。通信速度远高于 GPRS 网络,更加适合于大数 据量、实时传输监控,而且易于平滑过渡到 3G 移动通信系统。GPS 智能监控系统由 GPS 智能终端、CDMA 网络、Internet 网、监控中心组成,如图 1 所示。 2 GPS 智能终端的硬件设计 2.1 平台介绍 1
采用 ARM 处理器和嵌入式技术设计的移动终端,相对于以 8 位/16 位单片机作为中央 处理器的终端而言,无论是功能上,还是人机界面都有显著提高,是微处理器技术的重要发 展。这里选用 Atmel 公司的 AT91RM9200 处理器为主控制器。该内核属于专门用于工业 控制的 ARM 芯片,有较宽的工作温度以及其他较好的工业参数,同时集成了丰富的系统应 用外设及标准接口;在 180 MHz 主频下高达 200 MIPS 处理速度;外部总线接口 EBI。; 两个 USB 2.0 主机口和一个 USB 2.O 设备口;一个 10/100 Mb/s Ethernet 通信 接口;4 个同步/异步串口;多种串行数据通路;支持 I2C,I2S 等。其丰富的外部设备和 数据传输特性是选择它作为主控制器的主要原因。 二、 硬件设计 GPS 智能终端的硬件系统构成如图 2 所示。 2
3
2.2.1 ARM 主控模块 AT91RM9200 的串口 UART2 和 UART3 分别与 CDMA 模块、GPS 模块通信,在实际 通信时两路连接都加有 LVTTL 电平到 RS 232 电平的转换电路。AT91RM9200 接收 GPS 模块从串口 3 发出的位置信息,解析出其中有用数据进行封装,然后以规定格式通过串口 2 交给 CDMA 模块,通过 CDMA 网络接入 Internet 网最终送至 ITS 监控中心;接收并解析 ITS 控制中心发来的短消息命令,按命令进行上传定位等操作;把系统运行状态及 ITS 控 制中心发来的信息在液晶屏上显示出来。 2.2.2 CDMA 通信模块 CDMA 模块是整个系统的通信基础,设计中采用 Fidelix 公司的 CDMA 通信模块 FD810。该模块内嵌的高通 Qualcomm MSM6025 芯片,除支持基本的通话和 SMS 短 消息外,还支持 CDMA20001x 无线数据传输。高速上下行速率与大缓存,数据传输速率 高达 153.6 Kb/s,可通过 AT 命令远程控制内置 TCP/IP 协议堆栈。DTGS-800 与 AT91RM9200 通过串口 UART2 实现数据的收发和 AT 指令的操作。 4
2.2.3 GPS 模块 GPS 接收模块选用芬兰 Fastrax 公司的 iTrax100。该模块支持 NMEA0183 和 Sony ASCⅡ协议的数据格式。GPS 模块通过串口 3 将数据以固定的帧格式发送至 AT91RM9200。GPS 模块需要配备专门的 GPS 天线接收 GPS 卫星信号。一般在比较开 阔的地区,需接收到 3 颗以上的 GPS 卫星信号才能进行准确定位。 2.2.4 存储器系统 存储器系统采用 4 MB NOR FLASH,64 MBNAND FLASH 和 32 MB SDRAM。NOR FLASH 通过 16 位数据总线与 CPU 交换数据,用来存储 Uboot,Linux 内核、文件系统; NAND FLASH 存储应用程序,作为系统的数据存储器,如加载电子海图等。为充分发挥 32 位 ARM 处理器的数据处理能力,选用 2 片 16 位的 HY57V281620HG 并联,以构建 32 位 SDRAM 与 ARM 交换数据。SDRAM 在系统中主要用作程序的运行空间、数据及堆 栈区。 首先,通过 JTAG 口将 Uboot、Linux 内核、文件系统烧写到 NOR FLASH,将应用程 序烧写到 NANDFLASH。在系统启动时,CPU 首先从复位地址 0x0 处读取启动代码,并 将存有引导程序 Uboot 的 NORFLASH 存储器配置到:Bank0,即 AT91RM9200 的 NCS0 引脚接至 NOR FLASH 芯片 AT49BV322AD 的 CE 端,这样就可以从 NOR FLASH 启动 嵌入式 Linux 操作系统。 三、 GPS 智能终端的软件设计 嵌入式 Linux 系统只需引导程序、Linux 微内核、初始化进程 3 个基本元素,移植嵌入 式 Linux,就是使实时内核能在其他处理器(CPU)或微控制器(MCU)上运行。将嵌入式 Linux 移植到 AT91RM9200 平台上,一般需要 4 个步骤:下载源码和建立交叉编译环境, 配置编译内核,制作文件系统,下载和调试内核。 3.1 应用程序设计 应用程序包括 Uboot 启动代码、串口设备驱动程序、CDMA 网络数据传输程序、GPS 串口通信程序等。 (1)系统加电后复位; (2)Uboot 初始化 CPU,SDRMA,分配地址空间等; (3)Uboot 把 Linux 内核的压缩文件解压到 SDRAM 中,同时 Uboot 把控制权移交到 Linux。 5
Linux 的内核有在 FLASH 存储器上直接运行和加载到内存中运行 2 种工作方式。这里 采用的 FLASH 存储器运行方式相对较复杂,但运行速度更快; (4)开始执行 SDRMA 中的代码,Linux 内核初始化,完成堆栈和中断的分配等; (5)加载串口驱动模块,完成串口的初始化; (6)运行 CDMA 网络数据传输程序,通过 CDMA 网络与 Internet 进行连接; (7)运行 GPS 串口通信程序,通过串口将 GPS 数据送至 AT91RM9200。 至此,已建立了从 GPS 数据采集到数据传输的完整的嵌入式监控系统。 3.2 无线接入网络程序 终端由 CDMA 网络接入 Internet 后,通过互联网进行数据传输。系统上电和载入 Linux 后,首先初始化 CDMA 模块,进行端口设置和波特率设置(115 200 b/s);然后进入拨 号等待状态。由于该终端在功能上映射为无线 Modem,所以登陆网络需进行 PPP 拨号连 接,接入号为#777,用户名和密码均为 CARD。启动程序后,确认是否拨号成功,若成功 拨号,则调用 GPS 串口通信程序和网络数据传输程序;最后使用 Internet 结束后,关闭 无线连接。 3.3 CDMA 网络数据传输程序 在 Linux 操作系统下,监控终端通过 CDMA 网络与 Internet 连接,将数据上传到监控 中心。套接字 Socket 是许多操作系统网络编程的通用 API,是介于网络应用层和传输层之 间的编程接口。套接字提供了访问下层通信协议的大量系统调用和相应数据结构,进程在 Linux 上的网络通信过程就是使用套接字传输数据的过程。,文中介绍的 Socket 通信采用 面向连接的 TCP 协议。 客户端和服务器端的 TCP 应用程序流程如图 3 所示。客户机部分先由 Socket()创建本 地套接口,给服务器端套接口地址结构赋值;用 Connect()函数使本地套接口向服务器端 套接口发出建立连接请求,经 3 次握手建立 TCP 连接;若连接建立成功,则用 Send()和 Recv()函数与服务器通信;通信结束,用 Close()关闭套接口。 服务器部分由 Socket()创建套接口,并给套接口地址结构赋值;调 Bind()函数绑定套 接口、用 Listen()函数在该套接口上监听请求;当 Accept()函数接受请求,产生新的套接 口及描述字,并与客户端连接;在用 Fork()函数派生新的子进程与客户端通信,主进程继 续处理其他请求。 3.4 GPS 串口通信程序 6
GPS 串口通信程序是对采集到的 GPS 数据和车辆状态数据进行解析;对时间、经度、 纬度、速度及超速报警等数据解析,并以固定格式通过串口 3 传送到 AT91RM9200。GPS 模块的工作流程如图 4 所示。 7
GPS 接收数据采用 NMEA0183 格式,串行通信参数为 8 位数据位,无奇偶校验;1 位停止位,无数据流控制。波特率设为 115 200 b/s。判断帧起始是否为$G-PGGA,如 果是,按位读取 GPS 数据, 在 Linux 下,所有的硬件设备都被看成是普通文件,可以通 过与普通文件相同的标准系统调用完成打开、关闭、读取和写入设备等操作。系统中每一个 设备都用一种特殊的设备相关文件表示,存放在/dev 目录下。在 Linux 中,对每一个设 备的描述是通过主设备号和次设备号来惟一确定的。由同一个设备驱动控制的所有设备具有 相同的主设备号,主设备号描述控制这个设备的驱动程序,即驱动程序与主设备号是一一对 应的(O~255);次设备号用来区分同一个驱动程序控制的不同设备。 四、实验与结果 运行嵌入式目标板的客户端程序采集 GPS 数据并发送,在上位机上运行服务器端就能 接收到 GPS 数据。如图 5 所示为 GPS 数据采集、接收的调试界面的数据,比较监控中心 服务器接收到的 GPS 数据与终端采集到 GPS 数据相一致,实现了终端与监控中心无线、 实时数据传输。本终端运行稳定、系统响应时间小于等于 3 s,网络良好情况下数据传输速 率达 115 200 b/s。 五、结 语 利用嵌入式 Linux 操作系统开发平台提供的系统功能,可以简化多任务程序设计,降低 开发难度,轻松地完成前后台编程方法难以完成的任务。由于 CDMA 数据传输有着永远在 线、费用低廉,并且能够切换到 SMS 方式,保证数传万无一失的诸多优点,而且随着移动 通信网络的发展,该 GPS 智能终端更易平滑过渡到 3G 移动通信系统。因此将会有更广阔 的应用前景。 8
分享到:
收藏