ZHCU648B March   2019  – February 2021

 

  1.   1
  2.   说明
  3.   资源
  4.   特性
  5.   应用
  6.   6
  7. 1系统说明
    1. 1.1 终端设备
      1. 1.1.1 电表
      2. 1.1.2 电能质量监测仪,电能质量分析仪
    2. 1.2 主要系统规格
  8. 2系统概述
    1. 2.1 方框图
    2. 2.2 重点产品
      1. 2.2.1  ADS131M04
      2. 2.2.2  MSP432P4111
      3. 2.2.3  TPS3840
      4. 2.2.4  TPS25921L
      5. 2.2.5  THVD1500
      6. 2.2.6  ISO7731B
      7. 2.2.7  TRS3232E
      8. 2.2.8  TPS709
      9. 2.2.9  TVS1800
      10. 2.2.10 ISO7720
    3. 2.3 设计注意事项
      1. 2.3.1 设计硬件实现
        1. 2.3.1.1 限流器电路
        2. 2.3.1.2 28
        3. 2.3.1.3 TPS3840 SVS
        4. 2.3.1.4 模拟输入
          1. 2.3.1.4.1 电压测量模拟前端
          2. 2.3.1.4.2 电流测量模拟前端
      2. 2.3.2 如何实现计量测试软件
        1. 2.3.2.1 设置
          1. 2.3.2.1.1 时钟
          2. 2.3.2.1.2 端口映射
          3. 2.3.2.1.3 用于 GUI 通信的 UART 设置
          4. 2.3.2.1.4 实时时钟 (RTC)
          5. 2.3.2.1.5 LCD 控制器
          6. 2.3.2.1.6 直接存储器存取 (DMA)
          7. 2.3.2.1.7 ADC 设置
        2. 2.3.2.2 前台进程
          1. 2.3.2.2.1 公式
        3. 2.3.2.3 后台进程
          1. 2.3.2.3.1 per_sample_dsp()
            1. 2.3.2.3.1.1 电压和电流信号
            2. 2.3.2.3.1.2 频率测量和周期跟踪
          2. 2.3.2.3.2 LED 脉冲生成
          3. 2.3.2.3.3 相位补偿
  9. 3硬件、软件、测试要求和测试结果
    1. 3.1 所需的硬件和软件
      1. 3.1.1 注意事项和警告
      2. 3.1.2 硬件
        1. 3.1.2.1 与测试设置的连接
          1. 3.1.2.1.1 双电压连接
          2. 3.1.2.1.2 单电压连接
        2. 3.1.2.2 电源选项和跳线设置
      3. 3.1.3 软件
    2. 3.2 测试和结果
      1. 3.2.1 测试设置
        1. 3.2.1.1 SVS 和电子保险丝功能测试
        2. 3.2.1.2 电表计量精度测试
        3. 3.2.1.3 查看计量读数和校准
          1. 3.2.1.3.1 从 LCD 中查看结果
          2. 3.2.1.3.2 从 PC 校准和查看结果
            1. 3.2.1.3.2.1 查看结果
            2. 3.2.1.3.2.2 校准
              1. 3.2.1.3.2.2.1 增益校准
                1. 3.2.1.3.2.2.1.1 电压和电流增益校准
                2. 3.2.1.3.2.2.1.2 有源功率增益校准
              2. 3.2.1.3.2.2.2 偏移校准
              3. 3.2.1.3.2.2.3 相位校准
      2. 3.2.2 测试结果
        1. 3.2.2.1 SVS 和电子保险丝功能测试结果
        2. 3.2.2.2 电表计量精度结果
  10. 4设计文件
    1. 4.1 原理图
    2. 4.2 物料清单
    3. 4.3 PCB 布局建议
      1. 4.3.1 布局图
    4. 4.4 Altium 工程
    5. 4.5 Gerber 文件
    6. 4.6 装配图
  11. 5相关文档
    1. 5.1 商标
  12. 6作者简介
  13. 7修订历史记录

后台进程

图 2-10 显示了进行电压和电流采样时发生的不同事件,其中用橄榄绿色标出的项目在硬件设置(而不是测试软件)中完成。

TIDA-010037 电压和电流采样事件图 2-10 电压和电流采样事件

回顾图 2-10 中提到的过程,每个相位的新电流样本在每 OSR(此设计中为 512)个调制时钟周期准备就绪。假设 ADS131M04 器件最近一次就绪的相电流和电压样本对应于第 Nth - 1 个电流和电压样本,即 Iphx[N - 1] 和 Vphx[N - 1]。一旦新样本准备就绪,ADS131M04 就会将 DRDY 引脚置位为低电平。ADS131M04 上 DRDY 引脚的下降沿将使 MSP432 MCU 上的 GPIO 端口中断,从而触发 MSP432 MCU 上的端口 ISR。后台进程在端口 ISR 内运行。图 2-11 显示了后台进程,该进程主要处理测试软件中有严格时序要求的事件。

TIDA-010037 后台进程图 2-11 后台进程

