Sistema de riego - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Sistema de riego

Description:

Comienza y para de regar autom ticamente a determinadas horas. ... De todos modos, en caso de activarse ambas a la vez, el sistema evoluciona hacia ... – PowerPoint PPT presentation

Number of Views:130
Avg rating:3.0/5.0
Slides: 41
Provided by: dteU
Category:
Tags: de | modos | riego | sistema | todos

less

Transcript and Presenter's Notes

Title: Sistema de riego


1
Sistema de riego
  • Autores
  • Lorena Domínguez Carrera
  • Emilio Aguilera Montoto
  • Curso 2004-2005.
  • Asignatura SDP2.
  • Dpto. de Tecnología Electrónica.
  • Universidad de Vigo.

2
Índice
  • Especificaciones.
  • Descripción de la aplicación.
  • Análisis previo.
  • Diseño del sistema digital.
  • Descripción.
  • Simulación funcional.
  • Compilación e implementación.
  • Simulación temporal.
  • Conclusiones.

3
Especificaciones (I)
  • Se desea realizar un sistema digital que realice
    el control de un sistema de riego.

4
Especificaciones (II)
  • La máquina de riego presenta las siguientes
    características
  • Puede abrir el agua (regar) o cerrarla (no
    regar).
  • Comienza y para de regar automáticamente a
    determinadas horas.
  • Las horas de comienzo y fin son diferentes para
    cada estación.

5
Especificaciones (III)
  • La máquina posee un reloj y un sistema de fecha.
  • Las horas de comienzo y fin de riego, así como
    los cambios de estación, se establecen al
    configurar el dispositivo.

6
Descripción de la aplicación (I)
  • Se supone que el sistema de riego posee los
    siguientes elementos en su interior, de los que
    sólo se debe diseñar el sistema de control.

7
Descripción de la aplicación (II)
  • La máquina debe activar la señal del controlador
    de riego desde la hora de comienzo hasta que deba
    terminar de regar.
  • La máquina debe tener en cuenta la estación en la
    que está y cambiar de estación cuando sea
    oportuno.

8
Descripción de la aplicación (III)
  • Diagrama de secuencia de operaciones del sistema
    de riego.

9
Descripción de la aplicación (IV)
  • Diagrama de secuencia de operaciones del control
    de estación.

10
Análisis previo
  • Esta aplicación responde a un circuito de CONTROL
    de complejidad baja o media, que requiere al
    menos los siguientes circuitos
  • Un Sistema Secuencial Síncrono de control
    principal.
  • 2 comparadores de 11 y 9 bits, uno para hora del
    día y otro para fecha del año.
  • 2 memorias para almacenar horas de
    activación/desactivación y días de cambio de
    estación.
  • Un temporizador para esperar por los datos de la
    memoria.
  • Dada la necesidad de 2 memorias para el circuito,
    en principio parece que una FPGA es el Circuito
    Digital Configurable más adecuado para la
    implementación de este sistema digital.

11
Diseño del sistema digital
  • Se necesitan los siguientes componentes
  • Comparador para fecha
  • Comparador para hora
  • Memoria de fechas
  • Memoria de horas
  • Circuíto de control

12
Comparador para fechas (I)
  • El comparador para fechas compara dos fechas, en
    formato 5 bits para el día y 4 para el mes, ambos
    en binario, siendo el mes los 4 bits de menor
    peso

