基于GPRS的无线数据采集系统设计

更新时间:2023-12-14 02:21:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 绪论

目前,我国在水利、电力和天然气等资源的监测中还没有经济实用的自动化数据采集和传输设备,大部分地方仍然通过人工方式进行数据采集和分析。这种传统方式,既耗费大量的人力物力,又无法避免手工抄写和计算带来的差错,对数据的处理分析滞后,不能及时发现问题、解决问题;而在对偏远的乡村、山区以及其他恶劣环境下的数据采集和传输更是十分困难,不能满足工业现代化、自动化的要求。由于上述资源的监测点在地理位置上分布很广,现有的一些数据传输方法如利用电话线、电力载波等就存在着诸多的问题,如覆盖范围小,线路维护量大,电力载波上噪声污染导致通信不可靠等。随着无线通信数字网络的发展,采用GSM和GPRS无线通信网作为通信方式为上述问题提供了一个新的解决方案。

本文介绍的就是一个采用 GPRS通信模块利用短消息方式实现远程数据采集的系统,它可以用于多种遥测系统,完成远端环境、资源信息等数据的采集。 1.1 系统开发背景 1.1.1 移动通信的飞速发展

在全球数字化浪潮的推动下,CDPT(欧洲邮电管理部门)于 1982年成立一个 GSM移动特别小组,开始制定适用于欧洲各国的一种数字移动通信系统的技术规范。经过六年的研究、实践与比较,于1988年确定了主要技术规范并指定出实施计划,采用TDMA多址方式的数字通信系统,大大提高了频率利用率。在1990年GSM开始在德国、法国、英国和北欧许多国家投入商用运用,而我国于90年代中期引入GSM技术[1]。 随着移动通信技术、互连网技术和计算机技术的飞速发展,移动通信已经不在局限于单纯的话音通信,把移动和 IP结合起来已经成为不可阻挡的趋势,于是提出了第三代移动通信系统的概念,其核心是宽带、高速率、多媒体,静止状态下数据速率可以达到2Mbps,并且移动通信和因特网在移动环境下提供服务是其主要业务特征,它将使人们的生活方式发生巨大变化,生活的自由度将会空前增加。

现有的第二代移动通信系统到目前为止已经相当成熟,在1999年末,我国已经有移动用户 4000多万,890万互联网用户。用户需求带动着网络的发展,运营商在不断扩展满足需要的同时,也不得不考虑向第三代过渡的问题,同时第三代网络也必须做到与至少一种第二代网络兼容。于是对现有的第二代移动通信系统进行升级改造,增加各种新业务,开展数据业务,以变向第三代平滑过渡。例如GSM网络上增加一些软硬件

第 1 页 共 56 页

设备,实现 GPRS、WAP等新业务,为用户提供越来越高的数据传输速率,这就是所谓的 2.5代技术,也就是二代产品向三代的平滑过渡所采用的一种过渡技术。 2.5代技术中比较有代表的GPRS(通用分组交换业务)使用户能在端到端分组传输模式下发送和接受数据,在GSM由窄带向宽带演进过程中起到桥梁作用。 1.1.2 无线数据采集的发展和优势

在工业控制现场,常常需要采集大量的现场数据,如电压、电流、温度、湿度、气压等,并将这些数据采集模块采集的数据传输到主机进行处理,由主机根据处理的结果,将控制信号传输给现场执行模块进行各种操作。目前数据的传输基本是基于有线的网络,如RS485,CAN等。这些有线的网络一般具有成本比较高、维护不方便等缺点。而无线传输相对具有一定的优势,如蓝牙技术的出现和发展极大的推动和扩大了无线通信的的应用范围,是网络中各种数据和语言设备可以通过极其便携的方式实现互通互连,实现了个人区域内快速灵活的数据和语音通信。这些无线的网络一般具有成本低、可靠性高、维护方便等优势[2]。

采用有线方式,租用静态IP目前费用较高约800~1500元/月。采用GPRS无线方式,系统流量费用目前有包月制和数据量两种收费方式,按流量计算0.03元K,而包月制20元/月有1024kByte流量,可满足目前大多部门的数据采集系统的实际数据量,估计日后费用会逐步降低。

无线数据采集与传输的应用范围非常广,涉及行业有电力、水利、公安、交通、石油、安防、金融、环保等[3]。中国移动公司在2002年5月正式开通了通用分组无线业务GPRS网络。GPRS网络支持TCP/IP协议并且覆盖面广,比起使用短消息和超短波无线数传电台进行无线数据传输,GPRS无论在费用、可靠性和可实施性等方面都具有很大的优势[3]。

1.2 GPRS业务与GSM短消息业务的概述 1.2.1 GPRS技术的简述

GPRS(General Packet Radio Service)是通用分组无线业务的简称,该技术建立在GSM网络的基础上,被称为2.5代移动通信技术,它将无线通信与Internet紧密结合。GPRS作为一种先进的、全新的无线网络承载手段,具有独特优势:①GPRS引入分组交换的传输方式,使用者只有在发送或接收数据期间才占用资源,按实际通信的数据流量为计费标准,是一种面向使用的计费,计费方式更加科学合理,大幅降低使用成本。②GPRS

第 2 页 共 56 页

可提供115Kbit/s传输速率(最高值为171.2Kbit/s),明显高于其它方式。③GPRS提供快速及时的联接,接入时间小于1S,大幅提高数据收集及监控效率。而且激活GPRS应用后,将永远保持在线,类似于一种无线专线网络。用户只在发送信息时才申请无线资源,其他时间保持激活状态,发送信息的时候无需重新连接。IP数据包通过分组交换技术被分成若干片段,通过不同的路由以存储转发的方式传送到目的端,再组成完整的数据。根据移动的网络状况,每数据包传输时间在 1S左右,并可连续发送,从而保证实时传输的可靠性。④GPRS支持 Internet上最广泛使用的 IP协议和 X.25协议,提供了一个完备的基于TCP/IP协议的通讯解决方案,能提供Internet和其它网络的随时随地全球性无线接入,真正实现移动办公。

GPRS作为一种高速、高效、经济的无线系统,具有网络覆盖范围广、数据带宽宽、适应性强、计价按数据流量计算、实时在线的优点,特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大量数据传输,完全满足数据采集及监控的双向数据信息传输。随着GPRS技术在移动通信领域的发展,已经能够实际应用到许多需要无线数据传输的领域,也为数据采集传输及监控提供了一种新的数据传输通讯方式。 1.2.2 GSM短消息业务的简述

GSM网络是国内覆盖范围最广,应用最普遍的无线通信网络[4]。主要利用其短消息业务(SMS)实现上述功能,SMS是通过 GSM网的控制信道传输用户分组信息的一种增值服务,经短消息业务中心完成存储和前转功能,特别适合信息量不大的业务数据,它使用 GSM网的公共控制信道,通话期间不影响短消息的传输。短消息业务的优点是传输速度快,单个数据传输价格便宜,不占用话音;利用这些特点,及其双向传输的性能,可方便地实现对于采集站设备的信息采集和远程控制,实现遥控、遥测等。

因此,通过GSM网的短消息作为一种数据传输模式,具有网络覆盖面广、用户投资小、运营费用少的优点,对于监控采集点分散、覆盖面广、监控点不固定、实时性要求较低的监控采集系统具有无可比拟的优势。 1.2.3 GPRS与GSM短消息的内在联系

GPRS业务是否与GSM短消息系统相矛盾吗?回答是否定的,在GPRS网上使用短消息系统,其业务持续性是有保证的。用GPRS作为短消息发送的载体优点甚多,GPRS系统有助于克服短消息系统目前数据率低的缺陷,在核心网络先进信令程序的支持下快速发送分组化短消息数据。短消息发送成功率增加,发送时间减少。由于使用同一短消息

第 3 页 共 56 页

系统,对业务本身以及对用户不会有影响,业务环境不会因网络扩展而受影响,因此,短消息系统和 GPRS系统可互为补充。短消息系统可提供广泛服务,而且极易获得,而GPRS改善了功能。在GPRS模块上利用短消息方式进行数据采集传输可提供短消息系统叠加GPRS系统上的所有优势。 1.3 课题设计的目的和意义

数据采集系统是现代测控的基础,用于获取各种现场测量数据。在计算机控制系统或计算机信息管理系统中,需要采集各种信息并将其送入计算机内进行处理。因此作为获取信息的重要工具,数据采集系统目前正广泛地用于生产、科研的各个领域。数据采集系统由信息转换、数据通信和信息处理三部分组成,其中数据通信系统是其中最重要的组成部分,本文对这一部分进行讨论。

随着通讯事业的发展,我国已建成了覆盖全国的GSM数字蜂窝移动通信网,GSM网络中重要发展的GPRS网络也已经投入使用,所以,本课题提出并设计了基于GPRS网络通信的无线数据采集系统。采用 GPRS无线通信方式,实现无线数据采集系统,使得系统应用更灵活、并且大大降低了成本。本课题的完成对帮助解决利用先进的技术实现监控系统,对工业测控、环境监测以及国防技术均有相当重要的价值。

第 4 页 共 56 页

2 系统的整体方案设计

2.1 系统要求与功能设计

随着我国在水利、电力、风力等各方面的迅速发展,实行以经济手段为基础的商业化管理模式和加强动态监视管理已迫在眉睫。传统的计量方式不能满足商业化运营的需要,采用准确可靠、经济实用的远程数据采集和传输系统是必然趋势。

本系统的构建需要满足能完成一些基本的远程数据采集和传输的要求,同时考虑满足市场发展及经济调度的需求,具备一些开关量的输入输出控制功能和抗干扰能力。 根据系统需求,系统需要提供的功能如下:

·采集功能:对经过传感器和变送器转变的标准电压或电流信号,进行 A/D 转换,变成数字化的数据,这些数据可以通过单片机以短消息方式进行GPRS远程传送。

·短消息提交数据功能:可以定时发送或控制中心指定查询,也可为主机轮询方式。 2.2 系统设计原则

该系统本着安全、精确、可靠、先进、实用、经济、合理的原则进行设计,在设计过程中应该把握以下系统设计原则:

1、准确性:系统在数据采集、传输、存储等环节均应采取相应措施确保数据的准确性。具体包括量测值准确、数据时标准确、量纲准确。

2、可靠性:系统的数据作为计量依据,必须具有高度的连续性和完整性,万一发生丢失也必须有弥补的手段。软件要冗余设计,通讯失败要重新进行重试。

3、及时性:系统数据需要有一定的及时性,即在一个数据召唤周期内应能将所有数据传输一次。对于各种异常情况,能在短时间内解决。

4、安全性:尽可能确保数据采集和处理中数据不被修改或删除。

5、开放性:尽可能提供接入通用设备的硬件、软件接口,允许用不同厂商产品互相替代,这种替代包括整个系统和组成元件。同时,也要考虑可能的功能扩展,为系统功能进一步完善提供便利的接口,以便进行二次开发。

6、先进性:系统设计尽可能不以降低系统可靠性为代价,真正做到不仅具有当今先进技术,采用先进的概念、技术和方法,而且具有发展潜力。

7、抗干扰性:是系统设计不可缺少的一部分,它包括芯片、器件选择、去耦滤波、印刷电路板布线、通道隔离等。

第 5 页 共 56 页

2.3 系统的整体方案

无线数据采集终端由传感器、单片机、GPRS 通信模块等组成,完成环境数据的采集、处理和传输。中心数据处理模块由 GPRS通信模块和后台数据库组成,对远端发送上来的数据进行分析和处理,同时,也要根据需要对远端数据采集模块发出命令,由远端数据采集模块完成相应的动作。本文将主要阐述远程数据采集终端的实现方案,控制中心的数据库的实现比较简单,不再详述。系统体系结构框图如图2.1。

图2.1 远程数据采集系统体系结构框图

系统采用 AT89C52作为控制主芯片,AT89C52为 ATMEL推出的兼容 MCS-51的单片机,内置8k字节Flash ROM,拥有256字节RAM。由于内置ROM,因此在电路设计上可以省去外接程序存储器,缩小了PCB板的面积,也提高了整个系统的可靠性。由于系统处理的是短消息字符串,片内256字节的RAM远远不够用来处理大量的字符串数据,因此在片外连接了一块静态存储器6264,拥有8K字节容量,就可以满足系统的要求。

至于模数转换电路,A/D转换模块是最关键的。一般来说,A/D模块品质的好坏,直接决定了测量单元品质的优劣,对A/D转换器的选择遵循以下原则:

1.根据前向通道的总误差,选择A/D转换器精度及分辨率。

2.根据信号对象的变化率及转换精度,确定A/D转换速度,保证系统的实时性要求。

3.根据环境条件选择A/D转换芯片的一些环境参数要求,如工作温度、可靠性等级、功耗等性能。

4.根据计算机的接口特性,考虑如何选择A/D转换器的输出状态。 5.其他,还要考虑到成本、资源、是否是流行芯片等因素。

结合上述原则,本系统模数转换电路采用ADC0809这块芯片来实现A/D转换功能。 为了扩充电路,系统需要加上一些外围电路,如开关量输入和输出,在其输入通道中,为了防止外界对控制系统的干扰需要采取一些隔离措施。常用的隔离方法是采用变

第 6 页 共 56 页

压器耦合或光电耦合,变压器耦合器仅限传送交变信号,且体积和功耗大,易产生电磁干扰,而光电耦合器能传送各种信号,还具有体积和功耗小、抗干扰性能强等优点,所以,系统采用了光电耦合器;在其输出通道中,为了能控制大功率电器运行,一般要加一个驱动器,同时为防止现场强电磁干扰或工频电压通过输出通道反串到测控系统,也需要采用通道隔离技术,常用的也是光电隔离技术,因为光信号的传送不受电场、磁场的干扰,可以有效地隔离电信号。

单片机与GPRS模块标准接口的连接是通过RS232接口连接, RS-232串行接口是微机系统中常用的接口,它以串行方式传送数据,是用于数据通信设备(DCE)和数据终端设备(DTE)之间的串行接口总线。由于 RS232是早期为促进公用电话网进行数据通信而制定的标准,其逻辑电平对地是对称的而且是负逻辑,即逻辑“1”电平规定为-5V~-15V之间,逻辑“0”电平规定为+5V~+15V之间。而电子设备广泛使用的集成电路采用 TTL( Transistor- Transistor Logic:晶体管-晶体管逻辑)电气标准,TT电平的逻辑“1”和“0”分别为 2.4V和 0.4V。由于 RS-232和 TTL各自规定了自己的电气标准,互不兼容,因此RS-232与TTL电路接口时需进行电平转换。 2.4 系统抗干扰措施

抗干扰设计是单片机应用系统设计的重要组成部分,没有良好的抗干扰措施,系统就无法安全可靠的工作。当然,我们只能通过系统软件、硬件设计尽可能的减少干扰带来的影响,而不可能完全消除干扰。本系统在抗干扰方面考虑了如下的问题[5]。 a:电源去耦,在电源线和地线之间并联47uF和0.1uF两个去耦电容,并联大电容为了去除低频干扰,并联小电容为了去除高频干扰。

b:加宽地线和电源线,加宽后的地线和电源线是信号线的7倍。 c:所有芯片可靠接地,并且接地线构成环路。 d:手工布置元件和布线,连线尽可能短。 e:双面板两面的线条尽可能垂直交叉。

f:避免来自传感器,测量信号功能模块,控制信号功能信号的干扰,模拟电路通路通过隔离放大器进行隔离,数字电路通过光电耦合器进行隔离。

g:软件设计中采用一些方法抗干扰,如软件数字滤波,去抖动,重复初始化等。本系统采用光电隔离来消除模拟量输入通道中的干扰。

第 7 页 共 56 页

3 系统的硬件设计

3.1 系统结构分析与硬件框图

本系统利用G20模块实现在GPRS网络覆盖区域内的远程数据采集。G20是MOTOR公司推出的GPRS无线双频调制解调器,主要为语音传输、短消息发送和数据业务提供无线接口。G2O集成了完整的射频电路和 GPRS的基带处理器,特别适合于开发一些 GPRS的无线应用产品,如监控、调度、车载和遥控等系统,也可以直接作为终端产品进行语音和数据的传输,使用范围十分广泛[6]。