在后台进程中,先前获得的电压样本 (Vphx[N – 2]) 和先前获得的电流样本 (Iphx[N – 2]) 会存储起来,以便稍后供 per_sample_dsp 函数使用(该函数负责更新用于计算计量参数的中间点积数量)。在存储先前获得的电压和电流样本后,通过将片选信号置位为低电平来启用与 ADS131M04 的通信。然后,将 DMA 配置为针对 ADS131M04 器件最新电流和电压样本(Iphx[N – 1] 和 Vphx[N – 1])发送请求,并接收来自 ADS131M04 的数据包响应。电流样本的请求和接收由 DMA 模块自动完成,而不是由软件完成。

图 2-12 显示了由 MSP432 MCU 的 DMA 发送的数据包,以及同样由 DMA 接收和组装的来自 ADS131M04 的响应数据包。发送和接收数据包中包含六个字,其中每个字的长度为三个字节。

TIDA-010037 ADS131M04 ADC 采样请求数据包图 2-12 ADS131M04 ADC 采样请求数据包

从 ADS131M04 器件请求 ADC 数据时,必须发送到 ADS131M04 的第一个字是命令字。测试软件不需要在典型的 ADC 样本读出期间更改 ADS131M04 的设置或读取任何寄存器,因此会向 ADS131M04 发送 NULL 命令,这使您能够无需更改器件状态即可从 ADS131M04 获取 ADC 样本。null 命令的实际大小是 16 位;但是,由于使用的是 24 位字,16 位命令必须在命令末尾填充一个额外的值 0x00。因此发送的 NULL 命令字的值为 0x000000。当 MSP432 MCU 移出命令字时,MSP432 同时将响应字移入前一个数据包的命令字。NULL 命令的响应字是 STATUS 寄存器的内容。此设计中不使用 STATUS 寄存器的内容,因此从 ADS131M04 接收到的第一个字将被忽略。

写入命令字后,需要对每个要读取的字节执行一次虚拟写入。若要启用 SPI 时钟,便需要写入虚拟字节,这是从 ADS131M04 器件读取一个字节所必需的。每次写入虚拟字节时,都会将值 0x00 写入 EUSCIB0 的 SPI 发送寄存器。通过在写入命令字节后立即写入三个虚拟字节,MSP432 MCU 可以从 ADS131M04 的通道 0 接收 3 字节的 ADC 值。写入后续 9 个虚拟字节将分别获取通道 1、通道 2 和通道 3 的 ADC 数据。最后,写入接下来的三个虚拟字节将得到 CRC 字。CRC 字为 24 位;但是,请注意实际的 CRC 只有 16 位,这些位对应于 24 位字的最高有效位。因此,在解析 CRC 字时,不需要最后一个字节(但请注意,为了使 ADS131M04 正确运行,仍必须发送虚拟写入的这个零填充字节)。

图 2-12 显示了每当 DMA 接收到整个 Iphx[N - 1] 数据包时,便会自动调用 DMA ISR。在 ISR 内,CRC 基于五个命令和 ADC 字计算(共计 15 字节)。此 CRC 计算使用 MSP432 MCU 的 CRC 模块。CRC 模块使用偶数个字节,但总共有 15 个字节可用,因此 CRC 模块用于前 14 个字节。最终 CRC 在软件中根据 CRC 模块结果和第 15 个字节计算。请注意,只需要对最后一个字节进行软件 CRC 计算,因为在本设计中字大小选择为三个字节。如果字大小改为选择两个字节或四个字节,则不需要进行软件 CRC 计算,这是因为有偶数个字节。图 2-13 展示了使用 MSP432 CRC 模块和软件用 15 个字节计算 CRC 的代码片段。

TIDA-010037 使用 MSP432 MCU 的 CRC 模块基于奇数个字节计算 CRC 的代码片段图 2-13 使用 MSP432 MCU 的 CRC 模块基于奇数个字节计算 CRC 的代码片段

计算出数据包的 CRC 后,会将其与从 ADS131M04 发送的数据包中获得的 CRC 进行比较。发送的 CRC 根据 ADS131M04 数据包的字节 16 和 17 进行解析(字节 18 是 CRC 字的一部分,进行了补零,因此不用于解析)。如果计算出的 CRC 和解析的 CRC 相等,则 CRC 校验通过,并解析 ADC 数据以获取时间 N - 1 处的电压和电流样本值。解析的电压和电流样本被置于临时缓冲区中,以便在下一次中断调用 per_sample_dsp 函数时使用。在 DMA 中断结束之前,片选线被再次上拉回高电平,以便在下次来自 ADS131M04 的电流样本准备就绪之前正确复位 ADS131M04 通信。

在使用 DMA 从 ADS131M04 接收最新电流样本的同时,ADS131M04 对下一个电压样本 (Vphx[N]) 和电流样本 (Iphx[N]) 进行采样,并且测试软件还会对从 ADS131M04 获得的最后一个电压样本 (Vphx[N – 2]) 和电流样本 (Iphx[N – 2]) 执行逐样本处理。可使用这种逐样本处理方法来更新用于计算计量参数的中间点积。处理样本后,后台进程使用“per_sample_energy_pulse_processing”执行电能比例脉冲的计算和输出。一旦 per_sample_energy_pulse_processing 完成,测试软件便会从端口 ISR 退出。