Está en la página 1de 10

19 de octubre del 2021 Practica # 4(en línea)

Tarjeta de Desarrollo

INSTITUTO POLITÉCNICO NACIONAL.


Unidad Profesional Interdisciplinaria de Ingeniería, Campus
Zacatecas.
Dispositivos lógicos programables.

Ing. Mecatrónica

Profesor: Fernando Olivera Domingo.

Integrantes:
Jairo Jesus Marquez Covarrubias
Carlos Gabriel Escobedo
I. Marco Teórico
El receptor y transmisor asíncrono universal (UART) es un circuito que envía datos en
paralelo a través de una línea serial. UART se utiliza con frecuencia junto con el estándar
RS-232, que es el protocolo que especifica las características eléctricas, mecánicas,
funcionales y el procedimiento para la comunicación de datos entre dos equipos. Como el
voltaje definido en RS-232 es diferente al de una FPGA, un chip convertidor de voltaje es
necesario entre un puerto serie y los pines E/S de un FPGA. La placa Spartan 3 tiene un
puerto RS-232 con el conector estándar de nueve pines y contiene el chip convertidor de
voltaje necesario y configura las diversas señales de control RS-232 para generar
automáticamente reconocimiento para el puerto serie de por ejemplo un PC. De modo que
se puede usar directamente un cable serial para conectar la placa Spartan a un puerto serial
de un PC (actualmente es probable que se necesite un convertidor serie-USB).

Un UART incluye un transmisor y un receptor. El transmisor es esencialmente un registro


de desplazamiento especial que carga datos en paralelo y luego los desplaza bit a bit a una
velocidad específica. El receptor, por otro lado, cambia los datos bit a bit y luego vuelve a
ensamblar los datos. La línea serial está a ‘1’ cuando está inactiva. La transmisión comienza
con un bit de inicio, que es ‘0’, seguido de los bits de datos y un bit de paridad opcional, y
termina con bits de parada, que son ‘1’. El número de bits de datos puede ser 6, 7 u 8. Los
datos se transmiten empezando por el bit menos significativo (LSB). El bit de paridad
opcional se utiliza para la detección de errores. Para la paridad impar, se establece en ‘0’
cuando los bits de datos tienen un número impar de unos. Para la paridad par, se establece
en ‘0’ cuando los bits de datos tienen un número par de unos. El número de bits de parada
puede ser 1, 1.5 o 2.

Al ser una comunicación asíncrona, no se transmite información de reloj a través de la línea


serial. Antes de que comience la transmisión, el transmisor y el receptor deben acordar un
conjunto de parámetros de antemano, que incluyen la velocidad en baudios (es decir, el
número de bits por segundo), el número de bits de datos y bits de parada, y el uso del bit
de paridad. Las velocidades en baudios comúnmente utilizadas son 2400, 4800, 9600 y
19200 baudios.

II. Desarrollo
Describir y simular un hardware para realizar una comunicación serie UART por el puerto
RS-232 que presenta la FPGA con los siguientes parámetros: 19.200 baudios, 8 bits de
datos, 1 bit de parada y sin bit de paridad. Para su realización se va a seguir el siguiente
esquema:
Se cuenta con dos bloques: Receptor (UART_RX) y transmisor (UART_TX) con las
siguientes señales:
• RX: Señal de la transmisión que se va a recibir. Al ser una señal externa no está
sincronizada, así que se va a registrar doblemente (es decir, es necesario pasarla por dos
biestables de tipo D) con el objetivo de sincronizarla con el reloj de la FPGA y de evitar
problemas de ruidos y meta estabilidad en la medida de lo posible.
• RX_Dout: Señal donde se va a ir mostrando la señal recibida, se actualiza con cada bit de
datos que llega por RX.
• RX_done: Señal que debe ponerse en alto durante al menos un ciclo de reloj para indicar
que se ha terminado de recibir un byte. El resto del tiempo debe estar en nivel bajo.
• TX_Din: Señal de entrada donde se van a introducir el byte que se van a enviar por TX.
• TX_start: Señal que debe ponerse en alto durante un ciclo de reloj para indicar al módulo
que se debe empezar a transmitir por TX los bits que hay en TX_Din.
• TX: Señal de la transmisión que se va a enviar. Comienza con el bit de inicio justo en el
momento en que TX_start se regresa a cero después de un pulso en alto.
• TX_done: Señal que debe ponerse en alto durante al menos un ciclo de reloj para indicar
que se ha terminado de enviar un byte. El resto del tiempo debe estar en nivel bajo.
• Clk: Reloj.

Para comenzar la implantación se deben de hacer que el tiempo en el que se recibe


un bit es de 1 19200 ≈ 5.2 𝑚𝑠, por lo tanto, se requieren contar 5.2 𝑚𝑠 20 𝑛𝑠 ≈ 2604
veces para que pase el tiempo necesario para recibir un bit.

Programa Descrito
Este código describe el receptor de nuestro hardware donde al inicio del programa
clck_Bau empieza en 50Mhz de nuestro reloj.
Por otro lado, tenemos los puertos con los que contamos que en este caso son 4
los cuales son.
Ent-Entrada de bits en nuestro programa
Sali-salida de los datos en el programa
Clck-Señal de reloj en nuestro programa
DatEn- representa el registro de los 8 bits leídos por el receptor
Ahora pasamos al banco de pruebas en donde simularemos nuestros 2 programas
el de receptor y transmisor
Ahora después de haber simulado en nuestro banco de purebas pasamos a la
visualización de nuestras señales.’ En donde podemos ver que la transmisión de
señales.
III.-Conclusiones
Es importante conocer las diferentes entidades que componen el UART y es que
gracias a ellos entendemos el funcionamiento real de los dispositivos programables;
Es muy importante conocer su máquina de estados, ya que así es más fácil describir
esta entidad y a su vez conocer las señales de reloj y su velocidad de bits. Saber
utilizar sus registros qué operaciones facilitan los diferentes programas que se
podrían utilizar en el futuro y nos dan hincapié a realizar nuestro proyecto final con
estas estructuras.

También podría gustarte