收藏 分享(赏)

ds1820温度传感器.pdf

上传人:weiwoduzun 文档编号:3292248 上传时间:2018-10-10 格式:PDF 页数:31 大小:857.69KB
下载 相关 举报
ds1820温度传感器.pdf_第1页
第1页 / 共31页
ds1820温度传感器.pdf_第2页
第2页 / 共31页
ds1820温度传感器.pdf_第3页
第3页 / 共31页
ds1820温度传感器.pdf_第4页
第4页 / 共31页
ds1820温度传感器.pdf_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、DS1820单线数字温度计 特性 独特的单线接口仅需一个端口引脚进行通讯 简单的多点分布应用 无需外部器件 可通过数据线供电 零待机功耗 测温范围-55+125,以0.5递增。华氏器件-67+2570F,以0.90F递增 温度以9位数字量读出 温度数字量转换时间200ms(典型值) 用户可定义的非易失性温度报警设置 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 说明 DS1820数字温度计以9位数字量的形式反映器件的温度值。 DS1820通过一个单线接口发送或接收信息,因此在中央微处理器和DS1820之间仅需一条连接线

2、(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源。 因为每个DS1820都有一个独特的片序列号,所以多只DS1820可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在HVAC环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。 引脚说明 16脚SSOP PR35 符号 说明 9 1 GND 接地 8 2 DQ 数据输入/输出脚。对于单线操作:漏极开路(见“寄生电源”节)7 3 VDD 可选的VDD引脚。具体接法见“寄生电源”节 DS1820S(16脚SSOP):所有上表中未提及的引脚都无连接。 概览 图1的方框图示出了D

3、S1820的主要部件。DS1820有三个主要数字部件:1)64位激光ROM,2)温度传感器,3)非易失性温度报警触发器TH和TL。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。DS1820也可用外部5V电源供电。 DS1820依靠一个单线端口通讯。在单线端口条件下,必须先建立ROM操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个ROM操作命令之一:1)读ROM,2)匹配ROM,3)搜索ROM,4)跳过ROM,5)报警搜索。这些命令对每个器件的激光ROM部

4、分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条ROM操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。 一条控制操作命令指示DS1820完成一次温度测量。测量结果放在DS1820的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器TH和TL各由一个EEPROM字节构成。如果没有对DS1820使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对TH和TL进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以

5、最低有效位在前的方式进行读写。 寄生电源 寄生电源的方框图见图1。这个电路会在I/O或VDD引脚处于高电平时“偷”能量。当有特定的时间和电压需求时(见节标题“单线总线系统”),I/O要提供足够的能量。寄生电源有两个好处:1)进行远距离测温时,无需本地电源,2)可以在没有常规电源的条件下读ROM。 要想使DS1820能够进行精确的温度转换,I/O线必须在转换期间保证供电。由于DS1820的工作电流达到1mA,所以仅靠5K上拉电阻提供电源是不行的,当几只DS1820挂在同一根I/O线上并同时想进行温度转换时,这个问题变得更加尖锐。 有两种方法能够使DS1820在动态转换周期中获得足够的电流供应。第

6、一种方法,当进行温度转换或拷贝到E2存储器操作时,给I/O线提供一个强上拉。用MOSFET把I/O线直接拉到电源上就可以实现,见图2。在发出任何涉及拷贝到E2存储器或启动温度转换的协议之后,必须在最多10s之内把I/O线转换到强上拉。使用寄生电源方式时,VDD引脚必须接地。 另一种给DS1820供电的方法是从VDD引脚接入一个外部电源,见图3。这样做的好处是I/O线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片DS1820,而且如果它们都使用外部电源的话,就可以先发一个Skip ROM命令,再

7、接一个Convert T命令,让它们同时进行温度转换。注意当加上外部电源时,GND引脚不能悬空。 温度高于100时,不推荐使用寄生电源,因为DS1820在这种温度下表现出的漏电流比较大,通讯可能无法进行。在类似这种温度的情况下,强烈推荐使用DS1820的VDD引脚。 对于总线控制器不知道总线上的DS1820是用寄生电源还是用外部电源的情况,DS1820预备了一种信号指示电源的使用意图。总线控制器发出一个Skip ROM协议,然后发出读电源命令,这条命令发出后,控制器发出读时间隙,如果是寄生电源,DS1820在单线总线上发回“0”,如果是从VDD供电,则发回“1”,这样总线控制器就能够决定总线上

