18B20应用手册
DS18B20数据手册-中文版-140407

DS18B20
见图 2)。符号标志位(S)温度的正负极性:正数则 S=0,负数则 S=1。如果 DS18B20 被定义为 12 位的转换精度,温度寄存器中的所有位都将包含有效数据。若为 11 位转换精度,则 bit 0 为未 定义的。若为 10 位转换精度,则 bit 1 和 bit 0 为未定义的。 若为 9 位转换精度,则 bit 2、bit 1 和 bit 0 为未定义的。表格 1 为在 12 位转换精度下温度输出数据与相对应温度之间的关系表。
管脚定义图
DS18B20
订购信息
零件
温度范围
引脚数-封装
DS18B20
-55℃至+125℃
3 TO-92
DS18B20+
-55℃至+125℃
3 TO-92
DS18B20/T&R
-55℃至+125℃
3 TO-92(2000 片)
DS18B20+T&
-55℃至+125℃
3 TO-92(2000 片)
DS18B20-SL/T
VPU
DQ
GND
VDD
TH
CPP
TL
VDD
说明-温度测量
DS18B20 的核心功能是直接温度-数字测量。其温度转换可由用户自定义为 9、10、11、12 位 精度分别为 0.5℃、0.25℃、0.125℃、0.0625℃分辨率。值得注意的是,上电默认为 12 位转换精 度。DS18B20 上电后工作在低功耗闲置状态下。主设备必须向 DS18B20 发送温度转换命令[44h] 才能开始温度转换。温度转换后,温度转换的值将会保存在暂存存储器的温度寄存器中,并且 DS18B20 将会恢复到闲置状态。如果 DS18B20 是由外部供电,当发送完温度转换命令[44h]后, 主设备可以执行“读数据时序”(请参阅“1-Wire 总线系统”章节),若此时温度转换正在进行 DS18B20 将会响应“0”,若温度转换完成则会响应“1”。如果 DS18B20 是由“寄生电源”供电, 该响应的技术将不能使用,因为在整个温度转换期间,总线必须强制拉高。该总线的“寄生电源” 供电方式将会在“DS18B20 的供电”章节中详细讲解。
18B20应用手册

18B20应⽤⼿册DoYoung 电⼦技术—创造独⽴资源!18B20温度传感器应⽤解析DoYoung 原创V2.0 2007.3.16DS18B20温度传感器的种类众多,在应⽤与⾼精度、⾼可靠性的场合时DALLAS(达拉斯)公司⽣产的DS18B20温度传感器当仁不让。
超⼩的体积,超低的硬件开消,抗⼲扰能⼒强,精度⾼,附加功能强,使得DS18B20更受欢迎。
对于我们普通的电⼦爱好者来说,DS18B20的优势更是我们学习单⽚机技术和开发温度相关的⼩产品的不⼆选择。
了解其⼯作原理和应⽤可以拓宽您对单⽚机开发的思路。
DS18B20的主要特征:.. 全数字温度转换及输出。
.. 先进的单总线数据通信。
.. 最⾼12位分辨率,精度可达⼟0.5摄⽒度。
.. 12位分辨率时的最⼤⼯作周期为750毫秒。
.. 可选择寄⽣⼯作⽅式。
.. 检测温度范围为–55°C ~+125°C (–67°F ~+257°F).. 内置EEPROM,限温报警功能。
.. 64位光刻ROM,内置产品序列号,⽅便多机挂接。
.. 多样封装形式,适应不同硬件系统。
DS18B20芯⽚封装结构:图1DS18B20引脚功能:·GND 电压地·DQ 单数据总线·VDD 电源电压·NC 空引脚DS18B20⼯作原理及应⽤:DS18B20的温度检测与数字数据输出全集成于⼀个芯⽚之上,从⽽抗⼲扰⼒更强。
其⼀个⼯作周期可分为两个部分,即温度检测和数据处理。
在讲解其⼯作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,⽤于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后⾯48位是芯⽚唯⼀的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由⽤户更改。
DS18B20共64位ROM。
DS18B20的使用方法

