DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 664|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-17 23:39:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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 平台介绍    采用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等。其丰富的外部设备和数据传输特性是选择它作为主控制器的主要原因。2.2 硬件设计    GPS智能终端的硬件系统构成如图2所示。


                          
                       
                          
                                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指令的操作。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操作系统。3 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。    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串口通信程序    GPS串口通信程序是对采集到的GPS数据和车辆状态数据进行解析;对时间、经度、纬度、速度及超速报警等数据解析,并以固定格式通过串口3传送到AT91RM9200。GPS模块的工作流程如图4所示。
                          
                       
                          
                               

    GPS接收数据采用NMEA0183格式,串行通信参数为8位数据位,无奇偶校验;1位停止位,无数据流控制。波特率设为115 200 b/s。判断帧起始是否为$G-PGGA,如果是,按位读取GPS数据,

    在Linux下,所有的硬件设备都被看成是普通文件,可以通过与普通文件相同的标准系统调用完成打开、关闭、读取和写入设备等操作。系统中每一个设备都用一种特殊的设备相关文件表示,存放在/dev目录下。在Linux中,对每一个设备的描述是通过主设备号和次设备号来惟一确定的。由同一个设备驱动控制的所有设备具有相同的主设备号,主设备号描述控制这个设备的驱动程序,即驱动程序与主设备号是一一对应的(O~255);次设备号用来区分同一个驱动程序控制的不同设备。4 实验与结果    运行嵌入式目标板的客户端程序采集GPS数据并发送,在上位机上运行服务器端就能接收到GPS数据。如图5所示为GPS数据采集、接收的调试界面的数据,比较监控中心服务器接收到的GPS数据与终端采集到GPS数据相一致,实现了终端与监控中心无线、实时数据传输。本终端运行稳定、系统响应时间小于等于3 s,网络良好情况下数据传输速率达115 200 b/s。5 结 语    利用嵌入式Linux操作系统开发平台提供的系统功能,可以简化多任务程序设计,降低开发难度,轻松地完成前后台编程方法难以完成的任务。由于CDMA数据传输有着永远在线、费用低廉,并且能够切换到SMS方式,保证数传万无一失的诸多优点,而且随着移动通信网络的发展,该GPS智能终端更易平滑过渡到3G移动通信系统。因此将会有更广阔的应用前景。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 12:10 , 耗时 0.101956 秒, 19 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表