第一范文网 - 专业文章范例文档资料分享平台

粮仓温湿度监测系统项目设计方案

来源:用户分享 时间:2025/8/15 20:57:10 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

DS18B20温度传感器的内部存储器字节顺序如下:

温度低位 温度高位 TH TL 配置 保留 保留 保留 8位CRC 字节0 字节8 第1,2字节保存温度数值,第1字节为低位,第2字节为高位。

第3,4字节锁存器TH和TL保存非易市失性温度报警数据,可通过软件写入用户报警上下限。

第5字节是配置寄存器,其内容用于确定温度值的数字转换分辨率,DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如下:

TM R1 R0 1 1 1 1 1 该寄存器低5位都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动,R1和R0决定温度转换的精度位数,即是来设置分辨率,如表3.1所示(DS18B20出厂时被设置为12位)。

表3.1分辨率与转换时间表

R1 0 0 1 1 R0 0 1 0 1 分辨率 9位 10位 11位 12位 温度最大转换时间 93.75ms 187.5ms 375ms 750ms 由表可知,设定的分辨率越高,所需要的温度数据转换时间就越长。 第6~8字节未用,表现为全逻辑1;

第9字节读出的是前面所有8个字节的CRC码,可用来保证通信正确。CRC的产生在64 位 ROM的最高有效字节中存储有循环冗余校验码(CRC)。处理器根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。

3.3.3 DS18B20 的温度值格式

当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在内部存储器的第1,2字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.0625℃/LSB形式表示。

13

温度值格式如表3.2所示:

表3.2 DS18B20 温度值格式表

Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 LS Byte 23 22 21 20 2-1 2-2 2-3 2-4 Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit 9 Bit 8 MS Byte S S S S S 26 25 24

当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变换为原码(在取补),再计算十进制值。表3.3是一部分温度值对应表。

表3.3 部分温度值对应表

温度(℃) +125 +25.0625 +0.5 0 -0.5 -25.0625 -55 0000 0111 0000 0001 0000 0000 0000 0000 1111 1111 1111 1110 1111 1100 二进制 1101 0000 1001 0001 0000 1000 0000 0000 1111 1000 0110 1111 1001 0000 十六进制 07D0H 0191H 0008H 0000H FFF8H FE6FH FC90H 3.3.4 DS18B20单总线(1-Wire)的基本原理

1.概述

单总线(l-Wire)采用单根信号线,既传输时钟,又传输数据,而且数据传输是双向,它具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。

1-Wire单总线适用于单个主机系统,能够控制一个或多个从机设备。当只有一个从机位于总线上时,系统可按照单节点系统操作,而当多个从机位于总线上时,则系统按照多节点系统操作。

为了较为全面地介绍单总线系统,将系统分为三个部分讨论硬件结构命令序列和信

14

号方式(信号类型和时序)。DS18B20的测温原理图如图3.4所示:

斜率累加器 预置 计数比较器 低温度系数振荡器 减法计数器1 增加 预置 减到温度寄存器 停 止 高温度系数振荡 减法计数器2 减到0

图3.4 DS18B20测温原理图

图3.4中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其晶振频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20就低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。图3.4中的斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,知道温度寄存器仍达到被测温度值。

2.命令序列

典型的单总线命令序列如下: 第一步:初始化;

15

第二步:ROM命令(跟随需要交换的数据); 第三步:功能命令(跟随需要交换的数据)。

每次访问单总线器件,必须严格遵守这个命令序列,如果出现序列混乱,则单总线器件不会响应主机。但是,这个准则对于搜索ROM命令和报警搜索命令例外,在执行两者中任何一条命令之后,主机不能执行其后的功能命令,必须返回至第一步。

1)初始化

基于单总线上的所有传输过程都是以初始化开始的,初始化过程由主机发出的复位脉冲和从机响应的应答脉冲组成。应答脉冲使主机知道,总线上有从机设备,且准备就绪。

2)ROM命令

在主机检测到应答脉冲后,就可以发出ROM命令。这些命令与各个从机设备的唯一64位ROM代码相关,允许主机在单总线上连接多个从机设备时,指定操作某个从机设备。这些命令还允许主机能够检测到总线上有多少个从机设备以及其设备类型,或者有没有设备处于报警状态。从机设备可能支持5种ROM命令(实际情况与具体型号有关),每种命令长度为8位。主机在发出功能命令之前,必须送出合适的ROM命令。ROM命令主要包括:搜索[0F0h]、读ROM[33h]、匹配ROM[55h]、跳越ROM[0CCh]、报警搜索[0ECh]。

3)功能命令

在主机发出ROM命令,以访问某个指定的单总线器件,接着就可以发出单总线器件支持的某个功能命令。功能命令主要包括:转换温度[44h]、读暂存器[0BEh]、写暂存器[4Eh]、复制暂存器[48h]、回读EEPROM[0B8h]、读供电方式[0B4h]等。

3.信号方式

所有的单总线器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲、写0、写1、读0和读1。所有这些信号,除了应答脉冲以外,都由主机发出同步信号。并且发送所有的命令和数据都是字节的低位在前,这一点与多数串行通信格式不同(多数为字节的高位在前)。 3.3.5 DS18B20与单片机接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1

16

搜索更多关于: 粮仓温湿度监测系统项目设计方案 的文档
粮仓温湿度监测系统项目设计方案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4c5f00p0g47916095eiv3gyk618jsm0082k_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top