基于GPRS数据监控采集终端的实现毕业论文.doc

上传人:小小飞 文档编号:3920350 上传时间:2019-10-10 格式:DOC 页数:41 大小:638KB
返回 下载 相关 举报
基于GPRS数据监控采集终端的实现毕业论文.doc_第1页
第1页 / 共41页
基于GPRS数据监控采集终端的实现毕业论文.doc_第2页
第2页 / 共41页
基于GPRS数据监控采集终端的实现毕业论文.doc_第3页
第3页 / 共41页
基于GPRS数据监控采集终端的实现毕业论文.doc_第4页
第4页 / 共41页
基于GPRS数据监控采集终端的实现毕业论文.doc_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《基于GPRS数据监控采集终端的实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于GPRS数据监控采集终端的实现毕业论文.doc(41页珍藏版)》请在三一文库上搜索。

1、基于GPRS数据监控采集终端的实现内容摘要:提出了一种从PLC中实时读取数据, 传送给上位计算机,实现无线通讯的墙体外表面数据采集系统的设计。设计中从实际情况出发,选用了工作稳定可靠的无线通讯芯片和先进的温/湿度传感器, 工作子站选用MSP430F149作为处理芯片,采用SHTlX系列中的SHT10传感器用于现场的实时温/湿度数据采集。并将所采集的数据发送给GPRS(通用分组无线业务)无线传输模块,GPRS传输模块再将数据以无线方式发送到数据采集服务器。上位机监控程序采用java程序进行编写,调用功能强大的串口通讯API-javacomm20-win32。关键词:数据采集 无线数据传输技术 上

2、位机 Implementation of terminal monitoring data acquisition based on GPRSThis paper proposed one kind of wall outside surface data acquisition systems design which is from PLC real-time read data andtransmits for the superior computer, realizing the wireless communication .The design embarks from the

3、actual situation, selecting the wireless communication chip of stability andreliability and the advanced temperature or humidity sensor.The sub-station is select ed for MSP430F149 to take the processing chip, and used the SHT10 of SHT1X series to acquire the real-time temperature/humidity data and s

4、end the data to the GPRS wireless transmission module, and then it transmits again the data by the wireless way to the data acquisition server. The monitor routine of superior machine uses the java procedure to be compiled,by transferring formidable serial port communication API fuction javacomm20-w

5、in32.Keywords:collecting data The wireless data transmission technology wireless communication superior machine 目 录前言11 GPRS11.1 GPRS的应用与发展11.2 GPRS的技术优势22 单片机的数据采集系统的设计22.1控制芯片的选择22.2温度传感器的方案32.3电压采集方案33 系统硬件电路设计33.1 单片机C8051F120最小系统33.1.1 使用单片机的介绍43.1.2 单片机外部时钟电路43.1.3 电平转换电路的设计53.2 GPRS的工作原理及其模块电

6、路63.2.1 GPRS的工作原理63.2.2 GPRS数据传输单元的工作流程73.2.3 华为GTM900C功能模块介绍73.2.4 GPRS模块的电路84 系统软件设计114.1 主程序流程图114.2 数据采集部分程序设计124.2.1 温度数据采集的程序设计124.2.2 电压数据的采集的程序设计164.3 GPRS数据传输部分的程序设计184.3.1 串行口通信的数据传输184.3.2 简单的AT指令介绍204.3.3 GPRS数据传输程序设计214.4 基于LabVIEW的上位机软件的设计27结束语31附 录33附录1:数据采集部分电路图33附录2:GPRS模块电路图34参考文献3

7、5VI基于GPRS数据监控采集终端的实现前言随着Internet应用的日益普及,信息共享的程度不断提高,网络在人们日常生活和工作中扮演的角色越来越重要,已经成为人们生活,工作中不可缺少的部分。本设计主要是通过研究GPRS无线网络的数据监控采集终端的实现原理和方法,将基于ARM7内核的嵌入式系统和GPRS网络结合起来,利用GPRS网络实现无线数据传输。该系统可以同时实现多路数据的采集,以便对现场环境进行分布式,网络化的采集与监控,可应用于大气与水质环境监测等领域。现在日常生活中的应用系统,大多采用的是单片机或微控制器系统。通称嵌入式系统。嵌入式系统由于其体积小成本低,开发方便,技术成熟等特点已经