8、是否有DS1820需要强上拉。如果控制器接收到一个“0”,它就知道必须在温度转换期间给I/O线提供强上拉。这个命令协议详见“存储器操作命令”节。 测温操作 DS1820通过一种片上温度测量技术来测量温度。图4示出了温度测量电路的方框图。 温度/数据关系(表1) 温度 数据输出(二进制)数据输出(十六进制)+125 00000000 11111010 00FA +25 00000000 00110010 0032 +1/2 00000000 00000001 0001 0 00000000 00000000 0000 -1/2 11111111 11111111 FFFF -25 1111111

9、1 11001110 FFCE -55 11111111 10010010 FF92 DS1820是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55)的值增加,表明所测温度大于-55。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到0,如果门周期仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高

10、的分辨力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。 DS1820内部对此计算的结果可提供0.5的分辨力。温度以16bit带符号位扩展的二进制补码形式读出,表1给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS1820测温范围-55+125,以0.5递增。如用于华氏温度,必须要用一个转换因子查找表。 注意DS1820内温度表示值为1/2LSB,如下所示9bit格式: 最高有效(符号)位被复制充满存储器中两字节温度寄存器的高MSB位,由这种“符号位扩展”产生出了示于表1的16bit温度

11、读数。 可用下述方法获得更高的分辨力。首先,读取温度值,将0.5位(LSB)从读取的值中截去,这个值叫做TEMP_READ。然后读取计数器中剩余的值,这个值是门周期结束后保留下来的值(COUNT_REMAIN)。最后,我们用到在这个温度下每度的计数值(COUNT_PER_C)。用户可以用下面的公式计算实际温度值: 报警搜索操作 DS1820完成一次温度转换后,就拿温度值和存储在TH和TL中的值进行比较。因为这些寄存器是8位的,所以0.5位被忽略不计。TH或TL的最高有效位直接对应16位温度寄存器的符号位。如果测得的温度高于TH或低于TL,器件内部就会置位一个报警标识。每进行一次测温就对这个标识

12、进行一次更新。当报警标识置位时,DS1820会对报警搜索命令有反应。这样就允许许多DS1820并联在一起同时测温,如果某个地方的温度超过了限定值,报警的器件就会被立即识别出来并读取,而不用读未报警的器件。 64位(激)光刻ROM 每只DS1820都有一个唯一的长达64位的编码。最前面8位是单线系列编码(DS1820的编码是19h)。下面48位是一个唯一的序列号。最后8位是以上56位的CRC码。(见图5)64位ROM和ROM操作控制区允许DS1820做为单线制器件并按照详述于“单线总线系统”一节的单线协议工作。只有建立了ROM操作协议,才能对DS1820进行控制操作。这个协议用ROM操作协议流程

13、图来描述(图6)。单线总线控制器必须得天独厚提供5个ROM操作命令其中之一:1)Read ROM,2)Match ROM,3)Search Rom,4)Skip ROM,5)Alarm Search。成功进行一次ROM操作后,就可以对DS1820进行特定的操作,总线控制器可以发出六个存储器和控制操作命令中的任一个。 CRC发生器 DS1820中有8 位CRC存储在64位ROM的最高有效字节中。总线控制器可以用64位ROM中的前56位计算出一个CRC值,再用这个和存储在DS1820中的值进行比较,以确定ROM数据是否被总线控制器接收无误。CRC计算等式如下: CRC=X8+X5+X4+1 DS1

14、820同样用上面的公式产生一个8位CRC值,把这个值提供给总线控制器用来校验传输的数据。在任何使用CRC进行数据传输校验的情况下,总线控制器必须用上面的公式计算出一个CRC值,和存储在DS1820的64位ROM中的值或DS1820内部计算出的8位CRC值(当读暂存器时,做为第9个字节读出来)进行比较。CRC值的比较以及是否进行下一步操作完全由总线控制器决定。当在DS1820中存储的或由其计算的CRC值和总线控制器计算的值不相符时,DS1820内部并没有一个能阻止命令序列进行的电路。 单线CRC可以用一个由移位寄存器和XOR门构成的多项式发生器来产生,见图7。 移位寄存器的各位都被初始化为0。然

