电压、电流采集采用双端差分信号输入的方式采集数据。正常工作时最大输入电压为±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的中断。
SPI的接口函数如下:
程序运行时,要想知道通信函数是否正确,可以通过读取校表数据校验和寄存器的值来判断。在芯片复位后未写校表数据前,它里面存储的复位数据是定值。发送命令字0x3E或0x5F,读取24位数据。在三相四线模式下,值是0x043C73;在三相三线模式下,值是0x16BC73。如果是其他值.则程序有误。
用户评论
共 0 条评论