利用智能射频芯片nRF9E5设计无线温、湿度测量电路
作者:朱兆青,南通工学院,Email: zhu.zq@ntit.edu.cn
款工作频率为433/868/915MHz的智能射频芯片,集成了8051微控器、4通道10位A/D转换以及多通道RF收发。
本文介绍采用该射频芯片、温度传感器LM71、湿度传感器HS1101实现温度和湿度无线测量的电路设计方法和编程实现,该设计具有简单可靠和灵活方便的特点。
nRF9E5是一款工作频率为433/868/915MHz的智能射频芯片,该芯片采用1.9V~3.6V单电源供电,32脚QFN封装(5×5mm),发射功率为10dBm,接收灵敏度-100dBm,在低功耗时电流仅2.5μA,特别适合采用电池供电,适用于无线键盘、无线电话、无线耳机、工业无线传感器、遥控器和无线报警器等。
无线传感测量与有线传感测量相比,具有可靠性高、安装容易、结构简单、可以重复使用和系统维护方便等优点。
本设计充分利用了各器件的低功耗特点,在无线温湿度传感器中使用3.6V锂电池,不仅能延长电池的使用寿命,而且使无线数据传输更加方便灵活。
nRF9E5功能介绍
图1所示为nRF9E5的内部结构框图。nRF9E5是一片嵌入了nRF905无线收发芯片、集成增强型8051微处理器和4个通道的10位ADC,采样速率为80ksps,内含1.22V电压基准、电源管理、PWM输出、UART异步串口、SPI通讯接口、逻辑接口电路、看门够电路、多通道可编程唤醒,以及CRC检验和多点通信控制,高频电感和滤波器等已经全部内置,外围元件很少,芯片的一致性能好、稳定且不易受干扰。
nRF9E5没有复杂的通讯协议,完全对用户透明,同种产品之间可以自由通讯,内置的CRC纠错硬件电路和协议免去了软件开发人员的软件纠错编程和微控器的纠错运算,降低了无线应用的开发难度。
图1下面的EEPROM 25320为nRF9E5的外部程序存储器(图2中为U2),容量为4K字节(4096×8b),用于存储在nRF9E5上运行的应用程序。当上电时,nRF9E5通过其内部固化的引导程序(Boot loader),通过SPI接口将应用程序导入到片内RAM中运行。
无线温、湿度传感测量电路设计
利用射频芯片nRF9E5、14位数字温度传感器LM71、湿度传感器HS1101构成一款无线温湿度传感器。
LM71是国家半导体公司生产的低功耗、具有14位(含1符号位)的ΔΣADC温度传感器,测温范围为-40℃~150℃,温度分辨率为0.03125℃,测温精度在-40℃~150℃范围内为±1.5℃,电源电压为2.65V~5.5V,具有三线串行接口SPI/MICROWIRE兼容接口,容易和微处理器连接。
因此,图2中U3(LM71)的串行时钟SC、串行输入输出SI/O、片选CS分别和U1(nRF9E5)的P02、P01和P00相连,LM71、nRF9E5和单端50Ω天线的RF电路如图2所示,该电路可以工作于818/915MHz。环境温度和LM71温度传感器的输出如表1所示。
HS1101湿度传感器采用专利设计的固态聚合物结构,具有响应时间快、高可靠性和长期稳定性特点,不需要校准的完全互换性。HS1101湿度传感器在电路中等效于一个电容器Cx,其电容随所测空气的湿度增大而增大,在相对湿度为0%-100%RH的范围内,电容的容量由160pF变化到200pF,其误差不大于±2%RH,响应时间小于5s,温度系数为0.04pF/℃。
如图3所示,将该湿敏电容Cx置于555振荡电路之中,将电容的变化转换为与之成反比的电压频率信号,该频率信号可以直接被微控器采集。振荡电路的两个暂稳态输出频率变化的方波信号(图3中U4的3脚输出)的高电平时间为
输出低电平时间为
因此输出方波信号的周期为
即
EEPROM编程
nRF9E5的主程序存放在外部的串行EEPROM中,当芯片开始上电时,其内部固化的厂家引导程序通过SPI接口,将外部EEPROM中的主程序导入nRF9E5的RAM中(4K字节空间,没有被主程序占用的可作为片内RAM使用),接着执行跳转指令,开始主程序的运行。主程序需要按照表2所示的规则写入EEPROM中,其中SPEED(bit3)为EEPROM的最大读写速度,0为1MHz,1为0.5MHz。XO_FREQ(bit2,1,0)为nRF9E5的外接晶振的频率,000=4MHz,001=8MHz,010=12MHz,011=16MHz,100=20MHz。
nRF9E5内置8051兼容微控器,加上其本身特有的诸多控制寄存器,因此可以用MCS51系列仿真软件进行编程,最后将程序写入EEPROM中调试即可。
采用WAVE6000(伟福)仿真软件编写无线射频通讯、数据采集和数据转换程序,编译形成后缀为HEX的数据文件“XXXXXXXX.HEX”,该数据文件为文本格式:每行的第1个字符固定为“:”,表示一行的开始;第2、3个字符为本行中的指令数据个数M(16进制),M最大为20H,表示该行共M个双字节数据,2M个字符,第4、5、6、7个字符为该行的地址,第8、9个字符为“00”或“01”,其余为依次排列的2M个指令数据字符,最后2个为验证字符位。HEX文件的结束为“:00000001FF"。
采用高级编程语言Delphi 6.0在Windows2000环境下打开该数据文件,依次读出每一行数据,去掉每行的前9个字符和每一行的最后两个字符,其余的就是用户的主程序文件,将主程序文件前添加上表2中的程序头,就构成了nRF9E5的外部EEPROM的程序格式。如图4所示,通过RS232通讯、AT89C2052写入到EEPROM芯片25320中即可。
用户526022 2009-7-27 19:02