Está en la página 1de 9

octubre/2019

Centro de Investigación y Estudios Avanzados del I.P.N.

Departamento de Ingeniería Eléctrica

Sección de Bioelectrónica

Electrónica Digital

Reporte de Práctica 4
Integrantes:

Brenda Arae Gonzáles Juárez


Fausto David Cotrtes Rojas

Profesor: M. en C. Luis Martín Flores Nava

1
octubre/2019

Introducción
El desarrollo que ha tenido la materia a lo largo de las clases nos ha
permitido llevar a cabo la descripción de varios componentes de
manera individual y también hemos aprendido a conjuntarlos por
medio de entidades superiores al usar la programación jerarquica,
pero una vez que somos capaces de modelar dichos componentes
debemos ser capaces también de comunicarlos al exterior, en ésta
ocasión harémos uso del ya conocido protocolo rs232.
Ilustración 1: Conector de interfaz rs232
La norma RS232 describe la conexión en serie entre un aparato
terminal de datos (DTE) y una instalación de transmisión de datos
(DCE) con sus propiedades eléctricas y mecánicas. Aunque la norma sólo define este tipo de conexión,
la interfaz RS232 se ha establecido como estándar general para transmisiones de datos en serie a
través de cortas distancias.

Los datos serie se encuentran encapsulados en tramas de la forma:

2- Forma en la que se acomodan los bits, para ser enviado.

Para llevar a cabo la comunicación se debe establecer la velocidad de dicha comunicación en ambos
dispositivos (baudios), si tiene bit de paridad. Luego, cuando la uart receptora recibe el nivel de partida,
de alto a bajo, espera el tiempo suficiente para llegar a la mitad del tiempo que dura un bit, en donde se
realiza la lectura del nivel de entrada. Esto se replica para los siguientes 7 bits. Finalmente se reconoce
el bit de parada.

Se realiza la lectura en la mitad del tiempo, para minimizar los efectos del transiente en los cambios de
niveles lógicos. Cables mas largos son menos inmunes al ruido.
El bit de parada es útil para validar la trama de entrada.

Ilustración 3: Distribucion y orden de envío de bits en el tiempo para estacblecer


comunicación serial.

2
octubre/2019

Objetivo
El objetivo principal de ésta práctica es establecer una comunicación exitosa entre nuestra tarjeta por
medio de su puerto UART1 y un puerto serie simulado, mismo que cerearemos con el sofwtware Tera
Term, la practica se divide en dos partes, cada una está diseñada para poder realizar nuestro protocolo
de comunicación rs232 desde la parte de transmisión (TX) y recepción (RX) y una vez establecida la
comunicación poder enviar y recibir información a traves de la terminal de Tera Term.

Puerto
UART

Ilustración 5: Software Tera Term

4-Puerto UART de la Spartan 6

[1] UART, son las siglas en inglés de Universal Asynchronous Receiver-Transmitter, en español: Transmisor-Receptor Asíncrono Universal, es
el dispositivo que controla los puertos y dispositivos serie. Se encuentra integrado en la placa base o en la tarjeta adaptadora del dispositivo.

Otro elemento importante es la terminal, por donde enviamos o


recibimos información que es de nuestro interés, la terminal te
permite simular un puerto serie configurable en velocidad, en
tamaño, protocolos diferentes, etc.
En nuestro trabajo extra clase se pretende hacer un programa que
envía datos a traves del puerto hacia la tarjeta y chia informacion
se refleje en ella y de forma inversa, reprogramar la tarjeta para
que al enviar informacíon a traves de ella se refleje en la terminal.

Ilustración 6: Ventana Terminal

3
octubre/2019

Ejemplo1.

Transmisión

Trabajo Previo

De manera previa conocimos las caracterizticas del protocólo rs232 el cual usaremos en éstos
trabajos extraclase, en esta parte entendimos la importancia del bit de inicio, bit de parada, bits de datos
y la velocidad de transmisión en terminos de bit/segundo, unidad conocida como baudios, para ésta
práctica usaremos un avelocidad de 9600 baudios, ésta velocidad debe de ser uniforme entre la
transmisión y la parte receptora.

Desarrollo

Con el proposito de enviar ciertos


