基于 C2000 内置 12 位 ADC 的电能计量方案

最新更新时间:2014-12-22来源: 互联网关键字:C2000  ADC 手机看文章 扫描二维码
随时随地手机看文章

摘要

本应用笔记介绍了基于C2000内核和片内12位ADC实现软件电能计量的方案。C2000是德州仪器半导体有限公司生产的32位高性能实时微控制器,广泛应用于诸如马达驱动,数字电源等各种和功率控制相关的实时控制领域,而电能和功率的计算在以上应用中往往作为反馈控制的输入信号存在。因此,将软件电能计量算法集成到C2000平台上是实现各种实时控制SOC方案的关键。本文介绍了在C2000上实现软件计量算法的具体方法以及TI基于C2000的软件计量库的使用方法,同时给出了测试结果。

1 C2000 计量库介绍

1.1 应用背景

节能环保的倡导和推行使大部分家用电器都有对能耗统计的需求,对于这个巨大的应用市场,将C2000芯片在家电电机电源上的应用优势在最小硬件成本添加代价下兼容拓展能耗统计功能是本次设计的目的。

C2000芯片专注于电机电源控制,其优秀的性能已被业界普遍认可。本次设计是基于C2000 Piccolo 系列芯片搭建的软件测试平台,实现一套满足智能家居能耗计量的软件库,使用最小的硬件代价实现对C2000应用领域的丰富。

1.2 硬件平台及软件库介绍

本次参考设计硬件平台使用C2000 Piccolo Entry Line Control Pad, 这是TI提供的一套低成本C2000开发板,基于此平台搭建的电路进行计量库开发可以使用户在逐步学C2000开发编程的同时实现一套能耗计量软件。

此参考设计实现一个单相电能计量方案。参考设计的目的旨在实现一个完整的单相计量库。使用户在这个参考设计的基础上快速建立自己的单相计量方案。代码库提供有功功率,无功功率,视在功率,有功能量以及无功能量,同时还能测量回路电流有效值,电压有效值,功率因数,频率等参数,满足单相电能计量的需求,软件支持数字校表。

2 第二部分 计量电路及功能描述

2.1 计量代码库

调用计量库时,只需要将 emeter 目录下的所有文件都添加进来,就能够使用计量功能了。其中文件emeter-interface.h 中声明了所有对外调用接口,供程序调用,以实现校表和计量数据读取等功能。

算法库默认配置ADC转换率为3200点/秒,转换数据为12bit,数据范围0—4096,实现单相计量。函数adc_interrupt()实现对原始转换数据的运算,measurement_callback()负责进一步处理adc_interrupt()中预处理的数据。因此可以在ADC每个中断中调用adc_interrupt(adc_raw[2]),也可以缓存多个点然后再循环调用此函数,函数入参adc_raw为信号输入,adc_raw[0]为电压转换数据,adc_raw[1]为电流转换数据。

adc_interrupt(),measurement_callback()实现流程如图1所示:

图 1 计量软件流程图

计量前端电路由电压信号调理电路和电流信号调理电路组成。电压信号调理电路使用电阻器对输入工频信号分压,并经过运算放大器缓冲后送至MCU ADC输入引脚。电流互感器输出电流信号通过负载电阻转换成电压信号,经过运算放大器放大后送至MCU ADC输入引脚。推荐电路如图2所示:

图 2 CT计量前端参考电路

上图电压输入分析如下:

市电220V交流输入,经10k和15k并联再串联2M电阻分压,输入交流电压为 220V*(6/(2000+6)) = 0.66V,直流电压3.3*10/25=1.32V. 总的输入电压幅值 0.66*1.414+1.32= 2.25V, 输入信号3.3V以内。

电流互感器输入5A/2.5mA(根据互感器具体型号定),取样电阻电压2.5*10=25mV,经运放20倍放大(具体放大倍数调整R9,R10),输入交流信号25*20=0.5V, 总的输入电流幅值(10A) 1*1.414+1.6= 3.014 V, 输入信号3.3V以内。

当使用锰铜电阻获得电流信号时,电流信号调理电路形式如下:

图 3 锰铜计量前端参考电路

2.2 函数说明

emeter-interface.h 文件中声明的主要函数和宏定义如下:

int32_t get_parameter(int address)

介绍:获取各种计量参数从地址address。

入参:16位整型address 地址

出参:返回该地址上的数据。

可中断重入,可中断中使用。

uint8_t set_parameter(int address, int32_t value)介绍:设置各种校表参数和表参数到地址address。

