基于FPGA的DS18B20温度传感器驱动设计

  • 06/16 10:25

引言:通过本文可以了解DS18B20温度传感器工作原理、硬件设计、DS18B20单总线接口驱动编写。

1. 概述

DS18B20是常用的数字温度传感器,其输出的是数字信号,具有体积小,硬件开销低,抗干扰能力强,精度高的特点。

DS18B20数字温度传感器接线方便,经封装成后可应用于多种场合,如电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。具有耐磨耐碰,体积小,使用方便,封装形式多样等特点,适用于各种狭小空间设备数字测温和控制领域。

2.原理学习

2.1 芯片概述

DS18B20数字温度计提供9到12bit分辨率的温度测量,可以通过可编程非易失性存储单元实现温度的下限和上限报警。DS18B20采用单总线协议与上位机进行通信,只需要一根信号线和一根地线。它的温度测量范围为-55℃~ +125℃(-67°F to +257°F)。在-10℃~70℃范围内的测试精度可以达到±0.5℃。此外它还可以工作在寄生模式下,直接通过信号线对芯片供电,从而不需要额外的供电电源。每个DS18B20都有一个全球唯一的64位序列号,可以将多个DS18B20串联在同一跟单总线上进行组网,只需要一个处理器就可以控制分布在大面积区域中的多颗DS18B20。这种组网方式特别适合HVAC环境控制,建筑、设备、粮情测温和工业测温以及过程监测控制等应用领域。

2.2 管脚描述

图2:常见封装管脚定义

DS18B20管脚描述如下表所示。

表1:DS18B20管脚描述

2.3 芯片内部结构

图3:DS18B20内部结构

2.4 硬件设计

DS18B20可以通过管脚VDD外部电源供电,也可以工作于寄生电源模式。

(1)寄生电源模式硬件设计

如图所示,当总线处于高电平状态,DQ与外部上拉电阻连接通过单总线对器件供电。同时处于高电平状态的总线信号对内部电容(Cpp)充电(如图3所示),在总线处于低电平状态时,该电容提供能量给器件,该提供能量的方式成为“寄生电源”。当DS18B20处于寄生电源模式时,VDD管脚必须接地。

寄生电源模式下,单总线和CPP在大部分操作中能够提供充分的满足规定时序和电压的电流(见直流电特性和交流电特性节)给DS18B20。然而,当DS18B20正在执行温度转换或从寄存器EEPROM传送数据时,工作电流可高达1.5mA。这个电流可能会引起连接在单总线上的弱上拉电阻不可接受的压降,这需要更大的电流,而此时CPP无法提供。为了保证DS18B20有充足的供电,当进行温度转换或复制数据到EEPORM操作时,必须给单总线提供一个强上拉,采用MOSFET直接把总线上拉到电源上的方式实现,如图4所示。

图4:温度转换器件寄生电源模式硬件设计

(2)外部供电模式硬件设计

对DS18B20供电的另外一种方法是传统的从VDD管脚接入一个外部电源,如图5所示。这样做的好处是单总线上不需要强上拉,而且总线不用在温度转换期间总保持高电平。

图5:使用外部电源供电硬件设计

寄生电源模式在远距离测试或空间受限的应用场合是非常有用的。

对于温度高于100℃时,不推荐使用寄生电源,因为DS18B20在这种温度下表现出的漏电流比较大,通信可能无法进行。在类似这种温度的情况下,强烈推荐使用DS18B20的VDD管脚供电。

2.5 寄存器详解

(1) 64bit只读寄存器

图6:64bit ROM编码

每颗DS18B20都有一个全球唯一的存储在ROM中的64位编码。最低8bit是单线系列编码:28h。接着的48位是一个唯一的序列号。最后高8bit是低56bit编码的CRC编码。CRC的详细解释见CRC发生器节。64位ROM和ROM操作控制区允许DS18B20作为单总线器件并按照详述于单总线系统节的单总线协议工作。

(2)存储器结构

DS18B20的存储器结构如图7所示。

图7:DS18B20的存储器结构

(1)byte0和byte1:分别为温度寄存器的LSB和MSB,这两个字节的存储器为只读存储器

这个两个字节寄存器用来存储温度传感器输出的数据,寄存器格式如图8所示。

图8:温度寄存器格式

温度与数据数据格式对应关系如图9所示。"S"bit表示温度符号位,上电复位时,温度寄存器默认值为+85℃。

图9:温度/数据关系

(2)byte2和byte3:是TH和TL,注意当报警功能不能使用时,TH和TL寄存器可以被当作普通寄存器使用。TH,TL和配置寄存器均为非易失性的可擦除寄存器(EEPROM),该存储的数据在器件掉电后不会消失。

图10:TH,TL寄存器格式

(3)byte4:配置寄存器。

配置寄存器允许用户将温度测量分辨率设定为9,10,11或12位,对应的温度分辨率分别为0.5℃、0.25℃、0.125℃和0.0625℃,芯片在上电状态下默认的精度为12位。

配置寄存器的bit7和bit0到bit4被器件保留,禁止写入;在读数据时,它们全部表现为逻辑1。

图11:配置寄存器格式

表2:传感器精度配置表

(4)byte5:被器件保留,禁止写入。

(5)byte6和byte7:用户可以使用;

(6)byte8:只读,包含以上八个字节的CRC码。

2.6 DS18B20操作流程

通过单总线访问DS18B20的执行步骤如下:

步骤1:初始化;

步骤2:ROM操作指令;

步骤3:DS18B20功能指令。每一次DS18B20的操作都必须满足以上步骤,若是缺少步骤或是顺序混乱,器件将不会有返回值。搜索ROM命令和报警搜索命令除外。当这两个命令执行时,主控制器必须返回步骤1。