整个系统的工作过程如下:在远端的数据经过传感器、变送器等转变成标准信号,经线形光电隔离后,再通过A/D转换,转变成数字量;而电耦合器后输入,单片机来控制开关量输出,输出量通过反向驱动器和光耦合器开关量经光后带动大功率器件工作;采集的数据和开关量状态通过单片机的主控程序和 GPRS调制解调器(G20模块)发送出去。本系统是利用短消息方式发送的,发送的指令编码在短消息中,当从机接收到主机的短消息后,通过对短消息解码,提取控制命令,执行相应的操作,把操作结果编码成短消息串并传回主机;主机接收从机发回来的短消息经过解码就可以得知系统的各种状态信息。硬件结构框图如图3.1所示:

图3.1 基于GPRS无线数据采集系统结构框图

下面分别对硬件电路的各部分进行说明。 3.2

AT89C52单片机

制造工艺为CMOS的AT89C52单片机采用的是40只引脚的双列直插封装(DIP)方式。其片内的结构如图3.2[7]所示,如果按功能划分,它由8个部件组成,即微处理器(CPU),数据存储器(RAM),程序存储器(E2PROM),I/O口(P0口、P1口、P2口、P3口),串行口,定时器/计数器,中断系统及特殊功能寄存器(SFR)。

第 8 页 共 56 页

图3.2 89C52单片机片内结构图 (一)对各功能部件作进一步的说明[7]:

1、数据存储器(RAM):片内为256个字节(单元),片外最多扩至64K字节。 2、程序存储器(E2PROM):AT89C52单片机含有8K字节的快擦写可编程/擦除存储器(E2PROM)。片内最多可扩至64K字节。

3、中断系统:具有6个中断源,2级中断优先权。

4、定时器/计数器:3个16位的定时器/计时器,具有四种工作方式。 5、串行口:1个全双工的串行口,具有四种工作方式。 6、P0口、P1口、P2口、P3口:为4个并行8位I/O口。

7、特殊功能寄存器(SFR):共有21个,用于对于片内各功能模块进行管理,控制监视。实际上是一些控制寄存器和状态寄存器,是一个特殊功能的RAM区。 8、微处理器(CPU):为8位的CPU,且内含一个1位CPU(微处理器),不仅可处理字节数据,还可进行位变量的处理。 (二)AT89C52芯片的主要特性

·与MCS-51 兼容 ·8K字节可编程闪烁存储器 · 寿命:1000写/擦循环 ·数据保留时间:10年

·全静态工作:0Hz-24Hz ·三级程序存储器锁定

第 9 页 共 56 页

·256*8位内部RAM ·32可编程I/O线 ·三个16位定时器/计数器 ·6个中断源 ·可编程串行通道

·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路

(三) AT89C52芯片的外部引脚功能(如图3.3)。

图3.3 AT89C52引脚图

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个 TTL门电流。P1口管脚写入 1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输

第 10 页 共 56 页

入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并可用作输入接口。另外,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口也可作为AT89C52的一些特殊功能口,如下所示:

