基于DS18B20的远程粮仓温控系统

发布者:MysticalEssence最新更新时间:2010-01-25 来源: 微计算机信息关键字:远程温控系统  DSl8820  数据采集  Rs-485总线 手机看文章 扫描二维码
随时随地手机看文章

1 引言

    粮食温度检测是储备库中防止粮食霉烂、保质存放的重要环节。对于一个农业大国来讲,粮食生产、需求与储备量都很大。大量粮食在储备的过程中常因粮食湿度过大而升温发热,导致粮食大量腐烂变质,给国家带来巨大损失。所以粮仓监控系统中温度测量是整个系统的主要功能之一。

    本文介绍一种以单线数字温度传感器DS18B20为温度敏感元件的粮仓温控系统,系统以微型计算机为上位机, 89C51单片机为检测分机,DS18B20数字温度传感器直接与分机连接,分机与测温主机通过RS-485总线网进行通信,系统所有操作通过菜单命令完成。本文主要围绕下位机数据采集部分进行论述,并结合粮仓监控系统,对DSl8B20的这种单总线技术及其在本系统中的具体应用进行讨论。

2 系统硬件设计

2.1 系统的总体设计

     整个系统从结构上可分为三层:由微型计算机构成上位机——用户监控层,51 单片机系统分别构成测温主机——控制层和分机——温度数据采集层。上位机通过串行口与测温主机交换数据。测温主机与多台分机采用主从分布式结构。系统组成结构如图1 所示,测温主机与上位机通过RS-232 总线连接,测温分机与主机通过RS-485 总线连接。一台主机最多可管理64 台分机,一台分机可以测试大约1000 个温度点。本设计适用于中小型粮库。

 

图1 系统结构图

2.2 温度数据采集模块的设计

    DS18B20是美国DALLAS公司生产的数字温度传感器芯片,具有结构简单、体积小、功耗小、抗干扰能力强、使用方便等优点。可以在三根线上同时并联多个温度传感器,每台分机上可以连接多根电缆,每根电缆上可以并联几十个点,构成串行总线工作方式。由于18B20芯片送出的温度信号是数字信号,因此简化了A/D转换的设计,提高了测量效率和精度;并且芯片的ROM中存有其唯一标识码,即不存在相同标识码的DS18B20,特别适合与微处理芯片构成多点温度测控系统。

    每台测温分机的P0~P3 口分别可接N 个DS18B20 传感器(N<40)。上位机控制每台分机工作,实现多点测温。采集到的温度数据通过RS-485 通信总线连成的总线型网络进行传输,测温分机接收到DS18B20 所传送的温度数据,并将这些数据进行简单的处理发往上位机。主程序实现对DS18B20 的实时数据采集,将结果存贮于单片机的RAM 区。中断服务程序实现测温分机与上位机的通信。

    测温分机按照上位机的命令来完成温度数据采集和发送工作。其先将采集的数据存放于外部存储器SRAM中,当收到上位机的上传数据命令时,由发送子程序将数据进行简单处理后通过串口TXD端送出。在测温主机的配合下,数据上传到上位机并在上位机的监控界面显示给用户。


2.3 RS-485总线在温控系统中的设计

     在系统中用51单片机构成主从分布式测控系统, 具有价格低、控制功能强等许多特点。然而在应用中,测温主机与各粮仓相距较远,距离从几十米到几千米不等。对此远程粮仓,系统采用RS-485总线实现数据的远程传输。进行串行通信的主机与分机的RS-485接口电路如图2.3所示。该电路以MAX485芯片为核心器件进行半双工通信,具有通信功能强、可靠性高、程序设计简单等特点。

 

图2 典型RS-485(半双工)通信网

     在使用RS-485接口时,对于特定的传输线径,从发生器到负载,其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个长度主要是受信号失真及噪声等影响所限制。当数据信号速率降低到90Kbit/S以下时,假定最大允许的信号损失为6dBV时,则电缆长度被限制在1200M。实际上,在实用时是完全可以取得比它大的电缆长度。当使用不同线径的电缆时,取得的最大电缆长度是不相同的。例如:当数据信号速率为600Kbit/S时,采用24AWG电缆,计算可知最大电缆长度是200m,若采用19AWG,电缆则电缆长度将大于200m;若采用28AWG电缆,则电缆长度只能小于200m。

    RS-485总线是半双工方式,即总线上某一时刻不能同时出现发送和接收的情况。此方式用于多站互连时,可节省信号线,方便地实现RS-485的多点通信功能。考虑到中小型仓库地理位置特点,系统采用较低的接收、发送波特率,以换取更远距离的传送,此设计完全可以满足系统需求?/p>