13
Comparador para fechas (II)
  • library IEEE
  • use IEEE.STD_LOGIC_1164.ALL
  • use IEEE.STD_LOGIC_ARITH.ALL
  • use IEEE.STD_LOGIC_UNSIGNED.ALL
  • -- Uncomment the following lines to use the
    declarations that are
  • -- provided for instantiating Xilinx primitive
    components.
  • --library UNISIM
  • --use UNISIM.VComponents.all
  • entity comp_fecha is
  • Port ( clk in std_logic
  • dia1 in std_logic_vector(4 downto 0)
  • mes1 in std_logic_vector(3 downto
    0)
  • fecha in std_logic_vector(8 downto 0)
  • eq out std_logic)
  • end comp_fecha
  • architecture Behavioral of comp_fecha is
  • signal fecha2 std_logic_vector(8 downto 0)
  • begin
  • fecha2(8 downto 4) lt dia1
  • fecha2(3 downto 0) lt mes1
  • comparacion process(clk, fecha, fecha2)
  • begin
  • if (clk'event and clk '0') then
  • if (fecha2 fecha) then
  • eq lt '1'
  • else
  • eq lt '0'
  • end if
  • end if
  • end process

14
Comparador para fechas (III)
  • Testbench
  • LIBRARY ieee
  • USE ieee.std_logic_1164.ALL
  • USE ieee.numeric_std.ALL
  • ENTITY comp_fecha_comp_fecha_testbench_vhd_tb IS
  • END comp_fecha_comp_fecha_testbench_vhd_tb
  • ARCHITECTURE behavior OF comp_fecha_comp_fecha_tes
    tbench_vhd_tb IS
  • COMPONENT comp_fecha
  • PORT(
  • clk IN std_logic
  • dia1 IN std_logic_vector(4 downto 0)
  • mes1 IN std_logic_vector(3 downto 0)
  • fecha IN std_logic_vector(8 downto 0)
  • eq OUT std_logic
  • uut comp_fecha PORT MAP(
  • clk gt clk,
  • dia1 gt dia1,
  • mes1 gt mes1,
  • fecha gt fecha,
  • eq gt eq
  • )
  • reloj process
  • begin
  • clk lt '1'
  • wait for 10 ns
  • clk lt '0'
  • wait for 10 ns
  • end process
  • -- Test Bench - User Defined Section
  • tb PROCESS
  • BEGIN

15
Simulación funcional (I)
  • Resultado de la simulación del comparador para
    fechas

16
Comparador para horas (I)
  • El comparador para horas compara dos horas, en
    formato 5 bits para la hora y 6 para los minutos,
    ambos en binario, siendo los minutos los 6 bits
    de menor peso

17
Comparador para horas (II)
  • library IEEE
  • use IEEE.STD_LOGIC_1164.ALL
  • use IEEE.STD_LOGIC_ARITH.ALL
  • use IEEE.STD_LOGIC_UNSIGNED.ALL
  • -- Uncomment the following lines to use the
    declarations that are
  • -- provided for instantiating Xilinx primitive
    components.
  • --library UNISIM
  • --use UNISIM.VComponents.all
  • entity comp_hora is
  • Port ( clk in std_logic
  • hora1 in std_logic_vector(4 downto 0)
  • mins1 in std_logic_vector(5 downto
    0)
  • hora in std_logic_vector(10 downto 0)
  • eq out std_logic)
  • end comp_hora
  • architecture Behavioral of comp_hora is
  • signal hora2 std_logic_vector(10 downto 0)
  • begin
  • hora2(10 downto 6) lt hora1
  • hora2(5 downto 0) lt mins1
  • comparacion process(clk, hora, hora2)
  • begin
  • if (clk'event and clk '0') then
  • if (hora2 hora) then
  • eq lt '1'
  • else
  • eq lt '0'
  • end if
  • end if
  • end process

18
Comparador para horas (III)
  • Testbench
  • LIBRARY ieee
  • USE ieee.std_logic_1164.ALL
  • USE ieee.numeric_std.ALL
  • ENTITY comp_hora_comp_hora_testbench_vhd_tb IS
  • END comp_hora_comp_hora_testbench_vhd_tb
  • ARCHITECTURE behavior OF comp_hora_comp_hora_testb
    ench_vhd_tb IS
  • COMPONENT comp_hora
  • PORT(
  • clk IN std_logic
  • hora1 IN std_logic_vector(4 downto 0)
  • mins1 IN std_logic_vector(5 downto 0)
  • hora IN std_logic_vector(10 downto 0)
  • eq OUT std_logic
  • uut comp_hora PORT MAP(
  • clk gt clk,
  • hora1 gt hora1,
  • mins1 gt mins1,
  • hora gt hora,
  • eq gt eq
  • )
  • reloj process
  • begin
  • clk lt '1'
  • wait for 10 ns
  • clk lt '0'
  • wait for 10 ns
  • end process
  • -- Test Bench - User Defined Section
  • tb PROCESS

19
Simulación funcional (II)
  • Resultado de la simulación del comparador para
    horas

20
Memorias (I)
  • Las memorias han sido tomadas de la librería de
    Xilinx

21
Memorias (II)
  • Los contenidos de la memoria de horas son
  • memory_initialization_radix 2
  • memory_initialization_vector
  • 01000000000
  • 01000100000
  • 01000000000
  • 01001000000
  • 00111000000
  • 01011000000
  • 01000000000
  • 01001000000
  • fin
  • Los contenidos de la memoria de días son
  • memory_initialization_radix 16
  • memory_initialization_vector
  • 163
  • 166
  • 169
  • 16C
  • fin

22
Sistema de control (I)
  • El sistema de control recibe las salidas de los 2
    comparadores y la señal de reset. Genera como
    salidas las señales riego, dirigida al
    controlador de riego, y periodo y hora, dirigidas
    a la memoria de días y a la de horas,
    respectivamente.

23
Sistema de control (II)
  • El sistema de control utiliza, además, una señal
    interna (cambiado), a modo de temporizador, para
    aguardar a que el nuevo valor de salida de las
    memorias llegue a los comparadores y se
    actualicen las salidas de éstos sin cambiar el
    estado mientras.
  • Las señales heqc y feqc nunca se activan al mismo
    tiempo si el reloj no hace saltos bruscos. De
    todos modos, en caso de activarse ambas a la vez,
    el sistema evoluciona hacia el estado que se
    alcanzaría si se hubiesen recibido ambas de
    manera consecutiva.

24
Sistema de control (III).
  • Grafo de estados de la unidad de control.

25
Sistema de control (IV).
  • Descripción en VHDL de la unidad de control.
  • library IEEE
  • use IEEE.STD_LOGIC_1164.ALL
  • use IEEE.STD_LOGIC_ARITH.ALL
  • use IEEE.STD_LOGIC_UNSIGNED.ALL
  • -- Uncomment the following lines to use the
    declarations that are
  • -- provided for instantiating Xilinx primitive
    components.
  • --library UNISIM
  • --use UNISIM.VComponents.all
  • entity control is
  • Port ( heqc in std_logic
  • feqc in std_logic
  • clk in std_logic
  • reset in std_logic
  • riego out std_logic
  • periodo out std_logic_vector(1
    downto 0)
  • architecture Behavioral of control is
  • signal activo std_logic
  • signal estacion std_logic_vector(1 downto 0)
  • signal cambiado std_logic
  • begin
  • principal process (clk, reset, heqc, feqc)
  • begin
  • if (reset '1') then
  • estacion lt "00"
  • activo lt '0'
  • cambiado lt '0'
  • elsif (clk'event and clk '1') then
  • if (heqc '1') and (cambiado '0') then
  • activo lt not activo
  • end if
  • if (feqc '1') and (cambiado '0') then

26
Sistema de control (V).
  • Testbench.
  • LIBRARY ieee
  • USE ieee.std_logic_1164.ALL
  • USE ieee.numeric_std.ALL
  • ENTITY control_control_testbench_vhd_tb IS
  • END control_control_testbench_vhd_tb
  • ARCHITECTURE behavior OF control_control_testbench
    _vhd_tb IS
  • COMPONENT control
  • PORT(
  • heqc IN std_logic
  • feqc IN std_logic
  • clk IN std_logic
  • reset IN std_logic
  • riego OUT std_logic
  • periodo OUT std_logic_vector(1 downto 0)
  • hora OUT std_logic_vector(2 downto 0)
  • relojprocess
  • begin
  • clk lt '1'
  • wait for 10 ns
  • clk lt '0'
  • wait for 10 ns
  • end process
  • -- Test Bench - User Defined Section
  • tb PROCESS
  • BEGIN
  • reset lt '1'
  • heqc lt '0'
  • feqc lt '0'
  • wait for 30 ns
  • reset lt '0'
  • wait for 20 ns
  • heqc lt '1'
  • wait for 40 ns

27
Simulación funcional (III).
  • Unidad de control.

Cambio con hora
Cambio con fecha
28
Descripción del sistema completo (I).
  • Unidad operativa.

29
Descripción del sistema completo (II).
  • Unidad de control unidad operativa.

30
Simulación funcional (IV).
  • Sistema completo, puesta en marcha.

31
Simulación funcional (V).
  • Sistema completo, funcionamiento normal.

32
Compilación e implementación.
  • Estimación de los recursos lógicos necesarios.
  • Selección del circuito (PLD o FPGA) más adecuado.
  • Compilación y la implementación.
  • Análisis de los resultados obtenidos.

33
Estimación de los recursos lógicos (I).
  • Estimación de los recursos lógicos necesarios
  • 5 registros
  • 2 de un bit y uno de 2 bits para el sistema
    secuencial de control.
  • 1 de un bit para cada uno de los dos
    comparadores.
  • Al menos 2 macroceldas de varios bits (una por
    comparador) para la Unidad Operativa
  • 2 memorias RAM para la Unidad Operativa
  • Al menos 3 slices para la Unidad de Control

34
Estimación de los recursos lógicos (II).
  • Estimación del número mínimo de terminales
    necesarios.
  • 1 terminal de salida
  • Salida al controlador de riego.
  • 20 terminales de entrada genéricos
  • 9 entradas para la fecha (4 para el mes, 5 para
    el día).
  • 11 entradas para la hora (6 para los minutos, 5
    para la hora)
  • 2 terminales de entrada específicos
  • 1 para la señal de reloj externa CLK.
  • 1 para la señal de puesta en estado inicial
    (RESET).

35
Estimación de los recursos lógicos (III).
  • Otras características necesarias
  • Se han utilizado memorias específicas de Xilinx,
    para mejorar el rendimiento.
  • La velocidad de proceso puede ser de hasta 66 MHz
    con el sistema simple (solo hay que esperar un
    período para tener la nueva salida de la memoria
    en este caso la generación de cambiado no
    requiere contador) pueden obtenerse velocidades
    mayores de hasta 227 MHz esperando más períodos.
  • El sistema funciona para velocidades de reloj
    bastante superiores al ciclo por minuto.

36
Elección del circuito.
  • De lo expuesto se deduce que necesitaremos un
    Circuíto con memorias RAM y un mínimo de 30
    macroceldas si éstas poseen un único biestable, y
    23 terminales.
  • Una FPGA con memorias RAM puede resultar
    adecuado.
  • Analizando los circuitos de la familia Spartan2E
    de Xilinx XILINX, se deduce que el más adecuado
    puede ser el XC2S50E-FT256, con encapsulado de
    182 terminales y 8 memorias RAM, que contiene 768
    Slices.

37
Compilación e Implementación.
  • Análisis de los resultados de la implementación
    del sistema digital.
  • Conclusiones
  • El sistema completo utiliza 11 de los 768 Slices
    (1), 6 de los 1536 Slice biestables (0), 19 de
    los 1536 LUTs (1), 22 de los 182 terminales
    (12), 2 de las 8 RAMs (25) y una señal especial
    (CLK) de las 4 (25) de la FPGA elegida, teniendo
    espacio suficiente en el mismo para implementar
    además el reloj y la fecha, y un sistema de
    escritura en las memorias RAM para permitir la
    programación del mismo.

38
Simulación temporal (I).
  • Sistema completo ya implementado, puesta en
    marcha.

39
Simulación temporal (II).
  • Sistema completo ya implementado, funcionamiento
    normal.

40
Conclusiones finales
  • El sistema de control de riego se ha implementado
    de acuerdo con las especificaciones.
  • Su funcionamiento es totalmente correcto.
  • El sistema completo utiliza un 1 de las celdas y
    un 25 de los recursos adicionales de la
    XC2S50E-7FT256.
  • La máxima frecuencia de reloj a la que el sistema
    funciona correctamente es de aproximadamente 66
    MHz (15 ns).
Write a Comment
User Comments (0)
About PowerShow.com