1、基于Si1000无线M-Bus通信系统设计 文章起源:物联网世界 有线M-Bus是专为家用仪表数据传输而设计总线制系统,它是一个层次化系统,由主设备、若干从设备和一对连接线组成。有线M-Bus提出满足了公用事业仪表组网和远程抄表需要,同时能够满足远程供电需求,在智能小区自动抄表系统中有广泛应用。可是有线M-Bus系统在网络布线施工过程中往往需要破墙掘地,破坏周围环境。所以无线应用给它在竞争中带来优势,易于安装和维护,不会对周围环境造成影响。无线M-Bus是专门用于水表、气表、热能表、电表和数据集中器之间数据无线传输一个通信标准,它正广泛被欧洲市场所接收。 现在大多数仪表全部是用
2、电池进行供电,所以对于低功耗要求比较高。为了延长电池使用寿命,本文选择低功耗芯片Si1000组建一个无线M-Bus通信系统,并对Si1000低功耗性能问题及在软硬件上实现进行了分析。 1无线M-Bus 无线M-Bus标准要求了仪表和集中器之间通信。图1给出了一个简单无线M-Bus通信系统,其中集中器作为主节点,仪表作为从节点。 主节点和从节点之间通信,定义了3种不一样通信模式: ①S-mode静止模式。S1-mode是从仪表到其它系统单元单向通信;S1m-mode如同S1,不过数据采集装置不能进入低功耗模式;S2-mode是仪表和其它系统单元之间双向通信。 ②T-mod
3、e频繁传送模式。T1-mode是从仪表到其它系统单元单向通信;T2-mode是仪表和其它系统单元之间双向通信。 ③R-mode是频繁接收模式。R2-mode是仪表和其它系统单元之间双向通信。 当仪表能够和集中器直接进行通信时,其它系统单元就是图1中集中器。可是在实际应用中,从节点仪表有时不能直接和主节点集中器进行通信,那么就需要路由节点来转接它们之间数据,此时系统单元就是高性能网关。 2无线M-Bus收发系统设计 2.1无线M-Bus收发系统原理 仪表抄读无线收发系统原理框图图2所表示。无线数据收发由无线微控制器Si1000实现。主节点Si1000内部发送模块将数据进行编码
4、处理,以特定格式经天线发送给接收模块。从节点Si1000内部接收模块接收到有效数据后,Si1000内部微处理器经过扩展接口读取外部仪表数据,并进行对应调整、转换处理后经过射频发送给主节点。主节点经过GPRS和集抄中心进行通信。 因为采取是无线微控制器,主/从节点发送/接收模块不需要使用传统MCU+RF模块设计方法,只需要一片Si1000就能够完成射频通信。 2.2射频部分 Si1000作为Si10xx系列组员之一,在极精简5 mm×7 mm封装中结合了8051内核、工作频段为240~960 MHz高穿透力EZRadioPRO RF收发器、64 KBFlash和10位ADC.Si
5、1000系列提供优越RF性能,含有最高输出功率、接收灵敏度和最低功耗唤醒转换等特征。该无线微控制器在工作模式下有最低电流消耗(160μ/MHz),在休眠模式下,以内部低频振荡器(LFO)作为频率源RTC工作时,消耗电流低至315nA.在深度休眠模式下,仅需25 nA工作电流,且不会丢失RAM数据。图3给出了射频部分硬件原理图。 从节点中,仪表和芯片Si1000UART串口引脚P0.4/TX和P0.5/RX相连。主节点芯片Si1000UART串口引脚P0.4/TX和P0.5/RX和集中器进行连接,集中器内部MCU串口经过RS232和GPRS模块相连,借助移动网和Internet实现数据远
6、程传输。图中可编程负载电容是可集成,L1~L6和C1~C5值是由频率带宽、天线阻抗和供给电压决定。 无线收发模块通信是以数据包形式发送,无线发送程序负责写入数据,参考无线M-Bus通信协议,为数据加上前导码、同时字、数据载荷长度及CRC校验字节,形成数据包将其发送出去。为确保接收到数据正确性,无线接收程序负责接收数据包并检验CRC字节。 2.3无线M-Bus协议栈实现 协议栈图4所表示。物理层定义了位是怎样编码和传输、RF调制解调器特征(码率、前导码和同时字)和RF参数(调制、中心频率和频率偏移)。物理层是经过硬件和嵌入式软件结合来实现,EZRadioPRO实现了全部RF和调制解调
7、器功效。MbusPhy.c模块提供SPI接口、编码/解码、块读/写和数据包处理,而且管理收发器状态。 无线M-Bus数据链路层是在MbusLink.c模块上实现。M-Bus应用程序编程接口由公共函数组成,这些公共函数能够从根本程应用层调用,MbusLink模块也实现了数据链路层。数据链路层要求了数据格式,为数据加上头文件和循环冗余校验,而且将数据从应用程序TX缓冲区复制到MbusPhy TX缓冲区。 Si1000射频芯片为发送和接收提供了一个64字节FIFO.在数据链路层实现了数据包发送和接收,数据包发送和接收步骤图图5所表示。 在发送时,计算编码字节总数。假如编码字节总数
8、包含前导码)小于64字节,那么将整个数据包写到FIFO,而且只有包发送中止有效。大多数短包将在一个FIF0转移中被发送。假如编码字节数量大于64字节,那么需要数次FIFO转移发送数据包。将前64个字节写到FI FO,包发送中止和TX FIFO几乎空中止有效,把TXFIFO几乎空阈值设置为10字节。在每一个nIRQ之前,读取状态2寄存器。首先检验包发送位,假如数据包没有被完全发送,那么将编码数据接下来32字节写到FIFO,反复上述过程直到全部编码字节全部被写到FIFO,而且包发送中止发生。 在接收时,最初只有同时字中止是有效。接收同时字后,同时字中止无效且FIFO几乎满中止有效。FIFO几
9、乎满阈值设置到2字节,首个FIFO几乎满中止用于确定这两个长度字节何时已收到。一旦接收到这个长度,那么解码这个长度且计算出编码字节数目,然后将RXFIFO几乎满阈值设置到54字节,RX FIFO几乎满中止和有效数据包中止有效。在接收到一个有效数据包中止后,MCU等候接收FIFO几乎满中止,然后从接收FIFO读取32字节。反复上述过程直到全部字节有效载荷被接收。在CRC错误情况下,MCU将复位接收FIFO并丢弃数据包。 3无线M-Bus系统低功耗实现 为了延长电池使用寿命,Si1000在工作过程中并不是一直运行。当没有数据要发送时,Si1000处于休眠状态,其内部MCU和射频全部是关闭,
10、只有定时器在工作。经过一定时间后,内部MCU唤醒侦听载波,判定是否有数据需要它来发送,当有数据需要发送时,Si1000发送数据。发送数据完成后,关闭MCU和射频。这么反复进行,只有数据发送时它才进行工作,不然一直处于休眠状态,这么就大大延长了电池使用寿命。 结语 无线M-Bus是一个专门用于多种消费类型仪表远程读数或读取相关信息通信标准。将无线M-Bus和Si1000应用到多种消费仪表上,可将数据搜集并传到中心集中器,然后经过GPRS传送到集抄中心进行对应处理。这么就能够实现远程数据实时采集、巡检和监控等功效。无线M-Bus在中国应用还处于起步阶段,但考虑到它在计量应用领域优势,应用前景十分宽广。 文章出处:物联网世界