图1 DS18B20的封装图DS18B20的特点:1、DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内2、温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃3、支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定4、工作电源: 3~5V/DC5、可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温,测量结果以9~12位数字量方式串行传送6、在9位分辨率时最多在 93.75ms内把温度转换为数字量,12位分辨率时最多在750ms内把温度值转换为数字量,速度更快7、测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力8、负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作1)产品型号与规格型号测温范围安装螺纹电缆长度适用管道TS-18B20 -55~125 无 1.5 mTS-18B20A -55~125 M10X1 1.5m DN15~25TS-18B20B -55~125 1/2G 接线盒 DN40~60DS18B20测温原理如图2所示:图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。
高温度系数晶振随温度变化其振荡率明显改变,所产生的信号作为计数器2的脉冲输入。
计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。
DS18B20中文手册

DS18B20 供电
达拉斯 半导体
DS18B20 可编程分辨率的 单总线®数字温度计
特征
引脚排列
l 独特的单线接口仅需一个端口引脚 进行通讯
l 每个器件有唯一的 64 位的序列号存 储在内部存储器中
l 简单的多点分布式测温应用 l 无需外部器件 l 可通过数据线供电。供电范围为 3.0V
到 5.5V。 l 测温范围为-55~+125℃(-67~+
外部电源给 DS18B20 供电 图 5
64 位(激)光刻只读存储器
每只 DS18B20 都有一个唯一存储在 ROM 中的 64 位编码。最前面 8 位是单线系列 编码:28h。接着的 48 位是一个唯一的序列号。最后 8 位是以上 56 位的 CRC 编 码。CRC 的详细解释见 CRC 发生器节。64 位 ROM 和 ROM 操作控制区允许 DS18B20 作为单总线器件并按照详述于单总线系统节的单总线协议工作。
每个 DS18B20 都有一个独特的 64 位序列号,从而允许多只 DS18B20 同时连在 一根单线总线上;因此,很简单就可以用一个微控制器去控制很多覆盖在一大片 区域的 DS18B20。这一特性在 HVAC 环境控制、探测建筑物、仪器或机器的温 度以及过程监测和控制等方面非常有用。
详细的引脚说明 表 1
8 引脚 SOIC 封装* TO-9 封装
5
1
4
18B20说明文档

DS18B20部分说明DS18B20的特点:DS18B20 单线数字温度传感器,即“一线器件”,其具有独特的优点:( 1 )采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20 的双向通讯。
单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
( 2 )测量温度范围宽,测量精度高DS18B20 的测量范围为-55 ℃~+ 125 ℃; 在-10~+ 85 C范围内,精度为±0.5°C 。
( 3 )在使用中不需要任何外围元件。
( 4 )持多点组网功能多个DS18B20 可以并联在惟一的单线上,实现多点测温。
( 5 )供电方式灵活DS18B20 可以通过内部寄生电路从数据线上获取电源。
因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。
( 6 )测量参数可配置DS18B20 的测量分辨率可通过程序设定9~12 位。
( 7 ) 负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
( 8 )掉电保护功能DS18B20 内部含有EEPROM ,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。
DS18B20 具有体积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。
DS18B20内部结构:主要由4部分组成:64 位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。
ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。
64位ROM的排的循环冗余校验码(CRC=X^8+X^5+X^4+1)。
ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。
18B20操作手册

18B20操作方法:一、初始化18B20根据初始化时序图,编写初始化函数。
1.发送初始化脉冲,即DQ=0;延时486us。
2.释放总线,即DQ=1;延时57us。
3.读总线状态,检测是否收到存在脉冲。
即判断DQ是否为0,若为0则证明18B20存在。
4.释放总线,即DQ=1;延时57us。
二、向18B20写入ROM指令根据写0、1时序图,编写写“位”函数。
先判断写入数据为“1”还是“0”,可通过“按位与(&)、右移一位(>>1)”运算来实现。
若写入位数据为“1”,执行以下时序:1.发送时隙初始化脉冲,即DQ=0;延时2us。
2.释放总线,即DQ=1;延时45us。
若写入位数据为“0”,执行以下时序:1.发送时隙初始化脉冲,即DQ=0;延时57us。
2.释放总线,即DQ=1;延时2us。
按照以上时序规则,依次写入8个位(借助for循环),即可实现写入ROM指令的操作。
编写好写ROM指令函数后,依次执行写(0xCC)、写(0xBE)两条指令,便可进入下一步。
三、从18B20读出温度数据根据读0、1时序图,编写读“位”函数。
1.发送时隙初始化脉冲,即DQ=0;延时1us。
2.释放总线,即DQ=1;延时2us(要求15us内完成该操作,故延迟较小)。
3.单片机采样,即读取DQ值(temp=DQ);延时45us。
按照以上读时隙规则,依次读出8个位(借助for循环和左移7位(7<<)、右移1位(>>1)及按位与(&)的运算)便可形成一个字节的数据。
四、生成温度数据对读出的字节数据进行处理,转换成整数。
1.初始化18B20。
2.写入ROM指令(写(0xCC)、写(0xBE)两条指令)。
3.接收数据。
(先低字节,后高字节)4.处理数据。
(a、定义无符号整形变量(占2个字节);b、高字节左移8位(8<<)并赋值给无符号整形变量,并判断该数据的正负(制定数据并按位与(&)),例如判断(high&0xF8)==0xF8,根据情况添加正负标志位flag=1或flag=0。
(温度)18b20

uchar i; for(i=0;i<8;i++) { Dq=0; Delay(5); Dq=Ddata&0x01; Delay(50); Dq=1; Ddata=Ddata/2; } }
/****************************************************************************** ** 函数名:uchar Read_Byte(void) ** 输 ** 输 入:无 出: Ddata;
/****************************************************************************** ** 函数名:void Rst_1820() ** 输 ** 输 入:无 出: Tmep_int;为复位成功后的数据.为 1 则复位成功;
** 功能描述:帮助 18B20 复位; ** 全局变量:Tmep_int 为全局变量; ** 调用模块:Delay();延时函数; ** 作 ** 日 ** 修 ** 日 者:wangjin 期:2007.08.28 改: 期:
------------------------------------------------------------------------------** 作 者:wangjin
** 日 ** 修 ** 日
期:2007.08.28 改: 期:
** 版本 :V1.0 ******************************************************************************* / /* void Get_Temp(void) { Rst_1820(); //Display(10); Write_Byte(0xcc); //Display(10); Write_Byte(0x44); //Display(10); Rst_1820(); //Display(10); Write_Byte(0xcc); //Display(10); Write_Byte(0xbe); //Display(10); Tmep_DataL=Read_Byte();//Display(10); Tmep_DataH=Read_Byte();//Display(10); Tmep_Data=(Tmep_DataH<<4)|(Tmep_DataL>>4); Tmep_DataH=Tmep_Data/10; Tmep_DataL=Tmep_Data%10; } /****************************************************************************** ** 函数名:void Delay(uchar Ddata) ** 输 ** 输 入:Ddata;延时的时间值; 出:无;
18B20详细介绍及程序

1.DS18B20基本知识DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。
因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。
1、DS18B20产品的特点(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55。
C到+125。
C之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
2、DS18B20的引脚介绍TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。
(底视图)图1表1DS18B20详细引脚功能描述3.DS18B20的使用方法由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。
由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。
DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。
该协议定义了几种信号的时序:初始化时序、读时序、写时序。
所有时序都是将主机作为主设备,单总线器件作为从设备。
而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。
数据和命令的传输都是低位在先。
DS18B20的复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。
对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。
DS18B20在完成一个读时序过程,至少需要60us才能完成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DoYoung 电子技术—创造独立资源!18B20温度传感器应用解析DoYoung 原创V2.0 2007.3.16DS18B20温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。
超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。
对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。
了解其工作原理和应用可以拓宽您对单片机开发的思路。
DS18B20的主要特征:.. 全数字温度转换及输出。
.. 先进的单总线数据通信。
.. 最高12位分辨率,精度可达土0.5摄氏度。
.. 12位分辨率时的最大工作周期为750毫秒。
.. 可选择寄生工作方式。
.. 检测温度范围为–55°C ~+125°C (–67°F ~+257°F).. 内置EEPROM,限温报警功能。
.. 64位光刻ROM,内置产品序列号,方便多机挂接。
.. 多样封装形式,适应不同硬件系统。
DS18B20芯片封装结构:图1DS18B20引脚功能:·GND 电压地·DQ 单数据总线·VDD 电源电压·NC 空引脚DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。
其一个工作周期可分为两个部分,即温度检测和数据处理。
在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。
18B20共有三种形态的存储器资源,它们分别是:ROM 只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。
数据在出产时设置不由用户更改。
DS18B20共64位ROM。
RAM 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。
第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。
在上电复位时其值将被刷新。
第5个字节则是用户第3个EEPROM的镜像。
第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。
第9个字节为前8个字节的CRC码。
EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。
RAM及EEPROM结构图:图2我们在每一次读温度之前都必须进行复杂的且精准时序的处理,因为DS18B20的硬件简单结果就会导致软件的巨大开消,也是尽力减少有形资产转化为无形资产的投入,是一种较好的节约之道。
控制器对18B20操作流程:1,复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20 单总线至少480uS的低电平信号。
当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。
2,存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS 后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。
至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。
如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。
3,控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。
ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。
其主要目的是为了分辨一条总线上挂接的多个器件并作处理。
诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。
ROM指令在下文有详细的介绍。
4,控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。
操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。
存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。
5,执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。
如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。
如执行数据读写指令则需要严格遵循18B20的读写时序来操作。
数据的读写方法将有下文有详细介绍。
若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS 温度转换时间。
紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。
其它的操作流程也大同小异,在此不多介绍。
DS18B20芯片与单片机的接口:图3图4如图所示,DS18B20只需要接到控制器(单片机)的一个I/O口上,由于单总线为开漏所以需要外接一个4.7K的上拉电阻。
如要采用寄生工作方式,只要将VDD电源引脚与单总线并联即可。
但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。
图5DS28B20芯片ROM指令表:Read ROM(读ROM)[33H] (方括号中的为16进制的命令字)这个命令允许总线控制器读到DS18B20的64位ROM。
只有当总线上只存在一个DS18B20的时候才可以使用此指令,如果挂接不只一个,当通信时将会发生数据冲突。
Match ROM(指定匹配芯片)[55H]这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。
这条指令适应单芯片和多芯片挂接。
Skip ROM(跳跃ROM指令)[CCH]这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。
如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。
Search ROM(搜索芯片)[F0H]在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。
Alarm Search(报警芯片搜索)[ECH]在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。
只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。
DS28B20芯片存储器操作指令表:Write Scratchpad (向RAM中写数据)[4EH]这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址3(报警RAM之TL)。
写入过程中可以用复位信号中止写入。
Read Scratchpad (从RAM中读数据)[BEH]此指令将从RAM中读数据,读地址从地址0开始,一直可以读到地址9,完成整个RAM数据的读出。
芯片允许在读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。
Copy Scratchpad (将RAM数据复制到EEPROM中)[48H]此指令将RAM中的数据存入EEPROM中,以使数据掉电不丢失。
此后由于芯片忙于EEPROM储存处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。
Convert T(温度转换)[44H]收到此指令后芯片将进行一次温度转换,将转换的温度值放入RAM的第1、2地址。
此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持500MS,来维持芯片工作。
Recall EEPROM(将EEPROM中的报警值复制到RAM)[B8H]此指令将EEPROM中的报警值复制到RAM中的第3、4个字节里。
由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0”,当储存工作完成时,总线将输出“1”。
另外,此指令将在芯片上电复位时将被自动执行。
这样RAM中的两个报警字节位将始终为EEPROM中数据的镜像。
Read Power Supply(工作方式切换)[B4H]此指令发出后发出读时间隙,芯片会返回它的电源状态字,“0”为寄生电源状态,“1”为外部电源状态。
DS18B20复位及应答关系示意图:图6每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。
DS18B20读写时间隙:DS18B20的数据读写是通过时间隙处理位和命令字来确认信息交换的。
写时间隙:图7写时间隙分为写“0”和写“1”,时序如图7。
在写数据时间隙的前15uS总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在15~60uS,采样时间内如果控制器将总线拉高则表示写“1”,如果控制器将总线拉低则表示写“0”。
每一位的发送都应该有一个至少15uS的低电平起始位,随后的数据“0”或“1”应该在45uS内完成。
整个位的发送时间应该保持在60~120uS,否则不能保证通信的正常。
读时间隙:图8读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须先由主机产生至少1uS的低电平,表示读时间的起始。
随后在总线被释放后的15uS中DS18B20会发送内部数据位,这时控制如果发现总线为高电平表示读出“1”,如果总线为低电平则表示读出数据“0”。
每一位的读取之前都由控制器加一个起始信号。
注意:如图8所示,必须在读间隙开始的15uS内读取数据位才可以保证通信的正确。
在通信时是以8位“0”或“1”为一个字节,字节的读或写是从高位开始的,即A7到A0.字节的读写顺序也是如图2自上而下的。