2.7 单总线协议详解

DS18B20采用单总线协议,通过一个单线端口通信。DS18B20需要严格的单总线协议以确保数据的完整性。协议定义了几种单总线信号的类型:复位脉冲、存在脉冲、写0、写1、读0和读1。所有这些信号,除存在脉冲外,都是由总线控制器发出的。

(1)初始化:复位脉冲和存在脉冲

所有和DS18B20间的通信都以初始化序列开始,初始化序列如图12所示。一个复位脉冲跟着一个存在脉冲表明DS18B20已经准备好发送和接收数据。

图 12:初始化时序

如图所示,初始化包括两个阶段:

①复位脉冲阶段:总线控制器拉低总线并保持480us以发出(TX)一个复位脉冲信号,然后释放总线;

②检测存在脉冲阶段:当总线被释放后,进入接收状态(RX)。上拉电阻将总线拉到高电平。当DS18B20检测到IO引脚上的上升沿后,等待15~60us,然后发出一个由60~240us低电平信号构成的存在脉冲。

(2)写时序

DS18B20有两种写时序:写1时序和写0时序。总线控制器通过写1时序来写逻辑1;通过写0时序来写逻辑0。写时序必须最少持续60us,包括两个写周期之间至少1us的恢复时间。当总线控制器把数据线从逻辑高电平拉低到低电平的时候,写时序开始(见图13)。

图 13:写时序

总线控制器要写产生一个写时序,必须把数据线拉到低电平然后释放,且需在15us内释放总线。当总线被释放后,上拉电阻将总线拉高。总线控制器要生成写0时隙,必须把数据线拉到低电平且继续保持至少60us。

总线控制器初始化写时序后,DS18B20在一个15us到60us的窗口内对信号线DQ进行采样。如果线上是高电平,就是写1。反之,如果线上是低电平,就是写0。

(3)读时序

总线控制器发起读时序时,DS18B20仅被用来传输数据给控制器。因此,总线控制器在发出读寄存器指令[BEh]或读电源模式指令[B4h]后必须立刻开始读时序,以便DS18B20提供请求的数据。除此之外,总线控制器在发出发送温度转换指令平[44h]或召回EEPROM指令[B8h]之后读时序,详见DS18B20功能指令节。

图 14:读时序

所有读时序必须最少60us,包括两个读周期间至少1us的恢复时间。当总线控制把数据线从高电平拉低到低电平时,读时序开始,数据线必须至少保持1us,然后总线被释放(见图14)。在总线控制器发出读时序后,DS18B20过拉高或拉低总线上来传输1或0。当传输0结束后,总线将被释放,通过上拉电阻回到高电平空闲状态。从DS18B20输出的数据在读时序的下降沿出现后15us内有效。因此,总线控制器在读时序开始15us内释放总线然后采样总线状态,以读取数据线的状态。

3.实战操作

3.1 软件设计

本文要利用LCD1602实现DS18B20温度及时间实时显示。具体功能如下:

(1)DS18B20单总线接口驱动功能;

(2)温度值HEX转BCD码功能;

(3)时钟计时器功能;

(4)LCD1602显示DS18B20实时温度及时间显示。软件功能模块划分如图15所示。

图15:软件功能模块框图

各个模块功能:

(1)ds18b20_test.v模块为顶层模块,实现模块间互联;(2)ds18b20_driver.v实现芯片单总线接口通信功能;
(3)hex_bcd.v实现温度值HEX转BCD码功能;
(4)clock_timer.v实现时钟计时器功能;

(5)lcd1602_driver.v实现DS18B20实时温度及时间显示。

DS18B20接口驱动ds18b20_driver.v软件实现流程图如图16所示。

图15:DS18B20温度读取控制流程图

3.2 测试结果

软件下载至电路板,显示在LCD1602上,如图11所示,可以看到DS18B20温度及时间已经正确显示。

图1:DS18B20温度及时间显示

人工客服
(售后/吐槽/合作/交友)
  • 器件型号:A3P400-FGG144I
    • 数量 1
    • 建议厂商 Microsemi FPGA & SoC
    • 器件描述 Field Programmable Gate Array, 400000 Gates, CMOS, PBGA144, 1 MM PITCH, GREEN, FBGA-144
    • 参考价格 $11.75
    • 风险等级
    • ECAD模型
    • 数据手册
    • 查看更多信息
  • 器件型号:A3P1000-FGG144I
    • 数量 1
    • 建议厂商 Microsemi FPGA & SoC
    • 器件描述 Field Programmable Gate Array, 1000000 Gates, CMOS, PBGA144, 1 MM PITCH, GREEN, FBGA-144
    • 参考价格 $133.31
    • 风险等级
    • ECAD模型
    • 数据手册
    • 查看更多信息
  • 器件型号:5M1270ZF256C5N
    • 数量 1
    • 建议厂商 Intel Corporation
    • 器件描述 Flash PLD, 10ns, 980-Cell, CMOS, PBGA256, 17 X 17 MM, 1 MM PITCH, LEAD FREE, FBGA-256
    • 参考价格 $41.28
    • 风险等级
    • ECAD模型
    • 数据手册
    • 查看更多信息

相关资讯

  1. 1.
  2. 2.
  3. 3.
  4. 4.
  5. 5.
  6. 6.
  7. 7.
  8. 8.
  9. 9.
  10. 10.
  11. 11.
  12. 12.
  13. 13.
  14. 14.
  15. 15.
  16. 16.
  17. 17.
  18. 18.
  19. 19.
  20. 20.
查看全部20条内容