毕业设计(论文)-基于SoC无线温度采集系统的设计(软件).doc_第1页
毕业设计(论文)-基于SoC无线温度采集系统的设计(软件).doc_第2页
毕业设计(论文)-基于SoC无线温度采集系统的设计(软件).doc_第3页
毕业设计(论文)-基于SoC无线温度采集系统的设计(软件).doc_第4页
毕业设计(论文)-基于SoC无线温度采集系统的设计(软件).doc_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南 京 工 程 学 院 毕业设计说明书(论文) 作 者: xxx 学 号: 系 部: 通信工程学院 专 业: 无线通信 题 目:基于 soc 无线温度采集系统的设计 (软件) 指导者: 评阅者: 2010 年 6 月 南 京 a dissertation submitted to nanjing institute of technology for the academic degree of bachelor of science by supervised by college of communication engineering nanjing institute of technology thethe systemsystem designdesign ofof short-distanceshort-distance wirelesswireless temperaturetemperature collectioncollection xxx june 2010 摘要 随着工农业生产对温 度的要求越来越高,准确测量温度变得至关重要。本 系统的设计主要是针对恶劣环境下的工业现场以及高科技大范围的农业现场, 布线困难,浪费资源,占用空间,可操作性差等问题做出的一个解决方案。 本文对上述问题 提出一种无线解决方案, 即基于 soc 无线温度采集系统的 设计。该系统 采用低功耗、高性能单片机及 单总线数字式测温器件 ds18b20 构成测温系统, 并且通过无线收发,最后 在 pc 机上完成配置、显示和报警的 功能。 在这次的设计中采 用的单片机 stc89c52rc 的内核和 mcs-51 系列单片机一 样,引脚也相同 。但是 stc89c52rc 可以通过 stc_isp 软件下载进行烧录 。无 线数据通信收发芯片 nrf24l01 是一款工业级内置硬件链路层协议的低成本无 线收发器 ,工作于 2.4 ghz 全球开放 ism 频段。此外,温度传感器 ds18b20 以“一线总线 “的数字方式传输, 可大大提高 系统的抗干扰性。 关关键键词词:soc;stc89c52rc;nrf24l01;温度传感器 ds18b20;无线 abstract with the industrial and agricultural production have become increasingly demanding on the temperature, accurate temperature measurement becomes critical. this system is a solution designed for wiring difficulties, wasting resources,taking up the space and poor maneuverability of harsh environment industrial site , wide range and hi-tech agricultural field. based on the above mentioned problems is proposed, which is based on wireless solutions of soc design of wireless temperature gathering system. this system uses low power consumption, high performance microprocessor and single bus digital temperature measurement device ds18b20 constitute temperature measuring system through wireless transceiver, and finally in pc complete configuration, display and alarm function. used in the design of the microcontroller stc89c52rc and mcs-51 mcu core has the same pin. but stc_isp through stc89c52rc can burn to download software.wireless data communication transceiver chip is an industrial grade nrf24l01 hardware link layer protocol built low-cost wireless transceiver operating in the 2.4 ghz band global open ism. in addition, the temperature sensor ds18b20 to “bus line“ digital mode transmission, greatly improves the power system. key words:soc,stc89c52rc,nrf24l01,temperature sensor ds18b20,wireless 目目 录录 第一章 绪 论.1 1.1 概述 .1 1.2 系统设计任务分析 .2 第二章 总体方案设计与选择的论证 3 2.1 单片机最小系统 .3 2.1.1 单片机的说明 .3 2.1.2 单片机的应用 .3 2.1.3 单片机的结构特点 4 2.1.4 单片机引脚配置 .4 2.2 无线收发模块介绍 .8 2.2.1nrf24l01 概述 .8 2.2.2 引脚功能及描述 9 2.2.3 工作模式 .10 2.2.4 工作原理 .10 2.2.5 配置字 12 2.2.6nrf24l01 应用原理框图 13 2.3 数码管温度显示和运行指示灯电路 14 2.3.1led 数码管的基本结构 14 2.3.2 数码管动态显示的工作原理 .15 2.3.3 运行指示灯说明 16 2.4 温度采集电路 .16 2.4.1 ds18b20 概述 .16 2.4.2 ds18b20 的管脚配置和内部结构 17 2.4.3 单总线介绍 .19 2.4.4ds18b20 的工作原理 19 2.5 声报警电路设计 24 2.6 无线温度采集软件界面( mfc)24 第三章软件设计报告 29 3.1 单片机软件设计 .29 3.1.1 发送部分软件设计 29 3.1.1.1 温度传感 ds18b20 29 3.1.1.2 led 数码管显示 34 3.1.1.3 无线模块 nrf24l01(发送)35 3.1.2 接收部分软件设计 35 3.1.2.1 无线模块 nrf24l01(接收) 35 3.1.2.2 led 数码管显示 35 3.1.2.3 串口通信 36 3.1.3 无线温度采集软件设计 38 3.1.3.1 串口设置 38 3.1.3.2 温度上下限设置 .41 3.1.3.3 曲线显示 42 3.2 流程图设计 45 3.2.1 发送部分流程图 45 3.2.2 接收部分流程图 46 3.2.3 mfc 程序流程图 47 3.3 操作说明(附图) .47 第四章总结与展望 52 致 谢 54 参考文献 .55 附 录 56 1 第第一一章章 绪绪 论论 1 1. .1 1 概概述述 随着社会的进步和生产的需要,利用无线通信进行温度数据采集的方式应 用已经渗透到生活各个方面。 图 1.1 短距离无线通信的应用 在工业现场,由于生产环境恶劣,工作人员不能长时间停留在现场观察设 备是否运行正常,就需要采集数据并传输数据到一个环境相对好的操控室内, 这样就会产生数据传输问题。 由于厂房大、需要传输数据多,使用传统的有线 数据传输方式就需要铺设很多很长的通讯线,浪费资源,占用空间,可操作性 差,出现错误换线困难。而且,当数据采集点处于运动状态、所处的环境不允 许或无法铺设电缆时,数据甚至无法传输,此时便需要利用无线传输的方式进 行数据采集。 2 在农业生产上,不论是温室大棚的温度监测,还是粮仓的管理,传统上都 是采取分区取样的人工方法,工作量大,可靠性差。而且大棚和粮仓占地面积 大,检测目标分散,测点较多,传统的方法已经不能满足当前农业发展的需要。 当前的科技水平下,无线通信技术的发展使得温度采集测量精确,简便易行。 在日常生活中,随着人们生活水平的提高,居住条件也逐渐变得智能化。 如今很多家庭都会安装室内温度采集控制系统,其原理就是利用无线通信技术 采集室内温度数据,并根据室内温度情况进行遥控通风等操作,自动调节室内 温度湿度,可以更好地改善人们的居住环境。 以上只是简单列举几个现实的例子,在现实生活中,这种无线温度采集系统 已经被成功应用于工农业、环境监测、军事国防、机器人控制等许多重要领域, 而且类似于这种温度采集系统的无线通信网络已经被广泛的应用到民用和军事 领域。凡是布线繁杂或不允许布线的场合都希望能通过无线方案来解决。为此, 需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据 通信,这样的研究也变得更加有意义了。 1 1. .2 2 系系统统设设计计任任务务分分析析 本系统的设计 采用了 nordic 公司新推出的工作于 2.4ghz 频段 nrf24l01 射频芯片,并有低功耗单片机stc89c52rc 控制实现短距离无线数据通信。该 接口设计具有成本低、功耗低、传输速率高、软件设计简单以及通信稳定可靠 等特点。 整个系统有发送和接收二部分,通 过 nrf24l01 无线数据通信收发 模 块来实现无线 数据传输 。发送部分 以单片机 stc89c52 为核心,使用温度转换 芯片 ds18b20 实时采集温度并通过数码管显示 。将采集的温度无线传送给接收 部分,然后再在数码管上显示,并 通过串口发送到 pc 机上显示,通过 蜂鸣器 实现对温度过高或过低进行报警 。 本系统的核心控制芯片 选用的是 stc89c52rc。单片机在各个技术领域中 的迅猛发展,与单片机所构成的计算机应用系统的特点有关: 单片机构成的应用系统有较大的可靠性。 系统构建简洁、易行,能方便的实现系统功能。 由于构成的系统是一个计算机系统,相当多的功能由软件实现,故具有 柔性特点 和优异的性能价格比。 3 第第二二章章 总总体体方方案案设设计计与与选选择择的的论论证证 2 2. .1 1 单单片片机机最最小小系系统统 2 2. .1 1. .1 1 单单片片机机的的说说明明 单片机的原名叫 microcontroller,即微型控制器。顾名思义,单片机有 别于通用微型计算机,它是专门为控制和智能仪器设计的一种集成度很高的微 型计算机。其控制功能强,有优异的性能 /价格比,有很高的可靠性。因而, 单片机的应用范围在不断的扩大,它已经成了人类生活中不可缺少的工具。下 面介绍单片机在几个方面的典型应用。 2 2. .1 1. .2 2 单单片片机机的的应应用用 (1)单片机在智能仪器中的应用 单片机广泛的用于各种仪器仪表中,使仪器仪表数字化、微型化和智能化, 提高它们的测量速度、测量精度和自动化程度,简化仪器仪表的硬件结构,便 于使用、维修和改进,提高其性能 /价格比。 (2)单片机在机电一体化产品中的应用 机电一体化是机械工业发展的方向。机电一体化产品是指,集机械技术、 微电子技术、计算机技术和控制技术于一体,具有智能化特征的机电产品。例 如,微机控制的数控机床、机器人等。单片机作为机电产品中的控制器,能充 分的发挥它的体积小、可靠性高、功能强等优点,大大提高了机器的自动化、 智能化程度。 (3)单片机在过程控制中的应用 过程控制是微型机应用最多、最有效的方面之一,单片机广泛的应用于 过程控制。它既可以作为主机控制,也可以作为分布式控制系统的前端机,对 现场的信息进行实时的测量和控制。单片机可用于开关量控制、顺序控制及逻 辑控制等。如锅炉控制、电机控制、机器人控制、交通信号灯控制、造纸纸浆 浓度控制、纸张定量水分及厚薄控制 、雷达与导弹控制以及航天导航系统鱼雷 4 制导系统控制等。 (4)单片机在计算机网络及通信中的应用 由于高性能单片机中集成有sdlc 通信接口,因而使其在计算机网络及通 信设备中得到了广泛的应用。 例如:intel 公司的 8044,由 8051 单片机及 sdlc 通信接口组合而成, 用高性能的串行接口单元 siu 代替传统的 uart,采用双绞线、半双工通信形 式,特别适合远距离通信。以8044 位基础组成的位总线是一种高性能、低价 格的分布式控制系统,传送距离可达1200m,传送速度为 2.4mbit/s,网络节 点为 28 个。此外,单片机在自动拨号无线电话网、串行自动呼叫应答设备、程 控电话、无线电遥控等方面都有广泛的应用。 (5)单片机在家用电器方面的应用 单片机广泛的应用于家用电器产品中,例如:洗衣机、电冰箱、微波炉、 电饭煲、高级智能玩具、收录机等配上单片机后,大大提高了产品的性能,倍 受人们的喜爱。可以说 ,单片机在人们日常生活中应用所受到的限制主要不是技 术问题,而是创造力和技巧上的问题。 2 2. .1 1. .3 3 单单片片机机的的结结构构特特点点 控制电路设计是系统的控制和数据处理的核心,而作为控制核心的单片机种类 很多,如 pic 等等。根据任务书的要求以及系统实际的需要,本次毕业设计 采用 stc89c52rc 作为系统的微控制器芯片。特点是,stc89c52rc 的内核和 at51 系列单 片机一样,故引脚也相同 。但是 stc89c52rc 可以通过 stc_isp 软件下载进行烧 录。 5 2 2. .1 1. .4 4 单单片片机机引引脚脚配配置置 图 2.1 引脚配置图 鉴于 stc89c52rc 与 mcs-51 单片机类似,现介绍 mcs-51 单片机如下文。 mcs-51 单片机采用 40 引脚双列直插封装( dip)形式。对于 chmos 单片机除 采用 dip 形式外,还采用方形封装工艺。由于受到引脚数目的限制,所以有部 分引脚具有第二功能。 在单片机的 40 条引脚中,有 2 条用于主电源的引脚, 2 条外接晶体的引脚, 控制或其他电源复用引脚 rst/ vpd、ale、和 vpp,32 条输入/输出引脚。下 面就本系统用到的引脚分别说明这些引脚的名称和功能。 (1)主电源引脚 v cc 和 gnd vcc:接+5v 电源 gnd:接电源地 (2)钟电路引脚 xtal1 和 xtal2 xtal1:接外部晶体的一端。在单片机内部,它是反相放大器的输入端,该 放大器构成了片内振荡器。在采用外部时钟电路时,对于hmos 单片机,此引 脚必须接地;对 chmos 单片机,此引脚作为驱动端。 xtal2:接外部晶体的另一端。在单片机内部,接至上述振荡器的反相放大 器的输出端,振荡器的频率是晶体振荡频率。若采用外部时钟电路时,对于 6 hmos 单片机,该引脚输入外部时钟脉冲;对于chmos 单片机,此引脚应悬空。 (3)信号引脚 rst/vpd rst/vpd:复位/备用电源输入端。单片机上电后,只要在该引脚上输入 24 个振荡周期( 2 个机器周期)宽度以上的高电平就会使单片机复位;若在 rst 与 vcc 之间接一个 10f 的电容,而在 rst 与 gnd 之间接一个 8.2k 的 下拉电阻,则可实现单片机上电自动复位。 rst/vpd 具有复用功能,在主电源 vcc 掉电期间,该引脚可接上 +5v 备用 电源。当 vcc 下掉到低于规定的电平,而vpd 在其规定的电压范围内时, vpd 就向片内 ram 提供备用电源,以保持片内ram 中的信息不丢失,复电后能继续 正常运行。 (4)输入/输出(i/o)引脚 p0、p1、p2 和 p3 mcs-51 单片机有 4 个双向并行的 8 位 i/o 口 p0p3,p0 口为三态双向口, 可驱动 8 个 ttl 电路,p1、p2、p3 口为准双向口(作为输入时,口线被拉成高 电平,故称为准双向口),其负载能力为 4 个 ttl 电路。 p0.0-p0.7:p0 口是一个 8 位双向 i/o 端口。在访问片外存储器时,它分 时提供低 8 位地址和作 8 位双向数据总线。在 eprom 编程时,从 p0 口输入指 令字节;在验证程序时,则输出指令字节(验证时,要外接上拉电阻)。p0 口能以吸收电流的方式驱动8 个 lsttl 负载。 7 图 2.2 p0 口 1 位结构图 p1.0-p1.7:p1 口是 8 位准双向 i/o 端口。在 eprom 编程和程序验证时, 它输入低 8 位地址。 p1 口能驱动 4 个 lsttl 负载。 图 2.3 p1 口 1 位结构图 p2.0-p2.7:p2 口是一个 8 位准双向 i/o 端口。在 cpu 访问外部存储器时, 它输出高 8 位地址。在对 eprom 编程和程序验证时,它输入高8 位地址。 p2 口可驱动 4 个 lsttl 负载。 8 图 2.4 p2 口 1 位结构图 p3.0-p3.7:p3 口是 8 位准双向 i/o 端口。它是一个复用功能口。作为第 一功能使用时,为普通 i/o 口,其功能和操作方法与 p1 口相同。作为第二功 能使用时,各引脚的定义如表3-1 所示。p3 口的每一条引脚均可独立定义为 第一功能的输入输出或第二功能。 p3 口能驱动 4 个 lsttl 负载。 图 2.5 p3 口 1 位结构图 表 2.1: 口线 第二功能 9 p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7 rxd (串行口输入) txd (串行口输出) int0 (外部中断 0 输入) int1(外部中断 1 输入) t0 (定时器 0 的外部输入) t1 (定时器 1 的外部输入) wr (外部数据存储器“写”信号输出) rd (外部数据存储器“读”信号输出) 2 2. .2 2 无无线线收收发发模模块块介介绍绍 2 2. .2 2. .1 1n nr rf f2 24 4l l0 01 1 概概述述 nrf24l01 是一款新型单片射频收发器件 ,工作于 2.4 ghz2.5 ghz ism 频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融 合了增强型 shockburst 技术,其中输出功率和通信频道可通过程序进行配置。 nrf24l01 功耗低,在以-6 dbm 的功率发射时,工作电流也只有 9 ma;接收时, 工作电流只有 12.3 ma,多种低功率工作模式 (掉电模式和空闲模式 )使节能设 计更方便。 nrf24l01 主要特性如下: gfsk 调制: 硬件集成 osi 链路层; 具有自动应答和自动再发射功能 ; 片内自动生成报头和 crc 校验码; 数据传输率为 l mb/s 或 2mb/s; spi 速率为 0 mb/s10 mb/s; 125 个频道: 与其他 nrf24 系列射频器件相兼容 ; qfn20 引脚 4 mm4 mm 封装; 供电电压为 1.9 v3.6 v。 2 2. .2 2. .2 2 引引脚脚功功能能及及描描述述 nrf24l01 的封装及引脚排列如图所示。各引脚功能如下: 10 图 2.6 nrf24l01 封装图 ce:使能发射或接收 ; csn,sck,mosi,miso:spi 引脚端,微处理器可通过此引脚配置 nrf24l 01: irq:中断标志位 ; vdd:电源输入端 ; vss:电源地; xc2,xc1:晶体振荡器引脚 ; vdd_pa:为功率放大器供电,输出为 1.8 v; ant1,ant2:天线接口; iref:参考电流输入。 2 2. .2 2. .3 3 工工作作模模式式 通过配置寄存器可将 nrf241l01 配置为发射、接收、空闲及掉电四种工作 模式,如表所示。 表 2.2: 模式pwr_u p prim_rxcefifo 寄存器状态 接收模式111- 发射模式101数据在 tx fifo 寄存器中 发射模式1010停留在发送模式,直至数据 发送完 11 待机模式 2101tx fifo 为空 待机模式 11-0无数据传输 掉电0- 待机模式 1 主要用于降低电流损耗,在该模式下晶体振荡器仍然是工作的 ; 待机模式 2 则是在当 fifo 寄存器为空且 ce=1 时进入此模式; 待机模式下,所有配置字仍然保留。 在掉电模式下电流损耗最小,同时nrf24l01 也不工作,但其所有配置寄存 器的值仍然保留。 2 2. .2 2. .4 4 工工作作原原理理 发射数据时,首先将 nrf24l01 配置为发射模式:接着把接收节点地址tx_ addr 和有效数据 tx_pld 按照时序由 spi 口写入 nrf24l01 缓存区,tx_pld 必 须在 csn 为低时连续写入,而 tx_addr 在发射时写入一次即可,然后 ce 置为 高电平并保持至少 10s,延迟 130s 后发射数据 ;若自动应答开启,那么 nr f24l01 在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址应 该与接收节点地址 tx_addr 一致)。如果收到应答,则认为此次通信成功, tx _ds 置高,同时 tx_pld 从 tx fifo 中清除;若未收到应答,则自动重新发射该 数据(自动重发已开启 ),若重发次数 (arc)达到上限,max_rt 置高,tx fifo 中数据保留以便在次重发 ;max_rt 或 tx_ds 置高时,使 irq 变低,产生中断, 通知 mcu。最后发射成功时 ,若 ce 为低则 nrf24l01 进入空闲模式 1;若发送堆 栈中有数据且 ce 为高,则进入下一次发射 ;若发送堆栈中无数据且 ce 为高, 则进入空闲模式 2。 接收数据时,首先将 nrf24l01 配置为接收模式,接着延迟 130s 进入接 收状态等待数据的到来。当接收方检测到有效的地址和crc 时,就将数据包存 储在 rx fifo 中,同时中断标志位 rx_dr 置高,irq 变低,产生中断,通知 mc u 去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。 最后接收成功时,若 ce 变低,则 nrf24l01 进入空闲模式 1。 在写寄存器之前一定要进入待机模式或掉电模式。如下图,给出spi 操作 及时序图: 12 图 2.7 spi 读操作 图 2.8 spi 写操作 2 2. .2 2. .5 5 配配置置字字 spi 口为同步串行通信接口,最大传输速率为10 mb/s,传输时先传送低位 字节,再传送高位字节。但针对单个字节而言,要先送高位再送低位。与spi 相关的指令共有 8 个,使用时这些控制指令由 nrf24l01 的 mosi 输入。相应的 状态和数据信息是从 miso 输出给 mcu。 nrf24l0l 所有的配置字都由配置寄存器定义,这些配置寄存器可通过spi 口访问。nrf24l01 的配置寄存器共有 25 个,常用的配置寄存器如表 2 所示。 表 2:常用配置寄存器 地址(h)寄存器名称功能 00config 设置 24l01 工作模式 13 01en_aa 设置接收通道及自动应答 02en_rxaddr 使能接收通道地址 03setup_aw 设置地址宽度 04setup_retr 设置自动重发数据时间和次数 07status 状态寄存器,用来判定工作状态 0a0frx_addr_p0p5 设置接收通道地址 10tx_addr 设置接收接点地址 1116rx_pw_p0p5 设置接收通道的有效数据宽度 2 2. .2 2. .6 6n nr rf f2 24 4l l0 01 1 应应用用原原理理框框图图 图 2.9 nrf24l01 接线图 14 图 2.10 与单片机相连接线图 2 2. .3 3 数数码码管管温温度度显显示示和和运运行行指指示示灯灯电电路路 2 2. .3 3. .1 1l le ed d 数数码码管管的的基基本本结结构构 led 数码管也称半导体数码管,是目前数字电路中最常用的显示器件。它是 以发光二极管作笔段并按共阴极方式或共阳极方式连接后封装而成的。图3- 9 所示是两种 led 数码管的外形与内部结构,、分别表示公共阳极和公共 阴极,ag 是 7 个笔段电极, dp 为小数点。 led 数码管型号较多,规格尺寸 也各异,显示颜色有红、绿、橙等。 led 数码管根据 led 的接法不同分为共阴和共阳两类,了解led 的这些特 性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异 外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发 光原理是一样的,只是它们的电源极性不同而已。 将多只 led 的阴极连在一起即为共阴式,而将多只led 的阳极连在一起即 为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段 即会发光。当然, led 的电流通常较小,一般均需在回路中接上限流电阻。 15 图 2.11 两种 led 数码管的外形与内部结构 2 2. .3 3. .2 2 数数码码管管动动态态显显示示 的的工工作作原原理理 各个数码管的段码都是 单片机的数据口 输出,即各个数码管输入的段码都 是一样的 , 为了使其分别显示不同的数字 , 可采用动态显示的方式 ,即先只让 最低位显示 0(含点),经过一段延时,再只让次低位显示1,如此类推。由视 觉暂留,只要我们的延时时间足够短,就能够使得数码的显示看起来非常的稳定 清楚。过程如下 表: 表 2.3: 段码位码显示器状态 08h01h 0 abh02h 1 12h04h2 22h08h3 16 a1h10h4 24h20h5 04h40h6 aah80h7 本论文中使用了 3 个数码管,其中前两位使用动态扫描显示实测温度,在 设置加热温度的时候,两个数码管是闪烁,以提示目前处在温度设置状态。第 三位数码管静态显示符号 “” 。 2 2. .3 3. .3 3 运运行行指指示示灯灯说说明明 本温度控制系统中共使用到3 个 led 指示灯和 3 个数码管。 右上角的红色 led 是电源指示灯; 单片机下面一排指示灯只用到了最后 2 个(led7,led6) ,当按下温度设置 按键时 led7 和 led6 各闪一下。当温度超过报警最高温度,led6 就会亮,蜂鸣器发 出报警声音,若温度低于报警最低温度时,led7 亮,蜂鸣器发出报警声音。 2 2. .4 4 温温度度采采集集电电路路 2 2. .4 4. .1 1 d ds s1 18 8b b2 20 0 概概述述 dallas 最新单线数字温度传感器 ds18b20 简介新的 “一线器件 “体积更小、 适用电压更宽、更经济 dallas 半导体公司的数字化温度传感器ds1820 是世 界上第一片支持 “一线总线 “接口的温度传感器。一线总线独特而且经济的特 点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。 ds18b20、 ds1822 “一线总线 “数字化温度传感器 同 ds1820 一样,ds18b20 也 支持“一线总线 “接口,测量温度范围为 -55c+125c,在-10+85c 范围内,精度为0.5c。ds1822 的精度较差为 2c 。现场温度直接以 “ 17 一线总线 “的数字方式传输,大大提高了系统的抗干扰性。 2 2. .4 4. .2 2 d ds s1 18 8b b2 20 0 的的管管脚脚配配置置 和和内内部部结结构构 图 2.12 ds18b20 芯片封装 引脚定义: (1)dq 为单数据总线 ,是数字信号输入 /输出端; (2)gnd 为电源地; (3)vdd 为外接供电电源输入端(在寄生电源接线方式时接地) 。 内部结构 : 18 图 2.13 ds18b20 内部结构图 (1)光刻 rom 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 ds18b20 的地址序列码。 64 位光刻 rom 的排列是:开始 8 位(28h)是产品类 型标号,接着的 48 位是该 ds18b20 自身的序列号,最后 8 位是前面 56 位的 循环冗余校验码( crc=x8+x5+x4+1) 。光刻 rom 的作用是使每一个 ds18b20 都 各不相同,这样就可以实现一根总线上挂接多个ds18b20 的目的。 (2) ds18b20 中的温度传感器可完成对温度的测量,以 12 位转化为例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625/lsb 形式表达,其中 s 为符 号位。 图 2.14 ds18b20 温度值格式表 这是 12 位转化后得到的 12 位数据,存储在 18b20 的两个 8 比特的 ram 中, 二进制中的前面 5 位是符号位,如果测得的温度大于0,这 5 位为 0,只要将 测到的数值乘于 0.0625 即可得到实际温度;如果温度小于0,这 5 位为 1, 测到的数值需要取反加 1 再乘于 0.0625 即可得到实际温度。 例如+125的数字输出为 07d0h,+25.0625的数字输出为 0191h,- 25.0625的数字输出为 ff6fh,-55的数字输出为 fc90h。 19 2 2. .4 4. .3 3 单单总总线线介介绍绍 1wire bus 单总线是 maxim 全资子公司 dallas 的一项专有技术 。与目 前多数标准串行数据通信方式 ,如 spi/ iic/ microwire 不同,它采用单根信 号线,既传输时钟 ,又传输数据 ,而且数据传输是双向的 。它具有节省 i/ o 口 线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点. 2 2. .4 4. .4 4d ds s1 18 8b b2 20 0 的的工工作作原原理理 ds18b20 的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力 更强。其一个工作周期可分为两个部分,即温度检测和数据处理。在讲解其工 作流程之前我们有必要了解18b20 的内部存储器资源。 18b20 共有三种形态的 存储器资源,它们分别是: (1)rom 只读存储器,用于存放 ds18b20id 编码,其前 8 位是单线系 列编码( ds18b20 的编码是 19h) ,后面 48 位是芯片唯一的序列号,最 后 8 位是以上 56 的位的 crc 码(冗余校验)。数据在出产时设置不由 用户更改。 ds18b20 共 64 位 rom。 (2)ram 数据暂存器,用于内部计算和数据存取,数据在掉电后丢失, ds18b20 共 9 个字节 ram,每个字节为 8 位。第 1、2 个字节是温度转 换后的数据值信息,第 3、4 个字节是用户 eeprom(常用于温度报警 值储存)的镜像。在上电复位时其值将被刷新。第5 个字节则是用户 第 3 个 eeprom 的镜像。第 6、7、8 个字节为计数寄存器,是为了让用 户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂 存单元。第 9 个字节为前 8 个字节的 crc 码。eeprom 非易失性记忆体, 用于存放长期需要保存的数据,上下限温度报警值和校验数据, ds18b20 共 3 位 eeprom,并在 ram 都存在镜像,以方便用户操作。 控制器对 18b20操作流程: (1)复位:首先我们必须对 ds18b20 芯片进行复位,复位就是由控制器 (单片机)给 ds18b20 单总线至少 480us 的低电平信号。当 18b20 接 到此复位信号后则会在 1560us 后回发一个芯片的存在脉冲。 (2)存在脉冲:在复位电平结束之后,控制器应该将数据单总线拉高, 20 以便于在 1560us 后接收存在脉冲,存在脉冲为一个60240us 的低 电平信号。至此,通信双方已经达成了基本的协议,接下来将会是控制 器与 18b20 间的数据通信。如果复位低电平的时间不足或是单总线的电 路断路都不会接到存在脉冲,在设计时要注意意外情况的处理。 (3)控制器发送 rom 指令:双方打完了招呼之后最要将进行交流了, rom 指令共有 5 条,每一个工作周期只能发一条, rom 指令分别是读 rom 数据、指定匹配芯片、跳跃rom、芯片搜索、报警芯片搜索。 rom 指令为 8 位长度,功能是对片内的 64 位光刻 rom 进行操作。其主要目 的是为了分辨一条总线上挂接的多个器件并作处理。诚然,单总线上可 以同时挂接多个器件,并通过每个器件上所独有的id 号来区别,一般 只挂接单个 18b20 芯片时可以跳过 rom 指令(注意:此处指的跳过 rom 指令并非不发送 rom 指令,而是用特有的一条 “跳过指令 ” ) 。 (4)控制器发送存储器操作指令:在rom 指令发送给 18b20 之后,紧 接着(不间断)就是发送存储器操作指令了。操作指令同样为8 位, 共 6 条,存储器操作指令分别是写ram 数据、读 ram 数据、将 ram 数 据复制到 eeprom、温度转换、将 eeprom 中的报警值复制到 ram、工 作方式切换。存储器操作指令的功能是命令18b20 作什么样的工作, 是芯片控制的关键。 (5)执行或数据读写:一个存储器操作指令结束后则将进行指令执行或 数据的读写,这个操作要视存储器操作指令而定。如执行温度转换指令 则控制器(单片机)必须等待18b20 执行其指令,一般转换时间为 500us。如执行数据读写指令则需要严格遵循18b20 的读写时序来操作。 数据的读写方法将有下文有详细介绍。 当主机收到 dsl8b20 的响应信号后,便可以发出rom 操作命令之一,这些 命令如下: 指令代码 代码 skip rom(跳跃 rom 指令)cch 这条指令使芯片不对 rom 编码做出反应,在单总线的情况之下,为了节省 时间则可以选用此指令。如果在多芯片挂接时使用此指令将会出现数据冲突, 21 导致错误出现。 read scratchpad (从 ram 中读数据) beh 此指令将从 ram 中读数据,读地址从地址 0 开始,一直可以读到地址 9, 完成整个 ram 数据的读出。芯片允许在读过程中用复位信号中止读取,即可以 不读后面不需要的字节以减少读取时间。 convert t(温度转换) 44h 收到此指令后芯片将进行一次温度转换,将转换的温度值放入ram 的第 1、2 地址。此后由于芯片忙于温度转换处理,当控制器发一个读时间隙时,总 线上输出 “0” ,当储存工作完成时,总线将输出 “1” 。在寄生工作方式时必须 在发出此指令后立刻超用强上拉并至少保持500ms,来维持芯片工作。 复位时序 : 图2.15 复位时序 与ds18b20的所有通讯都是由一个单片机的复位脉冲和一个ds18b20的应 答脉冲开始的。单片机先发一个复位脉冲,保持低电平时间最少480s,最 多不能超过 960s。然后,单片机释放总线,等待 ds18b20的应答脉冲。 ds18b20在接受到复位脉冲后等待 1560s才发出应答脉冲。应答脉冲能保持 60240s。单片机从发送完复位脉冲到再次控制总线至少要等待480 s。 程序代码如下: 22 reset:clr dq ;发送复位脉冲 mov r7,#33 ;延时 497 lcall delay15 setb dq mov r7,#4 ;延时 62 lcall delay15 clr flag ;ds18b20 应答标记 jb dq,ret1 ;判断 ds18b20 应答 setb flag mov r7,#28 lcall delaya15 ;延时 422 setb dq ret1:ret 读操作: 图2.16 读操作时序 读时隙需 1560 s,且在2次独立的读时隙之间至少需要 1 s的恢复 时间。读时隙起始于单片机拉低总线至少 1 s。dsl8820在读时隙开始 15s 后开始采样总线电平。以单片机读取 2 b的数据为例。程序代码如下: rd1820:clr c mov r1,#2 mov r0,#templsb ;存放数据的地址 rd18201:mov r2,#8 rd18202:setb dq nop nop 23 clr dq ;产生读信号 nop nop mov r7,#1 lcall delay15 ;延时 17s mov c,dq rrc a mov r7,#3 lcall delay15 ;延时 42s 写操作: 图2.17 写操作时序 写时隙需要 1575 s,且在2次独立的写时隙之间至少需要 1s的恢复 时间。写时隙起始于单片机拉低总线。以要把单片机a中的数据发给 ds18b20 为例,程序代码如下: wr1820:clr c ;发送 1 个字节 mov r1,#8 wr18201:clr dq ;产生写信号 mov r7,#1 lcall delay15 ;延时 17s rrc a mov dq,c ;发送一位数据给 ds18b20 mov r7,#! lcall delay15 ;延时 17s setb dq nop djnz r1,wr18201 ;字节是否发送完 setb dq ret 24 2 2. .5 5 声声报报警警电电路路设设计计 当外界温度超过预设温度上下限时,为更加有效的引起用户的注意,及时关注 温度的变化,本系统设计了声报警电路。该电路由蜂鸣器组成,具体电路如图所示。 图2.18 报警电路图 2 2. .6 6 无无线线温温度度采采集集 软软件件界界面面(m mf fc c) 该软件分为串口设置、实时数据显示、温度上下限设置和退出四部分。双击 histogram.exe打开软件,如图2.18所示: 25 图2.19 无线温度采集软件主界面图 首先点击选择串口设置,选择相应的串口号和波特率之后,然后点击“开启串 口”按钮,即初始化串口设备。如图2.19所示: 26 图2.20 串口设置 串口设置好之后,选择菜单中的温度报警按钮,对温度上下限进行设置。如图 所示实例,超过35摄氏度或者低于25摄氏度都会报警。如图2.20所示: 27 图2.21 温度上下限设置 除上述功能外,还有实时曲线图的功能。通过曲线图,可以观测到温度的变化, 作出具体的数据图,便于分析。如果不是借助外力,温度会几乎不发生变化。具体 如下图所示: 28 图2.22 实时数据曲线图 29 第三章 软件设计报告 3 3. .1 1 单单片片机机软软件件设设计计 3 3. .1 1. .1 1 发发送送部部分分软软件件设设计计 单片机对 nrf24l01 无线模块以及 ds18b20 进行初始化之后,从 ds18b20 读取温 度数据。然后经过温度处理之后在 4 个八段数码管上显示,最后通过调用无线发送 程序将温度数据发送给接收端。 3.1.1.1 温温度度传传感感 ds18b20 对 dsl8b20 进行操作 ,首先通过调用 ds_reset()函数对 ds18b20 进行复位 。 然后调用 write_byte()向 ds18b20 发送一条 rom 指令。最后发送 ram 指令, 这样才能 对 dsl8b20 进行预定的操作。 /*ds1820 复位函数* void ds_reset(void) char temp=1; while(temp) while(temp) dq=1;_nop_();_nop_(); /复位时序 dq=0; delay1(80); dq=1; /复位电平结束后,将数据单总线拉高 delay1(9); temp=dq; 30 delay1(64); temp=dq; /存在脉冲,60-240us 低电平信号 dq=1; /*ds1820 写函数* void write_byte(uchar value) uchar i; for(i=8;i0;i-) / /8 位数据一位一位写 dq=1;_nop_();_nop_(); dq=0;_nop_();_nop_();_nop_();_nop_();_nop_(); dq=value delay1(9); value=1; dq=1; delay1(1); /*ds1820 读函数* uchar read_byte(void) uchar i; uchar value1=0; for(i=8;i0;i-) /8 位数据一位一位读 31 dq=1;_nop_();_nop_(); value1=1; dq=0; _nop_();_nop_();_nop_();_nop_(); dq=1; _nop_();_nop_();_nop_();_nop_(); if(dq) value1|=0x80; delay1(9); dq=1; return(value1); /*读取温度* void read_temp() ds_reset(); write_byte(0xcc); /跳跃 rom 指令 write_byte(0xbe); /从 ram 中读数据 temp_data0=read_byte(); temp_data1=read_byte(); /只读前两个字节,一二两个字节是温度转换后的数 据信息 ds_reset(); write_byte(0xcc); /跳跃 rom 指令 write_byte(0x44); /温度转换 32 /*温度处理* void work_temp() uchar n=0; i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论