caracteres a traves de la tarjeta
hacia el puerto vamos a realizar
un programa que despliegue el
mensaje: “CINVESTAV-IPN” y el Reloj de transmisión
número de equipo “EQUIPO 12”
en la terminal.
Para ello tomaremos como
referencia el código usado en
clase donde tenemos defenidos
ya la velocidad de transmisión, Nuestro nuevo contador debe
traves de un reloj de configurarse para reiniciar en el
número 21, una vez que todos los
transimisión, y un contador que caracteres hayan terminado de
nos permite enviar una cadena enviarse.
de caracteres de un tamaño
especifico y que se reinicie cada
vez que se hayan mandado todos Contador que reinicia el envío de
los caracteres dispuestos, pero caracteres, mismo que se reinicia
le vamos a cambiar el tamaño cuando los 15 (tomando en cuenta
la posición 0),caracteres han sido
del contador que reinicia el envio enviados y para el número 15 del
de caracteres, ya que el mensaje contador pone las salidas en 0.
visto en clase tenia una longitud
de 15 caracteres y ahora para el
mensaje que se nos pide Ilustración 7: Código VHDL de nuestra transmisión
tenemos una longitud de 22
caracteres.

4
octubre/2019

Una vez que tenemos nuestro reloj de transmisión, debemos especificar el mensaje que será enviado
en éste caso se nos pide en el manual de práctica que dicho mensaje debe ser el siguiente:
“CINVESTAV-IPN_EQUIPO12”

El cual está dado para nuestra variable regtx de forma hexadecimal cuando dicha variable toma los
valores del 0-21 que es el tamaño de nuestro mensaje y se programó de la siguiente manera:
X"43" when "00000000", --C
X"49" when "00000001", --I
X"4E" when "00000010", --N
X"56" when "00000011", --V
X"69" when "00000100", --E
X"53" when "00000101", --S
X"54" when "00000110", --T
Valores asignados a cada X"41" when "00000111", --A
número del contador en su X"56" when "00001000", --V
valor hexadecimal. X"2D" when "00001001", ---
X"49" when "00001010", --I
X"50" when "00001011", --P Tamaño de nuestro mensaje y a
X"4E" when "00001100", --N un lado comentado en color verde,
X"5F" when "00001101", --_ está nuestro mensaje a enviar.
X"45" when "00001110", --E
X"51" when "00001111", --Q
X"55" when "00010000", --U
X"49" when "00010001", --I
X"50" when "00010010", --P
X"4F" when "00010011", --O
X"31" when "00010100", --1
X"32" when "00010101", --2
X"00" when others;

De igual forma en la ilustración 8 podemos ver claramente el tamaño del paquete de bits que se está
enviado, el cual es de 8 bits + 1 bit de inicio (start bit) y un bit de parada (stop bit).

Ilustración 8: protocolo de tx.

5
octubre/2019

Simulaciones

A continuación y una vez terminada la descripción para la transmisión del mensaje vamos a simular
nuestro código, de esa forma verificamos que está funcionando y el mensaje se está enviando al menos
funcionalmente.

Ilustración 9 Simulación funcional de nuestra transmisión

Se puede observar que el mensaje está siendo enviado con éxito el mensjae sale como se espera, de la
misma forma se puede ver la señal tx la forma de onda característica que se forma al enviar nuestros
paquetes de bits en blockes.
************************************Simulación Temporizada*************************************
La simulación temporizada no se realiza a causa de que el programa tarda tiempo excesivamente alto y no se puede continuar con tal
tarea, para lograrse, proponemos más tiempo de trabajo.

Implementación
Ya que logramos comprobar que el funcionaimento es el esperado, pasamos a implementar nuestro
código de transmisión hacia la tarjeta y poder enviar el mensaje a traves de ésta y que podamos
visualizar nuestro mensjae en la terminal del software TeraTerm.

1. Como primer paso debemos programar la tarjeta


como lo hemos hecho con anterioridad en las
practicas hasta ahora, midiante el puerto PROGRAM.

2. Una vez programada se hace uso del puerto UART ya


mencionado arriba, que se puede ver en la ilustración
4 dicho puerto como ya lo vimos en la introducción nos
permite establecer la conexión serial que necesitamos.

