分布式测温中传感器时序与温度读取研究.docx

上传人:安*** 文档编号:17774438 上传时间:2022-05-26 格式:DOCX 页数:12 大小:20.42KB
返回 下载 相关 举报
分布式测温中传感器时序与温度读取研究.docx_第1页
第1页 / 共12页
分布式测温中传感器时序与温度读取研究.docx_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《分布式测温中传感器时序与温度读取研究.docx》由会员分享,可在线阅读,更多相关《分布式测温中传感器时序与温度读取研究.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、分布式测温中传感器时序与温度读取研究ronggang导语:文中结合时序图对初始化时序、写时序和读时序进展了具体阐述,并给出了实现各种时序的软件程序摘要:在分布式测温系统中应用了大量的新型传感器DS18B20,DS18B20是单总线数字温度传感器其硬件接线简单,但时序非常复杂。正确使用单总线数字温度传感器,分析其时序关系,基于时序编制正确程序具有及其重要意义。文中结合时序图对初始化时序、写时序和读时序进展了具体阐述,并给出了实现各种时序的软件程序。应用初始化时序和读写时序实现了温度收集,并以传感器64位序列号读取程序的设计讲明了时序的综合应用。讲明了温度收集程序的设计思路。并给出了分布式测温系统

2、中的温度显示。文中基于时序进展温度的正确读取与显示已经应用于分布式测温系统中。关键词:写时序;读时序;温度传感器;温度收集Abstract:AlotofnewtemperaturesensorsDS18B20areusedindistributedtemperaturemeasurementsystem.DS18B20isasinglebusdigitaltemperaturesensor.Thehardwareconnectionoftemperaturesensorissimpleandtimeslotsareverycomplex.Usingthesinglebustemperature

3、correctly,analyzingtimeslotsanddesigningtheprogrambasedoncorrecttimeslotshaveanimportantmeaning.Initializationtiming,writingtimeslotsandreadingslotsareexpoundedinthispaperindetail.Softwareprogramofrealizingeachtimeslotsisprovided.Thetemperaturesamplingisrealizedbyuseofinitializationtiming,writingtim

4、eslotsandreadingslots.Thedesignof64-bitserialnumberreadingprogramillustratessyntheticalapplicationoftimeslots.Thedesignmethodoftemperaturesamplingisillustrated.Thetemperaturedisplayisgivenoutfordistributedtemperaturemeasurementsystem.Theaccuratetemperaturereadinganddisplaybasedontimeslotshavebeenapp

5、liedindistributedtemperaturemeasurementsystem.Keywords:WritingTimeSlots;ReadingTimeSlots;TemperatureSensor;TemperatureSampling在分布式测温系统中应用了大量的新型传感器DS18B20,DS18B20是单总线数字温度传感器其硬件接线简单,但时序非常复杂。要实现温度的正确读取,既要有对DS18B20的ROM操纵命令,又有一些功能命令。这些命令的执行,既有一定顺序,又有特定含义。都需要基于数字温度传感器初始化时序、写时序和读时序,按照严格的时序配合才能完成温度正确收集与读取。因

6、此要想正确使用单总线数字温度传感器,必须分析其时序关系,并且基于时序编制正确程序。单总线数字温度传感器时序分析与应用研究具有及其重要意义。2.数字温度传感器时序DS18B20与单片机只通过一条数据线连接,所以其数据的传输方式为串行方式。为了正确读取温度值,必须严格按照时序配合关系,进展程序编制。DS18B20有严格的通讯协议来保证数据传输的正确性和完好性。通讯协议规定了总线上的多种信号的时序。如:复位脉冲、响应脉冲、写0、写1、读0和读1等信号的时序。DS18B20是在严格的时序控制下进展正常操纵的。换句话讲,就是用较为复杂的软件来换取简单的硬件接口。因此要正确使用DS18B20,就必须理解其