8、在民用和工业等许多领域得到了广泛的应用。但是,目前大多数嵌入式的数据传输系统功能十分有限。以单片机作为控制器的核心,与一些监测、伺服、指示等设备配合实现一定的功能。网络应用最重要的目标之一就是进行多媒体通信。多媒体信息主要包括图像、声音和文本三大类,其中视频、音频等信号的信息量是非常大的。而且这些信息的表达方式、输入、输出的要求也各不相同,因此,在多媒体通信中,对这些数据进行有效的表达和适当处理非常重要。为了满足多媒体通信对带宽的需求,无线通信网络不约而同地将网络传输速率作为其性能参数中的关键指标。从GPRS投入商用以来在各个领域得到了广泛的应用,本文就是对其在数据监控采集领域的实现进行研究。

9、1 GPRS1.1 GPRS的应用与发展GPRS技术现在己经十分成熟,目前全世界很多运营商开通了GPRS商用系统、试商用系统或实验系统。国际上有名的大型电信设备制造厂商也都在积极开发GPRS的相关产品,提出了一系列的解决方案,世界各地的移动网络运营商也纷纷响应,配合电信设备制造厂商提供了大量的GPRS服务区。GPRS可提供以下一系列交互式业务:点对点无连接型网络业务(TPCLNS);点对点面向连接的数据业务(PTPCONS);点对多点业务(PTM)。GPRS还能支持用户终端业务、补充业务、GSM短消息业务和各种GPRS电信业务。总之,GPRS可提供网上冲浪、Email、文件传输、数据库查询、增

10、强型短消息等业务;可应用于运输业、金融、证券、商业和公共安全业;PTM业务支持股市动态、天气预报、交通信息等实时发布;另外,还能提供种类繁多、功能强大的以GPRS承载业务为基础的网络应用业务和基于WAP的各种应用。利用GPRS进行数据传输具有很多优点例如费用低廉,GPRS网络按照客户收发数据包的数据流量来收费,而不是采用SMS的按短信条数的方式收费,极大地降低了通信使用费用。永远在线,客户随时都与网络保持联系,即使没有数据传送时,客户仍然在网上,与网络之间还保持一种连接。1.2 GPRS的技术优势利用GPRS进行数据传输具有很多优点,主要如下:1费用低廉,GPRS网络按照客户收发数据包的数据流

11、量来收费,而不是采用SMS的按短信条数的方式收费,极大地降低了通信使用费用;2永远在线,客户随时都与网络保持联系,即使没有数据传送时,客户仍然在网上,与网络之间还保持一种连接;3快速登录,连接时间很快,GPRS无线终端一开机,就已经与GPRS网络建立了连接,每次登录网络,只需要一个激活过程,一般仅需1到3秒;4高速传输,由于GPRS网络采取了先进的分组交换技术,数据传输最高理论值可达171.2kb/s,实际使用中一般能达到2040kb/s;5组网灵活,中国移动的GPRS网络覆盖面广,可在全国漫游而不增加额外费用,适合用户以低成本方式在短时间内组建自己的跨区域性数据网络;2 单片机的数据采集系统

12、的设计单片机数据采集系统的设计是本课题设计的最基础的部分,该部分得到的数据是GPRS数据传输的来源。这部分的研究重点是实现一定精度的数据采集,这里的数据可以是电压、温度以及压力等等,考虑到系统研究的主要内容是数据的传输部分。本课题在这部分采集的数据选择了比较容易实现的电压和温度数据。2.1控制芯片的选择控制芯片对一个系统的设计来说是至关重要的,控制芯片的选择决定了一个系统的运行速度以及程序的稳定性等性能。使用常用的STC89C52单片机作为本系统的控制核心。2.2温度传感器的方案利用热敏电阻的热敏效应,通过采集热敏电阻两端的电压变化计算出热敏电阻阻值的变化。进而通过热敏电阻阻值与温度之间的关系

