ADE7758的电压和电流采集通道,其交流信号幅值最大为500 mV。三相电压、电流的模拟量经过cT、变换之后,输人到ADE7758芯片中,通过6路A/D采样通道完成同步采样。ADE7758的微处理器对数字化的被测信号进行各种判断、处理和运算,并将结果储存在18个只读寄存器中。ADUC814通过SPI接口对ADE7758进行读写操作,ADE7758内部有一个中断屏蔽寄存器MASK,可以选择中断源。当相关的中断产生时,IRQ脚被置低,等待ADUC814跳人中断服务子程序读取同步发电机各种运行参量。
同步发电机数据采集系统用于监测同步发电机机端电压、定子电流和转子电流,根据所实现的基本功能和要求,硬件系统设计包括:模拟量采集模块、信号调理模块、交直流电量计量与转换模块、实时数据的处理与控制模块、显示模块。模拟量采集模块由电流互感器CT和电压互感器 组成。通过CT和采集同步发电机端的电压和电流信号,将高电压、大电流转换成低电压、小电流的信号,并起高低压隔离作用。信号调理电路完成信号进入电能计量芯片前的调整和滤波,滤除信号中的高频部分。根据电能计量芯片ADE7758的要求,电流信号需转换成相应的电压信号输入。实时数据的处理与控制模块从速度和容量的要求考虑选择ADUC814,该芯片内置有8 KB Flash,640 BRAM,256 B SRAM,有9个中断源,2个中断优先级,3个16位定时数器,32个可编程IO口;可实现串行在系统编程(ISP),在没有并行编程器的情况下,片内ROM中固化的默认加载程序允许ISP通过UART将程序代码装入Flash存储器,而Flash代码中则不需要加载程序。
3 系统的软件设计
系统的软件设计包括单片机程序和Pc机应用程序设计两部分。
3.1 单片机程序设计
以ADUC814单片机为核心的程序框图如图3所示。
对于中断的判断和处理是该程序的核心部分。根据具体的功能需要,中断包括外部中断INTO、定时中断和串行中断3种。
3.1,1 外部中断INTO
ADE7758的IRQ脚连接ADUC814单片机P3.2的INT0脚,IRQ脚置低即表示ADE7758有中断产生,单片机通过SPI口将线电压、频率值、电压和电流值取出。ADE7758为用户提供中断屏蔽寄存器MASK,通过设置MASK可以根据自己的需要放开相应的中断,实现多种 功能,如三相电压、电流越限报警、相序错报警和三相失压报警等。
3、1.2 定时中断
ADUC814单片机内部有3个定时器,分别为定时器0,1,2。定时器2又有3种操作模式,即捕获、自动重新装载、计数和波特率发生器。此处采用定时器2的捕获模式做一个1 ms的定时器中断,在中断产生时,单片机通过SPI El读取有功功率、无功功率和视在功率。
3.1.3 串行中断
ADUC814内部有一个8位的串行口控制字SCON,通过设置该寄存器的相应位可方便改变单片机的串口通信模式,本系统采用9位UART,波特率为9 600 b/s。ADE7758的标定及三相电流、电压、有功功率、无功功率、视在功率、有功电能量、无功电能量、视在电能量、功率因数等测量数据,按照一定的通信规约,将所测量的数据打包成串口通信报文的工作均在该中断里完成。
3、1.4 上位机的通信程序
上位机程序设计是以Visual Basic 6.0为平台,利用MSComm控件,以事件驱动方式实现计算机与ADUC814之间串行通信,完成数据的交换。上位机程序包括用户界面设计、通信和数据处理程序、显示程序等。
3.2 上位机用户界面设计
在本系统中,设计了一个窗体(Form1)。主要显示实时数据和有关状态量。在Form 1中设计了一个MSComm控件、一个定时器控件(Timer)、两个按钮控件(Commandl,Command2)Commandl是“刷新数据”按钮,即按下时开始和ADUC814通信接收实时采样数据,对接收数据进行校验,如正确就在相应的位置显示,此时按钮变成“停止刷新”;如再按该按钮则停止界面实时数据刷新,按钮又为“刷新数据”。Command2是“退出”按钮,按下它则退出该应用程序。
设置Timer的Interval属性都等于100,Timer定时提取从串口接收来的数据并刷新主界面实时显示数据。串口在一定时间内没有收到数据提示通信错误信息。Timer在装载主界面时Enable=True。MSComm的InputMode属性为0即文本方式。在正常接收实时数据时RThreshold属性设为100。
PC机通过定时器TIMER每1 ms向下位机ADUC814下发传送命令,该命令只包含2 B开始符R和1 B结束符。当下位机ADUC814收到命令后就产生中断,执行中断服务程序。PC机串口每收到100 B数据就触发MSComm的OnComm事件,在OnComm事件子程序中,从接收缓冲区中提取2 B开始命令后的40 B实时数据并进行求和校验,如接收正确就将接收的数据存储到相应文件中并刷新屏幕显示,否则提示“接收错误!”并要求重发。
具体帧格式为:
|