利用智能射频芯片nRF9E5设计无线温湿度测量电路
2.2 湿度的测量
图 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所示。
图3:频率输出振荡电路。
HS1101湿度传感器采用专利设计的固态聚合物结构,具有响应时间快、高可靠性和长期稳定性特点,不需要校准的完全互换性。HS1101湿度传感器在电路中等效于一个电容器Cx,其电容随所测空气的湿度增大而增大,在相对湿度为0%-100%RH的范围内,电容的容量由160pF变化到200pF,其误差不大于±2%RH,响应时间小于5s,温度系数为0.04pF/℃。
表2:外部EEPROM程序存储格式。
如图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。
图4:上位机的EEPROM读写原理框图。
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中即可。
评论