3. Despues de tener conectada nuestra tarjeta abrimos


el programa TeraTerm y configuramos nuestro
puerto, debemos elegir la opción serial dque sólo se Ilustración 10: Configuración de la terminal
habilita si detecta una conexión exitosa en el puerto.

4. Como ultimo paso configuramos la terminal a la velocidad que estamos transmitiendo, la cual se
menciona con anterioridad es de 9600 baudios.

6
octubre/2019

Resultado

Como podemos ver, el mensaje se envía con éxito cada vez que lo enviamos a traves de la
placa cada vez que presionamos el boton (F5) de la placa, en la ilustración lo cual nos indica
que tuvimos un resultado esperado y la tranmisión se logro de manera exitosa, cabe
destacar que el mensaje entre mas grande sea, tardará más tiempo en enviarse, y
siempre se debe configurar de manera correcta ya que una velocidad dispar, provocaria
un mensaje erroneo y la ineficacia de la transmición por completo.

Mensaje emitido “CINVESTAV-IPN_EQUIPO12”.

Ejemplo2.

Recepción

Trabajo Previo

Como ya lo hablamos la comuniación se logra teniendo una transmición y una recepción exitosa deoende
de saber con certeza cómo programar de manera correcta ambas partes de ésta “ecuación”, en
realidad el procediemiento de conexión física es el mismo para ambas así que se obviara esa parte e
iremos directamente a la explicación de nuestra despricpción.

Desarrollo
El fin de ésta practica es crear la parte analoga a la transmisión y para ello se nos pide crear un contador
de módulo (n), el cual sera capáz de recibir un dato númerico desde la entrada del teclado para ser
procesada por la tarjeta spartan 6 y posterieormente desplegarlo en los LEDS que están incluidos en
la misma.

7
octubre/2019

Descripción
Para ello se propone tomar como base nuevamente los códigos previamente utilizados en clase para
hacer recepción de datos de forma serial y modificarlo para lograr hacer una cuenta de cualquier
número que sea ingresado en la terminal por el usuario:

Reutilizamos el código que teníamos, pero


agregamos 2 señales más, contador y preleds.

Cabe destacar que la velocidad de recepción


está sobremuestreada, ya que recordemos
que la de transmisión está a una velocidad de
9600 baudios .

Seguimos manejando la misma estructura de


envío de bits por paquetes donde tenemos 8
bits de datos más 1 de stop y uno de Start por
ello el contador se reinicia a llegar a 10 .

se implementó un if, donde la principal condición es


que la señal llamada conteo toma el valor del código
ascii; señal llamada preleds, e ir contando de uno en
uno hasta llegar al valor establecido, dando como
salida la variable leds, donde se muestra el
incremento de 0 al valor asignado por el usuario. En
el caso de la simulación el valor asignado es A en
código asci.
.

8
octubre/2019

Simulación

Podemos ver que el código funciona correctamente, pero se presentan algunos problemas de
abstraccion y sobre todo en la implementación a la tarjea.

Ilustración 11: Simulación de contador

Conclusiones:

Ejemplo 1
Como conlusión podemos observar que la transmisión resulta de alguna forma menos dificultosa de
ejecutar en comparación de la recepción, en resumen es más sencillo enviar datos que recibirlos, creo
que debemos seguir trabajando el ello hasta poder resolver dichos retrasos, creo que el mayor
abstáculo fue el tiempo que se tenía, además de que hoy en día ya no existen los puertos físicos de
rs232 en la mayoría de los equipos por lo cual este procedimiento se hizo con un simulador y eso vuelve
el procedimiento cargado totalmente a la parte del software, conllevando problemas de compatibilidad
.

Ejemplo 2

El ejemplo del contador podemos observar que las sentencias pueden alterar de manera significativa la
recepción en la tarjeta, en este caso el sódigo del contador tiene que coincidir con las demás variables
que están cambiando constantemente, de manera que no se pierda la numeración en ascii en el
momento de que se elija un valor.

*** Como parte importante a destacar que las tarjeta presentó algunos porblemas de compatibilidad
al programar y al conectar con el simulador, significando una total perdida de la información o una
conexión inexistente**

También podría gustarte