P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(计时器0外部输入) P3.5 T1(计时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止 ALE的输出可在 SFR8EH地址上置 0。此时, ALE只有在执行 MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1时,/EA将内部锁定为 RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

第 11 页 共 56 页

AT89C52单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中, AT89C52是一种高效微控制器,且对开发设备的要求很低,从而使开发时间也大大缩短。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,有利于小型化设计。 3.3 模拟量输入通道 3.3.1 A/D转换芯片ADC0809

ADC0809采用双列直插式封装,共有28条引脚,各管脚的功能分四组简述如下[6]: 1、模拟信号输入IN0~IN7: IN0-IN7为八路模拟电压输入线,加在模拟开关上,工作时采用时分割的方式,轮流进行A/D转换。

2、地址输入和控制线 :地址输入和控制线共4条,其中ADDA、ADDB和为地址所寸允许输入线,用于选择IN0-IN7上哪一路模拟电压送给比较器进行A/D转换。ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,ADDA、ADDB和ADDC三条地址线上地址信号得以锁存,经译码器控制八路模拟开关通路工作。

3、数字量输出及控制线(11条):START为“启动脉冲”输入线,上升沿清零,下降沿启动ADC0809工作。EOC为转换结束输出线,该线高电平表示AD转换已结束,数字量已锁入“三态输出锁存器”。D0-D7为数字量输出线,D7为最高位。ENABLE为“输出允许”线,高电平时能使D0-D7引脚上输出转换后的数字量。

4、电源线及其他(5条):CLOCK为时钟输入线,用于为ADC0809提供逐次比较所需,一般为640kHz时钟脉冲。Vcc为+5V电源输入线,GND为地线。+VRef 和-VRef 为参考电压输入线,用于给电阻网络供给标准电压。+VRef 常和VDD相连,-VRef 常接地。

ADC0809芯片性能特点: 是一个逐次逼近型的A/D转换器,外部供给基准电压;单通道转换时间116us;分辨率为8位,带有三态输出锁存器,转换结束时,可由CPU打开三态门,读出8位的转换结果;有8个模拟量的输入端,可引入8路待转换的模拟量。

ADC0809的数据输出结构是内部有可控的三态缓冲器,所以它的数字量输出信号线可以与系统的数据总线直接相连。内部的三态缓冲器由OE控制,当OE为高电平时,三态缓冲器打开,将转换结果送出;当OE为低电平时,三态缓冲器处于阻断状态,内部数据对外部的数据总线没有影响。因此,在实际应用中,如果转换结束,要读取转换结果,则只要在OE引脚上加一个正脉冲,ADC0809就会将转换结果送到数据总线上。在本系统中

第 12 页 共 56 页

ADC0809在电路中的连接如图3.4所示,在模拟量之前加入滤波电路是为了使采集数据更加准确,对于模拟输入通道,还需要采用一些消除干扰的措施[9],这点将在下一小节提到。

图3.4 ADC0809在电路中的连接部分

3.3.2 模拟量输入通道的光电隔离

所谓对于模拟量输入,由于模拟信号的电压或电流是连续变化信号,其信号幅度在任何时刻都有定义。因此,对其进行处理就较为复杂,在进行信号放大、滤波、量化等处理过程中需要考虑干扰信号的抑制、转换精度及线性等诸多因素。

为了对模拟量输入通道消除干扰,一般需要加入线形光电隔离。对于模拟量输入通道,光电隔离有两种方法:模拟量侧隔离和数字量侧隔离,即在A/D转换之前或之后接入光电隔离器,或选择对管,采用互补电路,以提高线性度。

另外,由于模拟量输入信号一般都要经过放大后才能进行 A/D转换,因此可以采用兼有放大和隔离功能的隔离放大器。隔离放大器的输出端与输出端在电气上完全隔离。所用的隔离方法有变压器隔离和光电隔离两种。在本系统中采用的是光电隔离放大器ISO100,ISO100是美国 B-B公司生产的一种小型廉价光电隔离放大器。它将发光二极管的光分为两路:一路送输出端,另一路反馈到输入端,构成负反馈,以提高放大器的精度、线性度和温度稳定性。

ISO100的工作电源为+18V,隔离电压为2500V,输入电流为1A,输出电压Vout=RiIn 改变R 即能改变增益。当输入为电压量,应串联电阻Rin,使输入电流在要求范围内。

ISO100构成的热电偶放大器的连接图如图3.5所示。可见,ISO100使用非常方便,只需要外加少量的元件即可。值得注意的是,输入和输出部分必须使用两组独立的电源。

第 13 页 共 56 页

图3.5 ISO100的应用

3.4 开关量的输入输出通道

所谓开关量输入[8],是指输入信号为状态信号,如继电器的吸合与断开,光电门的导通和截止等,其信号电平只有两种,即高电平和低电平。对于这类信号,只需经放大、整形和电平转换等处理,就可直接送入计算机系统。 (1)开关量输入部分设计

对于各种开关量(如光电开关、接近开关、按钮开关等)的输入信号经光电隔离TLP521-4 后,接合适的下拉电阻,可以直接连接到单片机上,输入高电平时,读入的为“1”,输入低电平时,读入为“0”。

在开关量的输入输出通道中,为了防止现场强电磁干扰或工频电压通过输出或通道反串到测控系统,采用光电隔离技术[10]。因为光信号的传送不受电场、磁场的干扰,可以有效地隔离电信号。光电耦合输入电路如图3.6所示:

图3.6 光电耦合输入电路图

(2)开关量输出部分设计

对电机、制动器等控制的开关量的输出,其输出驱动电路是采用反相驱动器 MC1413, 该器件逻辑图见下图3.7所示。

MC1413有较强的驱动能力,并且有内部保护二极管,可以直接驱动继电器和电磁阀。本系统中开关量输出可以用于控制接触器、灯泡、功率大的器件运行等。由于MC1413不能直接驱动一些交流接触器等,因此利用继电器作为测控系统输出到输出驱动器之间的中间级执行机构。通过中间继电器输出,可完成从低压直流到高压交流的过渡。如图

第 14 页 共 56 页

3.8所示,经MC1413后,直流部分给继电器供电,而其输出部分直接与所需要的任务器相连。

图3.7 MC1413内部结构图

图3.8 经MC1413以后的电路部分

从上图可以看出,当继电器输出时,输入与输出端有一定的隔离功能,但由于采用电磁吸合方式,在开、关瞬间,触点容易产生火花而引起干扰,所以从反相驱动器MC1413 输出的开关量信号,再经过光电耦合电路和继电器后输出,尽可能地减少了干扰。在交流高压等场合使用,触点也容易氧化。由于继电器的驱动线圈有一定的电感,在关断瞬间可能会产生较大的电压。因此在对继电器的驱动电路上常常反接一个保护二极管用于反向放电。开关量输入输出部分电路在系统中设计如图3.9所示。

第 15 页 共 56 页

图3.9 开关量输入输出部分电路

3.5 扩展外部存储器电路

考虑到系统的实用性和二次开发性,系统需要加一外部数据存储器[9]。来保存由外部输入到单片机系统的数据,而随机存储器作为一种使用方便的数据读写存储器,在计算机应用系统中有着广泛的应用。SRAM的典型芯片有2KB的6116、8KB的6264以及32KB的62256,其中6264芯片应用最为广泛。

Intel 6264 是8K ×8 SRAM,单一的+5V电源,所有的输入端和输出端都与TTL电路兼容。它的电路原理图逻辑符号如图3.10所示。其中,CS为片选信号,OE为输出 允许信号,WE写信号,A0-A12为13根地址线,D0-D7为8位数据线。

图3.10 SRAM6264

在系统中的扩展电路与单片机连接如图3.11所示。

第 16 页 共 56 页

图3.11 SRAM6264与AT89C52的连接原理图

3.6 RS-232串行通讯电路

RS-232电路是单片机采集电路部分与 GPRS调制解调器之间的接口电路[8]。单片机就是利用RS-232串口通讯向GPRS MODEM发送AT指令,以控制GPRS MODEM完成数据的远距离无线传输[12]。

RS-232是美国电子工程师协会正式公布的串行总线标准,也是目前最常用的串行接口标准,主要用来实现计算机与计算机之间、计算机与外设之间的数据通讯。RS-232 串行通讯是全双工的,可以同时接受和发送,它的逻辑“1”是-5V~-15V,逻辑“0” 是+5V~+15V。RS-232串行接口总线适用于设备之间的通讯距离不大于15m,并且传输速率最大为 20Kbps。由于 RS-232和 TTL各自规定了自己的电气标准,互不兼容,因此RS-232与TTL电路接口时需进行电平转换,这里简单介绍一种电平转换。

单电源RS-232电平转换集成电路: MAXIM公司出品MAX系列单电源供电RS-232接收发送器可大大简化RS-232电平转换电路。它具有功耗低、通信速率高、封装形式多、单一电源供电、外接器件少等特点。它由充电泵电压变换器、驱动器(发送器)和接收器三个部分组成。

(1) +5V到±10V双充电泵电压变换器

5V到±10V的变换是由一种专利产品双充电泵电压变换器(见图3.12)完成的。第一个充电泵电压变换器的电容器C1被充上+5V电压,输出滤波电容器C3上也充有+5V电压,输出电压 V为+10V。第二个充电泵电压变换器用电容器 C2将+10V反相为-10V保存

第 17 页 共 56 页

-10V在V-输出滤波电容器C4上。

在停机方式下,V+通过一个1K的内部下拉电阻连接到VCC,同时V-通过一个1K的内部上拉电阻连接到地。

图3.12 电压变换器电路

(2) RS-232发送器

发送器的输入为TTL/CMOS电平,输出RS-232电平,当 MAX系列的电压倍增器(CPE)的工作电压为+5V,而 RS-232接受端负载为 5K时,发送器的输出电压为+8V左右;空载时输出电压从(V+-0.6)V-之间变化,发送器的输入端内置 40的上拉电阻,当输入端悬空时,被上拉到Vcc,经反相器,输出端为低电平,上拉电阻耗电为15uA。所以悬空时的功耗最低。 (3) RS-232接收器

接受器输入为 RS-232电平,输出为TTL/CMOS电平。不使用的接受器输入、输出端可以悬空。其输入端内置 5K的下拉电阻。当输入端悬空时,被下拉至地,经反相器,输出为高电平。

如图3.13所示的典型工作电路。正常工作时对C1-C4的电容类型要求不是很高,例如MAX202需要0、1uF的电容,而MAX232需要1uF的电容,在所有的情况下10uF以内的电容均可使用。

第 18 页 共 56 页

图3.13 MAX 232引脚图

本系统选用MAX232芯片实现TTL与232电平之间的转换,与接口电路相连的一侧是AT89C52单片机,另一侧是GPRS MODEM,由它们来实现数据的无线传输。系统的RS-232串行通讯电路如图3.14所示。

图3.14 RS-232串口电路原理图

3.7 G20通信模块电路 3.7.1 G20模块接口简单说明

本系统无线数据传输模块使用摩托罗拉公司的G20 GPRS无线模块[10],通过拨号的方式登陆中国移动的 GPRS网络[11]。GPRS无线通讯网络是在 GSM网络的基础上构建的,由 GSM的电路交换过渡到了分组交换,支持TCP/IP协议,理论最高速率可达171Kbps。GPRS网络很适合数据量少的、瞬时性的环保数据的无线传输。CPU模块通过集成的 RS-232与G20接口。因为 CPU模块串口与 G20模块串行接口间电平不一致,需加电平转换电路。

第 19 页 共 56 页

RS-232与G20模块连接线路(图3.15)

图3.15 G20模块的USB接口连接

在系统中主要使用 G20模块传输数据,在数据通信中,用于接受和发送数据的设备称为数据终端设备 DTE(Date TerminalEquipment)。用来连接 DTE与数据通信网络的设备称为 DCE(Date CommunicationsEquipment)。 3.7.2 G20开发版的使用说明 一、 开发器功能介绍:

■ 标准的RS232接口。 ■ 标准的USB接口。 ■ LED指示灯显示功能。 ■ HEADSET语音功能。 ■ 宽范围直流电压输入。 ■ 两种可选择的上电方式。 ■ 两种可选择的RS232连接方式。 ■ 两种可选择的SIM卡检测方式。 ■ 可供调试的70PIN DIP 插座。 二、 连接器示意图(如图3.16)定义及说明

第 20 页 共 56 页

图3.16 G20开发板连接器示意图

J103:USB插座。方口USB插座,可直接连接通用USB线缆。 J104:RS232插座。可直接连接标准九针串口线缆(一对一)。 J105:IGN选择。跳线连接为IGN上电方式。

J106:耳机插座。可插入标准的耳机线缆,作为模拟音频的接口。 J201:电源输入插座。可接入5~42V的标准直流稳压电源,里正外负。 J301、J302:MCU选择。用跳线连接,用于单片机三线串口通讯。 SW102:ON/OFF按钮。在不选择IGN上电方式时,采用该按钮上、下电。 SW201:电源开关按钮。插入电源后,按此按钮可为开发板加电或断电。 三、指示灯定义 1. 电源指示灯部分: P_ON: 电源开关指示灯。 2. G20指示灯部分:

RST: G20模块复位指示灯。正常闪亮,表示模块正常上电。 IGN: IGN上电方式指示灯。灯亮,表示IGN方式上电。 S_R: SIM卡复位指示灯。正常闪亮,表示SIM卡正常上电。 RFT: RF发射指示灯。RF工作时闪亮。 GPRS: GPRS覆盖指示灯。 3. USB指示灯部分:

UVC: USB电源指示灯。 UD+: USB D+指示灯。

第 21 页 共 56 页

4. RS232指示灯部分:

RXD:数据接收指示灯。 TXD:数据发送指示灯。 CTS:清除发送指示灯。 RTS: 请求发送指示灯。 DTR: DTE准备好指示灯。 DSR: DCE准备好指示灯。 DCD: 载波检测指示灯。 RI: 振铃指示灯。 四、技术指标:

输入电压:7-42VDC 平均输入电流:< 500 Ma 阻抗16欧姆 频响范围18-20000 Hz 灵敏度108 总谐波失真小于1 % 工作温度:-40-85度。 存储温度:-65-160度。 3.8 系统整体设计原理图

123+5V+5VS1234DJP?456开关量输入8765IN1GNDIN2GNDIN3GNDIN4GNDCON6O1G1O1G2O3G3O4G4MC1413INCOMOUTMC1413INCOMOUTMC1413+5V开关量输出123456CON6D16161616GNDINCOMOUTAMC1413INCOMOUT1KA1KA1KA1KGND111GND89C52123456781312151431C191891716P10/TP11/TP12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRRXDTXDALE/PPSEN10113029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P273938373635343332212223242526272874LS27312345678911D0D1D2D3D4D5D6D7CEIEU?Q0Q1Q2Q3Q4Q5Q6Q712131415161718191211109876527262325428292224311GNDA0A1A2A3A4A5A6A7A8A9A10A11A12NCVCCCEOEWEGNDADC7802BN(28)D0D1D2D3D4D5D6D713141517181920211000C100010ufCAP10ufCAPADC080913579111315171921232527246810121416182022242628VCC1C1000C模拟量输入87654321CON81000100010001000B10001uf+5V1510ufCAP10ufCAP10ufCAPU?NORC71ufGNDVCC16C521162738495DB9129J?GNDC6B64CAP-CAP 2+CAP +CAP 1+1ufC31uf10ufCAP10ufCAP10ufCAPC41ufNORCGND5147CAP 2-RT-OUT1RT-OUT2RR-IN1RR-IN2MAX232CAP 1-T-IN1T-IN2R-OUT1R-OUT23111010UFRGND+5V1K单片机复位按钮SW-PB138AR110KTitleGNDASizeGNDBDate:File:12345NumberRevision17-Jun-2007Sheet of C:\\ProgramFiles\\Design Explorer 99 SE\\Examples\\MDrawn yByDesign:1.ddb6 图 3.17 系统整体设计原理图

第 22 页 共 56 页

4 系统的软件设计

单片机系统除了必要的硬件支持外,还需要进行软件设计。由于使用的单片机是MCS-51系列的单片机,所以,所有的软件选择用汇编语言进行的。 4.1通信协议

GPRS通信模块G20内嵌TCP/IP协议,以下是TCP/IP协议的简单介绍[12]:

这部分简要介绍一下TCP/IP的内部结构,为讨论与互联网有关的安全问题打下基础。TCP/IP协议组之所以流行,部分原因是因为它可以用在各种各样的信道和底层协议(例如T1和X.25、以太网以及RS-232串行接口)之上。确切地说,TCP/IP协议是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。 TCP/IP整体构架概述:

TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网路层、传输层、话路层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为:

应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。

传输层:在此层中,它提供了节点间的数据传送服务,如传输控制协议(TCP)、用户数据报协议(UDP)等,TCP和UDP给数据包加入传输数据并把它传输到下一层中,这一层负责传送数据,并且确定数据已被送达并接收。

互连网络层:负责提供基本的数据封包传送功能,让每一块数据包都能够到达目的主机(但不检查是否被正确接收),如网际协议(IP)。

网络接口层:对实际的网络媒体的管理,定义如何使用实际网络(如Ethernet、Serial Line等)来传送数据。 TCP/IP中的协议:

以下简单介绍TCP/IP中的协议都具备什么样的功能,都是如何工作的: 1. IP

第 23 页 共 56 页

网际协议IP是TCP/IP的心脏,也是网络层中最重要的协议。

IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是按顺序发送的或者没有被破坏。IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。

高层的TCP和UDP服务在接收数据包时,通常假设包中的源地址是有效的。也可以这样说,IP地址形成了许多服务的认证基础,这些服务相信数据包是从一个有效的主机发送来的。IP确认包含一个选项,叫作IP source routing,可以用来指定一条源地址和目的地址之间的直接路径。对于一些TCP和UDP的服务来说,使用了该选项的IP包好象是从路径上的最后一个系统传递过来的,而不是来自于它的真实地点。这个选项是为了测试而存在的,说明了它可以被用来欺骗系统来进行平常是被禁止的连接。那么,许多依靠IP源地址做确认的服务将产生问题并且会被非法入侵[13]。 2. TCP

如果IP数据包中有已经封好的TCP数据包,那么IP将把它们向‘上’传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包可以被重传。

TCP将它的信息送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层,设备驱动程序和物理介质,最后到接收方。

面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。 3.UDP

UDP与TCP位于同一层,但对于数据包的顺序错误或重发。因此,UDP不被应用于那些使用虚电路的面向连接的服务,UDP主要用于那些面向查询---应答的服务,例如NFS。相对于FTP或Telnet,这些服务需要交换的信息量较小。使用UDP的服务包括NTP(网落时间协议)和DNS(DNS也使用TCP)。

欺骗UDP包比欺骗TCP包更容易,因为UDP没有建立初始化连接(也可以称为握手)

第 24 页 共 56 页

(因为在两个系统间没有虚电路),也就是说,与UDP相关的服务面临着更大的危险。 4.ICMP

ICMP与IP位于同一层,它被用来传送IP的的控制信息。它主要是用来提供有关通向目的地址的路径信息。ICMP的‘Redirect’信息通知主机通向其他系统的更准确的路径,而‘Unreachable’信息则指出路径有问题。另外,如果路径不可用了,ICMP可以使TCP连接‘体面地’终止。PING是最常用的基于ICMP的服务。 5. TCP和UDP的端口结构

TCP和UDP服务通常有一个客户/服务器的关系,例如,一个Telnet服务进程开始在系统上处于空闲状态,等待着连接。用户使用Telnet客户程序与服务进程建立一个连接。客户程序向服务进程写入信息,服务进程读出信息并发出响应,客户程序读出响应并向用户报告。因而,这个连接是双工的,可以用来进行读写。

两个系统间的多重Telnet连接是如何相互确认并协调一致呢?TCP或UDP连接唯一地使用每个信息中的如下四项进行确认: 源IP地址 发送包的IP地址。 目的IP地址 接收包的IP地址。 源端口 源系统上的连接的端口。 目的端口 目的系统上的连接的端口。

端口是一个软件结构,被客户程序或服务进程用来发送和接收信息。一个端口对应一个16比特的数。服务进程通常使用一个固定的端口,例如,SMTP使用25、Xwindows使用6000。这些端口号是‘广为人知’的,因为在建立与特定的主机或服务的连接时,需要这些地址和目的地址进行通讯。 4.2 AT指令

主要的移动电话生产厂商Nokia、Ericsson、Motorola和HP共同为GSM研制了一整套AT命令,其中包含对SMS的控制.AT命令在此基础上演化并被加入GSM07.05标准以及之后的GSM07.07标准.用户可以通过AT指令实现呼叫控制、短消息SMS、电话本、数据业务、传真等方面的控制.这里主要讨论与远程数据采集系统相关的AT指令。 (1)选择短消息格式指令AT+CMGF(如表4.1)。

选择消息为 TEXT或 PDU(Protocol Data Unit)格式.用 TEXT格式,命令和响应内容均用ASCII字符编码;用PDU格式,则用16进制格式编码,选择消息的格式存储在EEPROM

第 25 页 共 56 页

中。

表4.1 短消息格式设置指令表

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令:AT+CMGF? 描述:查询当前值 响应:+CMGF:1 OK 描述:TEXT格式 命令:AT+CMGF=? 描述:格式检测命令 响应:+CMGF:0 OK 描述:仅支持PDU格式

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (2)设置新消息到达自动提示指令AT+CNMI(如表4.2)。

命令格式: AT+CNMI=〈mode〉,〈mt〉,〈 bm〉,〈ds〉,〈bfr〉.其中, 〈mode〉:取值范围为0~4,用于主动提供结果码的过程; 〈mt〉:为SMS DELIVERS设置结果码提示发送路径,缺省值为0; 〈bm〉:设置存储接收的广播消息的规则;

〈bfr〉:缺省值为0,表示当mode取值为1~3时,TA缓冲区的结果码发送给TE“1”

表示清除TA缓冲区中的结果码。

向手机发送了该条指令后,只要手机收到新的短消息,立即自动报告给相连接的计算机。

表4.2 短消息到达自动提示指令

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令: AT+CNMI=2,1,0,0,0 描述:(mt)=1 响应: OK 描述:设置成功

新消息到来时的响应:+CMTI:“SM”,1 描述:收到新消息的提示“1”表示新消

息存放的位置,可用CMGR指令读出来。

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (3)读取短消息AT+CMGR (如表4.3)。

命令格式: AT+CMGR=〈index〉,〈index〉表示要读取消息的存放位置,该指令一 新消息到达提示响应结果一起使用。

表4.3 读取短消息指令

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令: AT+CMGR=2 描述:(index)=2

第 26 页 共 56 页

+CMGR:“REC UNREAD”,“139xxxxxxxx”,

响应:“02/05/06,10:20:30+00”,hello 描述:TEXT格式 OK

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (4)发送短消息 AT+CMGS(如表4.4)先选择短消息格式TEXT还是PDU。

表4.4 发送短消息指令

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令: AT+CMGS= 描述:用TEXT方式发送信息 “86136xxxxxxxx” “This is a test message” This is a test message。

〈ctrl-Z〉

响应 +CMGS:〈mr〉OK 描述:发送成功 AT+CMGS=〈length〉

命令 0891683108200805F011000B81 描述:用PDU方式发送信息“HI” 3126098000F00000A702C834 〈ctrl-Z〉

响应 +CMGS:〈mr〉OK 描述:发送成功

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令AT+CMGS =〈length〉0891683108200805F011000B81312609

〈ctrl-Z〉描述:用PDU方式发送信息“Hi”响应+CMGS:〈mr〉OK描述:发送成功 (5) 删除短消息AT+CMGD (如表4.5)。 该指令用于删除存储在手机中的短消息。

表4.5 删除短消息指令

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 命令:AT+CMGD=〈index〉 描述:删除指定的短消息 响应:OK 描述:成功

 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 以上就是在发送采集数据时能涉及到几种AT命令。 4.3 短消息的 PDU模式

因为系统设计的方案是通过GPRS 通信模块利用短消息方式采集远端数据,所以要

第 27 页 共 56 页

对短消息方式发送数据做一些的熟悉和认识。

G20支持 GSM07.05 规定的指令集,该指令集是 ETSI(欧洲通信技术委员会)发布的,其中包含了对 SMS 的控制。利用 AT89C52 的串行口向 G20 发送一系列 AT 命令,就达到控制 G20 收发 SMS 的目的。G20 通过异步通信接口实现对 SMS 控制有三种协议:基于 AT 命令集的 Text Mode、基于 AT 命令集的 PDU Mode和 Block Mo。PDU Mode 是发送和接收 SMS 的一种方法,SMS 正文经过十六进制开始编码后被传送。目前 PDU Mode 应用最为广泛,几乎全国所有的电信局都提供支持PDU Mode 的 SMS 业务。为保证本系统的通用性,采用 PDU Mode 模式收发 SMS。

PDU 相当于一个数据包,它由构成短消息(SMS)的信息组成。作为由一种数据单元建立起来的通信单元,它必须包括源目的地址、有效时间、数据格式、协议类型和正文。正文长度可达接命令140 个字节,它们都是由十六进制表示。PDU 的结构根据 SMS 由移动终端发起或以移动终端为目的而不同[14]。

单片机 AT89C52 的发送和接收均为 ASCII 码[14][15],根据设置不同 AT89C52 从 G20上接收 SMS 的实质就是从 SIM 卡或缓存中读取信息,主要用 AT 指令集中 AT+CMGR和AT+CMGL两条指令来完成,其工作过程为:AT89C52 首先要确认能否与 G20建立起通信,用 ATE 指令完成以确认,然后用 AT+CMGF 指令选定 SMS 的数据格式;在收到 G20的正确回答后,以 AT 指令完成读取功能一般用 AT+CMGR 来读取实时对 G20进行初始信息。与接收 SMS 一样,发送时也应先建立起 AT89C52 与 G20 的联系传送初始化命令,设置PDU模式命令,然后发送短消息内容。

在发送短消息时主要的编码工作就是对被叫号码的半八位编码和用户数据的编码。对被叫号码编码时,只需要对位置作调节就可以。例如对被叫手机号码“13065028321”进行编码时将会编为“3160058223F1”。半八位编码只需数字的位置两两对换即可得,如果被叫号码位数为奇数,最后加入“F”进行编码;如果为偶数,只需要将数字的位置两两交换。

对用户数据进行编码,对应发送内容为纯英文或非纯英文,有两种不同的编码方式,即PDU七位编码和UNICODE编码。发送的内容长度最多为140个字节,当采用UNICODE编码最多可发送 70个字符;对于采用 PDU七位编码的纯英文字符可发送 160个字符(140*8/7)。因系统是数据传输,所以采用PDU七位编码的形式发送数据。

GSM只支持ASCII码值从0x00到0x70的128个字符。这些值只需要7-bit去定义,

第 28 页 共 56 页

而 SMS报文是以 8-bit字节序列。对于英语与数字字符,由于它们的 ASCII码值小于128,所以它们在表示时只需要用 7位就可以了。在进行编码时,只需要依次将下一个7位编码的后几位逐次移至前面,形成新的8位编码。如:“ABCDEFGHIJKLMNOPQ”的编码,最终为‘41E19058341E9149E592D9743EA151’,变换函数见程序部分。 4.4 主程序设计

主程序是对整个系统框图的描述。本系统的主程序的功能是上电后的,完成系统初始化,包括设置波特率为 9600bps,定时器 T1工作方式 2,定时器 T0工作方式 1,串行口工作方式 1,赋毫秒、秒、分的计数初值,开定时中断,设外部中断 INT0为边沿触发方式等;接下来进行数据采集,对八路通道进行循环采集,每一路采集 10组数据,通过外部中断INT0进行每次采集,够十次后关中断;进行数据处理(平均滤波),将处理后的数据存入缓冲区,等待发送;接下来进行开关量输入输出处理程序将其开关量状态也存入数据缓冲区,等待发送;整个发送是通过定时中断来控制的,设置半小时发送一次采集数据和开关量状态。主程序的流程图如图4.1所示。 4.5 重要子程序的设计

(一)、数据处理子程序:采用平均滤波的方法进行数据处理,即将连续采样10次。

第 29 页 共 56 页

图4.1 主程序及INTO中断流程图 (注:D-NUM为采集通道数)

第 30 页 共 56 页

的数据累加求和,同时找出其中的最大和最小值,再从累加中减去最大值和最小值,按 8次采样值平均,即得有效采样值,存入发送缓冲区。流程图如图4.2所示。

图4.2平均滤波程序流程图

(二)、开关量处理子程序:在初始化程序中设置好 P1口的状态,放在位缓冲区 2CH中,再判断开关量输入状态,由四位开关量输入控制四位开光量输出,输出的开关量通

第 31 页 共 56 页

过反向驱动器、光电隔离和继电器后可以接大功率的器件,同时将开关量输入输出的状态送入发送缓冲区。流程图如图4.3所示。

图4.3 开关量输入控制输出程序流程图 (注DA0到DA7存储开关量状态缓冲区地址)

第 32 页 共 56 页

(三)、定时中断子程序:考虑经济原因和现实需要,通过定时器T0中断来控制发送数据。流程图如图4.4所示。

图4.4 定时中断流程图

第 33 页 共 56 页

(四)、发送数据子程序:首先将发送缓冲区的数据进行 ASCII码变换,再将成其转换为发送短消息时所需要的七位GSM码,最后由发送程序将数发送出去。流程图如图4.5所示。

图4.5 发送采集数据程序流程图

第 34 页 共 56 页

结论

本论文设计了基于GPRS远程数据采集系统,是通过现有的GPRS网络,利用短消息方式,进行单片机和G20模块开发板的远程数据采集。主要研究了远程数据采集系统的硬件电路设计方法、GPRS模块利用短消息方式传输数据、以及远程采集系统的软件设计。实现了远距离采集数据与 GPRS无线数据传输技术相结合,摆脱有线困扰,使得系统有广泛的适用范围和较高的使用价值。

本课题的研究中主要完成以下工作:

1、根据GPRS数据传输技术特点,完成了基于GPRS远程数据采集的系统的整体方案的设计。

2、完成数据采集模块的硬件电路设计及其单片机外围电路的设计,实现模块的数据处理和通信接口设计。

3、完成四路开关量输入、输出电路的设计,及其消除干扰的外电路设计。 4、利用G20模块通过GPRS网络或Internet网、采用短消息方式实现远程数据采集系统的软件,并作流程框图。

由于时间、设备、条件等各方面原因,系统还存在一些不足,如:没有考虑到突然断电的问题,这在以后的设计中单片机选型时应选择带有看门狗的单片机,从而使系统更方便使用,趋于完整。

工业现代化的不断发展,以及新技术的不断产生,远程数据采集正在进入一个高速发展的阶段。由于本系统采用了 GPRS技术,是一种比较先进的技术,很容易取代很多基于有线通讯的类似系统,因此,研制此系统具有很强的通用性,不管是用于自动抄表系统,还是温度测量、环境监测、海洋石油等领域中,有着非常好的发展前景。

论文虽然结束了,但一个新系统最终走向成熟和完善还需要我们在以后的学习中作不懈的努力!

第 35 页 共 56 页

附录 程序清单

;***定义缓冲区*** AD0 EQU 30H AD1 EQU 31H AD2 EQU 32H AD3 EQU 33H AD4 EQU 34H AD5 EQU 35H AD6 EQU 36H AD7 EQU 37H AD8 EQU 38H AD9 EQU 39H AD10 EQU 3AH

AD11 EQU 3BH ;AD12 EQU 3CH ;AD13 EQU 3DH AD14 EQU 3EH AD15 EQU 3FH AD16 EQU 40H AD17 EQU 41H AD18 EQU 42H AD19 EQU 43H AD20 EQU 44H AD21 EQU 45H AD22 EQU 46H AD23 EQU 47H

DA0 EQU 48H DA1 EQU 49H

采集数据转换 码后的缓冲区 第 36 页 共 56 页

DA2 EQU 4AH

DA3 EQU 4BH ; 开关量状态 DA4 EQU 4CH ;数据缓冲区 DA5 EQU 4DH DA6 EQU 4EH DA7 EQU 4FH

X0_BUF EQU 20H X1_BUF EQU 21H X2_BUF EQU 22H X3_BUF EQU 23H

X4_BUF EQU 24H ;采集 10个 X5_BUF EQU 25H ;数据缓冲区 X6_BUF EQU 26H X7_BUF EQU 27H X8_BUF EQU 28H X9_BUF EQU 29H

D0_BUF EQU 50H D1_BUF EQU 51H D2_BUF EQU 52H

D3_BUF EQU 53H ; 八路采集数据

D4_BUF EQU 54H ;平均滤波后的数据缓冲区D5_BUF EQU 55H D6_BUF EQU 56H D7_BUF EQU 57H TMS EQU 58H

TS EQU 59H ;定时时间数存储缓冲 MIN EQU 5AH

第 37 页 共 56 页

AD_NUM EQU 5BH ;采集处理后数据缓冲区 DE_NUM EQU 5CH

D_NUM EQU 5DH ;显示采集路数缓冲区

ORG 0000H LJMP START ORG 0003H LJMP INT0 ORG 000BH LJMP DT0 ;****初始化**** ORG 0080H START: MOV SP,#060H

MOV PSW,#00H 初始化 CLR A 数据区清零

MOV TMOD,#21H ; 定时器 T0工作方式 1, MOV TL1,#0FDH ;T1工作方式 2 , MOV TH1, #0FDH 设置波特率 MOV TCON, #40H ;启动定时器 T1 MOV SCON, #50H ;置串口工作方式 1 MOV TL0,#0A0H

MOV TH0, #15H 定时常数 60ms MOV TMS, #100 赋毫秒计数初值 MOV TS,#10 赋秒计数初值 MOV MIN, #30 ;赋 30分计数初值 CLR 5FH ; 清定时标志位 MOV IE, #82H ; 允许 T0中断 SETB TR0 ;启动定时器 T0 DE_NUM EQU 5CH

第 38 页 共 56 页

D_NUM EQU 5DH ; 显示采集路数缓冲区 ;********** 主 程 序 ********

MAIN: MOV R0, #X0_BUF ;置存放数据的首地址 MOV R7,#10 ;每个通道的采集次数 MOV R6,#10 ;每个通道的采集次数 SETB IT0 ;选择边缘触发方式 SETB EX0 ;允许外部 INT0中断 MOV A,D_NUM CJNE A,#8,LP1 MOV D_NUM,#0 MOV A,D_NUM LP1: ADD A,D_NUM MOV DPTR,#IN_N JMP @A+DPTR IN_N: AJMP IN_0 AJMP IN_1 AJMP IN_2 AJMP IN_3 AJMP IN_4 AJMP IN_5 AJMP IN_6 AJMP IN_7

IN_0: MOV DPTR, #7FF8H ;指向模拟通道 0 MOVX @DPTR, A ;启动 A/D转换 LJMP LP2

IN_1: MOV DPTR, #7FF9H ;指向模拟通道 1 MOVX @DPTR, A ;启动 A/D转换 LJMP LP2

IN_2: MOV DPTR, #7FFAH ;指向模拟通道 2

第 39 页 共 56 页

MOVX @DPTR,A ;启动 A/D转换 LJMP LP2

IN_3: MOV DPTR, #7FFBH ;指向模拟通道 3 MOVX @DPTR, A ;启动 A/D转换 LJMP LP2

IN_4: MOV DPTR, #7FFCH ;指向模拟通道 4 MOVX @DPTR, A ; 启动 LJMP LP2 IN_5: MOV DPTR, #7FFDH ;指向模拟通道 5 MOVX @DPTR, A ;启动 A/D转换 LJMP LP2

IN_6: MOV DPTR, #7FFEH ;指向模拟通 6 MOVX @DPTR, A ;启动 A/D转换 LJMP LP2

IN_7: MOV DPTR, #7FFFH ; 指向模拟通道 7 MOVX @DPTR,A ;启动 A/D转换 LJMP LP2 LP2: INC AD_NUM MOV A,R7 LP3: JNZ $ DJNZ R6,LP3 CLR EX0

LCALL CHULI ;调数据处理程序 LCALL PORT ;调开关量处理程序 LJMP TT ;跳转到定时传送程序 ;********* 数据采集中断 ****** INT0:PUSH A PUSH PSW

MOVX A,@DPTR ;读取转换结果 MOV @R0,A ;存放数据

第 40 页 共 56 页

INC R0 ;指向数据下一单元 MOVX @DPTR,A ;启动 A/D转换 DEC R7 POP PSW POP A RETI

;****采集数据处理(平均滤波)程序**** CHULI:PUSH A PUSH PSW

MOV PSW,#01H ;定义‘1’区的工作寄存器 MOV R0,#X0_BUF ; 置采样数据首址 MOV A, X0_BUF ; 将采样值给累加器 MOV R3,A ; 初始化SUM=Xi MOV R2,#0

MOV R4,A ; MAX=X1 MOV R5,A ; MIN-X1 MOV R7,#9 ; 再采样9次 LI1: INC R0

MOV A,@R0 ; 继续取下一单元采样值 MOV R6,A ; 暂存XI ADD A,R3 ;SUM=SUM CLR A ADDC A,R2 MOV R2,A

MOV A,R6 ; 取Xi SUBB A,R4 ; Xi

MOV A,R6 更新MAX MOV R4,A

第 41 页 共 56 页

SJMP LI3 LI2: MOV A,R6 CLR C

SUBB A,R5 JNC LI3

MOV A,R6 更新MIN MOV R5,A

LI3: DJNZ R7,LI1 共采完10个样本 CLR C

MOV A,R3 -MAX SUBB A,R4 XCH A,R2 SUBB A,#0

XCH A,R2 ;SUM=SUM-MIN SUBB A,R5 MOV R3,A MOV A,R2 SUBB A,#0

SWAP A ;SUM=SUM/8 RL A XCH A,R3 SWAP A RL A

ADD A,#80H 四舍五入 ANL A,#1FH ADDC A,R3

MOV R1,A ;将结果放在缓冲区中 LI4: MOV A,AD_NUM CJNE A,#8, LI5

第 42 页 共 56 页

MOV AD_NUM,#0 MOV A,AD_NUM LI5: ADD A,AD_NUM MOV DPTR,#CH_N JMP @A+DPTR CH_N: AJMP CH_0 AJMP CH_1 AJMP CH_2 AJMP CH_3 AJMP CH_4 AJMP CH_5 AJMP CH_6 AJMP CH_7 CH_0: MOV A,R1 MOV D0_BUF,A LJMP LI6 CH_1: MOV A,R1 MOV D1_BUF,A Xi

第 43 页 共 56 页

MOV D5_BUF,A LJMP LI6 CH_6: MOV A,R1 MOV D6_BUF,A LJMP LI6 CH_7: MOV A,R1 MOV D7_BUF,A LJMP LI6 LI6: INC AD_NUM POP PSW POP A RET

;****判断开关量输入输出的状态**** PORT: MOV A,P1

MOV 2CH,A ;将数据存入位寄存器2CH中 K1: JB 2CH.0,L1 MOV DA0,#0 K2: JB 2CH.1,L2 MOV DA1,#0 K3: JB 2CH.2,L3 MOV DA2,#0 K4: JB 2CH.3,L4 MOV DA3,#0 K5: JNB 2CH.4,L5 MOV DA4,#0 K6: JNB 2CH.5,L6 MOV DA5,#0 K7: JNB 2CH.6,L7 MOV DA6,#0

第 44 页 共 56 页

K8: JNB 2CH.7,L8 MOV DA7,#0 K9: RET

L1: CLR P1.4 ;判断是否是1键按下, MOV DA0,#1 ;若是,第1个灯亮. MOV 2CH,P1 ;并把其状态送入数据缓冲区 LJMP K2

L2: CLR P1.5; ;判断是否是'2'键按下, MOV DA1,#1 ; 若是,第2灯亮.

MOV 2CH,P1 ;并把其状态送入数据缓冲区 LJMP K3

L3: CLR P1.6 ;判断是否是'3'键按下

MOV DA2,#1 ;判断是否是'4'键按下, MOV DA3,#1 ; 若是,第4个灯亮. MOV 2CH,P1 ;并把其状态送入数据缓冲区 LJMP K5 L5: MOV DA4,#1 LJMP K6

L6: MOV DA5,#1 ;判断开关量输出的状态 LJMP K7 L7: MOV DA6,#1 LJMP K8 L8: MOV DA7,#1 LJMP K9

;********* 定时发送子程序 *********** TT: JNB 5FH,TT1

CLR 5FH ;清前30分钟到的状态标志位 LCALL SRRT ;调发送采集数据子程序 TT1: LJMP MAIN ;返回主程序

第 45 页 共 56 页

;**** 定时中断子程序***** DT0: PUSH A PUSH PSW

CLR EA 关中断

MOV TL0,#0A0H 重装定时常数60ms MOV TH0,#15H

DJNZ TMS,DT1 判断6s定时到否 MOV TMS,#100

DJNZ TS,DT1 判断1min定时到否 MOV TS,#10

DJNZ MIN,DT1 判断30分钟定时到否 MOV MIN,#30

SETB 5FH 置30分钟到的状态标志DT1: POP PSW POP A SETB EA RETI

;*****数据发送子程序****** SRRT: PUSH A PUSH PSW CLR EA

CLR 7FH ;清发送是否成功的标志位 LCALL BCD ;调BCD码转换程序 LCALL CDE ;调7位GSM码转换程序 LCALL CDE2 ;转换后的排序 MOV PSW,#10H J1: LCALL SD1 LCALL RECEIVE LCALL EF1

第 46 页 共 56 页

JB 7FH,J1;判断\,4\是否发送成功 J2: LCALL SD0 LCALL RECEIVE

LCALL EF1 ; 判断\是否发送成功 JB 7FH,J2 J3: LCALL SD2 LCALL RCV

LCALL EF2 ;判断\是否发送成功 JB 7FH,J3 J4: LCALL SD3 LCALL SD4 LCALL RECEIVE

LCALL EF1 ; 判断\数据包\是否发送成功 JB 7FH,J4 SETB EA POP PSW POP A RET ;

**将 D0_BUF等单元的 16进制数转换为 BCD码放到 AD0,AD1,AD3等单元 **** BCD: CLR RS0 SETB RS1 ;置‘2’工作寄存器 MOV R7,#08 MOV R0,#D0_BUF MOV R1,#AD0 CD0: MOV A,@R0 MOV B,#64H DIV AB MOV @R1,A MOV A,B MOV B,#OAH DIV AB INC R1 MOV @R1,A

第 47 页 共 56 页

INC R1 MOV @R1,B DJNZ R7, CD1 LJMP CD2 CD1: INC R0 INC R1 LJMP CD0 CD2: MOV R1, #AD0 MOV R6,#32 CD3: MOV A,@R1 ANL A,#0FH MOV DPTR,#ASCTAB MOVC A,@A+DPTR MOV @R1,A INC R1 DJNZ R6,CD3 RET

*****将30H-4FH单元中的数转换为7位GSM码形式** CDE: PUSH PSW PUSH A

SETB RS0 区工作寄存器 SETB RS1

MOV R4,#4 外循环次数 MOV R5,#0 MOV R6,#7

MOV DE_NUM,#7 内循环次数 MOV R0,#AD0 MOV R1,#AD1 CDE1: MOV R7,DE_NUM

第 48 页 共 56 页

MOV A,@R0 MOV R2,A CJNE R5,#0, DE1 INC R5 LJMP DE2 DE1: RR A DJNZ R5,DE1 MOV R2,A INC R5

CJNE R5,#7,DE2 MOV R5,#0 DE2: MOV A,@R1 DE3: RL A DJNZ R7,DE3 ADD A,R2 MOV @R0,A DEC DE_NUM INC R0 INC R1 DJNZ R6,CDE1 INC R0 INC R1 MOV R5,#0 MOV DE_NUM,#7 DJNZ R4,CDE1 POP A POP PSW RET

;*****转变成8位Octet码后在缓冲区中换位置程序**

第 49 页 共 56 页

CDE2: MOV R7,#7 MOV R6,#3 MOV R0,#AD7 MOV R1,#AD8 DE21: MOV A,@R1 MOV @R0,A INC R0

INC R1 DJNZ R7,DE21 INC R1

DJNZ R6,DE21 RET ;*****发送\命令子程序****** SD0: MOV R7,#13 MOV DPTR,#DATA1 LCALL SEND RET

;*****发送\命令子程序****** SD1: MOV R7,#15 MOV DPTR,#DATA4 LCALL SEND RET

;*****发送\命令子程序****** SD2: MOV R7,#14 MOV DPTR,#DATA2 LCALL SEND RET

;*****发送\数据包\命令子程序****** SD3: MOV R7,#48 MOV DPTR,#DATA3 LCALL SEND

第 50 页 共 56 页

本文来源:https://www.bwwdw.com/article/7j45.html

Top