Altera器件在开关控制中的应用

本文作者:admin       点击: 2007-08-13 00:00
前言:
摘要:随着电力工业的发展,电网复杂程度和电压等级不断提高,变电所实现综合自动化和无人值班已成为电力系统自动化的发展方向。在集成电路(IC)技术发展的今天,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。本系统可有效实现变电所“四遥”之一的遥测,是变电所综合自动化的一个重要组成部分。
关键词:Altera;CPLD;VHDL;MAX+PLUSII;开关控制  

引言

Altera 公司一直致力于可编程逻辑器件的研发和生产,其处于工业领导地位的CPLD 器件由于具备一流的性能,低成本解决方案,一直广泛应用在数字化领域里.先进的技术再加上易于操作的MAX + PLUSII 可编程逻辑的开发环境,使得Altera 公司的CPLD 器件不仅具有PLD 器件的一般优点,而且还有如下一些优势:高性能、低成本、高集成度、低噪声、系统可靠性强、方便的进行在系统编程,其在变电所开关控制中有良好的应用前景.

1 CPLD简介

CPLD是高密度现场可编程逻辑芯片,都能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。复杂可编程逻辑器件CPLD是由PAL(Programmable Array Logic,可编程阵列逻辑)或GAL( Generic  Array  Logic,通用阵列逻辑)发展而来的。

1.1 基于 EDA工具的 CPLD开发流程
CPLD的开发流程:设计开始首先须利用 EDA工具的文本或图形编辑器将设计者的设计意图用文本方式(如 VHDL、  Verilog-HDL程序)或图形方式(原理图、状态图等)表达出来。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。最一般化、最具普遍性的输入方法是HDL程序的文本方式。这种方式最为通用。如果编译后形成的文件是标准VHDL文件,在综合前即可以对所描述的内容进行仿真,称为行为仿真。即将设计源程序直接送到VHDL仿真器中仿真。因为此时的仿真只是根据VHDL的语义进行的,与具体电路没有关系。在仿真中,可以充分发挥VHDL中的适用于仿真控制的语句,对于大型电路系统的设计,这一仿真过程是十分必要的。
设计的最后是综合,将软件设计与硬件的可实现性挂钩,这是将软件转化为硬件电路的关键步骤。综合器对源文件的综合是针对某一FPGA/CPLD供应商的产品系列的,因此,综合后的结果具有硬件可实现性。    

2 MAX+PLUS II简介

Altera公司的MAX+PLUSII开发系统是一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多种平台上运行。目前已发行到第10.1版本。它所提供的灵活性和高效性是无可以拟的。其丰富的图形界面,辅之以完整的、可即时访问的在线文档,使设计人员能够轻松、愉快地掌握和使用MAX+PLUSII软件。

3 系统设计

3.1 设计对象:
将双T型变电所进行抽象,得到设计对象:

3.2 开关动作需求分析
根据变电所开关控制原理,得到每个开关信号需求如表3-1所示:

4 系统仿真

4.1 QF2合闸源程序程序
library ieee;
use ieee.std_logic_1164.all;
entity  QF2_close  is
   port (remote,hand,QF2,lockout_relay2:in std_logic;
         QF4,QF6,QS10,QS2:in std_logic;
         QS6,QS3,QS1:in std_logic;
         QF2_on,en: out std_logic);
end QF2_close;
architecture  QF2_behave of QF2_close is
signal temp1 :  std_logic;    
signal temp : std_logic_vector(3 downto 0);
begin
   temp1 <=remote or hand;
   temp <=QF4&QF6&QS6&QS10;
   process (hand,remote,QF2)
   begin
      if (temp1='0') then
         QF2_on<='0';
      else if (lockout_relay2='0') then
              en<='0';
              if QF2='0' then
                 if (QS2='1')and(temp="0011") then
                    QF2_on<='1';
                 else 
                    if ((QS3='1')and(QS1='1')and(temp="0011")) then
                       QF2_on<='1';
                    else
                       QF2_on<='0';
                    end if;
                 end if;
              else
                 QF2_on<='0' ;
              end if;
           else
              en<='1';
              QF2_on<='0';
           end if;
           if QF2='1' then
              en<='0';
           end if;
   end if;
   end process;
   end QF2_behave;
VHDL 程序在MAX+PLUS II 中编译仿真的结果见图3,仿真结果仅给出了部分功能模块的波形.

4.2 QF2合闸仿真说明
命令由hand或remote下达,在QF2本身是断开和lockout_relay2断开的情况下,满足合闸的条件有两个:
1:QS2合、QS6合、QS10合、QF4断开、QF6断开;
2:QS3合、QS1合、QS6合、QS10合、QF4断开、QF6断开。满足其中之一output_on才会为‘1’。
由图3中可以看出:
①⑦处,有合闸命令,且QS2合上、QS6合上、QS10合上、QF4断开、QF6断开,满足合闸的条件1,output_on输出为‘1’;
③⑨处,有合闸命令,且QS3合、QS1合、QS6合、QS10合、QF4断开、QF6断开,满足合闸的条件2,output_on输出为‘1’;
②处,由于QS6断开,不满足合闸条件,所以output_on输出为‘0’;
④处,由于QS10断开,不满足合闸条件,所以output_on输出为‘0’;
⑤处,由于QF4是合上的,不满足合闸条件,所以output_on输出为‘0’;
⑥处,由于QF6是合上的,不满足合闸条件,所以output_on输出为‘0’;
⑧处,由于lockout_relay2为‘1’,不满足合闸条件,所以output_on输出为‘0’;
⑩处,验证了output_off动作条件:只要有分闸命令,而且QF2本身是合上的就能发出分闸信号。
  
结论

本文介绍了Altera器件和MAX+PLUS II的开发流程,然后将变电所进行抽象,得到了设计对象。将系统定义为命令输入、外部条件输入、开关控制逻辑电路、开关控制时序电路等几个模块,按照变电所开关控制原理,采用VHDL语言对各个模块逻辑电路作了详细的描述。在设计的最后,通过MAX+PLUSII软件对部分开关进行了时序仿真,实现了系统设计。