《DS18B20数字温度传感器介绍教学内容.doc》由会员分享,可在线阅读,更多相关《DS18B20数字温度传感器介绍教学内容.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Good is good, but better carries it.精益求精,善益求善。DS18B20数字温度传感器介绍-目前常用的微机与外设之间进行的数据通信的串行总线主要有I2C总线,SPI总线等。其中I2C总线以同步串行2线方式进行通信(一条时钟线,一条数据线),SPI总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。这些总线至少需要两条或两条以上的信号线。而单总线(1-wirebus),采用单根信号线,既可传输数据,而且数据传输是双向的,CPU只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因而,这种单总线技
2、术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。单总线通常要求外接一个约为4.7K的上拉电阻,这样,当总线闲置时其状态为高电平。DS18B20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,
3、提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。DS18B20单线数字温度传感器,即“一线器件”,其具有独特的优点:(1)采用单总线的接口方式与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。单总线具有经济性好,抗干扰能力强,适合于恶劣环境的现场温度测量,使用方便等优点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。(2)测量温度范围宽,测量精度高DS18B20的测量范围
4、为-55+125;在-10+85C范围内,精度为0.5C。(3)在使用中不需要任何外围元件。(4)持多点组网功能多个DS18B20可以并联在惟一的三线上,实现多点测温。(5)供电方式灵活DS18B20可以通过内部寄生电路从数据线上获取电源。因此,当数据线上的时序满足一定的要求时,可以不接外部电源,从而使系统结构更趋简单,可靠性更高。(6)测量参数可配置DS18B20的测量分辨率可通过程序设定912位。(7)负压特性电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。(8)掉电保护功能DS18B20内部含有EEPROM,在系统掉电以后,它仍可保存分辨率及报警温度的设定值。DS18B20具有体
5、积更小、适用电压更宽、更经济、可选更小的封装方式,更宽的电压适用范围,适合于构建自己的经济的测温系统,因此也就被设计者们所青睐。DS18B20的内部结构DS18B20测温原理DS18B20的内部测温电路框图低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,为计数器提供一频率稳定的计数脉冲。高温度系数晶振随温度变化其震荡频率明显改变,很敏感的振荡器,所产生的信号作为减法计数器2的脉冲输入,为计数器2提供一个频率随温度变化的计数脉冲。图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间
6、由高温度系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。DS
7、18B20的管脚排列及封装图DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端,电源供电3.05.5V(在寄生电源接线方式时接地)。寄生电源工作方式外接电源工作方式注意:当温度高于时,不能使用寄生电源,因为此时器件中较大的漏电流会使总线不能可靠检测高低电平,从而导致数据传输误码率的增大。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(地址:28H)是产品类型标号,接着的48位是该DS1
8、8B20自身的序列号,并且每个DS18B20的序列号都不相同,因此它可以看作是该DS18B20的地址序列码;最后8位则是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。由于每一个DS18B20的ROM数据都各不相同,因此微控制器就可以通过单总线对多个DS18B20进行寻址,从而实现一根总线上挂接多个DS18B20的目的。64b闪速ROMDS18B20中的温度传感器用于完成对温度的测量,它的测量精度可以配置成9位,10位,11位或12位4种状态。温度传感器在测量完成后将测量的结果存储在DS18B20的两个8BIT的RAM中,单片机可通过单线接口读到该数据,读取时低位在前,高位在后数据
9、的存储格式如下表(以12位转化为例):温度信号寄存器格式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如:+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较,若TTH或TTL,则将该器件内的告警标志置位,并对主机发出
10、的告警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行告警搜索。DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。数据先写入RAM,经校验后再传给E2RAM。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位TL,第二个字节是温度的高八位TH。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检
11、验字节,可用来保证通信正确。DS18B20的分布如下:寄存器内容地址温度的低八位数据0温度的高八位数据1高温阀值2低温阀值3保留4保留5计数剩余值6每度计数值7CRC校验8DS18B20的暂存寄存器分布在64bROM的最高有效字节中存储有循环冗余校验码(CRC)。主机根据ROM的前56位来计算CRC值,并和存入DS18B20中的CRC值做比较,以判断主机收到的ROM数据是否正确。设置寄存器设置寄存器位于高速闪存的低5个字节,这个寄存器中的内容被用来确定温度的转换精度。寄存器各位的内容如下:BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0TMR1R011111DS18B20的设置
12、寄存器各位内容该寄存器的低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms0012位750ms分辨率设置由表可知,设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要在分辨率和转换时间权衡考虑。DS18B20的温度测量1-WIRE网络具有严谨的控制结构,其结构如下图所示,一般通过双绞线与1-WIRE元件进行数据通信,它们
13、通常被定义为漏极开路端点,主/从式多点结构,而且一般都在主机端接上一个上拉电阻+5V电源。通常为了给1-WIRE设备提供足够的电源,需要一个MOSFET管将1-WIRE总线上拉至+5V电源。DS18B20组成的1-WIRE网络1-WIRE网络通信协议是分时定义的,有严格的时隙概念,下图是复位脉冲的时隙。1-WIRE协议的复位脉冲时隙1-WIRE读写“0/1”时隙DS18B20单线通信功能是分时完成的,他有严格的时隙概念,如果出现序列混乱,1-WIRE器件将不响应主机,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。根据DS18B20的协议规定,微控制器控制DS18B20完成温
14、度的转换必须经过以下4个步骤:()每次读写前对DS18B20进行复位初始化。复位要求主CPU将数据线下拉500ms,然后释放,DS18B20收到信号后等待16ms60ms左右,然后发出60ms240ms的存在低脉冲,主CPU收到此信号后表示复位成功。()发送一条ROM指令,如下表所示:指令名称指令代码指令功能读ROM33H读DS18B20ROM中的编码(即读64位地址)ROM匹配(符合ROM)55H发出此命令之后,接着发出64位ROM编码,访问单总线上与编码相对应DS18B20使之作出响应,为下一步对该DS18B20的读写作准备搜索ROM0F0H用于确定挂接在同一总线上DS18B20的个数和识
15、别64位ROM地址,为操作各器件作好准备跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发温度变换命令,适用于单片机工作警报搜索0ECH该指令执行后,只有温度超过设定值上限或下限的片子才做出响应DS18B20的ROM指令集()发送存储器指令,如下表所示:指令名称指令代码指令功能温度变换44H启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果存入内部9字节RAM中读暂存器0BEH读内部RAM中9字节的内容写暂存器4EH发出向内部RAM的第3,4字节写上,下限温度数据命令,紧跟该命令之后,是传送两字节的数据复制暂存器48H将RAM中第3,4字节的内容复制
16、到EEPROM中重调EEPROM0B8HEEPROM中的内容恢复到RAM中的第3,4字节读供电方式0B4H读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外接电源供电DS18B20发送“1”DS18B20的存储器指令集(4)进行数据通信。DS18B20使用中注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:(1)每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20
17、收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。(所有的读写时序至少需要60us,且每个独立的时序之间至少需要1us的恢复时间。在写时序时,主机将在下拉低总线15us之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60us的低电平,则向单总线器件写0。单总线仅在主机发出读写时序时才向主机传送数据,所以,当主机向单总线器件发出读数据指令后,必须马上产生读时序,以便单总线器件能传输数据。)(2)在写数据时,写0时单总线至少被拉低60US,写1时,15US内就得释放总线。(3)转化后得到的12位数据,存储在18B20的两个8比特的RAM中
18、,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。(4)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。()在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并
19、非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。()连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。(7)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。-