首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于nRF9E5和DS18B20的无线测温系统设计

基于nRF9E5和DS18B20的无线测温系统设计

目前,很多场合的测温系统采用的还是有线测温设备,由温度传感器、分线器、测温机和监控机等组
成,各部件之间采用电缆连接进行数据传输。这种系统布线复杂、维护困难、成本高,可采用无线方案
解决这些问题。无线测温系统是一种集温度信号采集、大容量存储、无线射频发送、LED(或LCD)动态
显示、控制与通信等功能于一体的新型系统。
本文从低功耗、小体积、使用简单等方面考虑,基于射频SoC nRF9E5和数字温度传感器DS18B20设计了
一个无线测温系统,整个系统由多个无线节点和1个基站组成。无线节点工作在各个测温地点,进行温
度数据采集和无线发送。基站与多个节点进行无线通信,并通过数码管将数据显示出来,同时可以通过
RS-232串口将数据发送给PC。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

nRF9E5简介
nRF9E5是Nordic公司推出的射频片上系统,内嵌8051兼容微控制器、RF收发器和4通道10位A/D转换器,
是真正的系统级芯片.

nRF9E5的片内微控制器与标准8051兼容,指令时序与标准8051稍有区别。中断控制器支持5个扩展中断
源:ADC中断、SPI中断、唤醒中断和两个无线收发中断。此外,还扩展了两个数据指针,使得片外RAM
存取数据更为方便。微控制器内有256B的数据RAM和512B的ROM。上电复位或软件复位后,控制器自动执

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
行ROM引导区中的代码,用户程序通常在引导区的引导下,从E2PROM加载到1个4KB的RAM中,该RAM也可
用来存储数据。当进行批量生产时,可要求厂家代理将程序固化到片内,这样可省去E2PROM的费用并进
一步减小系统体积。
nRF9E5内置收发器具有与单片射频收发器nRF905相同的功能,可通过片内MCU的并行口或SPI口与微控制
器通信。收发器由频率合成器、功率放大器、调制器和接收单元组成。输出功率、频道和其他射频参数
可通过对特殊功能寄存器RADIO编程进行控制。发射模式(TX)下,最小工作电流仅为9mA(输出功率-1
0dBm),接收(RX)模式下的工作电流为12.5mA,掉电模式下的工作电流仅为2.5µA。可见,nRF9E5的功
耗很低。
nRF9E5采用Nordic公司的ShockBurst技术(自动处理前缀、地址和CRC),实现低速数据输入,高速数据
输出,从而降低了系统的平均功耗。另外,nRF9E5还具有载波检测功能。在ShockBurst接收方式下,当
工作信道内有射频载波出现时,载波检测引脚(CD)被置高。也就是说,当收发器准备发送数据时,它首
先进入接收模式并检测所工作的信道是否可以发送数据(信道是否空闲),这是一种简单的传输前监听
协议。这个特性很好地避免了同一工作频率下不同发射器数据包之间的碰撞。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
DS18B20概述
DS18B20是美国DALLAS公司的“单总线”数字温度传感器,它具有结构简单、体积小、功耗低、无须外
接元件、用户可自行设定预警上下限温度等特点。“单总线”结构独特而且经济,采用一根I/O数据线
既可供电又可传输数据,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。
3引脚封装的DS18B20形如一只三极管,其内部结构如图2所示。主要由四部分组成:64位光刻ROM、温度
传感器、非易失性的温度报警触发器和配置寄存器。此外,还有电源检测模块、存储和控制逻辑器、中
间结果缓存器和8位循环冗余校验码(CRC)发生器。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
ROM中的64位序列号是出厂前被光刻好的,可以看作该DS18B20的地址序列码,每个DS18B20的64位序列
号均不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20内部的RAM由9个字节的高速
缓存器和E2PROM组成,数据先写入高速缓存器,经校验后再传送给E2PROM。通过DS18B20功能命令对RAM
进行操作。
DS18B20的测量温度范围为-55℃~125℃,在-10℃~85℃范围内,精度为0.5℃,可编程设定9~12位的
分辨率,默认值为12位,转换12位温度信号所需时间为750ms(最大)。检测温度由2字节组成,字节1
的高5位S代表符号位,字节0的低4位是小数部分,中间7位是整数部分。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

无线测温系统组成及硬件设计

无线测温系统主要可分为基站和无线节点两大部分。每套系统一般只有1个基站,包括微控制器及射频

收发单元、显示单元、报警单元、电源模块及接口单元,

接口单元是为了方便射频模块和PC的通信,通常可采用RS-232接口、USB接口、以太网接口等,其中,R

S-232接口是目前PC与通信工业中应用最广泛的一种串行接口。本文使用RS-232接口,采用MAX3232芯片

实现RS-232电平与TTL电平之间的转换。MAX3232MAXIM公司生产的一种RS-232接口芯片,使用单一电

源电压供电,电源电压在3.05.5V范围内都可以正常工作。

