
DS18B20以单总线协议工作.pdf
3页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 发出地址匹配命令帧,进入等待状态,每一帧数据位都对应着不同意义, 若地址匹配成功则进行响应分机,否则继续等待, 直到等待超时而重发命令温度采集模块负责数据的采集工作当缓冲区有数据时产生中断,程序转向中断服务子程序入口,中断子程序如下:void SerialInterrupt() interrupt 4 //中断服务子程序{loop0:if(RI);SlaveNo=SBUF; RI=0; while (! RI); //等待下一个命令loop1:RI=0; SensorNo=SBUF; if(SlaveNo==0x81 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总线技术有机的结合在一起,组成抗干扰性能较强的温控系统系统具有较高的性价比,已成功应用于许昌、 尉氏等中型粮库中该系统避免了因温度过高而导致大量粮食发霉变质所造成的损失, 对于中型粮库可产生经济效益百万元以上,在粮食储藏技术领域内具有广阔的市场前景参考文献:[1] 来清民 .基于 CAN 总线的多功能大型粮仓远程监测系统[J]. 微计算机信息 ,2005,(07) [2] 李虹 ,温秀梅 ,高振天 .基于 MSP430 单片机和DS18B20 的小型测温系统[J]. 微计算机信息,2006, (20) 。












