新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM和GPRS的远程监测终端设计

基于ARM和GPRS的远程监测终端设计

作者: 时间:2012-02-23 来源:网络 收藏

各个数据采集模块与主处理器通过SPI总线进行通信。SPI总线是Motorola公司提出的一种高速全双工串行通信总线,它容许CPU与各种外围接口器件以串行方式进行通信。SPI接口只有MISO(主入从出)、MOSI(主出从人)、SCLK(时钟)和CS(片选)4个信号组成,在芯片上只占用4条线,大大节省了芯片资源。主处理器与各采集模块的SPI通信方式为一主多从的方式,即主处理器的作为主设备,各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号CS指明与哪个模块采集模块传送数据。通信时,主设备的MISO为输入,MOSI为输出,从设备的MISO为输出,MOSI为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图4所示。

本文引用地址://m.amcfsurvey.com/article/149578.htm

d.jpg


2.3模块
模块选用华为GTM900C模块,它是一款三频段GSM/无线模块。模块接口简单、使用方便且功能强大。它支持标准的AT命令及增强AT命令。GTM900C的GPRS数据业务的最高速率可达85.6 kbit/GTM900C提供40脚的ZIF接口,主要有电源接口、UART接口(最大串口速率可达115200bit/s)、标准SIM卡接口和模拟语音接口。
本系统中,GTM900C主要是实现GPRS上网功能。该模块的主要特点如下:
1)单电源供电,供电范围为3.3~4.8 V.典型供电电压为4.2 V;
2)可工作于三频EGSM900和/GSM1800/GT800单频;最大发射功率EGSM900/GT800 Class(2W)和GSM1800 Classl(1W);
3)支持GSM标准AT命令、V.25 AT命令和华为扩展AT命令;
4)GPRS传输速率最高可达85.6 kbps,支持CS-1,CS-2,CS-3,CS-4 4种编码方式。内嵌了TCP/IP协议;支持多连接,提供ACK应答,提供大容量缓存。
GPRS模块与主处理器的连接很简单,由于两者是通过串口接口进行通信的,所以将两者用串口线连接即可。GPRS的网络功能都已集成在模块中,只需要在主处理器这一端将串口参数设置好,然后发送相应的AT指令对模块进行操作即可。

3软件
软件包括两个任务,一是搭建开发环境,如Linux操作系统内核移植,编写设备驱动等,二是在开发环境准备好的基础上进行应用程序的编写,包括完成SPI总线数据输入输出功能,GPRS无线数据传输功能,和界面显示功能。
3.1 软件开发平台搭建
软件平台采用嵌入式Linux操作系统,嵌入式Linux操作系统是一个源代码公开的实时多任务操作系统,可应用于多种硬件平台,可根据需要定制内核,有良好的网络支持,Linux系统内核精简、高效并且稳定,能够充分发挥硬件的功能,它非常适合在嵌入式领域中应用。嵌入式Linux操作系统搭建的步骤为:在宿主机上建立交叉编译的环境;编译生成Linux的内核,用的内核是Linux-2.6.29;编译生成根文件
系统,用的根文件系统为yaffs;向目标机下载Bootloader的映像,用的Bootloader为Supervivi;烧写Linux内核和文件系统的映像;复位启动。为了使可以使用触摸屏,液晶屏和SPI总线,将编写的对应的驱动编译、添加到Linux内核中。系统使用的宿主机系统为在虚拟机下运行的RedHat9.0。
终端应用程序用Qt来编写,Qt是一个跨平台的C++图形用户界面应用程序框架。它具有优良的跨平台特性、面向对象、丰富的API支持等优点。Qt-Embedded是Qt的嵌入式版本,因此终端应用程序的开发使用Qt/E作为开发工具。Qt运行环境的搭建步骤为:首先在宿主机上分别建立Ot-x86编译环境和Qt-编译调试环境,采用Qt4.5.0版本;其次,将宿主机生成的Lib下的库文件下载到目标板的某个目录下,并在目标板上设置好环境变量,这样在目标机上的Qt程序运行环境就建好了。在宿主机上交叉编译好的Ot/E程序就可以下载到目标机上运行了。
3.2 终端应用程序
终端需要采集仪表的现场测量数据,终端设计的数据采集模块分别对不同的现场数据进行采集并做相应的处理,数据采集模块与CPU之间通过SPI总线进行数据传输,对与采集数据需按上端通信协议、PPP、TCP/IP协议进行二次成帧;利用GPRS网络接入Internet网络,将处理后的数据信息通过GPRS无线网络上传至监控中心。
GPRS模块附着GPRS网络并与上位机建立TCP数传链路是通过向模块发送一串AT指令实现。拨号动作完成,并成功建立数传链路以后,GPRS模块在终端串行口和上位机之间变得透明。另外,终端的重要状态要能即时显示在LCD上。
综上分析,监控终端应用程序要完成的任务有:串口参数设置,GPRS网络连接,读取串口返回信息,SPI数据传输,GPRS数据传输,界面显示。由于任务不止一个,而且有的任务需要同时运行,所以采用多线程编程。
在Qt编程中主界面UI一般为主线程,子线程通过继承Qt中的QThread线程类来完成。这些任务和功能可以通过3个线程来实现。3个线程的作用分别为:1)主线程:负责界面显示,串口参数设置,GPRS网络连接,GPRS数据传输;2)SPI数据传输子线程:负责与数据采集模块通信,将采集数据存入缓冲区;3)串口数据读取子线程:CPU通过串口操作GPRS模块,GPRS模块的返回信息可以通过串口数据读取子线程随时读取。程序模块图如图5所示。

e.jpg



评论


相关推荐

技术专区

关闭