MBus协议详解(四)

在前面关于MBus协议的描述中,个人觉得在描述TSS721部分存在不容易理解的地方,总觉得还可以说的更清楚点,在实际使用中我又发现TSS721的一款替代芯片,在这里作个详细的说明,可以加深对MBus协议实现的理解和TSS721部分的理解。

        MBus协议详解(四) - 北极星 - xiebingsuccess的博客  2013年9月10日 – 推动高能效创新的安森美半导体(ON Semiconductor,美国纳斯达克上市代号:ONNN)推出一款新的集成从收发器,用于双线式仪表总线(M-BUS)从设备及中继器。NCN5150提供全部必需功能,符合描述远程抄表M-BUS应用物理层要求的EN 13757-2和EN 1343-3标准,用于供暖及冷气表、电表、水表和燃气表等多能仪表应用。NCN5150提供达38,400波特(baud)的通用异步接收器/发射器(UART)通信速度,包含达2个单位负载(SOIC封装版本)或6个单位负载(QFN封装版本)的可编程功率等级,以集成的3.3 V低压降(LDO)稳压器用于外部电路。低内部能耗使应用中传感器能够获得更多电能,而低压总线工作(低至9.2 V)令其可在扩展型M-BUS网络中工作。NCN5150提供SOIC-16及QFN-20封装选择。SOIC-16与当前市场上的器件引脚对引脚兼容,但提升多种性能。QFN封装的尺寸非常适用于越来越多的空间受限型应用。NCN5150采用安森美半导体最新的混合信号技术设计,强固且提供-40 °C至+85 °C的宽工作温度范围,使其非常适用于此市场应用中常见的多样化但通常不可预测的工作环境。除了具有极性独立的特性外,其它关键特性包括掉电保护功能、快速启动,并能够配合从总线或外部电源为从设备供电。

一、引脚说明

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 二、功能框图

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 MBus协议详解(四) - 北极星 - xiebingsuccess的博客

                上表说明了其最低工作电压可以达到9.2V。 

三、功能说明

        NCN5150在MBUS协议中是作为从收发器(slave transceriver),总线的连接完全是极性无关的。这种收发器在从主从通信到TTL电平的UART通信方向上是电压调制,在其它方向上是通过转换UART电压电平到总线电流的调制方式。NCN5150内部集成了一个电压稳压器,通过这个电压稳压器可以利用从总线上吸取的电流,还有一个电源失败提前警告功能。支持外部电源供电,其IO高电平能够被设置以此来匹配从设备的传感器电路。

MBus协议:

  M-BUS是一种用于效用表和传感器通信和供电的欧洲标准。由主到从的通信是通过电压电平信号实现的。当处于空闲状态或者传输一个逻辑1(mark)的时候,主设备将提供一个36V的电压到总线上。当传输一个逻辑0(space)的时候,主设备将总线电压降低到24V。由从到主的通信是通过电流调制实现的。在总线处于空闲状态或者从设备传输一个逻辑1(mark)的时候,从设备将从总线上吸取固定的电流。当传输一个逻辑0(space)的时候,从设备将在固定消耗总线电流的基础上额外再消耗15mA左右的总线电流。Mbus使用一种半双工11bit的帧格式,由1个开始比特、8个数据比特、1个奇偶比特、1个停止比特构成。MBus标准支持的通信波特率分别是300、600、2400、4800、9600、19200、38400,NCN5150支持MBus标准全部的通信速率。

总线的连接和整流:

    根据MBus标准,MBus总线接口上需要串接两个220欧姆的电阻,这样是为了防止在通信异常的情况下限制从总线上吸取的电流。由于MBus总线的连接时极性无关的,NCN5150内部一开始就通过一个快速的二极管整流桥来对总线电压进行整流。

从设备的电源提供(来自于总线端电源):

    一个从设备可以通过MBus总线供电,或者通过外部电源供电。MBus标准要求从设备从总线上吸取一个固定的电流,这个固定的电流由恒流源CS1提供,同时这个电流用于给外部的存储电容CSTC充电,这个从总线上吸取的固定的电流的大小是通过可编程电阻RIDD来确定的。从总线上吸取的固定电流可以按照1.5mA为单位增加,这个1.5mA的电流大小称为单位负载(unit load)。表5列出了可编程电阻RIDD的不同值对应的不同数量的单位负载,同时也列出了从总线吸取的电流IBUS和从STC引脚上可以吸取的电流ISTC。ISTC的值要稍微小于IBUS的值,小于的部分可以认为是NCN5150内部的功率消耗导致的。RIDD电阻的精度必须要小于1%,注意5~6个单位负载的电流不包含在MBus标准中。

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 当STC引脚上的电压达到VSTC,VDD ON的时候,LDO稳压器打开,并且在VDD引脚上输出3.3V的稳定电压,从存储电容CSTC中吸取出电流。一个最小1微法的去耦电容需要连接到VDD引脚上用于稳压器的稳定性。在STC引脚上需要连接最小容量为10微法的电容。此外,CSTC与CVDD电容大小之比必须大于9。STC引脚上的电压通过一个并联的稳压器锁定到VSTC,clamp,这个并联的钳位稳压器将消耗掉不能被NCN5150和外部电路使用的多余的电流。

