新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Si1000的无线M-Bus通信系统设计

基于Si1000的无线M-Bus通信系统设计

作者:时间:2013-05-23来源:网络收藏

  无线收发模块的通信是以数据包的形式发送的,无线发送程序负责写入数据,参考通信协议,为数据加上前导码、同步字、数据载荷长度及CRC校验字节,形成数据包将其发送出去。为保证接收到数据的正确性,无线接收程序负责接收数据包并检验CRC字节。

  2.3协议栈实现

  协议栈如图4所示。物理层定义了位是如何编码和传输的、RF调制解调器的特性(码率、前导码和同步字)和RF参数(调制、中心频率和频率偏移)。物理层是通过硬件和嵌入式软件结合来实现的,EZRadioPRO实现了所有RF和调制解调器的功能。MbusPhy.c模块提供SPI接口、编码/解码、块的读/写和数据包处理,并且管理收发器的状态。

协议栈

数据链路层是在MbusLink.c模块上实现的。M-Bus应用程序编程接口由公共函数组成,这些公共函数可以从主线程的应用层调用,MbusLink模块也实现了数据链路层。数据链路层规定了数据的格式,为数据加上头文件和循环冗余校验,并且将数据从应用程序TX缓冲区复制到MbusPhy TX缓冲区。

  的射频芯片为发送和接收提供了一个64字节FIFO.在数据链路层实现了数据包的发送和接收,数据包发送和接收流程图如图5所示。

数据包发送和接收流程图

  在发送时,计算编码字节的总数。如果编码字节总数(包括前导码)小于64字节,那么将整个数据包写到FIFO,并且只有包发送中断有效。大多数短包将在一个FIF0转移中被发送。如果编码字节的数量大于64字节,那么需要多次FIFO转移发送数据包。将前64个字节写到FI FO,包发送中断和TX FIFO几乎空中断有效,把TXFIFO几乎空阈值设置为10字节。在每一个nIRQ之前,读取状态2寄存器。首先检查包发送位,如果数据包没有被完全发送,那么将编码数据接下来的32字节写到FIFO,重复上述过程直到所有编码字节都被写到FIFO,并且包发送中断发生。

  在接收时,最初只有同步字中断是有效的。接收同步字后,同步字中断无效且FIFO几乎满中断有效。FIFO几乎满阈值设置到2字节,首个FIFO几乎满中断用于确认这两个长度字节何时已收到。一旦接收到这个长度,那么解码这个长度且计算出编码字节的数目,然后将RXFIFO几乎满阈值设置到54字节,RX FIFO几乎满中断和有效数据包中断有效。在接收到一个有效数据包中断后,MCU等待接收FIFO几乎满中断,然后从接收FIFO读取32字节。重复上述过程直到全部字节有效载荷被接收。在CRC错误的情况下,MCU将复位接收FIFO并丢弃数据包。

  3无线M-Bus系统低功耗的实现

  为了延长电池的使用寿命,在工作过程中并不是一直运行的。当没有数据要发送时,处于休眠状态,其内部的MCU和射频都是关闭的,只有定时器在工作。经过一定时间后,内部MCU唤醒侦听载波,判断是否有数据需要它来发送,当有数据需要发送时,Si1000发送数据。发送数据完成后,关闭MCU和射频。这样重复进行,只有数据发送时它才进行工作,否则一直处于休眠状态,这样就大大延长了电池的使用寿命。

  结语

  无线M-Bus是一种专门用于各种消费类型仪表的远程读数或读取相关信息的通信标准。将无线M-Bus与Si1000应用到各种消费仪表上,可将数据收集并传到中心集中器,然后通过GPRS传送到集抄中心进行相应的处理。这样就可以实现远程数据实时采集、巡检和监控等功能。无线M-Bus在我国的应用还处于起步阶段,但考虑到它在计量应用领域的优势,应用前景十分广阔。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