基于A/D转换芯片加微处理器实现三相多功能电表设计

随着电子技术的飞速发展,电能表的集成度越来越高,在三相多功能电表市场上,主要有两种架构:电能计量芯片加微控制器;A/D转换芯片加微处理器。第一种方案成本比较低,功能主要取决于电能芯片,微控制器不能进行复杂的数据处理,所以不具有谐波分析功能。第二种方案可以通过复杂的数据处理,实现非常多的功能。本文主要介绍基于CS5451A+TMS320F2801的三相多功能电表设计。

CS5451A是     Cirrus Logic   公司为能源     测量   工业设计的高度集成的Δ-Σ A/D转换器。CS5451A在一个芯片上集成了6个Δ-Σ A/D转换器、     滤波器   和一个与微控制器或     DSP   相联接的串行     接口   。CS5451A与一个变流器或可测量     电流   的分流器和     电阻   分割器或测量用     变压器   直接连接。同时该产品已被初始化和功能完全设置,并包括一个参考电压。

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图1:基于CS5451A+TMS320F2801的三相多功能电表框图。

TMS320C28x系列数字信号控制器是业界第一款32位基于DSP的控制器,具有板载Flash     存储器   和高达150     MI   PS的性能,它们针对于工业自动化、     数字电源   、汽车控制以及高级传感应用。C28x内核是世界上最高性能控制优化内核,提供计算带宽来实时处理许多复杂的控制算法,如无传感速度控制、随机PWM以及功率因数校正。C28x还提供了足以与一般     MCU   相匹敌的C代码效率,与C2000系列中的当前器件完全代码兼容。

硬件设计

图1所示为本方案的硬件框图,本方案按功能可分成以下几个模块:

电压转化模块是一个电阻网络,用分压电阻的方法,把     三相电   压信号转化成三个400mV的信号,经过阻容滤波送入CS5451A(见图2)。

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图2:采用电阻网络的电压转化模块。

电流转化模块是通过     电流互感器   ,把0-6安的三相电流信号转化成三个400mV的信号,经过阻容滤波送入CS5451A(见图3)。

CS5451A模块功能是把输入的六通道电压电流信号转化成数字信号输出。CS5451A与TMS320F2801通过S     PI   口连接,每隔250微秒主动发出一组数据。

TMS320F2801有两个SPI接口,一个作为从SPI接收CS5451A数据,另一个作为从SPI与MCU通讯。24C04用来保存设置数据和校准数据。

软件设计

软设计分两大部份,TMS320F2801的软件和MCU软件。

MCU软件主要是从TMS320F2801种读取数据、显示和与PC机通讯,本文不作介绍。

TMS320F2801的软件实现对CS5451A的     数据采集   、电量计算、谐波分析、与89C52

通讯、脉冲输出。软件主流程如图4。

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图3:通过电流     互感器   把0-6安的三相电流信号转化成三个400mV的信号。

初始化系统配置     寄存器   ,包括系统频率设置、Flash寄存器初始化、SPIA和SPIB的使能。SPIA用来接收CS5451A的数据,SPIB用于89C52通讯。

外部中断用来捕捉CS5451A的同步信号,在捕捉到同步信号以后,初始化并启动SPIA模块,SPIA模块在接收到12个字节数据以后产生中断,把数据保存到缓存中。流程如图5。

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图4:软件主流程图。

电能计算方法

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

谐波分析方法

由于电网频率是变化的,采样频率固定,所以每个周波采集到的瞬时值个数是不固定的。要进行64点     FFT   计算,必须把采集到的瞬时值转化成64点瞬时值,转化方法有多种,本设计采用的是拉格朗日二次差值法,精度比线性差值法高,计算量也可以达到要求。

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图5:中断处理流程图。

/*

拉格朗日定理(lagrange):

若函数f(x)满足:(1)f(x)在闭区间[a,b]上连续;(2)f(x)在开区间(a,b)可导;

则在开区间(a,b)必存在S,使得f(b)-f(a)=f‘(s)(b-a)。

拉格朗日二次插值公式:

已知曲线上三点(x0,y0),(x1,y1),(x2,y2),则该二次曲线为:

L(x)=(x-x1)(x-x2)f(x0)/(x0-x1)(x0-x2)+(x-x0)(x-x2)f(x1)/(x1-x0)(x1-x2)+(x-x0)(x-x1)f(x2)/(x2-x0)(x2-x1);

*/

//Ta是周期值

//Points是要抽取的点数,本系统进行64点FFT计算,Points取64

float fft_buf[128]; // 保存CS5451A采集的128点数据

float dataR[128]; // 保存抽出来的64点数据

void DataChange(float Ta,int Points)

 基于A/D转换芯片加微处理器实现三相多功能电表设计_设计制作_可编程逻辑

图4:软件主流程图。

{

int i,j,k;

int index; //offset;

float p=1.0;//初始化p

float c=1.0;

float yE=0;

float m;

int T0=25; //To单位为10us.

for(i=0;i{

//找到所需的三个点的第一个点。 整除的状况要考虑。

index=(floor((i*Ta*100)/(Points*T0)));

//若所求的点为已知点则跳过。

    if   ((i*Ta*100)/(Points*T0)-floor((i*Ta*100)/(Points*T0))==0)

{

dataR[i]=fft_buf[index];

con     ti   nue;

}

//用lagrange计算出所求的点。

for(j=0;j《3;j++)

{

p=1;

c=1;

for( k=0;k《3;k++)

{

if(k==j)con  TI nue;//判断是否为同一个数

m=index+k;

m=m*T0*Points;

p=p*(Ta*i*100-m);

p=p/Points;

c=c*((index+j)*T0-(index+k)*T0); }

//求和

yE=yE+p*fft_buf[index+j]/c;

}

dataR[i]=yE;

yE=0;

}

}

本方案中数据运算量很大,对TMS320F2801的要求很高,所以FFT计算和电量计算程序用汇编语言编写,程序编写这里不作介绍。

责任编辑:gt

20
79
0
33

相关资讯

  1. 1、英伟达推出全新EGX边缘超级运算平台,加速AI和5G等边缘运算3954
  2. 2、京信通信联合中国移动研究院等推出业界首款商用5G云小站3389
  3. 3、CheckPoint推第五代防护应对最新安全攻击的一剂良方2110
  4. 4、光端机的用途及如何连接光纤3544
  5. 5、京东方精电拟投13.57亿元建设车用液晶显示模组项目557
  6. 6、海信发布4大系列新品,WiFi6电视速率是上一代的2.7倍3074
  7. 7、MiniLED与OLED竞争,台面板双虎布局动态全览2845
  8. 8、印刷电路板的未来挑战与机遇522
  9. 9、华伍股份拟与西人马开展战略合作实现企业数字化转型3970
  10. 10、兰州金川科技园两科技成果达国际先进水平,加快金属材料产业化发展4226
全部评论(0)
我也有话说
0
收藏
点赞
顶部