收藏 分享(赏)

温度数据采集系统new.doc

上传人:dreamzhangning 文档编号:2209368 上传时间:2018-09-05 格式:DOC 页数:8 大小:51KB
下载 相关 举报
温度数据采集系统new.doc_第1页
第1页 / 共8页
温度数据采集系统new.doc_第2页
第2页 / 共8页
温度数据采集系统new.doc_第3页
第3页 / 共8页
温度数据采集系统new.doc_第4页
第4页 / 共8页
温度数据采集系统new.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、第三章 系统硬件设计温度数据采集系统和接收显示硬件电路主要包含温度数据采集、发送、接收和显示等模块,温度数据采集采用数字式温度传感器 DS18B20,数据的发送和接收采用无线数据收发模块 PTR2000,整个系统采用单片机 STC89C52 进行各模块的协调控制,下面对各个模块进行介绍。3.1 数字温度传感器 DS18B203.1.1 DS18B20 的性能特点DS18B20 是由 DALLAS 半导体公司生产的单线型智能数字温度传感器,是新一代适配微处理器的智能温度传感器,广泛应用于工业、农业等领域,具有体积小、接口方便和传输距离远的特点,在一根通信线上可以挂很多个 DS18B20,很方便。

2、具有以下特点:(1)具有独特的 1-Wire 接口,只需要一个端口引脚就可以进行通信;(2)具备多节点能力,能够简化分布式温度检测应用中的设计;(3)不需要外部元件;(4)可以直接从数据线供电,电源电压范围在 35.5V;(5)在待机状态下可以不消耗电源电量;(6)测量温度范围在-55+125;(7)在-10+85 时测量精度在0.5;(8)可以用程序设定 912 位分辨率;(9)用户可根据需要定义温度的上下限报警设置。DS18B203 脚封装的管脚排列图如图 3.1.1 所示。图 3.1.1 DS18B20 管脚排列图DS18B20 只有三个引脚。其中,引脚 1 和 3 分别是 GND 和

3、VDD,引脚 2 是 DQ 端,是用于数据信息的输入和输出。当给 DS18B20 加电后,单片机可以通过 DQ 端写入命令,并可以读出含有温度信息的数字量。在使用寄生电源情况下,可以向 DS18B20 提供电源。3.1.2 DS18B20 的内部结构DS18B20 的内部框图如图 3.1.2 所示。图 3.1.2 DS18B20 的内部框图DS18B20 主要由 64 位 ROM、温度传感器、非易失性温度报警触发器 TH 和 TL 及暂存器四部分组成。64 位 ROM 存储器具有独一无二的序列号,可以看作是该 DS18B20 的地址系列号,是在出厂前就被光刻好的。暂存器各字节具有不同的意义,0

4、 和 1 字节是用于存储温度传感器数字输出的温度寄存器;2 字节和 3 字节分别是非易失性上限报警触发寄存器(TH )和下限报警触发寄存器( TL) ;4 字节的配置寄存器能够用来设置温度转换的精度;5、6 和 7 字节作为内部保留使用。DS18B20 有两种供电方式,可以使用寄生电源供电,也可以使用外部电源。在使用寄生电源的时候,不用外部电源,而是在总线为高时由DQ 端提供电源,同时向内部电容充电,以求在总线拉低时为 DS18B20 提供电量。上电后,DS18B20 进入空闲状态;当 MCU 向 DS18B20 发出 Convert T 44h的命令后, DS18B20 向 MCU 传送转换

5、状态,开始温度测量和 A/D 转换。温度数据以带符号位的补码形式存储在温度寄存器中,温度寄存器格式如图 3.1.3 所示。图 3.1.3 DS18B20 温度寄存器格式温度的正负值是由符号为来说明的,正为 0,负为 1。表 3.1 给出一部分数字数据与温度的对应关系。表 3.1 DS18B20 温度与数据对应关系温度 数字输出(二进制) 数字输出(十六进制)+125 0000011111010000 07D0h+25.0625 0000000110010001 0191h+10.125 0000000010100010 00A2h+0.5 0000000000001000 0008h0 000

6、0000000000000 0000h-0.5 1111111111111000 FFF8h-10.125 1111111101011110 FF5Eh-25.0625 1111111001101111 FE6Fh-55 1111110010010000 FC90h3.1.3 DS18B20 芯片 ROM 指令表Read ROM(读 ROM)33H (方括号中的为 16 进制的命令字)这个命令允许总线控制器读到 DS18B20 的 64 位 ROM。只有当总线上只存在一个DS18B20 的时候才可以使用此指令,如果挂接不止一个,当通信时将会发生数据冲突。Match ROM(指定匹配芯片)55H

