ESP8266 WiFi物联网智能插座—电能计量-优快云博客

目录

1、芯片功能

2、性能指标

3、寄存器说明

4、UART通信协议

4.1、写操作帧格式和时序

4.2、读操作帧格式和时序

4.3、读取全电参数数据包

4.4、配置波特率

4.5、UART保护机制

5、功能说明

5.1、电流电压瞬态波形计量

5.2、有功功率

5.3、有功功率防潜动

5.4、电能计量 

5.5、电流电压有效值

5.6、过流检测

5.7、过零检测

5.8、线电压频率检测

6、应用电路

7、驱动程序

8、替代方案


WiFi物联网智能插座硬件设计的重点就是电能计量,为此单独写一篇博文讲解电量计量的设计方案和实现原理。

电量计量选用上海贝岭的BL0942芯片,最主要有原因是:硬件方案设计简单、计量精度不错且免校准、价格便宜以及软件驱动方法简单。

1、芯片功能

BL0942 能够测量电流、电压有效值、有功功率、有功电能量等参数,可输出快速电流有效值(用于过流保护),以及波形输出等功能,外围元件满足一定条件下可以免校准,当然BL0942 也是支持校准的。

芯片特性如下:

  • 两路独立的 Sigma-Delta ADC,一路电流和一路电压。 
  • 电流有效值范围(10mA\~30A)@1mohm。
  • 有功电能(1w\~6600w)@1mohm\@220V 。
  • 可输出电流、电压有效值,快速电流有效值,有功功率。 
  • 批次出厂增益误差小于 1%,外围元件满足一定条件下可以免校准。 
  • 电流通道具备过流监控功能,监控阈值及响应时间可设置。 
  • 电压/电流过零信号输出。 
  • 内置波形寄存器,可输出波形数据用于负载类型分析。 
  • SPI(最快速率支持 900KHz)/UART(4800-38400bps)通信方式(TSSOP14L 封装支持最多 4 片级联 UART通信)。 
  • 电源掉电监测,低于 2.7V 时,芯片进入复位状态。 
  • 内置 1.218V 参考电压源 。
  • 内置振荡电路,时钟约 4MHz 。
  • 芯片单工作电源 3.3V,低功耗 10mW(典型值) 。
  • SSOP10L/TSSOP14L 封装。

本项目选用SSOP10L封装,UART驱动。

2、性能指标

3、寄存器说明

本项目通过UART总线读取或设置BL0942芯片寄存器,寄存器说明如下图所示:

4、UART通信协议

BL0942芯片UART通信特性如下:

  • 通过管脚 SEL 选择,与SPI 复用,UART模式SEL=0。
  • 芯片工作在从模式。
  • 半双工通讯,波特率可软硬件配置为 4800bps,9600bps,19200bps,38400bps。
  • 8-bit 数据传输,无校验位,停止位 1 。
  • 支持数据包读取。

TSSOP14L 封装可支持器件片选功能,硬件片选地址管脚为[A2_NCS,A1],可选器件 0\~3。可支持 4 片 BL0942 挂在 UART 总线上进行数据通信,只占用 MCU 的一个 UART 接口。

在UART通信模式下,先发送 8bit 识别字节(0x58) 或(0xA8),(0x58)是读操作识别字节,(0xA8)是写操作识别字节,然后再发送寄存器地址字节,决定访问寄存器的地址(请参见 BL0942 寄存器列表),一帧数据传送完成,BL0942 重新进入通信模式。

4.1、写操作帧格式和时序

帧结构有两种,写操作帧和读操作帧。

写操作帧格式如下所示:

主机UART 写数据时序如下图所示,主机先发送命令字节{1,0,1,0,1,0,A2,A1},然后发送需要写入数据的寄存器字节(ADDR),接下来依次发送数据字节(低字节在前,高字节在后,数据有效字节不足 3 字节的,无效位补 0),最后校验和字节。

{1,0,1,0,1,0,A2,A1}为写操作的帧识别字节。假设{A2,A1}=10,器件地址 2,帧识别字节为0xAA。 

ADDR 为写操作对应的 BL0942 的内部寄存器地址。 

CHECKSUM 字节为({1,0,1,0,1,0,A2,A1}+ADDR+DATA[7:0]+DATA[15:8]+DATA[23:16])&0xFF 取反。

4.2、读操作帧格式和时序

读操作帧格式如下所示:

主机UART 读数据时序如下图所示,主机先发送命令字节{0,1,0,1,1,0,A2,A1},然后发送需要读取的寄存器地址字节(ADDR),接下来 BL0942 依次发送数据字节(低字节在前,高字节在后,数据有效字节不足 3 字节的,无效位补 0),最后校验和字节。 

{0,1,0,1,1,0,A2,A1}为读操作的帧识别字节,假设{A2,A1}=10,器件地址 2,帧识别字节为0x5A。 

ADDR 为读操作对应的 BL0942 的内部寄存器地址。 

CHECKSUM 字节为({0,1,0,1,1,0,A2,A1}+ADDR+DATA[7:0]+DATA[15:8]+DATA[23:16])&0xFF 取反。 

注意:SSOP10L 封装的器件地址是 0,即{A2,A1}=00。

时序要求如下图所示:

4.3、读取全电参数数据包

本项目读取BL0942电能计量参数,就是读取全电参数数据包。

通过命令“{0,1,0,1,1,0,A2,A1}+ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_44079197

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值