入参:16位整型,address地址 32位有符号整型 value 值

出参:返回1 表示操作成功,返回0表示操作失败.

不可中断重入,不可中断中使用。

void measurement_setup (void)

介绍:代码库初始化,在上电之初调用。

入参:无

出参:无

void measurement_callback (void)

介绍:此函数周期性(1s)调用,以更新实时数据。

入参:无

出参:无

不可中断重入,不可中断中使用。

void adc_interrupt(int16_t * adc_raw)

Application Report

ZHCA501 – Jan 2013

介绍:可以在ADC每个中断中调用adc_interrupt(adc_raw[2]),也可以缓存多个点然后再循环调用此函数,

函数入参adc_raw为信号输入,adc_raw[0]为电压转换数据,adc_raw[1]为电流转换数据

入参:电压电流输入ADC值数值,adc_raw [0] 电压,adc_raw [1] 电流。

出参:无

2.3 地址及相应功能介绍

考虑到代码将来的改动或扩展,地址不具体定义。使用枚举变量让编译器自动生成。用户可以include的这个变量定义,使用枚举地址设置和获取数据。

int32_t get_parameter(int address)函数地址枚举变量定义如下:

获取实时数据结构

enum get_parameter_table

{

AFE_BASE_A = 0x0000,

AFE_GET_ACTIVE_POWER,

AFE_GET_REACTIVE_POWER,

AFE_GET_APPARENT_POWER,

AFE_GET_ACTIVE_ENERGY,

AFE_GET_REACTIVE_ENERGY,

AFE_GET_VRMS,

AFE_GET_IRMS,

AFE_GET_POWER_FACTOR,

AFE_GET_FREQUENCY,

AFE_GET_ENERGY_MODE,

AFE_GET_STARTUP_I,

AFE_GET_PULSE_CONST,

AFE_GET_POWER_GAINA0,

AFE_GET_PHASEOFFSET_A0,

AFE_GET_VGAINA,

AFE_GET_IGAINA,

AFE_GET_IOFFSETA,

};

以下对每个地址进行解析:

AFE_GET_ACTIVE_POWER

描述:有功功率

单位:10mW

AFE_GET_REACTIVE_POWER

描述:无功功率

单位:10mVar

AFE_GET_APPARENT_POWER

描述:视在功率

单位:10mVA

AFE_GET_VRMS

描述:电压有效值

单位:10mV

AFE_GET_IRMS

描述:电流有效值

单位:1mA

AFE_GET_POWER_FACTOR

描述:功率因数

单位:0.0001

AFE_GET_ACTIVE_ENERGY

描述:两回路中较大有功电能脉冲数

单位:依赖脉冲常数

AFE_GET_REACTIVE_ENERGY

描述:两回路中较大无功电能脉冲数

单位:依赖脉冲常数

AFE_GET_FREQUENCY

描述:系统频率

单位:0.01Hz

AFE_GET_POWER_GAINA0

描述:功率增益

AFE_GET_PHASEOFFSET_A0

描述:电压电流角差补偿

AFE_GET_VGAINA

描述:电压增益

AFE_GET_IGAINA

描述:电流增益

AFE_GET_IOFFSETA

描述:电流偏置

单位:1mA

AFE_GET_POFFSETA

描述:功率偏置

单位:10mW

AFE_GET_ENERGY_MODE

描述:能量累计模式

单位:0 绝对值累计 1 正能量累计

ZHCA501 – Jan 2013

描述:启动电流

单位:1mA

AFE_SET_PULSE_CONST

描述:脉冲常数

获取实时数据结构

enum set_parameter_table

{

AFE_SET_BASE = 0x00,

AFE_SET_POWER_GAINA0,

AFE_SET_PHASEOFFSET_A0,

AFE_SET_VGAINA,

AFE_SET_STARTUP_I,

AFE_SET_FREQUENCY,

AFE_SET_SAMPLES_10S,

AFE_SET_IGAINA,

AFE_SET_IOFFSETA,

AFE_SET_POFFSETA,

AFE_SET_ENERGY_MODE,

AFE_SET_PULSE_CONST,

AFE_SET_CAL_INIT,

};

AFE_SET_POWER_GAINA0

描述:功率增益

AFE_SET_PHASEOFFSET_A0

描述:电压电流角差补偿

AFE_SET_VGAINA

描述:电压增益

AFE_SET_STARTUP_I

描述:启动电流

单位:1mA

AFE_SET_IGAINA