15、后从系列编号的最低有效位开始,一次一位移入寄存器,8位系列编码都进入以后,序列号再进入,48位序列号都进入后,移位寄存器中就存储了CRC值。移入8位CRC会使移位寄存器复0。 存储器 DS1820的存储器结构示于图8。存储器由一个暂存RAM和一个存储高低温报警触发值TH和TL的非易失性电可擦除(E2)RAM组成。当在单线总线上通讯时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令会把数据传到非易性(E2)RAM中。这一过程确保更改存储器时数据的完整性。 暂存器的结构为8个字节的存储器。头两个字节包含测得的温度信息。第三和第四字节是TH和

16、TL的拷贝,是易失性的,每次上电复位时被刷新。下面两个字节没有使用,但是在读回数据时,它们全部表现为逻辑1。第七和第八字节是计数寄存器,它们可以被用来获得更高的温度分辨力(见“测温操作”一节)。 还有一个第九字节,可以用读暂存器命令读出。这个字节是以上八个字节的CRC码。CRC的执行方式如第二个标题“CRC发生器”所述。 单线总线系统 单线总线系统包括一个总线控制器和一个或多个从机。DS1820是从机。关于这种总线分三个题目讨论:硬件结构、执行序列和单线信号(信号类型和时序)。 单线总线只有一条定义的信号线;重要的是每一个挂在总线上的器件都能在适当的时间驱动它。为此每一个总线上的器件都必须是漏

17、极开路或三态输出。DS1820的单总线端口(I/O引脚)是漏极开路式的,内部等效电路见图9。一个多点总线由一个单线总线和多个挂于其上的从机构成。单线总线需要一个约5K的上拉电阻。 单线总线的空闲状态是高电平。无论任何理由需要暂停某一执行过程时,如果还想恢复执行的话,总线必必须停留在空闲状态。在恢复期间,如果单线总线处于非活动(高电平)状态,位与位间的恢复时间可以无限长。如果总线停留在低电平超过480s,总线上的所有器件都将被复位。 执行序列 通过单线总线端口访问 DS1820 的协议如下: 初始化 ROM操作命令 存储器操作命令 执行/数据 初始化 通过单线总线的所有执行(处理)都从一个初始化

18、序列开始。初始化序列包括一个由总线控制器发出的复位脉冲和跟有其后由从机发出的存在脉冲。 存在脉冲让总线控制器知道DS1820在总线上且已准备好操作。详见“单线信号”节。 ROM操作命令 一旦总线控制器探测到一个存在脉冲,它就可以发出5个ROM命令中的任一个。所有ROM操作命令都8位长度。下面是这些命令(参见图6流程图): ROM操作流程图(图6) Read ROM 33h 这个命令允许总线控制器读到DS1820的8位系列编码、唯一的序列号和8位CRC码。只有在总线上存在单只DS1820的时候才能使用这个命令。如果总上有不止一个从机,当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起

19、开成相与的效果)。 Match ROM 55h 匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS1820。只有和64位ROM序列完全匹配的DS1820才能响应随后的存储器操作命令。所有和64位ROM序列不匹配的从机都将等待复位脉冲。这条命令在总线上有单个或多个器件时都可以使用。 Skip ROM CCh 这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下右以节省时间。如果总线上不止一个从机,在Skip ROM命令之后跟着发一条读命令,由于多个从机同时传送信号,总线上就会发生数据冲突(漏极开路下拉效果相当于相与)。 Search

20、ROM F0h 当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少器件或它们的64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。 Alarm Search ECh 这条命令的流程图和Search ROM相同。然而,只有在最近一次测温后遇到符合报警条件的情况,DS1820才会响应这条命令。报警条件定义为温度高于TH或低于TL。只要DS1820不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。 I/O信号 DS1820需要严格的协议以确保数据的完整性。协议包括几种单线信号类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,

21、除存在脉冲外,都是由总线控制器发出的。 和DS1820间的任何通讯都需要以初始化序列开始,初始化序列见图11。一个复位脉冲跟着一个存在脉冲表明DS1820已经准备好发送和接收数据(适当的ROM命令和存储器操作命令)。 DS1820命令设置(表2) 命令 说明 协议 单线总线发出协议后 备注 温度转换命令 Convert T 开始温度转换 44h 1 存储器命令 Read Scratchpad 读取暂存器和CRC字节 BEh Write Schratchpad 把字节写入暂存器的地址2和3(TH和TL温度报警触发) 4EhCopy Scratchpad 把暂存器内容拷贝到非易失性存储器中(仅指地

22、址2和3) 48h 2 Recall E2把非易失性存储器中的值召回暂存器(温度报警触发) B8h Read Power Supply 标识DS1820的供电模式 B4h 备注: 1、温度转换时间可长达500ms。接到温度转换的协议后,如果器件不是从VDD供电的话,I/O线就必须至少保持500ms高电平。这样,发出一个Convert T命令之后,单线总线上在这段时间内就不能有其他活动。 2、接到Copy Scratchpad协议后,如果器件不是从VDD供电的话,I/O线必须至少保持10ms高电平。这样,在发出一个Copy Scratchpad命令后,这段时间内单线总线上就不能有其他活动。 总线

