一种基于MSP430和nRF401的家用射频无线自动抄表系统设计

时间:2011-06-22

  摘  要:  介绍了一种基于MSP430和nRF401的家用射频无线自动抄表系统,详细地叙述了系统设计原理与软硬件的实现方法。

  传统的抄表收费方式存在许多弊端,出错率高,漏抄,麻烦,成本高,已经跟不上现代化社会的需求。自从有了自动抄表系统,中间省去了很多环节,提高工作效率,降低成本。为了在已建成的小区中方便地使用自动抄表系统,免除家庭内部重新布线的不便,设计了一个应用于家庭内部的短距离无线抄表系统。

  1 系统的总体结构

  图1为短距离无线抄表系统的总体结构,它可用于家庭内部三表或多表数据的抄送。系统下层直接与水表、电表、煤气表等连接,上层可以通过电话、以太网、GSM或GPRS等与抄表中心连接,实现数据的远程抄送。

  系统一般使用被动抄表方式。上层模块接收到仪表中心的抄表命令时,通过无线方式向下层模块发送抄表指令。下层模块接收到指令后通过485总线采集三表的数据,将数据打包后通过无线通讯芯片发送出去。上层模块收到数据后,将数据解包,发送给抄表中心。系统也可采用主动抄表,即下层模块定时采集三表数据,发送到上层模块,再由上层模块发送到仪表中心。

  2 系统的硬件实现

  2.1 系统硬件结构

  图2为系统的硬件结构。系统的MCU使用TI公司MSP430系列中的F123型,通过nRF401芯片实现无线数据收发,并通过MAX3485芯片及485总线与三表或电话、网络等连接。如果需要与232总线或仪表总线等连接,只需更换转换芯片即可方便地连接。通过液晶和简易键盘,用户可以查看三表的数据并对仪表地址进行设定。

  2.2 主要系统器件介绍

  无线通讯使用Nordic公司的单片收发芯片nRF401。nRF401是Nordic公司研制的单片UHF无线收发芯片,工作在433MHz ISM(Industrial, Scientific and Medical)频段。它采用FSK调制解调技术,抗干扰能力强,并采用PLL频率合成技术,频率稳定性好,发射功率可达10dBm,接收灵敏度为-105dBm,数据传输速率可达20Kbps,工作电压在+3~5V之间。nRF401无线收发芯片所需外围元件较少,并可直接单片机串口。

  nRF401芯片内包含有发射功率放大器(PA)、低噪声接收放大器(LNA)、晶体振荡器(OSC)、锁相环(PLL)、压控振荡器(VCO)、混频器(MIXFR)、解调器(DEM)等电路。在接收模式中,nRF401被配置成传统的外差式接收机,所接收的射频调制的数字信号被低噪声较大器放大,经混频器变换成中频,放大、滤波后进入解调器,解调后变换成数字信号输出(DOUT端)。在发射模式中,数字信号经DIN端输入,经锁相环和压控振荡器处理后进入到发射功率放大器射频输出。由于采用了晶体振荡和PLL合成技木,频率稳定性极好;采用FSK调制和解调,抗干扰能力强。

  nRF401可以通过串行接口与单片机直接相连,无需复杂的编码,所需的外围器件很少,使用简单。其电路原理图如图3所示。

  系统的MCU使用TI公司的MSP430系列,是一种具有超低功耗特性的功能强大的16位单片机。当运行在1MHz时钟条件下时,工作电流可因工作模式不同在0.1μA~200μA(2.2V)之间,工作电压为1.8V~3.6V。其高效率精简16位指令结构可以确保任何任务的快速执行,大多数指令可以在一个时钟周期内完成;它还具有语言编程的能力,可以加速软件的开发。

  本系统使用的是该系列的F123型,具有8KB+256Byte Flash Memory和256Byte RAM以及一个串口和一个定时器。

  485芯片使用MAX公司的MAX3485芯片,不需485总线传输时可工作在关断模式下,在该模式下所需的电流小于1μA。

  2.3  硬件设计中的注意事项

  射频电路部分会受到数字电路部分的干扰。天线到射频芯片的输入信号可能小于1μV,所以数字信号与射频信号强度之间的差别可以达到100万倍(120dB)。射频部分对电压的波动非常敏感,所以电源的噪声会严重影响传输性能。

  因此,射频部分电路的设计就显得非常重要。在设计中应遵循以下原则:首先一定要有一个可靠的地平面,电源地应该直接与射频部分的地相连;其次,与地平面的连接越短越好。与地连接的焊盘应该在附近设置一个过孔,并且两个接地焊盘不可以共用一个过孔。解耦电容应该尽量靠近需要解耦的引脚,每个需要解耦的节点单独使用一个解耦电容。电源要采用星形布线,即不同部分的电源线分别直接从总电源引出,并且分别解耦,如图4所示。这样可以有效地防止电源噪声的干扰。

  3 系统的软件设计

  3.1 软件流程

  系统软件分上层模块软件和下层模块软件两部分,图5和图6分别为系统上、下层模块软件流程图。

  上层模块收到抄表中心的命令后,通过射频无线通讯方式向下层模块发送命令,同时开始计时。如果下层模块没有数据返回,超时后上层模块会重新发送命令。如果超过三次仍未有数据返回,则认为是下层模块工作异常,向抄表中心返回异常信号。

  下层模块收到上层模块发来的抄表命令,首先检查地址。如果地址不符,说明命令是发给其它模块的,则丢弃命令,继续等待。数据正常接收完毕后,模块按照与仪表的协议检验数据,数据出现错误,则重新向仪表发送命令,如果正确则向上层发送数据,之后重新进入等待状态。

  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。处于休眠的时间因仪表抄送反映速度的要求而定。如仪表反映时间要求不严格,可加长处于休眠的时间,以便进一步降低功耗。本系统使用的周期为1s。上层模块抄表需要唤醒下层模块时,首先发送唤醒码,时长需要超过一个周期以确保唤醒,如图7所示。本系统使用0xFF作为唤醒码,即主机连续发送0xFF,从机收到连续两个0xFF后即保持接收状态而不进入休眠,此时计时器开始工作。如此设定之后,nRF401的平均工作电流可降至250μA以下。下层模块的nRF401工作在此状态下,整个模块的平均工作电流在300μA以下,按使用两节5号AA电池计算,可以使用半年以上。上层模块由于是主机,所有的无线传输都由它发起,所以等待时nRF401可一直工作在休眠状态,整个模块的平均工作电流在100μA以下,两节电池可以使用一年半以上。

  小区自动抄表系统是未来发展的必然趋势,而对于已经建成的住宅小区的家庭内自动抄表系统的改造,无线自动抄表系统具有使用方便、灵活、无需重新布线的优点,并且价格适中。家庭内部的三表可以统一抄送。此外,本系统略加改进也可以应用于报警与安全系统和家庭自动化控制遥控装置等。


  
上一篇:一种低功耗远距离无线传输系统的设计和实现
下一篇:一种基于EZW改进算法的图像压缩方法探讨

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料