7、这个指令后面紧跟着由控制器发出了 64 位序列号,当总线上有多只 DS18B20 时,只有与控制发出的序列号相同的芯片才可以做出反应,其它芯片将等待下一次复位。这条指令适应单芯片和多芯片挂接。Skip ROM(跳跃 ROM 指令)CCH这条指令使芯片不对 ROM 编码做出反应,在单芯片的情况之下,为了节省时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突,导致错误出现。Search ROM(搜索芯片)F0H在芯片初始化后,搜索指令允许总线上挂接多芯片时用排除法识别所有器件的 64 位ROM。Alarm Search(报警芯片搜索) ECH在多芯片挂接的情况下,报警芯片搜索指令只

8、对符合温度高于 TH 或小于 TL 报警条件的芯片做出反应。只要芯片不掉电,报警状态将被保持,直到再一次测得温度什达不到报警条件为止。3.1.4 DS18B20 芯片存储器操作指令表:Write Scratchpad (向 RAM 中写数据)4EH这是向 RAM 中写入数据的指令,随后写入的两个字节的数据将会被存到地址 2(报警RAM 之 TH)和地址 3(报警 RAM 之 TL) 。写入过程中可以用复位信号中止写入。Read Scratchpad (从 RAM 中读数据) BEH此指令将从 RAM 中读数据,读地址从地址 0 开始,一直可以读到地址 9,完成整个RAM 数据的读出。芯片允许在

9、读过程中用复位信号中止读取,即可以不读后面不需要的字节以减少读取时间。Copy Scratchpad (将 RAM 数据复制到 EEPROM 中)48H此指令将 RAM 中的数据存入 EEPROM 中,以使数据掉电不丢失。此后由于芯片忙于EEPROM 储存处理,当控制器发一个读时间隙时,总线上输出“0” ,当储存工作完成时,总线将输出“1” 。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持10MS,来维持芯片工作。Convert T(温度转换) 44H收到此指令后芯片将进行一次温度转换,将转换的温度值放入 RAM 的第 1、2 地址。此后由于芯片忙于温度转换处理,当控制器发一个读时

10、间隙时,总线上输出“0” ,当储存工作完成时,总线将输出“1” 。在寄生工作方式时必须在发出此指令后立刻超用强上拉并至少保持 500MS,来维持芯片工作。Recall EEPROM(将 EEPROM 中的报警值复制到 RAM) B8H此指令将 EEPROM 中的报警值复制到 RAM 中的第 3、4 个字节里。由于芯片忙于复制处理,当控制器发一个读时间隙时,总线上输出“0” ,当储存工作完成时,总线将输出“1”。另外,此指令将在芯片上电复位时将被自动执行。这样 RAM 中的两个报警字节位将始终为 EEPROM 中数据的镜像。Read Power Supply(工作方式切换)B4H此指令发出后发出

11、读时间隙,芯片会返回它的电源状态字, “0”为寄生电源状态,“1”为外部电源状态。3.1.5 DS18B20 的测温原理DS18B20 的温度测量原理框图如图 3.4 所示。主要由斜坡累加器低温、高温系数振荡器、计数器和温度寄存器组成的。斜坡累加器主要是用来补偿测量温度过程中产生的非线性的,从而可达到较高的分辨率,并决定计数器 1 的重置。低温系数振荡器主要是用于产生脉冲信号,它受温度影响不大。高温系数振荡器主要是作为计数器 2 的输入,用于决定门周期,受温度影响较大。DS18B20 的测温过程如下:(1) 预置计数器 1 和温度寄存器。预置值为-55所对应的某一基数。(2) 当低温系数振荡器

12、产生一个脉冲时,计数器 1 就减 1。(3) 当计数器 1 的预置值减到 0 时,温度寄存器加 1,同时将计数器 1 重置。(4) 在计数器 2 减到 0(即门周期结束)之前,重复对低温系数振荡器产生的脉冲进行计数。当计数器 2 减至 0(即门周期结束)时,温度寄存器停止累加。此时温度寄存器中的值就是所测温度。图 3.4 DS18B20 温度测量原理框图3.1.6 DS18B20 的电源DS18B20 的工作电源可以有两种方式产生,一种是采用寄生电源,另一种是在端口VDD 处直接接入外部电源。连接方式如图 3.5(a) 、 (b)所示。采用第一种方式 DS18B20的 VDD 和 GND 都接