13、计算出当前工业现场的温度。热敏电阻对环境温度敏感度很高,而且热敏电阻价格比温度传感器要便宜得多,但是热敏电阻对环境温度的变化并不是呈正比的。要得到准确的温度值需要耗费大量的单片机资源,且实际操作起来不易实现,所以本课题不采用此方案。2.3电压采集方案使用常见的集成8路的8位A/D转换器ADC0809。3 系统硬件电路设计整个基于GPRS的数据采集系统的硬件部分包括C8051F120的最小系统、数据采集模块、电平转换模块和GPRS模块几个部分电路。该系统的原理框图如图3-1所示。图3-1 系统硬件电路框图3.1 单片机C8051F120最小系统单片机是数据采集部分和GPRS控制电路的控制核心。单

14、片机最小系统指的是单片机正常工作的最小单元,是能使一个单片机正常工作的最小单元。本系统采用了Silicon Lab公司生产的C8051F120单片机。C8051F120单片机内部含有高速、流水线结构的8051 兼容的CIP-51内核,运行速度最高可达100MHz,是一种高性能的单片机。用于工业控制可以提高系统的性能。3.1.1 使用单片机的介绍C8051F120是完全集成的混合信号片上系统型MCU芯片,100引脚TQFP封装。在运行速度方面,C8051F120单片机是拥有流水线结构的高速CIP-51内核,与8051内核完全兼容,其流水线结构使得该单片机的指令周期与时钟周期相同。而片内集成的锁相

15、环(PLL)电路使得其最高运行速度可达100MHz,这可以在很大程度上提高系统的运行速度和灵敏度。在系统调试方面,C8051F120拥有全速、非侵入式的在系统调试接口,其JTAG接口使得其可以在系统调试,与传统的8051单片机通过不断烧写程序调试系统的方式相比具有很大的优势。这个特点可以明显的缩短系统的开发周期。在集成片内资源方面,C8051F120单片机在片内集成了一个ADC0电压转换单元,ADC0具有真正12位工作速度为100KHz的高速A/D转换器,并且含有增益放大器和一个8路通道模拟多路开关,这使得单片机可以测得8路不通模拟输入电压。除此之外,C8051F120单片机还有两个UART串

16、行接口和5个通用的16位定时器。在存储空间方面,C8051F120单片机含有128KB的可在系统编程的FLASH存储器和8448(8K+256)字节的片内RAM。这使得C8051F120单片机更适合于较大系统的开发。另外,C8051F120单片机还增加了一些其他的功能和一些关键性的改进。在中断功能方面,C8051F120将中断源扩展至20个。允许大量的模拟和数字外设中断微控制器。中断系统的运行需要更少的MCU干预,所以中断源的增加对于多任务实时系统的设计来说是很重要的。C8051F120还有多达7个中断源,且内部有一个基频为24.5 MHz的振荡器,可以使单片机在没有外部时钟的情况下也可以正常

17、工作。3.1.2 单片机外部时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,时钟频率直接影响单片机的运行速度,时钟电路相当于单片机的心脏。虽然C8051F120单片机集成了一个基频为24.5MHz的内部振荡器,但是24.5MHz的系统时钟不能产生无误差的标准波特率。然而在本课题中单片机与GPRS模块要用到串行口的通信方式,为了产生无误差的标准波特率,本课题选用了22.1184 MHz的外部时钟作为系统的时钟基准。这个时钟基准就是依靠单片机的外部时钟电路实现的。C8051F120单片机内部含有一个外部振荡器驱动电路。外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或RC网络。也可以使用一

18、个外部CMOS时钟提供系统时钟。对于晶体和陶瓷谐振器配置,晶体/陶瓷谐振器必须并接到XTAL1和XTAL2引脚。需要注意的是晶体振荡器电路对PCB布局非常敏感,在实际设计中应将晶体尽可能的靠近XTAL管脚。引线应尽可能地短并用地平面屏蔽,防止从其它引线引入噪声或干扰。本系统的外部时钟电路如图3.2所示。其中,电容的作用是帮助晶体起振,其典型值为33pF。图3-2 DS18B20与单片机的接口电路3.1.3 电平转换电路的设计串行通信是单片机与PC机之间的一种重要的通信方式。由于单片机系统与PC机系统的电平定义有很大的差别,若想实现它们之间的通信必须要经过一定的协议实现它们之间的电平转换。而最经

