Diseño Lógico I FACET - U.N.T.
Año 2016
PROYECTO 1: ADC CON PROTOCOLO SPI y MODULACION PWM. Implementar en vhdl un sistema para visualizar en un display LCD de 20x2 la temperatura de un motor de alto rendimiento. La temperatura de régimen del motor debe oscilar entre 40 y 50 grados +-1%. Cuando la temperatura de funcionamiento esté entre (50 y 55) grados se debe encender un cooler al 50% de su velocidad y cuando la temperatura supere los 55 grados se debe encender el cooler al 100% de su velocidad. Para temperaturas menores a 50 grados el cooler debe estar apagado. Utilizando la Placa Altera EP4CE6, implementar el proyecto utilizando el conversor ADC128s052. El cual se comunica a través del protocolo SPI con la FPGA. Elaborar un informe completo documentando el proyecto.
LCD E RW RS
DATA 0 - 7
DRIVER PWM
FPGA SENSOR
DS1820
SCLK
CONVERSOR ADC
DIN DOUT SS
Sensor de temperatura LM35
El LM35 es un sensor de temperatura con una precisión calibrada de 1 ºC. Su rango de medición abarca desde -55 °C hasta 150 °C. La salida es lineal y cada grado Celsius equivale a 10 mV, por lo tanto: 150 ºC = 1500 mv -55 ºC = 550 mv
Características: Sus características más relevantes son:
Está calibrado directamente en grados Celsius. La tensión de salida es proporcional a la temperatura. Tiene una precisión garantizada de 0.5 °C a 25 °C. Baja impedancia de salida. Baja corriente de alimentación (60 μA). Bajo coste.
Conversor ADC128s052
Descripción: El ADC128S102 es un dispositivo de bajo consumo de energía, de ocho canales CMOS de 12 bits conversión analógica-digital especificado para las tasas de rendimiento de conversión de 500 KSPS a 1 MSPS. El convertidor se basa en una arquitectura de registro de aproximaciones sucesivas con un circuito de seguimiento y retención interna. Puede ser configurado para aceptar hasta ocho señales de entrada en las entradas IN0 a IN7. Los datos en serie de salida es binaria directa y es compatible con varios estándares, tales como SPI, QSPI, MICROWIRE, y muchos interfaces serie DSP común.
DIAGRAMA FUNCIONAL:
NOMBRE
TIPO
DESCRIPCION
CS
DIGITAL I/O
CHIP SELECT HABILITA LA CONVERSION AD
VA
FUENTE
TENSION DE REFERENCIA ANALOGICA (2.7V A 5.25V)
IN0 - IN7
ANALOG I/O
ENTRADAS ANALOGICAS DESDE 0 A VA
VD
FUENTE
TENSION POSITIVA DIGITAL (2.7V A VA)
DIN
DIGITAL I/O
DATO DIGITAL DE ENTRADA CON 3 BIT CONTROLA IN0 A IN7
DOUT
DIGITAL I/O
DATO DE SALIDA CON 12 BIT DE RESOLUCION
SCLK
DIGITAL I/O
CLOCK DE ENTRADA. FRECUENCIA ENTRE 3.2 A 8 Mhz
El ADC128S102 puede funcionar con fuentes digitales y analógicas independientes. La alimentación analógica (VA) puede variar de 2,7 V a 5,25 V. LA tensión Digital (VD) puede variar desde 2,7 V hasta (VA)max. Todo el rango de temperatura industrial extendido de -40 ° C a + 105 ° C está garantizada.
Protocolo SPI El Bus SPI (del inglés Serial Peripheral Interface) es un estándar de comunicaciones, usado principalmente para la transferencia de información entre circuitos integrados en equipos electrónicos. El bus de interfaz de periféricos serie o bus SPI es un estándar para controlar casi cualquier dispositivo electrónico digital que acepte un flujo de bits serie regulado por un reloj (comunicación sincrónica). Incluye una línea de reloj, dato entrante, dato saliente y un pin de chip select, que conecta o desconecta la operación del dispositivo co n el que uno desea comunicarse. De esta forma, este estándar permite multiplexar las líneas de reloj. Dentro de este protocolo se define un maestro que será aquel dispositivo encargado de transmitir información a sus esclavos. Los esclavos serán aquellos dispositivos que se encarguen de recibir y enviar información al maestro. El maestro también puede recibir información de sus esclavos, cabe destacar. Para que este proceso se haga realidad es necesario la existencia de dos registros de desplazamiento, uno para el maestro y uno para el esclavo respectivamente. Los registros de desplazamiento se encargan de almacenar los bits de manera paralela para realizar una conversión paralela a serial para la transmisión de información. Existen cuatro líneas lógicas encargadas de realizar todo el proceso:
MOSI (Master Out Slave In):. Línea utilizada para llevar los bits que provienen del maestro hacia el esclavo.
MISO (Master In Slave Out):. Línea utilizada para llevar los bits que provienen del esclavo hacia el maestro.
CLK (Clock):. Línea proviniente del maestro encarga de enviar la señal de reloj para sincronizar los dispositivos.
SS (Slave Select):. Línea encargada de seleccionar y a su vez, habilitar un esclavo.
Se presenta una imagen donde se tienen todas estas líneas con sus respectivos registros de desplazamiento y su dirección de flujo:
La Cadena de bits es enviada de manera síncrona con los pulsos del reloj, es decir con cada pulso, el Master (adc128s052) envía un bit. Para que empiece la transmisión el Master baja la señal SSTE ó SS/Select a cero, con esto el Slave (FPGA) se activa y empieza la transmisión, con un pulso de reloj al mismo tiempo que el primer bit es leído.
Protocolo de comunicación del ACD128s052 Se puede observar en el protocolo, que en la entrada digital Din se envían 3 bits donde se direcciona que entrada analógica entra al AD. En la salida Dout van los 12 bits de información. Modulador por ancho de pulso (PWM) Para controlar la velocidad del cooler se debe implementar un PWM (control de ancho de pulso). De este modo se puede variar la velocidad del ventilador modificando el ciclo de trabajo (DUTY CICLE) del PWM.
Cooler Fan:
Para el accionamiento del Ventilador (Cooler Fan), se debe ingresar la modulación de pulsos desde la FPGA al driver del ventilador. El driver se encarga de suministrar la tensión y la corriente adecuada para el buen funcionamiento del cooler.
PWM 0 – 3,3V
PWM
DRIVER 0 – 12V
PROYECTO 2: TRANSMISOR y RECEPTOR RS232 Implementar en VHDL un sistema de transmisión y recepción serial asíncrono capaz de mandar y recibir cadenas de caracteres entre la fpga y una pc. El problema consiste en mandar cadenas caracteres (palabras) cada vez que se presione un pulsador desde la placa fpga. Esa palabra enviada se debe visualizar tanto en la pc como en un display LCD en la placa FPGA. A demás el sistema debe ser capaz de recibir una palabra enviada desde la pc visualizándola también en el display LCD de la FPGA. Elaborar un informe completo documentando el proyecto.
LCD
R R
K E Y
E
DATA 0 - 7
Envía palabra
CLK
FPGA TxD
RxD
SP3232
El protocolo de la norma RS-232 defi ne una comunicación asíncrona en la que el transmisor y el receptor utilizan señales de reloj independientes de igual frecuencia y para sincronizar la información, se estandarizan los siguientes parámetros: 1 bit de inicio de la transmisión. Nivel lógico “0”. Los bit de datos 1 bit de paridad(opcional) 1, 1,2 o 2 bits de parada nivel lógico “1”.
Diagrama en bloques del sistema interno Procesador de comunicaciones Dato Recibido l a t i g i
D r o d a s e c o r P
Receptor
Dato a Transmitir Transmisor
CLK
RxD RTS
TXD DSR
Divisor
Para este proyecto utilizamos los siguientes parámetros:
Frecuencia de transmisión: 9600 baudios Numero de bits: 8 Sin bit de paridad Numero de bits de fin de transmisión: 1
Transmisor RS-232:
Tareas del transmisor: Enviar el bit de inicio al receptor a través de TxD con nivel bajo “0”
Enviar 8 bits de datos en forma serial Finalizar la transmisión con el bit de parada en nivel alto “1”
El transmisor se encarga de enviar a la pc los datos seriales a una frecuencia de clock de 9600 Hz.
Receptor RS-232:
Tareas del Receptor: Detectar la presencia del bit de inicio a través de la línea RxD Recibir los datos en serie de 8 bits Indicar al procesador digital de que se recibió un dato y detectar posibles errores de transmisión. El receptor posee un reloj cuya frecuencia es un múltiplo de la frecuencia de transmisión. Se suele utilizar de 8 a 16 veces mayor. El receptor observa de forma permanente el dato serial y a partir del instante que se detecta una trasmisión del nivel lógico uno al cero cuenta tres impulsos de reloj y vuelve a observarla para confirmar que sigue en estado cero y en cuyo caso se considera que se trata del bit de inicio de la transmisión. A partir de ese instante cada 8 pulsos impulsos muestra la entrada serie y la memoriza tantas veces como bits de información se transmiten. El bit de fin de transmisión (nivel lógico uno) finaliza la comunicación y hace el reposo. Para este proyecto utilizamos rx_clock como 8 veces la frecuencia de trasmisión.
Nota: Para visualizar los caracteres y chequear la comunicación serial se utiliza el HYPERTERMINAL de Windows o el programa “ real term serial capture program 2.0.0.70” link: http://realterm.sourceforge.net/ La cátedra dispone de un conversor RS232 / USB con su respectivo driver. Bibliografía: Dispositivos lógicos programables THOMSON
Proyecto 3: Control de un teclado matricial 4x4 y un display LCD 20x2. Se desea realizar un sistema electrónico digital que realice las funciones adecuadas para acoplar un teclado matricial de 16 teclas y un display LCD de 20x2 a un procesador digital para implementar una alarma de una casa. . Elaborar un informe completo documentando el proyecto. Diagrama en bloques
E RW RS
DATA 0 - 7
FPGA SW0
SW1
SW2 SW3
LED1
LED2
Sistema de alarma
La alarma se debe activar y desactivar introduciendo secuencialmente un número decimal de 4 dígitos. El sistema contará con 4 sensores de entrada ON/OFF. Ingresada la secuencia correcta, la vivienda permanecerá alarmada disparándose sólo cuando se active algún sensor. Luego de 5 segundos de accionado cualquier sensor, se debe activar una alarma sonora. Una vez ocurrido el evento de alarma igual a 1, solo se podrá desactivar introduciendo nuevamente la secuencia con el código correcta. La activación o desactivación de la alarma siempre se hará con una secuencia de 4 dígitos. En caso de una secuencia incorrecta la alarma no se activará y con la tecla * se podrá borrar el código ingresado y volver a empezar. Cada vez que se active un sensor se debe visualizar en un display 7 segmentos el número de sensor activo. El disparo y la alarma sonora se deben visualizar mediante dos leds (LED0 y LED1) respectivamente. Con la desactivación de la alarma se deben apagar los dos leds. Los sensores serán emulados con 4 switchs ON/OFF ( SW0, SW1, SW2 y SW3).
Descripción del teclado
Un teclado está formado por un conjunto de pulsadores que sólo se acciona uno en cada instante. Esto hace que se deba realizar un proceso de conversión de la información para almacenarla en un código binario numérico (binario natural o BCD natural) o alfanumérico (ASCII). La lectura de las teclas de un teclado matricial se realiza activando secuencialmente las filas o las columnas de la matriz de hilos conductores. Si esta exploración se hace por filas, se deben multiplexar secuencialmente todas las columnas durante el tiempo en que cada fila (salida) está activada. La activación de alguna columna (entrada) indica que ha sido accionada una tecla situada en la fila y columna correspondiente. La exploración debe realizarse a una frecuencia tal que sea prácticamente imposible que dos teclas se puedan accionar en forma consecutiva en un solo ciclo de exploración, porque en este caso, la segunda no sería detectada. Las columnas están conectadas por medio de resistencias pull-down a la tierra. Para identificar la fila, y de esta manera identificar la tecla, se propaga un 1 por cada fila y se lee la columna que está en 1 por la tecla presionada
Proyectos usando PLC PROYECTO 4: Mezcladora Automática de líquidos. Automatizar con el PLC Schneider Zelio una mezcladora, cuyo funcionamiento es el siguiente: 1. Se inicia el sistema con el tanque vacío. 2. Se empieza a suministrar el ingrediente A hasta llegar al sensor 2. 3. Se deja de suministrar el ingrediente A y se comienza a suministrar el ingrediente B, hasta llegar al sensor 1. 4. Se procede a mezclar los ingredientes por 15 segundos. 5. Se calientan los ingredientes hasta llegar a 20 grados 6. Se procede a mezclar por 30 segundos. 7. Se drena el tanque por 20 segundos. Elaborar un informe completo documentando el proyecto.
PROYECTO 5: Playa de Estacionamiento. Se desea controlar con el PLC Schneider Zelio el proceso de entrada y salida a una playa de estacionamiento con una capacidad máxima para veinte vehículos, y un portón automático. El funcionamiento que se desea es el siguiente:
La playa estará abierta de Lunes a Viernes de 8:00 a 20:00hs, y Sábados de 10:00 a 12:00hs. Por tal motivo, el portón se abrirá y cerrara automáticamente en esos momentos, también deberá estar cerrado cuándo la playa esté completa. El acceso a la plata de estacionamiento es una rampa estrecha por la que sólo puede circular un vehículo en cada momento. Para ello se dispone de un semáforo de entrada (SME) y uno de salida (SMS) que permiten, respectivamente, que un vehículo entre o salga de la playa SME=1 (SMS=1) pone el semáforo de entrada (salida) en verde, SME=0 (SMS=0) semáforo en rojo. Inicialmente ambos semáforos se encuentran en rojo. Asimismo, se dispone de un sensor (SE1) que indica la presencia (SE1=1) de un vehículo que desea entrar a la playa. Si el semáforo de entrada está en rojo o la playa está llena el vehículo esperará en este punto hasta que pueda entrar. En ese momento el semáforo de entrada se pondrá en verde para permitir que el vehículo pase, e inmediatamente que haya cruzado se pondrá de nuevo en rojo para que no pase ningún otro vehículo. Para saber que el vehículo ha terminado de entrar en la playa se dispone de otro sensor (SE2) que se pone a 1 cuando un vehículo está cruzando en ese carril por delante del mismo. Análogamente, para gestionar la salida de vehículos se dispone de sendos sensores (SS1 y SS2). Si el semáforo de salida está en rojo o hay otro vehículo entrando o saliendo deberá esperar junto al sensor SS1. De nuevo, para permitir sólo la salida de un vehículo el semáforo de salida
debe ponerse a verde e inmediatamente que cruce a rojo. Al igual que antes, el sensor SS2 permite saber que el vehículo ha completado el proceso de salida. Se dispone de un contador con dos entradas (IC, DC) para incrementar y decrementar, y una única salida (C1) que se pone a 1 cuando el contador llega a la cuenta de 20 y cierra el portón de acceso. La salida de vehículos tendrá prioridad frente a la entrada.
Elaborar un informe completo documentando el proyecto.