23、控制器发出(TX)一个复位脉冲(一个最少保持480s的低电平信号),然后释放总线,进入接收状态(RX)。单线总线由5K上拉电阻拉到高电平。探测到I/O引脚上的上升沿后,DS1820等待1560s,然后发出存在脉冲(一个60240s的低电平信号)。 存储器操作命令 下述命令协议概括于表2,并用流程图示于图10。 存储器操作流程图(图10) 续图10 续图10 Write Scratchpad 4E 这个命令向DS1820的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。 Read Scratchpad BEh 这个命

24、令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。 Copy Scratchpad 48h 这条命令把暂存器的内容拷贝到DS1820的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820又正在忙于把暂存器拷贝到E2存储器,DS1820就会输出一个“0”,如果拷贝结束的话,DS1820则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。 Convert T 44h 这条命令启动一次温度

25、转换而无需其他数据。温度转换命令被执行,而后DS1820保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS1820又忙于做时间转换的话,DS1820将在总线上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。 Recall E2 B8h 这条命令把报警触发器里的值拷回暂存器。这种拷回操作在DS1820上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。若在这条命令发出之后发出读时间隙,器件会输出温度转换忙的标识:“0”=忙,“1”=完成。 Read Power Supply B4h 若把这条命令

26、发给DS1820后发出读时间隙,器件会返回它的电源模式:“0”=寄生电源,“1”=外部电源。 读/写时间隙 DS1820的数据读写是通过时间隙处理位和命令字来确认信息交换。 写时间隙 当主机把数据线从逻辑高电平拉到逻辑低电平的时候,写时间隙开始。有两种写时间隙:写1时间隙和写0时间隙。所有写时间隙必须最少持续60s,包括两个写周期间至少1s的恢复时间。 I/O线电平变低后,DS1820在一个15s到60s的窗口内对I/O线采样。如果线上是高电平,就是写1,如果线上是低电平,就是写0(见图12) 主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的15s内允许数据线拉到高电

27、平。 主机要生成一个写0时间隙,必须把数据线拉到低电平并保持60s。 读时间隙 当从DS1820读取数据时,主机生成读时间隙。当主机把数据线从高高平拉到低电平时,写时间隙开始。数据线必须保持至少1s;从DS1820输出的数据在读时间隙的下降沿出现后15s内有效。因此,主机在读时间隙开始后必须停止把I/O脚驱动为低电平15s,以读取I/O脚状态(见图12)。在读时间隙的结尾,I/O引脚将被外部上拉电阻拉到高电平。所有读时间隙必须最少60s,包括两个读周期间至少1s的恢复时间。 图13表示TINIT,TRC和TSAMPLE之和必须小于15s。图14示出,系统时间可以用下面方法达到最大:TINIT和

28、TRC保持时间尽可能小;把控制器采样时间放到15s周期的最后。 存储器操作举例(表3)例:总线控制器启动温度转换,然后读取温度(寄生电源) 控制器状态 数据(LSB在前) 内容 TX 复位 复位脉冲(480-960s) RX 存在 存在脉冲 TX 55h 发“Match ROM”命令 TX 发DS1820地址 TX 44h 发“Convert T”命令 TX I/O线保持至少500ms高电平,以完成温度转换 TX 复位 复位脉冲 RX 存在 存在脉冲 TX 55h 发“Match ROM”命令 TX 发DS1820地址 TX BEh 发“Read Scratchpad”命令 RX 读整个暂存器