7、初始化时序、写时序和读时序。2.1数字温度传感器初始化时序初始化时序有时也称复位时序,它是数据线上所有传输经过的开场。整个初始化经过由主设备发出的复位脉冲和DS18B20的响应脉冲组成。在主设备初始化的经过中,主设备通过拉低数据线至少480S,DS18B20即以为是接收到一个初始化脉冲,接着主设备释放数据线,在数据线上上拉电阻的作用下,数据线电平被拉高,并且主设备进入接收形式。在DS18B20检测到上升沿后,延时1560S,接着通过拉低总线60240S以产生应答脉冲。初始化时序如图2所示。图1是图2、图3和图4的线型示意图。align=center图1线型示意图图2初始化时序/align在分布

8、式测温系统中CPU采用AT89S52,温度读取的初始化程序如下所示:DATBITP1.0INI10:SETBDATMOVR2,#185INI11:CLRDATDJNZR2,INI11;复位脉冲时间600usSETBDAT;释放数据线MOVR2,#28INI12:DJNZR2,INI12;等待60usCLRCORLC,DAT;有无应答低电平JCINI10;假设无应答,初始化失败MOVR6,#40INI13:ORLC,DATJCINI14;数据线变高。初始化成功DJNZR6,INI13;低电平最多240usSJMPINI10;低电平持续大于240us,失败INI14:MOVR2,#222INI15

9、:DJNZR2,INI15;应答信号至少要持续480us2.2数字温度传感器写时序写时序包括写“0时序和写“1时序。写“1时序用于主设备向DS18B20写入1,写“0时序用于主设备向DS18B20写入0。无论是哪种写时序都至少需要60S,且在两次独立的写时序之间至少需要1S的恢复时间。两种写时序均起始于主设备拉低数据线电平。对于写“1时序,主设备在拉低数据线之后,紧接着必须在15S之内释放数据线,由上拉电阻将数据线拉至高电平;而对于写“0时序,在主设备拉低数据线后,只需在整个时序内保持低电平即可至少60S。在写时序开场后的1560S期间内,DS18B20读取数据线电平状态。假如此期间数据线为高

10、电平,那么对器件写入逻辑1,否那么写入逻辑0。写时序如图3所示。align=center图3数字温度传感器写时序/align写一位程序如下所示。程序中DAT为I/O口P1.0。WIR11:SETBDAT;拉高电平MOVR4,#5CLRDAT;高电平持续2us后拉低WIR12:DJNZR4,WIR12;等待10微秒MOVDAT,C;发送1位MOVR4,#23WIR13:DJNZR4,WIR13;保证写时间大于60usSETBDAT2.3温度传感器读时序DS18B20只有在检测到主设备启动读时序后才向主设备传输数据。所以一般在主设备发送了读数据命令后,必须马上产生读时序,以便DS18B20可以传输

11、数据。所有的读时序都至少需要60S,且在两次独立的读时序之间至少需要1S的恢复时间。每个读时序都由主设备提议,先使数据线为高电平,然后拉低数据线至少1S,再释放数据线。在主设备发出读时序之后,DS18B20开场在数据线上发送数据0或者1。假设其发送1,那么保持数据线为高电平。假设发送0,那么DS18B20拉低数据线,在该时序完毕后释放数据线。DS18B20发出的数据在起始时序之后15S内保证可靠有效。因此主设备在读时序期间必须释放数据线,并且要在时序开场后的15S之内读取数据线状态。写时序如图4所示。align=center图4数字温度传感器读时序/align读一位程序如下所示:RE11:SE

12、TBDAT;使数据线为高电平CLRDAT;高电平持续2us后拉低数据线MOVR4,#4NOP;持续低电平2usSETBDAT;释放数据线RE12:DJNZR4,RE12;等待8usMOVC,DAT;读入一位MOVR5,#28RE13:DJNZR5,RE13;保证一个读周期持续60usSETBDAT;使数据线为高电平3.初始化以及读写时序应用3.1温度收集程序设计单总线数字温度传感器DS18B20要完成温度的收集需要按顺序完成如下几个步骤:初始化、跳过ROM匹配、启动转换、等待转换完成、初始化、匹配ROM、读便笺式存储器、CRC校验、温度格式转换、保存温度值以及显示等其他处理。按照此步骤,程序设

