通过这个项目希望使大家能了一下单片机编程。但是大家不要觉得可以复制FTU出来。这已经是一个落后平台的产品。其产品理念已经完全不能适应当前客户需求。我只是用它来介绍一下c51项目编程过程。
如果大家不了解什么是FTU,那就上网百度或者谷歌一下。我的FTU产品将有三大功能----遥测、遥信、故障判断。
遥测:电流、电压、功率的测量。因为输电网分为A相、B相、C相。所以我们必须测量三相的功率、电压、电流。
遥信:开关量的检测。遥测信号的报警。
故障判断:A相、B相、C相电流超过安全门限时,发送故障信息。
FTU硬件框图如上。我们分析一下这个框图。
测量时FTU的基本功能,为了简化设计。该系统采用了CS5464。该芯片有电流、电压测量通道。该芯片的主要用途是用于电能测量。用作FTU是不太恰当,所以该款FTU的功能比较落后了。如果要送到专业部门检测,估计是无法通过的。我们只是将他作为学习使用,就无所谓了。
CS5464的datasheet有中文的也有英文的,您可以再百度文库中下载。英文当然比较权威。如果您读起来比较困难,可以中英文同时参照为了学习方便我使用的中英文的资料参照学习。
我们一起来浏览一下该芯片的功能,参看下图(英文资料第一页):
浏览上图可以得出CS5464有三个测量信号的输入。IN1 、IN1--是第一输入通道,IN2 、IN2--是第二输入通道,VIN1 、VIN1-是第三输入通道。因为三个通道都非常相似,所以我们任意分析一个通道。
每一个通道都采用的是差分输入,差分输入的优点是抗干扰能力好。PGA是增益放大器,如果输入信号比较可以放大一。加过PGA放大器后信号流入4th 调制器数字化,也就是通常说的AD转换。再经过高通滤波信号就可以功率就生气了。CS5464提供了SPI串口通讯可以与MCU连接。XIN、XOU接入XTAL。系统即可工作。
下图是CS5464的管教定义。具体的说明参见英文手册的第6页---管脚说明。
我们首先了解一下cs5464的信号测量方式,下图参见中文资料的第2页。
该图详细描述了V1(1通道电压)、I1(1通道电流)、P1(有功功率)、Q1(无功功率)。以上各个测量信号是瞬时值。上图中蓝色框图表示是寄存器。
上图向我们展示了测量瞬时值的测量过程。
V1的测量过程:1,电压信号通过VIN+、VIN-通道经过PGA增益放大。
2,经过AD转换。
3, 结果SINC3滤波器。
4,与增益寄存器中的值相乘。
5,结果IIR滤波器。
6,经过一个延时,用于电路的对信号造成不同步进行补偿。
7,减去 V1off的偏置。
8,乘以V1gain.
9,选择信号通过HPF或PMF更新V1。
由此我们得到了电压瞬时值。
I1的测量过程: 1,电压信号通过IN+、IN-通道经过PGA增益放大。
2,经过AD转换。
3,经过一个延时,用于电路的对信号造成不同步进行补偿。
4, 结果SINC3滤波器。
5,与增益寄存器中的值相乘。
6,结果IIR滤波器。
6,经过一个延时,用于电路的对信号造成不同步进行补偿。
7,减去 I1off的偏置。
8,乘以I1gain.
9,选择信号通过HPF或PMF更新I1。
I1与V1相乘得到p1,V1经过90读相移得到V1Q。V1Q 与I1相乘得到Q1。也就通过上图我们了解了瞬时值的产生的过程。
上图是第二通道的测量过程,I2测量过程与I1测量过程基本相同。
上图展示了V1rsm(电压有效值)、I1rsm(电流有效值)、S1(视在功率)、PF1(功率因数)、Q1avg(无功规律)、P1avg、PF1、 Q1wb、V2rsm、I2rsm、S2、PF2、Q2avg、P2avg、PF2、 Q2wb产生过程。
我们来看一下V1rsm产生过程。
1,将一组那个V1自乘,即V1*V1,
2,将n个V1*v1累加,
3,将累加的结果除以n.
4,结果开根号。
5,加上V1偏置。获得V1rms.
其实以上过程就是实现了以下公式:
I1rms、V2rms、I2rms与V1rms产生的过程基本相似。S1=V1rsm*I1rms. PF=Pactive/S.
.