29、加上CRC;控制器重新计算从暂存读到的8个数据字节的CRC,把计算的CRC和读取的CRC进行比较,如果相同,控制器向下进行,如果不同,就重复读操作。TX 复位 复位脉冲 RX 存在 存在脉冲,结束。 存储器操作举例(表4) 例:总线控制器写存储器(寄生电源且只有一只DS1820) 控制器状态 数据(LSB在前) 内容 TX 复位 复位脉冲 RX 存在 存在脉冲 TX CCh Skip ROM 命令 TX 4Eh Write Scratchpad 命令 TX 写两个字节到暂存器(TH和TL) TX 复位 复位脉冲 RX 存在 存在脉冲 TX CCh Skip ROM命令 TX BEh Read

30、Scratchpad命令 RX 读整个暂存器加上CRC;控制器重新计算从暂存读到的8个数据字节的CRC,把计算的CRC和读取的CRC进行比较,如果相同,控制器向下进行,如果不同,就重复读操作。TX 复位 复位脉冲 RX 存在 存在脉冲 TX CCh Skip ROM命令 TX 48h Copy Scratchpad命令;发出这条命令后,控制器必须等待6ms到拷贝操作完成。 TX 复位 复位脉冲 RX 存在 存在脉冲,完成。 存储器操作举例(表5) 例:温度转换和插补(外部电源供电且只有一只DS1820) 控制器状态 数据(LSB在前) 内容 TX 复位 复位脉冲 TR 存在 存在脉冲 TX C

31、Ch Skip ROM命令 TX 44h Convert T命令 RX 读8次忙标志。控制器一字节(或位)接一个字节读下去,直到数据为FFh(所有位都为1) TX 复位 复位脉冲 RX 存在 存在脉冲 TX CCh Skip ROM命令 TX BEh Read Scratchpad命令 RX 读整个暂存器加上CRC;控制器重新计算从暂存读到的8个数据字节的CRC,把计算的CRC和读取的CRC进行比较,如果相同,数据就是有效的。控制器存储温度值并分别存储计数寄存器的内容和每度计数值寄存器的内容,做为COUNT_REMAIN和COUNT_PER_C。TX 复位 复位脉冲 RX 存在 存在脉冲 CP

32、U按手册中的方法计算温度值以得到更高的分辨力。 极限使用条件: 各引脚对地电压:-0.5到+7.0V 工作温度: -55到+125 储存温度: -55到+125 焊接温度: 26010秒 推荐直流工作条件 参数 符号 条件 最小典型最大 单位 备注 电源电压VDD I/O操作 1/2温度转换精度2.8 4.35.05.5 5.5 V 1,2 数据引脚I/O -0.5 +5.5 V 2 逻辑1 VIH 2.0 VCC+0.3 V 2,3 逻辑0 VIL -0.3 +0.8 V 2,4 直流电特性 参数 符号条件 最小典型 最大 单位 备注 温度误差 tERR -0到+70 -55到0和+70到+

33、1251/2 见曲线图 1,9,10输入逻辑高电平 VIH 2.2 5.5 V 2,3 输入逻辑低电平 VIL -0.3 +0.8 V 2,4 吸收电流 IL VI/O=0.4V -4.0 mA 2 待机电流 IQ 200 350 nA 8 动态电流 IDD 1 1.5 mA 5,6 输入负载电流 IL 5 A 7 交流电特性:(-55到+125;VDD=3.6V到5.5V) 参数 符号最小典型最大单位备注 温度转换时间 tCONV 200 500 ms 时间隙 tSLOT 60 120s 恢复时间 tREC 1 s 写0低电平时间 rLOW0 60 120s 写1低电平时间 tLOW1 1

34、15 s 读数据有效时间 tRDV 15 s 复位高电平时间 tRSTH 480 s 复位低电平时间 tRSTL 480 4800s 存在检测高电平时间tPDHIGHL 15 60 s 存在检测低电平时间tPDLOW 60 240s 电容 CIN/OUT 25 pF 备注: 1、VDD低至3.4V时,温度转换精度2。 2、所有电压参考点都是接地点。 3、逻辑1电压在源电流为1mA时得到。 4、逻辑0电压在吸收电流为4mA时得到。 5、IDD在VCC为5.0V时得到。 6、动态电流涉及温度转换和写E2存储器。写E2存储器最大用10ms,消耗将近100A电流。 7、输入负载接地。 8、待机电流最大

35、定义到70。125时典型待机电流为5A。 9、见典型曲线图中超出0到70的部分。温度误差反映了传感器在校准时测试的精度。 10、典型精度曲线在4.3VVDD5.5V时有效。 DS18B20 12 of 20 ROM COMMANDS FLOW CHART Figure 11 CCh SKIP ROM COMMAND MASTER TXRESET PULSEDS18B20 TXPRESENCE PULSE MASTER TX ROM COMMAND 33h READ ROM COMMAND 55h MATCH ROM COMMAND F0h SEARCH ROM COMMAND ECh ALAR