从设备电源提供(来自于外部电源):

    一旦外部传感器的电流消耗大于允许的总线电流,或者是当总线电源不存在的时候仍然需要传感器保持运行,这时就需要一个外部电源供电,比如电池供电。

主到从的通信:

        MBus从主到从的通信是通过电压电平信号,为了区别主设备传输的电压信号和其他从设备的信号在线缆电阻上引起的电压下降,mark电平电压VBUS,MARK被存储下来,并且仅仅当总线电压下降到小于VT电压电平的时候,NCN5150才会去检查通信。图8显示的是主到从通信的简单原理图,接收的数据在引脚TX和TXI上传输,在图7中按波形的方式显示。

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 一个外部电容必须连接到SC引脚上用于存储mark电压电平,这个电容被充电到VB电压。这个电容的放电比充电慢40倍,因此在主设备发送一个space期间,SC引脚上的电压只有一点的下降。CSC电容的值可以在100nf~330nf之间选择。

从到主的通信:

          MBus从设备到主设备的通信是使用总线电流调制方式,同时总线电压保存恒定。这个电流调制通过RX或者RXI引脚进行控制,如图10所示。当传输一个space的时候,电流调制将从总线上吸取额外的电流。这个电流的大小通过可编程电阻RRIS来进行设置,为了使space的电流满足MBus标准,RRIS电阻的值应该为100欧姆。图11是简化的发送原理框图。

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 电源上电时序:

    图12显示的NCN5150电源的开关时序,同时也显示了PFb引脚的作用。这个引脚用于给微控制器一个早期的总线电压崩溃的预警提示,通过这个预警提示,微处理器可以保存它的数据并且正常的关闭。电源TON和TOFF的时间通过下面的公式来计算:

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 公式中的ICC是NCN5150的内部电流消耗,IDD是外部电路从VDD或者STC吸取的电流。

由于MBus标准要求TON的时间要小于3秒,因此上面的公式可以用来计算大电容CSTC的值(比如根据一个采集器下面挂的最大水表数量,就可以估算出MBus总线上的最大的电流,再根据数据手册中VSTC,VDD ON的值就可以计算出CSTC的值)。对于一些应用,由于从总线上吸取的功率并没有被外部电路使用,因此电容CSTC的值可以设置很小。NCN5150要求STC电容的最小值为10微法,以此来确保总线的电流稳压器能够在所有情况下能稳定工作。

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 热关机(Thermal Shutdown):

           NCN5150包括一个热关机功能,当IC的节点温度变得太热的时候,将禁止发送。热关机功能仅仅当从设备向主设备发送space的时候起作用,因为这个时候会消耗大的调制电流,节点温度会升高。

四、NCN5150应用原理框图

MBus协议详解(四) - 北极星 - xiebingsuccess的博客

 在工程实践中在MBus总线上加了TVS管作为静电保护用。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
mbus通讯协议编程指的是使用mbus协议进行通信的编程工作。mbus协议是一种用于电能表和远程仪表之间进行通信的通讯协议,通过mbus协议,可以实现对电能表等仪表的读取和控制。 在mbus通讯协议编程中,首先需要了解mbus协议的通信格式和通信流程。mbus协议中定义了数据帧的结构,包括起始字节、从地址、主地址、帧类型、数据等字段。通信流程包括初始化通信、发送命令、接收响应等步骤。 在编写代码时,需要通过串口或其他通信方式与电能表或仪表建立通信连接。可以使用相应的编程语言(例如C、C++、Python等)进行编程,通过发送特定的命令来读取电能表的数据或发送控制指令。 在编程过程中,需要注意数据的解析和处理。mbus通讯协议中的数据是经过特定格式编码的,需要进行解码才能获取有用的信息。此外,还需要对通信过程中可能出现的错误进行处理,例如超时、通信中断等情况。 对于mbus通讯协议编程的应用场景,主要是在需要读取或控制电能表等仪表的场景中。例如,可以利用mbus通讯协议编程实现对智能电表的数据采集,或者通过远程控制mbus协议兼容的仪表进行操作。 总结起来,mbus通讯协议编程主要是针对电能表等仪表的通信编程,在编码过程中需要了解mbus协议的通信格式和通信流程,通过相应的编程语言实现与仪表的通信连接和数据处理。这样可以实现对仪表的读取和控制,实现相应的应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值