19、常使用的协议就是RS232协议,这个协议一般可以通过由电平转换芯片MAX232及其外围电路组成的电平转换电路实现。然而本系统所使用的单片机C8051F120的工作电源是3.3V,而MAX232的工作电源是5V,所以本系统选用工作电压为3.0V到5.5V的SP3223E。SP3223E是RS232收发器对便携式或手持式应用如笔记本或掌上型电脑的一种解决方案。它可以在+3.3V到+5.0V 内的某个电压下发送符合RS-232的信号。本系统的实现虽然并没有涉及到单片机与PC机的直接通信,但是在系统的开发调试过程中不可避免的要利用单片机与PC机的串口通信。电平转换电路的电路图如图3.10所示。图3-3

20、 串口电路电路图3.2 GPRS的工作原理及其模块电路GPRS模块是实现基于GPRS数据传输的核心,从以下几个部分对其进行详细介绍。3.2.1 GPRS的工作原理GPRS是在GSM系统上发展出来的一种新的承载业务,采用与GSM相同的无线调制标准,同样的频带,同样的突发结构,同样的跳频规则以及同样的TDMA帧结构,因此GPRS网络是在GSM电话网的基础上增加以下功能实体构成的:SGSN(服务GPRS支持节点)、GGSN(网关GPRS支持节点),PTMSC(点对多点服务中心);共用GSM基站,但基站要进行软件更新;采用新的GPRS移动台;GPRS要增加新的移动性管理程序;通过路由器实现GPRS骨干

21、网互联;GSM网络系统要进行软件更新和增加新的MAP信令和GPRS信令等。监控中心处于Internet中可以被分配到一个固定的IP地址,但移动终端处于GPRS网络中,是没有固定IP地址的,要使得移动终端和监控中心建立关联,就必须由移动终端发起连接,连接成功后由GGSN为其分配一个动态的IP地址。那么怎样才能发起连接,然后得到一个IP地址呢?要和GPRS建立连接,就必须遵守有关协议。GPRS网络中的传输协议是PPP,属于TCP/IP协议模型中的数据链路层。在实际使用中,只要在监控中心的服务器上设定一个监听端口,配合上位机软件就可以通过GPRS模块向服务器发出连接申请就可以建立TCP连接。进而实现

22、数据的GPRS传输。3.2.2 GPRS数据传输单元的工作流程GPRS数据传输单元(简称GPRS DTU)上电后,首先读出内部FLASH中保存的工作参数(包括GPRS拨号参数,串口波特率,数据中心IP地址等等,事先已经配置好)。然后,GPRS DTU登陆GSM网络,进行GPRS PPP拨号。拨号成功后,GPRS DTU将获得一个由移动随机分配的内部IP地址。也就是说,GPRS DTU处于移动内网中,而且其内网IP地址通常是不固定的,随着每次拨号而变化。我们可以理解为GPRS DTU这时是一个移动内部局域网内的设备,通过移动网关来实现与外部Internet公网的通信。这与局域网内的电脑通过网关访

23、问外部网络的方式相似。GPRS DTU主动发起与数据中心的通信连接,并保持通信连接一直存在。由于GPRS DTU处于移动内网,而且IP地址不固定。因此,只能由GPRS DTU主动连接数据中心,而不能由数据中心主动连接GPRS DTU。这就要求数据中心具备固定的公网IP地址或固定的域名。数据中心的公网IP地址或固定的域名作为参数存储在GPRS DTU内,以便GPRS DTU一旦上电拨号成功,就可以主动连接到数据中心。具体地讲,GPRS DTU通过数据中心的IP地址(如果是采用中心域名的话,先通过中心域名解析出中心IP地址)以及端口号等参数,向数据中心发起TCP或UDP通信请求。在得到中心的响应后