描述:电流增益

AFE_SET_IOFFSETA

描述:电流偏置

单位:1mA

AFE_SET_POFFSETA

描述:功率偏置

单位:10mW

AFE_SET_PULSE_CONST

描述:脉冲常数

AFE_SET_CAL_INIT

描述:校表初始化

AFE_SET_CAL_END

描述:校表结束

AFE_SET_SAVE_FUNC描述:用户设置校表数据保存函数

3 校表介绍

3.1 校表寄存器

校表寄存器在火线零线等同对待。

功率增益寄存器

电压电流角差补偿寄存器

有功偏置寄存器

电流增益寄存器

电流偏置寄存器

电压增益寄存器

3.2 校表方法

本计量库提供了专门的接口对计量参数进行校准。校表软件在pc端运行,通过串口通讯,进行参数设置。

具体操作可参考示例代码。

3.2.1 功率增益及偏置校准

功率增益校准可以进行单点和两点校准。当单点校准时,功率偏置默认为0. 当两点校准时,功率偏置为功率相对0点的截距。校表可以通过脉冲也可以通过多次读取功率值求平均进行。两点校表公式如下:(最好取100%Ib 和 5% Ib两点)

功率增益校验公式:

EH 和 EL 为大电流和小电流时功率的误差。(如 100%Ib 和 5% Ib两点功率的误差)NH2L 为大电流和小电流的比差。(如 NH2L=100%Ib / 5%Ib = 20)

功率偏置校验公式:

PGEN 是在小电流时的标准功率值。

无功的增益和偏置类似于有功,可参考有功校准。以下是一个单点校表的例子,说明如何编写校表软件:

1. EH =0.5%

2. 原始的P1_GAINn = 10000

3. 新的 P1_GAINn+1 =10000/(1+0.5%)=9950

3.2.2 电压电流角差校准

电压电流的角度补偿使用的是软件同步。

角差补偿使用下面公式

fM是电网频率. 如果 fM = 50Hz, fm = 256×4096=1MHz, 每个步长是 0.017°,

当功率增益和偏置都校准完毕后,才对角差进行校准。步骤如下:

1. 在100%Ib点,设置功率因数为0.5L。

2. 获取当前脉冲的误差E。并将E带入下面公式

公式计算如下例:

1. E =0.3%

2. 原始的 P1_PHASEn = 6

3. 新的 P1_PHASEn+1 =10+6=16

3.2.3 电压增益校准

电压增益校准步骤如下:

1. 将电压设置成固定的电压值,如:220V

2. 如下公式

3. 设置VRMS_FACTORn+1 到功率增益寄存器,步骤如下:

1) VRMSGEN = 220V and VRMSmeasure = 219V

2) 原始的 VRMS_FACTORn = 2000

3) 新的 VRMS_FACTORn+1 =2000*220/219=2009

3.2.4 电流增益校准

此校准类同电压增益校准。

3.3 校表软件使用

3.3.1 校表软件界面介绍

图 4 校表软件界面

图4的校表软件界面分为5个模块:1,串口连接模块;2,实时数据模块;3,校正数据设置模块;4,校正数据读出模块;5、通讯数据模块。

3.3.2 实时数据模块使用

实时数据模块将电表实时测量的数据通过串口读出在校表软件中显示,实时显示数据包括:Voltage (V) 有效电压值(单位:伏特),Current(A) 有效电流(单位:安培),Active Power(W) 有功功率(单位:瓦特),Reactive Power(Var) 无功功率(单位:乏),Apparent Power(VA) 视在功率(单位:伏安),Power Factor 功率因素Frequency(Hz) 频率(单位:赫兹)。点击Read按钮,可以显示电表实时测量的数据。

3.3.3 校正数据设置模块使用

校表软件目前只支持Voltage Gain有效电压增益、Current Gain有效电流增益、Power Gain有功功率增益、Phase Offset相位偏置单点校正。默认电压校正点为:220V有效电压,电流校正点为:1A有小电流,有功功率校正点为:220W;相位偏置校正点为:220V、1A、0.5L。

校正步骤:

1,使用校表仪器输出220V有效电压,1A有效电流,功率因素1.0的信号,送至电表电压、电流输入端;

2,在Volage Gain中输入默认有效电压校正值 220, 点击Setting设置;

3,在Current Gain中输入默认有效电流校正值 1,点击Setting设置;

4,在Power Gain中输入默认有功功率校正值 220, 点击Setting设置;

