Buses y Periféricos Práctica 1 PRACTICA 1.

Anuncio
Buses y Periféricos
Práctica 1
PRACTICA 1.
Diseñar un circuito de transmisión/recepción serie a una frecuencia de 1200 baudios,
ocho bits de datos un bit de paridad y dos bits de stop
El transmisor dispondrá de una entrada de control que pondrá en marcha el circuito, el
cual cargará el dato de una entrada y los transmitirá. Si al final de la transmisión la
entrada de control todavía está activada, tomará el siguiente dato y lo transmitirá, etc.
El receptor dispondrá igualmente de una entrada de control que en cuanto sea activada
pondrá en marcha el proceso de recepción de datos. Al finalizar, el dato estará en un
registro de salida y una señal indicará que el registro está disponible. Si no se ha
recibido dato o ha ocurrido algún error se indicará con una señal de control.
Las líneas de datos se comportarán de la siguiente manera:
Mientras no haya transmisión se mantendrá a nivel alto
Iniciará la transmisión poniendo la línea a nivel bajo durante 833 (marcos)
microsegundos
A partir de ahí y en cada marco la cambiará conforme a los datos a transmitir,
comenzado por el bit menos significativo.
Tras los datos se transmite un bit de paridad que estará a cero si la paridad del dato
transmitido es par y a uno si es impar (usando paridad par)
Finalizado esto se mantendrá la línea a nivel alto al menos durante dos marcos. A
continuación ya puede venir un nuevo start bit o se mantendrá la línea en alto hasta que
ocurra.
Opcional.
Detectar cuándo hay sobre escritura en los registros de entrada o salida. Líneas
de control que indiquen cuándo se debe colocar un nuevo dato a la entrada de
transmisión o cuándo se debe retirar el dato recibido. Registros adicionales de entrada y
de salida con sus correspondientes líneas de control, etc.
Añadir opciones de selección de velocidad, paridad, tamaño del paquete de
datos, número de stop bits.
1
Buses y Periféricos
Práctica 1
Anexo
Algoritmo de Transmisión
Inicialmente la línea de datos de salida debe estar a 1
Si la señal de control está activa
Poner a cero la línea de datos (Start bit)
Cargar los datos de entrada en el registro.
(esperar 833 microsegundos)
Para cada uno de los bits de datos
Desplazar el registro un bit a la derecha
Sacar el bit desplazado por la línea de datos
Si el bit es uno, incrementar contador (control de paridad)
(esperar 833 microsegundos )
Si el contador es par sacar un uno por la línea de datos
Sino sacar un cero.
(esperar 833 microsegundos)
Poner la línea de datos a uno
(esperar 833 microsegundos)
Poner la línea de datos a uno
(esperar 833 microsegundos)
fin sí
volver arriba.
Esto se puede traducir a una serie de estados. La duración de cada
paso debe ser 833 microsegundos
Estado 0:
a) Si la señal de control está a cero, mantenerse en este estado
b) Si la señal de control está a uno pasar al estado 1
Estado 1:
a) Pone a cero la línea de datos de salida (Start bit)
b) Carga los datos de entrada en el registro
c) Inicializa un contador
d) Pasa al estado 2
Estado 2:
a) Desplaza el registro un bit a la derecha (LSB primero)
b) Toma el bit saliente y lo sitúa en la línea de datos de salida
c) Comprueba el estado del bit desplazado con vistas a
controlar la paridad del dato
d) Incrementa el contador
e) Si el contador es 8 salta al estado 3 si no vuelve al estado 2
2
Buses y Periféricos
Práctica 1
Estado 3:
a) Si la paridad ha sido par pone un cero en la línea de datos
Si la paridad ha sido impar pone un uno en la línea de datos
b) Pasa al estado 4
Estado 4:
a) Pone la línea de datos de salida a uno (1 º Stop bit)
b) Pasa al estado 5
Estado 5:
a) Pone la línea de datos de salida a uno ( 2º Stop bit)
b) Vuelve al estado 0
El siguiente paso sería extraer los componentes del camino de datos
y confeccionar la máquina de estados que lo gobierne.
El asunto de controlar la paridad debe idearlo el alumno. Puede usar
un contador que cuente el número de unos que se van transmitiendo
o algún otro mecanismo que se le ocurra.
3
Buses y Periféricos
Práctica 1
Algoritmo de Recepción
Inicialmente la señal de datos de entrada está a 1
Si la señal de control está activa
Esperar a que la línea de datos cambie a cero
Cuando cambie a cero
(esperar 833 microsegundos)
(esperar 833/2 mircrosegundos más)
Para cada uno de los bits de datos
Cargar el valor de la línea de entrada de datos
Desplazar el registro un bit a la izquierda
Si el bit es uno, incrementar contador
(esperar 833 microsegundos )
Cargar el valor de la línea de datos
Compararlo con el bit menos significativo del contador
Si son diferentes generar error
(esperar 833 microsegundos )
Si el valor de la línea de datos es diferente de 1 generar error
(esperar 833 microsegundos)
Si el valor de la línea de datos es diferente de 1 generar error
(esperar 833 microsegundos)
fin sí
volver arriba.
Se espera que el alumno sepa extraer de este algoritmo el diagrama
de estados, bastante semejante al ya expuesto para la transmisión.
4
Descargar