24、,GPRS DTU即认为与中心握手成功,然后就保持这个通信连接一直存在,如果通信连接中断,GPRS DTU将立即重新与中心握手。由于TCP/UDP通信连接已经建立,就可以进行数据双向通信了。对于DTU来说,只要建立了与数据中心的双向通信,完成用户串口数据与GPRS网络数据包的转换就相对简单了。一旦接收到用户的串口数据,DTU就立即把串口数据封装在一个TCP/UDP包里,发送给数据中心。反之,当DTU收到数据中心发来的TCP/UDP包时,从中取出数据内容,立即通过串口发送给用户设备。通过有线的数据采集中心,同时与很多个GPRS DTU进行双向通信。这是目前GPRS DTU应用系统中最为常用的方式

25、。3.2.3 华为GTM900C功能模块介绍本系统选用的GPRS模块是华为公司生产的GTM900C无线模块。华为GTM900C无线模块是一款双频段的GSM/GPRS无线模块。它支持标准的AT命令及增强的AT命令。提供丰富的语音和数据业务等功能,是高速数据传输等各种应用的理想解决方案。GTM900C使用AT指令集,通过UART接口与外部CPU进行通信,主要实现无线发送和接收、基带处理、音频处理等功能。GTM900C的逻辑框图如图3.11所示。3-4 GTM900C的逻辑框图3.2.4 GPRS模块的电路GPRS模块部分的电路分为四个部分:供电电源电路,串行通信电路,SIM卡外围电路以及GTM90

26、0C外围电路。其中串行通行电路与单片机系统的串行通行电路一样就不再介绍了。下面分别其他几个电路模块进行介绍。(1)供电电源电路本系统GPRS部分的供电系统和其他系统的供电电源部分大同小异,图3.12给出了本系统GPRS部分的供电电源电路。对于其各部分功能不再详细的给出。只不过稳压芯片换用了性能更好的LM2576。图3-5 GPRS部分的供电电路(2)SIM卡外围电路在本系统的工作工程中使用了移动通信公司提供的GPRS业务,要使用该项业务就要用到移动公司的SIM卡。SIM卡外围电路如图3.13所示。图3-6 SIM卡外围电路电路图(3)GTM900C外围电路GTM900C是华为公司生产的一款双频

27、GSM/GPRS无线通信模块。下面对其进行简要的介绍。GTM900C模块一共有40个信号连接口,其各信号连接口的功能如表3-1所示。表3-1 GTM900C信号功能表序号信号名称功能序号信号名称功能1Batt+供电21UART_RTS0请求发送2Batt+供电22UART_DTR0数据设备准备就绪3Batt+供电23UART_DCD0载波检测4Batt+供电24SIM_CDSIM 卡在位信号5Batt+供电25SIM_RSTSIM 卡复位信号6GND工作地26SIM_DATASIM 卡数据传输接口7GND工作地27SIM_CLKSIM 卡时钟信号8GND工作地28SIM_VCCSIM 卡供电信

28、号9GND工作地29SIM_GNDSIM 卡的接地信号10GND工作地30Vbackup备份电池供电信号11RXD1接受数据31RST复位信号12TXD1发送数据32LPG指示灯状态控制信号13VDD模块正常启动指示信号33AUXO+第二路音频输出信号表3-1 GTM900C信号功能表序号信号名称功能序号信号名称功能14ADC模拟数字采样34AUXO-第二路音频输出信号15POWN信号开/关机控制信号35EAR+第一路音频输出信号16UART_DSR0数据设备准备就绪36EAR-第一路音频输出信号17UART_RI0振铃指示37MIC+第一路音频输入信号18UART_RXD0接收数据38MIC

29、-第一路音频输入信号19UART_TXD0发送数据39AUXI+第二路音频输入信号20UART_CTS0清除发送40AUXI-第二路音频输入信号根据表3-1中每个信号的功能,设计出GPRS模块的电路,其电路图如图3-14所示。图3-7 GTM900C的外围电路电路图其中需要说明的有以下几点:(1)触发点火信号端IGT, 用OC门或者一个简单的开关拉低该端电平来开启模块,低电平有效。在空闲/通话/关机模式:Vout = 2.0V,Vlow,max = 0.45V Iout = 10礎,tlow 100ms。对于点火信号IGT的处理,需要首先拉低该引脚的电平到地,并至少维持100ms。 注意,如果

