一种基于nRF9E5的无线监测局域网的系统
摘要:给出了用无线收发模块nRF9E5设计的局域网系统,以实现对有毒气体浓度进行无线监测的系统设计方案。阐述了该系统硬件和软件的设计方法。文章通过构建合理的通讯协议,有效地解决;了节点间的通讯寻址问题,保证了通讯的可靠性。
当今,无线技术正快速应用于许多产品之中,与有线技术相比,无线技术主要具有成本低、携带方便、省去布线烦恼等优点。特别适用于工业数据采集系统、无线遥控系统、小型无线网络、无线RS485/232数据通信系统等。本文给出了一种用于监测有毒气体的无线局域网络系统方案设计方案。
1 系统的功能及组成
在石华工业中,为了有效监测空气中H 2S、CL 2等有毒气体的浓度,把隐患消灭于萌芽状态,通常需要设计许多无线网络检测系统。图1所示就是一种多任务无线通讯局域网示意图。该系统是由一台中央监控设备CMS(center monitering system)和多台远程终端节点RTN(remote terminal nodes)组成的多任务无线通信网络。其中的中央监控设备CMS主要由无线收发模块Nrf9e5、报警装置和上位机组成,能够接收远程各节点信息,监控节点运行情况,并能根据上位机要求发送命令字到指定节点。各节点RTN主要由有毒气体传感部分和无线接收模块Nrf9e5组成,能够采样并发送数据到CMS,接收并执行CMS发送来的指令,并且可作为中转站间接传输数据。
在CMS工作信号覆盖范围内,各节点和CMS直接通讯,如图中RTN100、RTN200和CMS之间可以直接通讯。在CMS工作信号覆盖范围外,各远程终端节点其上级相应节点和CMS间接通讯,如图中RTN121、RTN122依次通过RTN120、RTN100和CMS来进行间接通讯。采用这种方法,可将系统扩展成一个非常大的无线居域网络。
2 硬件设计
2.1 硬件电路连接
中央监控设备(CMS)电路主要包括监控计算机、接收模块nRF9E5及报菟装置,具体电路如图2所示。图中,把nRF9E5的P0.1、P0.2口配置成SCI模式,外接MAX232转换电路,和上位机进行串行通讯;P0.3配置成普通端口,外接报警装置。
该系统中的远程终端节点(RTN)电路主要由射频模块nRF9E5和气体变送器GT-130/H2S-1组成。ADC模块选用内部参考电压,气体传感装置能够输出4~20mA电流,经75Ω电阻转换为0.3~1.5V电压信号,来作为ADC模拟量输入信号。电路连接和图2基本相似,区别是断开图2中的P0.1-P0.3端口,将变送器输出端和nRF9E5的AIN0引脚相连接。
2.2 无线收发模块nRF9E5
nRF9E5是挪威Nordic公司的产品。该芯片采用+3VDC供电,面积为5mm5mm,共有32个外部引脚,包括UART和SPI等功能。内部集成了nRF9E5射频模块、8051微控制器及A/D转换模块,具有433/868/915MHz三波段载波频率。采用GFSK调制,抗扰能力强;支持多点通讯,数据传输速率高达0.1Mbps。具有特有的ShockBurst信号发射模式和发射信号载波监测功能,可有效降低功耗电流、避免数据冲突。内部寄存器为用户提供了基础的通讯协议,便于用户扩展,缩短了开发周期。外围电路连接极为简单,只需要一个晶体管和一个电阻,nRF9E5输出端ANT1、ANT2外接50Ω单天线终端装置,信号有效发射距离无遮挡时可达800m以上,有建筑物等遮挡时可达350m左右。
3 软件设计
3.1 通讯协议
CMS可与在其信号覆盖范围内的RINT进行直接通讯,在其工作信号覆盖范围之外的RIN通过其它节点转载信号实现与CMS的间接通讯。同时,CMS能够根据接收的数据内容判断信号来自哪一个RTN节点。为此,需把系统通讯协议设置为下列格式:
Prea-mble | Add | Payload | CRC | ||||
Jid | Mid | Yid | X | Data |
Preamble为引导字节;Add为接收机地址;Payload为有效加载数据(包括接收机识别码Jid、目的机识别码Mid、源信号机识别码Yid及Data字:状态字X=1时Data为命令字,X=0时Data为浓度数据);CRC为校验码。
nRF9E5处于发射模式时,Add和Payload由微控制器按顺序送入射频模块nRF9E5,Preamble和CRC由nRF9E5自动加载。接收模块时,nRF9E5先接收一数据包,分别验证Preamble、Add和CRC正确后,再将Payload数据送入微控制器处理;当接收机微处理器判断Payload中的Payload中的Jid和本机识别码号一致时,继续处理后继数据,否则放弃该数据包。
要实现上述数据通讯功能,需进行nRF9E5初始化配置和用户程序设计。
3.2 nRF9E5子系统初始化配置
在nRF9E5模块中,特殊寄存器RF-Register包含10个字节,其配置字内容可决定射频模块nRF9E5的工作特性,表1列出本设计中特殊寄存器RF-Register需要配置的基本参数(文中未述及的参选用默认值)。
表1 RF-Register寄存器部分字节配置说明
名 称 | 设定值(二进制) | 说 明 |
CH-NO | 0 0111 0101 | 载波频率为868.2MHz |
HRFEQ-PLL | 1 | 设定PLL工作模式 |
PA-PWR | 11 | 输出功率为10dBm |
RX-PW | 001 | 接收地址字长为1byte |
RX-PW | 0010 0000 | 接收有效字节长度8bytes |
TX-PW | 0010 0000 | 发射有效字节长度8bytes |
PX-ADDRESS | 1110 0111 | 接收地址名0xE7h |
UP-CLK-EN | 0 | 外部时钟禁止 |
XOF | 011 | 晶体振荡器16MHz频率 |
CRC-EN | 1 | 使能CRC校验功能 |
CRC-MODE | 0 | 使用8位CRC校验码 |
系统通讯时,各模块处于正常接收状态:收发使能位TRX-CE=1且方式选择位TX-EN=0。在运行过程中,可由用户编程修改TX-EN=1使各字节工作于发射状态。
本系统设定CMS和所有RTN的地址ADD均为0xE7h,这样,系统内CMS和所有RTN之间可以互相通讯,从而避免了其它系统的干扰。各节点识别码长度根据网络节点级数和容量配置,继承关系分配地址;通讯时,通过对目的机代码Mid和接收机代码Jid的比较和识别,不断修改接收机代码Jid,直至Jid=Mid为止,实现节点间的自动双向寻址。以图1中系统3级路径为例,所有模块识别码长度均配置为12位,CMS识别码配置为0x000h。各节点识别码按照上下级路径。继承关系分配地址:第一级节点识别码以高四位区分,其余位均为0,如节点0x100h与0x200h;第二级节点识别码高四位继承其上一级节点高四位识别码,以中间四位区分,如RTN100的下级节点0x110h与0x120h;第三级节点继承其上一级节点的前八位识别码,以低四位区分,如0x120h的下级节点0x121h与0x122h。通讯时,即按照这种上下级路径关系传输数据。采用上述方法,三级路径最大可以配置四千多个节点,能组成一个比较大的无线局域网络。
4 微处理器用户程序
该系统的处理器用户程序包括CMS用户程序和RTN用户程序,而它们又分别包括主程序和中断子程序两部分。
4.1 CMS用户程序
a.CMS主程序
(1)当Flagi=1时,CMS对接收到的数据进行存储和排序记录,并在气体深度超标时,使报菟输出端P0.3=1;最后将Flagi清0。
(2)当Sleep=1时,由CMS发送命令字(X=1)到指定节点,最后将Sleep清0。
此时,Mid为目的机识别码,Yid=0x000h,接收机识别码Jid可由CPU根据Mid高四位自动产生。
b.CMS中断子程序
(1)串行通信口接收计算机命令信号,置Sleep=1。中断优先级为最高。
(2)RD1=1时中断CPU,接收某节点RTNi信号,置标志字Flagi=1。中断优无级为次高。
(3)用定时器2监控各节点通讯记录:若在定时器2的一个定时周期T2内判断出某节点一直没有发送信号,则会记录相应警告信息,直至手动清除。其中,T2为系统中各节点和CMS通讯一次的最大迟滞时间,中断优先级为次低。
(4)定时器1定时中断CPU,将内存数据送上位计算机显示处理,中断优先级为最低。
4.2 RTN用户程序
a.RTN主程序
当Flagi=1时,CPU对Payload作如下处理后,最后将Flagi清0。
图2
(1)若接收的数据包中,Mid=0x000h,Yid为RTNj识别码,则数据来自下级节点RTNj,需净数据继续向CMS方向转发。
在转发数据包中,Jid内容由CPU对本机识别码的四位识别位清0获得,其它数据不变。
(2)若接收的数据包中,Mid为下级节点识别码,Yid=0x000h,则数据来自CMS,需将数据继续向下级路径转发。
在此转发数据包中,Jid内容由CPU将本机识别码和目的机识别码比较获得。
(3)若接收机的数据包中,Mid为本机识别码,判断X=1时执行命令字,作相应处理。
b.RTN中断子程序
(1)ADC转换结束标志EOC=1时产生中断,提醒CPU将Add、Jid、Mid、Yid、X=0和气体浓度Data依次送入nRF905模块,准备发射。最后将EOC清0,并重新启动ADC转换器。中断优先级为低。
(2)在RTNi中,RD1=1时产生中断,CPU读取nRF9E5的数据,若Payload中Jid为本节点识别码,存储数据并置Flagi=1;否则将Payload丢弃,Flagi不变。中断优先级为高。
此时,Add=0xFFh,Mid=0x000h,Yid为本机识别码。Jid内容由CPU对本机识别码的四位识别位置0获得。
5 总结
本文根据nRF9E5的工作特点,通过构建新的通讯协议,将其应用于多点气体浓度无线检测网络系统。此方案硬件电路连接简单,易于调试,各节点编程具有通用性,适用于较大范围内的数据测量。将系统信号采样部分稍加改造,可以应用于智能家庭、温度、湿度采集远程抄表等多种领域,因此,具有较高的实用推广价值。
评论