一种基于MSP430和nRF401的家用射频无线自动抄表系统设计
向抄表中心返回异常信号。
下层模块收到上层模块发来的抄表命令,首先检查地址。如果地址不符,说明命令是发给其它模块的,则丢弃命令,继续等待。数据正常接收完毕后,模块按照与仪表的协议检验数据,数据出现错误,则重新向仪表发送命令,如果正确则向上层发送数据,之后重新进入等待状态。
MSP430F123只有一个串口,而上下两层的模块需要两个串口。第二个串口由定时器A的捕获/比较功能实现。发送特性的实现采用比较功能将数据从输出单元的引脚移出的方法,波特率用比较数据及中断来获得。接收特性的实现采用捕获/比较功能将引脚数据经SCCIx位移入内存。
3.2 无线通讯协议
本系统是一个简单的点对多点通讯,所以通讯协议分为三层即可。第一层为物理层,由nRF401模块硬件实现;第二层为数据链路层;第三层为应用层。
数据链路层的功能是提供可靠的无线数据传输。发送数据时,将应用层发来的比较长的数据帧拆分为短的数据帧,并加上包头和校验和,重新打包后发送出去。接收数据时,将接收到的数据解包并重新组合成完整的长数据,移交给应用层。
数据链路层的数据帧格式为:
每帧包括两个字节的起始帧头,一个字节的地址,一个字节的帧类型,一个字节的帧编号,十个字节的数据和两个字节的校验和。无线通讯容易受到干扰,一次发送的数据越长,受干扰的可能性越大。所以应该把比较长的数据分成小的数据包分别发送。本系统每个数据包的有效数据长度为十个字节,原始数据不足时用0补足。
因为nRF401是高灵敏度的,在没有进行数据传输时,它的数据输出脚会有杂波输出,这些杂波会被MCU的串口接收并处理。nRF401的ANT1和ANT2引脚是接收时低噪声接收放大器LNA的输入,以及发送时发射功率放大器PA的输出。连接nRF401的天线可以以差分方式连接到nRF401,一个50Ω的单端天线也可以通过一个差分转换匹配网络连接到nRF401。四个字节的0xCC加一个字节的0xF0就可以确保在有效数据帧到达前双方通讯实现同步。为了区分干扰杂波与有效数据,需要数据帧加上帧头。因为干扰杂波基本是随机的,如果使用一个字节的帧头,则可能无法区分干扰和有效数据。因此本系统协议使用两个字节的帧头,为两个0x55。0x55加上起始位和停止位,实际发送的是0101010101,杂波产生连续两个0x55的概率很小很小,可以确保有效数据的确认。数据帧的类型包括抄表命令、正常返回数据、出错要求重发、仪表异常信号、正确接收确认等,用一个字节来标示以便接收方分类处理。因为将较长的数据分成短的数据帧发送,所以每帧需要一个编号,以便接收方检查是否丢帧。在十个字节的数据之后是校验和,使用16位crc校验,检验数据传输的正确性。接收方同样计算crc后与校验和比较,如果不同,即为传输中出现错误。接收方记下错误帧的编号,待全部数据发送完毕后,将错误编号返回,要求发送方重新发送这些帧。如果全部数据正常接收,则发回正确接收确认。
下层模块的应用层的功能是使仪表抄取与无线通讯相结合。对于不同的水表、电表或煤气表,可能有不同的抄取协议或抄取方法。应用层接收数据链路层发来的抄表命令,完成对仪表的抄取,并将数据打包发给数据链路层。上层模块的应用层负责与中心的链接。将中心发来的数据校验处理后转发给数据链路层,将数据链路层发来的抄表结果打包处理后发给中心。
因为协议是分层的,相邻层之间的联系只是调用发送接收函数,因此实现了各层是独立的。更换仪表或更换无线传输模块所需做的改动都不会影响其它层,提高了系统的灵活性。
4 系统的低功耗设计
系统中MSP430在等待时处于LPM1状态。在此状态下,Vcc=3V时工作电流低于50μA。系统中的485芯片使用MAXIM公司的MAX3485,在关断模式下,所需电流小于1μA。系统低功耗设计的重点是nRF401的控制。当它处于接收状态时,工作电流为10mA左右,如果始终处于接收状态,整个系统的功耗就会过大,电池的电量将会很快耗荆所以应尽量使nRF401处于休眠状态。但是休眠状态中的nRF401是无法收到数据的。为了解决这个矛盾,可使nRF401间歇性地工作在接收状态。nRF401从休眠到接收状态的转换时间为3ms,所以处于接收状态的时间不能少于3ms;因为nRF401处于接收状态,并且空中无有效信号时,会有杂波干扰,所以正常唤醒至少需要收到两个字节的唤醒码。因为本系统使用9600的波特率,发送两个字节,加起始位与停止位共20bit。所以接收时间为2.08ms。为了确保能够唤醒,应再适当延长。本系统使用8ms。处于休眠的时间因仪表抄送反映速度的要求而定。如仪表反映时间要求不严格,可加
- μC/OS-Ⅱ在MSP430F149上的移植(03-01)
- MSP430与I2C总线接口技术的研究(06-14)
- 基于MSP430单片机的超声波倒车雷达监测报警系统设计(08-14)
- 2010年中国(成都)电子展胜利闭幕(08-15)
- 基于MSP430单片机的电子汽车限速器的研究(08-20)
- 基于MSP430的微功耗数据采集系统的开发应用(10-16)