13、地,只从单总线中汲取电源和与外界通信。通过单总线在信号为高电平时为内部电容充电,将电能储存起来,这样当为低电平时仍旧可以工作,直至下一高电平。使用第二种方式时,GND 接地,VDD 接+3+5V 的电源。寄生电源虽然可以节省一条电源线,但在多个节点同时温度转换的时候,可能造成供电不足,使得转换时间过长从而造成测量速度变慢。外接电源可以避免这一状况。图 3.5(a )寄生电源连接方式图 3.5(b)外接电源连接方式3.1.7 单片机对 DS18B20 操作流程:1. 复位:首先我们必须对 DS18B20 芯片进行复位,复位就是由控制器(单片机)给DS18B20 单总线至少 480uS 的低电平信

14、号。当 18B20 接到此复位信号后则会在 1560uS 后回发一个芯片的存在脉冲。2. 存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高,以便于在1560uS 后接收存在脉冲,存在脉冲为一个 60240uS 的低电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制器与 DS18B20 间的数据通信。如果复位低电平的时间不足或是单总线的电路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。3. 控制器发送 ROM 指令:双方打完了招呼之后最要将进行交流了,ROM 指令共有5 条,每一个工作周期只能发一条,ROM 指令分别是读 ROM 数据、指定匹配芯片、跳跃ROM、芯片搜

15、索、报警芯片搜索。ROM 指令为 8 位长度,功能是对片内的 64 位光刻ROM 进行操作。其主要目的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可以同时挂接多个器件,并通过每个器件上所独有的 ID 号来区别,一般只挂接单个DS18B20 芯片时可以跳过 ROM 指令(注意:此处指的跳过 ROM 指令并非不发送 ROM 指令,而是用特有的一条“跳过指令”) 。ROM 指令在下文有详细的介绍。4. 控制器发送存储器操作指令:在 ROM 指令发送给 DS18B20 之后,紧接着(不间断)就是发送存储器操作指令了。操作指令同样为 8 位,共 6 条,存储器操作指令分别是写RAM 数据、

16、读 RAM 数据、将 RAM 数据复制到 EEPROM、温度转换、将 EEPROM 中的报警值复制到 RAM、工作方式切换。存储器操作指令的功能是命令 DS18B20 作什么样的工作,是芯片控制的关键。5. 执行或数据读写:一个存储器操作指令结束后则将进行指令执行或数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令则控制器(单片机)必须等待DS18B20 执行其指令,一般转换时间为 500uS。如执行数据读写指令则需要严格遵循18B20 的读写时序来操作。3.1.8 DS18B20 复位及应答关系每一次通信之前必须进行复位,复位的时间、等待时间、回应时间应严格按时序编程。DS18B

17、20 读写时间隙:DS18B20 的数据读写是通过时间隙处理位和命令字来确认信息交换的。写时间隙:写时间隙分为写“0”和写“1” ,时序如图 7。在写数据时间隙的前 15uS 总线需要是被控制器拉置低电平,而后则将是芯片对总线数据的采样时间,采样时间在 1560uS,采样时间内如果控制器将总线拉高则表示写“1” ,如果控制器将总线拉低则表示写“0” 。每一位的发送都应该有一个至少 15uS 的低电平起始位,随后的数据“0”或“1”应该在45uS 内完成。整个位的发送时间应该保持在 60120uS,否则不能保证通信的正常。读时间隙:读时间隙时控制时的采样时间应该更加的精确才行,读时间隙时也是必须

18、先由主机产生至少 1uS 的低电平,表示读时间的起始。随后在总线被释放后的 15uS 中 DS18B20 会发送内部数据位,这时控制如果发现总线为高电平表示读出“1” ,如果总线为低电平则表示读出数据“0” 。每一位的读取之前都由控制器加一个起始信号。注意:必须在读间隙开始的 15uS 内读取数据位才可以保证通信的正确。在通信时是以 8 位“0”或“1”为一个字节,字节的读或写是从高位开始的,即 A7到 A0.字节的读写顺序也是如图 2 自上而下的。3.1.9 STC89C52 与 DS18B20 的连接DS18B20 只有一个数据输入输出端,根据 DS18B20 的单总线特性,可以将多个DS18B20 挂在同一条总线,理论上可以是多个,但在实际应用上,要考虑到总线的驱动能力,在一条总线上 DS18B20 的数目不超过 8 个。与 DS18B20 的连接如图 3.6 所示。 图 3.6 STC89C52 与 DS18B20 的连接图

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报