首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
基于嵌入式ARM-Linux的GPS智能终端设计
来源:本站整理  作者:佚名  2009-08-03 13:49:34



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所示。

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:190,269.50000 毫秒