DDSS11882200中文资料电子驿站@ourmpu.comDS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:4513385244764853211一、概述1.1一般说明DSl820数字温度计提供9位温度读数,指示器件的温度。信息经过单线接口送入DSl820或从DSl820送出,因此从中央处理器到DSl820仅需连接一条线(和地)。读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。因为每一个DSl820有唯一的系列号(siliconserialnumber),因此多个DSl820可以存在于同一条单线总线上。这允许在许多不同的地方放置温度灵敏器件。此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。1.2特性·独特的单线接口,只需1个接口引脚即可通信·多点(multidrop)能力使分布式温度检测应用得以简化·不需要外部元件·可用数据线供电·不需备份电源·测量范围从-55℃至+125℃,增量值为0.5℃。等效的华氏温度范围是-67℉至257℉,增量值为0.9℉·以9位数字值方式读出温度·在1秒(典型值)内把温度变换为数字·用户可定义的,非易失性的温度告警设置·告警搜索命令识别和寻址温度在编定的极限之外的器件(温度告警情况)·应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统1.3引脚排列引脚说明GND地DQ数字输入输出VDD可选的VDDNC空引脚DNC不连接DS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:45133852447648532121.4详细的引脚说明引脚8脚SOIC引脚PR35符号说明51GND地42DQ单线应用的数据输入/输出引脚:漏极开路见“寄生电源”一节33VDD可选VDD引脚,有关连接的细节见“寄生电源”一节二、详细说明2.1综述图1的方框图表示DSl820的主要部件。DSl820有三个主要的数据部件:1)64位激光(lasered)ROM;2)温度灵敏元件;3)非易失性温度告警触发器TH和TL。器件从单线的通信线取得其电源,在信号线为高电平的时间周期内,把能量贮存在内部的电容器中,在单信号线为低电平的时间期内断开此电源,直到信号线变为高电平重新接上寄生(电容)电源为止,作为另一种可供选择的方法,DSl820也可用外部5V电源供电。DS1820BLOCKDIAGRAMFigure1图1DSl820方框图与DSl820的通信经过一个单线接口。在单线接口情况下,在ROM操作未定建立之前不能使用存贮器和控制操作。主机必须首先提供五种ROM操作命令之一:1)ReadROM(读ROM);2)MatchROM(符合ROM);3)SearchROM(搜索ROM);4)SkipROM(跳过ROM);5)AlarmSearch(告警搜索)。这些命令对每一器件的64位激光ROM部分进行操作。如果在单线上有许多器件,那么可以挑选出一个特定的器件,并给总线上的主机指示存在多少器件及其类型。在成功地执行了ROM操作序列之后,可使用存贮器和控制操作,然后主机可以提供六种存贮器和控制操作命令之一。一个控制操作命令指示DSl820完成温度测量。该测量的结果将放入DSl820的高速暂存(便笺式)存贮器(Scratchpadmemory),通过发出读暂存存储器内容的存储器操作命令可以读出此结果。每一温度告警触发器TH和孔构成一个字节的EEPROM。如果不对DSl820施加告警搜索命令,这些寄存器可用作通用用户存储器。使用存储器操作命令可以写TH和TL。对这些寄存器的读访问通过便笺存储器。所有数据均以最低有效位在前的方式被读写。2.2寄生电源(parasitepower)方框图(图1)示出寄生电源电路。当I/0或VDD引脚为高电平时,这个电路便“取”得电源。只要符合指定的定时和电压要求,I/O将提供足够的功率(标题为“单总线系统”一节)。寄生电源的优点是双重的:1)利用此引脚,远程温度检测无需本地电源,2)缺少正常电源条件下也可以读ROM。为了使DSl820能完成准确的温度变换,当温度变换发生时,I/0线上必须提供足够的功率。因为DSl820的工作电流高达1mA,5kΩ的上拉电阻将使I/0线没有足够的驱动能力。如果几个DSl820在同一条I/0线上而且企图同时变换,DS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:4513385244764853213那么这一问题将变得特别尖锐。有两种方法确保DSl820在其有效变换期内得到足够的电源电流。第一种方法是发生温度变换时,在I/0线上提供一强的上拉。如图2所示,通过使用一个MOSFET把I/0线直接拉到电源可达到这一点。当使用寄生电源方式时VDD引脚必须连接到地。向DSl820供电的另外一种方法是通过使用连接到VDD引脚的外部电源,如图3所示。这种方法的优点是在I/0线上不要求强的上拉。总线上主机不需向上连接便在温度变换期间使线保持高电平。这就允许在变换时间内其它数据在单线上传送。此外,在单线总线上可以放置任何数目的DSl820,而且如果它们都使用外部电源,那么通过发出跳过(Skip)ROM命令和接着发出变换(Convert)T命令,可以同时完成温度变换。注意只要外部电源处于工作状态,GND(地)引脚不可悬空。图2强上拉在温度变换期内向DSl820供电在总线上主机不知道总线上DSl820是寄生电源供电还是外部VDD供电的情况下,在DSl820内采取了措施来通知采用的供电方案。总线上主机通过发出跳过(Skip)ROM的操作约定,然后发出读电源命令,可以决定是否有需要强上拉的DSl820在总线上。在此命令发出后,主机接着发出读时间片。如果是寄生供电,DSl820将在单线总线上送回“0”;如果由VDD脚供电,它将送回“1”。如果主机接收到一个“0”,它知道它必须在温度变换期间在I/0线上供一个强的上拉。有关此命令约定的详细说明,见“存贮器命令功能”一节。2.3运用—测量温度DSl820通过使用在板(on-board)温度测量专利技术来测量温度。温度测量电路的方框图见图4所示。图3使用VDD供温度变换所需电流DS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:4513385244764853214图4温度测量电路DSl820通过门开通期间内低温度系数振荡器经历的时钟周期个数计数来测量温度,而门开通期由高温度系数振荡器决定。计数器予置对应于-55℃的基数,如果在门开通期结束前计数器达到零,那么温度寄存器也被予置到-55℃的数值增量,指示温度高于-55℃。同时,计数器用斜率累加器电路所决定的值进行予置。为了对遵循抛物线规律的振荡器温度特性进行补偿,这种电路是必需的。时钟再次使计数器计值至它达到零。如果门开通时间仍未结束,那么此过程再次重复。斜率累加器用于补偿振荡器温度特性的非线性,以产生高分辩率的温度测量。通过改变温度每升高一度,计数器必须经历的计数个数来实行补偿。因此,为了获得所需的分辩率,计数器的数值以及在给定温度处每一摄氏度的计数个数(斜率累加器的值)二者都必须知道。此计算在DSl820内部完成以提供0.5℃的分辩率。温度读数以16位、符号扩展的二进制补码读数形式提供。表l说明输出数据对测量温度的关系。数据在单线接口上串行发送。DSl820可以以0.5℃的增量值,在0.5℃至+125℃的范围内测量温度。对于应用华氏温度的场合,必须使用查找表或变换系数。注意,在DSl820中,温度是以1/2℃LSB(最低有效位)形式表示时,产生以下9位格式:MSB(最高有效位)(最低有效位)LSB最高有效(符号)位被复制到存储器内两字节的温度寄存器中较高MSB的所有位,这种“符号扩展”产生了如表1所示的16位温度读数。以下的过程可以获得较高的分辩率。首先,读温度,并从读得的值截去0.5℃位(最低有效位)。这个值便是TEMP_READ。然后可以读留在计数器内的值。此值是门开通期停止之后计数剩余TEMPRATURE(温度)=TEMP_READ-0.25+CPERCOUNTREMAINCOUNTCPERCOUNT_____)(-DS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:4513385244764853215(COUNT_REMAIN)。所需的最后一个数值是在该温度处每一摄氏度的计数个数(COUNT_PER_C)。于是,用户可以使用下式计算实际温度:表1温度/数据关系温度数字输出(二进制)数字输出(十六进制)+125℃000000001111101000FAh+25℃00000000001100100032h+1/2℃0000000000000001000lh+0℃00000000000000000000h-1/2℃1111111111111111FFFFh-25℃1111111111001110FFCEh-55℃1111111110010010FF92h2.4运用—告警信号在DSl820完成温度变换之后,温度值与贮存在TH和TL内的触发值相比较。因为这些寄存器仅仅是8位,所以0.5℃位在比较时被忽略。TH或TL的最高有较位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位。每次温度测量更新此标志。只要告警标志置位,DSl820将对告警搜索命令作出响应。这允许并联连接许多DSl820,同时进行温度测量。如果某处温度超过极限,那么可以识别出正在告警的器件并立即将其读出而不必读出非告警的器件。2.564位激光ROM每一DSl820包括一个唯一的64位长的ROM编码。开绐的8位是单线产品系列编码(DSl820编码是10h)。接着的48位是唯一的系列号。最后的8位是开始56位CRC(见图5)。64位ROM和ROM操作控制部分允许DSl820作为一个单线器件工作并遵循“单线总线系统”一节中所详述的单线协议。直到ROM操作协议被满足,DSl820控制部分的功能是不可访问的。此协议在ROM操作协议流程图(图6)中叙述。单线总线主机必须首先操作五种ROM操作命令之一:1)ReadROM(读ROM),2)MatchROM(匹配ROM),3)SearchROM(搜索ROM),4)SkipROM(跳过ROM),或5)AlarmSearch(告警搜索)。在成功地执行了ROM操作序列之后,,DSl820特定的功能便可访问,然后总线上主机可提供六个存贮器和控制功能命令之一。图564位激光ROM8位CRC编号48位序列号8位产品系列编码MSBLSBMSBLSBMSBLSB(最高有效位)(最低有效位)DS18B20单总线数字温度计电子驿站更多的单片机资料、源程序及单片机教程请登陆网站下载!:support@ourmpu.comQQ:4513385244764853216图6ROM操作流程图2.6CRC产生DSl820有一存贮在64位ROM的最高有效字节内的8位CRC。总线上的主机可以根据64位ROM的前56位计算机CRC的值并把它与存贮在DSl820内的值进行比较以决定ROM的数据是否已被主机正确地接收。CR