论文部分内容阅读
摘 要:在智能化建筑控制系统、粮库测温系统、冷库测温系统等多种系统中都需要测量多点温度,传统的测温系统通信方式主要是采用固定的点对点之间的有线通信,施工麻烦且费用较高。如果能在每个采集数据的终端使用无线通信的方式进行数据传送,则可以省去通信设备之间的物理线路连接,不仅简化了施工难度和系统复杂度,还可以大大地降低系统成本。
关键词:数字温度传感器 通用无线测温系统,多点测温场合短距离无线通信的需要,性能可靠成本低廉,应用前景广阔。
一、系统硬件设计
(一)设计思路
系统由无线测温节点、基站和上位机三部分构成。无线测温节点分布在各温度采集点,它们与基站之间通过射频进行无线通信,由数字温度传感器DS18B20、无线收发模块nRF24E1、天线及电池组成。系统工作过程为:无线测温节点接收到基站发出的测温命令后,通过DS18B20 温度传感器获取相应位置的温度值,无线收发芯片nRF24E1 将数据打包后经无线传输到基站,随后进入待命状态,等待下一次测温命令。基站接收各点温度后利用RS232接口将各节点温度数据传到上位机供查询和显示。
(二)温度传感器选型
DS18B20 是美国DALLAS 半导体公司推出的应用单总线技术的数字温度传感器。主要技术特性如下:温度测量范围为-55℃~+125℃,9 位~12 位A/D 转换精度,测温分辨率可达0.0625℃;其工作电源既可在远端引入,也可采用寄生电源方式产生;CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,以上特点使得DS18B20 非常适合用于精确测温场合[2]。DS18B20 采用16 位符号扩展的二进制补码读数形式提供测量的温度值,并按照0.0625℃/LSB 形式表达,其中S 为符号位。例如+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH。
(三)无线收发模块选型
在系统中,无线收发模块nRF24E1 是数据传输的核心。它在无线收发芯片nRF2401 的基础之上,将增强型8051MCU、9 输入10 位ADC、125 通道、UART 异步串口、SPI 接口、PWM 输出、RC 振荡器、看门狗和唤醒定时器全部集成到单芯片中,其室内传输距离可达30 至40 米,室外传输距离可达100 至200 米。nRF24E1 模块内集成了RADIO 模块,无线传输速度可达到1Mbit/s,在使用中,只需要一片nRF24E1 和少数的外围元件就能完成射频收发功能,大大减少了系统的体积[3]。该模块工作于2.4GHz 的ISM(工业、科学、医学)频段,有多达125 个频点,能够实现点对点、点对多点的无线通信,性能稳定,不易受外部环境影响。
二、软件实现
(一)软件系统结构
无线测温系统的软件包括:无线测温节点温度采集和数据无线传输程序,上位机的温度数据接收、筛选、显示和查询程序。系统软件结构(虚线框内为无线测温节点部分)。
(二)系统软件设计
系统软件设计主要包括基站、无线测温节点编程和上位机处理三部分,其中基站、无线测温节点都是对nFR24E1 芯片采用C 语言编程开发,上位机处理则采用VB.net 语言开发上位机程序。
1.基站主程序
首先进行初始化设置,内容包括设置串口通信参数、打开CPU 中断、打开串口中断、设置定时器T0 中断、设定中断优先级、判断调用各子程序等。没有中断时,基站处于等待状态,直到有中断需要响应时,基站进入相应的中断服务程序,向测温节点发送温度测试指令。当节点接收到命令后,基站转入接收状态,准备接收测得的温度数据。在基站接收完节点上传的温度数据后,根据中断指令上传给上位机,并保持待命状态,直到有新的中断需要响应为止。
2.无线测温节点主程序
系统初始化后,nRF24E1 向DS18B20 发初始化脉冲,接着发送Skip ROM 命令,将在线所有DS18B20 序列号存入nRF24E1 中,接着将nRF2401 置为接收待命状态,直至接收到基站测温命令即转入测温子程序,执行温度的检测。然后将测得的温度数据无线发送给基站,复位返回,等待下一次测温命令。nRF24E1 主程序。
nRF24E1 模块通过PWR_UP、CE 和CS 三个控制引脚设置nRF2401 的ShockBurst 收发方式。nRF24E1 的无线数据包格式如表1,其中前缀是由硬件自动添加;发送地址码为32~40位;CRC 校验和由内置CRC 纠检错硬件电路自动加上,可设为0、8 或16 位。无线数据包的总位数最多不能超过256 位。
(1)发送子程序。发送过程为:当测温节点有数据需要发送时,将CE 置高,接收节点地址和有效数据按时序被送到nRF2401 中;然后CPU 将CE 置低,激活ShockBurst 发送。ShockBurst 发送:RF 前端加电,完成RF 数据打包处理(加前缀,CRC 校验),数据高速发送,发送完成返回等待。
(2) 接收子程序。接收过程为:校验接收到的RF 包的地址和包中有效数据的长度;把CE 置高,激活RX,经过200μs 延时处理,监视数据信号的到来;当收到一个有效的数据包(正确的地址和CRC),自动移去前缀、地址和CRC 位。然后通过把DR1 置高来通知CPU,CPU 按时序以适当的速度把有效数据取出。在接收数据过程中,如果CE 保持高电平,当所有的有效数据都接收完,nRF2401 再次把DR1 置低,准备接收下一个数据包;如果CE 为低电平,则重新开始新的接收。
(3)测温子程序。nRF24E1 首先发出要查询的DS18B20 地址,所有的DS18B20 均响应中断,判断是否与主机查询的地址相符,地址符合的DS18B20 回送本机地址,并改变SM2,地址不符合的DS18B20 退出中断,SM2 保持1 不变。DS18B20 在与nRF24E1 建立联系后,以查询方式接收nRF24E1 接着发送的读DS18B20 序列号ROM 命令,读出在线的DS18B20 的序列号,一共八个字节并回送nRF24E1。读序列号时线上只能有一个DS18B20,否则会引起数据冲突。匹配指定DS18B20 命令先把接收到的相应测温点序列号放入单片机RAM 的指定地址中,然后向在线的多个DS18B20 发送匹配测温点的ROM 命令和已加载的序列号,只有序列号相同的DS18B20 响应匹配命令。最后单片机发送读寄存器命令,把相应DS18B20 寄存器内的数据放入单片机RAM 的指定地址中。
(三)上位机程序开发
采用 Visual Studio.net 平台下的Visual Basic.net 语言开发上位机程序实现对温度数据的处理和显示。
1.数据的接收和处理
本系统采用了时钟定时接收数据的方法,采用每1 秒触发一次的timer 控件的Tick 事件,每一秒取一次温度数据。
上位机串口经参数配置后即可通讯,每次接收到的数据包共10 个字节。
数据包处理过程如下:第一个字节代表测温点编号,第二、三个字节代表温度数据,先把这两个数据转化成16 进制的两位数,第二字节的第一个16 进制数代表温度值的正负,“0”为正,“F”为负。第二字节的第二个16 进制数和第三字节的第一个16 进制数合成为温度值的整数部分,第三字节的第二个16 进制数代表温度值的小数部分。同理,另外两个测温点的两组温度数据依次处理,最后一个16 进制数“AA”是结束标志。
2. 数据的查询和显示
上位机软件主要包括以下界面:实时温度显示界面可查询所有测温点的实时温度,直观明了;温度数据分析界面显示单个测温点的详细数据,如最大温度、最小温度、平均温度、变化速度、门限温度、超限时间等;温度曲线界面利用.NET 的GDI+方法绘制测温点的温度曲线图,动态显示温度变化;数据报表界面按照查询要求输出显示温度数据报表,并可实现打印功能。温度曲线界面如。
经实践证明,该无线测温系统不仅具有结构简单、价格低廉、精确度高等特点,而且性能稳定,适用范围广,因此特别适用于对测温精度要求较高且不宜进行有线传输的场合,应用前景十分广阔。
关键词:数字温度传感器 通用无线测温系统,多点测温场合短距离无线通信的需要,性能可靠成本低廉,应用前景广阔。
一、系统硬件设计
(一)设计思路
系统由无线测温节点、基站和上位机三部分构成。无线测温节点分布在各温度采集点,它们与基站之间通过射频进行无线通信,由数字温度传感器DS18B20、无线收发模块nRF24E1、天线及电池组成。系统工作过程为:无线测温节点接收到基站发出的测温命令后,通过DS18B20 温度传感器获取相应位置的温度值,无线收发芯片nRF24E1 将数据打包后经无线传输到基站,随后进入待命状态,等待下一次测温命令。基站接收各点温度后利用RS232接口将各节点温度数据传到上位机供查询和显示。
(二)温度传感器选型
DS18B20 是美国DALLAS 半导体公司推出的应用单总线技术的数字温度传感器。主要技术特性如下:温度测量范围为-55℃~+125℃,9 位~12 位A/D 转换精度,测温分辨率可达0.0625℃;其工作电源既可在远端引入,也可采用寄生电源方式产生;CPU 只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,以上特点使得DS18B20 非常适合用于精确测温场合[2]。DS18B20 采用16 位符号扩展的二进制补码读数形式提供测量的温度值,并按照0.0625℃/LSB 形式表达,其中S 为符号位。例如+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH。
(三)无线收发模块选型
在系统中,无线收发模块nRF24E1 是数据传输的核心。它在无线收发芯片nRF2401 的基础之上,将增强型8051MCU、9 输入10 位ADC、125 通道、UART 异步串口、SPI 接口、PWM 输出、RC 振荡器、看门狗和唤醒定时器全部集成到单芯片中,其室内传输距离可达30 至40 米,室外传输距离可达100 至200 米。nRF24E1 模块内集成了RADIO 模块,无线传输速度可达到1Mbit/s,在使用中,只需要一片nRF24E1 和少数的外围元件就能完成射频收发功能,大大减少了系统的体积[3]。该模块工作于2.4GHz 的ISM(工业、科学、医学)频段,有多达125 个频点,能够实现点对点、点对多点的无线通信,性能稳定,不易受外部环境影响。
二、软件实现
(一)软件系统结构
无线测温系统的软件包括:无线测温节点温度采集和数据无线传输程序,上位机的温度数据接收、筛选、显示和查询程序。系统软件结构(虚线框内为无线测温节点部分)。
(二)系统软件设计
系统软件设计主要包括基站、无线测温节点编程和上位机处理三部分,其中基站、无线测温节点都是对nFR24E1 芯片采用C 语言编程开发,上位机处理则采用VB.net 语言开发上位机程序。
1.基站主程序
首先进行初始化设置,内容包括设置串口通信参数、打开CPU 中断、打开串口中断、设置定时器T0 中断、设定中断优先级、判断调用各子程序等。没有中断时,基站处于等待状态,直到有中断需要响应时,基站进入相应的中断服务程序,向测温节点发送温度测试指令。当节点接收到命令后,基站转入接收状态,准备接收测得的温度数据。在基站接收完节点上传的温度数据后,根据中断指令上传给上位机,并保持待命状态,直到有新的中断需要响应为止。
2.无线测温节点主程序
系统初始化后,nRF24E1 向DS18B20 发初始化脉冲,接着发送Skip ROM 命令,将在线所有DS18B20 序列号存入nRF24E1 中,接着将nRF2401 置为接收待命状态,直至接收到基站测温命令即转入测温子程序,执行温度的检测。然后将测得的温度数据无线发送给基站,复位返回,等待下一次测温命令。nRF24E1 主程序。
nRF24E1 模块通过PWR_UP、CE 和CS 三个控制引脚设置nRF2401 的ShockBurst 收发方式。nRF24E1 的无线数据包格式如表1,其中前缀是由硬件自动添加;发送地址码为32~40位;CRC 校验和由内置CRC 纠检错硬件电路自动加上,可设为0、8 或16 位。无线数据包的总位数最多不能超过256 位。
(1)发送子程序。发送过程为:当测温节点有数据需要发送时,将CE 置高,接收节点地址和有效数据按时序被送到nRF2401 中;然后CPU 将CE 置低,激活ShockBurst 发送。ShockBurst 发送:RF 前端加电,完成RF 数据打包处理(加前缀,CRC 校验),数据高速发送,发送完成返回等待。
(2) 接收子程序。接收过程为:校验接收到的RF 包的地址和包中有效数据的长度;把CE 置高,激活RX,经过200μs 延时处理,监视数据信号的到来;当收到一个有效的数据包(正确的地址和CRC),自动移去前缀、地址和CRC 位。然后通过把DR1 置高来通知CPU,CPU 按时序以适当的速度把有效数据取出。在接收数据过程中,如果CE 保持高电平,当所有的有效数据都接收完,nRF2401 再次把DR1 置低,准备接收下一个数据包;如果CE 为低电平,则重新开始新的接收。
(3)测温子程序。nRF24E1 首先发出要查询的DS18B20 地址,所有的DS18B20 均响应中断,判断是否与主机查询的地址相符,地址符合的DS18B20 回送本机地址,并改变SM2,地址不符合的DS18B20 退出中断,SM2 保持1 不变。DS18B20 在与nRF24E1 建立联系后,以查询方式接收nRF24E1 接着发送的读DS18B20 序列号ROM 命令,读出在线的DS18B20 的序列号,一共八个字节并回送nRF24E1。读序列号时线上只能有一个DS18B20,否则会引起数据冲突。匹配指定DS18B20 命令先把接收到的相应测温点序列号放入单片机RAM 的指定地址中,然后向在线的多个DS18B20 发送匹配测温点的ROM 命令和已加载的序列号,只有序列号相同的DS18B20 响应匹配命令。最后单片机发送读寄存器命令,把相应DS18B20 寄存器内的数据放入单片机RAM 的指定地址中。
(三)上位机程序开发
采用 Visual Studio.net 平台下的Visual Basic.net 语言开发上位机程序实现对温度数据的处理和显示。
1.数据的接收和处理
本系统采用了时钟定时接收数据的方法,采用每1 秒触发一次的timer 控件的Tick 事件,每一秒取一次温度数据。
上位机串口经参数配置后即可通讯,每次接收到的数据包共10 个字节。
数据包处理过程如下:第一个字节代表测温点编号,第二、三个字节代表温度数据,先把这两个数据转化成16 进制的两位数,第二字节的第一个16 进制数代表温度值的正负,“0”为正,“F”为负。第二字节的第二个16 进制数和第三字节的第一个16 进制数合成为温度值的整数部分,第三字节的第二个16 进制数代表温度值的小数部分。同理,另外两个测温点的两组温度数据依次处理,最后一个16 进制数“AA”是结束标志。
2. 数据的查询和显示
上位机软件主要包括以下界面:实时温度显示界面可查询所有测温点的实时温度,直观明了;温度数据分析界面显示单个测温点的详细数据,如最大温度、最小温度、平均温度、变化速度、门限温度、超限时间等;温度曲线界面利用.NET 的GDI+方法绘制测温点的温度曲线图,动态显示温度变化;数据报表界面按照查询要求输出显示温度数据报表,并可实现打印功能。温度曲线界面如。
经实践证明,该无线测温系统不仅具有结构简单、价格低廉、精确度高等特点,而且性能稳定,适用范围广,因此特别适用于对测温精度要求较高且不宜进行有线传输的场合,应用前景十分广阔。