3 软件设计

3.1 系统软件的工作流程

    DS18B20 以单总线协议工作,测温分机首先发送复位脉冲命令,使信号线上所有的DS18B20 芯片都被复位,接着发送ROM 操作命令,使序列号编码匹配的DS18B20 被激活进入接收内存访问命令状态;内存访问命令完成温度转换、温度读取等工作(单总线在ROM 命令发送之前存储命令和控制命令不起作用)。DS18B20 工作流程见图3 所示。

 

图3 DS18B20 工作流程图

    系统以ROM 命令和存储器命令的形式对DS18B20 操作。ROM 操作命令均为8 位,命令代码分别为:读ROM(0x33H)、匹配ROM(0x55H)、跳过ROM(0xCCH) 、搜索ROM(0xF0H) 和告警搜索(0xECH) 命令;存储器操作命令为:写暂存存储器(0x4EH) 、读暂存存储器(0xBEH)、复制暂存存储器(0x48H)、温度变换(0x44H)、重新调出EERAM(0xB8H)以及读电源供电方式(0xB4H)命令。其对时序及电特性参数要求较高,必须严格按照它的时序要求去操作。DS18B20 的数据读写由测温分机来完成,包括初始化、读数据和写数据。

    系统软件采用模块化程序设计,主从式结构通信方式。规定总线上有一个测温主机和64台分机,分机地址唯一。初始化完成后各分机均处于监听状态,采用中断方式工作,测温分机接受上位机命令,向DS18B20发出地址匹配命令帧,进入等待状态,每一帧数据位都对应着不同意义,若地址匹配成功则进行响应分机,否则继续等待,直到等待超时而重发命令。温度采集模块负责数据的采集工作。

    当缓冲区有数据时产生中断,程序转向中断服务子程序入口,中断子程序如下:

C程序

void SerialInterrupt() interrupt 4 //中断服务子程序

{

loop0:if(RI);SlaveNo=SBUF;

RI=0; while (! RI); //等待下一个命令

loop1:RI=0;

SensorNo=SBUF;

if(SlaveNo==0x81&SensorNo<0x80) //判别数据是否合法

{

while(1)

{

Gettemp(SensorNo); if(RI) goto loop1;

}

}

else goto loop0;

} //否则继续等待


3.2 DS18B20的时延及读写时序问题

    为保证DS18B20的严格I/O时序,需要作较精确的延时。在DS18B20的操作中,短时间延时是指10us以下的延时,在汇编语言下采用若干个NOP指令即可。因C51编译器提供了若干内部函数,(_nop_()函数为其中之一)其编译结果就是在对应位置嵌入一个nop汇编指令,所以短时间延时可利用_nop_()函数实现。较长时间延时指10us以上的延时。在DS18B20操作中,用到的较长时间延时有15us、90us、270us、540us等。因这些延时均为15us的整数倍,可编写一个Delayl5(n)函数,该函数可实现约15us×n的延时。

    DS18B20的初始化包括测温分机发送的复位脉冲和其向测温分机返回的存在脉冲。总线在开始时刻发出一个最短为480us的低电平复位脉冲,接着在该时刻释放总线并进入接收状态,DS18B20在接收到总线的电平上升沿,等待15—60us后在下一时刻发出60—240us时延的低电平存在脉冲信号,表明器件已接在总线上。时序如图4所示。

 

图4 初始化图

    当总线于该时刻从高电平拉至低电平时,就产生“写”的时间间隙。从该时刻开始15us之内,应将所需写的位送到总线上,DS18B20在该时刻后的15—45us期间内对总线采样,低电平写入0,高电平写入1。连续写两位之间的间隙应大于1us。写时序如图5所示。

 

图5 读写时序图

     起始时刻将总线从高电平拉至低电平,持续15us之后将总线释放,就产生读时间间隙。测温分机必须在该时刻之后的15us之内完成读总线状态,并在45us内释放总线,连续读两位之间的间隙应大于1us。读时序如图5所示。


4 总结

     本文论述了以DS18B20 为传感器,AT89C51 单片机为控制核心组成的远程粮仓温控系统。由于DS18B20 采用数字单总线技术,使得系统电路简单,易于扩展,加上总线数字化,使得系统的抗干扰性能好,可靠性高,测温范围比较宽(-55~125℃),与传统的温控系统相比还具有较高的性价比。此外,系统的应用范围不仅仅局限于粮仓领域,稍作改动还可作为其它自控领域的解决方案,如烟叶烘烤箱控制系统等。

     本文作者创新观点:采用新型数字温度传感器DS18B20,并将其与51 单片机、RS-485总线技术有机的结合在一起,组成抗干扰性能较强的温控系统。系统具有较高的性价比,已成功应用于许昌、尉氏等中型粮库中。该系统避免了因温度过高而导致大量粮食发霉变质所造成的损失,对于中型粮库可产生经济效益百万元以上,在粮食储藏技术领域内具有广阔的市场前景。

关键字:远程温控系统  DSl8820  数据采集  Rs-485总线 引用地址:基于DS18B20的远程粮仓温控系统

上一篇:基于C8051F350的无线同步数据采集系统的实现
下一篇:基于单片机的超声波测距系统的研究与设计

推荐阅读最新更新时间:2024-03-16 12:28

嵌入式卫星MODEM在监控和数据采集系统中的应用
在勘探、油气管线、输变电、水文、能源、环境、野生动物监测、无人驾驶飞机、训练靶机、民航无线“黑盒子”待领域的监控和数据采集(SCADA)系统中,人们的一些绝妙设计方案往往因为找不到一种可靠、可行的数据传输手段而难以实施。 Globalstar(全球星)的数据传输技术为涉及上述高新技术领域的应用提供了高性能价格比的解决方案。 基于拨号接入的数据传输方案 如图1所示,DCEg是Globalstar的卫星终端,有三种类型: 一种是以一块电路板形式的卫星MODEM模块,物理尺寸为190×75×17mm,重量为180g,数据接口为RS232。 第二种是带内置MODEM(built-in modem)的语音、数据两用卫星手
[嵌入式]
LabVIEW与单片机串口在数据采集系统中的应用
1.LabVIEW分析 LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显着区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其子程序(子VI)的结果、单步执行等等,便于程序的调试。采用数据流编程方式,程序框图中节点之间的数据流向决定了VI及函数的执行顺序。 它主要的方便就是,一个硬件的情况下,可以通过改变软件,就可以实现不同的仪器仪表的功能,非常方便,是相当于软件即硬件!现在的图形化主要
[单片机]
LabVIEW与单片机串口在<font color='red'>数据采集</font><font color='red'>系统</font>中的应用
MB90F462在智能家居监控系统数据采集卡中的应用
随着人们对居住环境的舒适度、便捷性和安全性需求的日益提高,智能家居系统应运而生。智能家居系统的核心功能是实现家用设备运行状况的实时监测和传输,主要包括:安全防盗报警;火警、水电、煤气泄漏等实时监测和自动报警;室内温度、湿度、灯光自动调节和遥控等 。因此采集和传输各种设备的运行信息是保证智能家居系统正常运行的关键。MB90F462是Fujitsu公司生产的一款通用16位单片机,最小指令周期仅为62.5ns,适用于工业控制和高速实时数据处理等场合;同时,该芯片具有多功能定时器和多脉冲发生器,适用于交流感应电机和直流无刷电机的控制。本文利用MB90F462丰富的片内资源设计了一款智能家居系统的低速数据采集卡。   1 系统结构及功能概
[工业控制]
MB90F462在智能家居监控<font color='red'>系统</font><font color='red'>数据采集</font>卡中的应用
数据采集系统基于AD转换芯片AD0809
提起LABVIEW,就不能不涉及到数据采集和控制。 曾经在网上辩论过LV是不是通用编程语言,NI的创始人的一篇文章的标题就是“LV是通用语言吗”,这的确很难说,说它是通用语言,因为它的确具备了通用语言的基本能力,但是只能说是基本的,但是对很多VC容易实现的东西,在LV中却是个问题,尤其是系统相关的一些操作,所以,我个人更愿意认为,LABVIEW是倾向于测量和控制的硬件工程师的语言,它是语言,而不是一般意义上的专用软件,所以,LABVIEW逐渐成为工科院校学生的基本课程。 数据采集是LV最擅长的领域,对于开发过 单片机 的人来说,数据采集是再熟悉不过的了,如果想真正了解数据采集,就必须从AD,DA,COUNTER等转换芯片开始,数据
[单片机]
<font color='red'>数据采集</font><font color='red'>系统</font>基于AD转换芯片AD0809
基于USB总线的高速数据采集系统
1 引言 现代工业生产和科学研究对数据采集的要求日益提高。目前比较通用的是在PC或工控机内安装数据采集卡(如A/D卡及422、485卡)。但这些数据采集设备存在以下缺陷:安装麻烦、价格昂贵、受计算机插槽数量、地址、中断资源的限制,可扩展性差,同时在一些电磁干扰性强的测试现场,可能无法专门对其作电磁屏蔽,从而导致采集的数据失真。 传统的外设与主机的通讯接口一般是基于PCI总线、ISA总线或者是RS-232C串行总线。PCI总线虽然具有较高的传输速度(132Mbps),并支持“即插即用”功能,但其缺点是插拔麻烦,且扩展槽有限(一般为5~6个),ISA总线显然存在同样的问题。RS-232C串行总线虽然连结简单,但其传输速度慢(56kb
[嵌入式]
如何使数据采集系统测试速度最大化?
34970/72A数据采集系统如何使测试速度最大化? 以 DC 测量为例,来设置数据采集系统最快的测试速度 Turn off the display 关闭显示 Turn off autozero 关闭自动归零 Turn off autoranging 关闭自动量程 Delays zero 延迟为0 Turn off scaling 关闭定标 Turn off alarms 关闭警报 Use 4.5 digits mode 使用4.5位模式 即为了得到最大的传输率,有必要为每个通道设置量程,分辨率,无延迟,自动调零关闭,并且选择一个较短的积分时间( PLCs 的小数字)经试验按照以下步骤进行设置后单通道测DCV可达到 500 读
[测试测量]
NetX片上系统数据采集远程监控的设计与实现
随着网络信息技术、工业控制的不断发展,远程监控应用领域不断拓宽,特别是实现现场控制嵌入式智能设备的通信和配置诊断,通过这些智能设备所提供的通信接口直接利用Internet将其接入集中监控管理系统,采用Web Sever访问技术,在远程实时获取设备运行的各种参数和实时数据,发送遥控命令,配置参数,获取设备的报警信息和运行状态等方面,具有深刻的现实意义和长远意义。PROFINET是一种最新的实时工业以太网协议,可以提供办公室和自动化领域的开放、一致连接,是实现工业实时以太网通信的主流技术之一。德国赫优讯NetX中包含EtherCAT,CANopen,Modbus,PROFINET等现场总线协议,是一种高度集成的网络控制器,具有全新的
[测试测量]
NetX片上<font color='red'>系统</font><font color='red'>数据采集</font>与<font color='red'>远程</font>监控的设计与实现
基于RS-485总线数据采集系统
  1 硬件设计   1.1 系统整体框图   系统实质上是一个集散控制系统,更准确地说是一个远程数据采集系统,系统概念设计图如图1所示,系统整体框架图如图2所示。         1.2 系统模块设计   1.2.1 信号获取模块   系统采集大坝坝内各个方位的形变,这种形变反映出各个方位的压力值。选用NZS - 25系列差阻式应变计,它是一种大量程大应变计,适用于大坝及其他混凝土建筑物内部、钢结构等的应变量测量。它与一般压力传感器的结构不同,是通过测量比值而得到压力值,其基本结构如图3所示。        图3中,R1、R2为敏感电阻,其基准电阻值为40Ω,在其没有受压时,2个电阻的阻
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved