1、数字温度传感器DS18B20控制接口设计12431 作者: 日期:13 个人收集整理 勿做商业用途数字温度传感器DS18B20控制接口设计摘 要: DS18B20是一款经典的单总线数字温度传感器芯片,较传统的温度传感器具有结构简单、体积小、功耗小、抗干扰能力强、使用简单、可组网实现多点温度测量等优点。本设计简要介绍了数字温度传感器DS18B20 的特性及工作原理,着重论述了用FPGA实现对此传感器的控制,并将测到的温度在LED数码管上显示出来。关键词:DS18B20;温度传感器;FPGA;LED数码管Abstract: DS18B20 is a classic single-bus digit
2、al temperature sensor chip, the more traditional temperature sensor has a simple structure, small size, low power consumption, and antiinterference ability, easy to use networking to achieve multipoint temperature measurement. The design brief describes the features and working principle of the digi
3、tal temperature sensor DS18B20, focuses on the control of this sensor using FPGA, and the measured temperature is displayed on the LED digital tube.Keywords: DS18B20; temperature sensor; FPGA; LED digital tube1 引言传统的温度传感器系统大都采用放大、调理、A/ D 转换, 转换后的数字信号送入计算机处理, 处理电路复杂、可靠性相对较差, 占用计算机的资源较多.DS18B20 是一线制数字
4、温度传感器, 它可将温度信号直接转换成串行数字信号送给微处理器, 电路简单, 成本低, 每一只DS18B20 内部的ROM 存储器都有唯一的64位系列号, 在1 根地址/ 信号线上可以挂接多个DS18B20, 易于扩展, 便于 组网和多点测量.随着科技的发展 ,温度的实时显示系统应用越来越广泛 ,比如空调遥控器上当前室温的显示、热水器温度的显示等等.实现温度的实时采集与显示系统有很多种解决方案 ,本文使用全数字温度传感器DS18B20来实现温度的实时采集FPGA作为控制中心与数据桥梁;LED数码管作为温度实时显示器件。其中DS18B20作为FPGA的外部信号源,把所采集到的温度转换为数字信号,
5、通过接口 (113脚)传给FPGA,FPGA启动ROM内的控制程序驱动LED数码管,通过IO口和数据线把数据传送给LED数码管,将采集到的温度实时显示出来。该设计结构简单、测温准确,成本低,工作稳定可靠,具有一定的实际应用价值.2 DS18B20数字温度传感器介绍DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式.DS18B20的性能特点如下:2.1 DS18B20的性能特点独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的
6、三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05。5;零待机功耗;温度以或位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;2。2 DS18B20的内部结构图DS18B20采用脚PR35封装或脚SOIC封装,其内部结构框图如图21所示.图2-1 DS18B20内部结构框图 图22 DS18B20字节定义64位ROM的结构开始位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信
7、的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为字节的存储器,结构如图2-2所示。头个字节包含测得的温度信息,第和第字节和的拷贝,是易失的,每次上电复位时被刷新。第个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图34所示。低位一直为,是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为,用户要去改动,R1和0决定温度转换的精度位数,来设置分
8、率。2.3 DS18B20测温原理DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一个频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与55相对应的一个预置值。以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度
9、处使温度寄存器寄存值增加1计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0。25进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0。25,最低位就置1;若高于0.75时,温度寄存器的最低位就进位然后置0.这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2LSB,即0。25.温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个
10、字节中,符号位占用第一字节,8位温度数据占据第二字节.DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿.测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读出。2.4 DS18B20供电方式DS18B20有两种供电方式,一种是寄生电源强上拉供电方式,一种是外部供电方式,如下图: 图2-3 寄生电源强上拉供电
11、方式电路图在寄生电源供电方式下,DS18B20 从单线信号线上汲取能量:在信号线 DQ 处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。为了使 DS18B20 在动态转换周期中获得足够的电流供应,当进行温度转换或拷贝到 E2 存储器操作时,用 MOSFET 把 I/O 线直接拉到 VCC 就可提供足够的电流,在发出任何涉及到拷贝到 E2 存储器或启动温度转换的指令后,必须在最多 10S 内把 I/O 线转换到强上拉状态。在强上拉方式下可以解决电流供应不走的问题,因此也适合于多点测温应用,缺点就是要多占用一根 I/O 口线
12、进行强上拉切换.图2-4 外部电源供电方式电路图 在外部电源供电方式下,DS18B20 工作电源由 VDD 引脚接入,此时 I/O 线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个 DS18B20 传感器,组成多点测温系统。在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是 85。3 设计需求温度测量范围:-55+125可编程为9位12位A/D转换精度 测温分辨率可达0.0625 LED数码管直读显示4 设计方案4.1 硬件设计将DF2C8FPGA 核心板和EBF2基础实验板连接在一起,同时使能DS18B20 模
13、块和数码管模块:数码管使能:用“短路帽”将实验板上的JP4和JP5全部短接。DS18B20 温度传感器使能跳线JP10 全部短接,元件安装示意如下图41和4-2(注意方向,半圆形的一边朝板子内部,平面朝外,和板上的图示一致)。 图 41:数码管使能图示 图 42:温度传感器安装和使能图示4。1。1 温度传感器 DS18B20 电路基础实验板上提供了一个由DS18B20构成的温度测量模块,其原理如图4-3所示.该电路选择外部供电方式。外部电源供电方式工作稳定可靠, 抗干扰能力强。图43 单线制温度传感器 DS18B20 电路图DS18B20与DF2C8FPGA核心板的连接关系如表41所示表 4-
14、1:DS18B20与DF2C8FPGA核心板连接时的管脚对应关系4.1。2 数码管显示电路基础实验板上具有2个共阳极的位七段数码管,构成8位构,其电路如图4-4 所示。图 44:七段数码管显示电路图数码管的控制引脚由两个跳线JP4和JP5使能(如图4-1所示) R10R17是段码上的限流电阻,位码由于电流较大,采用了PNP三极管驱动。当位码驱动信号为低电平(0)时,对应的数码管才能操作;当段码驱动信号为低电平(0)时,对应的段码点亮。数码管不核心板连接时的管脚对应如表42所示:表 42:数码管与DF2C8FPGA核心板连接时的管脚对应关系4。2 HDL编码4。2。1 时序 (1)复位: 使用D
15、S18B20 时, 首先需将其复位, 然后才能执行其它命令。复位时, 主机将数据线拉为低电平并保持480Ls 960Ls, 然后释放数据线, 再由上拉电阻将数据线拉高15 60Ls, 等待DS18B20 发出存在脉冲, 存在脉冲有效时间为60 240Ls, 这样, 就完成了复位操作。其复位时序如图4-5所示.图45:初始化时序图46:写时序(2)写时隙: 在主机对DS18B20 写数据时, 先将数据线置为高电平, 再变为低电平, 该低电平应大于1us。在数据线变为低电平后15us 内, 根据写“1”或写“0” 使数据线变高或继续为低。DS18B20 将在数据线变成低电平后15us 60us 内
16、对数据线进行采样。要求写入DS18B20 的数据持续时间应大于60us 而小于120us, 两次写数据之间的时间间隔应大于1us。写时隙的时序如图46 所示(3)读时隙 :当主机从DS18B20 读数据时, 主机先将数据线置为高电平, 再变为低电平, 该低电平应大于1us, 然后释放数据线, 使其变为高电平.DS18B20 在数据线从高电平变为低电平的15us 内将数据送到数据线上.主机可在15us 后读取数据线。读时隙的时序如图4-7 所示。图47 :读时隙4.2。2 DS18B20 的操作命令主机可通过一线端口对DS18B20 进行操作, 其步骤为: 复位( 初始化命令) - ROM 功能
17、命令- 存储器功能命令- 执行/ 数据, DS18B20 的ROM 命令有5个( 见表1) , 存储器命令有6个( 见表2) 。命令的执行都是由复位、多个读时隙和写时隙基本时序单元组成。因此, 只要将复位、读时隙、写时隙的时序了解清楚, 使用DS18B20 就比较容易了, 时序如上文所述。表43: 存储器命令操作表 表4-4:ROM命令功能操作表 4。2.3 Verilog HDL编码详细Verilog HDL代码参见工程文件:DF2C8_13_DS18B20工程文件中含有三个v 文件,LED_CTL.v 是数码管显示功能模块,DS18B20_CTL。v 是温度传感器的控制模块,TEMP.v
18、为顶层模块,实例化了前面两个模块,并将采集的温度值送至数码管中进行显示.其中最主要的温度传感器的控制模块,DS18B20_CTL。v.该程序对DS18B20 进行控制, 不仅可以简化程序, 还可以缩短1 次温度转换所需的时间。 这样的话, 1 次温度转换和数字温度值输出循环所涉及到的控制命令、数据交换和所需时隙如图4-8所示。.图48:1次温度转换的控制命令和时隙5 仿真测试结果5.1 仿真波形温度测量模块仿真结果如图6-1所示:图51:仿真波形5.2 结果显示下载配置文件后,可在数码管上观察到带一位小数的温度数值.如果用手捏住传感器,会发现显示的温度在升高。如下图:图52 测温效果图示参考文
19、献:1 沙占友 集成传感器的应用M。 中国电力出版社。2 罗钧,童景琳. 智能传感器数据采集与信号处理M. 化学工业出版社3 周月霞,孙传友。 DS18B20硬件连接及软件编程J。 传感器世界,2001,12。 4 王晓娟,张海燕,梁延兴.基于DS18B20的温度实时采集与显示系统的设计与实现J。 , 2007:3841.5 党 峰, 王敬农, 高国旺。 基于DS18B20 的数字式温度计的实现 J 。 山西电子技术, 2007( 3)6 金伟正. 单线数字温度传感器的原理与应用 J 。 仪表技术与传感器, 2000( 7) : 42- 43.7DS18B20 Datasheet EB/ OL 。 Dalla s: Dallas Semico nductor Cor po r atio n, 2005。