[此贴子已经被作者于2007-8-22 14:04:02编辑过]

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
基站接收到数据后,将温度信息通过数码管(或液晶显示屏)显示出来,根据需要,还可以通过RS-232
接口与PC进行通信。为简化系统,本设计直接用nRF9E5的P0口驱动数码管(未在图中给出),但是P0口
不具备数据保持能力,需要外接一定大小的上拉电阻,显示方法采用扫描法。采用一个蜂鸣器作为报警
装置,当温度超过设定范围时,鸣叫报警。射频天线采用单鞭天线。
无线节点分布在温度采集点,由数字温度传感器DS18B20、射频SoC nRF9E5、天线及电池组成。在实际
应用中,可以有多个无线节点,它们与基站之间通过射频进行无线通信。无线节点的电路结构如图4所
示,其中,25AA320为E2PROM程序存储器。DS18B20有寄生电源和外部电源两种供电方式,本文采用外部
供电方式,VDD引脚直接连接外部电源。DS18B20在空闲时,其DQ脚由上拉电阻置为高电平。无线节点的
天线根据实际需要可选用单鞭天线或PCB印制天线。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

无线测温系统的软件设计

本系统软件设计比较复杂,整个软件系统的流程主要有以下几个关键函数:DS18B20初始化
及温度采集函数、nRF9E5初始化及射频发送(接收)函数、数据显示函数、串口通信函数等。

限于篇幅,各个函数的详细流程图不再给出,仅列出几个函数片断供参考,程序采用C语言编写,用Kei
l C51进行编译。
DS18B20采用单总线数据传输方式,对读写的操作时序要求严格。DS18B20提供了一系列指令来控制传感
器的工作,利用这些指令就可以对DS18B20进行操作了。为了操作方便,可编写两个操作函数,源码如
程序清单1所示。
程序清单1:
//-------------------
//启动DS18B20的1次温度转换
//-------------------
void ConvertT(void)
{
RST18B20( ); //初始化
WR18B20(0xcc); //跳过多传感器识别
WR18B20(0x44); //启动温度转换
}
//-------------------
//读取DS18B20
//-------------------
int ReadT(void)
{
RST18B20( ); //初始化
WR18B20(0xcc); //跳过多传感器识别
WR18B20(0xbe); //读DS18B20缓存器
DPL=RD18B20( ); //温度低位
DPH=RD18B20( ); //温度高位
return(DPTR); //返回读出的温度值
}
在开始进行无线通信前,必须对nRF9E5进行初始化配置,这个配置是通过对配置寄存器的设置来完成
的。nRF9E5有一个144位的配置字,规定了无线收发器的接收地址、收发频率、发射功率、无线传输频
率、无线收发模式、CRC校验和的长度及有效数据的长度等。nRF9E5的初始化工作,可根据具体要求对
照数据手册进行配置。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
数据的发送和接收是无线收发器的主要功能,当有数据要发送时,首先通过SPI接口把所要发送的数据
送给nRF905模块,设置TRX_CE、TXEN为高以激活nRF9E5进入发送状态。无线系统自动上电,数据自动加
前导码和CRC校验,然后发送数据包。具体过程如程序清单2所示。
程序清单2:
//-------------------
//发送数据包
//-------------------
void TransmitPacket(INT8U *pBuf)
{
INT8U i;
RACSN = 0;
SpiReadWrite(WTP);
for (i=0; i<Nrf9e5Config[10]; i++)
{
SpiReadWrite(pBuf); //写入发送缓冲区
}
RACSN = 1;
TXEN = 1;
TRX_CE = 1; //使能发送
Delay100us(1);
TRX_CE = 0; //发送完毕
}
当要接收数据时,通过设置TRX_CE为高、TXEN为低,使nRF9E5进入接收状态。当nRF9E5监测到和接收频
率相同的载波时,载波检测(CD)被置高;当接收到有效的地址时,地址匹配(AM)被置高;当接收到
有效的数据包(CRC校验正确)时,数据就绪(DR)置高。接收数据的具体程序清单不再列出。
希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/

当需要将接收到的数据通过RS-232串口输出时,首先要进行串口初始化,开启nRF9E5管脚P0.1、P0.2的
第二功能,具体过程见程序清单3。
程序清单3:
//-------------------
//串口初始化
//-------------------
void InitUart(void)
{
TH1=243;
CKCON|=0x10;
PCON=0x80; // 设置波特率
SCON=0x52; // 模式1,使能接收
TMOD&=~0x30;
TMOD|=0x20;
TR1=1; //定时器1开启
P0_ALT|=0x06; //串口使能
P0_DIR|=0x02; //P0.1 输入
P0_DIR&=0xfb; //P0.2输出
ES=0;

}
结束语
本文基于nRF9E5和DS18B20设计了一个无线测温系统,具有体积小、功耗低等优点,适用于采油厂、发
电厂、钻井施工等不宜进行有线测温的场合,应用前景广阔。

希望能够在不久的将来有次合作的机会  群:18994538 QQ: 364304745  个人主页:http://ldmcu.shangwusou.com/
返回列表