36、M SEARCH COMMAND MASTER TX BIT 0 DS18B20 TXBIT 0DS18B20 TXBIT 0MASTER TXBIT 0BIT 0 MATCH? MASTER TXBIT 1 BIT 1 MATCH? BIT 63 MATCH? MASTER TXBIT 63 N Y Y Y Y Y N N NNN N N Y Y Y DS18B20 TXBIT 1DS18B20 TXBIT 1MASTER TXBIT 1DS18B20 TX BIT 63DS18B20 TXBIT 63 MASTER TXBIT 63BIT 0 MATCH?BIT 1 MATCH?BIT 6

37、3 MATCH?NNNYY YDS18B20 TXFAMILY CODE 1 BYTE DS18B20 TXSERIAL NUMBER 6 BYTES DS18B20 TXCRC BYTE DS18B20 TXBIT 0DS18B20 TXBIT 0MASTER TXBIT 0NYDEVICE(S) WITH ALARM FLAG SET? Initialization Sequence MASTER TXFUNCTION COMMAND (FIGURE 12) DS18B20 13 of 20 DS18B20 FUNCTION COMMANDS FLOW CHART Figure 12 MA

38、STER TXFUNCTION COMMAND YN 44h CONVERT TEMPERATURE ? PARASITE POWER ? N Y DS18B20 BEGINS CONVERSION DEVICE CONVERTING TEMPERATURE ? N YMASTER RX“0s” MASTER RX“1s” MASTER ENABLES STRONG PULLUP ON DQ DS18B20 CONVERTS TEMPERATURE MASTER DISABLES STRONG PULLUP YN 48h COPY SCRATCHPAD ? PARASITE POWER ? N

39、 Y MASTER ENABLES STRONG PULL-UP ON DQ DATA COPIED FROM SCRATCHPAD TO EEPROMMASTER DISABLES STRONG PULLUP MASTER RX“0s” COPY IN PROGRESS ? Y MASTER RX“1s” NRETURN TO INITIALIZATION SEQUENCE (FIGURE 11) FOR NEXT TRANSACTION B4h READ POWER SUPPLY ? Y N PARASITE POWERED ? N MASTER RX“1s” MASTER RX“0s”

40、Y MASTER TXTHBYTE TO SCRATCHPAD YN 4Eh WRITE SCRATCHPAD? MASTER TXTLBYTE TO SCRATCHPAD MASTER TXCONFIG. BYTE TO SCRATCHPAD YNYBEh READ SCRATCHPAD? HAVE 8 BYTES BEEN READ ? NMASTER TXRESET ?MASTER RXDATA BYTE FROM SCRATCHPAD NYMASTER RXSCRATCHPAD CRC BYTE MASTER RX“1s” YN B8h RECALL E2? MASTER BEGINS

41、 DATA RECALL FROM E2PROM DEVICE BUSY RECALLING DATA ? NYMASTER RX“0s” Skyle整理--有不对之处请来信指正 数字温度传感器DS1820(DS18B20)的应用 一 单线数字温度计DSl820介绍 DSl820数字温度计提供9位(二进制)温度读数指示器件的温度信息经过单线接口送 入DSl820或从DSl820送出因此从主机CPU到DSl820仅需一条线(和地线) DSl820的电源可以由数据线本身提供而不需要外部电源因为每一个DSl820在出厂时已经给定了唯一的序号因此任意多个DSl820可以存放在同一条单线总线上这允许在许

42、多不同的地方放置温度敏感器件DSl820的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字 每一个DSl820包括一个唯一的64位长的序号该序号值存放在DSl820内部的ROM(只读存贮器)中开始8位是产品类型编码(DSl820编码均为10H)接着的48位是每个器件唯一的序号最后8位是前面56位的CRC(循环冗余校验)码DSl820中还有用于贮 存测得的温度值的两个8位存贮器RAM编号为0号和1号1号存贮器存放温度值的符号如果温度为负( )则1号存贮器8位全为1否则全为0 0号存贮器用于存放温度值的补码LSB(最低位)的1表示0.5将存贮器中的二进制数求补再转换成

