




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于GPRS数据监控采集终端的实现内容摘要:提出了一种从PLC中实时读取数据, 传送给上位计算机,实现无线通讯的墙体外表面数据采集系统的设计。设计中从实际情况出发,选用了工作稳定可靠的无线通讯芯片和先进的温/湿度传感器, 工作子站选用MSP430F149作为处理芯片,采用SHTlX系列中的SHT10传感器用于现场的实时温/湿度数据采集。并将所采集的数据发送给GPRS(通用分组无线业务)无线传输模块,GPRS传输模块再将数据以无线方式发送到数据采集服务器。上位机监控程序采用java程序进行编写,调用功能强大的串口通讯API-javacomm20-win32。关键词:数据采集 无线数据传输技术 上位机 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 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 send 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-win32.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的工作原理及其模块电路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参考文献35V基于GPRS数据监控采集终端的实现前言随着Internet应用的日益普及,信息共享的程度不断提高,网络在人们日常生活和工作中扮演的角色越来越重要,已经成为人们生活,工作中不可缺少的部分。本设计主要是通过研究GPRS无线网络的数据监控采集终端的实现原理和方法,将基于ARM7内核的嵌入式系统和GPRS网络结合起来,利用GPRS网络实现无线数据传输。该系统可以同时实现多路数据的采集,以便对现场环境进行分布式,网络化的采集与监控,可应用于大气与水质环境监测等领域。现在日常生活中的应用系统,大多采用的是单片机或微控制器系统。通称嵌入式系统。嵌入式系统由于其体积小成本低,开发方便,技术成熟等特点已经在民用和工业等许多领域得到了广泛的应用。但是,目前大多数嵌入式的数据传输系统功能十分有限。以单片机作为控制器的核心,与一些监测、伺服、指示等设备配合实现一定的功能。网络应用最重要的目标之一就是进行多媒体通信。多媒体信息主要包括图像、声音和文本三大类,其中视频、音频等信号的信息量是非常大的。而且这些信息的表达方式、输入、输出的要求也各不相同,因此,在多媒体通信中,对这些数据进行有效的表达和适当处理非常重要。为了满足多媒体通信对带宽的需求,无线通信网络不约而同地将网络传输速率作为其性能参数中的关键指标。从GPRS投入商用以来在各个领域得到了广泛的应用,本文就是对其在数据监控采集领域的实现进行研究。1 GPRS1.1 GPRS的应用与发展GPRS技术现在己经十分成熟,目前全世界很多运营商开通了GPRS商用系统、试商用系统或实验系统。国际上有名的大型电信设备制造厂商也都在积极开发GPRS的相关产品,提出了一系列的解决方案,世界各地的移动网络运营商也纷纷响应,配合电信设备制造厂商提供了大量的GPRS服务区。GPRS可提供以下一系列交互式业务:点对点无连接型网络业务(TPCLNS);点对点面向连接的数据业务(PTPCONS);点对多点业务(PTM)。GPRS还能支持用户终端业务、补充业务、GSM短消息业务和各种GPRS电信业务。总之,GPRS可提供网上冲浪、Email、文件传输、数据库查询、增强型短消息等业务;可应用于运输业、金融、证券、商业和公共安全业;PTM业务支持股市动态、天气预报、交通信息等实时发布;另外,还能提供种类繁多、功能强大的以GPRS承载业务为基础的网络应用业务和基于WAP的各种应用。利用GPRS进行数据传输具有很多优点例如费用低廉,GPRS网络按照客户收发数据包的数据流量来收费,而不是采用SMS的按短信条数的方式收费,极大地降低了通信使用费用。永远在线,客户随时都与网络保持联系,即使没有数据传送时,客户仍然在网上,与网络之间还保持一种连接。1.2 GPRS的技术优势利用GPRS进行数据传输具有很多优点,主要如下:1费用低廉,GPRS网络按照客户收发数据包的数据流量来收费,而不是采用SMS的按短信条数的方式收费,极大地降低了通信使用费用;2永远在线,客户随时都与网络保持联系,即使没有数据传送时,客户仍然在网上,与网络之间还保持一种连接;3快速登录,连接时间很快,GPRS无线终端一开机,就已经与GPRS网络建立了连接,每次登录网络,只需要一个激活过程,一般仅需1到3秒;4高速传输,由于GPRS网络采取了先进的分组交换技术,数据传输最高理论值可达171.2kb/s,实际使用中一般能达到2040kb/s;5组网灵活,中国移动的GPRS网络覆盖面广,可在全国漫游而不增加额外费用,适合用户以低成本方式在短时间内组建自己的跨区域性数据网络;2 单片机的数据采集系统的设计单片机数据采集系统的设计是本课题设计的最基础的部分,该部分得到的数据是GPRS数据传输的来源。这部分的研究重点是实现一定精度的数据采集,这里的数据可以是电压、温度以及压力等等,考虑到系统研究的主要内容是数据的传输部分。本课题在这部分采集的数据选择了比较容易实现的电压和温度数据。2.1控制芯片的选择控制芯片对一个系统的设计来说是至关重要的,控制芯片的选择决定了一个系统的运行速度以及程序的稳定性等性能。使用常用的STC89C52单片机作为本系统的控制核心。2.2温度传感器的方案利用热敏电阻的热敏效应,通过采集热敏电阻两端的电压变化计算出热敏电阻阻值的变化。进而通过热敏电阻阻值与温度之间的关系计算出当前工业现场的温度。热敏电阻对环境温度敏感度很高,而且热敏电阻价格比温度传感器要便宜得多,但是热敏电阻对环境温度的变化并不是呈正比的。要得到准确的温度值需要耗费大量的单片机资源,且实际操作起来不易实现,所以本课题不采用此方案。2.3电压采集方案使用常见的集成8路的8位A/D转换器ADC0809。3 系统硬件电路设计整个基于GPRS的数据采集系统的硬件部分包括C8051F120的最小系统、数据采集模块、电平转换模块和GPRS模块几个部分电路。该系统的原理框图如图3-1所示。图3-1 系统硬件电路框图3.1 单片机C8051F120最小系统单片机是数据采集部分和GPRS控制电路的控制核心。单片机最小系统指的是单片机正常工作的最小单元,是能使一个单片机正常工作的最小单元。本系统采用了Silicon Lab公司生产的C8051F120单片机。C8051F120单片机内部含有高速、流水线结构的8051 兼容的CIP-51内核,运行速度最高可达100MHz,是一种高性能的单片机。用于工业控制可以提高系统的性能。3.1.1 使用单片机的介绍C8051F120是完全集成的混合信号片上系统型MCU芯片,100引脚TQFP封装。在运行速度方面,C8051F120单片机是拥有流水线结构的高速CIP-51内核,与8051内核完全兼容,其流水线结构使得该单片机的指令周期与时钟周期相同。而片内集成的锁相环(PLL)电路使得其最高运行速度可达100MHz,这可以在很大程度上提高系统的运行速度和灵敏度。在系统调试方面,C8051F120拥有全速、非侵入式的在系统调试接口,其JTAG接口使得其可以在系统调试,与传统的8051单片机通过不断烧写程序调试系统的方式相比具有很大的优势。这个特点可以明显的缩短系统的开发周期。在集成片内资源方面,C8051F120单片机在片内集成了一个ADC0电压转换单元,ADC0具有真正12位工作速度为100KHz的高速A/D转换器,并且含有增益放大器和一个8路通道模拟多路开关,这使得单片机可以测得8路不通模拟输入电压。除此之外,C8051F120单片机还有两个UART串行接口和5个通用的16位定时器。在存储空间方面,C8051F120单片机含有128KB的可在系统编程的FLASH存储器和8448(8K+256)字节的片内RAM。这使得C8051F120单片机更适合于较大系统的开发。另外,C8051F120单片机还增加了一些其他的功能和一些关键性的改进。在中断功能方面,C8051F120将中断源扩展至20个。允许大量的模拟和数字外设中断微控制器。中断系统的运行需要更少的MCU干预,所以中断源的增加对于多任务实时系统的设计来说是很重要的。C8051F120还有多达7个中断源,且内部有一个基频为24.5 MHz的振荡器,可以使单片机在没有外部时钟的情况下也可以正常工作。3.1.2 单片机外部时钟电路单片机各功能部件的运行都是以时钟控制信号为基准,时钟频率直接影响单片机的运行速度,时钟电路相当于单片机的心脏。虽然C8051F120单片机集成了一个基频为24.5MHz的内部振荡器,但是24.5MHz的系统时钟不能产生无误差的标准波特率。然而在本课题中单片机与GPRS模块要用到串行口的通信方式,为了产生无误差的标准波特率,本课题选用了22.1184 MHz的外部时钟作为系统的时钟基准。这个时钟基准就是依靠单片机的外部时钟电路实现的。C8051F120单片机内部含有一个外部振荡器驱动电路。外部振荡器电路可以驱动外部晶体、陶瓷谐振器、电容或RC网络。也可以使用一个外部CMOS时钟提供系统时钟。对于晶体和陶瓷谐振器配置,晶体/陶瓷谐振器必须并接到XTAL1和XTAL2引脚。需要注意的是晶体振荡器电路对PCB布局非常敏感,在实际设计中应将晶体尽可能的靠近XTAL管脚。引线应尽可能地短并用地平面屏蔽,防止从其它引线引入噪声或干扰。本系统的外部时钟电路如图3.2所示。其中,电容的作用是帮助晶体起振,其典型值为33pF。图3-2 DS18B20与单片机的接口电路3.1.3 电平转换电路的设计串行通信是单片机与PC机之间的一种重要的通信方式。由于单片机系统与PC机系统的电平定义有很大的差别,若想实现它们之间的通信必须要经过一定的协议实现它们之间的电平转换。而最经常使用的协议就是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 串口电路电路图3.2 GPRS的工作原理及其模块电路GPRS模块是实现基于GPRS数据传输的核心,从以下几个部分对其进行详细介绍。3.2.1 GPRS的工作原理GPRS是在GSM系统上发展出来的一种新的承载业务,采用与GSM相同的无线调制标准,同样的频带,同样的突发结构,同样的跳频规则以及同样的TDMA帧结构,因此GPRS网络是在GSM电话网的基础上增加以下功能实体构成的:SGSN(服务GPRS支持节点)、GGSN(网关GPRS支持节点),PTMSC(点对多点服务中心);共用GSM基站,但基站要进行软件更新;采用新的GPRS移动台;GPRS要增加新的移动性管理程序;通过路由器实现GPRS骨干网互联;GSM网络系统要进行软件更新和增加新的MAP信令和GPRS信令等。监控中心处于Internet中可以被分配到一个固定的IP地址,但移动终端处于GPRS网络中,是没有固定IP地址的,要使得移动终端和监控中心建立关联,就必须由移动终端发起连接,连接成功后由GGSN为其分配一个动态的IP地址。那么怎样才能发起连接,然后得到一个IP地址呢?要和GPRS建立连接,就必须遵守有关协议。GPRS网络中的传输协议是PPP,属于TCP/IP协议模型中的数据链路层。在实际使用中,只要在监控中心的服务器上设定一个监听端口,配合上位机软件就可以通过GPRS模块向服务器发出连接申请就可以建立TCP连接。进而实现数据的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公网的通信。这与局域网内的电脑通过网关访问外部网络的方式相似。GPRS DTU主动发起与数据中心的通信连接,并保持通信连接一直存在。由于GPRS DTU处于移动内网,而且IP地址不固定。因此,只能由GPRS DTU主动连接数据中心,而不能由数据中心主动连接GPRS DTU。这就要求数据中心具备固定的公网IP地址或固定的域名。数据中心的公网IP地址或固定的域名作为参数存储在GPRS DTU内,以便GPRS DTU一旦上电拨号成功,就可以主动连接到数据中心。具体地讲,GPRS DTU通过数据中心的IP地址(如果是采用中心域名的话,先通过中心域名解析出中心IP地址)以及端口号等参数,向数据中心发起TCP或UDP通信请求。在得到中心的响应后,GPRS DTU即认为与中心握手成功,然后就保持这个通信连接一直存在,如果通信连接中断,GPRS DTU将立即重新与中心握手。由于TCP/UDP通信连接已经建立,就可以进行数据双向通信了。对于DTU来说,只要建立了与数据中心的双向通信,完成用户串口数据与GPRS网络数据包的转换就相对简单了。一旦接收到用户的串口数据,DTU就立即把串口数据封装在一个TCP/UDP包里,发送给数据中心。反之,当DTU收到数据中心发来的TCP/UDP包时,从中取出数据内容,立即通过串口发送给用户设备。通过有线的数据采集中心,同时与很多个GPRS DTU进行双向通信。这是目前GPRS DTU应用系统中最为常用的方式。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卡外围电路以及GTM900C外围电路。其中串行通行电路与单片机系统的串行通行电路一样就不再介绍了。下面分别其他几个电路模块进行介绍。(1)供电电源电路本系统GPRS部分的供电系统和其他系统的供电电源部分大同小异,图3.12给出了本系统GPRS部分的供电电源电路。对于其各部分功能不再详细的给出。只不过稳压芯片换用了性能更好的LM2576。图3-5 GPRS部分的供电电路(2)SIM卡外围电路在本系统的工作工程中使用了移动通信公司提供的GPRS业务,要使用该项业务就要用到移动公司的SIM卡。SIM卡外围电路如图3.13所示。图3-6 SIM卡外围电路电路图(3)GTM900C外围电路GTM900C是华为公司生产的一款双频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 卡供电信号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-第一路音频输入信号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。 注意,如果通过充电回路(接到POWER引脚)供电,或者通过电池供电(接到VBATT+引脚),那么IGT信号必须维持至少1秒。(2)SYNC引脚可以用来输出一个同步信号(synchronization signal),也可以在应用使来控制一个LED2灯的输出状态。SYNC端通过一个三极管或门电路来控制LED2。一个简单的电路接法是:SYNC端通过电阻接到NPN三极管(如9013)的基极,射极接地,集电极通过一个限流电阻接到LED2的负端,LED2的正端接VCC。LED2的工作模式完全类同于同步信号,显示的是GTM900C的工作状态:(1)LED2灯灭,表示GTM900C电源关闭,处于休眠、报警或单纯的充电模式 (2)600 ms 亮 / 600ms 灭,表示未插入SIM卡,或者个人身份未登记/已注销,或者网络正在搜寻中,或者正在进行用户身份鉴定,或者网络注册正在进行中 (3)75ms 亮 / 3s 灭,表示网络注册成功(控制通道和用户交换信息完成),无来电 (4)LED2灯亮,依据不同的呼叫类型:声音呼叫,数据呼叫,在建立或者完毕时的状态。4 系统软件设计系统软件部分的设计包括基于单片机的程序设计和基于LabVIEW的上位机软件设计。基于单片机的程序设计又包括数据采集部分和GPRS数据传输两个部分。所以系统软件设计包括数据采集部分程序设计、GPRS数据传输部分程序设计和上位机软件程序设计三个部分。4.1 主程序流程图图4-1是主程序的程序流程图。开始关闭看门狗系统时钟初始化UART0初始化ADC0初始化DS18B20初始化GPRS模块初始化两路温度数据采集两路温度数据传送八路电压数据采集八路电压数据传送图4-1主程序流程图主程序决定了系统的框架,系统所要实现的各种功能都需要通过主程序实现。本系统的主程序包括了系统初始化、数据采集和传输等系统功能。系统的初始化设置系统各组建的工作方式,包含UART0初始化、ADC0初始化、定时器初始化、温度传感器初始化等。数据采集和传输包括温度和电压数据的采集和传输4.2 数据采集部分程序设计本系统中,数据采集包括两路温度数据和八路电压数据的采集。温度数据的采集是通过支持单线总线协议的数字温度传感器DS18B20来实现的,八路电压数据的采集则是通过C8051F120集成的8路12位精度A/D转换器实现的。这一部分主要对这两类数据采集的程序设计做出相应的介绍。4.2.1 温度数据采集的程序设计DS18B20是基于单线总线的数字温度传感器,总线控制器连接在DS18B20的DQ管脚上,控制器所有的读写操作都是通过该管脚实现的。DS18B20还有一个64位的光刻ROM,每一个DS18B20出厂时都有一个唯一的序列号,这个唯一的序列号就存储于这个64位的ROM存储器中。在实现多路温度采集的系统中,可以把所有的DS18B20挂在同一条线上。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍。由于DS18B20只有一根数据线与总线控制器相连接,当总线控制器需要对进行读写字节操作时必须对其逐位的读取或写入。根有的DS18B20挂在同一条线上。总线控制器就是通过它们的ROM中存储的唯一的序可以把所有的DS18B20挂在同一条线上。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。总线控制器就是通过它们的ROM中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍由于该器件是基于单线总线的,所有的读列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵据其芯片手册,器件的读和写都是从低位到高位逐位进行的。由于读字节的时序和写字节的相似,限于篇幅这里只给出读字节的程序流程图。读字节的程序流程图如图4-2所示。图4-2 读字节子程序的程序流程图在多路温度采集系统中,一条总线控制器上可以挂上无数的DS18B20器件。单线总线控制器要依靠器件的唯一序列号才能识别出特定的器件。所以,读取器件序列号必须在温度采集之前进行。读取器件序列号有两种方法:(1)在总线控制器上逐个的挂上DS18B20器件,然后读取并记录其ROM信息。(2)同时挂上所有的器件,通过广播和排除的方法读取器件的序列号。考虑到第二种方案程序的复杂性,本课题采用了第一种方案。图4-3给出了读取DS18B20序列号的程序流程图。图4-3 两路温度采集的程序流程图读出DS18B20的序列号之后就可以利用读得的序列号逐一的进行温度采集了。要采集制定地点的温度,只要通过总线控制器将指定地点温度传感器件的序列号写入单线总线等待指定器件的响应然后再做其他相关操作就可以了。基于单线总线的数据采集的一般工作过程如下,首先对在挂在总线控制器上的所有温度传感器件进行复位操作,等待器件响应。如果器件复位成功,就可以发出匹配ROM指令(0x55),该指令发出后总线控制器上的DS18B20就处于等待匹配序列号的状态。这时总线控制器就可以发送64位序列号。挂在总线上的温度传感器件就会把收到的序列号与自己的序列号相匹配,如果匹配成功该器件就可以继续响应总线控制器的指令。然后总线控制器就可以发送启动温度转换或者读取温度的指令。然后把所读得的数据通过数据转换就可以得到该地点的环境温度。该系统的温度采集系统是两路的,图4-4就给出温度采集的程序流程图。图4-4温度采集的程序流程图4.2.2 电压数据的采集的程序设计C8051F120片内集成了8路12位精度的A/D转换器,其入口在18-25管脚。对于A/D转换的工作流程在3.1.5已经做过详细的介绍。下面主要介绍A/D转换的程序设计。对于片内集成的A/D转换器,只需要对单片机相关的寄存器做出合理的配置就可以了。字符串处理子函数主要功能是处理串行口接收到的字符串,使接收到的字符串更容易辨别。由于GPRS模块返回到单片机串口的数据含有一些不可显示字符,如果想从接收的字符串中提取出有用信息就要对接收到的字符串做一定的处理。字符串处理子函数的程序流程图如图4-9所示。由于GPRS模块返回的数据总是以回车符和换行符结束,所以在字符串处理模块中就要以回车符和换行符为界限,把GPRS模块的返回数据分为几个字符串分别存放在不同的数组里,在需要使用时直接从相应的字符串数组中取出需要的数据即可。根据GPRS模块AT指令手册,GPRS模块返回的数据最多有两个换行符,所以在字符串处理子函数中只需要两个存储字符串的数组Rec_temp1和 Rec_temp2就行了。在本课题中,ADC0是通过向ADC0BUSY位写1触发的。在A/D转换过程中,先选定一个通道设置好AD转换的数据存储方式,然后在需要的时候想ADC0BUSY位写入1触发ADC0进行A/D转换然后等待AD0INT位(数据转换结束标志位)置1。AD0INT置1后进行数据处理,输出电压数据然后改变A/D转换的通道进行下一路的电压数据采集。还有一点需要说明的是,电压数据转换结束后ADC0存储的电压数据有左对齐和右对齐两种格式。这两种格式是通过ADC0控制寄存器ADC0CN的最低位AD0LJST设置的。当ADC0LJST为1时,ADC0H:ADC0L寄存器数据左对齐。当ADC0LJST为0时,ADC0H:ADC0L寄存器数据右对齐。字符串处理子函数主要功能是处理串行口接收到的字符串,使接收到的字符串更容易辨别。由于GPRS模块返回到单片机串口的数据含有一些不可显示字符,如果想从接收的字符串中提取出有用信息就要对接收到的字符串做一定的处理。字符串处理子函数。还有一点需要说明的是,电压数据转换结束后ADC0存储的电压数据有左对齐和右对齐两种格式。这两种格式是通过由于GPRS模块返回的数据总是以回车符和换行符结束,所以在字符串处理模块中就要以回车符和换行符为界限,把GPRS模块的返回数据分为几个字符串分别存放在不同的数组里,在需要使用时直接从相应的字符串数组中取出需要的数据即可。于GPRS模块返回到单片机串口的数据含有一些不可显示字符根据GPRS模块AT指令手册,GPRS模块返回的数据最多有两个换行符,所以在字符串处理子函数中只需要两个存储字符串的数组Rec_temp1和 Rec_temp2就行了。电压数据采集的程序流程图如图4-5所示。图4-5 电压数据采集的程序流程图4.3 GPRS数据传输部分的程序设计GPRS的数据传输是通过单片机对GPRS模块的控制实现的,单片机与GPRS模块经过串行口进行数据通信。所以该部分的程序设计包括串行口通信程序设计和GPRS数据传输程序设计。这部分的主要内容是对这部分程序的介绍。4.3.1 串行口通信的数据传输C8051F120有两个串口UART0和UART1,本设计使用的是UART0。UART0 是一个具有帧错误检测和硬件地址识别的增强型串行口,可以工作在全双工异步方式或半双工同步方式,并支持多处理器通信。接收数据被暂存于一个保持寄存器中,这就允许UART0 在软件尚未读取前一个数据字节的情况下开始接收第二个输入数据字节。一个接收覆盖位用于指示新的接收数据已被锁存到接收缓冲器而前一个接收数据尚未被读取。要使用UART0必须现在交叉开关的设置时使能UART0,交叉开关是通过XBR0、XBR1 和XBR2这三个寄存器设置的。在使用UART0时还必须选择合适的时钟源和波特率,为了得到无误差的标准波特率,本课题使用了22.1184MHz的外部时钟并选择了9600的波特率。与UART0相关的寄存器有SCON0、SSTA0、SBUF0,这里对其作出简要的介绍。SCON0是UART0控制寄存器,该寄存器包含了串行口中断的标志位主要用于设置UART0的工作方式。SSTA0是UART0状态和时钟选择寄存器,该寄存器主要用于判定串行口传送数据的错误检测及串行口波特率发生器的时钟源选择。SBUF0是UART0的数据缓冲寄存器,该寄存器存储串行口收发的数据。为了让串行口正常的工作,除了设置这些寄存器的参数之外还要设置与时钟选择和定时器相关的寄存器。和时钟源选择相关的寄存器有系统时钟选择寄存器CLKSEL和外部振荡器控制寄存器OSCXCN还有与锁相环相关的寄存器。与定时器相关的寄存器有定时器控制寄存器TCON、定时器方式寄存器TMOD和时钟控制寄存器CKCON等不再做详细介绍。本课题使用了UART0的工作方式1,即8位UART,可变波特率的工作方式。并选择定时器1做UART0的波特率发生的时钟源。其波特率的计算公式如公式(4-1)所描述。 (4-1)定时器1 溢出率由定时器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)执行命令。这类命令用于读出受GSM模块内部程序控制的不可变参数,其命令格式为“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”,”6”,23,4098打开一条TCP链接AT%DNSR=域名解析AT%IPCLOSE=1关闭TCP链接AT%IPSEND=”01020304EF”发送数据到TCP对端AT%IOMODE=1,1,1设置数据模式AT%RSTGPRS模块复位AT%TSIM检测SIM卡是否插入4.3.3 GPRS数据传输程序设计GPRS数据传输时通过GPRS与单片机的串口通信实现的。这部分的程序设计设计大量的命令子函数,这些子函数组成了GPRS数据传输的主程序。这些子函数包括发送AT命令子函数、发送字符串子函数、字符串处理子函数和数据转换子函数四类功能。该寄存器存储串行口收发的数据。为了让串行口正常的工作,除了设置这些寄存器的参数之外还要设置与时钟选择和定时器相关的寄存器。和时钟源选择相关的寄存器有系统时钟选择寄存器CLKSEL和外部振荡器控制寄存器OSCXCN还有与锁相环相关的寄存器所有的AT命令子函数都有着相似的程序结构,这里以验证GPRS模块正常初始化的“AT”命令作为一个例子。图4-7给出“AT”命令的程序流程图。图4-7 给出“AT”命令的程序流程图在发送“AT”命令后,考虑到数据传输有一定的延时,在程序中总是要限定等待一定的时间。如果过在规定的时间内单片机没有收到任何返回值则默认GPRS没有正常工作,否则通过单片机接收到的返回值判断GPRS的工作状态并进行相应的操作。在本系统GPRS数据传输部分,字符串发送子函数是一个很重要的函数。在GPRS模块发送AT命令和采集的数据时都必须要用到字符串发送函数。字符串发送子函数的程序流程图如图4-8所示。NY开始禁能串行口中断TI=0要发送的字符是0?Y把字符写入SBUF0TI=1?TI=0字符串地址加1N使能串行口中断返回图4-8 发送字符串函数程序流程图本系统在发送字符串时使用的是查询方式。为了保证程序的稳定性,在发送字符串时要禁能串行口中断。当程序中有字节写入SBUF0寄存器时,串行口立即进入字符串发送状态。字符串发送完毕后,标志位TI会置1,在程序中我们写入SBUF0之后就进入等待TI置1的等待循环结构。直到字符串全部发送完毕才使能串行口中断并返回到主程序。字符串处理子函数主要功能是处理串行口接收到的字符串,使接收到的字符串更容易辨别。由于GPRS模块返回到单片机串口的数据含有一些不可显示字符,如果想从接收的字符串中提取出有用信息就要对接收到的字符串做一定的处理。字符串处理子函数的程序流程图如图4-9所示。NNYN开始i=0,k=0Ptri是0,n,r中的一个?i+Ptri是n,r中的一个?Ptri=0NNYYRec_temp1k+=Ptri+Rec_temp1k=0,k=0跳过n和rPtri是n,r中的一个?Ptri=0Rec_temp2k+=Ptri+返回YY图4-9 字符串处理子函数程序流程图GPRS模块初始化指的是用GPRS模块建立TCP链接的过程,这个过程由许多AT命令子程序组成。本系统在发送字符串时使用的是查询方式。为了保证程序的稳定性,在发送字符串时要禁能串行口中断。当程序中有字节写入SBUF0寄存器时,串行口立即进入字符串发送状态。字符串发送完毕后,标志位TI会置1,在程序中我们写入SBUF0之后就进入等待TI置1的等待循环结构。直到字符串全部发送完毕才使能串行口中断并返回到主程序。本系统在发送字符串时使用的是查询方式。为了保证程序的稳定性,在发送字符串时要禁能串行口中断。当程序中有字节写入SBUF0寄存器时,串行口立即进入字符串发送状态。字符串发送完毕后,标志位TI会置在程序中我们写入SBUF0之后就在发送字符串时要禁能串行口中断。当程序中有字进入等待TI置1的等待循环结构。直到字符串全部发送完毕才使能串行口中断并返回到主程序。首先是GPRS模块的基本设置。GPRS模块的使用要从等待GPRS模块硬件初始化开始,等待GPRS模块在发送字符串在发送字符串时要禁能串行口中断。当程序中有字时要禁能串行口中断。当程序中有字硬件初始化这可以通过等待GPRS模块的AT测试成功来实现。为了减少无用的返回字符串,要对GPRS模块设置关回显在发送字符串时要禁能串行口中断。当程序中有字的命令。“关回显”指的是关掉GPRS模块返回接收的AT命令行的功能。然后判断SIM卡是否插入。其次是GPRS模块建立TCP链接前的准备工作。在GPRS模块建立TCP链接之前需要检查信号强度以及网络注册状态等先行工作。只有在网络已经注册完毕的状态下GPRS模块才能建立TCP链接,建立的快慢与信号强度有关。最后是建立TCP链接。对于具有固定IP地址服务器来说,GTM900C建立TCP链接只需要三个步骤,即配置apn,进入TCP/IP功能和建立TCP链接。对于非固定IP地址的服务器还需要经过域名解析获得服务器的IP地址,然后才能建立TCP链接。图4-11所示为GPRS模块初始化的程序流程图。YNYYYY开始AT测试成功?N关回显成功?N有SIM卡?N测试信号强度信号强度10?N网络已注册?YNapn配置成功?进入TCP/IP功能?域名解析打开一条TCP链接?进入数据传输功能图4-11 GPRS模块初始化程序流程图4.4 基于LabVIEW的上位机软件的设计图形化软件开发系统是用工程人员所熟悉的术语和图形化符号代替常规的文本语言编程,界面友好,操作方便,可大大缩短系统的开发周期和系统开发人员的负担,深受专业人员的青睐。LabVIEW是当前最为流行的图形化开发软件,适合于专业人员组建小型的测试系统和较简单的虚拟仪器或者大系统中某个分系统的编程。所有的LabVIEW应用程序,即虚拟仪器(VI),包括前面板(Front panel)、流程图(Block diagram)和图标/连接器(Icon/connector)三部分组成。前面板是图形用户界面,主要由控制控件和显示控件组成,相当于仪器的面板。流程图相当于仪器的内部线路,是虚拟仪器最主要的部分。图标/连接器相当于图形化的参数。LabVIEW的TCP控件选板中提供了关于TCP编程的各种控件:TCP侦听、打开TCP连接、读取TCP数据、写入TCP数据、关闭TCP连接、IP地址至字符串转换、字符串地址至IP转换、解释机器别名、创建TCP侦听器和等待TCP侦听器等。TCP控件选板如图4-12所示,TCP各个控件的功能解释如表4-2所示。图4-12 TCP控件选板在本系统中,我们要利用LabVIEW软件设计一个用于TCP数据接收的上位机软件。但是本上位机软件考虑到系统应用的功能扩展特意增加了TCP数据的发送功能。上位机软件在服务器上运行的目的是接收GPRS模块传送来的数据。在本系统中,上位机软件对服务器监听端口进行监听。当GPRS数据终端向服务器提出建立TCP链接的申请时上位机可以通过该监听端口识
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 5699-2025采光测量方法
- 2025年安全意识培训考试题及答案
- 草坪园艺技术中常见问题的解决方法
- 2025年物流行业高级经理的面试模拟题及答案
- 初中学科竞赛颁奖词模板
- 2025年机械安全员安全培训教材题库
- 2025年品质管理工程师职业资格考试试题及答案解析
- 2025年教师资格考试试题及答案解析
- 课件中文字的加强
- 2025年计算机信息系统师资格认证考试试题及答案解析
- 管径选择与管道压力降计算(三)92~137
- 2024-2025学年辽宁省普通高中高三上学期9月开学联考物理试题(解析版)
- 《卫生法》知识考试参考题库(含答案)
- 2024年认证行业法律法规及认证基础知识
- 《跆拳道》教学大纲
- 初中七年级下册语文阅读理解十篇(含答案)
- 高考必背72篇古诗词
- 《数据库应用基础(Access 2010)》中职全套教学课件
- ISO 55013-2024 资产管理-数据资产管理指南(中文版-雷泽佳翻译-2024)
- 耳穴贴压技术操作评分标准
- 大学生安全教育课件(共41张)
评论
0/150
提交评论