30、通过充电回路(接到POWER引脚)供电,或者通过电池供电(接到VBATT+引脚),那么IGT信号必须维持至少1秒。(2)SYNC引脚可以用来输出一个同步信号(synchronization signal),也可以在应用使来控制一个LED2灯的输出状态。SYNC端通过一个三极管或门电路来控制LED2。一个简单的电路接法是:SYNC端通过电阻接到NPN三极管(如9013)的基极,射极接地,集电极通过一个限流电阻接到LED2的负端,LED2的正端接VCC。LED2的工作模式完全类同于同步信号,显示的是GTM900C的工作状态:(1)LED2灯灭,表示GTM900C电源关闭,处于休眠、报警或单纯的充电

31、模式 (2)600 ms 亮 / 600ms 灭,表示未插入SIM卡,或者个人身份未登记/已注销,或者网络正在搜寻中,或者正在进行用户身份鉴定,或者网络注册正在进行中 (3)75ms 亮 / 3s 灭,表示网络注册成功(控制通道和用户交换信息完成),无来电 (4)LED2灯亮,依据不同的呼叫类型:声音呼叫,数据呼叫,在建立或者完毕时的状态。4 系统软件设计系统软件部分的设计包括基于单片机的程序设计和基于LabVIEW的上位机软件设计。基于单片机的程序设计又包括数据采集部分和GPRS数据传输两个部分。所以系统软件设计包括数据采集部分程序设计、GPRS数据传输部分程序设计和上位机软件程序设计三个部

32、分。4.1 主程序流程图图4-1是主程序的程序流程图。开始关闭看门狗系统时钟初始化UART0初始化ADC0初始化DS18B20初始化GPRS模块初始化两路温度数据采集两路温度数据传送八路电压数据采集八路电压数据传送图4-1主程序流程图主程序决定了系统的框架,系统所要实现的各种功能都需要通过主程序实现。本系统的主程序包括了系统初始化、数据采集和传输等系统功能。系统的初始化设置系统各组建的工作方式,包含UART0初始化、ADC0初始化、定时器初始化、温度传感器初始化等。数据采集和传输包括温度和电压数据的采集和传输4.2 数据采集部分程序设计本系统中,数据采集包括两路温度数据和八路电压数据的采集。温

33、度数据的采集是通过支持单线总线协议的数字温度传感器DS18B20来实现的,八路电压数据的采集则是通过C8051F120集成的8路12位精度A/D转换器实现的。这一部分主要对这两类数据采集的程序设计做出相应的介绍。4.2.1 温度数据采集的程序设计DS18B20是基于单线总线的数字温度传感器,总线控制器连接在DS18B20的DQ管脚上,控制器所有的读写操作都是通过该管脚实现的。DS18B20还有一个64位的光刻ROM,每一个DS18B20出厂时都有一个唯一的序列号,这个唯一的序列号就存储于这个64位的ROM存储器中。在实现多路温度采集的系统中,可以把所有的DS18B20挂在同一条线上。总线控制器

34、就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍。由于DS18B20只有一根数据线与总线控制器相连接,当总线控制器需要对进行读写字节操作时必须对其逐位

35、的读取或写入。根有的DS18B20挂在同一条线上。总线控制器就是通过它们的ROM中存储的唯一的序可以把所有的DS18B20挂在同一条线上。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计

36、中最重要的就是读写和复位操作,下面分别对其进行介绍在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍由于该器件是基于单线总线的,所有的读列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵据其芯片手册,器件的读和写都是从低位到高位逐位进行的。由于读字节的时序和写字节的相似,限于篇幅这里只给出读字节的程序流程图。读字节的程序流程图如图4-2所示。图4-2 读字节子程序的程序流程图在多路温度采集系统中,一条总线控制器上可以挂上无数的DS18B20器件。单线总线控制器要依靠器件的唯一序列号才能识别出特定的器件

