资源预览内容
第1页 / 共16页
第2页 / 共16页
第3页 / 共16页
第4页 / 共16页
第5页 / 共16页
第6页 / 共16页
第7页 / 共16页
第8页 / 共16页
第9页 / 共16页
第10页 / 共16页
亲,该文档总共16页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基于 ARM 和 GPRS 的远程监测终端设计文章出处: 发布时间: 2012/02/24 | 22 次阅读 | 0 次推荐 | 0 条留言业界领先的 TEMPO 评估服务 高分段能力,高性能贴片保险丝 专为 OEM 设计师和工程师而设计的产品 使用安捷伦电源,赢取iPad2 Samtec 连接器 完整的信号来源 每天新产品 时刻新体验 完整的 15A 开关模式电源 摘要:针对分布比较分散,场所不固定,或是环境比较恶劣的监测现场,提出了一种通用的远程监测终端的设计方法。终端具有模块化的数据采集功能,并采用 ARM9 处理器和 Linux 操作系统,用 Qt/Embedded 编写终端应用程序,使其具有良好的人机交互界面,并对数据进行分析处理,采用 GPRS(通用无线分组业务)无线通信技术将处理过的数据发往监测中心,存入数据库。实际实验证明,该终端数据处理速度快,精度高,实时性好,可以满足一般监测现场的要求。随着现代生产科技水平的发展,对监测技术的要求越来越高,形式趋于多样化。在无人值守的变电站、水文站、气象站等野外监测或是在交通运输等行业中,因分布比较分散、环境恶劣,地点不固定,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制。在这些场合采用基于 GPRS 的无线网络通信技术,具有无可比拟的优势。将嵌入式应用系统与无线通信技术结合在一起是未来嵌入式应用的必然趋势。GPRS(General Packet Radio Service) ,即通用无线分组业务。GPRS 技术应用于远程数据传输系统,具有以下几个特点:1)永远在线,接入速度快。分组交换接入时间少于 1 秒,可使远程数据传输的效率大大提高:2)采用数据流量的计费方式,大大降低了用户的使用费用;3)GPRS 网络覆盖范围广,且支持 TCP/IP 协议,从而可实现与 Intern et 的无缝连接。1 终端的整体结构设计终端要完成 3 个任务,数据采集、数据处理和数据的无线传输。数据采集部分采用模块化设计思想将采集模块分为模拟量采集模块,数字量采集模块,开关量采集模块等,每个模块独立的实现对特定采集信号的整流、调理、隔离等处理再转换为数字量,各模块采用统一的结构,选用相同的单片机处理器。各模块采集的数据通过统一的 SPI(serialperipleral interface)总线传输给 ARM 处理器。这样的结构使终端使用更灵活,应用范围更广泛。数据处理部分采用ARM 处理器对所采集的数据的类型、长度、有效范围等进行处理,并通过液晶屏加触摸屏完成人机交互功能。然后将处理好的数据通过 GPRS 无线网络传输给上位机。终端的整体结构图如图 1 所示。图 1 终端的整体结构图2 终端硬件设计终端硬件主要由 3 部分组成。一是作为主处理器的 ARM9 处理器及其外围电路包括电源电路、复位电路、外扩存储器电路及用于人机互动的液晶屏、触摸屏连接电路等。二是各个模块的数据采集电路的设计,这里主要设计的是模拟量采集模块,以及各个数据采集模块与主处理器之间 SPI 连接方式。三是 GPRS 模块外围电路以及与主处理器的连接。端硬件设计示意图如图 2 所示。 图 2 系统硬件结构示意图2.1 终端主处理器主处理器是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。结合工业现场的需求终端处理器采用以 ARM9 为内核的三星 S3C2440 处理器,它是一款基于 ARM920T 内核的 16/32位 RSIC 结构的嵌入式微处理器,主频 400 MHz,最高可达 533 MHz,具有 2 片外接 32 M 的板载 SDRAM,片内外资源丰富,扩展性强。系统存储扩展了 2 MB 的 NorFlash 用于存放 bootloader 系统引导程序,和 64 MB 的 NandFlash.系统的人机交互平台采用一个 7 寸液晶显示频和一个触摸屏来完成。2.2 数据采集部分硬件设计图2 移动终端硬件结构框图数据采集模块可分为模拟量采集模块,数字量采集模块,开关量采集模块等,主要完成对底层数据的采集,这些模块的单片机处理器统一采用 Cygnal 公司的 C8051F021 单片机,它的 MCU 是高度集成的片上系统。在一个芯片内集成了两个多通道 ADC 子系统、电压基准、SPI 总线接口、8 个 8 位的通用数字 I/O 端口和 64 kBFLASH 程序存储器及与 8051 兼容的高速微控制器内核等,这些很好的满足了模块的设计要求。由于模块设计结构上的相似性,这里主要介绍模拟量采集模块部分。工业现场采集的信号大部分是模拟量,如压力、温度、液位、流量等信号。这些信号经过现场仪表测量后一般统一输出为 420 mA,05 V,010 V 范围的电流电压信号。通过模拟量采集模块将这些模拟量转换为数字量。单片机的 A/D 准换的电压基准定为 2.5 V,要将 420 mA,05 V,010 V 范围的电流电压信号统一为 02.5 V 以内的电压信号,才能进入单片机完成模拟量到数字量的转换。对于电流信号,在输入端接一个 250 的精密便转换为 15 V 的电压信号了,对于电压信号通过运算放大器按比例缩放到 02.5 V 范围内即可。转换电路如图 3 所示。图 3 电压信号转换电路图各个数据采集模块与主处理器通过 SPI 总线进行通信。SPI 总线是 Motorola 公司提出的一种高速全双工串行通信总线,它容许 CPU与各种外围接口器件以串行方式进行通信。SPI 接口只有 MISO(主入从出) 、MOSI(主出从人) 、SCLK(时钟)和 CS(片选)4 个信号组成,在芯片上只占用 4 条线,大大节省了芯片资源。主处理器与各采集模块的 SPI 通信方式为一主多从的方式,即 ARM 主处理器的作为主设备,各数据采集模块作为从设备,主设备驱动串行时钟发起通信。主设备使用片选信号 CS 指明与哪个模块采集模块传送数据。通信时,主设备的 MISO 为输入,MOSI 为输出,从设备的 MISO 为输出,MOSI 为输入,在主设备时钟的控制下,主设备与从设备的双向移位寄存器同时进行数据交换,完成一次数据的传输。主处理器与各模块的通信结构图如图 4 所示。图 4 SPI 通信结构图2.3 GPRS 模块GPRS 模块选用华为 GTM900C 模块,它是一款三频段GSM/GPRS 无线模块。模块接口简单、使用方便且功能强大。它支持标准的 AT 命令及增强 AT 命令。GTM900C 的 GPRS 数据业务的最高速率可达 85.6 kbit/GTM900C 提供 40 脚的 ZIF 接口,主要有电源接口、UART 接口(最大串口速率可达 115200bit/s) 、标准 SIM卡接口和模拟语音接口。本系统中,GTM900C 主要是实现 GPRS 上网功能。该模块的主要特点如下:1)单电源供电,供电范围为 3.34.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-ARM 编译调试环境,采用 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 所示。图 5 终端应用程序结构图3.2.1 显示界面模块界面显示模块:界面显示由两部分组成。一是实时显示各模块的采集数据及一定时间以内的历史数据数据;二是显示 GPRS 模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机 IP 地址及端口号、发送 AT 指令、回显模块返回信息等。编写界面设计文件 mainwindow.h 和 mainwindow.cpp,其中串口参数设置、网络连接和 GPRS 数据传输封装成相应的子函数,利用 Qt 的信号槽机制,当捕捉到相应的信号便执行对应的函数。通过继承 Qt 中的 QThread 线程类来完成 GPRS 数据读取模块和 SPI 模块的功能。SPI 模块接收底层数据采集模块的各种
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号