基于STC单片机的GPRS数据传输控制系统的设计.docx
- 文档编号:17349914
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:21
- 大小:587.47KB
基于STC单片机的GPRS数据传输控制系统的设计.docx
《基于STC单片机的GPRS数据传输控制系统的设计.docx》由会员分享,可在线阅读,更多相关《基于STC单片机的GPRS数据传输控制系统的设计.docx(21页珍藏版)》请在冰点文库上搜索。
基于STC单片机的GPRS数据传输控制系统的设计
基于单片机的GPRS数据传输控制系统设计
1.前言
随着信息技术和近代工业的发展,需要对很多数据进行实时采集、分析处理。
如何及时准确地获取信息显得越来越重要,然而对于一些设备设施分布地域广或是环境恶劣的场所,数据的采集、传输和控制相当复杂,不便于用传统方法实现集中控制和实时监测并且有线网络的架设受到种种限制,不利于现场处理信息。
传统的数据采集和传输设备既耗费大量的人力物力,又无法避免手工抄写和计算带来的差错,现有的一些数据传输方法如利用电话线、电力载波等存在着诸多的问题,如覆盖范围小,线路维护量大,电力载波上噪声污染致使通信不可靠等。
于是便要求将采集的数据通过GPRSR的无线网络通信传到远程的计算机上,远程监控终端仪器通过网络与计算机通信,以实现对现场数据的实时监控。
这样大大减少了数据采集、分析和处理的难度。
本课题基于STC单片机的GPRS数据传输系统的设计,是利用GPRS这种经济高效的分组数据技术实现即时数据的传输,他不但具有网络覆盖范围广,抗干扰能力强,通信速度快,误码率低等优点,而且用户只需在传输数据时按照流量进行付费,无需像电路交换方式那样对整个链路占用期间都付费,这样就大大降低了用户的使用费用,具有很大的发展前景。
因此,本课题是非常有意义的。
2.系统功能分析及设计要求
一个很好的呼叫系统,它的功能设计首先要符合用户的习惯,同时操作方便,易学,易用。
本系统应包括数据处理,存储,传输,控制,人机界面显示等功能。
对于一些设备设施分布地域广或是环境恶劣的场所,数据的采集、传输和控制相当复杂,不便于现场处理信息。
本系统的远程监控终端仪器可以通过GPRS无线网络与计算机通信,以实现对现场数据的实时监控。
这样大大减少了数据采集、分析和处理的难度。
考虑到相关工作人员可能有特殊的情况离开监控中心,设计时候要求若发生异常情况应通过短信报警通知相关负责人。
同时要求主机能够存储报警记录、即有历史报警记录。
考虑到同时采集不同类型的数据,例如现场浓度或温度,设计时要尽量配置多个通道以监控不同类型的数据。
整个电路要求以STC系列单片机为控制核心,以GPRS通信方式传输数据。
要求所设计方案可以用硬件实现,具有很高的应用价值,同时准确、可靠、简便可行、利于推广,可以将安装现场的情况实时快速的传递给监控平台,并在监控中心记录信息。
从而可以有效提高数据采集、分析和处理的效率,适应现代社会需求。
3.系统总体设计方案
3.1系统结构
图3.1系统结构图
系统结构图如图3.1所示,设计采用AT89C51单片机智能控制,此系列单片机具有1个时钟/机器周期8051,超强加密,高速高可靠,低功耗,价钱超低,并且强抗静电,强抗干扰等多项优点。
单片机是系统的核心,要完成数据处理,存储,传输,人机界面显示等功能。
这此功能的实现可用AT89C51系列单片机。
该单片机中包含中央处理器(CPU),程序存储器(FLASH),数据存储器(SRAM),定时/计数器,UART0/1串口,I/O接口,高速AD转换,SPI接口,PCA,看门狗及片内R/C振荡器和外部晶体振荡电路等模块。
STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所在单元模块,可称上一个片上系统。
设计采用MAX232芯片实现系统电路的电平转换。
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5V单电源供电。
MAX232符合所有的RS-232技术标准,片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压,典型供电电流5mA,功耗低,同时内部集成了2个RS-232C驱动器,高度集成片外只需4个电容即可工作。
其引脚主要分三个部分,第一部分是电荷泵电路,第二部分是数据转换通道,MAX232有两个数据转换通道,TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
3.2GPRS模块与系统的连接
图3.2GPRS模块连接图
GPRS模块连接图如图3.2所示,GPRS模块选用SIM300模块,它是一款GSM/GPRS无线模块。
模块接口简单、使用方便且功能强大。
它支持标准的AT命令及增强AT命令。
SIM300能够提供GPRS多信道类型多达10个,并支持四种GPRS编码方案。
模块与移动应用设备SIM300内部功能模块有:
键盘和SPI类型的LCD接口,方便用户开发自己应用设备;具有调试和数据输出两个串口;双音频通信,包含两个麦克风输入和两个话筒输出,由AT指令配置其工作模式。
GPRS模块采用3.3V电源供电,通过RS232串行接口与单片机实现通信连接。
4.主要应用器件及技术原理
4.1微处理器介绍
4.1.1AT89C51单片机的特点
(1)在系统可编程,可远程升级且小巧灵活、成本低、易于产品化。
能组装成各种智能式测控设备及智能仪器仪表。
(2)高速高可靠,超强加密,应用范围广。
单片机芯片本身强抗静电,强抗干扰,能适应各种恶劣的环境,功耗低。
这是其他系列单片机无法比拟的。
(3)易扩展,很容易构成各种规模的应用系统,控制功能强。
单片机的逻辑控制功能很强,指令系统有各种控制功能指令,可以对逻辑功能比较复杂的系统进行控制。
(4)具有通讯功能,可以很方便地实现多机和分布式控制,形成控制网络和远程控制。
正是由于STC系列单片机具有以上优点,所以成为本次毕业设计所选用的处理器。
4.1.2AT89C51单片机的结构
从工作原理上讲,单片机就是一种微型计算机,是一种“程序存储式”计算机。
它是在一块硅片上集成了中央处理器(CPU)、随机存储器(RAM)、程序存储器(ROM或EPROM)、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的计算机。
STC12C5A60S2系列单片机是宏晶科技的单时钟/机器周期(1t)的单片机。
STC12C5A60S2系列单片机是宏晶科技的单时钟/机器周期(1t)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250k/s),针对电机控制,强干扰场合。
同时,此系列单片机支持ISP(在系统可编程)和ICP(在应用可编程),无需专用编程器,无需专用仿真器。
可通过串口(P3.1/P3.2)直接下载用户程序,数秒即可完成硬件电路的程序烧录,高效可靠,且可反复烧写擦除多次,大大减少研究成本。
单片机的内部结构如下图所示:
图4.1AT89C51单片机的内部结构
4.2AT89C51单片机串行通信原理
4.2.1AT89C51单片机串行通信
AT89C51系列单片机是具有2个采用UART(UniversalAsynchronousReceiver/Transmitter)工作方式的全双工串行通信接口(串口1和串口2)。
每个串行口由2个数据缓冲器、一个移位寄存器、一个串行控制寄存器和一个波特率发生器等组成。
每个串行口的数据缓冲器由2个相互独立的接收、发送缓冲器构成,可以同时发送和接收数据。
发送缓冲器只能写入而不能读出,接收缓冲器只能读出而不能写入,因而两个缓冲器可以共用一个地址码。
STC系列单片机串行口1对应的硬件部分是RxD/P3.0(串行数据接收端)和TxD/P3.1(串行数据发送端)引脚,串行口2对应的硬件部分是RxD2和TxD2。
此系列单片机的串行通信口除了用作数据通信外,还可以构成一个或多个并行I/O口,或作串-并转换,或用于扩展串行外设。
本设计串行口采用工作方式一,用定时器一工作在方式2做为波特率发生器,为可变的10位异步通信接口方式。
发送或接收一帧信息,包括1个起始位0,8个数据位,1个奇偶校验位和1个停止位1。
图4.2是异步通信的字符帧格式:
图4.2异步通信字符帧格式
输出当CPU执行一条指令将数据写入发送缓冲SBUF时,就启动发送。
串行数据从TxD管脚输出,发送完一帧数据后,就由硬件置位TI。
输入在(REN)=1时,串行口采样RxD管脚,当采样到1至0的跳变时,确认是开始位0,就开始接收一帧数据。
只有当(RI)=0且停止位为1或者(SM2)=0时,停止位才进入RB8,8位数据才能进入接收寄存器,并由硬件置位中断标志RI;不然信息丢失。
所以在方式1接收时,应先用软件清零RI和SM2标志。
4.2.2单片机通信连接
本系统设计采用的是GPRS通信连接方式,GPRS是基于GMS提供的通用分组无线业务。
采用基于分组传输模式的无线IP技术,以一种有效的方式高速传送数据。
GPRS支持Internet上应用最广泛的TCP/IP协议和X.25协议,为网络终端分配动态的IP地址,通过GGSN接入Internet,用户可以直接访问Internet站点。
数据传输通过PDCH信道,具有很高的传输速率和更少的费用。
传输速率理论上最高达171.2kbit/s,具有永远在线和收费低廉的优点。
图4.3单片机的通信连接原理图
4.3GPRS通信原理
4.3.1GPRS介绍
GPRS是通用分组无线业务(GeneralPacketRadioService)的英文简称,是在现有GSM系统上发展出来的一种新的承载业务,目的是为GSM用户提供分组形式的数据业务。
GPRS采用与GSM同样的无线调制标准、同样的频带、同样的突发结构、同样的跳频规则以及同样的TDMA帧结构,这种新的分组数据信道与当前的电路交换的话音业务信道极其相似。
因此,现有的基站子系统(BSS)从一开始就可提供全面的GPRS覆盖。
GPRS允许用户在端到端分组转移模式下发送和接收数据,而不需要利用电路交换模式的网络资源。
从而提供了一种高效、低成本的无线分组数据业务。
特别适用于间断的、突发性的和频繁的、少量的数据传输,也适用于偶尔的大数据量传输。
GPRS理论带宽可达171.2Kbit/s,实际应用带宽大约在40-100Kbit/s,在此信道上提供TCP/IP连接,可以用于Internet连接、数据传输等应用[2]。
GPRS是一种新的移动数据通信业务,在移动用户和数据网络之间提供一种连接,给移动用户提供高速无线IP或X.25服务。
GPRS采用分组交换技术,每个用户可同时占用多个无线信道,同一无线信道又可以由多个用户共享,资源被有效的利用,数据传输速率高达160Kbps。
使用GPRS技术实现数据分组发送和接收,用户永远在线且按流量计费,迅速降低了服务成本。
4.3.2串行通信总线标准及其接口连接
在单片机应用系统中,数据通信主要采用异步串行通信[6]。
在设计通信接口时,必须根据需要选择标准接口,并考虑传输介质、电平转换等问题。
采用标准接口后,能够方便地把单片机和外设、测量仪器等有机地连接起来,从而构成一个测控系统。
同样当我们需要单片机和PC机通信时,通常采用RS-232接口进行电平转换。
图4.4AT89C51单片机串口通信电路图
RS-232C是使用最早、应用最多的一种异步串行通信总线标准。
它是美国电子工业协会(EIA)1962年公布、1969年最后修定而成的。
其中RS表示RecommendedStandard,232是该标准的标识号,C表示最后一次修定。
RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备(DCE)之间的电气性能。
由于STC系列单片机本身有一个全双工的串行接口,因此该系列单片机用RS-232C串行接口总线非常方便。
RS-232C不能和TTL电平直接相连,使用时必须进行电平转换。
否则将使TTL电路烧坏,实际应用时必须注意。
4.3.3AT89C51单片机与GPRS通信
单片机将采集到的数据写入SBUF寄存器,经过MAX232电平转换后,将信号串行传输给GPRS模块SIM300[4]。
数据经SGSN封装后,SGSN通过GPRS骨干网与网关支持接点GGSN进行通信。
GGSN对分组数据进行相应的处理,再发送到监测中心。
监测中心帧听到呼叫信息后,将呼叫记录录入管理系统,它记录呼叫时间,次数以及是否处理、处理结果。
图4.4为单片机的串口通信电路图。
5.系统硬件电路设计
5.1主机原理图
主机以AT89C51为控制核心。
主机原理图如图5.1所示。
图5.1主机原理图
5.2GPRS模块部分原理图
设计采用SIM300作为GPRS传输模块。
GPRS模块部分原理图如图5.2所示。
图5.2GPRS模块部分原理图
5.3晶振及系统复位电路
晶振电路如图5.3所示,XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。
内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。
晶振的频率可以在1MHz-24MHz内选择。
电容取30PF左右。
本系统采用内部方式,串行通信采用波特率9600,晶振选用22.1184MHz。
复位电路如图5.4所示,在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,芯片便循环复位。
复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。
当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。
图5.3晶振内部方式图5.4复位电路
5.4报警显示电路
报警显示电路如图5.5,此时单片机可以查询到该芯片的序列号,然后经计算得到相应的报警信息,然后通过无线通信传回给数据中心。
同样记录复位和查询电路设计是一样的原理。
图5.5报警显示电路
5.5液晶显示电路
随着单片机应用系统的复杂化及液晶显示技术的发展,LCD显示逐步代替了LED显示成为当前单片机应用系统中最常见的一种显示方式。
设计中显示模块采用带中文字库的HS12864-15液晶显示模块。
该模块是一种具有4位/8位并行、2线或3线串口多种接口方式工作,内部含有国家一级、二级简体中文字库的点阵图形液晶显示模块:
其显示分辩率为12864,内置8192个16*16点和128个16*8点ASCII字符集。
利用该模块灵活的接口方式和简单方便的操作指令,可构成全中文人机交互图形界面。
4*8行16*16点阵的汉字或16*4行16*8点阵的ASCII码字符,还可完成图形显示。
为保证单片机与LCD显示器能正常通信,LCD的数据线直接与单片机的P0口连接,采集外部数据信号用P1。
液晶显示模块串口接线图如下图所示:
图中BLK与BLA之间10K可调电阻,用于调节液晶显示亮度。
图5.6单片机控制液晶显示电路图
6.系统软件设计
6.1系统软件流程图
系统软件程序流程图如图6.1所示,首先系统对PPP连接所使用的物理串口进行初始化,然后,GPRS模块直接使用AT指令请求GPRS服务,拨号到中国移动的GPRS节点服务器(GGSN)。
若拨号成功,就与网络协商PPP协议,包括确定用于PPP连接的串行端口号以及通信波特率等相关问题。
若协商成功就建立数传链路开始传输数据。
反之,则返回上一步,重新开始拨号任务并建立数传链路。
如此循环直至数据成功传送。
图6.1系统软件程序流程图
6.2系统软件设计
系统软件设计即在开发环境准备好的基础上进行应用程序的编写,包括完成上位机监控中心的程序设计,GPRS无线网络连接,界面显示程序等。
6.2.1上位机监控中心的设计
监控中心的功能是GPRS信息的接收和保存。
设计语言采用Microsoft公司的VisualC编程语言。
VisualC语言应用灵活,功能强大,对网络编程和数据库有强大的支持。
通过GPRS,监控平台可以直接访问互联网,所以监控平台并不需要设置GPRS模块。
中心只需要通过中心软件帧听网络,接收GPRS无线模块传来的UDP协议的IP数据包和发送上位机控制信息,以实现与GPRS终端的IP协议通信。
接收到信息要保存到中心数据库中,以备查询历史记录。
数据库采用Access,VC编制的界面窗口通过AD0访问Access中的数据。
6.2.2GPRS网络连接
GPRS网络连接[1]任务主要是完成通过GPRS网络建立与上位机的数据传输链路的过程。
启动SIM300后,首先,需对PPP连接所使用的物理串口进行初始化,包括确定用于PPP连接的串行端口号以及通信波特率。
然后,直接使用AT指令,拨号到中国移动的GPRS节点服务器(GGSN)。
使用以下几条灯指令使SIM300进入数据通讯状态:
“AT+CGATT?
”用于查询SIM300是否已附着于中国移动的GPRS网络,SIM300将返回当前状态;
“AT+CGATT=1”用于设置SIM300附着于中国移动的GPRS网络,操作成功SIM300将返回OK;
“AT,+CGDCONT=1”,“IP”,“CMNET”用于设置中国移动的GPRS节点服务器的名称和属性,操作成功则返回OK;
“AT%ETCPIP”用于实现PDA激活和TCP/IP的初始化,使模块进入TCP/IP功能,操作成功则返回OK;
“AT%IOMODE=0,2,0”设置数据传输模式,操作成功则返回OK;
“AT%IPOPEN=1,"TCP","115.24.116.19",5000,,1026”打开一条TCP/IP链路,选择TCP传输,115.24.116.19是上位机的IP地址,5000为上位机接受程序端口号,成功与上位机连接返回CONNECT。
另外模块还具有数据透传功能,数据透明传输功能将实现TCP/IP上直接数据传输,进入透传模式的AT指令是:
“AT%TPS=1,1,3000,1024”,进入透传模式后模块将不会相应其它AT指令,直接通过串口写入数据便可实现与上位机之间的数据传输。
以上使模块附着在GPRS网络的过程封装在gprsConnect()函数中。
PPP配置,认证通过以后,即应用程序就已经通过SIM300成功进入了Internet网络。
最后,通过变量GPRSOK=1指示GPRS拨号成功并建立数传状态。
在run()程序中隔一段时间判断当前网络连接状态,若网络断开则变量GPRSOK=0,并调用gprsConnect()函数开始拨号任务重新建立数传链路。
6.2.3界面显示模块
界面显示由两部分组成,一是实时显示各模块的采集数据及一定时间以内的历史数据;二是显示GPRS模块设置界面,通过这个界面设置串口参数、设置数据采集时间间隔、设置主机IP地址及端口号、发送AT指令、回显模块返回信息等。
编写界面设计文件,其中串口参数设置、网络连接和GPRS数据传输封装成相应的子函数。
当捕捉到相应的信号来便执行对应的函数。
SPI模块接收底层数据采集模块的各种数据,显示到界面并编码通过GPRS通道传输到上位机,GPRS返回的一些重要信息也需显示到LCD界面上。
6.2.4报警信息
voidbaojing()//报警程序
{
uinti,j;
for(j=0;j<12;j++)
{
for(i=0;i<10;i++)
{
P22=1;
delay_ms(1.2);
P22=0;
delay_ms(1.2);
}
for(i=0;i<10;i++)
{
P22=1;
delay_ms
(2);
P22=0;
delay_ms
(2);
}
}
}
当出现异常情况时,单片机提取不同的输入信号,进行相应的软件操作,发送报警短信,并记录报警事件。
系统允许查询已发生过任意时间段的报警信息,通过设置开始和结束日期来确定时间段,能准确反映出报警时间、所属站点、报警值、实际值等信息,方便对异常站点的追踪和维护。
报警信息反应输出在发光二极管上。
在无报警事件时,响应上位机的数据召唤。
也可以通过控制循环的次数来控制报警提示的次数和长短。
6.2.5历史记录存储
在监测平台的上位机主程序中定义一个store数组,存储空间大小为N个存储单元,数组初值都是液晶管显示数据“0”。
上位机中只要接到呼叫信号就存储起来,数组采取循环存储,最多一次可以存储呼叫记录可以自己设置,超过部分将依次覆盖前面的历史记录。
系统允许查询任意点的历史数据,让用户能轻松了解历史状态。
当有异常发生过可以根据历史数据找到异常发生的准确时间和可能原因,使监测点的维护变的更简单方便。
历史数据查询可以选择起始、截至时间和每两个数据之间的时差(步长),并可以精确到一天中的几点,让你能准确查询到任意一时间段的历史数据。
7.程序烧录与仿真
仿真调试首先需要在电脑上安装虚拟串口软件,然后用串口辅助仿真工具进行仿真,具体可以用串口软件向终端发送呼叫信号,查看终端的接受情况,以此来检查终端的系统性能。
以下是具体的程序烧录步骤[10]:
1.选择你的使用的单片机型号,如此系统用的就是AT89C51;
2.打开文件,要烧录用户程序,必须调入用户的程序代码(*.hex,*.bin);
3.选择串行口,你所使用的电脑串行口,如串行口1--COM1,串行口2--COM2,……
4.选择“Download/下载”按钮下载用户的程序进单片机内部,可重复执行。
下载时注意看提示,主要看是否要给单片机上电或复位,下载速度比一般通用编程器快。
一定要先选择“Download/下载”按钮,然后再给单片机上电复位(先彻底断电),而不要先上电,先上电,检测不到合法的下载命令流,单片机就直接跑用户程序了。
图7.1AT89C51单片机的在系统编程
关于硬件连接:
1.MCU/单片机RXD(P3.0)---RS-232转换器--PC/电脑TXD(COMPortPin3)
2.MCU/单片机TXD(P3.1)---RS-232转换器--PC/电脑RXD(COMPortPin2)
3.MCU/单片机GND----RS-232转换器--PC/电脑GND(COMPortPin5)
4.RS-232转换器选用的是MAX232。
图7.1是AT89C51单片机的在系统编程界面,利用Keil软件,单片机在用户应用目标板上完成下载、烧录的示意图。
8.总结与展望
由于现代信息产业和科技水平的发展,对信息的实时性和监测的稳定性要求越来越高,形式也越来越多样化。
它要求高效率,高质量,高水平的服务,而本数据传输控制系统的实现可以很好的帮助分析、处理监测现场数据,减轻人员操作。
本系统设计时创新之处在于应用了ATC系列单片机片上系统控制,GPRS网络通信技术。
采用了主从机模式,方便用PC机根据不同情况自行配置监测条件,提高服务质量。
考虑到防盗问题,建议在智能终端内置GPS,通过GPS定位,时实掌握智能终端的地理位置信息。
同时还可以在系统内置RFID,帮助用户用手持终端进行设备管理。
总之本系统设计时,不仅考虑了当前主要问题,同时也考虑到以后扩展的问题,具有高瞻远瞩的眼光。
当然本系统也存在一定的问题,希望在以后的实际应用中能够不断发现问题并解决问题。
9.致谢
感谢所有传授我知识的老师,每一位老师的悉心教导都是我完成这篇论文的基础,都是我未来梦想实现的铺路人。
特别是我的论文指导老师王老师一直以来的鼓励和支持。
王老师待人谦和,致学严谨,真负责地给予我深刻而细致的指导,启发了我的学习爱好和兴趣,培养了我较强的动手能力。
让我在专业知识方面有了极大的进步,亦让我在以后的人生道路上越来越自信。
10.参考文献
[1].陈曦,李玲.基于ARM和GPRS的远程监测终端设计.[J].电子技术工程.2012年2期
[2].文艺,迟永
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC 单片机 GPRS 数据传输 控制系统 设计