DS18B20解析说明.docx
《DS18B20解析说明.docx》由会员分享,可在线阅读,更多相关《DS18B20解析说明.docx(10页珍藏版)》请在冰豆网上搜索。
DS18B20解析说明
●DS18B20的性能指标
●
(1)只需一根口线与MCU连接,无需外部原件。
●由总线提供电源,或专线供电。
●测温范围为-55摄氏度至+125摄氏度。
●9到12位温度读数。
●温度转换时间为200ms。
●用户自行设定温度报警上下限,掉电后数据有效。
●可识别并寻址系统中温度超限报警的DS18B20,
●DS18B20的电源及工作方式
●DS18B20的供电方式,DS18B20有两种工作方式,一种是外部供电方式即从VCC引脚供电,GND接地,另一种是寄生电源供电方式,直接从DQ端上获得电源,当DQ为高电平是为内部电容充电,当DQ为低电平是电容为DS18B20供电(VCC端必须接地)已确保芯片的稳定性,
●DS18B20的测温原理,DS18B20通过内部温度寄存器接收一个受温度系数影响的振荡器输出的脉冲个数直接影响到数字温度数据,温度转化命令执行后,发送读高速暂存器命令(BEh)可将温度数据经单线总线读出,温度数据传输时,低位在先。
●当收到温度转换命令后,DS18B20的内部数字化温度转换器讲温度数据以二进制补吗形式储存到16位快速暂存器中,有效数据位可编程设定为9位,10位,11位,12位,分别对应4种分辨率:
0.5摄氏度0.25摄氏度0.125摄氏度0.0625摄氏度。
有效数据最高位为符号位,可表示温度的正负值。
高字节的其他高位扩展为符号位;有效数据的第四位表示温度的小数位,DS18B20出厂默认状态为12位。
表DS18B20温度值格式表
bit7bit6bit5bit4bit3bit2bit1bit0
LSByte
2
2
2
2
2
2
2
2
bit15bit14bit13bit12bit11bit10bit9bit8
MSByte
S
S
S
S
S
2
2
2
●表8-2温度与转换数据的关系
+125℃
0000011111010000
07D0h
+85℃
0000010101010000
0550h
+25.0625℃
0000000110010001
0191h
+10.125℃
0000000010100010
00A2h
+0.5℃
0000000000001000
0008h
0℃
0000000000000000
0000h
-0.5℃
1111111111111000
FFF8h
-10.125℃
1111111101011110
FF5Eh
-25.0625℃
1111111001101111
FF6Fh
-55℃
1111110010010000
FC90h
//上电复位时温度寄存器的值为+85℃(0000010101010000)
●报警信号的应用。
DS18B20每次执行完温度抓换后,温度值将与储存在TH和TL内的触发值相比较,如果测量的结果大于TH的值或小于TL的值,就会置位内部的报警标志位,在连接多片DS18B20的应用系统中,主机发送报警搜索命令(ECh)时,有置位报警标志位的DS18B20会响应总线主机发回标志位,其他没有置位报警标志位的DS18B20则保持沉默,这样便于主机立即识别DS18B20并读出数据。
●16位的温度寄存器与8位TH或TL寄存器内容进行比较操作时,讲忽略温度寄存器高字节,而TH或TL得最高位对应温度数据的符号位。
●DS18B20的结构
●
DS18B20的外部图及引脚意义。
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数据输入/输出引脚。
开漏单总线接口引脚。
当被用着在寄生电源下,也可以向器件提供电源。
3
VDD
可选择的VDD引脚。
当工作于寄生电源时,此引脚必须接地。
●DS18B20的内部结构如图8-2所示。
主要由数字器件组成;64位闪速ROM,温度传感器,温度寄存器(告诉暂存RAM与E2PR0M)
●64bit闪速ROM的结构如图8-3所示。
每片DS18B20都有唯一的64位长的激光ROM其中低8位是单线产品(DS18B20代码为28h),后续的48位唯一的序列号,高8位是前56的CRC(循环冗余校验码)。
64位的ROM及其功能控制部分使DS18B20作物idanxian总线器件进行操作,只有满足功能协议后对DS18B20的控制功能才能接受,总线主机必须提供5个ROM命令中的一个且这个名林被成功执行,DS18B20才可接受总线主机的指定功能,即后续提供的6个存储器操作中的一个命令。
8-2
8bit校验CRC
48bit序列号
8bit工厂代码
Msblsbmsblsbmsblsb
8--3DS18B20闪速ROM的存储结构
●DS18B20结构废纸寄存器。
第0—4位始终为“1”。
第7位始终为“0”
第5,6位(R1,R0)决定温度分辨率及时对应的温度转换时间,见表8-3。
0
R1
R0
1
1
1
1
1
MSBLSB
R1
R0
测温分辨率
最大温度转换时间
0
0
9-bit
93.75ms
0
1
10-bit
187.5ms
1
0
11-bit
375ms
1
1
12bit
750ms
表8-3
●存储器。
DS18B20的存储器由一个告诉暂存器RAM和一个永久性电可擦除E2PR0M组成,后则存储高,低温度触发器THTL和结构配置寄存器的内容。
暂存器有助于确保单线通信数据的完整性。
数据首先用写暂存器命令(4Eh)读回进行校验;校验之后,再用复制暂存器;写入的数据可以被读,暂存器命令(BEh)读回进行校验;校验之后,再用复制暂存器命令(48h)把数据传送到永久性E2PROM中,这一过程确保了更改存储器是数据的完整性。
高速暂存器
字节
温度低字节LB
0
温度高字节HB
1
温度触发高字节TH
2
温度触发低字节TL
3
结构配置CONFIG
4
保留
5
保留
6
保留
7
循环冗余校验码(CRC)
8
高速暂存器由8字节存储器组成,如图8-4所示。
前两个字节妇女别是测量温度数据的低字节(LSB),高字节(MSB);第3,4字节是THTL的复制值,第5字节是结构配置寄存器的复制值,这三个字节数据虽会因普通RAM掉电而失去信息,但每次上电时都会自动从永久性E2PROM中复制数据进行刷新,第6-8字节保留作内部运算用,第9字节是前面8个字节的循环冗余校验码(CRC);
循环冗余校验码CRC产生。
DS18B20内部64位ROM最高有效字节,是循环冗余校验码CRC,主机可以读出64位ROM的前56位,计算出CRC的值,并把它与存储器在DS18B20内的CRC值进行比较,以决定ROM的数据是否已被主机正确地接收,计算CRC的等效多项式函数为,
CRC=X^8+X^5+X^4+1
DS18B20也利用与上述相同的多项式函数产生一个8位CRC值,并把此值提供给总线主机以证实数据字节的传送。
在使用CRC来证实数据传送的每一种情况中,总线主机必须用上述多现实计算出CRC的值,并把计算机所得的值与存储在DS18B20的64位ROM中的最高字节CRC值(ROM读数),或者DS18B20中计算得到CRC值(读暂存器操作时读出的第9字节)进行比较。
总线主机根据CRC值的比较来决定是否继续操作。
当以上CRC值比较不相符合,DS18B20内部没有电路来阻止命令序列的继续执行。
●单线总线CRC可以用由一个意味寄存器和异或X0R门组成的多项式器来产生,如图8-5所示
图8-5
意味寄存器的所有为被初始化为零。
然后从产品系列编码的最低有效位开始,每次一位。
当产品系列编码的8位移入后,接着移入序列号。
在序列号的第48位进入之后,移位寄存器便包含了CRC值。
移入CRC的8位应该使移位寄存器返回为零。
●DS18B20D的操作命令
●DS18B20经单线接口协议进行存取操作的顺序是:
●初始化(发复位脉冲)→ROM功能命令操作→存储器功能命令操作→数据处理操作。
●初始化。
单线总线上的所有传输操作均从初始化序列开始,如图8-6。
初始化序列包括总线主机发出复位脉冲,接着由从属器件送出存在脉冲。
存在脉冲使总线主机知道DS18B20挂在总线上并准备进行操作。
主机发送复位脉冲主机接收480us
48015-60us
60-240us
●ROM命令代码及功能。
总线主机检测到有DS18B20后,可发送5个8位ROM命令中的一个命令。
●读ROM命令(33h):
在单片机DS18B20系统应用中,用该命令可读出其序列号,系列号和CRC;在总线上有多个DS18B20的系统中用该命令,将发生冲突。
●匹配ROM命令(55H);多个DS18B20在线应用时,总线主机在读取64位ROM信息后用该命令寻址指定的DS18B20,只有64位ROM顺序正确匹配的DS18B20才响应此后的存储器操作命令,其他不匹配的从属器件将等待复位脉冲,该命令在单片DS18B20系统应用中也能用。
●跳过ROM命令(cch);在单片DS18B20系统应用中,总线主机发送该命令后直接执行存储器操作,而不需要传输64位ROM信息,这样可以节省存取时间。
在总线上有多个DS18B20的系统中用该命令,将发生冲突。
●搜索ROM命令(f0h)系统初始化后,总线主机不知道总线是哪个器件的数目和器件的64位ROM码,利用搜索ROM命令可使总线主机采用消除处理法识别总线上所有从属器件的64位ROM码。
●报警搜索命令(ECh);该命令与搜索ROM命令的流程相同,只有前次温度测量时满足报警条件的DS18B20才响应该命令。
报警条件定义为温度高于TH或低于TL中的数值,DS18B20上电时报警条件被置位。
●存储器操作命令代码及其含义
●温度转换暂存器命令(44h)启动在线DS18B20进行温度转换。
●写告诉暂存器命令(4Eh)写入高速暂存器命令。
从TH寄存器开始连续写入三个字节,存储到告诉暂存器的2-4单元(THTLCONFIG).三个字节都必须在复位操作之前写入。
●读高速暂存器命令;(beh);读取高速暂存器命令。
读操作从字节0开始连续读出低位在前,直到读完第9字节。
没有读完所有字节时。
总线主机发送复位脉冲可终止操作。
●复制高速暂存器命令(48h):
将高速暂存器中THTLCONGIG三个字节数值复制到EERAM中,保存温度触发器和结构配置的内容不丢失。
●召回EEROM命令(b8h):
将EERAM中的THTL和CONFIG的数值复制到高速暂存器相应单元中。
●度供电状态命令(b4h):
读出供电模式,“0”为寄生电源;“1”为外部电源。
●5.单线总线的读/写时际
●DS18B20采用读/写时际处理数据位(0/1)形成命令字而完成指定的操作。
●写时际。
写时际是主机力高数据线后,使数据线从逻辑高电平跳变为逻辑低电平再释放的过程,有写“1”时际和写“0”时际两种,所有写时际操作持续时间至少需要60us且两个写时际周期的间隔时间必须大于1us,如图8-7所示
主机写时际“0”主机写时际“1”
60us>1us
15usDS18B20采样45us15usDS18B20采样45us
DS18B20在DQ数据线变低后15-60us之间采样数据线,DQ数据线为高电平既是数据“1”,DQ数据线为低电平既是数据“0:
”。
主机发送写“1”时际拉低数据线至少1us,再拉高数据线,也也已在15us后拉高数据线然后释放;发送写“0”时际拉低数据线后一直保持低电平60us在释放。
●读时际。
读时际是主机使数据线从逻辑高电平大地为逻辑低电平,持续至少1us后释放数据线,再接收从DS18B20传来的数据位的过陈塘关,读时际的持续时间必须大于60us,且两个读时际操作的回复时间间隔必须大于1us,如图8-8所示。
主机读0时际1us主机读1时际
》1us
15us主机采样45us15us主机采样45us
DS18B20在读时际数据线下降沿之后15us开始输出有效数据,,此时主机必须释放数据线(转为输入状态)。
读时际技术后数据线由外部上拉电阻拉回至高电平。
5.1k
VCC
GND
GND