43、十进制数并除以2就得到被测温度值(-550 125 ) DSl820的引脚如图2 26l所示每只D51820都可以设置成两种供电方式即数据总线供电方式和外部供电方式采取数据总线供电方式可以节省一根导线但完成温度测量的时间较长采取外部供电方式则多用一根导线但测量速度较快 温度计算 1 Ds1820用9位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温度S=0如 00AAH为+85 ,0032H为25 FF92H为55 2 Ds18b20用12位存贮温值度最高位为符号位下图为18b20的温度存储方式负温度S=1正温度S=0如 0550H为+85 0191H为25.0625 ,

44、FC90H为-55 二DSl820工作过程及时序 DSl820工作过程中的协议如下 初始化RoM操作命令存储器操作命令处理数据 1初始化 单总线上的所有处理均从初始化开始 2 ROM操作品令 总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如 指令 代码 Read ROM(读ROM) 33H Match ROM(匹配ROM) 55H Skip ROM(跳过ROM CCH Search ROM(搜索ROM) F0H Alarm search(告警搜索) ECH 3存储器操作命令 指令 代码 Write Scratchpad(写暂存存储器) 4EH Read Scratchpa

45、d(读暂存存储器) BEH Copy Scratchpad(复制暂存存储器) 48H Convert Temperature(温度变换) 44H Recall EPROM(重新调出) B8H Read Power supply(读电源) B4H 4时 序 主机使用时间隙(time slots)来读写DSl820的数据位和写命令字的位 (1)初始化 时序见图2.25-2主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着在tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240 us)如图中虚

46、线所示 以下子程序在MCS51仿真机上通过其晶振为12M.初始化子程序 RESET PUSH B ;保存B寄存器 PUSH A 保存A寄存器 MOV A,#4 ;设置循环次数 CLR P1.0 ;发出复位脉冲 MOV B,#250 ;计数250次 DJNZ B,$ ;保持低电平500us SETB Pl.0 ;释放总线 MOV B,#6 ;设置时间常数 CLR C ;清存在信号标志 WAITL: JB Pl.0,WH ;若总线释放跳出循环 DJNZ B,WAITL ;总线低等待 DJNZ ACC,WAITL;释放总线等待一段时间 SJMP SHORT WH: MOV B,#111 WH1: O

47、RL C,P1.0 DJNZ B,WH1 ;存在时间等待 SHORT: POP A POP B RET (2)写时间隙 当主机总线t o时刻从高拉至低电平时就产生写时间隙见图2 25 3图2 254从to时刻开始15us之内应将所需写的位送到总线上DSl820在t后15-60us间对总线采样若低电平写入的位是0见图2 25 3若高电平写入的位是1见图2 25 4连续写2位间的间隙应大于1us 写位子程序(待写位的内容在C中) WRBIT: PUSH B ;保存B MOV B,#28 ;设置时间常数 CLR P1.0 ;写开始 NOP ;1us NOP ;1us NOP ;1us NOP ;1u

48、s N0P ;1us MOVPl.0,C ;C内容到总线 WDLT: DJNZ B,WDLT;等待56Us POP B SETB Pl.0 ;释放总线 RET ;返回 写字节子程序(待写内容在A中): WRBYTB: PUSH B :保存B MOV B #8H ;设置写位个数 WLOP: RRC A ;把写的位放到C ACALL WRBIT ;调写 1位子程序 DJNZ B WLOP ;8位全写完? POP B RET (3)读时间隙 见图2 25 5主机总线to时刻从高拉至低电平时总线只须保持低电平l 7ts之后在t1时刻将总线拉高产生读时间隙读时间隙在t1时刻后t 2时刻前有效t z距to

49、为15捍s也就是说t z时刻前主机必须完成读位并在t o后的60尸s一120 fzs内释放总线 读位子程序(读得的位到C中) RDBIT: PUSH B ;保存B PUSH A ;保存A MOV B,#23 ;设置时间常数 CLR P1.0 ;读开始图2 25 5的t0时刻 NOP ;1us NOP ;1us NOP ;1us NOP ;1us SETB Pl.0 ;释放总线 MOV A,P1 ;P1口读到A MOV C,EOH ;P1.0内容C NOP ;1us NOP ;1us NOP ;1us NOP ;1us RDDLT: DJNZ B,RDDLT ;等待46us SETB P1.0 POP A POP B RET 读字节子程序(读到内容放到A中) R

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报