基于nRF905的无线温度测量系统的研究与设计

发布时间 : 星期二 文章基于nRF905的无线温度测量系统的研究与设计更新完毕开始阅读

精品文档

3.2.2.3 无线数据接收部分

nRF905是利用SPI口实现与单片机80C52的双向通信的,有四个SPI接口引脚:MISO(主SPI输入、从SPI输出)、MOSI(主SPI输出、从SPI输入)、CSN(SPI使能)、SCK(SPI串行时钟)。nRF905针对SPI口对其进行的多种不同形式的操作,设置了7种不同的指令。SPI 口能进行的操作有:通过SPI口对射频配置,收、发地址和数据的读写等。其具体的连接图与下位机nRF905与单片机的邻接大体相同,上位机部分80C52与nRF905的接口连接见图3-9。

图3-9 上位机数据接收模块引脚连接图

3.3 本章小结

本章首先介绍了系统的硬件电路整体设计方案,然后按照系统的功能划为四个模块:数据采集模块、数据发送模块、数据接收模块和串口初始化模块,并且给出每个模块的详细电路设计图。

值得下载

精品文档

第4章 系统软件设计

4.1 系统的整体软件框图

按照模块化设计的思想,系统中各主要功能模块均编成独立的函数在主程序中加以调用,程序主要由以下功能模块组成:DS18B20的初始化及温度采集函数、nRF905的初始化及射频发射函数、射频接收函数。采集端和接收端在上电后首先调用初始化程序,完成无线收发频率、工作模式、发射速率、内部寄存器的初始化配置;无线收发程序负责接收和发送经过打包后的数据;数据打包程序将采集数据根据通信协议加上帧头、地址、CRC校验字节,形成完整的数据包;数据拆包程序根据通信协议将接收到的数据包去掉帧头、地址信息、取出其中的有用数据,并检验数据包中的CRC字节以检验接收到的数据的正确性;数据处理程序对接收到的有效数据进行简单的计算处理后将其通过串口发送到计算机,进一步的分析和处理。

根据第三章的硬件整体设计方案,本系统的软件设计采用模块化、结构化得设计方法,整个系统非为上位机程序设计部分和下位机程序部分,其中下位机主要包括温度测量模块、数据发送模块,上位机主要包括数据无线接收模块和数据处理模块。软件的整体设计流程如图4-1。整个系统的各个部分都是服务于无线数据传输这个目的。所以,在整个系统的软件设计中,无线数据的传输是最主要的部分。软件系统的整体数据处理过程见图4-1。

初始化 采集温度信息 送nRF905 发送数据 送PC 数据处理 接收数据 图 4-1 软件系统的整体数据处理过程

4.2 系统所使用的通信协议

通信协议是通信双方为实现信息交换而制定的规则。由于主接收器与数据终

值得下载

精品文档

端之间的通信可能会受到其它数据终端或外界环境的干扰而发生错误,因此,需要通信协议来保证数据传输的可靠性。

本系统中,数据采集端和数据接收端设置成同一个通信频率,它们之间通过地址加以区分。系统只由一个数据接收单元和多个数据采集单元组成,构成了一点对多点的通信关系。当几个数据采集端同时向数据接收端发送数据时,将会出现通信冲突。为了避免这种情况出现,系统采用接收端轮询,采集端应答的通信方式。数据接收端依次向各个数据采集端发送数据请求命令,采集模块接收到该命令后,向接收模块发送应答命令,建立与接收端的通信连接,然后将采集到的实时数据打包发出。数据接收模块在接收完一个采集模块的数据或发生通讯超时后,终止与该模块的数据通信,开始向下一个数据采集模块发送数据请求命令;当所有的数据采集模块都与数据接收模块有过一轮通信后,从第一个数据采集模块重新开始,如此循环。这样就保证了在任何时刻都只有一个采集模块在与接收模块进行通信,整个点对多点的无线通信过程转化成多个点对点的通信过程,避免了数据冲突。

为了保证数据传输的可靠性,无线通信协议还要考虑通信双方的检错、纠错问题。数据发送端在打包发送数据时,在无线数据包中添加校验字节,本文采用CRC校验。接收端在接收到数据包后检验校验字节,若校验不正确,请求发送端重发;若重发达到规定的次数或出现通信超时,放弃当前采集请求。

nRF905只有一种协议格式,其中的前缀也就是数据头,设备地址包括本机的地址和主接收器的地址,CRC校验可进行选8位或16位。nRF905的协议格式见图 4-2。

前缀 设备地址 数据 CRC 图4-2 nRF905协议格式

4.3 软件设计主要模块介绍

4.3.1 下位机部分程序设计

下位机单片机完成温度采集和温度值发送功能,接收端单片机完成温度值接收和串口通信功能。DSl8B20独特的单总线技术给硬件方面带了很大的方便,而

值得下载

精品文档

较小的硬件开销需要相对复杂的软件进行补偿,因此对DSl8B20进行操作时,必须严格的保证读写时序。

为了顺利实现无线数据的发送和接收,必须通过SPI接口正确配置nRF905的配置寄存器。上电后首先将PWR、TX-EN、TRX-CE设置为配置模式,通过SPI接口配置把工作频率、输出功率、地址宽度、有效数据宽度等初始化信息写进配置寄存器。发送端单片机程序流程如图4-3

【12】

开始 初始化DS18B20和nRF905 启动DS18B20温度转换 数据写入nRF905 数据打包、发送 图4-3 下位机程序流程图

4.3.1.1 温度采集部分

DS18B20对时序及电特性参数要求较高,必须严格按照DS18B20的时序要求去操作。DS18B20数据的读写由主机读写时间来完成的,包括初始化、读数据和写数据。主机控制DS18B20完成任何操作之前必须先初始化,即主机发一个复位脉冲(最短为480us的低电平),接着主机释放总线进入接收状态。DS18B20在检测到P0.0引脚上的上升沿之后,等待一段时间,然后发出存在脉冲。

值得下载

联系合同范文客服:xxxxx#qq.com(#替换为@)