基于nRF905的无线温度采集系统的设计_毕业论文.doc_第1页
基于nRF905的无线温度采集系统的设计_毕业论文.doc_第2页
基于nRF905的无线温度采集系统的设计_毕业论文.doc_第3页
基于nRF905的无线温度采集系统的设计_毕业论文.doc_第4页
基于nRF905的无线温度采集系统的设计_毕业论文.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

基于 nrf905 的无线温度采集系统的设计 本科毕业论文(设计) (物理与电子工程学院) 院) 题题(中、英文)(中、英文)目目基于基于 nrf905 的无的无线线温度采集系温度采集系统统的的设计设计 wireless temperature gathering system based on nrf905nrf905designnrf905 作者姓名作者姓名指导教师姓名指导教师姓名 学科门类学科门类工学工学 提交论文日期提交论文日期 专专 业业 名名 称称电电子科学与技子科学与技术术 基于 nrf905 的无线温度采集系统的设计 基于 nrf905 的无线温度采集系统的设计 摘摘 要:要:温度是与人类生活密切相关的物理量。为提高温度测量效率,降低系统 成本,扩展传输距离,设计出一种新型温度采集系统。本文介绍了一种基于 ds18b20、nrf905 和 at89c52 单片机的温度测量控制系统的硬件和软件设计, 并且利用 vb 提供 mscomm 对上位机进行编程,形成可视化串口传输窗口。实 验结果表明,该系统结构简单、方便移植,能够实现 400m 范围的传输。 关键词:关键词:ds18b20 nrf905 温度采集 无线收发 wireless temperature gathering system based on nrf905 abstract:the temperature is closely related to human life. to improve the temperature measurement efficiently reduce system cost, and expansion of transmission distance, a new type of temperature acquisition system is designed. this paper presents the hardware and the compile program design of temperature measurement and control system which based on ds18b20, at89c52 and nrf905, and using vb mscomm provided programming on the supervisory computer to form a visual serial transfer window. the experimental results show that the system is simple, convenient transplantation, and can be implemented in the transmission ranger of 400 meters. keywords: : ds18b20 nrf905 temperature gathering wireless transceiver 基于 nrf905 的无线温度采集系统的设计 1 1 绪论绪论 1 1 1.1 设计目的、内容及意义1 1.2 设计的论文结构1 2 2 方案的选取和可行性分析方案的选取和可行性分析3 3 2.1 方案的选取 3 2.2 可行性分析3 3 单片机简介与选型单片机简介与选型4 4 3.1 单片机技术及其发展 4 3.2 单片机技术的应用 4 3.3 单片机的选型 5 4 dallasdallas 公司的单总线公司的单总线7 7 4.1 硬件结构和连接 7 4.2 单总线的工作原理【2】.7 4.3 单总线通信协议8 5 5 数字温度传感器数字温度传感器 ds18b20 简介简介 1010 5.1 ds18b20 的引脚封装和性能 10 5.2 ds18b20 的内部结构 11 5.3 ds18b20 在单片机系统中应用电路 12 5.4 ds18b20 的功能命令【12】12 6 nrf905nrf905 无线数传芯片简介无线数传芯片简介1414 6.1 芯片内部结构与封装 .14 6.2 工作模式 .15 6.2.1 shockbursttm模式16 6.2.2 节能模式 .18 6.3 nrf905 的配置 18 6.4 nrf905 硬件电路18 基于 nrf905 的无线温度采集系统的设计 7 系统的硬件结构系统的硬件结构2020 7.1 nrf905 无线收发模块20 7.2 系统的硬件电路图 .21 8 系统软件设计系统软件设计2323 8.1 单片机编程 .23 8.2 上位机编程 .24 9 总结总结2626 致谢致谢 2727 参考文献参考文献 2828 附录附录 2929 附录 1 系统发送程序 29 附录 2 系统接收程序 37 附录 3 上位机程序 43 基于 nrf905 的无线温度采集系统的设计 1 1 绪论 1.1 设计目的、内容及意义 中国是农业大国,大棚种植已经是我国农业不可缺少的种植方式,而温度的 控制在大棚种植中占有非常重要的地位。本次设计的目的就是大棚温度的采集, 使我们方便、高效的获取大棚温度数据并显示出其历史变化。 近几年来迅速发展的微功率短距离无线通信技术,无线通信在野外机动设备 或人们不方便到达现场的地方得到越来越多的应用。有很多厂商推出了各种专用 的单芯片射频收发器,再加上微控制器和少量外围器件就可以构成专用或通用的 无线通信模块。一般这些射频芯片采用 gfsk(高斯频移键控)调制方式,工作 于 ism(工业、科学与医疗)频段,通信模块包含简单透明的数据传输协议或简 单的加密协议,因此只要依据命令字进行操作就可实现数据无线传输功能,所以 使用起来较为方便。又因为其通信模块具有功率小、开发简单,从而在现代工业 和民用领域得到广泛应用。 1.2 设计的论文结构 本文在结构上分为九章,各章的主要内容如下: 第一章主要介绍了本设计的目的、研究的主要内容和意义及论文的结构。 第二章主要介绍方案的选取和可行性分析,给出本次设计时的搜集资料、思 考方法以及最后定稿的过程。 第三章主要介绍单片机选型和硬件的一些知识。 第四章主要介绍 dallas 半导体公司独创的单片机外设总线,其中介绍了单 总线硬件结构、单总线实现的原理以及单总线通信协议。 第五章主要介绍 ds18b20 的简介,介绍了 ds18b20 的内部结构原理和温度 基于 nrf905 的无线温度采集系统的设计 2 采集终端的硬件电路,软件的一些功能命令。 第六章是 nrf905 射频芯片的基础知识和其构成的数传模块。 第七章以及后几章主要关于系统硬件总体电路、软件设计以及关于这次毕业 设计的总结。 基于 nrf905 的无线温度采集系统的设计 3 2 方案的选取和可行性分析 2.1 方案的选取 传统的测量大棚温度数据的方法是采取温度计测量,人工读取的方法,这样 不仅不方便而且效率和准确性都不高。当大棚数量太多,环境较为恶劣时,这种 传统的方法就不能起到很好的作用。 现在兴起的无线通信 gprs 技术具有传送距离长,通信可靠稳定,但设计复 杂、成本较高,不适合短距离工作。 上述两种方法,在成本和技术上都有一些不尽如人意的地方。此处设计的温 度采集系统,采用单片机、ds18b20 数字温度传感器和一对 nrf905 无线数传模 块组成的温度数据无线传输系统。它具有功耗低、误码率低、工作稳定、成本低 和简单方便等优点,非常适合应用推广。 2.2 可行性分析 本次设计的思路是采用单片机作为主控芯片,用 ds18b20 数字温度传感器将 采集到的数据输入单片机中,再由单片机传给 nrf905 数传模块,数据经调制后 被发送出去。此处 nrf905 工作于 433mhz 的载频。另外一套 nrf905 无线数传模 块收到信号后,将经过解调得到的环境温度数据传给单片机,单片机通过串口再 把数据传给 vb 制作的上位机,最后经过处理的温度数据连同日期、时间和采集 点等信息被自动录入电脑保存并实时显示在电脑屏幕上。本系统的硬件结构框图 如图 2.1。 ds18b20单片机 数传 模块 数传 模块单片机 机 pc 片机 单片机 基于 nrf905 的无线温度采集系统的设计 4 图 2.1 硬件电路框图 3 单片机简介与选型 3.1 单片机技术及其发展 单片机属于第四代计算机,是微型计算机的一个分支。它是一种集成电路芯 片,采用超大规模集成电路技术将 cpu、ram、rom、i/o 口、中断系统、定时 器/计时器等集成于一体的一个小而完善的计算机系统,因此得名单片微型计算机, 简称单片机。 它主要应用于控制领域,用以实现各种测试、控制等功能。为了 强调其控制功能,也有人称它为微控制器 mcu。其在应用时,通常是处于控制 系统的核心地位,即以嵌入的方式使用。 根据应用的需要,可将单片机分为通用型和专用型两种类型。 通用型单片 机是一种基本芯片,它内部资源比较丰富,性能全面且适用性强,能满足应用需 要。用户可根据需要设计成各种控制系统,即通用单片机有二次开发的过程,通 过用户的进一步设计,才能组建成一个以通用单片机为核心、配以其它外围电路 的应用控制系统。然而在单片机的控制应用中,有很多是专门针对某个特定的产 品的,例如电度表、ic 卡读写器等等。这种应用的最大特点是针对性强、数量 巨大,为此厂家常与芯片制造商合作,设计和生产专用的单片机芯片。由于专用 单片机芯片是针对一种产品或一种控制应用而专门设计的,设计时已经对系统结 构进行了最简化、软硬件资源利用最优化处理。自微型计算机问世以来,因实际 应用的需求,产生了两个不同的发展方向:一个是高速度、大容量、高性能;另 一个是稳定可靠、微型、廉价。随着科技的发展,今后的其品种将更多、功能更 强,集成度、可靠性更高,功耗更低,使用也将更加方便。此外,专用化也是单 片机的一个发展方向,相信针对单一用途的单片机也会越来越多。 3.2 单片机技术的应用 目前单片机的应用已深入到国民经济的各个领域,对各个行业的技术改造和 产品的更新换代起到重要作用。 基于 nrf905 的无线温度采集系统的设计 5 单片机广泛应用于实验室、交通运输工具、计量等各种仪器仪表之中,使仪 表智能化,提高他们测量精度,加强其功能,简化仪器仪表的结构,便于使用、 维护和改进。单片机也广泛用于各种实时控制系统之中,如对工业上各种窑炉的 温度、酸度、化学成分的测量和控制。将测量技术、自动控制技术以及单片机技 术结合,充分发挥数据处理和实时控制功能,使系统工作于最佳状态,提高系统 的生产效率和产品质量。在航空、通信、遥控、遥测和遥感等各种实时控制系统 中很多产品可以用单片机作为控制器【3】。 单片机在家用电器等消费电子类领域的应用也是相当广泛的。单片机应用到 消费电子类产品中,能大大提高他们的性价比,因而受到用户的青睐,提高产品 在市场的竞争力。目前家用电器几乎都是单片机控制的产品,如空调、洗衣机、 冰箱等。 3.3 单片机的选型 本设计选用的单片机是宏晶科技有限公司生产的 stc89c52 型单片机。其包 含 intel 8051 的基本功能模块:相同或相似的 8 位 cpu,8k flash rom,256 字节 ram 数据存储器,4 个 8 位并行口,3 个 16 位定时器 t0、t2、t3,一个异 步串行口 uart。 stc89c52 优点是很低的功耗,分为掉电模式,其一般功耗为 0.5ua,可以被 外部中断激活,中断结束后,继续执行其原来的程序;空闲模式一般的功耗为 2ma;在正常工作模式时,其典型功耗 4ma-7ma。而且还具有超强的抗干扰性 能。 单片机的最小系统是由振荡电路和复位电路组成。最小系统电路图如图 3.1。 基于 nrf905 的无线温度采集系统的设计 6 图 3.1 单片机最小系统 基于 nrf905 的无线温度采集系统的设计 7 4 dallas 公司的单总线 单总线系统(1-wire bus)是美国 dallas 半导体公司独创的单片机外设总 线,仅需一个信号线就可在单片机与外设芯片之间实现寻址和数据交换。它采用 单根信号线,既可传输时钟,又能传输数据,且数据传输是双向的。因而这种单 总线技术具有线路简单、硬件开销少,且能传输数据、便于总线扩展与维护等。 4.1 硬件结构和连接 单总线需要一个大约 5 千欧的上拉电阻,这样,在空闲状态时总线为高电平。 由于连接在单总线系统中的每个器件都是通过一个三态门或开漏极连接在单总线 上,这就使得每个器件都可以释放总线,而让另一个器件来使用。但某个器件不 用总线传输数据时,它释放总线后,就可由另一个器件来使用总线传输数据。使 总线保持低电平的时间超过 480s 时,总线上的所有器件都会被复位。 4.2 单总线的工作原理【2】 单总线系统是一个单主机的主从系统。由于他们是主从结构的,所以只有在 主机呼叫从机,从机才能应答。主机在访问单总线器件时要经过初始化单总线器 件、识别单总线器件和交换数据这三个步骤才能实现对从器件控制。因此,在单 总线系统中规定了初始化命令、rom 命令和功能命令三种命令,主机通过这三 种命令来访问从器件,且必须严格按照初始化命令、rom 命令和功能命令这个 顺序来进行,如果出现混乱,单总线器件将不会对主机产生响应。 初始化命令,单总线上的所有操作都是从初始化开始。初始化是由主器件发 出一个初始化脉冲,单总线上所接的上拉电阻使得总线在空闲状态时为高电平。 单总线操作必须从空闲状态开始,但单总线上加的低电平超过 480s 时,总线上 的所有器件都复位,主器件发出复位脉冲,然后释放总线改为接受状态,总线被 上拉电路拉到高电平。在检测到此上升沿后,挂接在单总线上的各从器件在接收 到此命令后,会发出应答脉冲,表明从器件已经做好准备,当主器件收到应答脉 冲后接着发出 rom 命令和功能命令。从器件 ds18b20 要等待 1560s 才向主器 基于 nrf905 的无线温度采集系统的设计 8 件发回应答脉冲。 rom 命令,其功能主要是实现对单总线器件的识别。当主器件检测到一个应 答脉冲后,就发出一个 rom 命令。如果在单总线上有几个从器件,那么主器件 就可根据从器件唯一的 64 位 id 代码,确定与哪个从器件对话。rom 命令还可 以使主器件判断当前总线上有几个从器件。单总线共有五种 rom 命令,每个 rom 命令的长度为一字节,表4.1是其简要说明。 表 4.1 rom 命令说明 rom 命令说明 搜索 rom(f0h)识别单总线上所有单总线器件的 id 码 读 rom(33h) (仅适用单节点)直接读单总线器件的 id 代码 匹配 rom(55h)寻找与制定 id 代码相匹配的单总线器件 跳过 rom(cch) 仅适用单节点使用该命令可直接访问总线上从机设备 报警搜索 rom(ech)(仅少数期间支持)搜索有报警的从机设备 4.3 单总线通信协议 在单总线系统中,为确保数据传输的完整和准确,单总线通信协议定义了初 始化脉冲、应答脉冲、写 0 脉冲、写 1 脉冲和读脉冲五种信号类型。除了应答脉 冲是由从器件发出的外,其余信号均由主器件发出。所有单总线命令序列(初始 化命令、rom 命令和功能命令)都是由这些基本的信号类型组成,并且发送的 所有命令和数据字节都是低位在前。主器件在写脉冲期间向从器件写入数据,在 基于 nrf905 的无线温度采集系统的设计 9 读脉冲期间由从器件读出数据。在每个脉冲期间只能读或写一位数据。在单总线 通信协议中,将完成传输一位的时间称为一个时隙。字节传输可通过多次调用位 操作来实现。 初始化脉冲是由主器件单片机发出一个持续时间超过 480 微秒的低电平,然 后主器件释放总线进入接受状态等待从器件的应答,这时总线被上拉电阻提升至 高电平,从器件 ds18b20 在检测到上升沿后,等待 1560s 将总线拉低保持 60240s 作为应答。 读/写时隙,主器件通过“写时隙”写数据到 ds18b20 中,然后通过“读时隙” 由 ds18b20 读出数据。无论读时隙还是写时隙,都是从器件拉低总线至少 1s 开 始的。每个时隙只能传输一位数据,一个时隙持续至少 60s。两个时隙的间隔时 间 t 要大于 1s。 写时隙,主器件用 “写 1”时隙给 ds18b20 写入逻辑 1,用“写 0”时隙给 ds18b20 写入逻辑 0.主器件拉低总线至少 1s 开始一个写时隙。要产生 “写 1”时隙,主器件必须在拉低总线之后的15s 内释放总线,这时上拉电阻会 抬高总线;要产生 “写 0”时隙,主器件要在拉低总线之后的整个写时隙周期 内一直保持低电平不变。 ds18b20 在主器件产生写时隙后的 1560s 窗口时间 段内采样总线。 读时隙,ds18b20 在主器件发出有关读命令后,才能发数据给主器件。主器 件在发出读命令之后,必须立即产生读时隙。主器件拉低总线至少 1s 开始一个 读时隙,然后立即释放总线,接着ds18b20 会发出数据到总线,ds18b20 拉低 总线数据为 0,释放总线数据为 1(由上拉电阻抬高总线) 。该数据在读时隙开始 后 15s 内有效,因此主器件必须在此期间采样总线,读出数据。 基于 nrf905 的无线温度采集系统的设计 10 5 数字温度传感器 ds18b20 简介 ds18b20 是 dallas 公司推出的数字温度传感器,直接输出 912 位的数字 温度值,含有一个非易失性存储器保存上下限报警器。ds18b20 使用单总线系统, 仅需一根数据线即可实现与微处理器之间通信。工作温度范围是-55+125,温 度测量数据在-10+85范围内精度达到 0.5。每个 ds18b20 都具有一个唯一的 64 位期间识别码,这样可使多个 ds18b20 挂在同一条单总线系统上,并由一个 微处理器来控制这些分布在一个较大区域内很多 ds18b20。 5.1 ds18b20 的引脚封装和性能 常用的 ds18b20 采用与普通三极管相同的 to-92 封装形式,另外也有 8 引脚 的 so 和 sop 封装。to-92 和封装如图 5.1 所示【6】。 (a)to-92 封装 (b)8 引脚 so 封装 图 5.1 ds18b20 的引脚封装 基于 nrf905 的无线温度采集系统的设计 11 5.2 ds18b20 的内部结构 图 5.2 是 ds18b20 的内部结构图【6】。64 位 rom 存储 ds18b20 的唯一器件 识别码,中间结果暂存器中有两字节用来暂存温度传感器测得的温度数据。温度 报警上、下限寄存器各占一字节,还有一个配置字节由用户自己来设定温度数据 的位数(9,10,11 和 12 位) ,这三个字节都是 eeprom 非易失性存储器,即使 在系统掉电时数据也不会丢失。 ds18b20 使用 dallas 公司独创的单总线系统,只需一根控制信号线就可通 信。在单总线系统中,所有器件都通过一个三态门或开漏极连接在单总线上,因 此该总线需要一个上拉电阻。微处理器通过每个器件的识别码来识别器件。 ds18b20 的核心是它的直接数字温度传感器,该传感器分辨率可设置为 9,10,11 和 12 位,分别对应于 0.5 ,0.25,0.125,0.0625的温度增量, 上电后分辨率默认为 12 位的。ds18b20 在上电后并不工作,而是处于休闲状态, 主机只有发出一个转换 t 命令才能使它进入温度测量和 a/d 转换状态,转换完成 后就会有两字节的温度测量值存入中间结果暂存器,同时 ds18b20 又重新返回 到休闲状态。 图 5.2 ds18b20 的内部结构 基于 nrf905 的无线温度采集系统的设计 12 5.3 ds18b20 在单片机系统中应用电路 图 5.3 是使用单片机(stc89c52)来访问单总线器件 ds18b20 温度传感器的 电路图【6】。 图 5.3 ds18b20 在单片机系统中应用 5.4 ds18b20 的功能命令【12】 和所有单总线器件一样,访问 ds18b20 也需要初始化、rom 命令和功能命 令这三个步骤。主机通过 rom 命令确定 ds18b20 后,即可给 ds18b20 发出功 能命令来启动温度转换、决定 ds18b20 的供电方式以及向 ds18b20 的中间结果 寄存器写入数据或者读出数据,下面介绍其功能命令。 启动温度转换命令(convert t) ,该命令启动一次温度转换,随后转换结果存 入中间结果暂存器的两字节温度寄存器中,然后 ds18b20 又返回到其休闲状态。 若 ds18b20 是由外部供电的,那么主机就可在该命令之后进入读时隙,ds18b20 根据转换完成与否做出反应,如果转换还在进行中则给主机发 0,否则发 1。但 寄生供电无此功能。 读中间结果暂存器命令(read scratchpad) ,该命令让主机读出 ds18b20 中 间结果暂存器内的 9 个字节,由最低字节开始一直读到第 9 字节。如果需要部分 数据,主机可在读取过程中的任何时间发初始化命令,使该命令终止。 基于 nrf905 的无线温度采集系统的设计 13 写中间结果暂存器命令(write scratchpad) ,该命令让主机写三个字节到 ds18b20,第一个字节被写入 th 寄存器,第二个字节被写入 tl 寄存器,第三 个字节被写入配置寄存器。发送时字节低位先发。 复制中间结果暂存器命令(copy scratchpad) ,复制中间结果暂存器 th,tl 和 配置寄存器数据到 eeprom。若采用寄生供电方式,则主机在发出该命令之后最 长 10s 内必须使总线至少保持 10ms 的高电平。 回传 eeprom 内容命令( recall e2) ,该命令执行由 eeprom 回传 th,tl 和配置寄存器数据到中间结果寄存器的第2,3,4 字节。跟随 recall e2 命令后,主机可进入读时隙。与启动温度转换命令类似,ds18b20 可根据回传完成与否做出反应,若回传尚在进行之中则给主机发0,若回传 已完成则发 1。ds18b20 上电时自动进行回传 eeprom 内容的操作,以便器 件在通电后使中间结果暂存器中的数据立即有效。 读电源类型命令( read power supply) ,主机在发出该命令后紧跟一个读 时隙,以便判断在总线上是否有寄生供电的器件。在读时隙期间,寄生供电的 ds18b20 会拉低总线,外部供电的 ds18b20 会继续保持总线高电平。 基于 nrf905 的无线温度采集系统的设计 14 6 nrf905 无线数传芯片简介 挪威 nordic 公司推出了一种单片射频芯片是本次系统设计的核心,此芯片 工作于 1.93.6v 电压范围内,使用 433mhz/868mhz/915mhz 的 ism 频段,频道 转换时间小于 650s,数据传输速率 最大为 100kb/s。nrf905 的内部结构是频 率合成器、接收解调器、功率放大器、晶体振荡器和 gfsk 调制器等组成。此外, 功耗较低。由于其收发可靠,使用方便,所以在工业控制、消费电子各领域都 具有广阔的应用前景。 6.1 芯片内部结构与封装 nrf905 片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器和功 率放大器等模块,曼彻斯特编码/解码有片内硬件完成,用户无须对数据进行曼 彻斯特编码,因而使用方便。其内部结构如图 6.1 所示【7】。 图 6.1 nrf905 的内部结构 基于 nrf905 的无线温度采集系统的设计 15 nrf905 采用 32 引脚的 qfn 5mm*5mm 小封装(32l qfn 5mm*5mm),体 积小,节省印制板面积。图 6.2 是 nrf905 的封装和引脚分布【7】。 图 6.2 nrf905 的封装和引脚分布 6.2 工作模式 nrf905 有两种工作模式和两种节电模式。两种工作模式分别是 shockbursttm 接收模式和 shockbursttm发送模式,两种节电模式分别是掉电模式和待机模式。 nrf905 的工作模式由 trx_ce,tx_en 和 pwr_up 三引脚决定,详见表 6.2。 基于 nrf905 的无线温度采集系统的设计 16 表 6.2 nrf905 工作模式 pwr_uptrx_cetx_en工作模式 0 xx 掉电和 spi 编程 10 x 待机和 spi 编程 110接收 111发射 6.2.1 shockbursttm模式 与射频数据包有关的高速信号处理都在 nrf905 片内进行,数据速率由微控 制器配置的 spi 接口决定,数据在微控制器中低速处理,但在 nrf905 中高速发 送,因此中间有很长时间的空闲,这很有利于节能。由于 nrf905 工作于 shockbursttm模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。 在 shockbursttm 接收模式下,当一个包含正确地址和数据的数据包被接收到后, 地址匹配(am)和数据准备好(dr)两引脚通知微控制器。在 shockbursttm发送模 式,nrf905 自动产生字头和 crc 校验码,当发送过程完成后,数据准备好引脚 通知微处理器数据发射完毕。由以上分析可知,nrf905 的 shockbursttm收发模 式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。下面具体 详细分析 nrf905 的发送流程和接收流程。 典型的 nrf905 发送流程是【2】: (1) 当 mcu 要发送数据时,把接收机的地址和要发送的数据通过 spi 总 线送传给 nrf905,在通信协议和器件配置时确定 spi 接口速率。 (2) trx_ce 和 tx_en 被 mcu 置高,shockbursttm发送模式被激发。 基于 nrf905 的无线温度采集系统的设计 17 (3) 在 shockbursttm发送模式中,射频配置寄存器自动开启并完成以下动 作:打包数据、发送数据包和当数据发送完成,数据准备好引脚 dr 被置高。 (4) 置高 auto_retran,nrf905 发送, trx_ce 变成低电平时停止。 (5) 当 trx_ce 变低时,完成 nrf905 发送过程,进入待机模式。 典型的 nrf905 接收流程: (1) 当 trx_ce 是高电平、tx_en 是低电平时,nrf905 进入 shockbursttm的接收模式。 (2) 经过 650us 之后,不断监测 nrf905,等待接收数据。 (3) 当同一频段的载波被 nrf905 检测到时,置高载波检测引脚 cd。 (4) 当一个相匹配的地址被接收到时,置高地址匹配引脚 am。 (5) 当一个正确的数据包接收完毕,nrf905 自动移去前导码、地址和 crc 校验位,然后置高引脚 dr。 (6) mcu 置 trx_ce 为低电平时,nrf905 进入待机模式。 (7) mcu 通过 spi 口,以一定的速率把数据移到 mcu 内。 (8) 当接收完所有的数据时,nrf905 把引脚 dr 和地址匹配引脚 am 置为 低电平。 (9) 此时 nrf905 可以进入 shockbursttm接收模式、shockbursttm发送模式 或掉电模式 基于 nrf905 的无线温度采集系统的设计 18 6.2.2 节能模式 nrf905 的节能模式包括掉电模式和待机模式。在掉电模式时,nrf905 工作 电流最小,为 2.5a。待机模式有利于减小工作电流。从待机模式到发送模式或 接收模式的启动时间较短。在待机模式时,nrf905 内部的部分晶体振荡器处于 工作状态。nrf905 在待机模式下工作电流与外部晶体振荡器频率有关。 6.3 nrf905 的配置 nrf905 内部有若干寄存器,这些寄存器必须经过适当配置,才能使其正常工 作。这些寄存器的配置字都是通过 nrf905 内部的 spi 接口传送的。spi 接口的工 作可通过 spi 指令执行。只有当 nrf905 处于掉电或待机模式时,nrf905 的 spi 接口才可以进入工作状态。 nrf905 内部的 spi 接口连接有 5 个寄存器,分别是状态寄存器、射频配置寄 存器、发送地址寄存器(tx_address) 、发送数据寄存器(tx_payload) 和接收数据寄存器(rx_payload) 。 nrf905 的 spi 接口有一组指令用来对 nrf905 内部的各寄存器进行配置。只 有在 spi 的片选引脚 csn 为低时,nrf905 才能接收一条 spi 指令,当引脚 csn 发生由高到低的跳变时,nrf905 才开始接收一条新的 spi 指令。 6.4 nrf905 硬件电路 在 nrf905 的使用中,根据不同要求,其电路图不尽相同,图 6.4 为 50 单 端天线输出的应用原理图。该电路的输出,通过一个差分到单端的匹配网络连接 到 50 的单端天线。在电路中,电感电容的值是使电路工作在 433mhz 的数据。 基于 nrf905 的无线温度采集系统的设计 19 图 6.4 nrf905 应用电路图 基于 nrf905 的无线温度采集系统的设计 20 7系统的硬件结构 7.1 nrf905 无线收发模块 ptr8000 无线收发模块是一款以 nrf905 为核心的无线收发模块,体积小, 使用方便。此模块通过一个 14 引脚的插针为用户提供一个方便的接口,各引脚 功能如图 7.1 所示。此接口与单片机相连,组成使用的无线数传系统这些引脚功 能分为 3 组。 模式控制信号。ptr8000 工作模式由 trx_ce,tx_en,pwr_up 来设置。 spi 接口信号。由 sck,miso,mosi 和 csn 信号线组成。在配置模式时,单 片机通过 spi 接口配置 ptr8000 的工作寄存器;在发射/接收模式下,单片机通 过 spi 接口发送和接收。 状态输出信号。在发送模式下,地址匹配(am)和数据准备就绪(dr)信 号通知单片机,一个有效地地址和数据包已经接收完成。在发送模式下, ptr8000 自动产生前导码和 crc 码,dr 信号通知单片机数据传输已经完成。 ptr8000 中 uclk 引线就是 nrf905 芯片中的引脚 upclk 时钟输出。 图 7.1 无线收发模块用户接口 基于 nrf905 的无线温度采集系统的设计 21 7.2 系统的硬件电路图 本系统由两套 ptr8000 无线收发模块组成。在发送的模块上增加了一片 ds18b20 数字温度传感器。由于 nrf905 工作电压在 3v 左右,所以加上 ams1117 稳压芯片使模块输入电压稳定在 3.3v。如图 7.2 所示。 图 7.2 发送部分电路原理图 基于 nrf905 的无线温度采集系统的设计 22 在接收的一套模块上增加了一片由 max232 组成的 rs232 串口接口电路,通 过此电路与上位机相连。图 7.3 为该部分原理图。 图 7.3 接收部分电路原理图 基于 nrf905 的无线温度采集系统的设计 23 8系统软件设计 前几章完成了该系统的硬件设计,本章将在前几章硬件基础上完成相应的软 件设计,实现系统功能。系统软件是在 keil 开发环境下采用 c51 语言编写,整 个系统软件由初始化模块程序、温度采集、发送、接收程序、上位机显示程序等 构成。 8.1 单片机编程 两套模块中,一套用于温度采集,并将温度数据通过无线数传模块发送,另 一套负责接收数据并通过串口将数据送入上位机处理。发送和接收部分的程序流 程图分别如图 8.1(a)和 8.1(b)所示。 nrf905 初始化, 配置射频寄存器 ds18b20 初始化 读温度数据 写发送地址和数 据 发送数据 完成? no yes nrf905 初始化, 配置射频寄存器 等待接收数据 完成? 发送数据给上位机 no yes (a)发送流程 (b)接收流程 图 8.1 系统工作流程图 基于 nrf905 的无线温度采集系统的设计 24 8.2 上位机编程 mscomm 控件是 microsoft 提供的 activex 控件,目的是简化 windows 下串 行通信编程。提供两种处理通信方式,分别是事件驱动方式和查询方式。在串口 通信过程中,当发送数据、收到数据或产生传输错误时,触发 mscomm 控件 oncomm 事件,然后通过判断 commevent 属性值获得事件类型,根据事件类型 进行相应的数据处理。故用 mscomm 控件实现微机串口的数据通信相当简单【8】。 接收部分的单片机通过串口测量数据发给上位机,上位机使用 vb 编的应用程 序来处理这些数据,同时将数据显示在上位机屏幕上供用户查看。vb 应用程序界 面如图 8.2 所示。 图 8.2 上位机 vb 程序界面 程序主要包括四个部分,即温度曲线的显示、温度数值显示、统计计算和四 个按钮处理程序。 实验后的上位机显示数据如图 8.3 所示。 基于 nrf905 的无线温度采集系统的设计 25 图 8.3 上位机实验显示 基于 nrf905 的无线温度采集系统的设计 26 9总结 本文是大棚温度数据采集系统,核心的部分就是远程传输温度数据和实时显 示温度变化。最后实验表明此设计能稳定、高效、直观的显示出温度数据和实时 变化,而且使用起来简单方便。 本设计中存在的不足是没有采取多点测量取得平均值的方法,单看一点的温 度也许不会精确的显示大棚的温度的实际情况。在上位机显示温度实时变化的曲 线图不够完善,有待改进。 基于射频收发器 nrf905 进行无线通信,实现近距离微控制器的无线组网, 进行多个大棚温度数据采集、传输与显示,这些都是后序可以做的项目。 本设计中,我不仅学习了 ds18b20 单总线器件的使用、远程传输模块的编程、 上位机编程,同时设计了并实现了上述功能。本设计能较好的测量温度以及在上 位机上显示温度变化和历史温度统计数据。 这是我在大学里做的最重要的一个设计,多达几个月的思考、学习和制作, 导师和同学的帮助都很大。这不仅使我学习到了硬件电路的设计,还学习了怎么 样去调试系统和软件设计。这些都是我宝贵的经验和回忆。 基于 nrf905 的无线温度采集系统的设计 27 致谢 此次毕业设计的制作,凝聚了我辛勤的汗水,也注入了老师和同学热情的帮 助和无私的奉献。 首先,我要特别感谢我的指导老师赵波老师,感谢老师给予我的大力支 持和帮助。从毕业设计的选题、资料的收集、参考书目的推荐到实物的调试和完 成直到最后的论文定稿,赵老师总是循循善诱的给我指出不足并提出中肯的改善 意见。整个毕业设计期间赵老师对我孜孜不倦的教诲和悉心指点,是毕业设计得 以完成的重要因素之一,在此,谨向赵老师致以我深深的敬意。 其次,我要感谢在设计当中给予我帮助的许多同学、朋友,特别是王雷和全 体网络工作室组员,他们也倾注了很多的精力给予我真诚的帮助,在我遇到困难 解决不了的时候,是他们给了我动力和信心,而且利用扎实的专业知识帮我解决 了不少问题。在此,我要对他们表示最诚挚的谢意! 最后,我要感谢大学四年来教育我培养我关心我的老师们。在他们的教导和 指引下,我度过了充实的难忘的四年大学生涯,这些都将成为我人生最宝贵的财 富,在此我对所有的老师们致以最诚挚的谢意和最衷心的祝愿! 衷心祝愿各位老师事业顺利,合家安康!各位同学学业有成,前程似锦! 基于 nrf905 的无线温度采集系统的设计 28 参考文献 【1】马忠梅,等。单片机的 c 语言应用程序设计 北京:北京航空航天大学出版社,1999 【2】唐继尧 51 单片机工程应用实例 北京:北京航空航天大学出版社,2009 【3】张友德 单片微型机原理、应用与实验 上海:复旦大学出版社 2006 【4】谭浩强 c 语言程序设计 北京:清华大学出版社 1999 【5】at89c52 datasheet ,可在中国电子资源网、集成电路资料下载 【6】dallas semiconductor.ds18b20.pdf 【7】nordic semiconductor.nrf905.pdf 【8】李江全 visual basic 串口通信与测控应用技术实战详解 北京:人民邮电出版社 2007 【9】求是科技 visual c+、visual basic 串并口开发技术工程应用实例导航 北京:人民邮电 出版社 2006 【10】康华光 电子技术基础模拟部分(第五版)北京:高等教育出版社 2006 【11】康华光 电子技术基础数字部分(第五版)北京:高等教育出版社 2006 【12】马云峰 单片机与数字温度传感器 ds18b20 的接口设计 计算机测量与控制.2002.10(4) 【13】刘海萍 基于 ds18b20 的温度采集系统设计 科教可沿 2009 年第 11 期 基于 nrf905 的无线温度采集系统的设计 29 附录 附录 1 系统发送程序 #include #include /_nop_() typedef unsigned char uchar; typedef unsigned int uint; /配置口定义/ sbit txen = p15; /配置口定义 sbit trx_ce = p14; sbit pwr = p16; /spi 口定义/ sbit miso = p11; sbit mosi = p32; sbit sck = p10; sbit csn = p31; /状态输出口/ sbit cd = p17; sbit dr = p30; sbit am = p12; sbit led1 = p34; sbit led2 = p35; sbit dq =p27; /ds18b20 接在 p30 /- /rf 寄存器配置/ unsigned char idata rfconf11= 基于 nrf905 的无线温度采集系统的设计 30 0x00, /配置命令/ 0x6c, /ch_no,配置频段在 433.2mhz 0x0c, /输出功率为 10db,不重发,节电为正常模式 0x44, /地址宽度设置,为 4 字节 0x04,0x04, /接收发送有效数据长度为 4 字节 0xe7,0xe7,0xe7,0xe7, /接收地址 0xde, /crc 充许,16 位 crc 校验,外部时钟信号使能,16m 晶振 ; uchar dis_buf4;/温度传感器发射数据缓存 /- void delayms(uint n) /j=115f=11.0592mhz uchar j; while(n-) for(j=0;j0;us-); /- uchar reset(void)/ds18b20 复位 uchar yes; dq = 0; delayus(29); /延时 480us dq = 1; delayus(3); 基于 nrf905 的无线温度采集系统的设计 31 yes = dq; delayus(25); return(yes); /yes=0 有芯片, /- uchar read_byte(void)/从单总线上读一个字节 uchar i; uchar value = 0; for (i=8;i0;i-) value=1; dq = 0; dq = 1; delayus(1); /延时 15us if(dq)value|=0x80; delayus(6); return(value); /- void write_byte(uchar val)/向单总线上写一个字节 uchar i; for (i=8; i0; i-) dq = 0; dq = val delayus(5); dq = 1; 基于 nrf905 的无线温度采集系统的设计 32 val=val/2; delayus(5); /- uint read_temp(void)/读取温度 union uc

温馨提示

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

评论

0/150

提交评论