基于cs5451a的三相多功能电表设计

基于cs5451a的三相多功能电表设计

ID:11036994

大小:212.50 KB

页数:8页

时间:2018-07-09

基于cs5451a的三相多功能电表设计_第1页
基于cs5451a的三相多功能电表设计_第2页
基于cs5451a的三相多功能电表设计_第3页
基于cs5451a的三相多功能电表设计_第4页
基于cs5451a的三相多功能电表设计_第5页
资源描述:

《基于cs5451a的三相多功能电表设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于CS5451A的三相多功能电表设计基于CS5451A的三相多功能电表设计随着电子技术的飞速发展,电能表的集成度越来越高,在三相多功能电表市场上,主要有两种架构:1、电能计量芯片加微控制器。2、A/D转换芯片加微处理器。第一种方案成本比较低,功能主要取决于电能芯片,微控制器不能进行复杂的数据处理,所以不具有谐波分析功能。第二种方案可以通过复杂的数据处理,实现非常多的功能。本文主要介绍基于CS5451A+TMS320C2801的三相多功能电表设计。芯片介绍:CS5451A是CirrusLogic公司为能源测量工业设计的高度集成的Delta-Sigma模拟至数字(A/D)转换器。CS5451

2、A在一个芯片上结合了6个Delta-Sigma模数转换器、滤波器和一个与微控制器或DSP相联接的串行接口。CS5451A与一个变流器或可测量电流的分流器和电阻分割器或测量用变压器直接连接。同时该产品已被初始化和功能完全设置,并包括一个电压参考。框图如下。 TMS320C28x™系列数字信号控制器是业界第一款32位基于DSP的控制器,具有板载快闪存储器和高达150MIPS的性能。它们针对于工业自动化、数字电源、汽车控制以及高级传感应用。C28x内核是世界上最高性能控制优化内核,提供计算带宽来实时处理许多复杂的控制算法,如无传感速度控制、随机PWM以及功率因数校正。C28x还提供了足以与一般的

3、MCU相匹敌的C代码效率,与C2000系列中的当前器件完全代码兼容。 硬件设计:本方案按功能可分成以下几块。1、 电压转化模块是一个电阻网络,用分压电阻的方法,把三相电压信号转化成三个400mV的信号,经过阻容滤波送入CS5451A. 2、 电流转化模块是通过电流互感器,把0-6安的三相电流信号转化成三个400mV的信号,经过阻容滤波送入CS5451A. 3、 CS5451A模块功能是把输入的六通道电压电流信号转化成数字信号输出。CS5451A与TMS320F2801通过SPI口连接,每隔250微秒主动发出一组数据。 4、 TMS320F2801有两个SPI接口,一个作为从SPI接收CS5

4、451A数据,另一个作为从SPI与MCU通讯。24C04用来保存设置数据,校准数据。软件设计: 软设计分两大部份,TMS320F2801的软件和MCU软件。MCU软件主要是从TMS320F2801种读取数据、显示和与PC机通讯,本文不作介绍。TMS320F2801的软件实现对CS5451A的数据采集、电量计算、谐波分析、与89C52通讯、脉冲输出。软件主流程图如下:初始化系统配置寄存器,包括系统频率设置、Flash寄存器初始化,SPIA和SPIB的使能。SPIA用来接收CS5451A的数据,SPIB用于89C52通讯。外部中断用来捕捉CS5451A的同步信号,在捕捉到同步信号以后,初始化并

5、启动SPIA模块,SPIA模块在接收到12个字节数据以后产生中断,把数据保存到缓存中。流程图如下: 谐波分析方法:由于电网频率是变化的,采样频率是固定的,所以每个周波采集到的瞬时值个数是不固定的。要进行64点FFT计算,必须把采集到的瞬时值转化成64点瞬时值,转化方法有多种,本设计采用的是拉格朗日二次差值法,精度比线性差值法高,计算量也可以达到要求。/*拉格朗日定理(lagrange):若函数f(x)满足:(1)f(x)在闭区间[a,b]上连续;(2)f(x)在开区间(a,b)可导;则在开区间(a,b)必存在S,使得f(b)-f(a)=f'(s)(b-a).拉格朗日二次插值公式:已知曲线上

6、三点(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取64floatfft_buf[128];  //保存CS5451A采集的128 点数据floatdataR[128];  //保存抽出来的64点数据voidDataChange(floatTa,intPoints)  {  i

7、nti,j,k;  intindex; //offset; floatp=1.0;//初始化p floatc=1.0; floatyE=0; floatm;  intT0=25; //To单位为10us.  for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。