相关文章

专用芯片ATT7022C的电参数测量模块设计

来源网址:http://jinko17.com/

       随着国家经济的快速发展,各行业对能源的需求量越来越大。煤炭、石油等不可再生资源的大量消耗使得存储量越来越少,能源短缺必将会影响国家经济的发展。而煤炭、石油的开采又会耗掉大量的电能,特别是石油的开采,抽油机经常会出现“空抽”的现象,大量的电能被耗费。因此,提高用电的效率和质量是缓解能源危机的一种方式,这就需要对电网运行状况进行实时监测。为了获得电网的电参数信息,本文采用电能计量芯片ATT7022C结合ARM微控制器设计电参数测量模块。该模块可以使用液晶实时显示数据,也可以把采集的电参数传输到上位机来对电网的状况进行实时监测。

1 ATT7022C芯片介绍

       ATT7022C芯片是钜泉光电科技(上海)有限公司推出的一款高精度三相电能专用计量芯片。它适用于三相三线和三相四线的接线方式,其内部结构框图如图1所示。该芯片集成了7路二阶sigma-delta ADC,参考电压电路以及包括功率、有效值、功率因数、能量等的数字信号处理电路。芯片内置温度测量传感器,提供基波有功、基波无功校表脉冲输出;还具有ADC采样数据缓存功能,缓存长度为240,可以实时保存原始采样数据。同时芯片还支持单通道、双通道和三通道的同步采样功能,供用户进行采样数据的分析。芯片提供一个SPI接口与外部MCU进行数据传递,外部控制器只需要通过SPI总线对各寄存器进行读写操作,就可以得到三相电参数的值。为了得到精确的电参数数值,必须进行校表操作。芯片支持纯软件校表,经过校正的仪表,有功精度可高达0.5级,无功精度可达2级。

2 电参数测量模块设计方案

       电参数测量模块的总体结构框图如图2所示。模块主要由电参数实时测量、LCD显示、存储、与上位机通信等部分组成。LCD液晶主要用来显示电压、电流、耗能、功率因数、时间、温度等参数。模块采用RS485总线或无线组网传输的方式把测量的各种电参数传输到上位机,对电网的运行状况进行实时的监测。

       模块设计的目标是以较低能耗实时测量、显示电参数,并能够与上位机进行通信。这就要求处理器的运行速度要快、功耗要低。LPC2138芯片可以满足这个要求。它有2个SPI、I2C接口、多达47个可承受5 V电压的通用I/O口,以及带有独立电源与时钟源的实时时钟模块。

       电能计量芯片复位时内部的能量寄存器将复位为0。如果发生意外断电,芯片中能量寄存器中的值将会丢失,设计时选用AT24C02芯片保存能量寄存器的值。在软件程序设计中,当负载消耗1度电或其他数据量的时候刷新一次存储器。

       实时时钟采用ARM系统与外接电池共同供电的方式,当系统意外断电时,时钟模块可由外部电池供电,保证时钟的正常运行。值得注意的是,实时时钟初始化时,第一次把准确的时间写到时钟芯片后,时钟就开始正确地运行,然后应当把程序中的时钟初始化函数去掉,把整个程序再加载一遍。否则,模块每次复位都会对时钟初始化一次,这样时钟就不能正确地运行了。

3 硬件设计

       3.1 模块外围电路设计

       ATT7022C外围电路如图3所示。在设计时,为使电源的纹波和噪声减小到最低,要在芯片的各个电源引脚使用10μF和0.1μF电容进行去耦。在图3中,V1P/V1N、V3P/V3N、V5P/V5N分别是A、B、C三相的电流采集通道;V2P/V2N、V4P/V4N、V6P/V6N分别是A、B、C三相的电压采集通道。电路连接时,把ATT7022C的SP1口、SIG、CS、RESET分别与LPC2138的SPI口、P0.28、P0.29、P0.30相连进行通信。SIG为握手信号,控制器通过该引脚监测芯片的运行状况。SEL为三相电接线方式选择引脚。电能芯片内部有300 kΩ上拉电阻,当该引脚悬空时为三相四线接线方式,当该引脚接地时为三相三线的接线方式。在硬件电路连接时必须要注意的是,电能计量芯片与LPC2138的电源要共地,否则控制器读写芯片将会出错。

       3.2 信号采集模块

       电压、电流采集采用双端差分信号输入的方式采集数据。正常工作时最大输入电压为±1.5 V.2个引脚内部都有ESD保护电路,最大承受电压为±6V。电压信号的采集可选择分压方式或互感器方式。本系统为了能得到较稳定的信号,决定采用互感器来采集信号。这样不仅起到了电气隔离的作用。还可防止电流过大烧毁芯片。由于电能计量芯片的电压通道在互感器的次级电压为0.5 V时有较好的精确度和线性度,所以在设计时,选择LCTV3JCF-220V/0.5V规格的电压互感器作为电压信号的采集端。电压采集电路如图4(a)所示。电路中的1.2 kΩ电阻和0.01μF电容构成了抗混叠滤波器。REFO信号连接电能计量芯片输出的2.4 V参考电压,这个电压起到直流偏置的作用。

       电流信号的采集是通过把电流互感器输出的电流信号并接一个适当的电阻,采集电阻两端电压的方式来间接测量电流值。电流通道在采集电压为0.1 V时芯片有较好的精确度和线性度,因此在设计时选用HTTA-5 A/5 mA规格的电流互感器。在输入额定电流的情况下,输出的电流信号并接20 Ω的电阻可以得到0.1 V的电压信号。值得注意的是,电流互感器的选择应根据实际应用时初级电路中电流大小的范围而选择,电阻也要相应地变化,保证输入的信号在0.1 V左右。电流采集电路如图4(b)所示。

4 软件设计

       模块的软件设计首先是对各部分的通信接口进行初始化,然后对芯片进行校正,接着把实验校正的值写入ATT7022C的各个寄存器。最后,在主函数的循环语句中渎取芯片各个寄存器的数据进行显示、存储、向上位机传输。

       4.1 ATT7022C与LPC2138的SPI接口函数

       图5、图6分别为ATT7022C芯片的SPI接口读、写时序图。图中,CS为芯片的片选信号线;SCLK为时钟信号线;DIN为串行数据输入线,用于把用户的数据、命令、地址传输到ATT7022C芯片,它与ARM处理器的SPI总线的MOSI连接通信;DOUT为串行数据输出线,用于从ATT7022C芯片读取数据,它与ARM处理器的SPI总线的MISO连接通信。从图5中可以看出,当向ATT7022C芯片写一个字节数据时,SCLK高电平时在DIN引脚准备好数据,一个时钟下降沿,就把一位数据写入芯片中。当从ATT7022C读取一个字节数据时,一个时钟上升沿,芯片会把一位数据传输到DOUT引脚,ARM读取该引脚得到一位数据。使用ARM的SPI总线,数据在SCLK高电平时有效,所以在设置SPI控制寄存器时CPOL位应置0。SPI传输的第一位数据在第二个时钟沿被采样,CPHA位应置1。ARM与ATT7022C芯片进行数据通信时,需要先向ATT7022C芯片写入8位的命令字,然后才能通过SPI接口读出或写入24位数据。数据传输时高位在先,LSBF位应置0。在数据传输的过程中CS要保持在低电平的状态,传输完成后应把CS拉高。同时设置SPI总线为主模式、禁止SPl的中断。