登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

易拉罐的博客

心静自然凉

 
 
 

日志

 
 

转 基于DS18B20测温系统解决方案  

2010-03-28 22:08:04|  分类: 接口技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

文章来源:http://www.emtronix.com/article/article2009316.html

      英创嵌入式主板以其优异的稳定性、独特的设计及方便使用等优点,在嵌入式领域占有一席之地。在工业现场,经常有监测环境温度的需求,本方案应用DS18B20为温度采集芯片,与英创嵌入式主板的GPIO相连,就可以组成完整的测温系统。由于DS18B20每条总线上可以最多接8个测温点,那么英创嵌入式主板至少可以接64个测温点。

      DS18B20数字温度计是DALLAS公司生产的1-Wire即单总线器件,具有线路简单,体积小的特点。实际应用中不需要外部任何元器件即可实现测温,测量温度范围在-55°C到+125°C之间,数字温度计的分辨率用户可以从9位到12位选择;并且内部有温度上、下限告警设置,使用非常方便。

      TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。

基于DS18B20测温系统解决方案 - 英创 - emtronix的博客

图1  DS18B20管脚示意图

表1 DS18B20详细引脚功能描述:

 序号

 名称

 引脚功能描述

 1  GND  地信号
 2  DQ  数据输入/输出引脚。开漏单总线接口引脚。

 当被用着在寄生电源下,也可以向器件提供电源。

 3  VDD  可选的VDD引脚。当工作于寄生电源时,此引脚必须接地。

DS18B20的使用方法

      由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对嵌入式主板来说,硬件上并不支持单总线协议,因此,我们必须采用GPIO的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。在本示例中,只需把管脚2接英创嵌入式主板的GPIO,管脚3接5V电源,管脚1接地,就可以搭建起测试环境,如图二所示。如果需要测试多点温度,可以把多个DS18B20并起。

基于DS18B20测温系统解决方案 - 英创 - emtronix的博客

图2 嵌入式主板与DS18B20连接示意图      由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将嵌入式主板作为主设备,单总线器件作为从设备。每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件送回数据,在进行写命令后,主机需要启动读时序完成数据接收。数据和命令的传输都是低位在先。

      下面是18B20的时序图,根据时序的要求,改变GPIO的电平,可以完成18B20的操作。

DS18B20复位时序

基于DS18B20测温系统解决方案 - 英创 - emtronix的博客

图3 DS18B20复位时序

      根据以上DS18B20的时序,初始化的函数如下:

      Init18b20()

      {

            char flag;

            OutBit(1);

            Delayus(1);

            OutBit(0);

            Delayus(600);    //复位信号480—960us

            OutBit(1);

            Delayus(60);     //等待15-60us

            if(ReadBit())   //检查存在电平,如果为低,说明18B20正确复位

            {

                  printf('init fail');

                  return false;    //detect 1820 fail!

            }

            else

            {

                  Sleep(1);      

                  OutBit(1);

                  return true;  //detect 1820 success!

            }

      }

      DS18B20的数据读写时通过时间间隙处理位和命令字来确认信息交换。

DS18B20的写时间隙

  评论这张
 
阅读(482)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018