1962.多点温度采集系统与控制器设计毕业设计.doc
-
资源ID:3929993
资源大小:859.50KB
全文页数:45页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
1962.多点温度采集系统与控制器设计毕业设计.doc
毕业设计题 目 多点温度采集系统与控制器设计学 院 控制科学与工程学院专 业 电气工程及其自动化姓 名 学 号 指导教师 二OO八年六月十四日目录摘要3ABSTRACT41 绪论51.1 选题背景51.2 发展趋势62 系统分析与方案确定72.1 系统分析72.2 传感器选型72.3 DS18B2072.3.1 DS18B20结构82.3.2 单总线92.3.3 DS18B20供电方式102.3.4 DS18B20寄存器112.3.5 DS18B20测温原理122.3.6 DS18B20时序及存储器命令132.4单片机选型152.4.1 单片机AT89S52152.4.2看门狗定时器(WDT)162.5 通讯模块172.5.1通信概述172.5.2 通信协议182.5.3 通信方式选用192.5.4 MAX485接口芯片192.6系统方案的确定193 硬件设计213.1 硬件结构框架213.2电源电路213.3键盘电路223.4 温度检测电路233.5 液晶显示电路243.6控制电路263.7串口通讯电路283.8 系统电路图294 软件设计304.1主程序设计304.2 键盘控制程序324.3温度检测程序设计334.3.1读序列号程序334.3.2温度检测主程序334.3.3温度计算流程图354.4 RS-485通信程序365 总结38致谢39参考文献40附录:部分系统程序41多点温度采集系统与控制器设计摘要本设计提出一种基于单片机并采用数字化单总线技术的温度测控系统应用于温室大棚的的设计方案。一旦该温度值超过我们预先设定的上、下限,单片机便启动报警系统进行报警,进而对大棚内温度进行控制。这种设计方案能对多点的温度进行实时巡检,各检测单元能独立完成各自功能,同时能够根据主控机的指令对温度进行定时采集,测量结果不仅能在本地显示,而且可以利用单片机串行口,通过RS-485总线及通信协议将采集的数据传送到计算机,进行进一步的存档、处理。主控机负责控制指令的发送,控制各个从机进行温度采集,收集测量数据,并对测量结果进行整理、显示和存储。该测控系统不需要任何固定网络的支持,安装简单方便,系统稳定可靠、可维护性好。关键词:温度检测;单片机;单总线;DS18B20ABSTRACTBased on the design of a microcontroller and a digital 1wire-bus technology temperature measurement and control system used in the greenhouse design. Once the temperature exceeded our pre-determined, the minimum level, Single-chip microcomputer will activate alarm system for alarm as well as on the greenhouse temperature control. This design programmes to more real-time inspection of temperature, the unit can detect independent of their respective functions, according to the instructions of Controller temperature regularly collected, measured not only in the local, and can use the microcontroller serial port, through the RS-485 bus and communication protocols will be collecting the data transmission to the computer, further filing, processing. Zhu Kongji responsible for the control sent commands to control all from the collection of temperature, the measurement data collection and measurement results are finishing, display and storage. The monitoring system does not require any fixed network support, installation simple, stable and reliable system, maintainability well. Keywords:DS18B20;Single-chip microcomputer;RS-485;1-Wire;1 绪论1.1 选题背景在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件、多路模拟开关、A/D转换器及单片机等组成的系统。传统方法精度不高,不稳定、成本高等问题,又需要后续信号处理电路 ,而且热敏电阻的可靠性相对较差 ,测量温度的准确度低 ,检测系统的精度差。要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。温室大棚是一种可以改变植物生长环境、为植物生长创造最佳条件、避免外界四季变化和恶劣气候对其影响的理想场所。实现温室大棚环境智能控制的目的是主动地调节温度、湿度、光照和二氧化碳气体浓度等环境因素,以满足作物最佳生长环境的要求。其中,温度是最重要的环境因数。目前,我国绝大多数温室大棚设备都比较简陋,温室大棚环境仍然靠人工根据经验来管理。环境因素的自动调节和控制的研究正处于起步阶段,已严重影响了设施农业的大力发展。特别是北方地区因其纬度高,寒冷季节长,四季温差和昼夜温差较大,不利于作物生长,目前应用于温室大棚的温度检测系统大多采用传统的温度检测。这种温度采集系统需要在温室大棚内布置大量的测温电缆,才能把现场传感器的信号送到采集卡上,安装和拆卸繁杂,成本也高。同时线路上传送的是模拟信号,易受干扰和损耗,测量误差也比较大,不利于控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高,能够综合处理多点温度信息的测控系统就很有必要。 热敏电阻或温敏元件多路模拟开关A/D转换器单片机 图1-1 传统温度检测系统目前,一些经济发达的国家和地区已经研制并实现计算机自动控制的现代化高科技温室,并且形成了令人惊羡的植物土厂。而我国的温室系统属于半开放系统,温室内环境控制水平比较低,仍靠人工根据经验来管理。而且,国内的控制系统主要用于单因子控制,因而设施现代化水平低,对温室环境的调控能力差,产品的质量和产量难以得到保证。正是这些塑料大棚和日光温室对于解决城乡人民的蔬菜供应发挥着主力军的作用。1.2 发展趋势随着设施农业的规模化和产业化程度的不断提高,网络通讯技术会在温室控制和管理系统中得到广泛的应用。温室内部的管理和控制实际上就具有局域网的特性,随着网络通讯技术的发展,地区之间甚至跨国之间可以通过互联网进行远程控制和管理。我国土地辽阔,气候复杂,种植模式多样,整体的种植水平较低,利用现代化网络技术进行在线和离线服务,从长远看具有广阔的应用前景。目前开发的温室计算机控制系统采用了主机终端模式,该模式通过一个主机作为控制中心,负责对其它各子系统进行控制管理,该模式不灵活且投入大。分布式计算机系统是计算机控制系统的发展方向,该系统采用了所谓的服务器客户模式。未来的计算机控制与管理系统是综合性、多方位的,温室环境测试与自动控制技术将朝多因素、多样化方向发展。温室环境测控技术的发展趋势随着传感技术、计算机技术和自动控制技术的不断发展,温室计算机的应用将由简单的以数据采集处理和监测,逐步转向以知识处理和应用为主。因此除了不断完善硬件控制设备外,主要是软件系统的研制开发将不断深入完善,其中主要以专家系统为代表的智能管理系统已取得了不少研究成果。近几年来神经网络、遗传算法、模糊推理等人工智能技术在设施农业中得到了不同程度的应用。温室生产系统由作物、各种农业机械设备、环境控制设备及生产管理者等组成了一个十分复杂的非线性系统。因此企业研究其输入与输出的定量关系是十分困难的。神经网络采用黑箱方法能把复杂的系统通过有限的参数进行表达。但神经网络方法也存在着明显的缺陷,即需要大量的历史资料,否则在进行外推和演绎时可靠性明显降低。网络通讯技术是上世纪 90 年代最具活力、发展速度最快的高科技领域。通过网络随意获取世界范围内的有用信息,指导自己的生产,甚至可以通过在线服务系统进行咨询,是未来农业的发展趋势所在。2 系统分析与方案确定2.1 系统分析本系统需要对系统应用环境的多个点的温度进行实时巡回检测,同时能够根据主控机的指令对指定点温度进行采集,测量结果不仅能在本地显示,而且可以利用单片机串行口,将采集的数据传送到计算机,进行进一步的存档、处理。主控机负责控制指令的发送,控制各个从机进行温度采集,收集测量数据,并对测量结果进行整理、显示和存储。根据系统的需要,本设计需要完成温度采集模块、通信模块、显示模块的硬件选型、电路设计与程序编写。2.2 传感器选型前应用多点温度检测系统大多采用由模拟温度传感器、多路模拟开关、A/D转换器及单片机等组成的传输系统。传统的温度检测装置抗干扰能力较差,多采用单片的温度传感器,例如LM35 、AD590 ,这些芯片不仅体积大,而且输出的信号都是模拟信号,必须要经过A/ D 转换,而且没有数字通信和网络功能,同时,模拟信号的远距离测量易遭受引线误差的影响,且外部附加电路较多,硬件结构复杂,增加了成本,在这样的情况下,温度传感器选用1-Wire总线数字式温度传感器DS18B20,测量温度范围为-55125。在-1085范围内,测量精度为±0.5,分辨率为程控可调的 0.50.0625,其与传统温敏模拟传感器相比,由于采取高集成度设计和数字化处理,在可靠性、抗干扰能力以及器件微小化方面都有明显的优点,其功能能够满足该温度检测系统需要。2.3 DS18B20DS18B20是美国DALLAS半导体公司生产的1-Wire总线数字式温度传感器,体积小、经济实用、方便灵活的优点,在现代温度采集系统中广泛应用开来。其封装如图2-1。 图2-1 DS18B20封装图2.3.1 DS18B20结构DS18B20的结构框图如图2-2,有4个主要组成部分:1) 64位光刻ROM数据存储器;2) 温度传感器;3) 非易失性电可擦写温度报警触发器TH和TL;4) 非易失性电可擦写设置寄存器; 图2-2 DS18B20结构框图每片DS18B20含有一个唯一的64位ROM编码。前8位是产品系列编码,接着的48位是产品序列号,最后8位是循环冗余(CRC)校验码。所以多片DS18B20能够连在同一条数据线上而不会造成混乱。这为温度的多点测量带来了极大的方便。温度传感器的转换结果以16位二进制补码的形式存放在便笺式存储器中,如果测量的温度值高于温度报警触发器TH或低于TL中的值,则DS18B20内部的报警标志位就被置位,表示温度测量值超出范围。DS18B20的温度转换位数可以选择912位,分别对应的测温分辨率为0.5,0.25,0.125,0.0625。不过温度转换位数越大,转换时间也越长。12位精度的最大转换时间为750ms。温度转换位数的改变是通过改变设置寄存器的值来实现的。温度报警触发器和设置寄存器都由非易失性电可擦写存储器(EEPROM)组成,设置值可以通过相应命令写入,一旦写入后不会因为掉电而丢失。CRC 发生器DS1820中有8位CRC存储在64位ROM的最高有效字节中。总线控制器可以用64位ROM中的前56位计算出一个CRC值,再用这个和存储在DS18B20中值进行比较,以确定ROM数据是否被总线控制器接收无误。CRC码图如2-3。图2-3 单线CRC码图CRC计算公式如2-1: CRC= (2-1)DS18B20同样用上面的公式产生一个8位CRC值,把这个值提供给总线控制器用来校验传输的数据。在任何使用 CRC 进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个CRC值,和存储在DS18B20的64位ROM中的值或DS18B20内部计算出的8位CRC值(当读暂存器时,做为第9个字节读出来)进行比较。CRC值的比较以及是否进行下一步操作完全由总线控制器决定。当在DS18B20中存储的或由其计算的CRC值和总线控制器计算的值不相符时,DS18B20 内部并没有一个能阻止命令序列进行的电路。单线CRC可以用一个由移位寄存器和XOR门构成的多项式发生器来产生。2.3.2 单总线近年来,美国的DALLAS半导体公司推出了一项特有的单总线(1-Wire Bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。它只定义了一根信号线,总线上的每个器件都能够在合适的时间驱动它,相当于把单片机的地址线、数据线、控制线合为一根信号线对外进行数据交换。为了区分这些芯片,厂家在生产每个芯片时,都编制了惟一的序列号,通过寻址就能把芯片识别出来。这样做能使这些器件挂在一根信号线上进行串行分时数据交换,大大简化了硬件电路。设备主机或从机通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-Wire器件、识别1-Wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能应答,因此主机访问1-Wire器件都必须严格遵循单总线命令序列,即初始化、ROM、命令功能命令。如果出现序列混乱,1-Wire器件将不响应主机搜索服命令,报警搜索命令除外。所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。单总线系统中配置的各种器件由美国DALLAS半导体公司提供的专用芯片来实现。这些芯片采用CMOS技术,耗电量都很小,从单总线上“偷”一点电(空闲时几W,工作时几mW)存在芯片内电容中就可以正常工作了,故一般不用另附电源。单总线上通常处于高电位(5V左右),每个器件都能在需要时驱动它。因此,挂在总线上的每个器件必须是漏极开路或者是三态输出,这样,不工作时不会给总线增加功耗。单总线技术作用距离在单片机直接驱动下可达200m,经扩展可达1000m,允许挂上百个器件,能满足一般测控系统的要求。单总线的数据传输有两种模式,通常以的13.6kb/s的速率通信,超速可达142kb/s。因此只能用于速度不高的场合。单总线技术比传统的方案具有较高的性能价格比,具有以下特点:1) 适用于低速测控场合,测控对象越多越显出其优越性。2) 性价比高,硬件施工、维修方便,抗干扰性能好。3) 具有校验功能,可靠性高。4) 软件设计规范,系统简明直观,易于掌握。2.3.3 DS18B20供电方式DS18B20有两种供电工作方式,一种是寄生电源工作方式,另一种是外接电源工作方式。第一种方法,如图2.2.4当进行温度转换或拷贝到 E2存储器操作时,给 I/O 线提供一个强上拉。用 MOSFET 把 I/O 线直接拉到电源上就可以实现,在发出任何涉及拷贝到 E2存储器或启动温度转换的协议之后,必须在最多 10s 之内把 I/O 线转换到强上拉,使用寄生电源方式时,VDD 引脚必须接地。第二种给 DS1820 供电的方法是从 VDD 引脚接入一个外部电源。这样做的好处是 I/O 线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片 DS18B20,而且如果它们都使用外部电源的话,就可以先发一个 Skip ROM 命令,再接一个 Convert T 命令,让它们同时进行温度转换。注意当加上外部电源时,GND 引脚不能悬空。(a)寄生工作方式( b)外接电源工作方式图2-4 DS18B20供电方式另外,温度高于 100时,不推荐使用寄生电源,因为 DS18B20 在这种温度下表现出的漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用 DS18B20 的 VDD 引脚。对于总线控制器不知道总线上的 DS18B20 是用寄生电源还是用外部电源的情况,DS18B20 预备了一种信号指示电源的使用意图。总线控制器发出一个 Skip ROM 协议,然后发出读电源命令,这条命令发出后,控制器发出读时间隙,如果是寄生电源,DS18B20 在单线总线上发回“0”,如果是从 VDD 供电,则发回“1”,这样总线控制器就能够决定总线上是否有 DS1820 需要强上拉。如果控制器接收到一个“0”,它就知道必须在温度转换期间给 I/O 线提供强上拉。2.3.4 DS18B20寄存器 DS18B20的内部存储器结构如图2-5所示。图2-5 DS18B20内部存储器结构它包括一个暂存RAM和一个非易失性电可擦除EERAM。其中暂存存储器作用是在单线通信时确保数据的完整性,它包括8个字节,头两个字节表示测得的温度读数,数据格式如下:MSB (单位:摄氏度) LSBSSSSSS=1时表示温度为负,S=0时表示温度为正,其余低位以二进制补码形式表示,最低位为1时表示0.0625。温度/数字对应关系如表所示。DS18B20内部暂存存储器的第5个字节是结构寄存器,它主要用于确定温度值的数字转换分辨率。字节结构如下:TMR1R011111 MSB LSB典型对应的温度值如表2-1表2-1典型温度/数据其中TM为测试模式位。当时TM=1,寄存器处于测试模式;当时TM=0,寄存器处于工作模式。R1和R0的设置组合与温度分辨率有关,分辨率如表2-2:表2-2 DS18B20温度转换时间表R1R0分辨率最大温度转换时间00993.75ms0110187.5ms1011375ms1112750ms2.3.5 DS18B20测温原理DS18B20的温度传感器是通过温度对振荡器的频率影响来测量温度,如图2-6所示。DS18B20内部有两个不同温度系数的振荡器。低温度系数振荡器输出的时钟脉冲信号在高温度系数振荡器产生的门周期内进计数。计数初值被预置在-55相对的一个基数值,如果计数器在高温度系数振荡器输出的门周期结束前计数到0,表示测量的温度值高于-55,被预置在-55的温度寄存器的值就增加l°,然后重复这个过程,直到高温度系数振荡器的门周期结束为止,这时温度寄存器中的值就是被测的温度值,这个值以16位二进制补码的形式存放在便笺式存储器中。温度值由主机通过发读存储器命令读出,经过取补和十进制转换,得到实测的温度值。斜率累加器是用于补偿和修正温度振荡器的非线性。 图2-6 DS148B20测温原理图2.3.6 DS18B20时序及存储器命令DS18B20要求有严格的协议来确保数据传输的完整性。协议由几种单线上信号类型组成:复位脉冲、存在脉冲、写0、写1、读0、读1。所有这些信号,除了存在脉冲之外,均由单片机产生。DS18B20时序图如图2-7所示。(1) 初始化时序开始与 DS18B20 进行任何通信之前,需进行初始化。首先,单片机发送(Tx)一个复位脉冲(最短为480s 的低电平信号)。接着单片机便释放此线并进入接收方式(Rx), 单线经过上拉电阻被拉至高电平状态。在检测到DQ引脚上的上升沿之后,DS18B20等待 1560s 并且接着发送存在脉冲(60240s 的低电平信号)以表示DS18B20的存在。(2) 读/写时间段通过使用时间段来读出和写入DS18B20的数据,时间段用于处理数据位和指定进行何种操作的命令字。1、写时间段(Write Time Slots)当单片机把单线从高逻辑电平拉至低逻辑电平时,产生写时间段。有两种类型的写时间段:写1时间段和写0时间段。所有时间段必须最短持续60s,在各写周期之间必须有最短为1s的恢复时间。在单线由高电平变为低电平之后,DS18B20在15s至60s的窗口之间对单线采样。如果单线为高电平,写1就发生。如果单线为低电平,便发生写0。对于单片机产生写1时间段的情况,单线必须先被拉至逻辑低电平,然后就被释放,使单线在写时间段开始之后的15s之内拉至高电平。对于主机产生写0时间段的情况,单线必须被拉至逻辑低电平且至少保持低电平60s。2、读时间段(Read Time Slots)当从DS18B20读数据时,单片机产生读时间段。当单片机把单线从逻辑高电平拉至低电平时,产生读时间段。单线必须保持在低逻辑电平至少1s;来自DS18B20 的输出数据在读时间段下降沿之后15s内有效。因此,为了读出从读时间段开始算起15s时的状态,单片机必须停止把单线驱动至低电平,如图3-3所示。在读时间段结束时,单线经过外部的上拉电阻拉回至高电平。所有读时间段的最短持续期限为60s,各个读时间段之间必须有最短为1s的恢复时间。 图2-7 DS18B20时序图对 DS18B20 的操作以 ROM命令和存储器命令形式出现。1)ROM 命令代码及其含义READ ROM命令代码33H:如果只有一片DS18B20,可用此命令读出其序列号,若在线DS18B20多于一个,将发生冲突。MATCH ROM命令代码55H:多个DS18B20在线时,可用此命令匹配一个给定序列号的DS18B20,此后的命令就针对该 DS18B20。SKIP ROM命令代码CCH:此命令执行后的存储器操作将针对在线的所有DS18B20。SEARCH RDH 命令代码F0H:用以读出在线的DS18B20的序列号。2)存储器操作命令代码及其含义WRITE SCRATCHPAD命令代码4EH:写两个字节的数据到温度寄存器。READ SCRATCHPAD 命令代码BEH:读取温度寄存器的温度值。COPY SCRATCHPAD 命令代码48H:将温度寄存器的数值拷贝到EERAM 中,保证温度值不丢失。CONVERT 命令代码44H:启动在线 DS12B80 做温度 A/D 转换。对DS18B20的设计,需要注意以下问题:1) 较小的硬件开销需要相对复杂的软件进行补偿,由于DS18B20与微处理器间采用串行数据传送,因此,在对 DS18B20 进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。2) 在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个 DS18B20,在实际应用中并非如此。当单总线上所挂DS18B20超过10 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。3) 连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m 时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。4) 在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20接触不好或断线,当程序读该 DS18B20 时,将没有返回信号,程序进入死循环。这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。2.4单片机选型随着科学技术的发展,单片机因具有集成度高、体积小、速度快、价格低等特点而在许多领域如过程控制、数据采集、机电一体化、智能化仪表、家用电器以及网络技术等方面得到广泛应用,从而使这些领域的技术水平、自动化程度大大提高。正因为如此,国内外多家电子生产厂商把目光投向了单片机的生产当中,其中最为著名的当数INTEL公司生产的MCS-51系列单片机。单片机型号的选择是根据控制系统的目标、功能、可靠性、性价比、精度和速度等来决定的。根据上述及本课题的实际情况,单片机型号的选择主要从以下两点考虑:一是要有较强的抗干扰能力。由于大棚工作环境比较恶劣,以及实际的运行工况比较复杂,这些都对单片机的干扰较大,所以应采用抗干扰性能较好的单片机机型;二是要有较高的性价比,大棚环境是一个时滞性较大的系统,对控制时间精度要求不需要很高,所以单片机不需采用高速的输出、输入口,51系列单片机在时间精度方面可以满足要求。为了使用方便,系统要求可以进行在线改写,要求片内具有可擦除程序存储器,另外为了以后系统升级的需要,在设计中采用52系列单片机。本设计选用AT89S52作为主控机。2.4.1 单片机AT89S52AT89S52是ATMEL公司生产的低功耗、高性能的采用CMOS工艺的8位单片机。其与工业标准型80C51单片机的指令系统和引脚完全兼容。其封装如图2-8。图2-8 AT89S52封装图AT89S52具有以下标准功能:8KB的可在线编程的Flash存储器,片内程序存储器为8KB,256字节RAM,32 位I/O 口线,具有3个可编程定时器,2个数据指针,8个中断源的中断系统,1个看门狗定时器,全双工串行口,2种低功耗节电运行方式。其功能能够满足该温度检测系统需要。2.4.2看门狗定时器(WDT)由于是和MCS-51系列相兼容,其各部分功能不作赘述,只介绍一下看门狗定时器。WDT是一种需要软件控制的复位方式。WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作;为了激活WDT,必须往WDTRST寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚一个高个电平输出。为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13 位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT 都会增加。为了复位WDT,用户必须向WDTRST 写入01EH 和0E1H(WDTRST 是只读寄存器)。WDT 计数器不能读或写。当WDT 计数器溢出时,将给RST 引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT 喂狗,就如同通常AT89S52 复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT 直到中断拉低后才开始工作。这就意味着WDT 应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。2.5 通讯模块2.5.1通信概述数据通信的基本方式可分为并行通信和串行通信两种。并行通信是指数据的各位同时进行传送的通信方式。其优点是传送速度快,缺点是传输线多,不宜实现远程通信。串行通信是指数据是一位一位地按顺序传送的通信方式。所以它所需的传输线条数很少,特别适用于分级、分层和分布式控制系统及远程通信。串行通信按照串行数据的同步方式又可以分为同步通信和异步通信两类。同步通信是按照软件识别同步字符来实现数据的发送和接收的,异步通信是利用字符的再同步技术的通信方式。系统采用的就是异步串行通信方式,来实现上位机和单片机间通讯的。在异步通信中,数据通常是以字符(或字节)为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,通过传输线被接收设备一帧一帧地接收。发送端和接收端可以有各自的时钟来控制数据的发送和接收,这两个时钟源彼此独立,互不同步。发送端何时开始发送和何时结束发送是由字符帧格式规定的。平时,发送线为高电平(逻辑“1”),每当接收端检测到传输线上发送过来的低电平逻辑“0”(字符帧中起始位)时就知道发送端己开始发送,每当接收端接收到字符帧中停止位时就知道一帧字符信息已发送完毕。字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等四部分组成。一部串行通信数据格式如图2-9。图2-9 异步串行通信数据格式各部分结构和功能:(1)起始位:位于字符帧开头,只占一位,始终为逻辑“0”低电平,用于向接收设备表示发送端开始发送一帧信息。(2)数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前高位在后。(3)奇偶校验位:位于数据位后,仅占一位,用于表征串行通信中采用奇校验还是偶校验,由用户根据需要决定。在测温系统中奇偶校验位被用来作为上位机和单片机间的多机通讯时的第九位。(4)停众位:位于字符帧末尾,为逻辑“1”高电平,通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已发送完毕,也为发送下一帧字符做准备。2.5.2 通信协议目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS-232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS-232采取不平衡传输方式,即所谓单端通讯。由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约20米,最高速率为20kb/s。RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为37k。所以RS-232适合本地设备之间的通信。1983年在RS-422基础上制定了RS-485标准,增加了多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围。RS-485与RS-232相比有很多优点,RS-485是一个多引出线接口,这个接口可以有多个驱动器和接收器,利用高阻抗接收器,一个RS-485可以最多连接256个节点。RS-485的驱动器和接收器价格便宜,而且只需要一个单+5V的电源来产生差动输出的最小1.5V的压差。RS-485总线采用平衡电路。每个信号都有专用的导线对,其中一根导线上的电压等于另一根导线上的电压取反,或者取补。接收器对这些电压之间的压差作出反应。平衡连线是无噪声的,因为这两根信号线都传递几乎相同大小的反向电流,大多数噪声电压在这两根导线上或多或少都同时出现,任何在一个导线上出现的噪声电压或从电缆外部祸合进入导线的干扰都被在另一根导线上的噪声电压所抵消。一个平衡接收器只看到传输的信号,噪声被清除或者极大的消弱。由于RS-485采用差动平衡电路,所以通讯距离远,最长可以达到1200米。为了构建无故障的RS-485连接,一般需遵循下面7条准则:1、对指定的比特率使用可能的最慢的驱动器。如果连接不需要太快的速度,使用低速的驱动器是改进信号质量的一个简单的、低成本的方法,同时使用低速芯片减弱了发散的电磁干扰。用导线的特征阻抗终止长导线。选择合适匹配的阻抗将会消弱反射的幅度并且在总体上改进信号的质量。3、将这些节点连接成总线拓扑。其优点是如果其中的一个连接出现故障或需要从一个接点处断开时,其他的接点之间的通讯可以正常地进行。4、偏置非活动连接。(开路和短路的保护)。其特点是在其中的一个驱动器出现故障时,使整个通讯还可以正常进行。5、使用双绞线电缆。双绞线在消除由于磁祸合引起的低频干扰方面是有效的。在一根双绞线中,电缆的每一次扭曲都交换导线的物理位置,磁祸合进入一根导线的任何干扰都在下一次扭曲中被另一根导线的等量的相反的干扰抵消。虽然不是100%的抵消,但也是被极大地消弱。6、限制公共模式电压。虽然RS-485是采用差动方式,但是为了使RS-485能正常工作,需要限制公共模式电压,一般每个接收器的输入对地电压在-7V到+12V之间,以接收器的地线为参考。7、在RS-485规定中一个连接可以最多有32个单位负载,如果超过了这个限制,通常采用转发器电路,一个转发器可以重新生成RS-485并且可以提供额外的32个接点。2.5.3 通信方式选用由于大棚环境与上位机的距离一般都会大于100米,且通信环境相当复杂,RS-232通信只适合短程通信,在这种环境下,RS-485通信比较适合本设计的需求。2.5.4 MAX485接口芯片MAX485接口芯片是Maxim公司的一种RS-485芯片。采用单一电源+5V工作,额定电流为300A,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。其引脚结构图如图