37、。所以,读取器件序列号必须在温度采集之前进行。读取器件序列号有两种方法:(1)在总线控制器上逐个的挂上DS18B20器件,然后读取并记录其ROM信息。(2)同时挂上所有的器件,通过广播和排除的方法读取器件的序列号。考虑到第二种方案程序的复杂性,本课题采用了第一种方案。图4-3给出了读取DS18B20序列号的程序流程图。图4-3 两路温度采集的程序流程图读出DS18B20的序列号之后就可以利用读得的序列号逐一的进行温度采集了。要采集制定地点的温度,只要通过总线控制器将指定地点温度传感器件的序列号写入单线总线等待指定器件的响应然后再做其他相关操作就可以了。基于单线总线的数据采集的一般工作过程如下,

38、首先对在挂在总线控制器上的所有温度传感器件进行复位操作,等待器件响应。如果器件复位成功,就可以发出匹配ROM指令(0x55),该指令发出后总线控制器上的DS18B20就处于等待匹配序列号的状态。这时总线控制器就可以发送64位序列号。挂在总线上的温度传感器件就会把收到的序列号与自己的序列号相匹配,如果匹配成功该器件就可以继续响应总线控制器的指令。然后总线控制器就可以发送启动温度转换或者读取温度的指令。然后把所读得的数据通过数据转换就可以得到该地点的环境温度。该系统的温度采集系统是两路的,图4-4就给出温度采集的程序流程图。图4-4温度采集的程序流程图4.2.2 电压数据的采集的程序设计C8051

39、F120片内集成了8路12位精度的A/D转换器,其入口在18-25管脚。对于A/D转换的工作流程在3.1.5已经做过详细的介绍。下面主要介绍A/D转换的程序设计。对于片内集成的A/D转换器,只需要对单片机相关的寄存器做出合理的配置就可以了。字符串处理子函数主要功能是处理串行口接收到的字符串,使接收到的字符串更容易辨别。由于GPRS模块返回到单片机串口的数据含有一些不可显示字符,如果想从接收的字符串中提取出有用信息就要对接收到的字符串做一定的处理。字符串处理子函数的程序流程图如图4-9所示。由于GPRS模块返回的数据总是以回车符和换行符结束,所以在字符串处理模块中就要以回车符和换行符为界限,把G

40、PRS模块的返回数据分为几个字符串分别存放在不同的数组里,在需要使用时直接从相应的字符串数组中取出需要的数据即可。根据GPRS模块AT指令手册,GPRS模块返回的数据最多有两个换行符,所以在字符串处理子函数中只需要两个存储字符串的数组Rec_temp1和 Rec_temp2就行了。在本课题中,ADC0是通过向ADC0BUSY位写1触发的。在A/D转换过程中,先选定一个通道设置好AD转换的数据存储方式,然后在需要的时候想ADC0BUSY位写入1触发ADC0进行A/D转换然后等待AD0INT位(数据转换结束标志位)置1。AD0INT置1后进行数据处理,输出电压数据然后改变A/D转换的通道进行下一路

41、的电压数据采集。还有一点需要说明的是,电压数据转换结束后ADC0存储的电压数据有左对齐和右对齐两种格式。这两种格式是通过ADC0控制寄存器ADC0CN的最低位AD0LJST设置的。当ADC0LJST为1时,ADC0H:ADC0L寄存器数据左对齐。当ADC0LJST为0时,ADC0H:ADC0L寄存器数据右对齐。字符串处理子函数主要功能是处理串行口接收到的字符串,使接收到的字符串更容易辨别。由于GPRS模块返回到单片机串口的数据含有一些不可显示字符,如果想从接收的字符串中提取出有用信息就要对接收到的字符串做一定的处理。字符串处理子函数。还有一点需要说明的是,电压数据转换结束后ADC0存储的电压数

42、据有左对齐和右对齐两种格式。这两种格式是通过由于GPRS模块返回的数据总是以回车符和换行符结束,所以在字符串处理模块中就要以回车符和换行符为界限,把GPRS模块的返回数据分为几个字符串分别存放在不同的数组里,在需要使用时直接从相应的字符串数组中取出需要的数据即可。于GPRS模块返回到单片机串口的数据含有一些不可显示字符根据GPRS模块AT指令手册,GPRS模块返回的数据最多有两个换行符,所以在字符串处理子函数中只需要两个存储字符串的数组Rec_temp1和 Rec_temp2就行了。电压数据采集的程序流程图如图4-5所示。图4-5 电压数据采集的程序流程图4.3 GPRS数据传输部分的程序设计

