当前位置:首页 > 单片机 > 单片机
[导读]任何一个DS18B20其内部64位ROM用于存储位移的芯片ID(这就为我们的多点采集提供了极大的方便),我使用3pin封装的芯片,值得注意的是:DS18B20使用一根数据线一根地线也能正常工作,也就是VCC并不是必须的,什么原因

任何一个DS18B20其内部64位ROM用于存储位移的芯片ID(这就为我们的多点采集提供了极大的方便),我使用3pin封装的芯片,值得注意的是:DS18B20使用一根数据线一根地线也能正常工作,也就是VCC并不是必须的,什么原因呢?因为DS18B20在内部有一个寄生电容,当我们的数据线的电压范围在3.3--5V之间的时候,他会转存为power,所以当我们外部断电之后,这个power就为IC提供了电源,这很好的起到了一个节能的作用。。

还有一些其他的特点总结如下:

--全数字温度转换及输出。
-- 先进的单总线数据通信。
--最高12位分辨率,精度可达土0.5摄氏度。
--12位分辨率时的最大工作周期为750毫秒。
--可选择寄生工作方式。
--检测温度范围为–55°C ~+125°C (–67°F ~+257°F)
--内置EEPROM,限温报警功能。
--64位光刻ROM,内置产品序列号,方便多机挂接。
--多样封装形式,适应不同硬件系统。

一、硬件介绍

1、首先看一看DS13B20的整体框图

总结一下我自己对这几个部分的理解:

1、电源检测用于检测是外部提供电源还是使用数据线转换的power

2、64为ROM用于读取芯片ID

3、温度灵敏元件用于DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位

4、接下来就是高低温触发器了,

5、还有配置寄存器,配置寄存器是配置不同的位数来确定温度和数字的转化。配置寄存器的结构格式如下

R1、R2与控制器分辨率关系如下:

测温操作 DS18B20的核心功能是它的直接读数字的温度传感器。温度传感器的精度为用户可编程的9,10,11或12位,分别以0.5℃,0.25℃,0.125℃和0.0625℃增量递增。在上电状态下默认的精度为12位。

所以能够很清楚的看到转换位数和转换时间之间的关系。

温度寄存器的格式如下:


二、接下来看看如何控制这个芯片

a、协议:

单总线串行通信协议,这个与普通的spi协议有一点点区别

b、操作流程:一下操作流程是我参照网上的,写的比较容易理解

1,复位:首先我们必须对DS18B20芯片进行复位,复位就是由控制器(单片机)给DS18B20单总线至少480uS的低电平信号。当18B20接到此复位信号后则会在15~60uS后回发一个芯片的存在脉冲。

2,存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在15~60uS后接收存在脉冲,存在脉冲为一个60~240uS的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与18B20间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。

3,控制器发送ROM指令:双方打完了招呼之后最要将进行交流了,ROM指令共有5条,每一个工作周期只能发一条,ROM指令分别是读ROM数据、指定匹配芯片、跳跃ROM、芯片搜索、报警芯片搜索。ROM指令为8位长度,功能是对片内的64位光刻ROM进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的ID号来区别,一般只挂接单个18B20芯片时可以跳过ROM指令(注意:此处指的跳过ROM指令并非不发送ROM指令,而是用特有的一条“跳过指令”)。ROM指令在下文有详细的介绍。

4,控制器发送存储器操作指令:在ROM指令发送给18B20之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为8位,共6条,存储器操作指令分别是写RAM数据、读RAM数据、将RAM数据复制到EEPROM、温度转换、将EEPROM中的报警值复制到RAM、工作方式切换。存储器操作指令的功能是命令18B20作什么样的工作,是芯片控制的关键。

5,执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待18B20执行其指令,一般转换时间为500uS。如执行数据读写指令则需要严格遵循18B20的读写时序来操作。数据的读写方法将有下文有详细介绍。

若要读出当前的温度数据我们需要执行两次工作周期,第一个周期为复位、跳过ROM指令、执行温度转换存储器操作指令、等待500uS温度转换时间。紧接着执行第二个周期为复位、跳过ROM指令、执行读RAM的存储器操作指令、读数据(最多为9个字节,中途可停止,只读简单温度值则读前2个字节即可)。其它的操作流程也大同小异,在此不多介绍。

除此之外,还有一篇文章或许能够解决你的一些关于DS13b20的疑惑,这是我在百度空间转载过来的

http://blog.csdn.net/king_bingge/article/details/8808631好的,如果读完了这篇文章,那么下面对代码进行分析也不成问题了

三、代码分析

1、首先是一段获取温度的主代码


/**************************************************************************************

*名称:DS18B20_Get_Temp

*功能:从ds18b20得到温度值,精度:0.1C

*参数:无

*返回值:温度值(-550~1250)

**************************************************************************************/

shortDS18B20_Get_Temp(void)

{

u8temp;

u8TL,TH;

shorttem;//2bytes

DS18B20_Start();//ds1820startconvert

DS18b20_Reset();

DS18B20_Check();

DS18B20_Write_Byte(0xcc);//skiprom

DS18B20_Write_Byte(0xbe);//convert

TL=DS18B20_Read_Byte();//LSB

TH=DS18B20_Read_Byte();//MSB

if(TH>7)//判断正负

{

TH=~TH;

TL=~TL;

temp=0;//温度为负

}elsetemp=1;//温度为正

tem=TH;//获得高八位

tem<<=8;

tem+=TL;//获得低八位

tem=(float)tem*0.625;//转换

if(temp)returntem;//返回温度值

elsereturn-tem;

}

说道读取温度就得看看这个表了



下面的就是一个官方的示例表,说明了我们转换的时候要注意的地方


注意精度上电默认的12位的。那么如何确定精度的呢?我问了我一个学长,是这样解释的,小数部分是4位,那么最小分辨率就是2的4次方分之一

也就是1/16. = 0.0625

2、开始信号


/**************************************************************************************

*名称:DS18B20_Start

*功能:开始信号

*参数:无

*返回值:无

**************************************************************************************/

voidDS18B20_Start(void)//ds1820startconvert

{

DS18b20_Reset();

DS18B20_Check();

DS18B20_

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