5,使用校表仪器输入有效电压,1A有效电流,功率因素0.5的信号,送至电表电压、电流输入端;

6,在Phase Offset中输入offset值,一个单位对应0.02°,输入一个数值,然后通过实时数据窗口读出新的功率因素,反复校正,直至读出功率因素接近0.5即可;

7,校正完毕后,点击Save保存数据,电表将最后的校正数据保存至MCU FLASH中。

3.3.4 校正数据读出模块使用

校正数据读出模块可以通过串口将电表FLASH存储的V Gain,I Gain,Phase Offset,P Gain校正数值的读出。

3.3.5 通讯数据模块使用

通讯数据模块实时显示串口收发的数据。设置过程中如果出现“Time out!”提示,表示连接超时,应当检查通讯线路连接,然后重新发送命令。校正数据设置成功后,通讯数据模块提示“Set successful!”。通过按键Clear Logs,可以清空通讯数据窗口历史数据。

4 结论

4.1 硬件平台

本方案在C2000F280270 Control Pad上进行搭建了测试平台,并在标准的电能表测试设备上进行了精度测试。图5为实际测试的样机:

图 5 测试样机

4.2 软件资源占用

本方案占用的C2000资源如下表所示。

4.3 测试数据

本方案测试精度如下:

电压电流频率

有功功率和无功功率:

功率因素:

5 参考文献

[1] TI. TMS320F28027/28026/28023/28022/28021/28020/280200 Piccolo Microcontrollers

[2] Kes Tam. Current-Transformer Phase-Shift Compensation and Calibration.

[3] Percy Yu. MSP430AFE253 test report for China State Grid specification.

关键字:C2000  ADC 编辑:探路者 引用地址:基于 C2000 内置 12 位 ADC 的电能计量方案

上一篇:高速无线通信系统设计中的混频器和调制器
下一篇:基于SOPC的雷达采集和图像显示系统

推荐阅读最新更新时间:2023-10-12 22:50

