版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。分布式测温中传感器时序与温度读取研究时间:-02-2410:27:56来源:微计算机信息作者:在分布式测温系统中应用了大量的新型传感器DS18B20,DS18B20是单总线数字温度传感器其硬件接线简单,但时序非常复杂。要实现温度的正确读取,既要有对DS18B20的ROM操作命令,又有一些功能命令。这些命令的执行,既有一定顺序,又有特定含义。都需要基于数字温度传感器初始化时序、写时序和读时序,按照严格的时序配合才能完成温度正确采集与读取。因此要想正确使用单总线数字温度传感器,必须分析其时序关系,而且基于时序编制正确程序。单总线数字温度传感器时序分析与应用研究具有及其重要意义。2.数字温度传感器时序
DS18B20与单片机只经过一条数据线连接,因此其数据的传输方式为串行方式。为了正确读取温度值,必须严格按照时序配合关系,进行程序编制。DS18B20有严格的通信协议来保证数据传输的正确性和完整性。通信协议规定了总线上的多种信号的时序。如:复位脉冲、响应脉冲、写0、写1、读0和读1等信号的时序。DS18B20是在严格的时序控制下进行正常操作的。换句话讲,就是用较为复杂的软件来换取简单的硬件接口。因此要正确使用DS18B20,就必须了解其初始化时序、写时序和读时序。2.1数字温度传感器初始化时序
初始化时序有时也称复位时序,它是数据线上所有传输过程的开始。整个初始化过程由主设备发出的复位脉冲和DS18B20的响应脉冲组成。在主设备初始化的过程中,主设备经过拉低数据线至少480μS,DS18B20即认为是接收到一个初始化脉冲,接着主设备释放数据线,在数据线上上拉电阻的作用下,数据线电平被拉高,而且主设备进入接收模式。在DS18B20检测到上升沿后,延时15~60μS,接着经过拉低总线60~240μS以产生应答脉冲。初始化时序如图2所示。图1是图2、图3和图4的线型示意图。
图1线型示意图
图2初始化时序在分布式测温系统中CPU采用AT89S52,温度读取的初始化程序如下所示:
DATBITP1.0
INI10:SETBDAT
MOVR2,#185
INI11:CLRDAT
DJNZR2,INI11;复位脉冲时间600us
SETBDAT;释放数据线
MOVR2,#28
INI12:DJNZR2,INI12;等待60us
CLRC
ORLC,DAT;有无应答低电平
JCINI10;若无应答,初始化失败
MOVR6,#40
INI13:ORLC,DAT
JCINI14;数据线变高。初始化成功
DJNZR6,INI13;低电平最多240us
SJMPINI10;低电平持续大于240us,失败
INI14:MOVR2,#222
INI15:DJNZR2,INI15;应答信号至少要持续480us
RET2.2数字温度传感器写时序
写时序包括写”0”时序和写”1”时序。写”1”时序用于主设备向DS18B20写入1,写”0”时序用于主设备向DS18B20写入0。无论是哪种写时序都至少需要60μS,且在两次独立的写时序之间至少需要1μS的恢复时间。两种写时序均起始于主设备拉低数据线电平。对于写”1”时序,主设备在拉低数据线之后,紧接着必须在15μS之内释放数据线,由上拉电阻将数据线拉至高电平;而对于写”0”时序,在主设备拉低数据线后,只需在整个时序内保持低电平即可至少60μS。在写时序开始后的15~60μS期间内,DS18B20读取数据线电平状态。如果此期间数据线为高电平,则对器件写入逻辑1,否则写入逻辑0。写时序如图3所示。
图3数字温度传感器写时序写一位程序如下所示。程序中DAT为I/O口P1.0。
WIR11:SETBDAT;拉高电平
MOVR4,#5
NOP
CLRDAT;高电平持续2us后拉低
WIR12:DJNZR4,WIR12;等待10微秒
MOVDAT,C;发送1位
MOVR4,#23
WIR13:DJNZR4,WIR13;保证写时间大于60us
SETBDAT
RET2.3温度传感器读时序
DS18B20只有在检测到主设备启动读时序后才向主设备传输数据。因此一般在主设备发送了读数据命令后,必须马上产生读时序,以便DS18B20能够传输数据。所有的读时序都至少需要60μS,且在两次独立的读时序之间至少需要1μS的恢复时间。每个读时序都由主设备发起,先使数据线为高电平,然后拉低数据线至少1μS,再释放数据线。在主设备发出读时序之后,DS18B20开始在数据线上发送数据0或1。若其发送1,则保持数据线为高电平。若发送0,则DS18B20拉低数据线,在该时序结束后释放数据线。DS18B20发出的数据在起始时序之后15μS内保证可靠有效。因而主设备在读时序期间必须释放数据线,而且要在时序开始后的15μS之内读取数据线状态。写时序如图4所示。
图4数字温度传感器读时序读一位程序如下所示:
RE11:SETBDAT;使数据线为高电平
NOP
NOP
CLRDAT;高电平持续2us后拉低数据线
MOVR4,#4
NOP;持续低电平2us
SETBDAT;释放数据线
RE12:DJNZR4,RE12;等待8us
MOVC,DAT;读入一位
MOVR5,#28
RE13:DJNZR5,RE13;保证一个读周期持续60us
SETBDAT;使数据线为高电平
RET3.初始化以及读写时序应用
3.1温度采集程序设计
单总线数字温度传感器DS18B20要完成温度的采集需要按顺序完成如下几个步骤:初始化、跳过ROM匹配、启动转换、等待转换完成、初始化、匹配ROM、读便笺式存储器、CRC校验、温度格式转换、保存温度值以及显示等其它处理。按照此步骤,程序设计时首先就要按照初始化时序执行2.1所介绍的初始化程序INI10,其次要将跳过ROM匹配命令(代码为CCH)写入到DS18B20中,此时需根据2.2所介绍的数字温度传感器写时序编写对DS18B20一个写入字节程序WRITE,将跳过ROM匹配命令写入DS18B20。为了完成温度启动转换,需要将启动转换命令写入DS18B20中。用延时750ms等待转换完成。随后再按照初始化时序执行本文中2.1所介绍的初始化程序INI10,用写入一个字节程序将匹配ROM命令(代码为55H)写入到DS18B20中。为了完成读便笺式存储器操作,需要先结合数字温度传感器写时序将读便笺式存储器命令(代码为BEH)写入到DS18B20中,再用温度传感器读时序编写的读一个字节程序READ,连续读取DS18B20便笺式存储器中9个字节的内容。由此可见,要想实现温度正确采集,需要结合上述所介绍的初始化时序、温度传感器写时序和温度传感器读时序,才能够将所需的命令写入与读出。完成温度的正确读取。3.2温度传感器序列号读取程序设计
每个单总线数字温度传感器DS18B20出厂时都有唯一的一个64位序列号,在使用温度传感器之前,需事先将每个温度传感器逐一挂接在I/O口如P1.0上,再读取温度传感器的序列号。当I/O口上挂接一个温度传感器DS18B20时,能够用读ROM命令完成64位序列号的读取。程序设计思路是首先将读ROM命令(代码为33H)送入累加器A中,随后调用写入一个字节程序WRITE,然后调用读64位序列号程序DXLH。在写入一个字节程序WRITE中,置循环次数为8,再调用写入一位子程序,严格按照时序关系,执行传感器写时序,循环8次写完一个字节。在读64位序列号程序DXLH中,置内部RAM首地址为30H,置循环次数为8,调用读一个字节程序READ,将读取数据存放在内部RAM中。循环8次读完8个字节即64位序列号。读出的64位序列号将存放到内部RAM30H~37H单元中。读一个字节程序READ如下所示。READ:MOVR6,#8;循环次数为8
SETBDAT;读出一位程序,执行传感器读时序
NOP
NOP
RD11:CLRDAT
MOVR4,#4
NOP;持续低电平2us
SETBDAT;释放数据线
RD12:DJNZR4,RD12;等待8us
MOVC,DAT;读入一位
RRCA;将读入数据移入累加器A
MOVR5,#28
RD13:DJNZR5,RD13;保证一个读周期持续60us
DJNZR6,RD11;循环8次读一个字节
SETBDAT
RET上述程序执行完毕,可将温度传感器的64位序列号存放在单片机内部RAM30H~37H单元中。4.分布式测温系统中温度显示
分布式测温系统中,采用液晶显示能够实现房间号的显示,实际温度的显示,报警上限值的显示以及报警发生时的时间。还能够循环显示多个房间的实际温度和上限值。如图5所示。
图5分布式测温系统中对应房间温度以及报警上限显示5.结束语
正确读取多个单总线数字温度传感器DS18B20的温度在分布式测温系统中是非常重要的。由于在程序设计时必须根据严格的时序关系,因此本文作者创新点是详细阐述了初始化时序、读写时序等复杂逻辑关系,设计了正确的温度序列号读取程序和温度读写程序并能够进行液晶显示。由于单总线数字温度传感器DS18B20各个功能的实现是经过各种ROM命
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年养老机构服务质量评估标准试题
- 2026年会计师事务所审计实习生面试题库
- 不动产登记案例演讲稿
- 2026年窗口单位群众等候区秩序维护及引导知识试题
- 2026年禁毒社工实务操作水平测试题
- 研学导师培训会
- 2026年突发舆情应对处置意识形态测试题
- 尊重自然小学生演讲稿
- 2026年品牌保护与知识产权教育的融合
- 婴儿产品经理培训
- 《石家庄市消防设计审查疑难问题操作指南》修订版(2023.2.28)
- 2024年贵州贵阳城发能源产业有限公司招聘笔试参考题库含答案解析
- 4月原材料上涨行业分析报告
- 2024部编版初中历史七年纪下全册重点知识点归纳总结(复习必背)
- 《冯谖客孟尝君》
- 2022-2023学年重庆市渝东九校联盟高一(下)期中数学试卷(含解析)
- 《全国应急广播体系建设总体规划》
- 动物免疫学抗感染免疫
- 孙犁《芦花荡》阅读训练及答案
- 球罐不开罐检验方法及其相互验证
- GB/T 27476.3-2014检测实验室安全第3部分:机械因素
评论
0/150
提交评论