基于GPRS数据采集系统的设计.doc_第1页
基于GPRS数据采集系统的设计.doc_第2页
基于GPRS数据采集系统的设计.doc_第3页
基于GPRS数据采集系统的设计.doc_第4页
基于GPRS数据采集系统的设计.doc_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章 绪论1.1 课题来源及背景以往工业现场的数据采集一直停留在手工或数字仪表记录数据的水平,无法做到对大量数据的实时采集和分析。随着计算机技术和网络技术的快速发展,结合高精度、高性能数据采集仪器的使用,使得数据采集实现了自动化,大量的数据采集和分析工作由计算机自动完成,从而大大提高了测量精度和效率。而在某些数据采集现场,由于环境或距离的限制,采集的数据必须通过无线传输方式送至目的地供人们对工业现场做出相应的控制和使用。所以远程监控技术在工业控制领域有着十分重要的意义。1.1.1 远程监控系统发展的现状及前景早期远程监控技术是非实时、非在线监控方式,而现代远程监控技术是实时在线监控方式,借助于计算机、互联网和通信技术,操作者可以依靠安装在现场的各种传感器及音视频设备,远隔千里便可随时了解现场生产与设备情况,对生产现场进行监控、诊断与控制。远程监控技术的模式是与通信技术的发展密不可分的,伴随着通信技术的发展,出现了三种远程监控模式:1人工远程监控这种方式是通过人工对现场参数及现场运行情况进行记录室由工程师进行分析推理,这就包含了太多的人为因素,存在很多弊端,这是这是一种很原始的方式。这种远程监控方式在当今信息技术迅猛发展的时代迟早会被淘汰。2有线网络远程监控有线网络监控方式是现代远程监控模式,它将现场各个采样点通过通信线连成网。根据通信方式的不同,可以有以太网、光纤网等等,这种方式也是现在广为使用的方式,如现场总线。其最显著特点:是现场的采样设备将各种传感器获取的设备状态信息转变为数字信号后,通过网络传送给远程服务器。由于数字信号远程传输的保真度高,不受时间和空间影响,因此诊断结论可靠性高,可以实现真正意义上的实时在线远程监控与诊断。但是,这种方式在网络铺设上投资巨大,而且还需要增设路由器。所以这种远程监控技术只适用于少数相对较近的工业现场。3无线网络远程监控无线网络远程监控又分为两种:一种是单独构建无线网,另一种是利用公网GSM。第一种方式由于要自己进行网络构建包括传输设备、中继站、传输协议制定,工作量比较大。第二种用GSM网络实现,这类监控的通信方式是依托遍布全球的GSM网,它的最大特点是打破了距离的限制,从而可以实现全国乃至全球漫游监控。这类监控主要是利用GPRS数据业务通过Internet进行通信。第一种单独构建无线网的远程监控方式的使用在一定的情况下,比如公网信号较弱的地方或信号盲区应用时有一定的优势。但是,在大部分地区第二种无线远程监控方式比第一种的投资小且性能稳定,所以利用GSM公网的无线远程监控方式具有巨大的发展前景。在需求与信息技术发展的双重驱动力的推动下,GPRS技术得到了长足的发展。1.1.2 GPRS技术的应用与发展GPRS(General Packet Radio Service)是通用分组无线业务的简称,该技术建立在GSM 网络的基础上,被称为2.5代移动通信技术,它将无线通信与Internet紧密结合。GPRS作为一种高速、高效、经济的无线系统,具有网络覆盖范围广、数据带宽宽、适应性强、计价按数据流量计算、实时在线的优点,特别适用于间断的、突发性的或频繁的、少量的数据传输,也适用于偶尔的大量数据传输,完全满足数据采集及监控的双向数据信息传输。随着GPRS技术在移动通信领域的发展,已能够实际应用到许多需要无线数据传输的领域,也为数据采集传输及监控提供了一种新的数据传输通讯方式。GPRS技术现在己经十分成熟,目前全世界很多运营商开通了GPRS商用系统、试商用系统或实验系统。国际上有名的大型电信设备制造厂商也都在积极开发GPRS的相关产品,提出了一系列的解决方案,世界各地的移动网络运营商也纷纷响应,配合电信设备制造厂商提供了大量的GPRS服务区。GPRS能支持用户终端业务、补充业务、GSM短消息业务和各种GPRS电信业务。总之,GPRS可提供网上冲浪、Email、文件传输、数据库查询、增强型短消息等业务;可应用于运输业、金融、证券、商业和公共安全业;PTM业务支持股市动态、天气预报、交通信息等实时发布;另外,还能提供种类繁多、功能强大的以GPRS承载业务为基础的网络应用业务和基于WAP的各种应用。1.1.3 GPRS的技术优势利用GPRS进行数据传输具有很多优点,主要如下:1费用低廉,GPRS网络按照客户收发数据包的数据流量来收费,而不是采用SMS的按短信条数的方式收费,极大地降低了通信使用费用;2永远在线,客户随时都与网络保持联系,即使没有数据传送时,客户仍然在网上,与网络之间还保持一种连接;3快速登录,连接时间很快,GPRS无线终端一开机,就已经与GPRS网络建立了连接,每次登录网络,只需要一个激活过程,一般仅需1到3秒;4高速传输,由于GPRS网络采取了先进的分组交换技术,数据传输最高理论值可达171.2kb/s,实际使用中一般能达到2040kb/s;5组网灵活,中国移动的GPRS网络覆盖面广,可在全国漫游而不增加额外费用,适合用户以低成本方式在短时间内组建自己的跨区域性数据网络;1.2 基于GPRS数据采集系统研究的内容和目的GPRS的研究可以分为好多方面,而本课题研究的内容有:(1)实现底层单片机的数据采集系统的设计。(2)实现采集数据的GPRS传输。(3)实现服务器对GPRS传输数据的接收。1.2.1 单片机的数据采集系统的设计单片机数据采集系统的设计是本课题设计的最基础的部分,该部分得到的数据是GPRS数据传输的来源。这部分的研究重点是实现一定精度的数据采集,这里的数据可以是电压、温度以及压力等等,考虑到系统研究的主要内容是数据的传输部分。本课题在这部分采集的数据选择了比较容易实现的电压和温度数据。1.2.2 GPRS数据传输的实现GPRS数据传输部分利用GPRS模块将数据通过Internet传送到服务器,以实现数据的远程监控。该部分是本课题的核心部分。GPRS 数据通过Internet传送数据时使用的是TCP/IP协议。1.2.3 服务器对GPRS数据接收的实现LabVIEW是美国国家仪器公司(National Instrument Corp)开发的一种虚拟仪器平台。LabVIEW功能强大,提供了丰富的数据采集、分析和存储库函数以及包括GPIB、PXI、VXI、RS-232/485、USB在内的各种仪器通信总线标准的所有功能函数。利用这些功能函数,一个熟练的工程师可能只需要几分钟就能搭建一个数据采集系统。因此,采用LabVIEW开发虚拟仪器比采用传统的文本式语言更具有优势。本课题选择了基于LabVIEW的图形化编程语言G语言。LabVIEW不仅方便了初级水平的开发人员使用。更为重要的是,LabVIEW支持TCP/IP和UDP网络通讯协议,并提供了DataSocket和Web服务器等技术。这些技术使得数据采集系统可以方便地通过网络传输数据,既可以在现场通过计算机监控采集过程,同时又可以将数据进行传送,实现远程数据采集。1.3 课题内容及设计要求的介绍本课题的任务是设计一个基于GPRS数据采集系统,要实现以下要求:1、熟悉TCP/IP协议栈,各层数据包协议格式,串口数据监听方法和PPP协议实现方法。2、熟练掌握GPRS模块的使用方法及AT指令。3、熟悉LabVIEW软件操作及TCP/IP控件和相关开发。完成后实现以下功能:1、完成数据采集终端的硬件电路设计与测试(采集数据是温度、电压信息)。2、利用单片机结合TCP/IP协议实现基于GPRS的数据传输。3、实现上位机简单接收界面,完成数据采集终端采集信息的显示,上位机开发软件由LabVIEW实现。第2章 方案论证2.1 基于GPRS数据采集系统的工作原理在本系统中,单片机作为数据采集和GPRS模块的控制核心。单片机控制外围数据采集电路,采集到所需要的数据。然后将所得数据经过单片机的数据处理再由GPRS模块通过GSM网络传送到连接在因特网的服务器上。服务器通过上位机接受并处理收到的数据供监控人员使用。本系统在整个过程包括3大模块:(1)数据采集模块。(2)GPRS数据传输模块(3)服务器数据接收、处理模块。其基本工作原理框图如图2.1所示。图2.1 基于GPRS数据采集系统的原理框图2.2 各模块方案设计2.2.1 单片机数据采集系统的方案在单片机数据采集子系统中,要采集温度和电压数据。温度和电压数据的采集有以下几种方案。1、控制芯片的选择控制芯片对一个系统的设计来说是至关重要的,控制芯片的选择决定了一个系统的运行速度以及程序的稳定性等性能。本系统的控制芯片部分有两种方案可供选择。方案一:使用常用的STC89C52单片机作为本系统的控制核心。方案二:使用高性能的C8051F120单片机作为本系统的控制核心。STC89C52是基于8051内核的常用的8位单片机,需要外部电路提供系统的工作时钟,其指令周期是外部时钟的12分频。有256自己的内部RAM,最大指令执行速度可达2MHz。这种单片机使用方便、技术成熟性能稳定是现在工业控制常用的控制芯片。C8051F120是基于与8051兼容的CIP-51内核的增强8位单片机,片内集成锁相环,其流水线结构使其指令周期与时钟相同。C8051F120具有128KB可在系统编程的FLASH 存储器,8448(8K+256)字节的片内RAM,工作时钟可以由外部电路给出也可以由内部时钟基准给出。它有工作方式灵活、性能稳定、片内资源丰富等特点。另外,C8051F120单片机支持系统在线仿真,在系统开发时可以很方便的对系统进行调试。鉴于本系统需要大量的单片机资源,本系统选择C8051F120作为该系统的控制核心。2、温度传感器的方案选择方案一:利用热敏电阻的热敏效应,通过采集热敏电阻两端的电压变化计算出热敏电阻阻值的变化。进而通过热敏电阻阻值与温度之间的关系计算出当前工业现场的温度。热敏电阻对环境温度敏感度很高,而且热敏电阻价格比温度传感器要便宜得多,但是热敏电阻对环境温度的变化并不是呈正比的。要得到准确的温度值需要耗费大量的单片机资源,且实际操作起来不易实现,所以本课题不采用此方案。方案二:使用达拉斯公司生产的数字温度传感器DS18B20,由单片机时序控制传感器直接得到当前工业现场的温度。其结构框图如图2.2所示。单片机单线总线第1路温度采集第2路温度采集第n路温度采集图2.2 多路温度采集的原理方框图DS18B20支持单线总线,可以在一条总线上挂上无数传感器,实现多路的数据采集。虽然对温度变化不如热敏电阻敏感,但是一般的工业环境温度变化不是很快,DS18B20转换的速度相比起来已经足够快。并且价位适中,所以本设计采用了这种方案。3、电压采集方案选择方案一:使用常见的集成8路的8位A/D转换器ADC0809。方案二:使用片内集成的集成8路12位精度A/D。ADC0809是一种常用的逐次比较型的高速8位A/D转换芯片,该芯片有8路A/D输入通道,可以通过数据选择端口选择模拟信号的输入通道。ADC0809的数据输出端是并行的,需要占用大量的单片机I/O口。另外,ADC0809在A/D转换时需要外加一个工作时钟,这就增加了硬件的复杂度。而单片机C8051F120内部集成了8路12位的A/D转换器,它的工作时钟来自系统时钟的分频,所有的工作方式只要设置相关的寄存器即可,不需要外部电路的支持。综上,使用片内集成的A/D具有精度高、硬件电路简单、工作方式灵活等优点。所以,本系统选择了使用片内集成的A/D转换器作为电压采集单元。2.2.2 GPRS模块的选择方案论证由于本设计研究的是基于GPRS的数据采集系统,所以GPRS模块的选择对本设计的复杂程度起到了至关重要的作用。这里有以下两种方案。方案一:采用西门子公司生产的GPRS模块TC35I。方案二:采用华为公司生产的GPRS模块GTM900C。华为公司的GPRS模块GTM900C内含TCP/IP协议栈,而TC35I不含TCP/IP协议栈。开发过程中,如果使用TC35I必须要在程序中实现数据的包装等内容。除此之外,GTM900C有较高的市场占有率价格相对便宜一些。为了减小程序的复杂度,本设计选择了使用GTM900C作为本系统的GPRS模块。2.2.3上位机设计的选择方案论证上位机的设计对非软件专业的编程人员特别是一个初级水平的开发人员来说是一个比较棘手的问题。选择正确的编程环境可以降低系统开发的难度,减少系统开发的成本。以下有两种可行方案可供选择。方案一:利用C语言编程环境C+6.0编程环境开发上位机软件。方案二:利用LabVIEW编程环境开发上位机软件。LabVIEW使用的编程语言是一种图像化编程语言G语言。与C语言相比,执行效率相差不大,但是LabVIEW的编程方式决定了其编程过程中很少会出现语法错误。并且LabVIEW包含好多网络函数,可以缩短软件的开发周期。所以本课题使用LabVIEW编写上位机软件。第3章 系统硬件电路设计整个基于GPRS的数据采集系统的硬件部分包括C8051F120的最小系统、数据采集模块、电平转换模块和GPRS模块几个部分电路。该系统的原理框图如图3.1所示。图3.1 系统硬件电路框图3.1 单片机C8051F120最小系统单片机是数据采集部分和GPRS控制电路的控制核心。单片机最小系统指的是单片机正常工作的最小单元,是能使一个单片机正常工作的最小单元。本系统采用了Silicon Lab公司生产的C8051F120单片机。C8051F120单片机内部含有高速、流水线结构的8051 兼容的CIP-51内核,运行速度最高可达100MHz,是一种高性能的单片机。用于工业控制可以提高系统的性能。3.1.1 C8051F120单片机的介绍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 单片机外部时钟电路3.1.3 单片机复位电路复位电路允许很容易地将控制器置于一个预定的缺省状态。在进入复位状态时,将发生以下过程:1、CIP-51停止程序执行。2、特殊功能寄存器(SFR)被初始化为所定义的复位值。3、外部端口引脚被置于一个已知状态。4、中断和定时器被禁止。C8051F120有7个复位源,分别是:上电、掉电、外部/RST引脚、外部CNVSTR0信号、软件命令、比较器0、时钟丢失检测器及看门狗定时器。其中的外部/RST引脚提供了使用外部电路强制MCU进入复位状态的手段。在/RST引脚上加一个低电平有效信号将导致MCU进入复位状态。最好能提供一个外部上拉或对/RST引脚去耦合以防止强噪声引起复位。在低电平有效的/RST信号撤出后,MCU 将保持在复位状态至少12个时钟周期。从外部复位状态退出后,PINRSF 标志(RSTSRC.0)被置位。本课题的外部复位电路如图3.3所示。当按键未被按下时,对于直流电源电容器可以看做阻值为无穷大的电阻,此时有分压定理可知RES管脚为高电平。当按键按下时,电容器C4被短路而R2一端接地一段接/RST管脚,此时/RST管脚为低电平,单片机进入复位状态。按键弹起后,电容和电阻构成的RC振荡电路可以保持短时间的低电平确保单片机复位。然后又被外部电路拉为高电平,单片机进入正常工作状态。这是单片机复位电路的工作原理。图3.3 单片机复位电路3.1.4 单片机电源电路一个稳定的工作电源往往能够影响一个系统的稳定性。特别是对于使用电源基准的A/D转换,这时电源的稳定性影响了A/D转换的精度。本系统中的单片机系统供电电路就需要较高的稳定性以保证A/D转换的精度不受到电源的影响。本系统的供电电路采用了LM2937MP-3.3稳压芯片及其外围电路组成。单片机电源电路如图3.4所示,其中U2是外部电源的输入口,D1是二极管除了起到了防止电源反接的作用外还可以在电源短路的情况下充当保险丝的作用,C5、C6的作用是对输入电源滤波(C5抑制低频干扰,C6抵消输入和输出线较长时的电感效应,以防止自激振荡和抑制高频干扰),三端稳压器LM2937把输入电压稳定到3.3V,C7、C8、C9和R3进一步对三端稳压器的输出的直流信号稳压。这就构成了一个稳定的单片机系统电源电路。图3.4 单片机电源电路3.1.5 电压采集电路C8051F120单片机片内含有一个ADC0子系统。本系统的电压采集电路就是利用ADC0子系统实现的。ADC0子系统包含了一个9通道的可编程多路选择器(AMUX0),一个可编程增益放大器(PGA0)和一个100ksps、12 位分辨率的逐次逼近寄存器型ADC,ADC 中集成了跟踪保持电路和可编程窗口检测器。AMUX0、PGA0、数据转换方式及窗口检测器都可用软件通过图3.5所示的特殊功能寄存器来控制。由图3.5的功能框图可知,只有当ADC0控制寄存器中的AD0EN 位被置1时ADC0子系统(ADC0、跟踪保持器和PGA0)才被允许工作。当AD0EN 位为0时,ADC0 子系统处于低功耗关断方式。图3.5 12位ADC功能框图3.1.5.1 ADC工作方式介绍由图3.5可知ADC0子系统含有一个9路的多通道开关,其中前8个通道由于外部电压的输入选择。多路开关的工作模式可以通过通道选择寄存器AMX0SL和配置寄存器AMX0CF两个寄存器来设置。8路A/D的任一路的输入也是通过AMUX来选择的。1、启动方式ADC0的最高转换速度为100ksps,其转换时钟来源于系统时钟分频,其分频值保存在寄存器ADC0CF的ADCSC位。ADC0的启动转换方式有四种,由ADC0CN 中的ADC0 启动转换方式位(AD0CM1,AD0CM0)的状态决定。转换触发源有:1、向ADC0CN的AD0BUSY位写1;2、定时器3溢出(即定时的连续转换);3、外部ADC转换启动信号的上升沿,CNVSTR0;4、定时器2溢出(即定时的连续转换)。AD0BUSY位在转换期间被置1,转换结束后复0。AD0BUSY 位的下降沿触发一个中断(当被允许时)并将中断标志AD0INT(ADC0CN.5)置1。转换数据被保存在ADC 数据字的MSB 和LSB 寄存器:ADC0H 和ADC0L。转换数据在寄存器对ADC0H:ADC0L 中的存储方式可以是左对齐或右对齐,由ADC0CN 寄存器中AD0LJST 位的编程状态决定。当通过向AD0BUSY 写1启动数据转换时,应查询AD0INT 位以确定转换何时结束(也可以使用ADC0 中断)。建议的查询步骤如下:1、写0到AD0INT;2、向AD0BUSY 写1;3、查询并等待AD0INT 变1;4、处理ADC0 数据。本系统的A/D数据采集就是通过向AD0BUSY位写1启动的。2、电压基准若要保证电压采集的精度,一个合适的电压基准是必须的。C8051F120单片机集成了内部电压基准电路。内部基准电压可以通过VREF管脚连到应用系统的外部器件或图3.6所示的电压基准输入管脚。需要注意的是VREF管脚对AGND的负载最大不能超过200uA。最好在VREF管脚与AGND之间接入0.1 F 和4.7 F 的旁路电容。为了控制ADC模块的灵活性,C8051F120有三个电压基准输入引脚允许ADC使用外部电压基准或片内电压基准输出。寄存器REF0CN允许ADC0选择电压基准。电压基准的功能框图如图3.6所示。本系统使用的是内部电压2.4V基准。图3.6 电压基准功能框图3、相关寄存器配置说明电压采集过程中所使用的集成在单片机中A/D转换器的正常工作决定于相关寄存器的配置。下面就对ADC0工作相关的寄存器做一个简要的介绍。与ADC0工作相关的寄存器分别有:AMUX0配置寄存器AMX0CF、AMUX0通道选择寄存器AMX0SL、ADC0配置寄存器ADC0CF、ADC0控制寄存器ADC0CN、ADC数据字MSB寄存器ADC0H、ADC0数据字LSB寄存器ADC0L、电压基准控制寄存器REF0CN。寄存器AMX0CF的作用是选择ADC0的输入是单端输入模式还是差分输入模式。该寄存器所处的SFR页为0,SFR地址为:0XBA。本系统中8路电压都是单端输入模式,这时有AMX0CF=0x00。寄存器AMX0SL的作用是选择当前进行A/D转换的通道。其中7-4位未使用,3-0位的数值决定了A/D转换的通道。它与寄存器AMX0CF一起决定了ADC0的工作方式。该寄存器所处的SFR页为0,SFR地址为:0XBB。在本系统中要分别选通8个通道,这时在每一次电压采集之前都要让改变AMX0SL的取值,以选通不同的通道。寄存器ADC0CF是ADC0的配置寄存器。它的7-4位是SAR转换时钟周期控制位。SAR 转换时钟来源于系统时钟,由方程2给出,其中AD0SC 表示AD0SC4-0中保持的数值,CLKSAR0 表示所需要的ADC0 SAR 时钟(注:ADC0 SAR 时钟应小于或等于2.5MHz)。 () 方程3.1当ADC0SC=0000b时,SAR转换时钟=SYSCLK。可以在系统时钟很小时获得较快的转换速度。2-0位的设定决定了增益放大器(PGA)的放大倍数。该寄存器所处的SFR页为0,SFR地址为:0XBC。本系统使用的SAR时钟为频率2.5MHz,增益放大器(PGA)的倍数为1。寄存器ADC0CN是ADC0的控制寄存器。主要用于控制ADC0的启动方式,并反映ADC0的工作状态。该寄存器所处的SFR页为0,SFR地址为:0XE8。本系统使用的启动方式是向AD0BUSY位写1的启动方式,该寄存器的设置为ADC0CN=0x80。寄存器ADC0H是ADC数据字的高位,寄存器ADC0L是ADC数据字的低位。它们一起存储着A/D转换的结果。电压基准控制寄存器REF0CN定义了ADC的转换的基准电压。该寄存器所处的SFR页为0,SFR地址为:0XD1。本系统使用的是内部电压基准,该寄存器的设置为REF0CN=0x07。3.1.5.1 电压采集电路设计由于采用了片内A/D转换器,本课题的电压采集电路变得特别简单,只需要连接需要采集的电压到对应的管脚即可。本课题的电压采集电路如图3.7所示。R4-R11是滑动变阻器,由分压定理可知,滑动变阻器滑动时输入A/D的电压大小随滑片的位置而变化进而改变采集的电压数据。图3.7 电压采集电路电路图3.2 温度采集电路传统的温度传感器,如热电偶温度传感器,具有精度高,测量范围大,响应速度快等优点。但其输出的是模拟量,而现在的智能仪表大多需要使用数字量,有时还需要将测量结果以数字量的形式输入计算机,由于要将模拟量转换为数字量,其实现环节就变得比较复杂。而且硬件上还需要使用模拟开关、恒流源、D/A转换器,放大器等元器件,结构庞大,安装困难,造价昂贵,不适合普通场合的测温要求 。新兴的数字温度传感器如DS18B20,可以直接输出温度转换后的数字量,在保证测量精度的情况下,大大简化了系统软硬件的设计。这种传感器的测温范围有一定限制(大多在50125),多适用于环境温度的测量。3.2.1 DS18B20的介绍DS18B20是美国DALLAS公司推出的非接触式温度传感器,它使用了在板(on-board)专利技术,全部传感器和数字转换电路都集成在一个三极管大小的芯片中。它只有三个引脚(GND、DQ、VDD),通过一根数据线(DQ),它可以直接输出温度的数字量。该温度传感器具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域等优点。此外,温度传感器DS18B20可以以单线总线方式进行数据传输,这种通信方式可以减少系统的线路连接。DS18B20还支持多点组网功能,多个DS18B20可以并联在单线总线上,实现组网多点测温。数字温度传感器DS18B20的外形和引脚如图3.8所示。图3.8 DS18B20的外形和管脚图DS18B20传感器的特点主要有:1)单总线接口,只需要一根数据线就可完成通讯功能。2)测量范围为-55+125 。3)测量温度为-10+85时,测量精度为0.5 。4)可编程实现转换分辨率为9位、10位、11位或12位,完成12位温度转换最多需要750ms,分辨率越低,转换时间越短 。5)每一个传感器内固化64位的唯一序列号(即每一个传感器都有一个特定的ID),通过该序列号,可以唯一地选择该传感器。这种设计使得在一根数据线上连接多个传感器成为可能。DS18B20要完成测温工作,必须严格遵守其单总线协议及时序以确保数据的完整性。协议包括六种单总线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。通过单线总线端口访问DS18B20的协议为:(1)初始化。(2)ROM操作命令。(3)存储器操作命令。(4)执行/数据。3.2.2 DS18B20与单片机接口电路设计DS18B20与单片机的接口电路极为简单,因为DS18B20的引脚DQ是开漏结构,所以接一个4.7K的上拉电阻R2,与单片机某一I/O口(设计中选用P1.7管脚)相连接,VCC接3.3V的电压源,GND接地。如果需要多路温度传感器只需把它们并接到一起即可。本设计中,DS18B20与单片机的接口电路如图3.9所示。图3.9 DS18B20与单片机的接口电路3.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.10 串口电路电路图3.4 GPRS的工作原理及其模块电路GPRS模块是实现基于GPRS数据传输的核心,从以下几个部分对其进行详细介绍。3.4.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.4.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.4.3 华为GTM900C功能模块介绍本系统选用的GPRS模块是华为公司生产的GTM900C无线模块。华为GTM900C无线模块是一款双频段的GSM/GPRS无线模块。它支持标准的AT命令及增强的AT命令。提供丰富的语音和数据业务等功能,是高速数据传输等各种应用的理想解决方案。GTM900C使用AT指令集,通过UART接口与外部CPU进行通信,主要实现无线发送和接收、基带处理、音频处理等功能。GTM900C的逻辑框图如图3.11所示。3.11 GTM900C的逻辑框图3.4.4 GPRS模块的电路GPRS模块部分的电路分为四个部分:供电电源电路,串行通信电路,SIM卡外围电路以及GTM900C外围电路。其中串行通行电路与单片机系统的串行通行电路一样就不再介绍了。下面分别其他几个电路模块进行介绍。(1)供电电源电路本系统GPRS部分的供电系统和其他系统的供电电源部分大同小异,图3.12给出了本系统GPRS部分的供电电源电路。对于其各部分功能不再详细的给出。只不过稳压芯片换用了性能更好的LM2576。图3.12 GPRS部分的供电电路(2)SIM卡外围电路在本系统的工作工程中使用了移动通信公司提供的GPRS业务,要使用该项业务就要用到移动公司的SIM卡。SIM卡外围电路如图3.13所示。图3.13 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.20 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中存储的唯一的序列号来识别每一个器件的。由于该器件是基于单线总线的,所有的读写操作都有一条数据线来完成,所以在使用过程中总线控制器必须要严格的遵守给定的时序。在这部分程序设计中最重要的就是读写和复位操作,下面分别对其进行介绍。4.2.1.1 DS18B20的读字节子程序的设计由于DS18B20只有一根数据线与总线控制器相连接,当总线控制器需要对进行读写字节操作时必须对其逐位的读取或写入。根据其芯片手册,器件的读和写都是从低位到高位逐位进行的。由于读字节的时序和写字节的相似,限于篇幅这里只给出读字节的程序流程图。读字节的程序流程图如图4.2所示。图4.2 读字节子程序的程序流程图4.2.1.2 读取DS18B20序列号的程序流程图在多路温度采集系统中,一条总线控制器上可以挂上无数的DS18B20器件。单线总线控制器要依靠器件的唯一序列号才能识别出特定的器件。所以,读取器件序列号必须在温度采集之前进行。读取器件序列号有两种方法:(1)在总线控制器上逐个的挂上DS18B20器件,然后读取并记录其ROM信息。(2)同时挂上所有的器件,通过广播和排除的方法读取器件的序列号。考虑到第二种方案程序的复杂性,本课题采用了第一种方案。图4.3给出了读取DS18B20序列号的程序流程图。图4.3 读取DS18B20序列号的程序流程图4.1.1.3 两路温度采集的程序流程图读出DS18B20的序列号之后就可以利用读得的序列号逐一的进行温度采集了。要采集制定地点的温度,只要通过总线控制器将指定地点温度传感器件的序列号写入单线总线等待指定器件的响应然后再做其他相关操作就可以了。基于单线总线的数据采集的一般工作过程如下,首先对在挂在总线控制器上的所有温度传感器件进行复位操作,等待器件响应。如果器件复位成功,就可以发出匹配ROM指令(0x55),该指令发出后总线控制器上的DS18B20就处于等待匹配序列号的状态。这时总线控制器就可以发送64位序列号。挂在总线上的温度传感器件就会把收到的序列号与自己的序列号相匹配,如果匹配成功该器件就可以继续响应总线控制器的指令。然后总线控制器就可以发送启动温度转换或者读取温度的指令。然后把所读得

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论