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

发布者:考古专家最新更新时间:2013-04-16 来源: dzsc关键字: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所示。[page]

系统的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分别为系统上、下层模块软件流程图。

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

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

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以下,两节电池可以使用一年半以上。

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

关键字:MSP430  nRF401  无线自动抄表系统 引用地址:一种基于MSP430和nRF401的家用射频无线自动抄表系统设计

上一篇:基于MSP430的高功率因数电源设计方案
下一篇:基于MSP430和MAX262程控滤波器的设计与实现

推荐阅读最新更新时间:2024-03-16 13:21

MSP430F169(四)——浅谈F169看门狗
什么是看门狗 在工业现场,往往会由于供电电源、空间电磁干扰或其他原因引起强烈的干扰噪声。这些干扰作用于数字器件,极易使其产生误动作,从而失去应有的控制功能,引起MSP430发生“程序跑飞”事故。若不进行有效的处理,程序就不能回到正常的状态,从而失去应有的控制功能。看门狗定时器正是为了解放这类问题而产生的,尤其是在具有循环结构的程序任务中更为有效。看门狗有一个RST管脚,用来复位。 看门狗的两种工作模式 (一)看门狗模式:看门狗模式是看门狗这个组件的主要功能,(这不是废话嘛,看门狗组件肯定是看门狗啊)提到看门狗,不得不说这个密码保护了(WDTPW watchdog timer password )任何读写操作必须通过他才能正确执
[单片机]
<font color='red'>MSP430</font>F169(四)——浅谈F169看门狗
MSP430常用加密总结
1 为什么要加密,如何加密? 当您的产品推向市场的时候,您的竞争对手就开始盯上它了,如果您的产品硬件很容易被模仿,而且您使用的MSP430单片机没有被加密的话,那么您辛辛苦苦的劳动成功就很容易成为您竞争对手的产品了,使用JTAG调试工具FET虽然可以将程序下载到芯片内部,但只有使用专业编程器能够防止程序被窃取。 2 JTAG、BSL、BOOTLOADER、熔丝的区别和关系是什么? JTAG接口能够访问MSP430单片机内部所有资源,通过JTAG可以对芯片进行程序下载、代码调试、内存修改等等,通过JTAG还能烧断加密熔丝,熔丝一旦被烧断,JTAG接口绝大部分功能失效,就再也不能通过它进行编程了。 BSL接口是利用芯片
[单片机]
MSP430F149的看门狗定时器
程序: //看门狗定时器,溢出后执行中断服务函数 #include msp430x14x.h void main(void) { P6DIR |= BIT2;P6OUT |= BIT2; //关掉电平转换 (不必纠结) WDTCTL = WDT_ADLY_250; // 看门狗定时器,辅助时钟延迟250ms IE1 |= WDTIE; // 中断允许寄存器,打开看门狗定时器 P3DIR |= BIT4; // Set P3.4 to output direction _BIS_SR(LPM3_bits +
[单片机]
MSP430f149使用XT2的8M晶振输出PWM
由于需要将PWM保持在20khz来控制BUCK电路降压,同时又需要步进改动占空比,故需要TA利用8M晶振输出PWM,经测试,最大占空比频率可达4M,将频率定为20khz时,有200个步进点,BUCK输入电压为18V,每次改变占空比输出电压约变化0.1V可达到要求。 系统版XT2IN与XT2O直接连接高频晶振8M晶振,TI官方例程所给程序无使用XT2的程序(但是有开启HF XTAL的:BCSCTL1 |= XTS;)由于我们的板子8M晶振被接在了XT2IN和XT2O上,所以只能使用(BCSCTL1 &= ~XT2OFF; //打开XT2高频晶体振荡器)来打开8M晶振,之后通过(BCSCTL2 |= SELM_2 + SELS;
[单片机]
基于VB6.0的MSP430单片机与PC机串口通信设计
  串行通信已经成为计算机与其他设备进行数据交换最广泛的通信手段。主要介绍了利用MSP430 单片机的串口通信模块和VB6.0 提供的串行通信控件MSComm 实现PC 机与MSP430 单片机的串行通信,并着重阐述了在VB6.0 环境下实现的主要过程。   1 引言   随着计算机技术的不断发展,计算机应用在其发展过程中逐步形成两大分支,一是通用计算机,PC 机为代表,着眼于高速数值运算和数据处理,但实时测控能力较弱。二是嵌入式微机,以单片机为代表,着重发展测控技术,但其数值运算和数据处理能力较弱。目前,在 工业控制 以及数据采集和数据处理的大型系统中,由于PC 机软件资源丰富,人机交互方便等优点。以PC 机作为上位机,以单
[单片机]
基于VB6.0的<font color='red'>MSP430</font>单片机与PC机串口通信设计
一文读懂MSP430 SPI总线
SPI总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 许多的芯片都用这种协议通信:EEPROM、Flash、实时时钟、AD转换器、数字信号处理器等:MSP430的USART模块不仅能够实现异步模式(见:MSP430程序库《二》UART异步串口),而且支持同步串行通信(即SPI模式);其SPI支持3线、4线操作,支持主机模式和从机模式,字符长度可以7位或8位等。由于要用AD7708芯片完成AD采样,AD7708是通过SPI与其它设备通信的;本程序比较简化,
[单片机]
一文读懂<font color='red'>MSP430</font> SPI总线
MSP430中断服务函数的定义
//为了保证代码可以在IAR编译器的任何版本中都能正确得到编译,所以作以下的条件编译。 #ifdef __IAR_SYSTEMS_ICC__ //如果编译器是IAR, 那么以下将被编译。 #if __VER__ = 200 #pragma vector=USART0RX_VECTOR //在IAR2.0以上中断函数声明。 __interrupt void SPI0_rx (void) #else //在IAR2.0以下中断函数声明。 interrupt void SPI0_rx (void) #endif
[单片机]
基于RF芯片nRF401无线数传模块设计
所设计的无线数传模块由单片射频收发芯片NRF401、AT89C52微控制器和MAX3316接口芯片构成,工作在433.92/434.33MHz频段;可方便地嵌入在各种测量和控制系统中进行无线数据传输,在车辆监控、无线抄表、无线232数据通信、计算机遥控遥测系统中应用。   nRF401是北欧集成电路公司(NORDIC)的产品,是一个为433MHz ISM频段设计的真正单片UHF无线收发芯片,满足欧洲电信工业标准(ETSI)EN300 200-1 V1.2.1。它采用FSK调制解调技术,最高工作速率可以达到20K,发射功率可以调整,最大发射功率是+10dBm。nRF401的天线接口设计为差分天线,以便于使用低成本的PCB天线。它要
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved