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

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

精品文档

写数据:将数据线从高电平拉至低电平,产生写起始信号。在15us之内将所需写的位送到数据线上,在15us到60us之间对数据线进行采样,如果采样为高电平,就写1,如果为低电平写0。在开始另一个写周期前必须有1娜以上的高电平恢复期。

读数据:主机将数据线从高电平拉至低电平1us以上,再使数据线升为高电平,从而产生读起始信号。主机在读时间片下降沿之后15us内完成读位。每个读周期最短的持续期为60us,各个读周期之间也必须有1us以上的高电平恢复期【13】。

温度采集部分流程如图4-4:

向DS18B20发送初始化脉冲 否 初始化成功? 报错并返回 向DS18B20发送ccH 是 是 向DS18B20发送ccH 向DS18B20发送44H,启动温度转化 向DS18B20发送BEH,准转化结束? 备读取温度 初始化成功了吗? 报错并返回 否 取出温度及CRC校验位 向DS18B20发送初始化脉冲 CRC校验 保留该温度,并作提高精度运算,返回 舍弃该值 图4-4 温度采集部分流程图

根据以上的分析及工作流程可知,每次对DS18B20的访问,都必须按下面

值得下载

精品文档

工作协议流程进行:初始化、ROM操作指令→存储器操作指令→数据传输。其工作时序包括初始化时序、写时序和读时序。主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500us,然后释放,DS18B20收到信号后等待16→60us左右,后发出存在低脉冲,主CPU收到此信号表示复位成功。主要的函数设计如下【14】: 1. void RST18B20(uint d);

ds18b20的底层基本操作之一:初始化。通过单总线进行的所有操作都是从一个初始化序列开始的。初始化通过单总线进行的所有操作都是从一个初始化序列开始的。初始化序列包括一个由CPU发出的复位脉冲及其后由ds18b20发出的存在脉冲。存在脉冲让CPU知道ds18b20在总线上自己已做好准备。

void WR18B20(uint d);

ds18b20的底层操作之一:数据写。所有的指令、数据发送均由该操作完成。DS18B20的写操作是逐位进行的。因此,采用C51中的位右移实现。

uchar RD18B20(void); ds18b20的底层操作之一:数据读。温度和其他信息的传回均由该操作完成。起初打算采用逐位写相同的方式编制逐位读的函数,将数据读入CY寄存器后再利用位右移操作将数据逐位送入ACC;但实际写出的代码却不能正常工作。经分析C51所生成的汇编代码总是先清空CY寄存器,再进行右移,这样数据在送入ACC之前已经清掉了。为了实现数据的诸位读,利用ACC的位寻址功能,在C51中将ACC的最高位定

义为BIT7,然后用它来实现数据的诸位读功能【15】。 4.void ConvertT(void); 启动DS18B20的一次温度转换。

5.uint ReadT(void); 读取DS18B20并返回温度值。 4.3.1.2 数据发送部分

nRF905接收数据流程:

1.当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;

2.650us后,nRF905不断监测,等待接收数据;

3.当nRF905检测到同一频段的载波时,载波检测引脚被置高;

值得下载

精品文档

4.当接收到一个相匹配的地址,地址匹配引脚被置高;

5.当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高;

6.微控制器把TRX_CE置低,nRF905进入空闲模式;

7.微控制器通过SPI口,以一定的速率把数据移到微控制器内;

8.当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;

9.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。

ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。

由于nRF905工作在ShockBurstTM模式,因此使用低速的微控制器也能得到很高的射频数据发射速率。在ShockBurstTM接收模式下,当一个包含正确地址和数据包被接收到后,地址匹配(AM)和数据准备好(DR)两引脚通知微控制器。在ShockBurstTM发送模式,nRF905自动产生字头和CRC校验码,当发送过程完成后,数据准备好引脚通知微处理器数据发射完毕。由以上分析可知,nRF905的ShockBurstTM收发模式有利于节约存储器和微控制器资源,同时也减小了编写程序的时间。

当MCU有遥控数据节点时,接收点的地址(TX-address)和有效数据(Tx-payload)将通过SPI接口传送给nRF905。设计时应使用协议或MCU来设置接口速度。可用MCU设置TRX-CE,并使TX-EN为高电平来激活nRF905的ShockBurst传输。通过nRF905的ShockBurst可使无线系统自动上电,并完成数据包(应加前导码和CRC校验码)的数据码发送(100 kbps,GFSK,曼切斯特编码)。如果AUTO-RETRAN被设置为高电平,那么,nRF905将连续地发送数据包,直到TRX-CE被设置为低电平为止;而当TRX-CE被设置为低电平时,nRF905则结束数据传输,并将自己设置为standby模式。

ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。发送数据时的工作流程如图4-5所示。

值得下载

精品文档

开始 TRX-CE=1,TXEN=1,PWR-UP=1 初始化SPI,模块装载addr和发送数据 否 TRX-CE=1? 是 发射部分模块上电 生成CRC和前导码,并发送数据,DR=1 否 TRX-CE=1? 是 AUTO-RET=1? 是 前导码完成后DR置低 否 否 结束 图4-5 发送数据流程图

4.3.2 上位机部分程序设计

上位机主要实现PC与单片机之间的串口通信以及射频接收功能。应用程序要使用串口进行通信,必须在使用之前向系统提出资源申请要求,通信完毕后必须释放资源。主要步骤包括初始化串口、串口读写、发送数据、关闭串口。接收

值得下载