43、GPRS的数据传输是通过单片机对GPRS模块的控制实现的,单片机与GPRS模块经过串行口进行数据通信。所以该部分的程序设计包括串行口通信程序设计和GPRS数据传输程序设计。这部分的主要内容是对这部分程序的介绍。4.3.1 串行口通信的数据传输C8051F120有两个串口UART0和UART1,本设计使用的是UART0。UART0 是一个具有帧错误检测和硬件地址识别的增强型串行口,可以工作在全双工异步方式或半双工同步方式,并支持多处理器通信。接收数据被暂存于一个保持寄存器中,这就允许UART0 在软件尚未读取前一个数据字节的情况下开始接收第二个输入数据字节。一个接收覆盖位用于指示新的接收数据已被

44、锁存到接收缓冲器而前一个接收数据尚未被读取。要使用UART0必须现在交叉开关的设置时使能UART0,交叉开关是通过XBR0、XBR1 和XBR2这三个寄存器设置的。在使用UART0时还必须选择合适的时钟源和波特率,为了得到无误差的标准波特率,本课题使用了22.1184MHz的外部时钟并选择了9600的波特率。与UART0相关的寄存器有SCON0、SSTA0、SBUF0,这里对其作出简要的介绍。SCON0是UART0控制寄存器,该寄存器包含了串行口中断的标志位主要用于设置UART0的工作方式。SSTA0是UART0状态和时钟选择寄存器,该寄存器主要用于判定串行口传送数据的错误检测及串行口波特率发

45、生器的时钟源选择。SBUF0是UART0的数据缓冲寄存器,该寄存器存储串行口收发的数据。为了让串行口正常的工作,除了设置这些寄存器的参数之外还要设置与时钟选择和定时器相关的寄存器。和时钟源选择相关的寄存器有系统时钟选择寄存器CLKSEL和外部振荡器控制寄存器OSCXCN还有与锁相环相关的寄存器。与定时器相关的寄存器有定时器控制寄存器TCON、定时器方式寄存器TMOD和时钟控制寄存器CKCON等不再做详细介绍。本课题使用了UART0的工作方式1,即8位UART,可变波特率的工作方式。并选择定时器1做UART0的波特率发生的时钟源。其波特率的计算公式如公式(4-1)所描述。 (4-1)定时器1 溢

46、出率由定时器1 的时钟源(T1CLK)和重载值(TH1)确定。定时器的溢出率用公式(4-2)计算。( 4-2) 图4-6给出串行口通信的程序流程图。图4-6 串行口通信的程序流程图4.3.2 简单的AT指令介绍AT命令是指以“AT”或“at”开始并以结束的命令。一般来讲AT命令包括四种类型:(1)设置命令。这类命令用于设置用户自定义的参数值,其格式为“AT+CXXX=”。(2)测试命令。这类命令用于查询设置命令或内部程序设置的参数及其取值范围,其格式为“AT+CXXX=?”。(3)查询命令。这类命令用于返回参数的当前值,其命令的格式为“AT+CXXX?”。(4)执行命令。这类命令用于读出受GS

47、M模块内部程序控制的不可变参数,其命令格式为“AT+CXXX”。表4-1是本系统所涉及的几条AT指令及其功能。表4-1几个AT命令的功能命令功能AT查询模块初始化是否成功ATE简化返回指令AT+CSQ得到信号强度rssi,信道误码率berAT+CGREG?查询网络注册状态AT+CGDCONT=1,”IP”,”CMNET”配置apnAT%ETCPIP进入TCP/IP功能AT%IPOPEN=”TCP”,”202.206.1.26”,23,4098打开一条TCP链接AT%DNSR=域名解析AT%IPCLOSE=1关闭TCP链接AT%IPSEND=”01020304EF”发送数据到TCP对端AT%IOMODE=1,1,1设置数据模式AT%RSTGPRS模块复位AT%TSIM检测SIM卡是否

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1