PROYECTO TERMINAL DE LICENCIATURA TÍTULO DEL PROYECTO: “Diseño, desarrollo y construcción de hardware digital y de comunicaciones usando lenguaje VHDL, técnicas de WIRE WRAP, FPGA y tecnología PIC para el desarrollo de un DEMO completo de Multimedia para el apoyo en el proceso de enseñanza-aprendizaje en UEA’s de diseño digital y comunicaciones”. Alumnos: Gutiérrez Medina Joel 202211031. Ramírez Avelino José Demetrio 202211895. Asesor: Ing. Miguel Ángel Gutiérrez Galindo. Profesor Asociado de Tiempo Completo Nivel D. No. Empleado: 25604 Cubículo: T-328A. Teléfono: 5804-4630, Ext: 273 ____________________ Firma del Asesor. Octubre de 2007 PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CONTENIDO. 4 5 5 6 8 9 9 12 16 17 18 19 19 20 21 22 23 23 25 26 27 28 31 33 33 33 33 43 43 54 60 60 61 61 62 62 64 69 73 CAPITULO 1 OBJETIVOS, RESUMEN E INTRODUCCIÓN....................................................... OBJETIVOS............................................................................................................................. RESUMEN DEL REPORTE.......................................................................................................... INTRODUCCIÓN..................................................................................................................... CAPITULO 2 ANTECEDENTES SOBRE LOS TEMAS DEL PROYECTO.................................... VHDL....................................................................................................................................... Elementos básicos VHDL……………............................................................................. Estructura básica de un archivo fuente en VHDL...................................................... FPGA....................................................................................................................................... Arquitectura……………................................................................................................. Programación………...................................................................................................... Simulación....................................................................................................................... Flujo de diseño……........................................................................................................ MICROCONTROLADORES PIC.............................................................................................. Estructura........................................................................................................................ Diagrama de Conexiones............................................................................................ Memoria de Programa.................................................................................................. Memoria de Datos RAM................................................................................................ Juego de Instrucciones................................................................................................. Usos……………................................................................................................................ CAPÍTULO 3 DESARROLLO DE PROYECTO.......................................................................... LOGICA DE CONMUTACIÓN I Y II........................................................................................ Metodología utilizada para la enseñanza................................................................. SISTEMAS DIGITALES I............................................................................................................ Presentación……............................................................................................................ Teclado........................................................................................................................... Introducción, instalación y manejo de teclado........................................................ Pantalla LCD……............................................................................................................ Introducción: instalación y manejo del LCD.............................................................. Teclado y pantalla LCD................................................................................................ COMUNICACIONES I Y LABORATORIO DE COMUNICACIONES I..................................... Presentación................................................................................................................... Multiplexado y Demultiplexado................................................................................... Principios de Multiplexado............................................................................................ Multiplexado por División de Frecuencia................................................................... Transmisores-Multiplexores............................................................................................ Receptores-Demoduladores….................................................................................... Multiplexado por División de Tiempo........................................................................ Teorema de Muestreo................................................................................................... Universidad Autónoma Metropolitana Unidad Iztapalapa -2- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CAPÍTULO 4 PROYECTOS Y PROBLEMAS RESUELTOS...................................……………….. PRESENTACIÓN...............................................................................................……………….. PRIMERA PARTE: PROYECTOS UTILIZANDO VERIBEST, ORCAD DEMO................................ PROYECTOS UTILIZANDO VERIBEST....................................................................................... Compuertas Lógicas en VHDL..................................................................................... Introducción a las configuraciones de nivel dos no degeneradas........................ Formas no degeneradas de orden dos...................................................................... PROYECTOS UTILIZANDO VERIBEST Y FPGA......................................................................... Convertidor de código 2 4 2 1 a código 8 4 -2 –1..................................................... Convertidor decimal a hexadecimal....................................................................... PROYECTOS UTILIZANDO ORCAD DEMO Y FPGA............................................................... Contador ascendente / descendente modulo 8..................................................... Contador 0 a 99............................................................................................................. Contador de rizo de 0 a 7............................................................................................ SEGUNDA PARTE: PROYECTOS UTILIZANDO PIC16F84........................................................ Sumador de 3 bits y mostrar en leds........................................................................... Contador ascendente de 4 bits con mensaje de término en pantalla LCD........ Manejo de interrupciones............................................................................................ Display............................................................................................................................. Manejo combinacional de E/S digitales.................................................................... Contador ascendente/descendente........................................................................ Control de Acceso........................................................................................................ Semáforo Programable................................................................................................ Dado electrónico.......................................................................................................... Temporizador Programable.......................................................................................... Alarma............................................................................................................................. 76 77 78 78 78 81 84 88 88 93 101 101 104 107 110 110 112 114 116 118 120 122 125 127 129 132 CONCLUSIONES.................................................................................................................... 134 APÉNDICE A Veribest, OrCAD y Quartus II........................................................................ APÉNDICE B FPGA EXPRESS Y PROJECT NAVIGATOR ………………….....................…..... APÉNDICE C SOFTWARE PARA DISPOSITIVOS PAL Y GAL.................................................. APÉNDICE D MPLAB IDE e IC-PROG................................................................................... APÉNDICE E COMUNICACIONES I...................................................................................... BIBLIOGRAFÍA………………………………………………………………………………………. 137 159 169 182 188 225 Universidad Autónoma Metropolitana Unidad Iztapalapa -3- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CAPITULO 1 OBJETIVOS, RESUMEN E INTRODUCCION Universidad Autónoma Metropolitana Unidad Iztapalapa -4- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Objetivos. • Aplicar los diversos conocimientos adquiridos a lo largo de la carrera para enfrentar un problema de Ingeniería de Comunicaciones y Electrónica tal como el de diseñar y desarrollar un DEMO completo interactivo de multimedia usando lenguaje VHDL, técnica de WIRE WRAP, tecnología de PIC´s y de FPGA; empleando para ello además software de análisis, de diseño y simulación adicionales. Proporcionar a los cursos de Lógica de Conmutación I y II, Sistemas Digitales I y Comunicaciones I de un conjunto de herramientas de hardware digital y de comunicaciones que permitan consolidar los conocimientos adquiridos; pero así mismo sirvan de complemento a las actividades de laboratorio de dichos cursos. Tanto el hardware construido como el DEMO de Multimedia se instalarán en el Laboratorio T-328B del edificio T de la UAM Unidad Iztapalapa. • Resumen del Reporte. Este reporte contiene los procedimientos y descripción de las actividades principales desarrolladas para la elaboración, el aprendizaje y uso de algunas tecnologías modernas, además de las clásicas, de construcción de circuitos y diversos sistemas electrónicos necesarios para el proyecto. Incluye la metodología utilizada, los programas empleados, diseño, contenido, estructura, así como una breve descripción de cada uno de ellos. Se incluye fuentes de información para que el usuario y/o alumno pueda acudir a ellas, así como resultados obtenidos, sugerencias e instrucciones básicas del software empleado. Para acudir a la información de este documento y a los trabajos hechos en este proyecto, se deberá de contactar al asesor del mismo. Universidad Autónoma Metropolitana Unidad Iztapalapa -5- PROYECTO DE INGENIERIA ELECTRÓNICA Introducción. Casa abierta al tiempo La educación en la ingeniería, atendiendo las exigencias de las realidades del desarrollo moderno se ve obligada a renovarse continuamente, incorporando para ello los recursos que la tecnología ofrece; la carrera Ingeniería en Electrónica en lo general y el área de Sistemas Digitales en lo particular, de la Universidad Autónoma Metropolitana, se da a la tarea de incorporar a sus planes y programas de estudio recursos representativos del desarrollo tecnológico, entre ellos los dispositivos reconfigurables y los lenguajes descriptores de hardware que aseguren en el egresado una preparación congruente con su futuro ejercicio profesional. En la actualidad otro de las nuevas implementación en la tecnología tiene que ver con el uso de la red de computadoras, que se le esta dando un enfoque más productivo pero también junto con la gran labor de la educación, ya se ha iniciado un apoyo académico a estudiantes y gente en general a través de la educación en línea. La educación en línea (online education) es un caso particular de la educación a distancia (distance education), donde la forma de enseñar / aprender se desarrolla a través de una red de computadoras. Esta red puede implementarse de diversas maneras, desde una LAN (Local Area Network) hasta una red de alcance global como es Internet. El presente trabajo puede también enfocarse al uso de esta tecnología disponible en Internet, por tener ciertas ventajas en cuestión de soporte de clientes de plataforma cruzada con interfaces sencillas y muy difundidas y bajo costo de implementación. Como valor adicional, la misma tecnología puede utilizarse sin cambio alguno en una intranet de un centro educativo, en nuestro caso la UAM y particularmente en las asignaturas que se centra este reporte, con la ventaja de un mayor de conocimiento. Esto último permite el uso de materiales didácticos sofisticados, como videoconferencias y otros medios interactivos que por su complejidad resultan lentos de ser transferidos a través de una red global, como sonido o gráficos de alta resolución. Es importante resaltar que el éxito de una implementación de herramientas para la educación a distancia, no solamente se basa en las funcionalidades de los contenidos utilizados, sino de una correcta planificación del uso del mismo, la selección de los materiales adecuados y las características del grupo de estudiantes y docentes involucrados, no solamente en el uso de esta tecnología, el problema también es dentro de las aulas de nuestra universidad, otro motivo más para la elaboración de este proyecto. Los dispositivos lógicos programables (PLD) son dispositivos digitales que se pueden configurar por el usuario para implementar una amplia variedad de funciones lógicas en sistemas. Estos dispositivos tienen pines de entrada, un arreglo lógico programable y pines de entrada y salida. Muchos PLD's tienen salidas programables que incrementan su flexibilidad haciéndolos útiles para una gran variedad de aplicaciones, además estos sistemas realizados con el lenguaje descriptor de hardware, se enfocan a circuitos combinacionales y secuenciales, decodificadores, contadores, multiplexores y de-multiplexores que ofrecen respaldo a diversas aplicaciones, entre ellas los sistemas basados en microprocesadores. Con la creciente complejidad de los diseños digitales ha aparecido una necesidad de describir un circuito de la forma más eficiente y práctica posible. Un lenguaje de programación ofrece la posibilidad de un alto nivel de abstracción y es la solución adecuada para dicha tarea. Universidad Autónoma Metropolitana Unidad Iztapalapa -6- PROYECTO DE INGENIERIA ELECTRÓNICA Entre los lenguajes para la descripción de circuitos digitales, el VHDL es el que está alcanzando mayor popularidad, por ser un estándar y por su amplio campo de aplicación, desde el modelado para la simulación de circuitos, hasta la síntesis automática de circuitos. El significado de las siglas VHDL es Very High Speed Integrated Circuit (VHSIC) Hardware Description Language. VHDL es una forma en que los humanos y las máquinas puedan leer y entender la funcionalidad y la organización de sistemas de hardware digitales. Más adelante se explicará los fundamentos del VHDL pensando en su utilización para programar dispositivos de tipo FPGA. No conviene olvidar que el VHDL en sí mismo no está asociado a dispositivos programables, sino que es una descripción de un circuito en alto nivel. De cualquier modo, una descripción que sea sintetizable es casi siempre válida también para simulación, mientras que una descripción para simulación puede tener más problemas a la hora de compilarla sobre un dispositivo hardware. Otra tecnología que actualmente esta teniendo un gran auge entre estudiantes y que es motivo de muy diversas aplicaciones son los denominados microcontroladores o también muy comúnmente conocidos como PIC’s. Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabricaremos y usamos los humanos. Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En este reporte se introducen mediante ejemplos, la sintaxis del lenguaje, de forma que se cubran los bloques de las UEA de lógica de conmutación I y II haciendo referencia en el diseño digital de algunas prácticas de laboratorio y temas de la asignatura, con la intención de que rápidamente sea posible escribir programas útiles. La técnica de WIRE WRAP no se abordara de manera extensa ya que fue la forma con la que se realizo las conexiones entre los componentes en las implementaciones en hardware de los proyectos propuestos. En la parte de Comunicaciones, se trato de compaginar el programa de temas vistos en esta asignatura con los temas y aplicaciones implementados en el laboratorio ya que como sabemos hay un desfase de un trimestre entre las clases de teoría con la practica, por lo que mediante la construcción del material de apoyo se podrán anticipar de forma visual e implementada a los temas vistos. Por ultimo se incluyen un conjunto de apéndices que serán de utilidad como manuales para el apoyo en el diseño y simulación de las implementaciones. No pretende ser una guía extensa de las herramientas de diseño. Para ello, y para resolver problemas concretos, es necesario acudir a la bibliografía o a los manuales que cada fabricante ofrece. Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -7- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CAPITULO 2 ANTECEDENTES SOBRE LOS TEMAS DE PROYECTO Universidad Autónoma Metropolitana Unidad Iztapalapa -8- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo VHDL VHDL es un lenguaje de descripción de circuitos electrónicos digitales que utiliza distintos niveles de abstracción. El significado por sus siglas VHDL es VHSIC (Very High Speed Integrated Circuits) Hardware Description Language. Esto significa que VHDL permite acelerar el proceso de diseño. VHDL no es un lenguaje de programación, por ello conocer su sintaxis no implica necesariamente saber diseñar con él. VHDL es un lenguaje de descripción de hardware genérico, que permite describir circuitos síncronos y asíncronos. Para realizar esto debemos: - Pensar en puertas y biestables, no en variables ni funciones. - Evitar bucles combinacionales y relojes condicionados. - Saber qué parte del circuito es combinacional y cuál secuencial. Los circuitos descritos en VHDL pueden ser simulados utilizando herramientas de simulación para reproducir el funcionamiento del circuito. Además utilizando herramientas de síntesis se puede implementar dicho circuito en un dispositivo lógico programable o en un circuito integrado. Elementos básicos VHDL VHDL es un lenguaje y como tal, posee sus tipos de datos y operadores. Los datos se almacenan en objetos que contienen valores de un tipo dado. Identificadores. - Constant. Los objetos de esta clase tienen un valor inicial que es asignado de forma previa a la simulación y que no puede ser modificado durante ésta. O constant identificador: tipo:= valor; - Variable. Los objetos de esta clase contienen un único valor que puede ser cambiado durante la simulación con una sentencia de asignación. Las variables generalmente se utilizan como índices, principalmente en instrucciones de bucle, o para tomar valores que permitan modelar componentes. Las variables NO representan conexiones o estados de memoria. O variable identificador: tipo [:= valor]; - Signal. Los objetos de esta clase contienen una lista de valores que incluye el valor actual y un conjunto de valores futuros. Las señales representan elementos de memoria o conexiones y si pueden ser sintetizadas. -9- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Los puertos de una entidad son implícitamente declarados como señales en el momento de la declaración, ya que estos representan conexiones. También pueden ser declaradas en la arquitectura antes del BEGIN, lo cual nos permite realizar conexiones entre diferentes módulos. O signal identificador: tipo; VHDL permite utilizar tipos predefinidos, así como otros definidos por el usuario. BIT 0, 1 BIT_VECTOR (range*) BOOLEAN TRUE, FALSE CHARACTER {ascii} STRING {ascii} SEVERITY_LEVEL {WARNING, ERROR, FALURE} INTEGER range* NATURAL range* POSITIVE range* REAL range* TIME *(range: n_min TO n_max; n_max DOWNTO n_min) Casa abierta al tiempo STD_LOGIC. Tipo predefinido en el estándar IEEE 1164. Este tipo representa una lógica multivaluada de 9 valores. Además del ‘0’ lógico y el ‘1’ lógico, posee alta impedancia ‘Z’, desconocido ‘X’ ó sin inicializar ‘U’ entre otros. Igual que se permite crear un vector de bits se puede crear un vector de std_logic, STD_LOGIC_VECTOR. Para poder utilizar el tipo std_logic hay que añadir la librería que lo soporta. Para poder utilizar el tipo: use ieee.std_logic_1164.all. Para poder utilizar las funciones aritmeticológicas definidas (suma, resta multiplicación) use ieee.std_logic_arith.all. Si los vectores están en representación binaria pura use ieee.std_logic_unsigned.all. Los vectores están en C2 use ieee.std_logic_unsigned.all. -10- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Tipo Enumerado es un tipo de dato con un grupo de posibles valores asignados por el usuario. Los tipos enumerados se utilizan principalmente en el diseño de máquinas de estados type nombre is (valor1, valor2, …); Los tipos enumerados se ordenan de acuerdo a sus valores. Los programas de síntesis automáticamente codifican binariamente los valores del tipo enumerado para que estos puedan ser sintetizados. Algunos programas lo hacen mediante una secuencia binaria ascendente, otros buscan cual es la codificación que mejor conviene para tratar de minimizar el circuito o para incrementar la velocidad del mismo una vez que la descripción ha sido sintetizada. También es posible asignar el tipo de codificación mediante directivas propias de la herramienta de síntesis. Tipos Compuestos un tipo compuesto es un tipo de dato formado con elementos de otros tipos, existen dos formas de tipos compuestos, arrays y records. Un ARRAY es un objeto de datos que consiste en una “colección” de elementos del mismo tipo. type nombre is array (rango) of tipo; Un RECORD es un objeto de datos que consiste en una “colección” de elementos de distintos tipos. type nombre is record elemento1: tipo_de_dato1; elemento2: tipo_de_dato2; end record; Casa abierta al tiempo Operadores. Un operador nos permite construir diferentes tipos de expresiones mediante los cuales podemos calcular datos utilizando diferentes objetos de datos con el tipo de dato que maneja dicho objeto. En VHDL existen distintos operadores de asignación con lo que se transfieren valores de un objeto de datos a otro, y operadores de asociación que relacionan un objeto de datos con otro, lo cual no existe en ningún lenguaje de programación de alto nivel. Universidad Autónoma Metropolitana Unidad Iztapalapa -11- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo abs *, /, mod, rem + (sig.), - (sig) +, -, & and, or, nand, nor, xor := asignación de valores a constantes y variables. <= asignación de valores a señales. Estructura Básica de un Archivo fuente en VHDL. El archivo VHDL contiene la descripción del circuito que se quiere implementar. Entidades (Entity) Una entidad es la abstracción de un circuito, ya sea desde un complejo sistema electrónico hasta una simple compuerta lógica. La entidad únicamente describe la forma externa del circuito, aquí se enumeran las entradas y las salidas del diseño. Una entidad es análoga a un símbolo esquemático de los diagramas electrónicos, el cual describe las conexiones del dispositivo hacia el resto del diseño. Lo siguiente muestra un ejemplo de su contenido: 1. Define externamente al circuito o subcircuito. 2. Nombre y número de puertos, tipos de datos de entrada y salida. 3. Tienes toda la información necesaria para conectar tu circuito a otros circuitos. Figura 1.1 Ejemplo de Entity entity F is port (A, B: in bit; Y out bit); end F; Los puertos pueden ser para señales de entrada in, salida out, entradasalida o un buffer; que utilizará el modo in/out. Además, la entidad puede definir un valor genérico (GENERIC) que se utilizará para declarar las propiedades y constantes del circuito, independientemente de cual sea la arquitectura. Universidad Autónoma Metropolitana Unidad Iztapalapa -12- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo entity nombre is generic (cte1: tipo := valor1; cte2: tipo:= valor 2; …); port (entrada1, entrada2, … : in tipo; salida1, salida2, …: out tipo; puertoi : modo tipo); end nombre; Arquitectura (Architecture). Los pares de entidades y arquitecturas se utilizan para representar la descripción completa de un diseño. Una arquitectura describe el funcionamiento de la entidad a la que hace referencia. Si una entidad la asociamos con una “caja” en la que se enumeran las interfaces de conexión hacia el exterior, entonces la arquitectura representa la estructura interna de esa caja. Sus principales funciones son: 1. Define internamente el circuito. 2. Señales internas, funciones, procedimientos, constantes … 3. La descripción de la arquitectura puede ser estructural comportamiento. Lo siguiente muestra un ejemplo de su contenido: architecture arch_name of entity_name is -- declaraciones de la arquitectura -- tipos -- señales -- componentes begin -- código de descripción -- instrucciones concurrentes -- ecuaciones booleanes process begin -- código de descripción end process; end arch_name; o por Una arquitectura se describe por comportamiento o por estructura. Una entidad puede tener más de una arquitectura, pero cuando se compile se debe indicar cual es la arquitectura que queremos utilizar. Universidad Autónoma Metropolitana Unidad Iztapalapa -13- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo PROCESS: Cuando en VHDL se escribe un process, dentro de él aparece la parte secuencial del circuito. La simulación no entra en el process hasta que no haya variado alguna de las señales o variables de su lista de sensibilidad independientemente de lo que este contenido dentro del process. Por otro lado únicamente dentro de un process pueden aparecer las sentencias de tipo if y else y nunca puede aparecer una sentencia del tipo wait. Sentencias de descripción WAIT esta instrucción es utilizada en procesos que no tienen lista de sensibilidad: wait on signal_list; wait for time_expression; wait until condition; Eventos sobre las señales (‘EVENT) nos indican cuando ocurre un cambio en la señal signal'event signal'last_event signal'last_value IF – THEN – ELSE solo son aplicables dentro de un process if condición then ... –instrucciones secuenciales elsif otra_condición then ... –instrucciones secuenciales else ... –instrucciones secuenciales end if; CASE – WHEN solo son aplicables dentro de un process case expresión is when alternativa_l => ... –instrucciones secuenciales when alternativa_n => ... -- instrucciones secuenciales when others => ... -- instrucciones secuenciales end case; Universidad Autónoma Metropolitana Unidad Iztapalapa -14- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo FOR – LOOP solo son aplicables dentro de un process for loop_var in range loop ... -- instrucciones secuenciales end loop; WHILE – LOOP solo son aplicables dentro de un process while condición loop ... -- instrucciones secuenciales end loop; WHEN – ELSE Signal_name <= valor_1 when condición1 else valor_2 when condición2 else ... valor_i when condicióni else otro_valor; WITH – SELECT – WHEN with identificador select Signal_name <= valor_1 when valor_identificador1, valor_2 when valor_identificador2, ... valor_i when valor_identificadori, otro_valor when others; FPGA. Un FPGA (Field Programmable Gate Array) es un dispositivo semiconductor que contiene componentes lógicos programables e interconexiones programables entre ellos. Los componentes lógicos programables pueden ser programados para duplicar la funcionalidad de puertas lógicas básicas tales como AND, OR, XOR, NOT o funciones combinacionales más complejas tales Universidad Autónoma Metropolitana Unidad Iztapalapa -15- PROYECTO DE INGENIERIA ELECTRÓNICA como decodificadores o simples funciones matemáticas. En muchos FPGA, estos componentes lógicos programables (o bloques lógicos, según el lenguaje comúnmente usado) también incluyen elementos de memoria, los cuales pueden ser simples flip-flops o bloques de memoria más complejos. Una jerarquía de interconexiones programables permite a los bloques lógicos de un FPGA, ser interconectados según la necesidad del diseñador del sistema, algo parecido a un breadboard ß programable. Estos bloques lógicos e interconexiones pueden ser programados después del proceso de manufactura por el usuario/diseñador, así que el FPGA puede desempeñar cualquier función lógica necesaria. Las FPGA son generalmente más lentas que sus contrapartes, los circuitos integrados de aplicaciones específicas (ASIC por sus siglas en inglés), no pueden soportar diseños muy complejos, y consumen más energía. Sin embargo, ellas tienen muchas ventajas tales como la reducción del tiempo para la salida al mercado de productos, la habilidad para ser reprogramadas después de haber salido al mercado a fin de corregir posibles errores, y reduce los costos de ingeniería tales como investigación, diseño y prueba de un nuevo producto. Los vendedores pueden proporcionar versiones de FPGA, más baratas y menos flexibles, las cuales no pueden ser modificadas después de que el diseño haya sido hecho. El desarrollo de estos diseños es hecho en FPGAs regulares y entonces se migra hacia una versión mejorada que es más parecida a un ASIC. Dispositivos de lógica programable compleja, como los CPLD, son otra alternativa. • Dispositivos de propósito general capaz de implementar la lógica digital de decenas o cientos de paquetes de SSI. • Configurado por el usuario final para realizar diferentes diseños. • En algunos casos la configuración involucra la utilización de una unidad de programación. Casa abierta al tiempo ß Un breadboard es un dispositivo reutilizable, libre de soldaduras, usado para construir (generalmente de forma temporal) prototipos de circuitos electrónicos y para la experimentación en el diseño de circuitos. Arquitectura La arquitectura básica consiste en un arreglo de bloques lógicos programables (CLB) y canales de comunicación. Múltiples conectores de entrada/salida pueden caber en el tamaño largo de una fila o el ancho de una columna. Generalmente, todos los canales de comunicación tienen el mismo Universidad Autónoma Metropolitana Unidad Iztapalapa -16- PROYECTO DE INGENIERIA ELECTRÓNICA ancho (número de cables). Cualquier circuito de aplicación puede ser hecho dentro de la FPGA, siempre y cuando esta disponga de los recursos necesarios. Cada CLB contiene: - Un bloque LUT. - Una Lógica Asociada. - Un Dispositivo de Almacenamiento. Casa abierta al tiempo Figura 2.1 Bloque Lógico Programable. Un bloque lógico típico de FPGA consiste en 4 entradas a una tabla de funciones lógicas (LookUp Table), y un flip-flop como se muestra en la siguiente grafica. Figura 2.2 Bloque Lógico Hay solamente una salida, la cual puede ser ambas, la salida registrada o no registrada por el flip-flop, proveniente de la salida de la tabla de funciones lógicas. El bloque lógico tiene entonces 4 entradas para la tabla y una entrada de reloj para el flip-flop. Las señales de reloj y otras más, son manejadas por separado en FPGA´s comerciales. Para esta arquitectura, la localización de los pines de los bloques lógicos de la FPGA son mostrados a continuación: Universidad Autónoma Metropolitana Unidad Iztapalapa -17- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 2.3 Localización de los pines en el Bloque Lógico Cada entrada es accesible desde un lado del bloque lógico, mientras que el pin de salida puede conectarse a cables de comunicación en ambos canales, el de la derecha y el canal debajo del bloque lógico. Cada pin de salida del bloque lógico puede conectarse a cualquier segmento de cable en el canal de comunicación adyacente a él. Similarmente, un conector de Entrada/Salida puede conectarse a cualquier segmento de cable en el canal de comunicación adyacente a él. Generalmente, cada segmento de conexión atraviesa solamente por un bloque lógico, antes de que este termine en una de las cajas de interruptores. Mediante la selección de conexiones a través de los interruptores programables que están dentro de las cajas de conexiones, se pueden hacer líneas de conexión más largas. Para interconexiones más rápidas, algunas arquitecturas de FPGA usan líneas de conexiones más largas que atraviesan múltiples bloques lógicos. En cada punto donde se intersecan, un canal de conexión vertical y un canal horizontal, hay una caja de interruptores que permite conectar una línea, a otras tres posibles líneas adyacentes dentro del segmento del canal. Una línea solo puede conectarse con otra de las tres posibles anteriormente mencionadas, no puede conectarse directamente con líneas de otras intersecciones. Programación La tarea del programador es definir la función lógica que realizará cada uno de los CLB, seleccionar el modo de trabajo de cada IOB (Bloques de Entrada/Salida). E interconectarlos todos. El diseñador cuenta con la ayuda de herramientas de programación. Cada fabricante suele tener las suyas, aunque usan unos lenguajes de programación comunes. Estos lenguajes son los HDL o Hardware Description Language (lenguajes de descripción de hardware): • VHDL • Verilog • ABEL Simulación En esta sección se mostrará paso a paso cómo especificar y simular un diseño lógico con VHDL utilizando las herramientas comerciales, VeriBest, FPGAExpress y Project Navigator (ISE) de Xilinx para finalmente utilizar los dispositivos programables y constatar su funcionamiento. Como ejemplo se va a implementar en VHDL una función lógica sencilla de dos entradas y una salida que responde a la siguiente tabla de verdad: Universidad Autónoma Metropolitana Unidad Iztapalapa -18- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A B S 0 0 0 0 1 0 1 0 0 1 1 1 Tabla 2.4 Función lógica problema Flujo de diseño Es necesario adoptar una metodología de diseño por eso la Figura 2.5 muestra el mas apto para poder iniciar la implementación de nuestros diseños. El uso de este flujo de diseño es independiente del tipo de paquetería de software utilizada. Figura 2.5 Flujo de diseño MICROCONTROLADORES PIC´s. ¿Qué es un microcontrolador? El microcontrolador es microprocesador dedicado. En su memoria solo reside un programa destinado a gobernar una aplicación determinada; sus líneas de E/S soportan las conexiones de los sensores y actuadores del dispositivo a controlar y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solo sirve para asignar la tarea signada. Los microcontroladores están conquistando el mundo. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los Universidad Autónoma Metropolitana Unidad Iztapalapa -19- PROYECTO DE INGENIERIA ELECTRÓNICA computadores, en los teléfonos, en los hornos microondas y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el nacimiento del siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabricaremos y usamos los humanos. Para transferir el código de una PC al PIC normalmente se usa un dispositivo llamado programador. La mayoría de PICs que se distribuyen hoy en día incorporan ICSP (In Circuit Serial Programming, programación serie incorporada) o LVP (Low Voltage Programming, programación a bajo voltaje), lo que permite programar el PIC directamente en el circuito destino. Existen muchos programadores de PICs, desde los más simples que dejan al software los detalles de comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas tensiones de alimentación e implementan en hardware casi todas las funcionalidades. Muchos de estos programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para enviar las órdenes al PIC que se desea programar.. El software de programación actualmente es amplio, puede ser desde Icprog hasta software libre, muy comunes entre la gente que utiliza este tipo de microcontroladores. Se pueden obtener directamente de Internet muchos programadores y/o depuradores además de una amplia información El PIC16F84 es un microcontrolador de la familia PIC, fabricada por la empresa Microchip. En este trabajo se eligió una familia de microcontroladores: los PIC de Microchip Technology Inc. Las razones que nos motivaron a estudiar este tipo de microcontroladores son sencillos, modernos, rápidos, baratos, se pueden escribir y borrarlos muchas veces, disponen de una excelente documentación. Microchip dispone de cuatro familias de microcontroladores de 8 bits para adaptarse a las necesidades. *Gama enana: PIC12C(F)XXX de 8 pins. Su principal característica es su tamaño, al disponer todos sus componentes de 8 pines, el formato de sus instrucciones puede ser de 12 o de 14 bits y su repertorio es de 33 o 35 instrucciones. *Gama básica: PIC16C5X con instrucciones de 12 bits. Se trata de una serie de PIC de recursos limitados, pero con una de las mejores relaciones costo/prestaciones. Sus versiones están encapsuladas con 18 y 28 pines. Tienen un repertorio de 33 instrucciones cuyo formato consta de 12 bits. *Gama media: PIC16CXXX con instrucciones de 14 bits. Es la gama mas variada y completa de los PIC. Abarca modelos con encapsulado desde 18 pines hasta 68, el repertorio de instrucciones es de 35 de 14 bits, También disponen de interrupciones y una pila de 8 niveles que permite el anidamiento de subrutinas. Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -20- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo *Gama alta: PIC17CXXX con instrucciones de 16 bits. Se alcanzan las 58 instrucciones de 16 bits en el repertorio y sus modelos disponen de un sistema de gestión de interrupciones vectorizadas muy potente. También incluyen variados controladores de periféricos, puertas de comunicación serie y paralelo con elementos externos y un multiplicador hardware de gran velocidad. Dentro de estas familias seleccionamos un modelo concreto: El PIC16F84A, este PIC pertenece a la familia de la gama media y dentro de ella es uno de lo más pequeños; solo tiene 18 pines. Además es el que dispone de menos recursos, el resto de sus parientes tiene convertidores AD y DA, comparadores analógicos tensión interna de referencia, mas líneas de E/S, mas capacidad de memorias, varios temporizadores y un largo etcétera de dispositivos de los PIC. Todos los modelos de microcontroladores responden a la arquitectura RISC, que significa “Computador de Juego de Instrucciones Reducido”. No sólo implica que el numero de instrucciones máquina que es capaz de interpretar y ejecutar el procesador es pequeño, como sucede en los PIC16X8X, que constan de 35, sino también que posee características como: Instrucciones simples y rápidas, instrucciones que pueden usar cualquier operando y finalmente la longitud de las instrucciones y los datos es constante. Estructura Se trata de un microcontrolador de 8 bits y 18 pines, que a demás consta internamente de: • Memoria Flash de programa (1K x 14). • Memoria EEPROM de datos (64 x 8). • Memoria RAM (67 registros x 8). • Un temporizador/contador (timer de 8 bits). • Un divisor de frecuencia. • Varios puertos de entrada-salida (13 pines en dos puertos, 5 pines el puerto A y 8 pines el puerto B). Otras características son: • Manejo de interrupciones (de 4 fuentes). • Perro guardián (watchdog). • Bajo consumo. • Frecuencia de reloj externa máxima 10MHz. (Hasta 20MHz en nuevas versiones). La frecuencia de reloj interna es un cuarto de la externa, lo que significa que con un reloj de 20Mhz, el reloj interno sería de 5Mhz y así pues se ejecutan 5 Millones de Instrucciones por Segundo (5 MIPS) • No posee convertidores analógico-digitales ni digital-analógicos. • Pipe-line de 2 etapas, 1 para búsqueda de instrucción y otra para la ejecución de la instrucción (los saltos ocupan un ciclo más). Universidad Autónoma Metropolitana Unidad Iztapalapa -21- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo • • Repertorio de instrucciones reducido (RISC), con tan solo 30 instrucciones distintas. 4 tipos distintos de instrucciones, orientadas a byte, orientadas a bit, operación entre registros, de salto. Diagrama de Conexiones. Se describe brevemente la función de cada pin. • VDD: Pin por la que se aplica la tensión positiva de la alimentación • VSS: Pin conectada a tierra o negativo de alimentación • OSC1/CLKIN: Pin por la que se aplica la entrada del circuito oscilador externo que proporciona la frecuencia de trabajo del microcontrolador. • OSC2/CLKOUT: Pin auxiliar del circuito oscilador. • MCLR: Este pin se activa con nivel lógico bajo, su activación origina la reinicialización o Reset del PIC. • RA0-RA4: Son las 5 líneas de E/S digitales correspondientes a la puerta A, La línea RA4 multiplexa otra función expresada por TOCK1.En este segundo caso sirve para recibir una frecuencia externa para alimentar al temporizador TMRO. • RB0-RB7: Estos 8 pins corresponden a 8 líneas E/S digitales de la puerta B. La línea RB0 multiplexa otra función, que es la de servir como entrada a una petición externa de una interrupción, por eso se le denomina RBO/INT. Figura 2.6 Diagrama del circuito integrado Los PIC16F84A tiene, un encapsulado de 18 pins, dos de ellas soportan la tensión de alimentación, otras dos reciben la señal del oscilador externo y otra se utiliza para generar un Reset. Los 13 pines restantes funcionan como líneas de E/S para controlar las aplicaciones. Dentro de la estructura del microcontrolador debido a la necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a las tradicionales que seguían la arquitectura Von Neuman. En la arquitectura Harvard son independientes la memoria de instrucciones y la Universidad Autónoma Metropolitana Unidad Iztapalapa -22- PROYECTO DE INGENIERIA ELECTRÓNICA memoria de datos y cada una dispone de su propio sistema de buses para su acceso. Casa abierta al tiempo Memoria de Programa. Tienen implementada 1 K palabras de 14 bits cada una, ocupando las direcciones comprendidas entre 0x0000 y la 0x03FF, El vector Reset está en el 0x0000 y el vector de la interrupción es 0x0004. (Figura 2.7) Figura 2.7 Memoria de Programa Memoria de Datos RAM. Consta de 2 bancos de 128 cada uno. El PIC16F84A, en las primeras 12 direcciones de cada banco se encuentran los registros de propósito específico (SFR) y las 68 siguientes son registro de propósito general (GPR). (Figura 2.8) Universidad Autónoma Metropolitana Unidad Iztapalapa -23- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 2.8 Memoria RAM Los registros de propósito específico (SFR) son: Figura 2.9 Registros (SFR) Universidad Autónoma Metropolitana Unidad Iztapalapa -24- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Especificaciones de los registros SFR de los bancos de la memoria de datos RAM. La abreviatura x significa desconocido; u: no cambia; -: no implementado, se lee como 0, y q: valor depende de la condición. Juego de Instrucciones. Figura 2.10 Instrucciones del PIC16F84A El juego de instrucciones ofrece un conjunto de 35 ellas que tiene el PIC16F84A de la gama media de Microchip Tecnology Inc. Un registro muy importante en la familia de los PIC es el registro W que es el encargado de realizar las operaciones lógicas o aritméticas que requiere la ejecución del programa con dos operándoos, uno que proviene del registro W y el otro que se encuentra en cualquier otro registro o en el propio códigos de instrucciones. Universidad Autónoma Metropolitana Unidad Iztapalapa -25- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Usos En los últimos años se ha popularizado el uso de este microcontrolador debido a su bajo coste y tamaño. Se ha usado en numerosas aplicaciones, que van desde los automóviles a decodificadores de televisión. Puede ser programado tanto en lenguaje ensamblador como en Basic y principalmente en C, para el que existen numerosos compiladores Programa de ejemplo A continuación hay un pequeño programa en ensamblador (MPASM) que pone a 0 las posiciones de memoria 20 y 21 (en hexadecimal) usando un direccionamiento indirecto: MOVLW 20h MOVWF FSR CLRF INDF INCF FSR CLRF INDF MOVLW k: (Move Literal to W) Es una instrucción que carga en el registro de trabajo W, un literal (constante) k, que en este caso es 20h. MOVWF f: (Move W to File), Copia el contenido del registro W a la posición de memoria f. En este caso, FSR representa una dirección de memoria. FSR es el registro usado para direccionamiento indirecto. En FSR se carga la dirección de memoria que se va a direccionar con INDF (otro registro). CLRF f: (Clear File), Pone en 0 el registro en la posición de memoria f. INCF f: (Increment File), Incrementa en uno el valor almacenado en la posición de memoria f. Entrando a lo que es la programación de nuestro PIC, utilizamos un lenguaje ensamblador que se encarga de la programación de los microcontroladores en este caso es ASM. Un programa para compilar el archivo, es el MPLAB IDE de microchip y por ultimo para grabar el PIC tenemos el ICPROG. Universidad Autónoma Metropolitana Unidad Iztapalapa -26- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CAPITULO 3 DESARROLLO DEL PROYECTO Universidad Autónoma Metropolitana Unidad Iztapalapa -27- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo LOGICA DE CONMUTACIÓN I y II. En esta sección se encuadra dentro de las asignaturas o Unidad de Enseñanza-Aprendizaje (UEA) como son Lógica de Conmutación I y II del segundo nivel, en el Tronco Básico Profesional de la licenciatura, que tiene como objetivo: proporcionar al alumno los conocimientos y la formación teóricaexperimental propios de la Ingeniería Electrónica en particular. Lógica de Conmutación I Tiene carácter trimestral y se imparte durante el séptimo trimestre. De un total de 12 créditos disponibles, 4.5 horas son de teoría y la docencia de laboratorio se ha distribuido de tal forma que los alumnos realizan una práctica de tres horas cada semana. Esta asignatura debe sentar las bases de los siguientes cursos de Sistemas Digitales I y II. Los objetivos que se plantean al finalizar esta UEA son los siguientes: El alumno: -Manejará los fundamentos del diseño electrónico digital, desde un enfoque evolutivo, estructurado y algorítmico. -Conocerá las diferentes álgebras para la descripción de problemas lógicos, así como las técnicas asociadas con su aplicación práctica. -Podrá describir formalmente y sintetizar soluciones para problemas combinatorios y problemas secuenciales simples. -Será capaz de describir y aplicar el proceso de diseño descendente para los sistemas digitales y conocerá los métodos para la depuración de los mismos. -Conocerá las características y el uso de los diferentes tipos de dispositivos digitales disponibles, desde los elementos clásicos hasta la lógica programable moderna. Con estos objetivos la UAM ha definido el contenido sintético del curso para la UEA en ocho unidades con su respectiva duración en el trimestre: -Unidad I “Teoría de conmutación, lógica y sistemas binarios” . 1 Semana. -Unidad II “Álgebra de Boole”. 1 semana. -Unidad III “Algebra de Red-Müller” . 1 semana. -Unidad IV “Técnicas de simplificación de funciones conmutadas”. 2 semanas. -Unidad V “Elementos de Lógica Combinatoria”. 1 semana. -Unidad VI “Elementos de Lógica Secuencial”. 2 semanas. -Unidad VII “Implantación de operaciones aritméticas fundamentales”. 1 semana. -Unidad VIII “Sistemas Secuenciales Simple (SSS)". 2 semanas. Universidad Autónoma Metropolitana Unidad Iztapalapa -28- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Como sabemos la modalidad trimestral conlleva a la escasez en el tiempo para profundizar en cada uno de los temas, debido a la atención que el alumno pone a otras UEA´s, exámenes de evaluación, practicas de laboratorio, entre otras causas. Con este reporte terminal el alumno podrá utilizar las herramientas CAD(diseño asistido por computadora, por sus siglas en inglés), usar dispositivos programables, es decir, una mejor comprensión de las tecnologías y herramientas de diseño digital, dando como resultado mejorar en su propia modalidad de conducción en el laboratorio con una mejor discusión y solución de problemas prácticos en los grupos de trabajo. En por eso que se han construido varias prácticas que van aumentando su complejidad de manera progresiva, las puede encontrar en el CD adjunto a este reporte. En todas ellas, y para incentivar que los alumnos conozcan el tema antes de asistir al laboratorio, se recomienda que realicen un estudio teórico antes de entrar en el laboratorio, o solamente asegurarse de haber comprendido correctamente la información teórica adquirida en clase. Además del estudio teórico, cada práctica consta de un estudio previo y un estudio práctico. El estudio previo es una documentación que se le proporciona al alumno para poder realizar la práctica. Pueden ser conceptos no tratados en clase o bien otros que a pesar de haberse tratado en la teoría se ha visto conveniente recordarlos o bien conocerlos por primera vez. En el desarrollo teórico se les pide que diseñen un circuito o que calculen teóricamente parte de la solución de la práctica en cuestión. Como se ha dicho antes, el objetivo es incentivar el trabajo previo del alumno y que, de esa forma, aproveche el tiempo en el laboratorio. Por tanto, no es tan importante la corrección de los resultados de este desarrollo, como su comprobación es durante la sesión práctica; en caso de error los pueden corregir y entregar como parte del estudio práctico. El estudio práctico consiste en montar los circuitos diseñados en el apartado anterior y comprobarlos experimentalmente. Con esto se muestra un panorama general de lo que actualmente utilizan la mayoría de los profesores que imparten en estos tipos de asignaturas. Lógica de Conmutación II También es de carácter trimestral y se imparte durante el octavo trimestre. También de un total de 12 créditos disponibles, 4.5 horas son de teoría y la docencia de laboratorio se ha distribuido de tal forma que los alumnos realizan una práctica de tres horas cada semana. Esta asignatura, al igual que Lógica de Conmutación I, debe sentar las bases de los siguientes cursos de Sistemas Digitales I y II. Los objetivos que se plantean al finalizar esta UEA son los siguientes: Universidad Autónoma Metropolitana Unidad Iztapalapa -29- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo El alumno: -Conocerá los fundamentos del diseño de sistemas digitales secuenciales complejos, mediante un enfoque algorítmico -Podrá elegir, para la solución de problemas secuenciales, entre las alternativas de diseño cableado o micro-programado de secuenciadores, resaltando sus ventajas y deficiencias. -Contará con las bases para una mejor comprensión de tópicos de arquitectura de computadoras -Consolidará sus conocimientos de diseño digital tanto a circuitos combinacionales como secuenciales Con estos objetivos la UAM ha definido el contenido sintético del curso para la UEA en cuatro unidades con su respectiva duración en el trimestre además de tópicos suplementarios: -Unidad I. “MÁQUINAS DE ESTADO ALGORITMICAS (ASM)”. 1 semana. -Unidad II. “SINTESIS DE DISEÑOS BASADOS EN ASM”. 2 semanas. -Unidad III. “SECUENCIADOR CABLEADO (SC)”. 3 semanas. -Unidad IV. “SECUENCIADOR MICROPROGRAMADO (SMP)”. 3 semanas. Es necesario saber que Lógica de Conmutación II es impartida en algunos casos por el mismo profesor con el cual los alumnos cursaron Lógica de Conmutación I, esto debido a que es necesario conservar la continuidad en la metodología de enseñanza y uso de las herramientas de diseño vistas anteriormente. Esta medida es tomada por la coordinación de la carrera de Ingeniería Electrónica dentro de la Unidad Iztapalapa. Otro aspecto de importancia en este punto es precisamente evitar la segmentación de conocimientos problemática en el uso del Hardware y Software, por lo que este reporte puede colaborar en esta situación que se presenta, ya que en el siguiente capítulo, como también en el CD, el alumno y/o el profesor podrá encontrar ejercicios relacionados con el contenido de cada una de esta UEA´s y algunos problemas propuestos relacionados con practicas de laboratorio. Si su intención es el de ponerlos en practica, este reporte les facilita la tarea a través de sus apéndices. Universidad Autónoma Metropolitana Unidad Iztapalapa -30- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Metodología utilizada para la enseñanza. La metodología propuesta en este reporte se puede resumir en los siguientes pasos: 1.- Tipo de problema. Dependiendo de que tipo de aplicación podemos o queremos implementar, se puede dirigir a los ejemplos propuesto para algunas de las unidades de las UEA´s o también a las prácticas de laboratorio propuestas. 2.- Tipo de Software a usar. Una vez decido la implementación, se podrá tener acceso a los archivos fuentes que se encuentran en el DEMO o CD, y decidir el software acorde a su aplicación. Esto lo encontrara en los apéndices anexos a este reporte de proyecto terminal. 3.- Auto-aprendizaje. Aunque a veces de lo que carecemos los alumnos y profesores es de tiempo, es necesario disponer del necesario para ejecutar cierta implementación una vez seleccionada y ver los resultados. Como se les otorga los archivos fuentes y además de una manera rápida de simularlos con el software, se procuro que el alumno y/o el profesor pueda ejecutar al mismo tiempo todo estos pasos y no, como tradicionalmente se realiza, con un estudio teórico, aplicación a implementar, tipo de tecnología a utilizar, aprendizaje de las herramientas, y una vez teniendo comprendido lo anterior, la simulación, corrección de errores y entrega de resultados. Es importante mostrar que el propósito en el análisis del contenido sintáctico de las UEA´s de Lógica de Conmutación I y II, no es de criticar o restarle importancia al mismo, sino todo lo contrario; es el de ampliar aun más uno de los tipos de sesiones dentro de la modalidad de conducción de la asignatura, el cual de acuerdo a la UAM, se le ha denominado: Laboratorio de simulación y síntesis de sistemas digitales basado en herramientas CAD y dispositivos programables. Universidad Autónoma Metropolitana Unidad Iztapalapa -31- PROYECTO DE INGENIERIA ELECTRÓNICA Conjunto de ejemplos ya disponibles para lo siguiente: UNIDAD I. TEORIA DE CONMUTACION, LOGICA Y SISTEMAS BINARIOS. Para mayor información a los temas contenidos en esta unidad, se puede consultar la página web de la licenciatura. Se recomienda que el lector consulte el libro de Electrónica Digital de Santiago Acha de la editorial Alfaomega de la bibliografía, para que conozca más información sobre los temas. UNIDAD II. ALGEBRA DE BOOLE. Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. UNIDAD III. ALGEBRA DE REED-MÜLLER. La información para esta unidad es muy limitada. Para más información dirigirse con el Asesor de este proyecto terminal. UNIDAD IV. TECNICAS DE SIMPLIFICACION DE FUNCIONES CONMUTADAS. Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. UNIDAD V. ELEMENTOS DE LOGICA COMBINATORIA. Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. UNIDAD VI. ELEMENTOS DE LOGICA SECUENCIAL. Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. UNIDAD VII. IMPLANTACION DE OPERACIONES ARITMETICAS FUNDAMENTALES. Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. UNIDAD VIII. SISTEMAS SECUENCIALES SIMPLES (SSS) Para ver los ejemplos relacionados con esta unidad, abrir la carpeta de esta unidad dentro de la carpeta de Lógica de Conmutación I y II del disco adjunto. LÓGICA DE CONMUTACIÓN 2. Esta carpeta también la encontrara en el disco. En ella podrá encontrar ejemplos relacionados ya con el diseño de sistemas digitales, se adjunta una carpeta de ejemplos previos al estudio de los sistemas, se recomienda que el alumno y/o el profesor revisen previamente los temas que están destinados al estudio de esta UEA y así poder relacionar correctamente las aplicaciones. Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -32- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo SISTEMAS DIGITALES Presentación Vivimos en la era digital donde todo el mundo digital esta compuestos por 1’s y 0’s, donde la informática y la electrónica, que constituye una de las bases de la tecnologías de Información; y el diseño de sistemas digitales cumplen el papel importante para comprender la lógica digital de los sistema, así como el almacenamiento de la información a través de diferentes dispositivos almacenamiento y además es el puente entre la electrónica y la arquitectura de computadoras. El estudio de los sistemas digitales nos ayuda a comprender la forma en como trabajan, así como el uso de dispositivos programables para su aplicación en procesos prácticos. En la actualidad los Sistemas Digitales son de gran importancia en las áreas de ingeniería y ciencias, dentro de sus aplicaciones se encuentran varios campos como la medicina, la aeronáutica, las telecomunicaciones, la geofísica, la astronomía y otras. Dentro de los Sistemas Digitales, existe una parte importante para el mejor funcionamiento estos sistemas, que son los dispositivos o periféricos de entrada y/o salida, dentro de este tema abordaremos dos de los mas importantes dispositivos que son los teclados, para introducir información al sistema digital y pantallas para mostrar información de él, estos dispositivos son fundamentales para la UEA de Sistemas Digitales ya que son útiles para los tres cursos de la misma que marca el plan de estudios de la Lic. en Ingeniería Electrónica. Teclado Introducción, instalación y manejo de teclado Un periférico muy habitual para introducir información al sistema por parte del usuario es el teclado. Nos referimos al un teclado matricial de 16 teclas, que están distribuidas en cuatro filas y cuatro columnas (Figura 3.1). Las ocho terminales del teclado, cuatro filas y cuatro columnas, se conectaran a las ocho líneas de E/S de la puertaB del PIC. Cuando se pulsa una tecla, queda en contacto una fila con una columna. Si ninguna tecla esta presionada, las filas están desconectadas de las columnas. Para explorar el teclado y averiguar en cada momento cual es la tecla que se halla pulsada, se sigue el siguiente método. Se va a trabajar con el nivel lógico alto actuando como nivel inactivo, siendo el nivel bajo al que consideramos activo. Por los terminales de las filas del teclado se introducen cuatro niveles lógicos, uno activo (bajo) y los otros tres inactivos (altos). Si existe alguna tecla pulsada en la fila por la que se ha Universidad Autónoma Metropolitana Unidad Iztapalapa -33- PROYECTO DE INGENIERIA ELECTRÓNICA introducido el nivel bajo, dicho nivel saldrá por la columna correspondiente con la que haga contacto. En consecuencia, leyendo los estados lógicos de los terminales de las columnas (RB0-RB3) averiguamos si hay alguna tecla pulsada en la fila por la que se ha introducido el nivel bajo, puesto que si no hay ninguna en todas las columnas se leerá nivel alto inactivo. Procedimiento secuencial a introducir el nivel bajo por cada una de las cuatro filas y a leer los niveles de salida en las columnas, se podrá determinar la tecla pulsada en cada momento. Casa abierta al tiempo Figura 3.1 Teclado Figura 3.1 Al introducir a las filas el código 1110 por las líneas de salida de la puertaB (RB7-RB4), se obtiene en las filas conectadas a las líneas de entrada de PB (RB3-RB0) el código 0111 si la tecla F esta presionada. Por ejemplo, si por las líneas RB7-RB4 se aplica a las filas los niveles lógicos 1110, el nivel bajo quedara soportado por la primera fila, la unida a la línea RB4. Si en esta situación se halla pulsada la tecla F, al leer los estados de las columnas presentes sobre las líneas RB3-RB0, por la línea RB3 saldrá el nivel bajo, mientras que por las restantes habrá nivel alto. Se habrá obtenido en las columnas el código 0111(RB3-RB0). En resumen se ha introducido el código 1110 a las filas por las líneas RB7-RB4 y en las líneas RB3-RB4 y en las líneas RB3-RB0 se lee el código 0111 que se corresponde con tecla F. El programa de exploración del teclado ira introduciendo por las cuatro líneas de más peso de PB los cuatro códigos correspondientes a la introducción del nivel bajo en cada caso por una de ellas, o sea, los códigos 0111, 1011, 1101, 1110. Al introducir cada uno de estos códigos se explora el nivel en las columnas conectadas a las líneas de menos peso PB. Cuando sale un nivel bajo, se averigua la tecla presionada por la intersección de dicha fila con dicha concreto que representa esa posibilidad. En la Figura 3.2 se muestra la tabla correspondiente a la pulsación de cada una de las 16 teclas y código hexadecimal que existe con los niveles lógicos que se introducen por las filas y los que se obtienen en las columnas. Universidad Autónoma Metropolitana Unidad Iztapalapa -34- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.2 Tabla de conversión La Tabla de la Figura 3.2 muestra los códigos binarios y hexadecimales que se obtienen con el pulsado de cada una de las 16 teclas del teclado matricial. Cuando no hay ninguna tecla pulsada en la fila aparecen cuatro niveles altos en las cuatro columnas, por estar desconectadas al aire y corresponderlas estado de alta impedancia, que en lógica TTL es equivalente al nivel alto. Para asegurar dicho nivel alto, las líneas de las PUERTAB pueden conectarse al positivo de la alimentación mediante unas resistencias de pull-up internas. Figura 3.3 Conexión del teclado con las líneas de la PUERTAB del PIC16F84. Universidad Autónoma Metropolitana Unidad Iztapalapa -35- PROYECTO DE INGENIERIA ELECTRÓNICA Para el manejo del teclado se utilizan las librerías P16F84A.INC y TECLADO.ASM. Se recomienda usar la primera en la cabecera de cualquier programa con un PIC de la gama media. En ella se definen todos los registros internos fundamentales que se manejan en el código que resuelve las aplicaciones. TECLADO.ASM ; Conjunto de rutinas para el manejo del teclado. No es un programa en sí mismo. Para utilizarlo hay que colocar en el programa principal: KEY_VAR; EQUdir_inicio_del_bloque ;BLOQUE DE ETIQUETAS CBLOCK KEY_VAR ; Inicio de las variables TECLA ; Retorno del código de tecla KEY_1 ; Nº de filas a explorar KEY_2 ; Temporal de código KEY_DELAY_1 ; Variable de temporizador KEY_DELAY_2 ; Variable de temporizador ENDC ;RUTINA KEY_SCAN: Rutina de exploración del teclado. La variable “Tecla" retorna; con el código de la tecla pulsada o el código 0x80 si no se pulsa ninguna. KEY_SCAN bsf STATUS,RP0 ;Selecciona pagina 1 movlw b'00001111' movwf PORTB ;RB7-RB4 salidas, RB3-RB0 entradas bsf OPTION_REG,NOT_RBPU ;Activa cargas pull-up bcf STATUS,RP0 ;Selecciona pagina 0 movlw 4 movwf KEY_1 ;Nº de columnas a explorar movlw b'01111111' movwf TECLA ;Columna a activar KEY_SCAN_1 movf TECLA,W movwf PORTB ;Activa fila nop movf PORTB,W movwf KEY_2 subwf TECLA,W ;Lee las columnas btfss STATUS,Z ;Hay alguna pulsada ? goto KEY_SCAN_2 ;Si hay alguna pulsada bsf STATUS,C ;No hay ninguna en esa fila rrf TECLA,F ;Selecciona siguiente fila decfsz KEY_1,F ;Salta si se han terminado las filas Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -36- PROYECTO DE INGENIERIA ELECTRÓNICA goto KEY_SCAN_1 movlw 0x80 goto VOLVER ;Retorna código 0x80 (no hay pulsación) KEY_SCAN_2 movlw .100 ;Bucle de temporizador de unos 20 ms movwfKEY_DELAY_1 ;para evitar el rebote de los pulsadores KEY_SCAN_3 clrf KEY_DELAY_2 clrwdt KEY_SCAN_4 decfsz KEY_DELAY_2,F goto KEY_SCAN_4 decfsz KEY_DELAY_1,F goto KEY_SCAN_3 movf TECLA,W ;Tras la temporizador se lee nuevamente movwf PORTB ;si la tecla es la misma. Así se nop ;evitan los rebotes. movf PORTB,W subwf KEY_2,W btfss STATUS,Z ;Es la misma ?? goto KEY_SCAN_1 ;No, seguir con la exploración movf KEY_2,W ;Si, guardar en variable de salida TECLA el valor VOLVER movwf TECLA return ;Fin de exploración ;RUTINA KEY_HEX: Convierte el código de tecla que haya en la variable "Tecla" a ;Hex. (0-F). El resultado se devuelve en la variable "Tecla". Usa como rutina auxiliar; Key_tabla KEY_TABLA movf KEY_1,W addwf PCL,F ;Calcula desplazamiento retlw 0x7D ;0 retlw 0xEE ;1 retlw 0xED ;2 retlw 0xEB ;3 retlw 0xDE ;4 retlw 0xDD ;5 retlw 0xDB ;6 retlw 0xBE ;7 retlw 0xBD ;8 retlw 0xBB ;9 Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -37- PROYECTO DE INGENIERIA ELECTRÓNICA retlw 0x7E ;A retlw 0x7B ;B retlw 0x77 ;C etlw 0xB7 ;D retlw 0xD7 ;E retlw 0xE7 ;F KEY_HEX movf TECLA,W movwf KEY_2 ;Almacena el código temporalmente clrf KEY_1 ;Contador HEX. a 0 KEY_HEX_2 call KEY_TABLA ;Busca código en la tabla subwf KEY_2,W ;Compara con el de la tecla btfsc STATUS,Z ;Coincide ? goto KEY_HEX_1 ;Si incf KEY_1,F ;No, incrementa contador HEX. goto KEY_HEX_2 KEY_HEX_1 movf KEY_1,W movwf TECLA ;Carga contador HEX. en la variable de salida return ;RUTINA HEX_7SEG: Rutina de conversión de HEX. (0-F) a 7 segmentos. El acumulador W contiene, durante la llamada, el código HEX. Y, al retornar, el correspondiente a 7 segmentos HEX_7SEG andlw b'00001111' addwf PCL,F ;Desplazamiento sobre la tabla retlw b'00111111' ;0 retlw b'00000110' ;1 retlw b'01011011' ;2 retlw b'01001111' ;3 retlw b'01100110' ;4 retlw b'01101101' ;5 retlw b'01111101' ;6 retlw b'00000111' ;7 retlw b'01111111' ;8 retlw b'01100111' ;9 retlw b'01110111' ;A retlw b'01111100' ;B retlw b'00111001' ;C retlw b'01011110' ;D Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -38- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo retlw retlw b'01111001' ;E b'01110001' ;F Una vez vista las rutinas que se usan con el teclado y su funcionamiento básico, un problema ilustrativo es el siguiente. Es un programa que genera un pitido por medio de un zumbador, auxiliado por un oscilador conectado a RA3, cuya duración dependerá del valor de la tecla pulsada. La tecla “0” produce un pitido de una duración determinada, dicha duración se incrementa con el valor de cada tecla hasta llagar a “F”, cuyo pitido es el de duración mayor, dentro del programa se utilizan las librerías TECLADO.ASM Y P16F84A.INC Esquema Eléctrico: Figura 3.4 Diagrama eléctrico del teclado. Dentro de esta aplicación, la Figura 3.3 muestra el esquema eléctrico de conexiones utilizado para el solo uso del teclado que junto con nuevos dispositivos como el buzzer, como el mostrado en la Figura 3.4, podrá observarse finalmente la aplicación de un teclado musical. La Figura 3.5 muestra el diagrama de flujo utilizado, es decir, el orden y cada uno de los aspectos cubiertos en el diseño del código en ensamblador. Universidad Autónoma Metropolitana Unidad Iztapalapa -39- PROYECTO DE INGENIERIA ELECTRÓNICA Diagrama de Flujo: Casa abierta al tiempo Figura 3.5 Funcionamiento del teclado El programa de comentado ;"TECLADO MUSICAL";Se desea realizar un programa que genere un pitido por el zumbador conectado a RA3; cuya duración dependa del valor de la tecla pulsada, siendo la "0" la tecla de pitido m s ;corto, y la “F" la de pitido m s largo. ;DIRECTIVAS DEL PROGRAMA LIST P=16F84a ; Se emplea el PIC 16F84a RADIX HEX ; Sistema de numeración hexadecimal __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ; Configuración de fusibles ;ETIQUETAS DEL PROGRAMA #INCLUDE <P16F84A.INC> ; Etiquetas gen‚ricas para los PIC 16f84a TEMP_1 EQU 0x0C TEMP_2 EQU 0x0D DELAY_1 EQU 0x0E DELAY_2 EQU 0x0F DELAY_3 EQU 0x10 KEY_VAR EQU 0x11 ;PROGRAMA PRINCIPAL ORG 0 ; El programa comienza en la dirección 0 y goto INICIO ; salta a la dirección 5 para sobrepasar el ORG 5 ; vector de interrupción INCLUDE "TECLADO.ASM" ; Coloca las rutinas tras el vector de interrupción -40- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA INICIO Casa abierta al tiempo bsf STATUS,RP0 ; Selección del banco 1 clrf PORTA ; Se configura la puerta A como salida bcf STATUS,RP0 bcf PORTA,3 ; Se desactiva el zumbador NO_HAY call KEY_SCAN ; Se hace un chequeo del teclado movlw 0x80 subwf TECLA,W ; Sobre TECLA quedar la tecla pulsada o 0x80 btfsc STATUS,Z goto NO_HAY ; No se ha pulsado ninguna tecla call KEY_OFF ; Si se ha pulsado. Se espera a que se suelte call KEY_HEX ; Se pasa el valor a hexadecimal movf TECLA,W ; Ese valor servir para determinar la duración b addlw 0x01 ; Se suma 1 para que el "0" no sea el de mayor temporización bsf PORTA,3 ; Se activa el zumbador (por nivel alto) call DELAY_V bcf PORTA,3 ; Se desactiva el zumbador goto NO_HAY ; Se vuelve a empezar ;RUTINA KEY_OFF: Esta rutina espera que la tecla recién pulsada sea soltada. Debe usarse justo después de llamar a la rutina KEY_SCAN KEY_OFF movf TECLA,W movwf TEMP_1 ; Guarda temporalmente la tecla KEY_OFF_NO call KEY_SCAN ; Mira si se ha soltado movlw 0x80 subwf TECLA,W btfss STATUS,Z goto KEY_OFF_NO ; Bucle mientras no se suelte movf TEMP_1,W ; Ya se ha soltado movwf TECLA ; Se repone la tecla return ;RUTINA DE DELAY VARIABLE: Esta rutina realiza una temporización que ; depende del valor del acumulador en el momento en que se le llama DELAY_V movwf DELAY_1 clrf DELAY_3 clrf DELAY_2 DELAY_LOOP decfsz DELAY_3,F goto DELAY_LOOP decfsz DELAY_2,F goto DELAY_LOOP decfsz DELAY_1,F goto DELAY_LOOP return END -41- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.6 Montaje del PIC16F84, oscilador y zumbador, al frente y reverso Figura 3.7 Montaje del teclado al frente y reverso Figura 3.8 Montaje final De Figura 3.6 a Figura 3.8 muestran el circuito construido con técnica de Wire Wrap, para observar los resultados de esta aplicación en el uso del teclado. Para entender de manera mas optima el funcionamiento del programa anterior, se muestra un video clip del teclado en funcionamiento localizado. D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Pantalla LCD Introducción, instalación y manejo del LCD La pantalla de cristal líquido, LCD es un periférico de salida visual muy importante, flexible, eficaz y relativamente económico, siendo los interruptores los dispositivos más adecuados para optimizar sus prestaciones y control. En realidad, el modulo LCD tiene incrustado un interruptor especifico para regular su funcionamiento. Las pantallas LCD mas comunes presentan un numero variable de caracteres formados por matriz de 5x7 píxeles en una o varias líneas. Nos referimos al modulo LCD con microcontrolador incrustado, modelo 44780 de Hitachi que tiene la probabilidad de visualizar dos líneas de 16 caracteres de cada una. Dispone de 14 terminales de conexión, cuya función es la siguiente: 1.- Ocho terminales (D0-D7) reciben los caracteres ASCII a representar, así como ciertos códigos de control que regulan los efectos de visualización. También por ellos, el modulo LCD envía información sobre su estado interno. 2.- Por las terminales Vdd y Vss se aplica la alimentación de +5V y tierra respectivamente. Universidad Autónoma Metropolitana Unidad Iztapalapa -42- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 3.- El Terminal Vo regula el contraste de la pantalla de cristal liquido al aplicarle, mediante un potenciómetro, una tensión variable comprendida entre 0 y +5V. 4.- Las tres terminales restantes controlan las funciones principales del modulo: E: Señal de activación. Si E=0, el modulo esta desactivado y no funcionan las restantes señales. - R/W: Lectura/Escritura. Si R/W=0, se escribe el modulo y si R/W=1, es leído. - RS: Selección de registro de control (0) o de datos (1). Por D0-D7 se transfiere información de control-comandos o datos de caracteres a escribir. Para controlar un modulo LCD con una PIC16F84 se recomienda conectar las líneas de la PUERTAB (RB7-RB0) a las líneas D7-D0. Las líneas de la PUERTAB Deben ser bidireccionales y deberán configuran configurarse como entrada y salida según el sentido de la información. Las tres líneas de menos peso de la PUERTAA (RA0, RA1 y RB2) se configuran como salida y se conectan a las líneas RS, R/W y E, respectivamente Figura 3.9 Universidad Autónoma Metropolitana Unidad Iztapalapa -43- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.9 conexión del modulo LCD a las líneas E/S del PIC16F84 El modulo LCD responde a una serie de comandos con los que se pueden gobernar sus distintas opciones de trabajo y que puede enviarle el PIC por las líneas D7-D0 cuando RS=0 y R/W=0, para trabajar en modo escritura. En la Figura 3.10 se muestra una tabla con los comandos y los códigos correspondientes. Universidad Autónoma Metropolitana Unidad Iztapalapa -44- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.10 Tabla de todos los códigos de comandos Universidad Autónoma Metropolitana Unidad Iztapalapa -45- PROYECTO DE INGENIERIA ELECTRÓNICA En la Figura 3.11 se ofrece el juego de caracteres que admite el modulo LCD. Las posiciones marcadas con “CGRAM”, están destinadas a contener los nuevos caracteres gráficos definibles por el usuario. Casa abierta al tiempo Figura 3.11 Tabla de caracteres estándar del modulo LCD Cuando se aplica adecuadamente la tensión de alimentación al modulo LCD, se ejecuta automáticamente la siguiente secuencia de inicialización: 1.- Se ejecuta el comando CLEAR DISPLAY borrando la pantalla. El flan BUSY se mantiene activado 15 ms hasta que se complete la secuencia. 2.- Reejecuta el comando FUNCIÓN SET, que establece el interfaz con el bus de datos a 8 bits normalmente (DL=1), y el numero de líneas (bit N). 3.- Se ejecuta el comando DISPLAY ON/O9FF CONTROL, que hace que el display que puede en OFF (D=0), también el cursor (C=0) y sin parpadeo (B=0). 4.- Se ejecuta el comando ENTRY MODE SET, que establece la dirección de movimiento del cursor con autoincremento (I/D=1) y el modo de visualización normal, sin desplazamiento. Universidad Autónoma Metropolitana Unidad Iztapalapa -46- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Si la conexión de la alimentación no reúne todas las condiciones que exige el modulo LCD, habrá que realizar la secuencia de inicialización por software. En cualquier caso, es importante enviar al LCD la primera instrucción de trabajo después de que hayan transcurrido 15 ms, para completa dicha secuencia de inicialización. LCD_CXX_T2.ASM ;El conjunto de rutinas que se presentan a continuación permiten realizar las tareas; básicas de control del módulo de visualización LCD. Se emplean con los PIC 16cxx. ;En el programa principal se deber reservar memoria para el bloque de variables que; utiliza el LCD del modo: ;LCD_VAR EQU dir_inicio_del_bloque ;BLOQUE DE ETIQUETAS #define ENABLE bsf PORTA,2 ;Activa E #define DISABLE bcf PORTA,2 ;Desactiva #define LEER bsf PORTA,1 ;Pone LCD en Modo RD #define ESCRIBIR bcf PORTA,1 ;Pone LCD en Modo WR #define OFF_COMANDO bcf PORTA,0 ;Desactiva RS (modo comando) #define ON_COMANDO bsf PORTA,0 ;Activa RS (modo datos) CBLOCK LCD_VAR LCD_TEMP_2 ;Inicio de las variables. Ser la primera dirección, libre disponible LCD_TEMP_1 ENDC ;RUTINA UP_LCD: Con esta rutina se configura el PIC para que trabaje con el LCD. UP_LCD bsf STATUS,RP0 Banco 1 clrf PORTB ;RB <0-7> salidas digitales movlw b'11111000' movwf PORTA bcf STATUS,RP0 Banco 0 OFF_COMANDO ;RS=0 DISABLE ;E=0 Return ;RUTINA LCD_BUSY: Con esta rutina se chequea el estado del flag BUSY el módulo LCD, que indica, cuando esta activado, que el módulo aun no ha terminado él; comando anterior. La rutina espera a que se complete cualquier comando Universidad Autónoma Metropolitana Unidad Iztapalapa -47- PROYECTO DE INGENIERIA ELECTRÓNICA anterior antes; de retornar a programa principal, para poder enviar un nuevo comando. LCD_BUSY LEER ;Pone el LCD en Modo RD bsf STATUS,RP0 movlw H'FF' movwf PORTB ;Puerta B como entrada bcf STATUS,RP0 Selecciona el banco 0 ENABLE ;Activa el LCD nop L_BUSY btfsc PORTB,7 ;Chequea bit de Busy goto L_BUSY DISABLE ;Desactiva LCD bsf STATUS,RP0 clrf PORTB ;Puerta B salida bcf STATUS,RP0 ESCRIBIR ;Pone LCD en modo WR return ;RUTINA LCD_E: Se trata de una pequeña rutina que se encarga de generar un impulso; de las (para una frecuencia de funcionamiento de 4 MHz) por la patita de salida de la Puerta A RA2, que se halla conectada la señal E (Enable) del módulo LCD. Con esta; rutina se pretende activar al módulo LCD. LCD_E ENABLE ;Activa E nop DISABLE ;Desactiva E return ;RUTINA LCD_DATO: Es una rutina que pasa el contenido cargado en el registro W; el cual contiene un car cter ASCII, a la PUERTA B, para visualizarlo por el LCD o; escribirlo en la CGRAM. LCD_DATO OFF_COMANDO ;Desactiva RS (modo comando) movwf PORTB ;Valor ASCII a sacar por PORTB call LCD_BUSY ;Espera a que se libere el LCD ON_COMANDO ;Activa RS (modo dato) call LCD_E ;Genera pulso de E return Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -48- PROYECTO DE INGENIERIA ELECTRÓNICA ;RUTINA LCD_REG: Rutina parecida a la anterior, pero el contenido de W ahora es el código de un comando para el LCD, que es necesario pasar también a la PUERTA B para su ejecución. LCD_REG OFF_COMANDO ;Desactiva RS (modo comando) movwf PORTB ;Código de comando call LCD_BUSY ;LCD libre?. call LCD_E ;Si. Genera pulso de E. return ;RUTINA LCD_INI: Esta rutina se encarga de realizar la secuencia de inicialización el; módulo LCD de acuerdo con los tiempos dados por el fabricante (15 ms). Se especifican los valores de DL, N y F, así como la configuración de un interfaz de 8; líneas con el bus de datos del PIC, y 2 líneas de 16 caracteres de 5 x 7 píxeles. LCD_INI Mol b'00110000' Cal LCD_REG ; Código de instrucción call LCD_DELAY ;Temporiza movlw b'00110000' call LCD_REG ;Código de instrucción call LCD_DELAY ;Temporiza movlw b'00110000' call LCD_REG ;Código de instrucción call LCD_DELAY ;Temporiza movlw b'00110000' call LCD_REG ;Código de instrucción call LCD_DELAY ;Temporiza return ;RUTINA BORRA_Y_HOME: Borra el display y retorna el cursor a la posición 0. BORRA_Y_HOME movlw b'00000001' Borra LCD y Home. call LCD_REG return ;RUTINA DISPLAY_ON_CUR_OFF: Control del display y cursor. Activa el display y; desactiva es cursor DISPLAY_ON_CUR_OFF movlw b'00001100' LCD on, cursor off. call LCD_REG return Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -49- PROYECTO DE INGENIERIA ELECTRÓNICA ;RUTINA LCD_DELAY: Se trata de un rutina que implementa un retardo o; temporización de 5 ms. Utiliza dos variables llamadas LCD_TEMP_1 y; LCD_TEMP_2, que se van decrementando hasta alcanzar dicho tiempo. LCD_DELAY clrwdt movlw 10 movwf LCD_TEMP_1 clrf LCD_TEMP_2 LCD_DELAY_1 decfsz LCD_TEMP_2,F goto LCD_DELAY_1 decfsz LCD_TEMP_1,F goto LCD_DELAY_1 return Con ayuda de las librerías LCD_CXX_T2 y P16F84A.INC mostramos un programa en el cual aparece un mensaje de bienvenida sobre el LCD. Casa abierta al tiempo Esquema Eléctrico: Figura 3.12 Diagrama eléctrico del modulo LCD Diagrama de Flujo: Figura 3.13 Funcionamiento del modulo Universidad Autónoma Metropolitana Unidad Iztapalapa -50- PROYECTO DE INGENIERIA ELECTRÓNICA El programa comentado: ;"MENSAJE DE BIENVENIDA SOBRE LCD" ; Programa que muestra la palabra "BIENVENIDOS" en la línea 1 del LCD ;DIRECTIVAS DEL PROGRAMA LIST p=16F84a ; Se emplea el PIC 16F84A RADIX HEX Sistema de numeración hexadecimal __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF ;ETIQUETAS DEL PROGRAMA #INCLUDE <P16f84.INC> ; Etiquetas genéricas para los PIC 16CXX RESUL EQU 0x0C TEMPO1 EQU 0x0D OFFSET EQU 0x0E OPCION EQU 0x81^80H LCD_VAR EQU 0x0F ;PROGRAMA PRINCIPAL ORG 0 ; El programa comienza en la dirección 0 y salta a la goto INICIO ; dirección 5 para sobrepasar el vector de interrupción ORG 5 INCLUDE "LCD_CXX_T2.ASM" INICIO call UP_LCD ; Configura el PIC para el uso del LCD bsf STATUS,RP0 Selección del banco 1 movlw b'10000111' movwf OPCION ;Asigna preescalar al TMR0 bcf STATUS,RP0 call LCD_INI ;Inicializa el LCD INICIO_1 call BORRA_Y_HOME call DISPLAY_ON_CUR_OFF movlw 0x80 ; Primera posición de primera fila call LCD_REG movlw b'00000110' ; Entry Mode Set. Inc de cursor call LCD_REG clrf OFFSET ; Dirección del mensaje call MENS BUCLE goto BUCLE ; El programa acaba en un bucle infinito Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -51- PROYECTO DE INGENIERIA ELECTRÓNICA ;RUTINA MENS: Esta rutina saca mensajes por la pantalla LCD, siendo el primer; carácter aquel que esta en la posición apuntada por OFFSET, y debiendo ser el último; 0x00 MENS clrf RESUL ;Inicializa contador de caracteres MENS_1 movf OFFSET,W ;Toma el desplazamiento addwf RESUL,W ;Calcula el carácter a coger call DATOS ;Toma el carácter iorlw 0 ;Actualiza flags btfsc STATUS,2 ;Comprueba si es el último return ;Si es el último vuelve call LCD_DATO ;Visualiza el carácter incf RESUL,F ;Incrementa contador de caracteres movlw d'10' movwf TEMPO1 goto MENS_1 Casa abierta al tiempo ;TABLA CON LOS DATOS A SACAR POR EL LCD: DATOS addwf PCL,1 retlw '"' OFFSET = 0x00 retlw 'B' retlw 'i' retlw 'E' retlw 'n' retlw 'V' retlw 'e' retlw 'N' retlw 'i' retlw 'D' retlw 'o' retlw 'S' retlw '"' retlw 0x00 END Universidad Autónoma Metropolitana Unidad Iztapalapa -52- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.14 Montaje del modulo al frente La Figura 3.12 muestra el esquema eléctrico de las conexiones entre el PIC y la pantalla LCD, junto con el flujo de diseño hecho para la aplicación.(Figura 3.13). De la Figura 3.14 a la Figura 3.16 se pueden observar finalmente el circuito construido físicamente. Figura 3.15 Montaje del modulo al reverso Figura 3.16 Montaje final Para entender de manera mas optima el funcionamiento del programa anterior, se muestra un video clip del modulo LCD en funcionamiento localizado en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Teclado y pantalla LCD Ahora observemos este programa, en el cual es la combinación de los dos programas anteriores solo, con pequeñas diferencias. Este programa visualiza sobre la pantalla LCD las teclas que se pulsan en el teclado, cada pulsación es acompañado de un “beep” de 0.25 segundos, el cual lo provoca un zumbador conectado en RA3.Mediante las librerías TECLADO.ASM, LCD_CXX_T3.ASM, en cual es casi idéntico al LCD_CXX_T2.ASM solo cambia la rutina de UP_LCD, que es la siguiente: ;RUTINA UP_LCD: Con esta rutina se configura el PIC para que trabaje con el LCD. UP_LCD bsf STATUS,RP0 ;Banco 1 clrf PORTB ;RB <0-7> salidas digitales clrf PORTA ;RA <0-4> salidas digitales bcf STATUS,RP0 ;Banco 0 OFF_COMANDO ;RS=0 DISABLE ;E=0 Return Haciendo este cambio y con ayuda de la librería P16f84.INC el programa es el siguiente: Universidad Autónoma Metropolitana Unidad Iztapalapa -53- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Esquema Eléctrico: Figura 3.17 Diagrama eléctrico Diagrama de Flujo: Universidad Autónoma Metropolitana Unidad Iztapalapa -54- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.18 Funcionamiento del programa El programa comentado: ;"ESCRITURA DE MENSAJES DE TECLADO SOBRE LCD" ;Se desea realizar un programa que visualice sobre el LCD las teclas que se vayan; pulsando. Cada pulsación ir acompañada de un "beep" de 0,25 segundos sobre el; zumbador conectado a RA3 ;DIRECTIVAS DEL PROGRAMA LIST P=16F84 ; Se emplea el PIC 16F84 RADIX HEX Sistema de numeración hexadecimal ;ETIQUETAS DEL PROGRAMA #INCLUDE <P16f84.INC> __config _XT_OSC & _WDT_OFF & _PWRTE_ON & _CP_OFF TEMP_1 EQU 0x0C DELAY_1 EQU 0x0D DELAY_2 EQU 0x0E -55- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA DELAY_3 EQU 0x0F LCD_VAR EQU 0x10 KEY_VAR EQU 0x12 ;POSICIONAMIENTO DE LA RUTINA DE INICIO ORG 0 ; El programa comienza en la dirección 0 y goto INICIO ;salta a la dirección 5 para sobrepasar el ORG 5 ; vector de interrupción ;RUTINA HEX_ASCII: Rutina que pasa el valor HEXADECIMAL que contiene ;W a valor ASCII, para ser mostrado por el LCD HEX_ASCII addwf PCL,1 retlw '0' retlw '1' retlw '2' retlw '3' retlw '4' retlw '5' retlw '6' retlw '7' retlw '8' retlw '9' retlw 'A' retlw 'B' retlw 'C' retlw 'D' retlw 'E' retlw 'F' ;PROGRAMA PRINCIPAL INCLUDE "LCD_CXX_T3.ASM" INCLUDE "TECLADO.ASM" INICIO call UP_LCD call LCD_INI call DISPLAY_ON_CUR_OFF bsf STATUS,RP0 Selección del banco 1 clrf PORTA ; Puerta A como salida movlw b'10000111' movwf OPTION_REG bcf STATUS,RP0 bcf PORTA,3 ; Desactivación del zumbador NO_HAY call KEY_SCAN ; Se hace un chequeo del teclado movlw 0x80 Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -56- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo subwf TECLA,W btfsc STATUS,Z goto NO_HAY call KEY_OFF ; Sobre TECLA quedar la tecla pulsada o 0x80 ; No se ha pulsado ninguna tecla ; Si se ha pulsado. Se espera a que se ; Se genera un "beep" suelte bsf PORTA,3 movlw d'25' movwf TEMP_1 call DELAY10 bcf PORTA,3 call KEY_HEX call HEX_ASCII ASCII movwf TECLA ; Se guarda temporalmente en TECLA call UP_LCD call BORRA_Y_HOME call DISPLAY_ON_CUR_OFF movlw 0x81 ; Primer carácter de primera línea call LCD_REG movf TECLA,W call LCD_DATO ; Se saca por el LCD goto NO_HAY ; Se vuelve a empezar ;RUTINA DE DELAY DE 10 MS: Esta rutina utiliza el TMR0. Es una temporización; de 10 ms que se repite tantas veces como indique la variable TEMPO1 DELAY10 bcf INTCON,2 ;Borra flag del TMR0 movlw 0xD8 movwf TMR0 Carga el TMR0 con valor 39 DELAY10_1 btfss INTCON,2 ; Espera rebosamiento del TMR0 goto DELAY10_1 decfsz TEMP_1,F goto DELAY10 return ;RUTINA DE DELAY DE 1 SEGUNDO: Se basa en la rutina de 10ms, repitiéndola 100 DELAY1S movlw 0x64 movwf TEMP_1 call DELAY10 return ;RUTINA KEY_OFF: Esta rutina espera que la tecla recién pulsada sea soltada. Debe usarse justo después de llamar a la rutina KEY_SCAN ; Se crea una temporización de 25 ms ; Se desactiva zumbador ; Se pasa a valor hexadecimal ; Se pasa el valor hexadecimal a código Universidad Autónoma Metropolitana Unidad Iztapalapa -57- PROYECTO DE INGENIERIA ELECTRÓNICA KEY_OFF Casa abierta al tiempo movf TECLA,W movwf TEMP_1 ; Guarda temporalmente la tecla KEY_OFF_NO call KEY_SCAN Mira si se ha soltado movlw 0x80 subwf TECLA,W btfss STATUS,Z goto KEY_OFF_NO ; Bucle mientras no se suelte movf TEMP_1,W ; Ya se ha soltado movwf TECLA ; Se repone la tecla return ;RUTINA DE DELAY VARIABLE: Esta rutina realiza una temporización que depende del valor del acumulador en el momento en que se le llama DELAY_V movwf DELAY_1 clrf DELAY_3 clrf DELAY_2 DELAY_LOOP decfsz DELAY_3,F goto DELAY_LOOP decfsz DELAY_2,F goto DELAY_LOOP decfsz DELAY_1,F goto DELAY_LOOP return END Figura 3.19 Montaje final Dentro de esta aplicación, la Figura 3.17 muestra el esquema eléctrico de conexiones utilizado para el uso del teclado, junto con nuevos dispositivos como el buzzer y la pantalla LCD. La Figura 3.18 muestra el diagrama de flujo utilizado, es decir, el orden y cada uno de los aspectos cubiertos en el diseño del código en ensamblador de este ejemplo. En la Figura 3.19 se pueden observar finalmente el circuito construido físicamente en la tablilla. Para entender de manera mas optima el funcionamiento del programa anterior, se muestra un video clip del teclado y el modulo LCD en funcionamiento localizado en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -58- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo COMUNICACIONES I Presentación Los sistemas de comunicación, en el sentido más amplio, comprenden cualquier método utilizado por el hombre para transmitir información. Así pues, aunque podríamos remontar el comienzo de las comunicaciones a los albores de la humanidad (comunicación oral, escrita, etc.), en este curso, nos restringiremos a los denominados sistemas de comunicación electromagnéticos, caracterizados por el uso de señales electromagnéticas como soporte de la información. En los últimos años la sociedad ha incluido, dentro de su vida diaria, el uso de la tecnología en general y, especialmente, la tecnología asociada a la comunicación. La telefonía fija y móvil, la radio, la televisión, los computadores personales hacen posible la transferencia de información entre distintas partes del mundo de forma eficiente, esto es lo más rápidamente posible y con un mínimo número de errores. El avance en las comunicaciones ha sido posible gracias al avance en el procesado de la señal. Inicialmente (hasta la década de los sesenta) el procesado de la señal había sido básicamente analógico, sin embargo, en la actualidad los computadores permiten el diseño y la simulación de sistemas digitales generando un entorno experimental verdaderamente flexible. Las facilidades de transmisión son caras y, a menudo, dos equipos terminales de datos que se comunican por cables coaxiales, enlaces por microondas, o satélite, no utilizan la capacidad total del canal, desperdiciando parte de la anchura de banda disponible. Este problema se soluciona mediante unos equipos denominados multiplexores, que reparten el uso del medio de -59- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA transmisión en varios canales independientes que permiten accesos simultáneos a los usuarios, siendo totalmente transparente a los datos transmitidos. En un extremo, los multiplexores son equipos que reciben varias secuencias de datos de baja velocidad y las transforman en una única secuencia de datos de alta velocidad, que se transmiten hacia un lugar remoto. En dicho lugar, otro multiplexor realiza la operación inversa obteniendo de nuevo los flujos de datos de baja velocidad originales. A esta función se la denomina demultiplexar. Existen dos técnicas fundamentales para llevar a cabo la multiplexación: 1. División de Frecuencia (FDM). 2. División en el Tiempo (TDM). Casa abierta al tiempo Estos dos temas son parte de la UEA de Comunicaciones I de la Lic. en Ingeniería Electrónica, como alumno de esta UEA puedo mencionar que estos temas se afrontaron de manera muy teórica y poco ilustrativa, dentro de este capitulo abordaremos estos dos temas y además el teorema de muestreo, también vista en esta UEA, la manera de abordarlos será mediante circuitos construidos en un software de simulación llamado Circuit Maker, los archivos estos tres circuitos se encuentran dentro del CD anexo a este reporte, para que el lector pueda simularlos. Multiplexado y Demultiplexado. Principios de Multiplexado. Multiplexado es el proceso de transmitir al mismo tiempo dos o más señales individuales a través de un solo canal de comunicaciones (Figura 3.20) En efecto, aumenta el número de canales de comunicación de manera que pueda transmitirse más información. Hay muchos ejemplos en comunicaciones donde es necesario o deseable transmitir más de una señal de voz o de datos en forma simultánea. Una aplicación puede requerir muchas señales o se puedan lograr ahorros en el costo si solo se usa un canal de comunicaciones para enviar múltiples señales de información. Tres aplicaciones en las que seria caro en grado prohibitivo o imposible sin multiplexado son telemetría, sistemas telefónicos, la radiodifusión moderna en radio y televisión. Universidad Autónoma Metropolitana Unidad Iztapalapa -60- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.20 Concepto de multiplexado Los dos tipos de multiplexado básicos son el multiplexado por división de frecuencia (FDM) y el multiplexado por división de tiempo (TDM). Dos variaciones de estos métodos básicos son acceso múltiple por división de frecuencia y acceso múltiple de tiempo. En general, los sistemas FDM se usan para información analógica y los sistemas TDM, para información digital, Por supuesto, las técnicas TDM también se encuentran en muchas aplicaciones analógicas porque el proceso de conversión de A/D y D/A es muy común. Las principales diferencias entre estas dos técnicas son que en FDM las señales individuales que se transmitirán se asignan a frecuencias diferentes dentro de un ancho de banda común. En TDM, las múltiples señales se transmiten en ranuras de tiempo diferentes. Multiplexado por División de Frecuencia. En el multiplexado por división de frecuencia (FDM), (frequency division multiplexing) múltiples señales comparten al ancho de banda de un canal común de comunicaciones. Recuerde que todos los canales tienen anchos de banda específicos y algunos son más o menos amplios. Un cable coaxial, por ejemplo, tiene un ancho de banda de 200 a 500MHz. Los anchos de banda de los canales de radio varían, sin considerar el tipo de canal, ancho de banda amplio se puede compartir con el propósito de transmitir muchas señales al mismo tiempo. Universidad Autónoma Metropolitana Unidad Iztapalapa -61- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Transmisores-Multiplexores. La Figura 3.21 muestra un diagrama general en bloques de un sistema FDM. Cada señal que será transmitida alimenta un circuito modulador. LA portada para cada modulador (fp) esta una frecuencia diferente. Las frecuencias portadoras se encuentran espaciadas por igual una de otra dentro de un intervalo especifico de frecuencia. Estas portadoras se llaman subportadoras. A cada señal de entrada se le da una porción de ancho de banda. El espectro resultante se ilustra en la Figura 3.22. Se puede usar cualquiera de los estándares de modulación, incluyendo AM, BLU, FM o PM. El proceso FDM divide en ancho de banda del canal único en pequeños canales espaciados por igual, cada uno con capacidad de transportar información en bandas laterales. Las salidas del modulador que tiene la información de banda lateral se suman de modo algebraico en un mezclador lineal; no hay modulación o generación de bandas laterales. La señal de salida resultante es una composición de todas las subportadoras moduladas. Esta señal puede usarse para modular un transmisor de radio. A veces la señal compuesta puede convertirse en una entrada a otro sistema multiplexado. Universidad Autónoma Metropolitana Unidad Iztapalapa -62- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.21 Extremo transmisiones de un sistema FDM Figura 3.22 Espectro de una señal FDM. El ancho de banda se divide en canales más pequeños. Receptores-Demoduladores La porción para la recepción de un sistema FDM se puede ver en la Figura 3.23. Un receptor recibe la señal y la remodula, recuperando la señal compuesta. Esta se envía a un grupo de filtros pasabanda, cada uno centrado en una de las frecuencias subportadoras. Cada filtro pasa solo su canal y rechaza los otros. Un demodulador de canal recupera cada señal de entrada digital. Universidad Autónoma Metropolitana Unidad Iztapalapa -63- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.23 Extremo receptor de un sistema FDM Del conjunto de material realizado se diseñó y simuló un sistema FDM, para tres señales senoidales de 5 KHz cada una, utilizando tres diferentes portadoras situadas en 50KHz, 100KHz y 150 KHz. La Figura 3.24 Muestra un circuito FDM para tres señales, esta compuesta de tres moduladores AM, cada uno tiene una señal portadora de 5KHz y una señal moduladora de 50KHz, 100KHz, 150KHz respectivamente. Todos estos componentes se encuentran del lado transmisor o modulador. Para mezclar las tres señales utilizamos un circuito lineal como un sumador no inversor, el cual esta compuesta de un amplificador operacional y un conjunto de resistencias. Las salidas del sumador se encuentran conectados a tres filtros pasabanda cada uno sintonizado a las frecuencias utilizadas en las señales moduladoras, las cuales separan las señales originales o portadoras en tres anchos de banda diferentes. Universidad Autónoma Metropolitana Unidad Iztapalapa -64- PROYECTO DE INGENIERIA ELECTRÓNICA También en nuestro circuito FDM están presentes tres demoduladores AM, los cuales están sincronizados con las señales moduladoras del extremo transmisor a estos demoduladores se encuentran conectados las salidas de los los filtros, a las salidas de los demoduladores se encuentran las salidas originales introducidas en el extremo transmisor. Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -65- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 3.24 Diagrama de un sistema FDM Universidad Autónoma Metropolitana Unidad Iztapalapa -66- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A: v16_1 250.0mV 150.0mV 50.00mV -50.00mV -150.0mV -250.0mV 0.000us 100.0us 200.0us 300.0us 400.0us Figura 3.25a Señal senoidal con frecuencia de 5KHz A: u9_6 10.00 V 9.500 V 9.000 V 8.500 V 8.000 V 0.000ms 1.000ms 2.000ms 3.000ms 4.000ms Figura 3.25b Señal modulada A: c30_2 1.500 V 0.500 V -0.500 V -1.500 V 0.000us 100.0us 200.0us 300.0us 400.0us Figura 3.25c Señal original recuperada a la salida del demodulador La Figura 3.25a representa la señal portador de las tres señales que entran al modulador, la Figura 3.25b representa la señal modulada del circuito modulador de portadora a 5KHZ y moduladora de 150 KHz. Y por ultimo en la Figura 3.25c se muestra una de las señales originales recuperadas a la salida del demodulador, en este caso el que utiliza una moduladora de 150 KHz. Universidad Autónoma Metropolitana Unidad Iztapalapa -67- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A: u1_6 1.500 V 1.000 V 0.500 V 0.000 V 20.00kHz 40.00kHz 60.00kHz 80.00kHz Figura 3.26a Análisis de Fourier de la señal modulada A: u8_6 1.500 V 1.000 V 0.500 V 0.000 V 60.00kHz 80.00kHz 100.0kHz 120.0kHz 140.0kHz Figura 3.26b Análisis de Fourier de la señal modulada A: u9_6 1.000 V 0.800 V 0.600 V 0.400 V 0.200 V 0.000 V 120.0kHz 140.0kHz 160.0kHz 180.0kHz Figura 3.26c Análisis de Fourier de la señal modulada La Figura 3.26a muestra el análisis de Fourier para la señal modulada con portadora de 5KHz y una moduladora de 50KHz, en la Figura 3.26b, muestra la misma señal con una moduladora de 100KHz, y por último en la Figura 3.26c muestra la señal con una moduladora de 150KHz. Las figuras muestran la señal portadora se encuentran a la derecha e izquierda de la señal moduladora. Universidad Autónoma Metropolitana Unidad Iztapalapa -68- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A: u6_8 1.500 V 1.000 V 0.500 V 0.000 V 0.000kHz 50.00kHz 100.0kHz 150.0kHz 200.0kHz Figura 3.27 Señal a la salida del sumador La Figura 3.27 muestra el análisis de Fourier del canal de comunicaciones del circuito FDM, se observa como se encuentran los anchos de banda de cada señal en particular, cada ancho de banda se encuentra centrado en las frecuencias moduladoras de cada circuito independiente, que en conjunto crean un sistema FDM. Multiplexado por División de Tiempo. La multiplexación por división de tiempo es una técnica para compartir un canal de transmisión entre varios usuarios. Consiste en asignar a cada usuario, durante unas determinadas "ranuras de tiempo", la totalidad del ancho de banda disponible. Esto se logra organizando el mensaje de salida en unidades de información llamadas tramas, y asignando intervalos de tiempo fijos dentro de la trama a cada canal de entrada. De esta forma, el primer canal de la trama corresponde a la primera comunicación, el segundo a la segunda, y así sucesivamente, hasta que el n-esimo más uno vuelva a corresponder a la primera. El uso de esta técnica es posible cuando la tasa de los datos del medio de transmisión excede de la tasa de las señales digitales a transmitir. El multiplexor por división en el tiempo muestrea, o explora, cíclicamente las señales de entrada (datos de entrada) de los diferentes usuarios, y transmite las tramas a través de una única línea de comunicación de alta velocidad. La operación de muestreo debe ser lo suficientemente rápida, de forma que cada buffer sea vaciado antes de que lleguen nuevos datos. Universidad Autónoma Metropolitana Unidad Iztapalapa -69- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Entre el conjunto de material diseñado y construido se efectuó un diseño y simulación de un circuito TDM para dos señales analógicas, una señal senoidal de frecuencia de 500 Hz y un voltaje pico de 1 Volt y otra señal senoidal de la misma frecuencia pero con un valor pico de 3 Volt. U1 ADG406 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 VDD GND VSS V1 5V +V U2 ADG406 V2 +V -5V S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 VDD GND VSS V10 5V +V V3 -1/1V D V9 +V -5V D 500 Hz EN A0 A1 A2 A3 EN V4 +V 5V A0 A1 A2 A3 V7 +V 5V V6 -1/1V V5 0/5V 500 Hz 10kHz R6 16k R4 16k R1 16k C2 20nF C3 20nF V15 -12V U5 +V TL081 R2 6k C1 20nF R5 4k V8 -12V +V R3 16k V12 -12V +V U4 TL081 U3 TL081 + + V14 +V12V + V11 +V12V V13 +V12V Figura 3.28 Circuito TDM En la Figura 3.28 se muestra un circuito TDM para dos señales senoidales de misma frecuencia pero de diferente magnitud, el circuito es implementado por un multiplexor y un demultiplexor, en el bit menos significativo de las señales de direccionamiento se encuentra un pulso de reloj el cual es muestra señal de muestro que debe ser dos veces mayor que cualquiera de las dos señales a multiplexar, este pulso de reloj se encuentra conectado tanto para el multiplexor como el demultiplexor. También se encuentran dos filtros los cuales son utilizados para recuperar las señales. Desde la Figura 3.29 a la Figura 3.35 se muestran los resultados de la simulación en cada una de las partes del circuito, indicando cada uno de los procesos de mezclado(o multiplexación) de señales, así como el filtrado de señales antes y después de cada circuito de filtrado Universidad Autónoma Metropolitana Unidad Iztapalapa -70- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A: u2_28 3.000 V 1.000 V -1.000 V -3.000 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.29 Señal observada en el canal de comunicación 1.000 V 0.500 V 0.000 V -0.500 V -1.000 V 0.000ms A: v3_1 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.30 Señal senoidal de 1 Volt pico 1.250 V 0.750 V 0.250 V -0.250 V -0.750 V -1.250 V 0.000ms A: r3_1 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.31 Señal observada antes de entrar al filtro A: r4_2 750.0mV 250.0mV -250.0mV -750.0mV 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.32 Señal observada después del filtro Universidad Autónoma Metropolitana Unidad Iztapalapa -71- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A: v3_1 1.000 V 0.500 V 0.000 V -0.500 V -1.000 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.33 Señal senoidal de 3 Volt pico 3.000 V A: u2_19 1.000 V -1.000 V -3.000 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.34 Señal observada antes de entrar al filtro 5.000 V 3.000 V 1.000 V -1.000 V -3.000 V -5.000 V 0.000ms A: r1_2 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.35 Señal observada después del filtro Cabe mencionar que se utiliza un filtro pasabajas de primero y segundo orden, para poder comparar las diferencias que existen entre ellas. Universidad Autónoma Metropolitana Unidad Iztapalapa -72- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Teorema de Muestreo. El teorema de muestreo de Nyquist-Shannon, también conocido como teorema de muestreo de Whittaker-Nyquist-Kotelnikov-Shannon o simplemente criterio de Nyquist, es un teorema fundamental de la teoría de la información, de especial interés en las telecomunicaciones. El teorema trata con el muestreo, que no debe ser confundido o asociado con la cuantificación, proceso que sigue al de muestreo en la digitalización de una señal y que no es reversible (se produce una pérdida de información en el proceso de cuantificación, incluso en el caso ideal teórico, que se traduce en una distorsión conocida como error o ruido de cuantificación y que establece un límite teórico superior a la relación señal-ruido). Dicho de otro modo, desde el punto de vista del teorema, las muestras discretas de una señal son valores exactos que no han sufrido redondeo o truncamiento alguno sobre una precisión determinada. El teorema demuestra que la reconstrucción exacta de una señal periódica continua en banda base a partir de sus muestras es matemáticamente posible si la señal está limitada en banda y la tasa de muestreo es superior al doble de su ancho de banda. Dicho de otro modo, la información completa de la señal analógica original que cumple el criterio anterior está descrita por la serie total de muestras que resultaron del proceso de muestreo. No hay nada, por tanto, de la evolución de la señal entre muestras que no esté perfectamente definido por la serie total de muestras. Si la frecuencia más alta contenida en una señal analógica xa(t) es Fmax = B y la señal se muestrea a una tasa F8 > 2Fmax = 2B , entonces xa(t) se puede recuperar totalmente a partir de sus muestras mediante la siguiente función de interpolación: g(t) = sen( 2πBt ) 2πBt En la Figura 3.36 se encuentra el circuito utilizado para realizar el muestreo de una señal, el cual esta compuesto de un pulso de reloj para realizar el muestreo y una señal senoidal de 500Hz y 1 Volt en magnitud, el cual se encuentra en una de las entradas del circuito. Universidad Autónoma Metropolitana Unidad Iztapalapa -73- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo U1 ADG406 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12 S13 S14 S15 S16 V1 5V +V V3 -1/1V VDD GND VSS V2 +V -5V D 500 Hz EN A0 A1 A2 A3 V4 +V 5V V5 0/5V 2kHz Figura 3.36 Circuito utilizado para realizar el muestreo de una señal A: v3_1 1.000 V 0.500 V 0.000 V -0.500 V -1.000 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.37 Señal senoidal 1.250 V B: u1_28 0.750 V 0.250 V -0.250 V -0.750 V -1.250 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.38a Señal muestreada Universidad Autónoma Metropolitana Unidad Iztapalapa -74- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo B: u1_28 1.250 V 0.750 V 0.250 V -0.250 V -0.750 V -1.250 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.38b Señal muestreada B: u1_28 1.250 V 0.750 V 0.250 V -0.250 V -0.750 V -1.250 V 0.000ms 2.000ms 4.000ms 6.000ms 8.000ms 10.00ms Figura 3.38c Señal muestreada La Figura 3.28a muestra una señal muestreada, pero con una frecuencia menor a 500Hz de la señal original, el cual no cumple con el teorema. En la Figura 3.28b, se observa una señal muestreada con una frecuencia igual a dos veces la señal original y por ultimo la Figura 3.28c muestra una señal muestreada con una frecuencia mayor el cual permite que se reconstruya la señal original de manera mas óptima. Universidad Autónoma Metropolitana Unidad Iztapalapa -75- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CAPITULO 4 PROYECTOS Y PROBLEMAS RESUELTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -76- PROYECTO DE INGENIERIA ELECTRÓNICA Presentación Casa abierta al tiempo Ante las numerosas peticiones de los alumnos, tener ejemplos, practicas, ejercicios sobre los temas afrontados en cada una de las Unidades de EnseñanzaAprendizaje (UEA) de Lógica de Conmutación I, Lógica de Conmutación II, Sistemas Digitales I, hemos incluido este apartado en el cual describe, de la manera más sencilla, una colección de proyectos que pueden realizarse con material fácil de encontrar, sencillo de manejar y muy económico. Para desarrollar las implementaciones físicas de estos proyectos hemos usado como soporte principal el PIC16F84 de MICROCHIP, el dispositivo de FPGA, XC4005XL PC84CMN009 de XILINX , el software de simulación VERIBEST VB99.0 y ORCAD DEMO V9. En la primera parte de este Apéndice esta destinada a describen proyectos utilizando el dispositivo de FPGA, VERIBEST y ORCAD, en la segunda parte esta destinada a utilizar el PIC16F84, organizados de esta manera: PRIMERA PARTE: PROYECTOS UTILIZANDO VERIBEST, ORCAD DEMO Y FPGA. Utilizando VERIBEST 1. - Compuertas Lógicas en VHDL 2. - Introducción a las configuraciones de nivel dos no degeneradas 3. - Formas no degeneradas de orden dos. Utilizando VERIBEST Y FPGA 4. - Convertidor de código 2 4 2 1 a código 8 4 -2 –1 5. - Convertidor decimal a hexadecimal Utilizando ORCAD DEMO Y FPGA 6.- Contador ascendente / descendente modulo 8 7. - Contador 0 a 99 8. - Contador de rizo de 0 a 7 SEGUNDA PARTE: PROYECTOS UTILIZANDO PIC16F84 1. - Sumador de 3 bits y mostrar en leds. 2. - Contador ascendente de 4 bits con mensaje de término en pantalla LCD. 3. - Manejo de interrupciones. 4. - Display 5. - Manejo combinacional de E/S digitales. 6. - Contador ascendente/descendente. 7. - Control de Acceso. 8. - Semáforo Programable. 9.- Dado electrónico. 10. - Temporizador Programable. 11. - Alarma. Universidad Autónoma Metropolitana Unidad Iztapalapa -77- PROYECTO DE INGENIERIA ELECTRÓNICA PRIMERA PARTE: PROYECTOS UTILIZANDO VERIBEST ORCAD DEMO Y FPGA. PROYECTOS UTILIZANDO VERIBEST. 1. - COMPUERTAS LÓGICAS EN VHDL La implementación práctica de funciones lógicas se realiza mediante dispositivos electrónicos denominados Compuertas Lógicas, siendo estas los componentes básicos de la electrónica digital. Las Compuerta Lógicas proporcionan, generalmente en su salida, unos niveles de tensión en función de las tensiones de entradas. 1.1. -- Compuerta AND Casa abierta al tiempo Figura 4.1 Compuerta lógica AND y tabla de verdad 1.2. - Compuerta OR Figura 4.2 Compuerta lógica OR y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -78- PROYECTO DE INGENIERIA ELECTRÓNICA 1.3. - Compuerta BUFFER Casa abierta al tiempo Mediante una compuerta AND implementar un BUFFER, y mediante una compuerta OR implementar BUFFER. Figura 4.3 Circuitos implementados 1.4. - Compuertas NOT, AND y OR. Figura 4.4 Diseño lógica y tabla de verdad 1.5. - Compuertas NOT, AND, OR, XOR y NAND a) Utilizando compuertas NOT, AND y OR implementar XOR. Figura 4.5 Diseño lógica XOR b) Utilizando compuertas NOT y AND implementar NAND. Universidad Autónoma Metropolitana Unidad Iztapalapa -79- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.6 Diseño lógica NAND c) Utilizando el circuito NAND, implementar dos maneras diferentes de NOT. Figura 4.7 Diseño lógica XOR 1.6. - Diseño con compuertas NAND Figura 4.8 Diseño lógica. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\COMPUERTAS LÓGICAS Universidad Autónoma Metropolitana Unidad Iztapalapa -80- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 2. ‐ INTRODUCCIÓN A CONFIGURACIONES DE NIVEL 2 NO DEGENERADAS Desde un punto de vista teórico, resulta interesante averiguar cuantas combinaciones de compuertas de dos niveles puede haber. Considerando cuatro tipos de compuertas: AND, OR, NAND y NOR. Si asignamos un tipo de compuerta al primer nivel y un tipo al segundo nivel, encontramos que hay 16 combinaciones posibles de forma de dos niveles. Ocho combinaciones se consideran de forma degeneradas por que degeneran a una sola operación. Las otras ocho formas son no degeneradas producen una implementación de suma de productos o productos de sumas. Las ocho formas no degeneradas son: AND-OR NAND-NAND NOR-OR OR-NAND OR-AND NOR-NOR NAND-AND AND-NOR - 2.1.- Diseño con compuertas NAND, implementar una compuerta AND Figura 4.9 Diseño lógica y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -81- PROYECTO DE INGENIERIA ELECTRÓNICA 2.2.- Diseño con compuertas NAND, implementar una compuerta OR Casa abierta al tiempo Figura 4.10 Diseño lógica y tabla de verdad 2.3. - Diseño con compuertas NOR, implementar una compuerta OR Figura 4.11 Diseño lógica y tabla de verdad 2.4. - Diseño con compuertas NOR, implementar una compuerta AND Figura 4.12 Diseño lógica y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -82- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 2.5. - Diseño con compuertas NAND Figura 4.13 Diseño lógica y tabla de verdad 2.6. - Diseñar la siguiente función booleana f(x, y, z)=Σ(2,4,6), con implementación de nivel dos con compuertas NOR, de las siguientes formas: a) En su mapa de Karnaugh trabaje con los 0’s y obtenga F en sus productos de sumas. YZ X 0 1 00 0 01 0 0 11 0 0 10 F’=Z+X’Y’ F=(F’)’=(Z+X’Y’) F=Z’(X+Y) Figura 4.14 Diseño lógica y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -83- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo b) Obtener a F con los 1’s en el mapa, luego obtener F’ y luego agregue otra compuerta, un tercer nivel para obtener F. YZ X 0 1 00 1 F=YZ’ + XZ’ F’=(YZ’+XZ’)’ F’=(YZ’)’(XZ’)’ F’=(Y’+Z)(X’+Z) (F’)’=((Y’+Z)(X’+Z))’ F=(YZ’)+(XZ’) 01 11 10 1 1 Figura 4.15 Diseño lógica y tabla de verdad Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS 3.- FORMAS NO DEGENERADAS DE ORDEN 2 El siguiente Mapa de Karnaugh de la función booleana F(A,B,C), se usara para los experimentos del 1 al 4 BC A 0 1 00 1 1 01 0 0 11 1 1 10 1 0 A B C F’ F -84- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 3.1. a) Efectúe el diseño, de la implementación de la función simplificada F(A,B,C) mediante una configuración NAND-NAND. Figura 4.16 Circuito lógico F = ((A’B)’(BC)’(B’C’)’)’ F = A’B + BC + B’C’ b) Efectúe el diseño y construya la implementación de la función simplificada F’(A,B,C) mediante una configuración NAND-NAND. Así mismo use un inversor en la salida para obtener a F(A,B,C). Figura 4.17 Circuito lógico F’ = B’C + ABC’ (F ‘)’ = (B’C + ABC’)’ F = A’B + BC + A’C’ + B’C’ Universidad Autónoma Metropolitana Unidad Iztapalapa -85- PROYECTO DE INGENIERIA ELECTRÓNICA 3.2. - Casa abierta al tiempo a) Efectúe el diseño de la implementación de la función simplificada F(A,B,C) mediante una configuración NOR-NOR y auxiliándose en los teoremas de Morgan. Figura 4.18 Circuito Lógico F’ = B’C + ABC’ (F’ )’ =( B’C + ABC’)’ F = (B’C)’ ( ABC’)’ F = (B+C’) ( A’B’C) b) Efectúe el diseño de la función simplificada F´(A,B,C) mediante una configuración NOR-NOR y auxiliándose de los teoremas de Morgan. Así mismo use un inversor de salida para obtener a F(A,B,C). Figura 4.19 Diseño del circuito lógico F = B C + B’C’ + AB’ (F )’ = (B C + B’C’ + A’B)’ F’ = (B C)’ ( B’C’)’ ( A’B)’ F ‘ = (B’+ C’) ( B + C) ( A + B’) 3.3.a) Efectúe el diseño de la implementación de la función simplificada F(A,B,C) mediante una configuración NOR-OR. Universidad Autónoma Metropolitana Unidad Iztapalapa -86- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.20 Diseño del circuito lógico F = B C + B’C’ + A’B (F)’ = (B C + B’C’ + A’B)’ (F ‘)’ = ((B’+ C’) ( B + C) ( A + B’))’ b) Efectúe el diseño de la implementación de la función simplificada F´(A,B,C) mediante una configuración OR-NAND. Figura 4.21 Diseño del circuito lógico F ‘ = ((B+C’) ( A’+B’+C))’ 3.4. a) Efectúe el diseño de la implementación de la función simplificada F´(A,B,C) mediante una configuraciòn NAND-AND.. Figura 4.22 Diseño del circuito lógico F’ = (B’C’ + BC A’B)’ Universidad Autónoma Metropolitana Unidad Iztapalapa -87- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo b) Efectúe el diseño de la implementación de la función simplificada F(A,B,C) mediante una configuraciòn AND-AND.. Figura 4.23 Diseño del circuito lógico F = (ABC’ + B’C)’ Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS UTILIZANDO VERIBEST Y FPGA 4. - CONVERTIDOR DE CÓDIGO 2 4 2 1 A CÓDIGO 8 4 -2 –1 Los códigos binarios para dígitos decimales requieren por lo menos cuatro bits. Es posible formular muchos códigos distintos acomodando cuatro bits en 10 combinaciones distintas. Los códigos BDC (84-2-1) y 2421 son ejemplos de códigos ponderados, un código ponderado se asigna a cada posición de bit un factor de ponderación de modo que cada digito puede evaluarse sumando los pesos de todos los unos de la combinación codificada. Cabe señalar que es posible codificar algunos dígitos de dos formas en el código 2421. El 4 decimal se puede asignar a las combinaciones de bits 0100 o 1010 pues ambas dan su peso total de cuatro. Diseñar un circuito combinacional que convierta las cifras decimales (0,1,2..) de un código 2 4 2 1 a un código 8 4 -2 -1. Universidad Autónoma Metropolitana Unidad Iztapalapa -88- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.24 Tabla de verdad Las salidas de Sa,Sb,Sc y Sd son circuitos combinacionales independientes entre sí, pero en conjunto son las salidas para obtener el convertidor 8 4 -2 -1. El circuito combinacional de cada uno de las salidas es: Circuito combinacional Sa: Figura 4.25 Diseño lógica y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -89- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Circuito combinacional Sb: Figura 4.26 Diseño lógica y tabla de verdad Circuito combinacional Sc: Figura 4.27 Diseño lógica y tabla de verdad Circuito combinacional Sd: Figura 4.28 Diseño lógica y tabla de verdad Universidad Autónoma Metropolitana Unidad Iztapalapa -90- PROYECTO DE INGENIERIA ELECTRÓNICA Observemos la simulación del circuito combinacional utilizando el simulador VeriBest V99.0, el programa en VHDL para este diseño esta estructurado en forma estructural. La Descripción Estructural que es la que más se acerca a la realización física de un circuito y puede considerarse como una lista de componentes e interconexiones (Nestlist), los componentes son entidades definidas y para las conexiones se utilizan señales internas definidas al principio. Casa abierta al tiempo Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\CONVERTIDOR\CO NVERTIDOR1 En la Figura 4.29 se muestra la simulación del convertidor de código 2 4 2 1 a código 8 4 -2 -1, esta simulación se realizo en VeriBest V99.0 Figura 4.29 Simulador VeriBest V99.0 Para la implementación en FPGA: Los puertos de entrada y salida son: los puertos de salida estas compuestos del pin 23 al pin 26 y los puertos de entrada del pin 47 al pin 50 del FPGA XC4005XL09PC84 Universidad Autónoma Metropolitana Unidad Iztapalapa -91- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.30 Plano del FPGA XC4005XL-09PC84 Figura 4.31 Declaración de puertos en Project Navigator Para la implementación de este proyecto se encuentran conectados cuatro interruptores, lo que se encargan de introducir la cifra en código 2 4 2 1 los cuales se encuentran en los pins del 47 al 50, y cuatro diodos LEDS colocados en los pins del 23 al 26, en los cuales se observa la cifra convertida en código 8 4 -2 1. Universidad Autónoma Metropolitana Unidad Iztapalapa -92- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Los archivos necesarios para realizar la simulación y poder grabar el FPGA se encuentran localizado en el CD, de 2 formas posibles, cada una de ellas se encuentran en una carpeta del CD, para que se puedan apreciar mejor: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\CONVERTIDOR\CO NVERTIDOR2 Figura 4.32 Fotografía del montaje del proyecto Para entender de manera mas optima el funcionamiento del proyecto anterior, se muestra un video clip del proyecto CONVERTIDOR en funcionamiento el cual se encuentra en la siguiente ruta: D:\proyectOctubre2007\VIDEO\FPGA_PROYECTOS 5. - CONVERTIDOR DECIMAL A HEXADECIMAL. Diseñar un circuito combinacional que permita visualizar en un display de siete segmentos los valores decimales 0 al 15 expresado en código hexadecimal. Empecemos analizando el problema, los valores decimales se pueden representar con cuatro bits, de igual manera los números hexadecimales también se pueden representar con cuatro bits. Los números decimales, son las entradas de nuestro circuito las cuales son cuatro, y las salidas son siete, por que lo queremos visualizar en un display. Las entradas serán representadas por A, B, C y D, las salidas del circuito serán Fa, Fb, Fc, Fd, Fe, Ff, Fg. Para la visualización de los números en hexadecimal requerimos el display de siete segmentos, el cual se ilumina con un voltaje, por que es un display de cátodo común, conociendo las entadas y conociendo el funcionamiento del display se deduce la tabla de verdad. Universidad Autónoma Metropolitana Unidad Iztapalapa -93- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.33 Tabla de verdad Necesitamos obtener las funciones booleanas de cada una de las salidas, Las salidas de Fa, Fb, Fc, Fd, Fe, Ff y Fg son circuitos combinacionales independientes entre si, pero en conjunto son las salidas para obtener el numero hexadecimal visualizado en el display. El circuito combinacional de cada uno de las salidas es: Circuito combinacional Fa: Figura 4.34 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=A’BD+A’C+AB’C’+B’D’+BC Universidad Autónoma Metropolitana Unidad Iztapalapa -94- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Circuito combinacional Fb: Figura 4.35 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=A’B’+A’C’D’+A’CD+B’D’+AC’D Circuito combinacional Fc: Figura 4.36 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=A’C’+A’D+A’B+AB’+C’D Universidad Autónoma Metropolitana Unidad Iztapalapa -95- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Circuito combinacional Fd: Figura 4.37 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=A’B’D’+B’CD+AC’+BC’D+BCD’ Circuito combinacional Fe: Figura 4.38 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=B’D’+AB+CD’+AC Universidad Autónoma Metropolitana Unidad Iztapalapa -96- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Circuito combinacional Ff: Figura 4.39 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=A’C’D’+A’BC’+A’BD’+AB’+AC Circuito combinacional Fg: Figura 4.40 Diseño lógica, Función booleana y Tabla de verdad F(A,B,C,D)=B’C+BC’+CD’+A Universidad Autónoma Metropolitana Unidad Iztapalapa -97- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Observemos la simulación del circuito combinacional utilizando el simulador VeriBest V99.0, el programa en VHDL para este diseño esta estructurado en forma estructural. La Descripción Estructural que es la que más se acerca a la realización física de un circuito y puede considerarse como una lista de componentes e interconexiones (Nestlist), los componentes son entidades definidas y para las conexiones se utilizan señales internas definidas al principio. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\CONVERTIDOR Figura 4.41 Simulador VeriBest V99.0 La Figura 4.41 se muestra la simulación del diseño del circuito generador de números hexadecimales mostrados en un display de siete segmentos. Después de simular en VeriBest V99.0, hay que construir en el dispositivo de FPGA, hay que tomar en cuenta que necesitamos cuatro puertos de entradas y siete puertos de salidas, las cuales deben de ser consecutivos para poder realizar un cableado mejor estructurado. Universidad Autónoma Metropolitana Unidad Iztapalapa -98- PROYECTO DE INGENIERIA ELECTRÓNICA Los cuatro puertos de entrada están dados por los pines 47 al 50 del modulo de FPGA y los puertos de salida son los pins 3 al 9, la declaración de los puertos se definen en Project Navigator. Casa abierta al tiempo Figura 4.42 Declaración de puertos en Project Navigator Figura 4.43 Plano del FPGA XC4005XL-09PC84 Universidad Autónoma Metropolitana Unidad Iztapalapa -99- PROYECTO DE INGENIERIA ELECTRÓNICA Para la implementación de este diseño se encuentran conectados cuatro interruptores, los cuales se encargan de introducir la cifra decimal de forma binaria los cuales se encuentran en los pins del 47 al 50, y siete resistencias de 100 ohms colocados entre el display y el modulo de FPGA. Si existe alguna duda de cómo manejar el software de Veribest V99.0, Project Navigator y demás software utilizados, al final de este documento se encuentran apéndices útiles para su comprensión. Los archivos necesarios para el óptimo desempeño de la simulación y los archivos necesarios para poder grabar el FPGA se encuentran en: Casa abierta al tiempo Figura 4.44 Fotografía del montaje del proyecto Para entender el desempeño del proyecto anterior, se muestra un video clip del proyecto HEXADECIMAL en funcionamiento el cual se encuentra en la siguiente ruta: D:\proyectOctubre2007\VIDEO\FPGA_PROYECTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -100- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo UTILIZANDO ORCAD DEMO Y FPGA 6. ‐ CONTADOR ASCENDENTE/DESCENDENTE MODULO 8 Diseñe, simule y construya un contador modulo 8 ascendente y descendente, sea “x” la variable externa que controlara el sentido de la cuenta; “y” y “z”las variables externas de salida. El diseño del contador deberá de cumplir con lo siguiente: - Si x=1 el contador será ascendente con reinicio de cuenta. Si x=0 será descendente también con reinicio de cuenta La cuenta se visualizara mediante un display de siete segmentos La salida “y” que será uno únicamente cuando la cantidad de ceros de la cuenta, sea minoría y el valor de la variable x sea 1. La salida “z” que será uno solo cuando x=0 y la cantidad de unos de la cuenta sea minoría. - Figura 4.45 Tabla de salida del circuito Observemos la simulación del circuito secuencial en el simulador OrCAD Demo v9.0, el programa en VHDL para este diseño esta estructurado en forma algorítmica. La Descripción algorítmica, es la más cercana a un lenguaje convencional. Esta formada por el bloque de PROCESS, similar a una subrutina, cuyas instrucciones se ejecutan secuencialmente. En esta descripción no se indican componentes, ni interconexiones, solo su comportamiento o funcionamiento. Universidad Autónoma Metropolitana Unidad Iztapalapa -101- PROYECTO DE INGENIERIA ELECTRÓNICA Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\contadorM_8 Casa abierta al tiempo Figura 4.46 Simulador OrCAD Demo V9 La Figura 4.46 se muestra la simulación del diseño del circuito contador modulo 8 ascendente/descendente mostrados en un display de siete segmentos y salidas externas mostradas en LEDS. Después de simular en OrCAD Demo V9, hay que construir en el dispositivo de FPGA, hay que tomar en cuenta que necesitamos dos puertos de entradas y nueve puertos de salidas, las cuales deben de ser consecutivos para poder realizar un cableado mejor estructurado. Los dos puertos de entrada están dados por los pines 57 y 50 del modulo de FPGA y los puertos de salida son los pins 3 al 9,23 y 24, la declaración de los puertos se definen en Project Navigator. Universidad Autónoma Metropolitana Unidad Iztapalapa -102- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.47 Declaración de puertos en Project Navigator Figura 4.48 Plano del FPGA XC4005XL-09PC84 Para la implementación de este diseño se encuentran conectados un interruptor, el cual se encarga de introducir si es ascendente o descendente, en los pins del 47 al 50, se encuentran conectados siete resistencias de 100 ohms colocados entre el display y el modulo de FPGA, en el pin 23 se encuentra conectado un diodo LED, el cual es la salida externa “Y” y por ultimo se encuentra un diodo LED en el pin 24, el cual es la salida “X”, del circuito. Universidad Autónoma Metropolitana Unidad Iztapalapa -103- PROYECTO DE INGENIERIA ELECTRÓNICA Si existe alguna duda de cómo manejar el software de Veribest V99.0, Project Navigator y demás software utilizados, al final de este documento se encuentran apéndices útiles para su comprensión. Los archivos necesarios para el óptimo desempeño de la simulación y los archivos necesarios para poder grabar el FPGA se encuentran en: Casa abierta al tiempo Figura 4.49 Fotografía del montaje del proyecto Para entender el desempeño del proyecto anterior, se muestra un video clip del proyecto MODULO_8 en funcionamiento el cual se encuentra en la siguiente ruta: D:\proyectOctubre2007\VIDEO\FPGA_PROYECTOS 7. ‐ CONTADOR DE 0 A 99 CON REINICIO DE CUENTA Un contador es básicamente un registro que pasa por una sucesión predeterminada de estados. Las compuertas del contador están conectadas de tal manera que producen la sucesión preescrita de estados binarios. Diseñar, simular y construir un contador de 0 a 99 con reinicio de cuenta. Efectué el diseño de manera que solo reciba como señal de entrada un pulso de CLK y se visualicé en dos display de siete segmentos de cátodo común.. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\contador00_99 En la Figura 4.50 Se muestra la simulación del contador 0 a 99 con reinicio de cuenta, esta simulación se realizo en OrCAD Demo. Universidad Autónoma Metropolitana Unidad Iztapalapa -104- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.50 Simulador OrCAD Demo Para la implementación en FPGA: Los puertos de entrada y salida son: los puertos de salida estas compuestos del pin 3 al pin 9 y del pin 44 al pin 50 del FPGA XC4005XL-09PC84 el puerto de entrada, el pin 57, en donde se introduce el CLK. Universidad Autónoma Metropolitana Unidad Iztapalapa -105- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.51 Plano del FPGA XC4005XL-09PC84 Figura 4.52 Declaración de puertos en Project Navigator Para la implementación de este proyecto se encuentran conectadas siete resistencias de 100 ohms los cuales están colocados en los pins del 44 al 50 del FPGA y en el display1 de siete segmentos, de igual manera otras siete resistencias de 100 ohms en los pins del 3 al 9, para el display 2. El pulso de reloj (CLK), es generado por un oscilador, el cambio entre un nivel alto de voltaje y uno bajo, es de aproximadamente 1 segundo, este pulso se conecta en el pin 57 del FPGA. Los archivos necesarios para realizar la simulación y poder grabar el FPGA se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\contador00_99 Universidad Autónoma Metropolitana Unidad Iztapalapa -106- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.53 Fotografía del montaje del proyecto Para entender de manera mas optima el funcionamiento del proyecto anterior, se muestra un video clip del proyecto CONTADOR_99 en funcionamiento el cual se encuentra en la siguiente ruta: 8. ‐ CONTADOR DE RIZO DE 0 A 7 Contador de rizo En un contador de rizo, la transición de salida del flip-flop sirve para disparar otros flip-flop. Dicho de otro modo, la entrada C de algunos flip-flop, o de todos, se dispara. No con los pulsos de reloj común, sino con la transición que se da en otras salidas de flip-flop. Diseñar un contador de una década (esto es, 0 a 7) de ondulación (rizo). Al construir este contador deberá de observarse la cuenta en un display de siete segmentos de cátodo común, el contador deberá comenzar desde cero. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\CONTADOR RIZO En la Figura 4.54 Se muestra la simulación del contador 0 a 7, esta simulación se realizo en OrCAD Demo. Universidad Autónoma Metropolitana Unidad Iztapalapa -107- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.54 Simulador OrCAD Demo Para la implementación en FPGA: Los puertos de entrada y salida son: los puertos de salida estas compuestos del pin 3 al pin 9 del FPGA XC4005XL-09PC84 el puerto de entrada, el pin 57, es donde se introduce el CLK. Figura 4.55 Plano del FPGA XC4005XL-09PC84 Universidad Autónoma Metropolitana Unidad Iztapalapa -108- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.56 Declaración de puertos en Project Navigator Para la implementación de este proyecto se encuentran conectados siete resistencias de 100 ohms los cuales están colocados en los pins del 3 al 9 del FPGA y en el display de siete segmentos. El pulso de reloj (CLK), es generado por un oscilador, el cambio entre un nivel alto de voltaje y uno bajo, es de aproximadamente 1 segundo, este pulso se conecta en el pin 57 del FPGA. Los archivos necesarios para realizar la simulación y poder grabar el FPGA se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\LOGICA_PROYECTOS\CONTADOR RIZO Figura 4.57 Fotografía del montaje del proyecto Para entender de manera mas optima el funcionamiento del proyecto anterior, se muestra un video clip del proyecto RIZO en funcionamiento el cual se encuentra en la siguiente ruta: D:\proyectOctubre2007\VIDEO\FPGA_PROYECTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -109- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -110- PROYECTO DE INGENIERIA ELECTRÓNICA SEGUNDA PARTE: PROYECTOS UTILIZANDO PIC16F84 1. -SUMADOR DE 3 BITS Se trata de simular un sumador de dos números binarios de tres bits cada uno y el resultado de la operación aritmética se muestra en un banco de 4 LEDS. Casa abierta al tiempo Diagrama Eléctrico Figura 4.58 Diagrama eléctrico del sumador. Como se puede apreciar en la Figura 4.58 se colocan tres interruptores en las líneas RA0, RA1 y RA2 de la puerta A, los cuales ingresan el primer operando, de igual manera se colocan otros tres interruptores en las líneas RB4, RB5 y RB6 de la puerta B del PIC16F84 y cuatro LEDS en las líneas RB0, RB1, RB2 y RB3 de PB. Mediante los tres interruptores de cada puerta, se introduce un número binario de tres bits y la suma se visualizara en los cuatro LEDS colocados. Figura 4.59 Fotografía del montaje del proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -110- PROYECTO DE INGENIERIA ELECTRÓNICA Para entender de manera mas optima el funcionamiento del proyecto anterior, se muestra un video clip del proyecto SUMA en funcionamiento. Casa abierta al tiempo Diagrama de Flujo Figura 4.60 Funcionamiento del sumador. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Suma Un video del funcionamiento de este proyecto SUMA se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS 2. -CONTADOR ASCENDENTE Se desea confeccionar un programa para el PIC16F84, que comience poniendo en ceros un contador de cuatro bits, el cual se visualizara en cuatro LEDS, y se incremente de uno en uno en su cuenta hasta llegar a 15 de forma Universidad Autónoma Metropolitana Unidad Iztapalapa -111- PROYECTO DE INGENIERIA ELECTRÓNICA binaria, al final de la cuenta muestre un mensaje de termino mostrado en una pantalla LCD. Casa abierta al tiempo Diagrama Eléctrico Figura 4.61 Diagrama eléctrico del contador. Como se puede apreciar en la Figura 4.61 se colocan cuatro LEDS en las líneas RB0, RB1 RB2 y RB3, el modulo de LCD se implementa con las líneas RB0, RB1, RB2, RB3, RB4, RB5, RB6 y RB7 del PB RA0, RA1 y RA2 del PA, además un potenciómetro colocado en el pin 3 de modulo LCD. Figura 4.62 Fotografía del montaje del proyecto Para entender de manera mas optima el funcionamiento del programa anterior, se muestra un video clip del CONTADOR en funcionamiento. Universidad Autónoma Metropolitana Unidad Iztapalapa -112- PROYECTO DE INGENIERIA ELECTRÓNICA Diagrama de Flujo Casa abierta al tiempo Figura 4.63 Funcionamiento del contador. Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Contador_lcd Un video del funcionamiento de este proyecto CONTADOR_LCD se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS 3. - MANEJO DE INTERRUPCIONES Conectados a las líneas RA0 y RA1 de la puerta A existen dos interruptores, A y B, los cuales tienen que ser explorados continuamente y reflejar su estado (abiertos o cerrados) sobre los diodos LED, A’ y B’, conectados a las líneas RB0 y RB1 de la puerta B. Universidad Autónoma Metropolitana Unidad Iztapalapa -113- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Además existe otro diodo LED en la línea RB7 que esta parpadeando continuamente, pasando cada segundo por los estados de encendido y apagado. Para controlar el retardo de 1 segundo para el parpadeo del led conectado en la línea RB7, se genere una interrupción cada dicho tiempo por desbordamiento del TMRO Inicialmente se cargara el TMRO con el valor 1210 con lo que el desbordamiento se producirá al cabo de 244(256-12) impulsos aplicados a dicho temporizador. Dichos impulsos serán los del oscilador interno Tosc, pero divididos por 256 en el divisor de frecuencia, con lo cual la temporización total será: Temporizador = 4*Tosc*Valor TMRO* Rango Divisor de Frecuencia Temporizador = 4*250ns*244*256= 62.4ms Como no se alcanza el retardo de 1 segundo se emplea un contador auxiliar CONTA que al cargarse con un valor de 1610 y se decrementará una unidad cada 62.4 ms, cuando llegue a 0 conseguirá, aproximadamente, el tiempo buscado (62.4 ms x 16). Diagrama Eléctrico Figura 4.64 Diagrama eléctrico. Universidad Autónoma Metropolitana Unidad Iztapalapa -114- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.65 Fotografía del montaje del proyecto Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Interrupciones Un video del funcionamiento de este proyecto INTERRUPCIONES se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Diagrama de Flujo. Universidad Autónoma Metropolitana Unidad Iztapalapa -115- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.66 Diagrama del funcionamiento. 4. - DISPLAY Se propone diseñar un convertidor, que debe mostrar el número binario de tres bits en un display de siete segmentos de cátodo común. Diagrama Eléctrico Universidad Autónoma Metropolitana Unidad Iztapalapa -116- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.67 Diagrama del funcionamiento del display. Como se puede apreciar en la Figura 4.67 en las tres líneas de menos peso de la puerta A del PIC16F84 se conectan tres interruptores por los cuales se introduce un numero binario (000-111). Al utilizar un display de siete segmentos de cátodo común se supone que los segmentos se iluminaran, cuando las líneas de la puerta B tengan salidas de nivel alto y se introduzcan al display Figura 4.68 Fotografía del montaje del proyecto Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Display Un video del funcionamiento de este proyecto DISPLAY se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -117- PROYECTO DE INGENIERIA ELECTRÓNICA Diagrama de Flujo Casa abierta al tiempo Figura 4.69 Diagrama del funcionamiento del display. 5. - MANEJO DE COMBINACIONAL Se propone diseñar un programa en cual mediante dos interruptores conectados en RA0 y RA1 del PA, I0 e I1, controlan el estado lógico de ocho diodos LED, los cuales se encuentran conectados en las líneas de PB, los cambios de los ocho diodos LEDS, se encuentran gobernados por la siguiente tabla de verdad. I1 0 0 1 1 I0 0 1 0 1 L7 1 0 0 1 L6 0 1 0 1 L5 1 0 0 1 L4 0 1 0 1 L3 1 0 1 0 L2 0 1 1 0 L1 1 0 1 0 L0 0 1 1 0 Figura 4.70 Tabla de verdad de I0 e I1 Universidad Autónoma Metropolitana Unidad Iztapalapa -118- PROYECTO DE INGENIERIA ELECTRÓNICA Diagrama Eléctrico Casa abierta al tiempo Figura 4.71 Diagrama eléctrico del problema combinacional. Figura 4.72 Fotografía del montaje del proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -119- PROYECTO DE INGENIERIA ELECTRÓNICA Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Manejo_Comb Un video del funcionamiento de este proyecto se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Casa abierta al tiempo Diagrama de Flujo Figura 4.73 Diagrama del funcionamiento combinacional. 6. - CONTADOR ASCENDENTE/DESCENDENTE Un display de siete segmentos visualiza una cuenta de 0 al 9, que se introducen por medio del interruptor I0. Universidad Autónoma Metropolitana Unidad Iztapalapa -120- PROYECTO DE INGENIERIA ELECTRÓNICA El contador puede ser ascendente o descendente, según el estado que introduce el interruptor I1. Si I0=0, el contador es ascendente, en caso contrario es descendente. Diagrama Eléctrico Casa abierta al tiempo Figura 4.74 Diagrama eléctrico del contador. Como se puede apreciar en la Figura 4.74 se conectan dos interruptores en las líneas RA0 y RA1, además, un display de siete segmentos de catado común, conectados en las líneas de salida de la puerta B. cada una con su respectiva resistencia de 1k. Figura 4.75 Fotografía del montaje del proyecto Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Count_up_down Universidad Autónoma Metropolitana Unidad Iztapalapa -121- PROYECTO DE INGENIERIA ELECTRÓNICA Un video del funcionamiento de este proyecto CONTADOR_A-D se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Casa abierta al tiempo Diagrama de Flujo Figura 4.76 Diagrama de funcionamiento del contador. 7. - CONTROL DE ACCESO. Se desea controlar la capacidad máxima de un local, que no debe superar las doce personas. Para conocer la entrada y la salida de las personas existen dos sensores, I0 e I1, colocados estratégicamente. Universidad Autónoma Metropolitana Unidad Iztapalapa -122- PROYECTO DE INGENIERIA ELECTRÓNICA Cuando hay personas en un local, la lámpara L, esta encendida y se apaga automáticamente cuando no hay nadie. Si dentro del local hay menos de 12 personas, se ilumina en el exterior un cartel “PL”, que indican plazas libres, Si hay 12 personas, se enciende el cartel “C” de completo. Si estando completo el local alguien intenta entrar, se activa una alarma acústica “A”. Casa abierta al tiempo Diagrama Eléctrico Figura 4.77 Diagrama eléctrico del control de acceso. Como se puede apreciar en la Figura 4.77 se conectan dos push-botton I0 el cual es entrada y I1 el cual es salida en las líneas RA0 y RA1, en las líneas de RB0, RB1 y Rb2 se conectan tres LEDS, indicadores de las banderas L, C, PL en la línea RB3 se encuentra conectado un oscilador que hace funcionar el zumbador. Figura 4.78 Fotografía del montaje del proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -123- PROYECTO DE INGENIERIA ELECTRÓNICA Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Acceso Un video del funcionamiento de este proyecto CONTROL_ACCESO se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Casa abierta al tiempo Diagrama de Flujo Figura 4.79 Diagrama del funcionamiento Universidad Autónoma Metropolitana Unidad Iztapalapa -124- PROYECTO DE INGENIERIA ELECTRÓNICA 8. - SEMÁFORO PROGRAMABLE Se trata de simular el funcionamiento de las tres luces del semáforo (verde, amarillo y rojo) mediante tres diodos LED (LI, L2Y L3.) El control del encendido y apagado de los LED se realiza mediante los interruptores I1 e I2 de los cuatro que dispone un conjunto DIP-SWITCH. Casa abierta al tiempo I2 0 0 1 1 I1 0 1 0 1 L1(V) RB1 5 5 8 10 L2(A) RB3 2 2 2 2 L3(R) RB5 5 10 8 5 La Tabla de verdad en la que se indican los segundos de encendido de los LED. Según el estado de los interruptores, se desarrolla una secuencia concreta de tiempo de encendido de los tres LED que simula las luces del semáforo, de acuerdo con la tabla, la finalidad primordial de este ejercicio esta la de manejar el temporizador TMR0 para que produzca retardos de diversa duración. Como se puede apreciar en la Figura 4.80 los interruptores I1 e I2 se conectan en las líneas de entrada RA0 y RA1 de la PUERTAA a través de sendas resistencias de 10kΩ. En este caso son activos por nivel bajo. Los diodos LED L1, L2 y L3 se conectan a las líneas de salida RB1, RB3 y RB5 de la PUERTAB a través de resistencias de 330. Diagrama Eléctrico Figura 4.80 Diagrama eléctrico del semáforo. Universidad Autónoma Metropolitana Unidad Iztapalapa -125- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Diagrama de Flujo Figura 4.81 Diagrama del funcionamiento del semáforo. Universidad Autónoma Metropolitana Unidad Iztapalapa -126- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura 4.82 Fotografía del montaje del proyecto Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\ proyectOctubre2007\ PROGRAMAS\ PICS_PROYECTO\Semaforo. Un video del funcionamiento de este proyecto SEMAFORO se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS 9. - DADO ELECTRÓNICO Este proyecto de simula un juego de azar. Un dado típico tiene seis caras, en cada una de las cuales viene marcado un número de puntos de 1 a 6. El dado es sustituido por un display de 7 segmentos, que será el encargado de visualizar un número aleatorio comprendido entre el 1 y el 6 cada vez que se presione el push-botton. Diagrama Eléctrico Figura 4.83 Diagrama eléctrico de dado electrónico. Universidad Autónoma Metropolitana Unidad Iztapalapa -127- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo En el esquema de la Figura 4.83 se muestra la conexión de las siete líneas de menos pesos de la PUERTAB(RB0-RB6) a los segmentos del display a través de siete de las ocho resistencias de 1k. La línea de entrada RA0 soporta el nivel lógico que introduce un push-botton. El push-botton introducirá un 1 lógico al activarse aunque podría conectarse para introducir un 0. Por su parte, el display de siete segmentos también se activa por nivel alto, ya que es de cátodo común. Diagrama de Flujo Figura 4.84 Diagrama del funcionamiento del dado electrónico. Figura 4.85 Fotografía del montaje del proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -128- PROYECTO DE INGENIERIA ELECTRÓNICA Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Dado Un video del funcionamiento de este proyecto DADO se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Casa abierta al tiempo 10. - TEMPORIZADOR PROGRAMABLE Se propone diseñar un temporizador que controle un tiempo medido en segundos, hasta un máximo de siete. Para programar el temporizador se dispone de tres de los cuatro interruptores. Según su posición determinan un valor binario, que puede alcanzar el valor siete cuando los tres introducen un nivel alto. El tiempo lo visualiza un display de siete segmentos, que se va decrementando hasta llegar a cero. También existe un push-botton para poner en marcha la cuenta del tiempo. Como periféricos de salida, existe, además del display, un zumbador acústico genera un pitido, mientras dura el periodo de tiempo regular. Diagrama Eléctrico Figura 4.86 Diagrama eléctrico del temporizador. Universidad Autónoma Metropolitana Unidad Iztapalapa -129- PROYECTO DE INGENIERIA ELECTRÓNICA La PUERTAB esta configurada como salida y sus siete líneas de menos peso se asignan al control del display de siete segmentos a través de siete resistencias de 1k. La PUERTAA actúa como entrada y recibe el estado de los interruptores que programa el tiempo. En nuestro caso los tres interruptores validos serán los conectados a líneas de menos peso de la PUERTAA (RA0, RA1, RA2). El interruptor de RA3 no tiene significado y su valor de pone a cero por software cuando se lee la PUERTAA. Finalmente la línea de salida RB3 soporta simultáneamente al zumbador. Casa abierta al tiempo Figura 4.87 Fotografía del montaje del proyecto Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Temporizador Un video del funcionamiento de este proyecto TEMPORIZADOR se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Universidad Autónoma Metropolitana Unidad Iztapalapa -130- PROYECTO DE INGENIERIA ELECTRÓNICA Diagrama de Flujo Casa abierta al tiempo Figura 4.88 Diagrama del funcionamiento del temporizador. Universidad Autónoma Metropolitana Unidad Iztapalapa -131- PROYECTO DE INGENIERIA ELECTRÓNICA 11. - ALARMA Se trata de simular una alarma domestica, para lo cual se colocan tres detectores en posibles puntos de entrada a una vivienda y avisadores acústicos y visuales. Cada sensor provoca el encendido de un diodo LED diferente cuando se activa y un pitido por un zumbador, significando que la alarma a asaltado. Los detectores están implementados por dos interruptores y un optoacoplador H21A1. Un optoacoplador es un sensor que manda una determinad señal (0 o 1 lógico) cuando existe haz luminoso entre el emisor y el detector, y la señal contraria cuando dicho haz se corta. Casa abierta al tiempo Diagrama Eléctrico Figura 4.89 Diagrama eléctrico de la alarma. Figura 4.90 Fotografía del montaje del proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -132- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Los archivos y todo lo relacionado para la simulación de este proyecto se encuentran localizado en: D:\proyectOctubre2007\PROGRAMAS\PICS_PROYECTO\Alarma Un video del funcionamiento de este proyecto ALARMA se encuentra en: D:\proyectOctubre2007\VIDEO\PIC_PROYECTOS Diagrama de Flujo Figura 4.91 Diagrama del funcionamiento de la alarma. Universidad Autónoma Metropolitana Unidad Iztapalapa -133- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo CONCLUSIONES Universidad Autónoma Metropolitana Unidad Iztapalapa -134- PROYECTO DE INGENIERIA ELECTRÓNICA La descripción en VHDL de un circuito digital permite que como estudiantes recurramos a los circuitos integrados comerciales, ya que este lenguaje se relaciona con el funcionamiento del dispositivo que se está modelando, y de esta forma no se pierde vigencia en el diseño realizado. El ahorro en tiempo en la elaboración de aplicaciones sencillas, o más bien básicas, es bastante notorio, siempre y cuando se tenga un conocimiento previo del lenguaje de descripción de hardware que se utiliza y fundamentos teóricos de la electrónica digital. Las modificaciones en el diseño no necesitan un esfuerzo adicional como lo son los desarrollos por hardware convencionales. Las herramientas de diseño, permiten no solamente programar dispositivos PLD´s y FPGA´s, sino que además permiten realizar la simulación del diseño, como son el caso de los programas Veribest, Orcad o Quartus II, de esta forma se puede verificar su correcto funcionamiento. Debido a los recursos totales disponibles en las FPGAs, se pueden realizar diseños bastante complejos, que contengan integrados como procesadores, DPSs, entre otros, con la ventaja de desarrollarlo de acuerdo a las condiciones específicas de la aplicación. Esto se pude llevar a cabo con un profundo análisis en cada una de las tecnologías, sin embargo este reporte solo brinda un panorama y uso general de las mismas. Como resultado en nuestro proyecto terminal pudimos definir algunas de las ventajas del VHDL como las siguientes: Permite diseñar y modelar un sistema en varios niveles de abstracción: flujo de datos, estructural, algorítmico. Una descripción en VHDL es no depende de la implementación hardware final en cada aplicación. VHDL ofrece sus propias maneras de definir "subprogramas o subrutinas". El estudio de los dispositivos programables nos permitió ir formando un conocimiento sólido para la construcción de soluciones basadas en ejemplos sencillos pero aún más con un aprendizaje en asignaturas como Sistemas Digitales. Nos pudo dar a conocer el funcionamiento y a prepararnos en los casos en donde debíamos de cambiar de dispositivos, adecuando las técnicas y los sistemas. De esta manera, es como podemos trasmitir los resultados, reconociendo como alumnos que aspectos y características debíamos de cubrir es necesario saber previamente para poder ofrecer soluciones, y así el lector pueda utilizarlas como otras alternativas. Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -135- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Otros de los puntos que pudimos notar en el uso del FPGA y microcontroladores, que son de gran utilidad en los laboratorios de Electrónica Digital, son: reemplazan a varios componentes discretos, reducción del nº de CI´s, reducción de espacio, conexiones, consumo, reducción del coste, aumento de fiabilidad, tienen la posibilidad de ser reprogramados, eliminación de errores de grabación, gran flexibilidad, su diseño es sencillo, además de que es una programación a “alto nivel” (ecuaciones booleanas, tablas de verdad, diagramas de estados...) y ofrece una posibilidad de simulación En conclusión, en este proyecto terminal de Ingeniera Electrónica se logro concretar satisfactoriamente los propósitos del mismo, y aportar mas a nuestra formación como ingenieros. Universidad Autónoma Metropolitana Unidad Iztapalapa -136- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Apéndice A VERIBEST V99.0, ORCAD DEMO V9 Y Quartus II. Universidad Autónoma Metropolitana Unidad Iztapalapa -137- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo VeriBest V99.0 1. Se abre la aplicación Inicio/Programas/VeriBesV99.0/VeriBest VHDL simulador/ VeriBest VHDL y se crea un nuevo espacio de trabajo mediante el comando File/New, seleccionando VHDL Workspace y haciendo clic en la opción OK. Tras especificar el nombre del espacio de trabajo en la casilla Workspace Name se pulsa la opción Create. 2. De la misma forma se crea un fichero fuente VHDL, mediante el comando File/New seleccionando VHDL Source File y haciendo clic en la opción OK se crea una ventana de nombre VHDL1 en la que se puede escribir el código fuente VHDL. 3. Una vez capturado el código, en este ejemplo de una compuesta AND, se ha creado un nuevo fichero fuente VHDL para definir los estímulos y poder simular el comportamiento de la compuerta lógica con sus diagramas de tiempos, función que también es posible con este programa. Como cualquier lenguaje de programación, en la simulación mediante VHDL, se deben realizar los pasos descritos en la Figura A.1; compilar el fichero fuente creado, ejecutar el simulador y visualizar los resultados obtenidos. Figura A.1 Lenguaje VHDL una compuerta AND Universidad Autónoma Metropolitana Unidad Iztapalapa -138- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 4. La compilación se realiza mediante el comando Workspace/Compile All, o haciendo clic sobre el botón cuyo icono es el siguiente: 5. Una vez compilado sin errores se puede simular, pero antes se debe elegir la entidad y arquitectura raíz para la simulación mediante haciendo clic en el botón cuyo icono es el siguiente: 6. Aparecerá un menú como el de la Figura A.2, seleccionar la etiqueta de Simulate y abrir la carpeta WORK. Selecciona la arquitectura que se quiere simular, se hace clic sobre el botón Set y sobre el botón aceptar. Figura A.2 Ventana Menú del paso 6 7. Para simular hay que hacer clic sobre el botón de la barra de herramientas cuyo icono se muestra a continuación. Universidad Autónoma Metropolitana Unidad Iztapalapa -139- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 8. Para definir las señales a visualizar se hace clic sobre el botón cuyo icono es el siguiente: 9. En la ventana que aparece se deben especificar las señales a visualizar, es por eso que se presiona el siguiente botón: 10. Se observara una lista de señales, se pueden seleccionar algunas o todas con la opción Add All finalizando con ala opción Close, como se ve en la Figura A.3. Figura A.3 Ventana de Señales disponibles de la compuerta AND. 11. El último paso consiste en ejecutar el simulador para ver las señales que se producen durante un lapso de tiempo, para esto se puede poner en el siguiente icono: Universidad Autónoma Metropolitana Unidad Iztapalapa -140- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 12. Se hace clic en el botón cuyo icono es el de la figura de abajo, para finalmente obtener los diagramas de tiempo como los de la Figura A.4. 13. Para salir de la simulación una ves que verificamos que nuestro diseño realizo el trabajo esperado, se hace clic en el botón cuyo icono es: Figura A.4 Diagramas de tiempo de la compuerta AND. Todo lo anterior descrito es necesario para poder llevar acabo nuestro flujo de diseño de manera correcta y para la detección de errores, esto con el fin de obtener el archivo.vhd necesario, además podemos ver que el resultado obtenido es el que cabía esperar. Ahora estamos en disposición de comenzar desde el principio, añadiendo nuevos circuitos a nuestro espacio de trabajo. Ahora finalmente poder pasar a la etapa de prueba física mediante el uso de la tarjeta de FPGA. Universidad Autónoma Metropolitana Unidad Iztapalapa -141- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo OrCAD Demo V9 CREACIÓN DE UN PROYECTO Pasos a realizar para crear un proyecto: 1. - Abrir la aplicación Inici/Programas/OrCAD Demo/Simulate Demo, visualizándose la ventana de la Figura A.5 Figura A.5 Pantalla inicial del simulador 2. -Crear un nuevo proyecto mediante el comando File/New, o el icono Mostrándose la ventana de la Figura A.6, en la que se solicita el tipo de fichero a crear, seleccionando OrCAD Project. Universidad Autónoma Metropolitana Unidad Iztapalapa -142- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.6 Creación de un proyecto 3. - En la ventana de la Figura A.7, el programa solicita: el nombre del nuevo proyecto y la localización de su directorio. Figura A.7 Asignación del nombre y directorio del proyecto AÑADIR DOCUMENTOS A UN PROYECTO 1. - Incluir en el proyecto ficheros VHDL (*.vho,*vhd) si estos ya han sido previamente creados, y el tipo de fichero VHDL(Netlist, SimModel o Testbench) indicados en la Figura A.8. En caso de no querer añadir documentos al proyecto seleccionar el botón Cancelar, pudiéndose crear posteriormente, mediante el editor del simulador, estos ficheros VHDL y añadirles al proyecto. Universidad Autónoma Metropolitana Unidad Iztapalapa -143- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.8 Añadir documentos a un proyecto Figura A.9 Selección del tipo de fichero VHDL 2. - Si en los pasos anteriores se incluyeron en el proyecto ficheros previamente creados, el siguiente aviso de la Figura A.10 indica si se quiere compilar dichos ficheros en el proyecto. Figura A.10 Aviso solicitando si se quiere compilar los documentos añadidos al proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -144- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 3. - La Figura A.11 se muestra el entorno del programa de simulación OrCAD Simulate Demo después de crear un nuevo proyecto. Figura A.11 Pantalla del programa del simulador 4. - Para crear en el proyecto nuevos ficheros fuente de tipo: VHDL, Edif. O Delay se utiliza el comando File/New, o el icono. Mostrando la pantalla de la Figura fichero a crear en el proyecto. A.12, que permite elegir el tipo de Figura A.12 Selección del tipo del fichero Universidad Autónoma Metropolitana Unidad Iztapalapa -145- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Se abre el editor de texto del simulador, como muestra la Figura A.13. Figura A.13 Ventana del editor para crear un fichero VHDL 5. - Para abrir e incluir ficheros en el proyecto, es mediante un menú contextual (pulsando el botón derecho del ratón) sobre un apartado del proyecto en el que se quiere añadir el fichero, apareciendo la opción add files, Como se muestra en la Figura A.14. Figura A.14 Menú contextual sobre el proyecto Universidad Autónoma Metropolitana Unidad Iztapalapa -146- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo GENERACIÓN DE ESTIMULOS Para definir los estímulos del circuito, el programa de simulación OrCAD Demo V9, permitir dos procedimientos: • Mediante la descripción de los estimulas en un fichero VHDL que se añade al proyecto o Mediante una herramienta interactiva de generación de estímulos propia del simulador. • 3.1 Generación de estímulos mediante fichero VHDL Mediante un editor de texto se puede generar la definición de los estímulos de un circuito en lenguaje VHDL, este fichero se debe añadir al proyecto pulsando el botton derecho del ratón sobre el apartado del proyecto en el que se quiere añadir el fichero, apareciendo de manera contextual con la opción add files como se mostró anterior mente. 3.2 Generación de estímulos mediante la herramienta interactiva del simulador El comando Stimulos/New Interactive, abre la herramienta interactiva del simulador que se genera los estímulos de un circuito, permitiendo definirles de tres formas distintas: Basic: para generar impulsos, Figura A.15. Figura A.15 Herramienta de generación de estímulos tipo Basic Universidad Autónoma Metropolitana Unidad Iztapalapa -147- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Advanced: para generar una serie de impulsos que se pueden repetir un numero finito de veces, Figura A.16. Figura A.16 Herramienta de generación de estímulos tipo Advanced Clock: para generar relojes, Figura A.17 Figura A.17 Herramienta de generación de estímulos tipo Clock En la Figura A.18 se muestran las señales de estímulos que han sido definidas mediante la herramienta interactiva del simulador y de que tipo son. Se pueden habilitar o inhabilitar cada uno de los estímulos o partes de ellos con los botones Enable y Disable respectivamente, en la ventana Interactive Stimulos. Universidad Autónoma Metropolitana Unidad Iztapalapa -148- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.18 Señales de estímulos Por ultimo poner en marcha la simulación Simulate/Run o mediante el icono. Universidad Autónoma Metropolitana Unidad Iztapalapa -149- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Uso del software CAD Quartus II A continuación se presenta las instrucciones paso a paso para realizar la captura del diseño con el método de la escritura del código de VHDL. También se ilustra el proceso de simulación en esta paquetería. Inicie el software Quartus II. Debe ver una pantalla parecida a la que se exhibe en la Figura A.19. Esa pantalla se compone de varias ventanas que dan acceso a todas las funciones del programa, las cuales el usuario selecciona con el mouse. Para empezar a trabajar en un diseño nuevo primero hay que definir un proyecto de diseño. Figura A.19 Ventana de inicio Quartus II facilita la tarea al diseñador apoyándolo con un asistente. Selecciona File|New Project Wizard para llegar a una ventana que indica las funciones de este asistente. Haga clic en Next para abrir la ventana que se muestra en la Figura A.20. Universidad Autónoma Metropolitana Unidad Iztapalapa -150- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.20 Nombre del nuevo proyecto Figura A.21 Creación de directorio Establezca un directorio de trabajo y un el nombre asignado al proyecto. Haga clic en Next, como aun no hemos creado el directorio, Quartus II despliega el cuadro de mensaje, que pregunta si quiere crear el directorio, por lo tanto haga clic en Yes, lo cuál lo conduce a la ventana de la Figura A.22 en esta ventana el diseñador especifica los archivos existentes para el proyecto pero ahora no tenemos, así que haga clic en Next. Universidad Autónoma Metropolitana Unidad Iztapalapa -151- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.22 Ventana de archivos existentes Ahora aparece otra ventana, la cual permite al diseñador especificar las herramientas CAD de otras compañías que pueden utilizarse. Haga clic en Next para ir a la ventana mostrada en la Figura A.23, donde podrá especificar el tipo de dispositivo, por ahora en nuestro caso no tiene importancia, puede escoger cualquiera y hacer clic en la opción No, I want to allow the Compiler to choose a device. Haga clic en Finish para dejar la pantalla principal, ahora ya con el nuevo proyecto creado. Figura A.23 Tipo de dispositivos. Universidad Autónoma Metropolitana Unidad Iztapalapa -152- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Quartus II ofrece un editor de texto que puede utilizarse para escribir código VHDL. Seleccione File|New para abrir la ventana de la Figura A.24, elija la opción VHDL File y haga clic en OK. Esto abre la ventana del editor de texto (Text Editor). Mediante File|Save As usted podrá definir el nombre y el tipo de archivo a guardar en nuestro caso VHDL File. Es importante dejar activada la casilla Add file to current poject en la parte inferior del cuadro de diálogo (y guarde el archivo), ahora puede introducir al código en la ventana del editor de texto. Figura A.24 Ventana para editor de código Universidad Autónoma Metropolitana Unidad Iztapalapa -153- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.25 Guardar archivo Una vez terminado de ser capturado, seleccione Processing|Start|Start Analysis and Synthesis para que compilador sintetice un circuito que implemente el código dado en VHDL. Si el código está bien escrito, el compilador muestra un mensaje que indica que no se generaron errores ni advertencias. El resumen del informe de compilación muestra un mensaje que indica que no se generaron errores ni advertencias. El resumen del informe de compilación será, en esencia, como el mostrado en la Figura A.27. Figura A.26 Editor de texto -154- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.27 Mensajes del compilador Quartus II incluye una herramienta de simulación que sirve para simular el comportamiento del circuito diseñado. Antes que el circuito pueda simularse es preciso crear las formas de onda deseadas, llamadas vectores de prueba, a fin de representar las señales de entrada. Seleccione File|New, con lo que se abre la ventana de la Figura A.24. Haga clic en la ficha Other Files para llegar a la ventana exhibida en la Figura A.28. Seleccione Vector Waveform File y haga clic en OK. Figura A.28 Ventana para el simulador con vectores lógicos -155- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo La ventana del editor de formas de onda se presenta en la Figura A.29. Guarde el archivo con el nombre que desee y observe que el nombre cambia. Indique el tiempo de ejecución de la simulación eligiendo Edit|End Time e introdúzcalo. Seleccione View|Fit in Window para mostrar el limite de la simulación en la ventana. Figura A.29 Editor de formas Para incluir los nodos de entrada y salida del circuito haga clic en Edit|Insert Node or Bus para abrir lo que aparece en la Figura A.30, después hacer clic en el botón etiquetado Node Finder para abrir la ventana de la Figura A.31. Busque todo los pines mediante LIST y páselos a espacio que dice Selected Nodes en el lado derecho de la ventana con el signo >, repita este procedimiento, haga clic en OK en todas las ventanas. Universidad Autónoma Metropolitana Unidad Iztapalapa -156- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura A.30 Nodos de entrada y salida Figura A.31 Buscador de nodos Esto deja una ventana del editor de formas de onda completamente desplegada. Para simular el comportamiento de un circuito grande es preciso aplicar un número suficiente de combinaciones de entrada y observar los valores esperados de las salidas. Las formas de onda pueden trazarse con la herramienta Selection, que se activa seleccionando el ícono que parece una punta de flecha grande en la barra de herramientas vertical ó con Waveform Editing, cuyo ícono también se encuentra en la barra vertical y parece dos flechas que apuntan a la izquierda y a la derecha, solo haga clic en las barras de tiempo. Universidad Autónoma Metropolitana Unidad Iztapalapa -157- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Ejecución de la simulación Seleccione Assignments|Settings para abrir la ventana settings. En la parte izquierda de esta ventana haga clic en Simulator; seleccione Functional como el modo de simulación. Para completar la configuración del simulador elija el comando Processing|Generate Functional Simulation Netlist. La ejecución de una simulación empieza seleccionado Processing|Start Simulation. Al final, Quartus II indica la terminación satisfactoria y muestra un informe de simulación. Universidad Autónoma Metropolitana Unidad Iztapalapa -158- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Apéndice B FPGA EXPRESS Y PROJECT NAVIGATOR Universidad Autónoma Metropolitana Unidad Iztapalapa -159- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo FPGA Express Una vez obtenido el archivo *.vhd se puede continuar con nuestra simulación, aunque ahora se darán las instrucciones de cómo ir creando otros archivos necesarios para que se puedan implementar en la tarjeta FPGA, por lo tanto hasta este momento gran parte del diseño a sido exitoso ya que hemos efectuado el diagrama de flujo correctamente. 1. Se abre la aplicación Inicio/Programas/Xilinx Foundation Series ISE 3.1i/Accessories/ FPGA Express ò también presionando el icono que en el escritorio como el que se muestra a continuación. Se crea un nuevo espacio de trabajo mediante el comando File/New Project, seleccionando el nombre de la carpeta que se creara y haciendo clic en la opción OK. Tras especificar el nombre del archivo vhd deseado para su implementación se pulsa la opción OK. 2. Enseguida aparecerá una pantalla como la que se muestra en la Figura B.1. En ella se encuentran dos espacios de trabajo, a la izquierda (Design Sources) y derecha (Chips), en el espacio de la izquierda se observa la carpeta que se creo y la carpeta de trabajo(WORK) creada por el programa, además de nuestro archivo vhd adjuntado. Se deberá abrir este archivo vhd y con clic derecho se seleccionara Create Implementation para especificar el tipo de tarjeta FPGA que se utilizara especificando sus parámetros en el nuevo recuadro como muestra la Figura B.2. Universidad Autónoma Metropolitana Unidad Iztapalapa -160- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura B.1 New Project en FPGA Express Figura B.2 Declaración de parámetros del FPGA 3. Verificar que los parámetros sean los correctos de acuerdo a la tarjeta FPGA que sé este utilizando, en nuestro caso entre los más importantes serán Vendor: Xilinx, Family: XC400XL, Device: 4005XLPC84 y Speed grade: xl-09. Una vez efectuado lo anterior FPGA Express nos indicara si el proceso de revisión del archivo vhd se efectuó correctamente indicando con una palomita y el espacio de trabajo de la derecha (Chips) cambiara mostrando los nuevos archivos creados. Universidad Autónoma Metropolitana Unidad Iztapalapa -161- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo En el segundo de ellos se dará un clic derecho seleccionando la opción de Export Netlist, esto con la finalidad de exportar los archivos a la carpeta que se creo inicialmente, de manera que debemos asegurarnos que en la ventana que se abrió, como la que se muestra en la Figura B.3 se escojan correctamente la ruta adecuada y elegida por el usuario, elija la opción OK cuando termine. En esta última parte se debe obtener un nuevo archivo *.EDF que funcionara para continuar con nuestra aplicación, es por eso que es realizar correctamente todo el proceso anterior. Figura B.3 Ventana de Export Netlist Universidad Autónoma Metropolitana Unidad Iztapalapa -162- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Project Navigator(ISE) de Xilinx. El Project Navigator es una herramienta distribuida por Xilinx que se encarga de gestionar todas las etapas del flujo de diseño. Esta herramienta es una interfaz que se monta sobre todo el conjunto de programas que participan en el diseño. Cada uno de estos programas actúa sobre una etapa concreta del diseño. El Project Navigator tiene las siguientes características: • Ayuda a conectar los diversos programas entre sí de manera coherente siguiendo el flujo de diseño. • Homogeneiza las llamadas a los programas utilizando una misma interfaz independiente de sí el proveedor del programa es Xilinx o una empresa externa. El Project Navigator se divide en cuatro ventanas. En la esquina superior izquierda se muestran las distintas fuentes de diseño que pertenecen al proyecto organizadas jerárquicamente. Debajo de las fuentes se encuentran la ventana de Procesos. En esta ventana se mostrará la lista de procesos disponibles para la fuente seleccionada en la ventana superior. Para cada proceso se muestra el estado del mismo, si ha sido ejecutado, y en caso afirmativo si el resultado ha sido correcto. Dependiendo de la fuente de diseño los procesos disponibles son distintos. La tercera ventana está situada en la parte inferior de la pantalla. Esta es la consola de mensajes que se actualiza con mensajes informativos y de advertencia a medida que se activan los distintos procesos. La última ventana se sitúa a la derecha y es un editor de texto y esquemáticos. El proceso de diseño del Project Navigator parte de la creación de un proyecto: 1. Arrancar la aplicación Project Navigator. Para ello se puede pulsar a través del icono que se encuentra en el escritorio o acceder mediante el menú de Inicio → Programas → Xilinx ISE → Project Navigator. 2. (New Project) Crear un nuevo proyecto: File → New Project. Se despliega una nueva ventana (New Project) donde hay que configurar los parámetros del proyecto. Universidad Autónoma Metropolitana Unidad Iztapalapa -163- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura B.4 Pantallas de creación de un nuevo proyecto 3. Introduciremos un nombre de proyecto y también elegiremos un directorio que haga referencia al grupo (en el disco C: ). El resto de las opciones del proyecto las elegiremos tal como muestra la Figura B.4. • Device Family: permite elegir la familia de FPGA que se va a utilizar (XC4000, Spartan, Spartan2, Virtex). Utilice una XC4000XL. • Device: dentro de la familia seleccionada indica la FPGA en concreto donde se va implementar el diseño. Utilice xc4005xl-09pc84. • Design Flow: EDIF. Siempre dará la opción de utilizar como entrada un fichero de este tipo. Universidad Autónoma Metropolitana Unidad Iztapalapa -164- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 4. Si todo está correcto, aparecerán dos nuevas entradas dentro de la ventana de Fuentes de Diseño del proyecto. Una con el nombre del proyecto, y la otra con el nombre del dispositivo FPGA (xc4005xl-09pc84). Ahora estamos listos para realizar y añadir nuestros diseños al proyecto. Figura B.5 Ventana principal del nuevo proyecto en ISE 5. En la entrada que indica el nombre del FPGA se dará clic derecho para seleccionar Add Source y poder buscar el archivo *. EDF creado con el programa FPGA Express, presionando OK, se podrá visualizar en la otra ventana de trabajo los procesos actuales de la fuente abierta. En estos procesos se encuentra ahora uno que se encuentra de la siguiente manera: Design Entry Utilities/User Constraints/ Edit Implementation Contraints. Universidad Autónoma Metropolitana Unidad Iztapalapa -165- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura B.6 Configuración de pines de la tarjeta FPGA 6. Con doble clic en Edit Implementation Contraints se abrirá una nueva ventana como la de la Figura B.7 donde es necesario definir la configuración de los pines de este modulo, los puertos de entrada, salida y todo lo relacionado con el modulo de FPGA (XC4005XLPC84CMN0009) esto se muestra en la Figura B.6. Es necesario saber con anterioridad la disponibilidad de pines por lo que se necesita consultar las hojas del fabricante. 7. Finalmente se ha ejecutado todo lo necesario para poder ver la implementación en nuestra tarjeta FPGA, restaría ejecutar la etapa de “carga” que consiste en abrir una ventana MS-DOS. Previamente a esta etapa se debió extraer el archivo *.bit que fue creado por el Project Navigator en la carpeta que fue declarada al inicio y pegar este archivo en la siguiente carpeta: C:\XSTOOLS\BIN. XSTOOLs es un programa que permite la comunicación con el kit de desarrollo de la familia XSA, gracias a este programa se realiza la carga del fichero de programación, las ordenes a través del puerto paralelo y la lectura o escritura de la memoria. La comunicación con esta aplicación se realiza también mediante línea de comandos. Esto se puede apreciar mejor en la Figura B.9. Universidad Autónoma Metropolitana Unidad Iztapalapa -166- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura B.7 Ventana trabajo con los procesos actuales. Figura B.8 Configuración de pines. Universidad Autónoma Metropolitana Unidad Iztapalapa -167- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura B.9 Etapa de carga a nuestra tarjeta FPGA Universidad Autónoma Metropolitana Unidad Iztapalapa -168- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Apéndice C. SOFTWARE PARA DISPOSITIVOS PAL Y GAL Universidad Autónoma Metropolitana Unidad Iztapalapa -169- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo WINCUPL DE ATMEL En este documento encontrará una ayuda para el manejo del software para el diseño, simulación e implementación en una GAL22V10 de circuitos digitales. 1 1. ABRIR EL PROGRAMA Se da un clic en inicio-programas-CUPL starter kit, luego clic en el icono CUPL. Figura C.1 1 2. Inicialmente aparece una ventana de bienvenida por unos segundos, luego aparece la ventana principal, y aparece una ventana Message que puede ser minimizada. Se procede de la siguiente manera file-new. 2 Figura C.2 Aparece en pantalla una plantilla que será útil para la elaboración del diseño que queremos realizar. Como se muestra en Figura C.3 Universidad Autónoma Metropolitana Unidad Iztapalapa -170- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura C.3 Este archivo también podrá ser abierto en C:\wincupl\tmpl.pld. 1 3. Es conveniente guardar el archivo cada cierto tiempo para evitar perdidas de información si ocurre algún problema ya sea del programa, PC o condiciones externas. Cuando se va a guardar por primera vez se ingresa al menú File-Save as. Figura C.4 En el espacio Filename, debe escribir el nombre del archivo, se sugiere utilizar nombres que tengan que ver con el diseño que se esta realizando por ejemplo si se esta haciendo una secuencia de luces utiliza Universidad Autónoma Metropolitana Unidad Iztapalapa -171- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo sec_luces, el archivo debe ser guardado con la extensión *.pld. Además aparece una dirección (Directory) que es donde se guardará, si desea cambiarlo deberá ingresar también el directorio donde lo quiere hacer. Por ejemplo: Filename: D:\mis documentos\laboratorio\prac_1.pld Luego de esto presione OK. Para guardar cambios después ingrese al menú File-Save ó presione <F2>. 4. El archivo que se va a crear esta divido en tres partes: • Título o encabezado: Todo este encabezado es requerido y se deberá tener a la hora de generar el archivo, pero solamente el campo del Name deberá tener el valor real ya que este nombre que se utilice aquí será el utilizado por el programa para generar el archivo *.Jed que es el utilizado para programar el dispositivo con el cual se hará la implementación del circuito. Aunque se recomienda documentar estos archivos con el fin de tener información clara sobre el archivo que se genero. Se deben utilizar máximo 8 caracteres. • Declaraciones: Declaración de pines de entradas y salidas: Especifica los pines que van a ser usados y las variables que son asignadas a cada uno de estos. Por ejemplo: Declaración de variables intermedias: Universidad Autónoma Metropolitana Unidad Iztapalapa -172- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Son variables que no tienen asignado un pin y pueden ser útiles para reducir las expresiones correspondientes a cada salida. Por ejemplo: • Cuerpo: Este contiene toda la lógica necesaria que se quiere programar. En el se pueden hacer maquinas de estado Mayle o Moore y ecuaciones de lógica combinacional y secuencial, entre otros. Por ejemplo: 5. Después de guardar todos los cambios realizados, se compila para verificar si quedo bien desarrollado el archivo, de la siguiente manera: ingrese al menú Option-compile options Figura C.5 Universidad Autónoma Metropolitana Unidad Iztapalapa -173- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura C.6 Ingrese a Output file, seleccione: JEDEC, fuse plot, equations, absolute, list. Figura C.7 Presione OK y nuevamente OK. Universidad Autónoma Metropolitana Unidad Iztapalapa -174- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 1 6. Elija el dispositivo en el cual se va ha implantar, en este caso se elegirá la pal22v10 es el dispositivo que servirá para implementar el diseño en la Gal22v10. Ingrese al menú Option-select device Figura C.8 Presione OK. Ingrese al menú Run-Device Specific compile, si se genera un mensaje de error puede observar cual es el error, maximizando la ventana que salió inicialmente Message, sino hay errores se procede hacer la simulación. 1 7. Se debe realizar un archivo para generar la simulación, para esto abra la plantilla existente para realizar este que se encuentra en C:\wincupl\tmpl.si y guárdelo con otro nombre pero con la misma extensión en el directorio donde se encuentra el archivo con extensión (.pld). Universidad Autónoma Metropolitana Unidad Iztapalapa -175- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura C.9 Al igual que en el archivo de diseño este archivo también consta de 3 partes: 1 • Titulo o encabezado Este es el mismo que se pone en el archivo anterior. 1 • Orden En este se da el orden de todas las variables tanto de entrada como de salida para el dispositivo. (Teniendo en cuenta los bits más significativos). Estas van separadas por comas “,” y se finaliza con punto y coma “;”. 1 • Contiene la lista de vectores para la prueba que se desea aplicar a las variables definidas anteriormente. Universidad Autónoma Metropolitana Unidad Iztapalapa -176- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo El asterisco es cambiado por el simulador por el valor correspondiente. Con base en los ejemplos que se han hecho a lo largo de este tutorial se tiene en cuenta que en orden de izquierda a derecha cada columna corresponde a: a, b, c, d, L1, L2. 1 8. Después de crear el archivo de simulación y guardarlo ingrese al menú Option-simulator options y seleccione Listenig File. Presione OK. Figura C.10 Luego ingrese al menú Run- Device Specific Simulate, si se presentan errores abra el archivo con extensión.so y allí se puede observar el error, sino hay ningún error Universidad Autónoma Metropolitana Unidad Iztapalapa -177- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo en el mismo archivo con extensión .so encuentra los resultados de la simulación en la parte inferior. Como se ve en la grafica anterior se generan los estados de las salidas con base en lo generado anteriormente en el archivo de simulación. 1 9. Después de verificar que la simulación si arroja los resultados esperados, utilice el archivo con extensión .jed para programar al GAL22V10 con el chip master utilizado para este proceso. IMPORTANTE A continuación se enumeran algunas cosas que se deben tener en cuenta a la hora de utilizar este programa. 1 • Extensiones de archivos generados: PLD: Creado por el usuario, contiene todas las instrucciones lógicas necesarias para programar los dispositivos. DOC: Creado por CUPL, contiene todo de las ecuaciones de la lógica que CUPL generó de su programa, muestra los errores que encontró al compilar el programa (localización del error) y provee información acerca de cómo se selecciono la lógica en el dispositivo usado además del diagrama del chip. ABS: Creado por CUPL, usado por este para ejecutar la simulación. LST: Creado por CUPL, enumera las líneas correspondientes al código generado y al final los errores con el numero correspondiente de la línea. Universidad Autónoma Metropolitana Unidad Iztapalapa -178- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo JED: Creado por CUPL, archivo usado por el programador para programar el chip usado para implementar el diseño. SI: Archivo de entrada para simulación creado por el usuario, contiene los vectores de prueba. SO: Archivo de salida para simulación creado por CUPL, contiene los resultados de la simulación, incluyendo los errores presentes. 1 • Variables y símbolos reservados por el programa, estas no pueden ser usadas para asignación de las variables que deseamos implementar, estas tampoco deben tener espacios. 2 Se pueden representar números en binario, octal, decimal, o hexadecimal. La asignación de pines e índices de variables se da en decimal, para el resto de números esta por defecto en hexadecimal, y para especificar una base debe estar precedido por su prefijo. Universidad Autónoma Metropolitana Unidad Iztapalapa -179- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo • Declaraciones: Comandos: El comando mas usado es $DEFINE, asigna a una variable un valor o estado. Por ejemplo: $MACRO and $REPEAT, estos dos comandos forman un ciclo que se repite cuantas veces se desee. Por ejemplo: Que equivale a Operaciones aritméticas: Universidad Autónoma Metropolitana Unidad Iztapalapa -180- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Operaciones lógicas: 1 • NOTA IMPORTANTE!!! El Pin número 1 en la gal22v10 es utilizado para asignar el reloj y es la única entrada de reloj de la GAL. Universidad Autónoma Metropolitana Unidad Iztapalapa -181- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Apéndice D MPLAB IDE e IC-PROG. Universidad Autónoma Metropolitana Unidad Iztapalapa -182- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A continuación se muestran de forma sencilla los pasos en la compilación de un programa, al generar un proyecto. 1. Iniciando el software dando clic en el icono que se muestra a continuación se visualiza la pantalla de la Figura D.1. Para abrir un archivo a compilar en modo de proyecto, se siguen los pasos que a continuación se describen. Mplab IDE Figura D.1 Ventana de Inicio de MPLAB 2. En la barra de herramientas abrir Project/ New, enseguida se desplegara una nueva ventana en donde le daremos el nombre del proyecto y la ruta en donde se crearan las nuevas carpetas de nuestro proyecto con la selección del botón browse, oprimir OK para continua. Como lo muestran las Figuras D.2 y D.3 posicionando el clic derecho del mouse en la etiqueta de SourceFile abrir el archivo a compilar. Universidad Autónoma Metropolitana Unidad Iztapalapa -183- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura D.2 Selección de Add File. Figura D.3 Se adjunta el archivo ensamblador. 3. Se observa que aparece el archivo ensamblador debajo de SourceFile, nuevamente con clic derecho en el archivo *.asm se selecciona (Edit) editar el archivo para realizar la compilación. Universidad Autónoma Metropolitana Unidad Iztapalapa -184- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Cuando el archivo fuente este abierto se procede a configurar el ambiente del MPLAB para realizar la compilación del archivo cargado haciendo clic Configure/Select Device de la barra de herramientas y seleccionar el PIC utilizado como muestra la Figura D.4. Figura D.4 Configuración de parámetros del PIC. 4. Finalmente solo se hará clic en Built All de la barra de herramientas para construir nuestra aplicación y generar el archivo *.HEX, que es el que se usa en la programación de los PIC´s. El icono para compilar se muestra a continuación. Universidad Autónoma Metropolitana Unidad Iztapalapa -185- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Ic-Prog Para la prueba de nuestro integrado se utilizó el software IC-PROG para programar. 1. Al abrir el programa se procede a configurar el ambiente para realizar la programación del PIC seleccionando el tipo de dispositivo y abriendo nuestro archivo HEX que fue creado por el MPLAB. Esta paso se muestra en la Figura D.5. Figura D.5 Búsqueda del archivo HEX 2. Cuando el archivo este cargado se configura el tipo de oscilador, en este caso se esta utilizando uno de tipo XT. Además, se deshabilita el watchdog WDT y el de protección de código CP; mientras que se habilita la terminal del reset (Power Reset) PWR. 3. Por último se realiza la programación del PIC al pulsar el botón hasta que IC-PROG nos indique que se ejecuto correctamente. Universidad Autónoma Metropolitana Unidad Iztapalapa -186- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura D.6 Se carga el archivo HEX en el IC-PROG Universidad Autónoma Metropolitana Unidad Iztapalapa -187- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Apéndice E. COMUNICACIONES I Presentación Universidad Autónoma Metropolitana Unidad Iztapalapa -188- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Este presente apéndice esta destinado como apoyo a las UEA’s de Comunicaciones I y Laboratorio de Comunicaciones I de la Lic. En Ingeniería Electrónica, en este documento estas presentes temas importantes y relevantes de las dos UEA’s como son Análisis de Fourier, Heterodinización de señales, Modulación AM, Demodulación AM, Modulación AM-SSB, Modulación por pulsos codificados y Transmisores FM. Introducción Todos los dispositivos de comunicaciones electrónicas consisten en tres componentes básicos: un transmisor, un canal de comunicaciones (medio)y un receptor. Los mensajes se convierten en señales eléctricas y se envían por medio de cable eléctrico o fibra óptica o a través del espacio libre a un receptor. La atenuación (disminución del nivel) y el ruido puede interferir la transmisión. Las comunicaciones electrónicas se clasifican como transmisores (1)simplex (en una sola dirección) o duplex en dos direcciones (full duplex o half duplex) y (2) señales analógicas o digitales. Las señales analógicas son señales continuas con variaciones suaves. Las señales digitales son discretas, con códigos de dos estados (on-off). Las señales electrónicas con frecuencia se convierten de analógica a digital y viceversa. Antes de su transmisión, las señales electrónicas se conocen como señales de banda base. La modulación de amplitud y de frecuencia hacen a una señal de información compatible con el canal por donde deberá enviarse, modificando su amplitud, frecuencia o ángulo de fase y enviándola a una antena para su transmisión. A este proceso se le conoce como comunicaciones de banda ancha. El multicanalizado por división de frecuencia y por división de tiempo permite que más de una señal pueda transmitirse al mismo tiempo a través del mismo medio. Todas las señales electrónicas que se radian al espacio son parte del espectro electromagnético, su lugar dentro del espectro se determina por la frecuencia. La mayoría de las señales de información para transmitirse ocurren en bajas frecuencias y modulan a una onda portadora de frecuencia más alta. Universidad Autónoma Metropolitana Unidad Iztapalapa -189- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo La cantidad de información que puede transmitir una señal dada depende en parte de su ancho de banda. El espacio disponible para la transmisión de las señales es limitado y las señales en la misma frecuencia o en frecuencias que se sobrepongan, interfieren entre ellas. Se están realizando esfuerzos para desarrollar el uso de señales de frecuencias mas altas y minimizar así el ancho de banda requerido. Hay muchas oportunidades de trabajo en el campo de las comunicaciones electrónicas. Las cuatro especialidades principales son, computadoras, comunicaciones, control industrial e instrumentación. ANÁLISIS DE FOURIER El análisis matemático de los métodos de modulación y de multiplexazación de las señales utilizado en los sistemas de comunicaciones supones portadoras de forma de onda senoidal y señales de información. Esto simplifica el análisis y hace predicable la operación; sin embargo, en el mundo real no todas las señales de vos y de video más complejas y en esencia están compuestas de ondas senoidales de muchas frecuencias y amplitudes. Las señales de información pueden tomar un numero infinito de formas, incluyendo ondas rectangulares (por ejemplo, pulsos digitales), ondas triangulares, ondas de diente de sierra y otras formas no senoidales. Estas señales requieren un enfoque no senoidal para determinar las características y el desempeño de cualquier circuito o sistema de comunicaciones. Uno de los métodos utilizados para hacer esto es el análisis de Fourier, que proporciona una forma de analizar con todo detalle el contenido de la mayoría de las señales no senoidales más complejas. No obstante que el análisis de Fourier requiere el uso del calculo y técnica de matemáticas avanzadas fuera del contexto de este apéndice, sus aplicaciones practicas a la electrónica de las comunicaciones relativamente accesibles. Universidad Autónoma Metropolitana Unidad Iztapalapa -190- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Propuesta de práctica: Titulo: “Análisis de Fourier”. Objetivo: Que el alumno compruebe experimentalmente los aspectos teóricos del Análisis de Fourier. Que el alumno conozca el manejo del Analizador de Espectros. Material: Un osciloscopio. Un generador de funciones. Un analizador de espectros. Desarrollo Experimental: Generar las siguientes señales periódicas: a) Señal senoidal de 100 KHz de 1 Vpico b) Señal TTL de 20 KHz con los siguientes ciclos de trabajo 25 % 50 % 75 % c) Señal triangular de 20 KHz de 2 Vpico. Cada una de las señales del punto anterior deberán ser observadas en el osciloscopio y en analizador. Comparar los resultados experimentales con los teóricos. Universidad Autónoma Metropolitana Unidad Iztapalapa -191- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo HETERODINIZACIÓN DE SEÑALES En telecomunicaciones y la astronomía de radio, la heterodinización es la generación de nuevas frecuencias al lado dos de que se mezclan o más señales en un dispositivo no lineal tal como un tubo de vacío, un transistor, un mezclador del diodo. El mezclar resultados de dos frecuencias en la creación de dos nuevas frecuencias, una en la suma de las dos frecuencias mezcladas, y la otra en su diferencia. Una de baja frecuencia producida de este modo se refiere a veces como frecuencia del golpe. Una frecuencia del golpe, el puede ser oída cuando los motores múltiples de un avión están funcionando en el cierre pero las velocidades no idénticas, o dos instrumentos musicales están jugando levemente fuera de consonancia. Por ejemplo, una frecuencia de 3.000 hertzios y otra de 3.100 hertzios golpearan juntas, produciendo una frecuencia audible del golpe de 100 hertzios. Una radio del heterodino o un receptor infrarrojo es uno que utiliza un proceso tan que cambia de puesto de la frecuencia. Propuesta de práctica: Titulo: “ Heterodinizaciòn de baja frecuencia”. Objetivo: Que el alumno termine de comprobar experimentalmente los aspectos teóricos del Análisis de Fourier mediante el análisis espectral de una señal compuesta o combinada. Que el alumno comprenda que es la heterodinización de una señal. Que el alumno continué mejorando su habilidad en el manejo del Analizador de Espectros. Material: Un osciloscopio. Un generador de funciones. Un analizador de espectros. Protoboards. Alambre de colores, pinzas de corte y pinzas normales -192- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Desarrollo Experimental 1. - Arme el circuito de la Figura E.1 con los valores de componentes indicados, pero sin conectar el diodo a la salida del LM3900. Figura E.1 Circuito heterodino 2.- Alimente V1 y V2 a 50mV p-p con f1= 20Khz y f2= 19.5 KHz, observe la señal de salida tanto en el osciloscopio como en el analizador de espectros, haga las mediciones pertinentes. 3. - Ajuste ahora la amplitud de V2 a 100mV p-p y observe la señal de salida, ¿Qué efecto provoca esto?. 4. - Reajuste a 50mV p-p la señal V2 y ahora varié f1 lentamente por encima y por debajo de 20Khz, ¿que efecto tiene esto sobre el voltaje de salida Vout? Capture las imágenes obtenidas en el osciloscopio para frecuencias f1 de 10Khz y 90Khz haciendo las observaciones correspondientes. Universidad Autónoma Metropolitana Unidad Iztapalapa -193- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 5. - Desconecte la señal V2 y encuentre las frecuencias en que la amplitud de Vout caiga a 0.700 del valor que tiene con f1 a 20Khz. 6. - Conecte el circuito formado por el diodo y el arreglo RC conectando y ajustando nuevamente ambas señales de entrada a 50 mV, con frecuencias de 20Khz y 19.5 KHz respectivamente para V1 y V2. 7. - Observe la nueva señal de salida Vout para este circuito con el osciloscopio y el analizador de espectros, haciendo las anotaciones necesarias. 8. - Compare los resultados experimentales con los teóricos. Figura E.2 Construcción del circuito heterodino Universidad Autónoma Metropolitana Unidad Iztapalapa -194- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo MODULACIÓN EN AMPLITUD Como su nombre lo indica, consiste en variar la amplitud de una sinusoide de acuerdo al mensaje que se desea transmitir. A la sinusoide se le llama portadora debido a que llevará la información sobre sí. Este tipo de modulación se usa en radiodifusión comercial y en algunas bandas de transmisión de banda ciudadana. Una portadora puede modularse de diferentes modos dependiendo del parámetro de la misma sobre el que se actúe. Se modula en amplitud una portadora, cuando sea la distancia existente entre el punto de la misma en el que la portadora vale cero y los puntos en que toma el valor máximo ó mínimo, la que se altere, esto es, su amplitud. Figura E.3 Representación de una onda portadora Es la amplitud (intensidad) de la información a transmitirla que varía la amplitud de la onda portadora. Y resulta que, al añadir esta información se obtiene tres frecuencias: a) La frecuencia de la portadora f b) La frecuencia suma de la portadora y la información. c) La frecuencia diferencia de la portadora y la información. Por ejemplo En una onda portadora de 1000 KHz y que se module con una información (con un sonido) cuya frecuencia sea de 1000 Hz. (1 KHz) presentará estas tres frecuencias: fp=1000 KHz Universidad Autónoma Metropolitana Unidad Iztapalapa -195- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo fp+fi; 1000 KHz+1KHz=1001 KHz y fp-fi; 1000 KHz-1Khz=999 KHz Figura E.4 Onda moduladora en amplitud Figura E.5 Representación de la onda moduladora Este análisis nos lleva a pensar que, como normalmente la información no la compone una única onda, sino varias dentro de una banda, sería necesario hacer uso de un gran ancho de banda para transmitir una información cuyas frecuencias estuvieran comprendidas entre los 20 Hz y 20.000 Hz (limites de la banda de frecuencias audibles por el iodo humano) con buena calidad. Por otro lado, como el ancho de banda permitido para una emisión está limitado, esta clase de emisión se dedica a usos que no requieren gran calidad de sonido o en los que la información sea de frecuencias próximas entre sí (por esto, nunca usaría AM una radio fórmula). Otra característica de la modulación de amplitud es que, en su recepción, los desvanecimientos de señal no provocan demasiado ruido, por lo que es usado en algunos casos de comunicaciones móviles, como ocurre en buena parte de las comunicaciones entre un avión y la torre de control, debido que la posible lejanía y el movimiento del avión puede dar lugar a desvanecimientos. Sin embargo, la modulación en amplitud tiene un inconveniente, y es la vulnerabilidad a las interferencias. Universidad Autónoma Metropolitana Unidad Iztapalapa -196- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Propuesta de práctica: Titulo: “Modulación en Amplitud AM”. Objetivo: Que el alumno compruebe experimentalmente los aspectos teóricos de la modulación en amplitud (AM). Material: Un osciloscopio. Un generador de funciones. Un analizador de espectros. Un Integrado MC1496 y sus hojas de especificaciones. Protoboards. Alambre de colores, pinzas de corte y pinzas normales. Desarrollo Experimental 1. - Armar el circuito mostrado en las hojas de especificaciones del MC1496 (Circuito de la Figura 24, pagina 8 de las hojas de especificaciones). 2. - modular una señal senoidal de 30Khz utilizando una portadora de 100KHz. Obtener la modulación para los siguientes índices de modulación: 0.25,0.5,1.0 y >1. 3. - Observar en el analizador de espectros y analizar la relación de potencias entre las bandas laterales y la portadora para cada uno de estos índices. 4. - Determinar que tipo de modulación AM se trata en esta practica. 5. - Comparar los resultados experimentales con los teóricos. Universidad Autónoma Metropolitana Unidad Iztapalapa -197- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura E.6 Construcción del modulador de AM DEMODULACIÓN EN AMPLITUD La demodulación es el proceso inverso a la modulación. Detector de envolvente La principal ventaja de modular en AM consiste en que es posible recuperar el mensaje (demodular) con un simple detector de envolvente con tiempo de carga corto y de tiempo de descarga largo. Su versión más sencilla es la siguiente: Cuando se aplica una señal a la entrada, el capacitor se carga a través de R; por lo tanto el producto RC debe ser mucho menor que el inverso del ancho de banda del mensaje. Cuando la tensión baja, el diodo se abre y el capacitor comienza a descargarse; por lo tanto el producto RC debe ser mucho mayor que el inverso de ωc. La salida de este circuito es el mensaje sobre una DC que puede bloquearse con un condensador, aunque esto empobrece la respuesta a bajas frecuencias. La sencillez de este demodulador permite aplicaciones masivas, tal como radiodifusión comercial. Universidad Autónoma Metropolitana Unidad Iztapalapa -198- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Detector síncrono Otra forma de demodular la señal AM es la siguiente: Al multiplicar la señal modulada por la portadora se tendrá: Al multiplicar la señal modulada por la portadora se tendrá: xAM(t) Cosωct = AcCos2ωct + Acmx(t)Cos2ωct=0.5Ac( 1 + mx(t))(1+Cos2ωct) Al filtrar y quitar la DC solo quedará 0.5Acmx(t).Observe que se asume que el receptor tiene una muestra de la portadora de la misma frecuencia y fase que la usada en el modulador. El efecto que tendría un error de fase o frecuencia en el oscilador del demodulador será analizado posteriormente. Propuesta de práctica: Titulo: “Demodulación en Amplitud AM”. Objetivo: Que el alumno compruebe experimentalmente los aspectos teóricos de la demodulación en amplitud (AM). Material: Un osciloscopio. Un generador de funciones. Un analizador de espectros. Un Integrado MC1496 y sus hojas de especificaciones. Protoboards. Alambre de colores, pinzas de corte y pinzas normales Universidad Autónoma Metropolitana Unidad Iztapalapa -199- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Desarrollo Experimental 1. - Armar un demodulador AM para el circuito anterior. Use al MC1496 2. - Demodular una señal conoidal de 3 KHz utilizando una portadora de 100Khz. Obtener la demodulación para las siguientes índices de modulación: 0.25, 0.5, 1.0 y >1. Para mejores resultados use los valores de amplitud y frecuencia de la señal portadora y moduladora que haya usado en la práctica anterior. 3. - Observar tanto en el analizador de espectros como en el osciloscopio a la señal demodulada y compárela con la señal moduladora. 4. - Determine el o los tipos de modulación AM que se emplearon en esta practica. 5. - Comparar los resultados experimentales con los teóricos. Figura E.7 Construcción del demodulador de AM Universidad Autónoma Metropolitana Unidad Iztapalapa -200- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo MODULACIÓN Y DEMODULACIÓN AM-SSB BLU - Banda Lateral Única (SSB-Single Side Band) En una señal de AM existen 3 elementos: la señal portadora y 2 "bandas laterales" que contienen la información (audio) por eso también es conocida como "BLD Banda Lateral Doble". La modulación en BLU consiste en la supresión de la portadora y una de las bandas laterales con lo cual se transmite solo una banda lateral conteniendo toda la información (ver figura). Una vez captada la señal BLU en el receptor, éste reinserta la portadora para poder demodular la señal y transformarla en audio de nuevo. La ventaja de este sistema sobre la AM es su menor ancho de banda requerido; ya que una señal de AM transporta 2 bandas laterales y el BLU solo una, por ejemplo una señal que en AM requiere 10kHz de ancho en BLU necesitara de más o menos 5kHz. Además, al no requerir portadora, toda la potencia de transmisión se puede aplicar a una sola banda lateral, lo cual a hecho de este sistema el más popular entre los radioaficionados (los cuales tienen licencias que limitan la potencia de transmisión de sus equipos) y servicios utilitarios de onda corta. Hay que aclarar que existen variantes de este modo de transmisión según las bandas que se supriman: USB-Banda Lateral Superior: Cuando es suprimidas la portadora y la banda lateral inferior. LSB-Banda Lateral Inferior: cuando es suprimidas la portadora y la banda lateral superior. Banda Lateral con portadora suprimida: cuando solo se suprime la portadora. Ventajas de la transmisión de la banda lateral única. Hay cuatro ventajas predominantes de la transmisión de la banda lateral única con portadora suprimida o reducida sobre la transmisión de doble banda lateral con portadora completa. Universidad Autónoma Metropolitana Unidad Iztapalapa -201- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 1) Conservación del ancho de banda. La transmisión de la banda lateral única requiere de la mitad del ancho de la banda, que la transmisión de doble banda lateral de la AM convencional. Esta ventaja es especialmente importante, hoy en día, con un espectro de frecuencias de radio que ya está saturado. 2) Conservación de potencia. Con una transmisión de banda lateral única, sólo se transmite una banda lateral y normalmente una portadora suprimida o reducida. Como resultado, se necesita mucho menos potencia total transmitida para producir esencialmente la misma cantidad de señal que se logra con la transmisión de doble banda lateral con portadora completa. En consecuencia, se pueden utilizar transmisores más pequeños y más confiables con la banda lateral única. 3) Desvanecimiento selectivo. Con la transmisión de la doble banda lateral, las dos bandas laterales y la portadora pueden propagarse a través del medio de transmisión por diferentes trayectorias y, por lo tanto, pueden experimentar diferentes deterioros en la transmisión. Esta condición se llama desvanecimiento selectivo. Un tipo de desvanecimiento selectivo se llama desvanecimiento de la banda lateral. Con el desvanecimiento de la banda lateral, una banda lateral se atenúa significativamente. Esta pérdida resulta en una amplitud de la señal reducida a la salida del demodulador de receptor y consecuentemente una relación de señal o ruido reducido a -3dB. Esta pérdida causa algo de distorsión, pero no es totalmente perjudicial para la señal, porque las dos bandas laterales contienen la misma información. 4) Reducción de ruido. Debido a que el sistema de banda lateral única utiliza sólo la mitad del ancho de banda que la AM convencional, la potencia de ruido térmico se reduce a la mitad del sistema de doble banda lateral. Tomando en cuenta la reducción del ancho de banda y la inmunidad al desvanecimiento selectivo, los sistemas SSB gozan de una ventaja en la relación de S/N aproximada a 12 dB sobre la AM convencional (o sea, un sistema convencional de AM tiene que transmitir una señal 12 dB más potente, para alcanzar el mismo rendimiento que un sistema comparable de banda lateral única). Universidad Autónoma Metropolitana Unidad Iztapalapa -202- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Desventajas de la transmisión de banda lateral única. Existen dos desventajas principales de la transmisión de banda lateral única con portadora reducida o suprimida en comparación con transmisión convencional de doble banda lateral con portadora completa. 1. Receptores complejos. Los sistemas de banda lateral única requieren de receptores más complejos y costosos que la transmisión de AM convencional. Esto se debe a que la mayoría de las transmisiones de banda lateral única incluyen una portadora reducida o suprimida; por lo tanto, no puede utilizarse la detección de envolvente a no ser que la portadora se regenere a un nivel elevado. Los receptores de la banda lateral única requieren de un circuito de sincronización y de la recuperación de la portadora, como un sintetizador de frecuencias PLL, que eleva su costo, complejidad y tamaño. 2. Dificultades de sintonización. Los receptores de banda lateral única requieren una sintonización más compleja y precisa que los receptores de AM convencionales. Esto es indeseable para el usuario normal. Esta desventaja puede superarse utilizando unos circuitos de sintonización más precisa, compleja y costosa. Propuesta de práctica: Titulo: “Modulación y Demodulación AM-SSB”. Objetivo: Que el alumno compruebe experimentalmente los aspectos teóricos de modulación. En amplitud de banda lateral única (AM-SSB). Material: Un osciloscopio. Un generador de funciones. Un analizador de espectros. Un Integrado MC1496 y sus hojas de especificaciones. Protoboards. Universidad Autónoma Metropolitana Unidad Iztapalapa -203- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Alambre de colores, pinzas de corte y pinzas normales. Desarrollo Experimental 1. - Se usaran los circuitos integrados MC1496 necesarios (y los demás elementos correspondientes) para generar y remodular una señal AM SSB con un índice de modulación de 0.5. 2. - Usen una frecuencia de la portadora de 100 KHz y de la moduladora de 3 Khz. Para mejores resultados usen los valores de amplitudes de tas senoides que determinaron en las prácticas de modulación AM y Demodulación AM. Usen el adecuado método de demodulación para el valor del índice de la modulación m. Vean tanto en el tiempo como en la frecuencia a las señales de entrada, la señal de salida y la señal demoduladora. 3. - Si juzgan conveniente pueden hacer otro tipo de mediciones para mejorar la comprensión de AM-SSB. Preparen material para poder hacer filtros analógicos de al menos un orden % ya que los requisitos de corte son más restrictivos. El profesor indicara a cada equipo cual banda lateral se eliminara; además de indicar si la portadora se elimina o no. Figura E.8 Construcción del modulador de AM-SSB Universidad Autónoma Metropolitana Unidad Iztapalapa -204- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo MODULACIÓN POR PULSOS CODIFICADOS Un sistema de modulación que ha alcanzado un gran auge es PCM, también llamado MIC atendiendo a las siglas castellanas. Este sistema convierte una señal analógica en digital siguiendo los pasos: • Muestreo con PAM, PPM o PDM. • Cuantificación. • Codificación. Muestreo Para convertir una señal analógica en señal PCM el primer paso es muestrearla, obteniendo de esta forma una señal discreta en un dominio pero continua en su rango, es decir, está definida únicamente en unos instantes de tiempo pero la amplitud que puede alcanzar en dichos instantes es cualquiera, es decir, una señal PAM “instantáneo” (anchura del impulso cero). Para ello debemos tener en cuenta el teorema de Nyquist. Cuantificación El hecho de que la amplitud de la señal en los instantes de muestreo pueda ser cualquiera supone que para codificarla necesitaríamos un número infinito de bits. En otras palabras: tenemos un número infinito de niveles. Por tanto, es necesario cuantificar la señal, es decir, asignar a una serie de valores de x(t) un único valor, de forma que después del proceso de cuantificación, el número de valores que puede tener la señal x(t) sea finito. El proceso se ilustra en la siguiente figura: Universidad Autónoma Metropolitana Unidad Iztapalapa -205- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Otra forma de cuantificar la señal sería la siguiente. Para muestras comprendidas en un intervalo de cuantificación se tomará el valor más cercano al intervalo de cuantificación. Consiste en asignar a varias muestras el valor del entero más cercano. Al hacer aproximaciones se produce un error, denominado ERROR DE CUANTIFICACIÓN y su valor máximo es la mitad del intervalo de cuantificación. El error de cuantificación se puede reducir estableciendo más intervalos de cuantificación. Teniendo en cuenta que si el número de niveles es muy elevado, tendremos que enviar gran cantidad de bits por cada muestra que queramos enviar. Si la señal moduladora es débil los errores de cuantificación cometidos son relativamente más importantes que cuando la señal es más fuerte, como se desprende de la siguiente figura: En el caso de señales telefónicas, esto representaría que cuando un abonado hable bajo, además de oírse menos debido a que la amplitud de la señal es pequeña, también la calidad de la señal es menor ya que hay más error en la cuantificación. Esto es inaceptable en la mayoría de las aplicaciones y se intenta corregir este defecto para mantener la relación señal-ruido de cuantificación constante frente a las variaciones dinámicas de la señal. Universidad Autónoma Metropolitana Unidad Iztapalapa -206- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Para ello se puede hacer una cuantificación no uniforme: comprimir más los niveles cuando la amplitud de la señal es pequeña con lo cual disminuirían los errores de cuantificación en este rango de amplitudes. En los procesos de recepción, esto se debe tener en cuenta, expandiendo los niveles, mediante un expansor, para conservar la señal, amplificando más las señales de amplitud menor, respecto a las de amplitud mayor, con lo cual se consigue el mismo fin que con la cuantificación no uniforme. Codificación La fase de codificación consiste en asignar un número de bits a cada una de las muestras que se van a enviar. Este número de bits depende del número de niveles de cuantificación que se hayan usado en la fase previa. La relación existente entre número de niveles usados (N) y número de bits asignados (n) es logarítmica: n≥2Log2 N Propuesta de práctica: Titulo: Modulación por pulsos codificados (PCM) Objetivos: Trabajar en forma directa con el proceso físico de obtención de una señal PCM. Ver una aplicación de telecomunicaciones del Teorema del Muestreo. Se conozca los efectos de los errores de cuantización en PCM y se vea prácticamente que PCM es una aproximación de la señal original. Aprender los principios del acondicionamiento de una señal analógica para su procesamiento digital. Aprender como la cantidad de bits por muestra es un parámetro crítico en PCM que está muy influenciada por criterios subjetivos de percepción de calidad. El alumno continúe trabajando con dispositivos comunicaciones que se dispongan en el mercado. electrónicos para Universidad Autónoma Metropolitana Unidad Iztapalapa -207- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Material: Al menos 2 osciloscopios. Fuentes fijas y reguladas de DC. Dos generadores de funciones. Un analizador de espectros. Un receptor portátil de FM comercial, un disckman ó un walkman. Protoboards y los demás componentes discretos que se necesiten según los requerimientos de los circuitos eléctricos que construyan. Desarrollo Experimental. Diseñar y armar los distintos circuitos de acuerdo al diagrama de bloques que se muestra a continuación. Universidad Autónoma Metropolitana Unidad Iztapalapa -208- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Para el diseño de este experimento tome en cuenta las siguientes observaciones y recomendaciones: 1. - La fuente de audio puede ser la de un WALKMAN, DISKMAN u otro dispositivo o fuente de audio. Esta será la señal f(t). Solo tome uno de los dos canales de audio (estéreo) ya que la señal a procesar será monoaural; escoja el canal que desee, este será f(t). 2. -Use una frecuencia de corte del filtro pasabaja de 8 KHz. Este filtro nos servirá para obtener a la señal fPB(t). 3. -El circuito acondicionador de señal hará que la parte negativa de la señal fPB(t) sea positiva, esto se logra montando a fPB(t) en un nivel de DC de Offset de 2.5 V por medio de un circuito amplificador de tipo sumador no inversor usando amplificadores operacionales. ¿ Porque no es recomendable usar una configuración de sumador inversor?. Varíe la amplitud o el volumen de la señal f(t) y fíjela de tal manera que la señal compuesta formada por la suma fPB(t)+Offset posea una amplitud tal que sus picos máximos y mínimos estén en el rango de 0V a +5V (rango de trabajo del voltaje analógico de entrada en el convertidor analógico-digital (ADC)). Lo anterior con el fin de simplificar la configuración y modo de funcionamiento del ADC. 4. -Tanto el convertidor ADC como el convertidor digital-analógico (DAC) serán de 8 bits c/u. Hay que tener en cuenta la velocidad de conversión de los dispositivos ADC y DAC para evitar retardos, ya que el DAC debe ser al menos igual (o más rápido mejor) que el ADC. No olvidar tampoco la señal CS para habilitar los convertidores (leer los manuales respectivos de cada IC para configurarlos (cuando estén). 5. -Por medio de un generador de funciones alimente la señal de reloj CLK del ADC; este debe ser un tren de pulsos cuadrados de amplitudes de 0V y +5V (una señal TTL). Esta señal CLK representará la frecuencia de muestreo para la señal compuesta fPB(t)+Offset Ajuste el generador de funciones que controla al ADC de tal manera que satisfaga el Teorema del Muestreo ó la velocidad de Nyquist. Universidad Autónoma Metropolitana Unidad Iztapalapa -209- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo 6. - El módulo denominado “Circuito Lógico para acondicionar la señal CLK para el ADC” es un circuito lógico que acondiciona a la señal de control CLK para limitar la corriente de entrada y rectificarla. Puede manejarse un seguidor de voltaje con amplificadores operacionales ó una compuerta lógica BUFFER (la que mejor dé resultados). 7. - El módulo denominado “Amplificador” sirve para entregar la señal al osciloscopio para su visualización posterior. Su ganancia de salida puede ser variable para que obtenga la mejor calidad de audio posible sin que sature a la señal. 8.- Ponga en funcionamiento todo el sistema y proceda a escuchar la señal en la bocina. ¿ Qué escucha?. De acuerdo a lo que se escuche comience a efectuar los ajustes necesarios. Una vez realizados los ajustes necesarios continúe con lo siguiente: 9. - Proceda ahora únicamente a cambiar el nivel de CD de offset de 2.5 V a 0.5 V en el circuito acondicionador de señal y escuche la señal en la bocina. Explique las causas de porque escuchó esta señal de audio de esa manera. 10.- Vuelva a cambiar el nivel de CD de offset a 2.5 V. Proceda ahora a usar un filtro pasabaja analógico con una frecuencia de corte en 15 KHz; y sin cambiar la velocidad de muestreo escuche la salida en la bocina, explique las causas de esta salida. Es recomendable ver la forma de onda de salida con el osciloscopio durante estos últimos puntos. 11. - Se usará como ADC al ADC0820, y como DAC al DAC0800 ó el DAC0830. Para ver como configurarlos ver las hojas técnicas del ADC0820, DAC0800 ó DAC0830 en los manuales de National Semiconductors, Motorola, etc. El ADC0820 tiene aplicaciones en telefonía haciéndolo adecuado para muestrear señales más rápidas. Si se usa otro tipo por favor checar cuál puede ser la máxima velocidad de muestreo. Ahora, para ahorrar tiempo de consulta y de pruebas sobre el manejo del ADC en la siguiente hoja se muestra una figura con la configuración de funcionamiento para el AC0820 a usar. Universidad Autónoma Metropolitana Unidad Iztapalapa -210- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura E.9 Construcción de un Modulador PCM Universidad Autónoma Metropolitana Unidad Iztapalapa -211- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo MODULACIÓN FM Este es un caso de modulación donde tanto las señales de transmisión como las señales de datos son analógicas y es un tipo de modulación exponencial. En este caso la señal modulada mantendrá fija su amplitud y el parámetro de la señal portadora que variará es la frecuencia, y lo hace de acuerdo a como varíe la amplitud de la señal moduladora. Figura E.10 Señal Modulada en FM La expresión matemática de la señal portadora, está dada por: (1) vp(t) = Vp sen(2π fp t) Donde Vp es el valor pico de la señal portadora y fp es la frecuencia de la señal portadora. Mientras que la expresión matemática de la señal moduladora está dada por: (2) vm(t) = Vm sen(2π fm t) Siendo Vm el valor pico de la señal portadora y fm su frecuencia. De acuerdo a lo dicho anteriormente, la frecuencia f de la señal modulada variará alrededor de la frecuencia de la señal portadora de acuerdo a la siguiente expresión f = fp + ∆f sen(2 π fm t) Universidad Autónoma Metropolitana Unidad Iztapalapa -212- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo por lo tanto la expresión matemática de la señal modulada resulta vp(t) = Vp sen[2π (fp + ∆f sen(2 π fm t) ) t] ∆f se denomina desviación de frecuencia y es el máximo cambio de frecuencia que puede experimentar la frecuencia de la señal portadora. A la variación total de frecuencia desde la más baja hasta la más alta, se la conoce como oscilación de portadora. De esta forma, una señal moduladora que tiene picos positivos y negativos, tal como una señal senoidal pura, provocara una oscilación de portadora igual a 2 veces la desviación de frecuencia. Una señal modulada en frecuencia puede expresarse mediante la siguiente expresión: Se denomina índice de modulación a Se denomina porcentaje de modulación a la razón entre la desviación de frecuencia efectiva respecto de la desviación de frecuencia máxima permisible. Al analizar el espectro de frecuencias de una señal modulada en frecuencia, observamos que se tienen infinitas frecuencias laterales, espaciadas en fm, alrededor de la frecuencia de la señal portadora fp; sin embargo la mayor parte de las frecuencias laterales tienen poca amplitud, lo que indica que no contienen cantidades significativas de potencia. El análisis de Fourier indica que el número de frecuencias laterales que contienen cantidades significativas de potencia, depende del índice de modulación de la señal modulada, y por lo tanto el ancho de banda efectivo también dependerá de dicho índice. Schwartz desarrollo la siguiente gráfica para determinar el ancho de banda necesario para transmitir una señal de frecuencia modulada cuando se conoce el índice de modulación. Universidad Autónoma Metropolitana Unidad Iztapalapa -213- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo En la construcción de la gráfica se ha empleado el criterio práctico que establece que una señal de cualquier frecuencia componente, con una magnitud (tensión) menor de 1% del valor de la magnitud de la portadora sin modular, se considera demasiado pequeña como para ser significativa. FM de banda angosta y FM de banda ancha Al examinar la curva obtenida por Schwartz, se aprecia que para altos valores de mf, la curva tiende a la asíntota horizontal, mientras que para valores bajos de mf tiende a la asíntota vertical. Un estudio matemático detallado indica que el ancho de banda necesario para transmitir una señal FM para la cual , depende principalmente de la frecuencia de la señal moduladora y es totalmente independiente de la desviación de frecuencia. Un análisis más completo demostraría que el ancho de banda necesario para transmitir una señal de FM, en la cual moduladora. , es igual a dos veces la frecuencia de la señal BW = 2 fm para De igual manera que en AM ya a diferencia de lo que ocurre para FM con , por cada frecuencia moduladora aparecen dos frecuencias laterales, una inferior y otra superior, a cada lado de la frecuencia de la señal portadora y separadas en fm de la frecuencia de la portadora. Dado lo limitado del ancho de banda cuando señales de FM donde , se la denomina FM de banda angosta, mientras que las , se las denomina FM de banda ancha. -214- Universidad Autónoma Metropolitana Unidad Iztapalapa PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Los espectros de frecuencia de AM y de FM de banda angosta, aunque pudieran parecer iguales, por medio del análisis de Fourier se demuestra que las relaciones de magnitud y fase en AM y FM son totalmente diferentes. En FM de banda ancha se tiene la ventaja de tener menor ruido. En FM el contenido de potencia de la señal portadora disminuye conforme aumenta mf, con lo que se logra poner la máxima potencia en donde está la información, es decir en las bandas laterales. Propuesta de práctica: Propuesta de práctica: Titulo: “Modulación FM”. Objetivo: Que el alumno compruebe experimentalmente los aspectos teóricos más relevantes de la Modulación en Frecuencia (FM). Que el alumno conozca el manejo del Analizador de Espectros. Material: Dos osciloscopio. Un generador de funciones. Un analizador de espectros. Un receptor portátil de FM comercial con bocinas Protoboards y los demás componentes discretos que se necesiten según los planos de los circuitos especificados. Universidad Autónoma Metropolitana Unidad Iztapalapa -215- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Un generador de funciones. Un analizador de espectros. Un Integrado MC1496 y sus hojas de especificaciones. Protoboards. Alambre de colores, pinzas de corte y pinzas normales Desarrollo Experimental: Principio básico de la modulación FM 1. - Ver el anexo1 de este formato para leer la información complementaria de este experimento 2. - Lea la información de los puntos 6-9.2 a 6-10.2 del material del anexo. Arme el circuito de la Fig.16-15.Haga los cálculos necesarios para encontrar los valores de los componentes para que la salida Vo tenga un rango de frecuencias de 100 KHz a 300Khz. Recuerde que una vez puesto en operación este circuito las variables Ri, C y Vp no pueden cambiar los valores, dependiendo así la frecuencia de salida de Vo únicamente del valor de Ei, es decir, que Ei será la señal moduladora. 3. - como se trata de un circuito VCO tenga cuidado en que no se inestabilice su funcionamiento. 4. - Recuerde que en AM la portadora cambiara de amplitud, pero no de frecuencia; en cambio en FM la portadora no cambia en amplitud, lo hace en su frecuencia. 5. -Para simular a la señal moduladora conecte un generador de funciones para alimentar una onda senoidal de voltaje pico a pico de 2 volts con un nivel de offset de 3 volts, la frecuencia de Ei determínela de tal manera que la cadencia del cambio espectral de Vo pueda ser vista adecuadamente en el analizador de espectros. 6. - Ponga en operación el circuito y muestre simultáneamente a Ei y Vo en el tiempo. Al mismo tiempo muestre en el analizador de espectro a Vo. 7. - IMPORTANTE el material del anexo fue escaneado con una resolución de 300 dpi, se recomienda que usen una impresora de al menos 600 dpi para evitar distorsiones. Universidad Autónoma Metropolitana Unidad Iztapalapa -216- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Modulación FM comercial. 1. - Ver el anexo 2 de este formato para leer la información complementaria de este experimento. 2. - Armar el modulador FM como lo indican las hojas del anexo correspondiente 3. - Lo probaran y calibraran acorde a las instrucciones escritas en estas mismas hojas auxiliares. 4. - Observar tanto en el analizador de espectros como en el osciloscopio a la señal modulada y a la señal moduladora de entrada. 5. - Determine el tipo de modulación FM empleada. 6. - Para el trimmer o condensador variable se recomienda que para mejores resultados tengan también a la mano un trimmer de un receptor de FM comercial, como de una radio “viejita”. Universidad Autónoma Metropolitana Unidad Iztapalapa -217- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A N E X O 1 Universidad Autónoma Metropolitana Unidad Iztapalapa -218- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -219- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo A N E X O 2 Universidad Autónoma Metropolitana Unidad Iztapalapa -220- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -221- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -222- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Universidad Autónoma Metropolitana Unidad Iztapalapa -223- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo Figura E.11 Construcción de un Modulador FM Universidad Autónoma Metropolitana Unidad Iztapalapa -224- PROYECTO DE INGENIERIA ELECTRÓNICA Casa abierta al tiempo BIBLIOGRAFIA E INTERNET “Microcontroladores PIC diseño practico de aplicaciones” Angulo Usategui, José; Angulo Martínez, Ignacio. Editorial Mc Graw Hill, Segunda Edición, 1999 “Electrónica Digital Introducción a la Lógica Digital, Teoría, problemas y simulación” Acha, Santiago; Castro, Manuel A.; Pérez, Julio; Rioseras, Miguel A. Editorial Alfaomega-Rama, 2003 “VHDL Lenguaje para Síntesis y Modelado de Circuitos” Pardo, Fernando; Boluda, José. Editorial Alfaomega-Rama, 2003 “Sistemas electrónicos de comunicaciones” Louis E. Frenzel Editorial Alfaomega, 2003 www.uam.mx www.microchip.com www.ic-prog.com www.xilinx.com www.datasheet4u.com www.altera.com www.e-vhdl.com Universidad Autónoma Metropolitana Unidad Iztapalapa -225-