选择用于电机控制应用的模数转换器
设计师必须解决电流电压监控、光编码器反馈和旋转变压器――数字转换等难题         在电机控制应用中,设计师必须解决电流电压监控、光编码器反馈和旋转变压器-数字转换等难题。这些过程对需要精确控制电机转速和机械运动的应用来说非常重要,比如工业流水线机器人和汽车助力驾驶等应用。          这些应用中所用的转换器必须速度快、同步取样、单调运算、无流水线延迟、体积小、功耗低(见图1)。有些应用需要高压隔离和安全操作,有些应用必须连接旋转变压器型位置检测器。 逐次逼近A-D转换器          光编码器可以为伺服控制应用提供低成本、高精度的位置感应,比如,需要向控制器提供轴反馈以便为机械运动精确定位的工业机
[嵌入式]
单片机AT89S51与ADC0809设计一个数字电压表
1. 实验任务   利用单片机AT89S51与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。   2. 电路原理图   3. 系统板上硬件连线    a) 把“单片机系统”区域中的P1.0-P1.7与“动态数码显示”区域中的ABCDEFGH端口用8芯排线连接。    b) 把“单片机系统”区域中的P2.0-P2.7与“动态数码显示”区域中的S1S2S3S4S5S6S7S8端口用8芯排线连接。   c) 把“单片机系统”区域中的P3.0与“模数转换模块”区域中的ST端子用导线相连接。   d) 把“单片机系统”区域中的P
[单片机]
单片机AT89S51与<font color='red'>ADC</font>0809设计一个数字电压表
基于低成本单芯片微处理器的高稳健性破损玻璃检测器解决方案
引言 破损玻璃检测器 (GBD) 主要用来检测家庭住宅或商业楼宇门窗玻璃的破损情况。GBD 也可归类为一种监控设备,用以提高家庭或商业环境的安全性,避免非法进入。GBD 既可独立工作,也可与其它防盗设备协同工作,形成一套完整的安全系统。GBD 的基本工作原理就是捕获各种声音,并对其进行分析,然后报告玻璃是否破碎。基于这种工作模式,GBD的性能很大程度上取决于声源音质,这对设计人员提出了诸多挑战。此外,GBD 必须排除各种非真正玻璃破碎发出的声音,这种可能触发虚假玻璃破碎警报的声音事件就是误报警。本文将介绍一种采用低成本微处理器 (MCU) 的高效、稳健可靠的 GBD 设计方案。 MCU 属于低端处理器,广泛
[单片机]
基于低成本单芯片微处理器的高稳健性破损玻璃检测器解决方案
TI四通道ADS54J64模数转换器开售
半导体和电子元件分销商贸泽电子 ( Mouser Electronics ) 即日起备货 Texas Instruments (TI) 的四通道1 GSPS ADS54J64 模数转换器 (ADC)。14位ADS54J64 ADC提供高信噪比 (SNR)、高带宽以及500 MSPS的最大输出采样率。ADS54J64 ADC支持高速JESD204B串行数据接口,简化了与处理器的连接,并提供高达10 Gbps的数据传输速率,每个通道上具有一条信道,适用于 电信 接收器和微波接收器等各种应用。 贸泽电子供应的 TI ADS54J64 ADC通过使用模拟输入缓冲器在很宽的频率范围内提供一致的阻抗。 该器件提供仅2.5 W 的 低
[电源管理]
TI四通道ADS54J64<font color='red'>模数转换器</font>开售
一种DC/DC变换器中差分延迟线ADC的实现
摘要:文中介绍了一种无需外部时钟、可抵消部分工艺偏差的差分延迟线ADC,并对其建模。该ADC结构简单、控制信号在内部产生、转换速率快、功耗低,可应用在高频数字 DC/DC 控制芯片中。在0.13μmCMOS工艺下仿真表明,在采样电压0.7~1.5V范围内,该ADC输出没有明显偏移,线性度良好。   关键词:DC/DC;延迟线ADC;DPWM   传统的DC/DC变换器一般采用模拟控制方式,它具有体积小,功耗低等优点,但易受噪声影响。而数字控制的DC/DC变换器对工艺参数和环境不敏感、控制算法可通过编程实现、易于集成,且能大大缩短产品的开发周期。   1 DC/DC变换器结构   数字控制器主要由模数转换器(AD
[电源管理]
一种DC/DC变换器中差分延迟线<font color='red'>ADC</font>的实现
设计基于LPC2000的次级启动加载程序用于代码升级
   引言   本文虽然是针对NXP(恩智浦公司)的LPC2000系列,但使用IAP技术对内部闪存进行编程却适用于几乎所有的NXP ARM MCU系列,包括Cortex-M0 LPC1100以及Cortex-M3 LPC1300/1700等系列。   在大多数的LPC2000器件内部,存在着一个被称为“主启动加载程序(Primary Boot Loader)”的固件,它在每次上电或复位时被首先运行。本文所讲的“次级启动加载程序”实际上是一段用户自己写的代码(烧写在用户闪存区),在执行完主启动加载程序后被执行,提供给用户一个选择,是继续执行当前的应用程序还是对当前应用程序进行更新。   在应用编程(In Appli
[单片机]
设计基于LP<font color='red'>C2000</font>的次级启动加载程序用于代码升级
为快速ADC提供电压箝位与DC偏置模拟电路
  许多快速ADC都推荐0.6V~2.6V输入电压范围,如美国国家半导体公司的ADC1175(参考文献1)。但在某些应用中,必须要转换一个对称的模拟输入信号。本设计实例中的电路将一个-0.2V ~ +0.2V范围的对称输入电压转换到推荐的0.6V~2.6V范围(图1)。该电路亦能防止输出电压低于-0.3V,以防止损坏ADC。      电路采用了一片Analog Devices的AD8002双电流反馈运算放大器,以获得高带宽(参考文献2)。第一部分的非反相放大器IC1A电压增益为5。这部分具有高输入阻抗和低输出阻抗,使第二部分IC1B能正常工作。第二部分承担了大部分任务。IC1B、R4和R5构成一个基本的反相放
[模拟电子]
为快速<font color='red'>ADC</font>提供电压箝位与DC偏置模拟电路
Microchip高性能USB、LCD及通用8位PIC系列再添12位ADC
12款新型PIC18单片机迎合需高分辨率模数转换功能的先进传感器设计,为外部模数转换器节省成本并化繁为简 全球领先的单片机和模拟半导体供应商——Microchip Technology Inc.(美国微芯科技公司)宣布推出12款全新的高性能、8位闪存单片机,其中包括该公司首款集成片上高速12位模数转换器外设的USB及LCD单片机系列。三个新产品系列共备有16种集成高分辨率片上模数转换器的高性能PIC18 单片机,扩展了Microchip通用PIC18F4523系列产品线并极大地丰富了客户的选择。 在这三个新产品系列中,PIC18F8723大容量存储器通用系列提供丰富的外设集以及高达10 MIPS的卓越性能;PIC18F
[新品]
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved