基于nRF905的无线水表自动抄表系统设计

时间:2012-06-25来源:网络

3.2 软件设计
3.2.1 无线通信协议
当nRF905工作在接收模式时,引入的数据包地址与器件自身地址相同时,才可以继续接收下面的数据,发送的数据还要遵循一定的数据格式,如表1所示。

b.JPG


Addr为发送单元地址:Payload为有效加载数据(包括OffsetAdd偏移地址、RID发送机识别码、Data数据);最后为CRC校验码。Addr包含4个字节,OffsetAdd为一个字节,RID包括4个字节,Data有7个字节(包括发送机类型码、发送机状态、倍率和4个字节的水表计数值)。故需要配置nRF905接收和发送数据宽度为14字节。
接收时,地址匹配后,nRF905先接收一数据包,分别验证OffsetAdd、RID和CRC正确后,再将Payrload数据送入微控制器处理;当接收机微处理器判断Payload中的RID有效时,继续处理后续数据,否则放弃该数据包,如果数据合法,最后将数据存放在偏移地址为OffsetAdd的EEProm存储器中。
3.2.2 无线模块初始化
在nRF905模块中,特殊寄存器RF-Register包含10个字节,其配置字内容可决定nRF905的工作特性,表2列出本设计中特殊寄存器RF-Register需要配置的基本参数。

c.JPG


系统的通信模块器件工作在433 MHz频段,选用432.4MHz的中心频率,输出功率设置为nRF905所允许的最大功率+10 dBm,以确保通信果。允许自动产生CRC校验码,以减小CPU工作负担。系统通讯时,各模块处于正常接收状态,收发使能位TRX_CE=1且方式选择位TCX_EN=0。在发送数据条件符合后,可由用户编程修改TX_EN=1使各字节工作于发射状态。
设定接收器和所有发送单元的地址Addr均为OXc5h,这样,整个系统内接收器和所有发送单元之间可以互相通讯,其它频段和其它地址的数据包则不会被接收,从而避免了其它系统的干扰。
3.2.3 功能需求设计
1)节电设计
为了达到电子模块能够使用6年以上的目标,除了使用大容量锂电池之外,还需要在软件方面进行降低功耗的设计。
首先要降低CPU部分的功耗,CPU有三个耗电大户有:第一大户是悬空的输入脚,第二大户为引脚弱上拉时IO口接地或被置为低电平,第三大户为BROWN OUT DOWNRESET(电压过低复位)功能开启。在CPU睡眠时,要将没有使用的CPU引脚设为输入模式并上拉,将被占用的CPU引脚设为输入模式或置为某一固定的电平,保证与其电气连接的部分没有电流消耗。由于系统电压过低后会报警,提醒用户电量不足,所以在编程时将电压过低复位功能关闭掉,可以节省很大的电能消耗。
通信模块是最耗电的部分,系统上电,所有初始化工作完成后,CPU则进入睡眠状态,同时将nRF905芯片的PWR_UP引脚置0,关闭其电源,当CPU被计数中断唤醒后,会查询是否达到数据发送条件,若符合条件则将PWR_UP引脚置1,打开通信模块电源,在处理完数据发送任务后,整个系统重新回到低功耗模式。
2)水表计量及故障检测
水表计量是RB6和RB7两个CPU引脚通过中断方式采集水表的发送脉冲,每当两个引脚先后经历一次电平高低变化,则完成一次正常计数采集;若两个引脚同时为0,则水表脉冲计数器处于强磁状态,CPU会记下此刻状态并发送到接收器;若某个脉冲为尖峰脉冲,没有达到一定的脉冲宽度值,则视为干扰。
每隔一定时间系统开启AD功能,监测电源电压,一旦电池电压值跌落到一定程度则启动报警装置,通知用户电量不足,并将低电压状态发送到接收器通知管理员更换设备。
3)数据可靠性设计
系统初始化要首先检测EEProm存储器中的数据是否在正常范围内,若正常则加载,否则系统会使用某一默认值。接收器在每次接收到数据后都会和上一次数据进行比较,符合条件才会将EEProm数据更新。
另外,在通信协议中,指定了频段和地址匹配保证通信可靠,数据包中的ID号检测和校验码验证保证通信数据的可靠性。

4 结束语
文中根据nRF905的工作特点,通过构建新的通讯协议,将其应用于无线水表自动抄表系统,此方案硬件电路连接简单,易于调试,各节点编程具有通用性。系统最终测试达到了预想的性能指标,在正常工作状态下电子模块的电流消耗小于1μA,系统对通信可靠性和数据安全性也进行了充分的考虑。将系统信号采样部分稍加改造,可以应用于智能家庭、智能楼宇、温\湿度采集、远程抄表等各种近距离无线数据传输领域,因此,具有较高的实用推广价值。

1 2 3

关键词: 系统 设计 自动 水表 nRF905 无线 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版