13、计时首先就要按照初始化时序执行2.1所介绍的初始化程序INI10,其次要将跳过ROM匹配命令代码为CCH写入到DS18B20中,此时需根据2.2所介绍的数字温度传感器写时序编写对DS18B20一个写入字节程序WRITE,将跳过ROM匹配命令写入DS18B20。为了完成温度启动转换,需要将启动转换命令写入DS18B20中。用延时750ms等待转换完成。随后再按照初始化时序执行本文中2.1所介绍的初始化程序INI10,用写入一个字节程序将匹配ROM命令代码为55H写入到DS18B20中。为了完成读便笺式存储器操纵,需要先结合数字温度传感器写时序将读便笺式存储器命令代码为BEH写入到DS18B20中

14、,再用温度传感器读时序编写的读一个字节程序READ,连续读取DS18B20便笺式存储器中9个字节的内容。由此可见,要想实现温度正确收集,需要结合上述所介绍的初始化时序、温度传感器写时序和温度传感器读时序,才可以将所需的命令写入与读出。完成温度的正确读取。3.2温度传感器序列号读取程序设计每个单总线数字温度传感器DS18B20出厂时都有唯一的一个64位序列号,在使用温度传感器之前,需事先将每个温度传感器逐一挂接在I/O口如P1.0上,再读取温度传感器的序列号。当I/O口上挂接一个温度传感器DS18B20时,可以用读ROM命令完成64位序列号的读取。程序设计思路是首先将读ROM命令代码为33H送入

15、累加器A中,随后调用写入一个字节程序WRITE,然后调用读64位序列号程序DXLH。在写入一个字节程序WRITE中,置循环次数为8,再调用写入一位子程序,严格按照时序关系,执行传感器写时序,循环8次写完一个字节。在读64位序列号程序DXLH中,置内部RAM首地址为30H,置循环次数为8,调用读一个字节程序READ,将读取数据存放在内部RAM中。循环8次读完8个字节即64位序列号。读出的64位序列号将存放到内部RAM30H37H单元中。读一个字节程序READ如下所示。READ:MOVR6,#8;循环次数为8SETBDAT;读出一位程序,执行传感器读时序RD11:CLRDATMOVR4,#4NOP

16、;持续低电平2usSETBDAT;释放数据线RD12:DJNZR4,RD12;等待8usMOVC,DAT;读入一位RRCA;将读入数据移入累加器AMOVR5,#28RD13:DJNZR5,RD13;保证一个读周期持续60usDJNZR6,RD11;循环8次读一个字节SETBDAT上述程序执行完毕,可将温度传感器的64位序列号存放在单片机内部RAM30H37H单元中。4.分布式测温系统中温度显示分布式测温系统中,采用液晶显示可以实现房间号的显示,实际温度的显示,报警上限值的显示以及报警发生时的时间。还可以循环显示多个房间的实际温度和上限值。如图5所示。align=center图5分布式测温系统中

17、对应房间温度以及报警上限显示/align5.完毕语正确读取多个单总线数字温度传感器DS18B20的温度在分布式测温系统中是非常重要的。由于在程序设计时必须根据严格的时序关系,因此本文作者创新点是具体阐述了初始化时序、读写时序等复杂逻辑关系,设计了正确的温度序列号读取程序和温度读写程序并可以进展液晶显示。由于单总线数字温度传感器DS18B20各个功能的实现是通过各种ROM命令与操纵功能命令实现的,这些命令一环扣着一环,每个环都是一个时序的集合。在进展程序调试时,不能像调试其它程序一样用单步执行来进展跟踪,因此对错误查找和程序优化带来了很大的难度。在碰到程序运行出错时,只可以根据错误现象来分析、推测、修改和再运行来解决,而不能直接定位。文中所介绍的单总线数字温度传感器DS18B20程序设计思路与方法,目前已较好地应用于分布式测温系统中,并且知足一定精度要求。1沙占友,智能化集成温度传感器原理与应用M,机械工业出版社,20022周月霞,孙传友,DS18B20硬件连接及软件编程J,传感器世界,2001.123DallasSemiconductor.DS18B201-WireDigitalThermometerZ.DallasSemiconductorCo,20024徐维涛,郝晓弘,OCXO恒温槽温度控制系统控制方法研究J,微计算机信息,2006年第3期

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