您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 18b20在stm32上驱动并附18b20详细资料[1]
DS18B20目录一、概述............................................................................................................21.DS18B20概述...........................................................................................22.DS18B20的主要特征:..............................................................................33.DS18B20测温原理....................................................................................3二、DS18B20结构..............................................................................................41.DS18B20芯片封装结构:...........................................................................42.DS18B20内部结构:.................................................................................5三、DS18B20工作流程.......................................................................................71.DS28B20芯片ROM指令表:......................................................................72.控制器对18B20操作流程:.......................................................................83.DS18B20复位、读、写时序图..................................................................10四、ds18b20使用中注意事项............................................................................12五、stm32下DS18B20的驱动...........................................................................141.系统框图...............................................................................................142.硬件电路图.............................................................................................153.软件部分................................................................................................174.下载与调试...........................................................................................31六、结束语......................................................................................................32一、概述1.DS18B20概述传统的温度检测大多以热敏电阻为传感器,采用热敏电阻,可满足40℃至90℃测量范围,但热敏电阻可靠性差,测量温度准确率低,对于小于1℃的温度信号是不适用的,还得经过专门的接口电路转换成数字信号才能由微处理器进行处理。目前常用的微机与外设之间进行的数据通信的串行总线主要有i2c总线,spi总线等。其中i2c总线以同步串行2线方式进行通信(一条时钟线,一条数据线),spi总线则以同步串行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线)。这些总线至少需要两条或两条以上的信号线。而单总线(1-wirebus),采用单根信号线,既可传输数据,而且数据传输是双向的,cpu只需一根端口线就能与诸多单总线器件通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因而,这种单总线技术具有线路简单,硬件开销少,成本低廉,软件设计简单,便于总线扩展和维护。同时,基于单总线技术能较好地解决传统识别器普遍存在的携带不便,易损坏,易受腐馈,易受电磁干扰等不足,因此,单总线具有广阔的应用前景,是值得关注的一个发展领域。单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。主机或从机通过一个漏极开路或三态端口连至数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线。单总线通常要求外接一个约为4.7k的上拉电阻,这样,当总线闲置时其状态为高电平。ds18b20数字式温度传感器,与传统的热敏电阻有所不同的是,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度。同时,它可以直接将被测温度转化成串行数字信号供微机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本,搭建电路和焊接电路时更快,调试也更方便简单化,这也就缩短了开发的周期。2.DS18B20的主要特征:�全数字温度转换及输出。�先进的单总线数据通信。�最高12位分辨率,精度可达土0.5摄氏度。�12位分辨率时的最大工作周期为750毫秒。�可选择寄生工作方式。�检测温度范围为–55°C~+125°C(–67°F~+257°F)�内置EEPROM,限温报警功能。�64位光刻ROM,内置产品序列号,方便多机挂接。�多样封装形式,适应不同硬件系统。3.DS18B20测温原理低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,为计数器提供一频率稳定的计数脉冲。高温度系数晶振随温度变化其震荡频率明显改变,很敏感的振荡器,所产生的信号作为减法计数器2的脉冲输入,为计数器2提供一个频率随温度变化的计数脉冲。图中还隐含着计数门,当计数门打开时,ds18b20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。斜率累加器用于补偿和修正测温过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。二、DS18B20结构1.DS18B20芯片封装结构:DS18B20引脚功能:·GND电压地·DQ单数据总线·VDD电源电压(3.0-5.5V)·NC空引脚2.DS18B20内部结构:DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,温度报警触发器TH和TL,配置寄存器。64位光刻rom:光刻rom中的64位序列号是出厂前被光刻好的,它可以看作是该ds18b20的地址序列码。64位光刻rom的排列是:开始8位(地址:28h)是产品类型标号,接着的48位是该ds18b20自身的序列号,并且每个ds18b20的序列号都不相同,因此它可以看作是该ds18b20的地址序列码;最后8位则是前面56位的循环冗余校验码(crc=x8+x5+x4+1)。由于每一个ds18b20的rom数据都各不相同,因此微控制器就可以通过单总线对多个ds18b20进行寻址,从而实现一根总线上挂接多个ds18b20的目的。温度传感器DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FE6FH,-55℃的数字输出为FC90H。温度传感器的存储器ds18b20温度传感器的内部存储器包括一个高速暂存ram和一个非易失性的可电擦除的e2ram,后者存放高温度和低温度触发器th、tl和结构寄存器。数据先写入ram,经校验后再传给e2ram。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位tl,第二个字节是温度的高八位th。第三个和第四个字节是th、tl的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,可用来保证通信正确。ds18b20的分布如下:配置寄存器配置寄存器是配置不同的位数来确定温度和数字的转化。TMR1RO11111低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率(DS18B20出厂时被设置为12位)三、DS18B20工作流程1.DS28B20芯片ROM指令表:ReadROM(读ROM)[33H](方括号中的为16进制的命令字)这个命令允许总线控制器读到DS18B20的64位ROM。只有当总线上只存在一个DS18B20的时候才可以使用此指令,如果挂接不只一个,当通信时将会发生数据冲突。MatchROM(指定匹配芯片)[55H]这个指令后面紧跟着由控制器发出了64位序列号,当总线上有多只DS18B20时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。这条指令适应单芯片和多芯片挂接。SkipROM(跳跃ROM指令)[CCH]这条指令使芯片不对ROM编码做出反应,在单总线的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。SearchROM(搜索芯片)[F0H]在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的64位ROM。AlarmSearch(报警芯片搜索)[ECH]在多芯片挂接的情况下,报警芯片搜索指令只对附合温度高于TH或小于TL报警条件的芯片做出反应。只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。DS28B20芯片存储器操作指令表:WriteScratchpad(向RAM中写数据)[4EH]这是向RAM中写入数据的指令,随后写入的两个字节的数据将会被存到地址2(报警RAM之TH)和地址
本文标题:18b20在stm32上驱动并附18b20详细资料[1]
链接地址:https://www.777doc.com/doc-4648080 .html