PRÁCTICA 4 CURSO 0405

Anuncio
Práctica 4
Práctica 4 de Microprocesadores
Objetivos
- Familiarización con la DUART 68681.
- Configuración de la UART integrada en al AT902313.
- Establecer una comunicación serie.
Estudio teórico
Se desea establecer una comunicación serie asíncrona a 4800bps, 8 bits de datos, sin paridad y 1 bit de
stop, entre el microinstructor y el STK500, utilizando el canal A de la DUART y el puerto serie del
microcontrolador. En concreto, se desea que el número de caracteres recibidos en el STK500 se muestre
en los diodos del microinstructor y que, el estado de los microinterruptores del microinstructor TM-683,
se muestre en los diodos del STK500. El MC68000 deberá muestrear, continuamente, el estado de sus
microinterruptores y, sólo, en el caso en que estos cambien de valor, se procederá a enviar un byte al
equipo remoto con el estado de los mismos. El microcontrolador ATMEL en el STK500 deberá
contabilizar el número de bytes recibidos desde el microinstructor en una variable de tamaño byte y
enviarla al TM683 cada vez que ella cambie de valor.
La recepción de cada byte, por ambos sistemas, se realizará por interrupciones. Para el microinstructor,
la rutina de excepción asociada deberá obtener el byte recibido en la DUART y situarlo en el puerto
adecuado de la VIA, previamente configurada, para que se activen o desactiven los correspondientes
leds. La rutina de interrupción del microcontrolador hará lo propio en el STK500, o sea, leer el byte
recibido por la UART interna y escribir en el puerto correspondiente para la activación de los leds. En
cambio, para la transmisión se empleará el muestreo (polling).
Se debe tener en cuenta, para el correcto funcionamiento de la DUART en el microinstructor, que ésta
dispone de un registro interno, denominado IVR, que contiene el número de vector de excepción que se
vuelca en el bus de datos durante el ciclo de reconocimiento de interrupciones del MC68000.
Normalmente, se podría utilizar cualquier valor comprendido entre 64 y 255, ya que este rango
corresponde con los vectores de excepción de usuario, pero el microinstructor sólo implementa los
primeros dieciseis, o sea, desde el 64 al 79. Se recuerda que las direcciones donde se encuentra la tabla
de vectores de excepción, corresponden a la memoria ROM del microinstructor y que, algunos de sus
vectores, están apuntando a pseudovectores almacenados en una tabla situada en la memoria RAM,
donde sí pueden ser modificados por el programador para implementar rutinas de excepción propias.
En concreto, los vectores comprendidos del 64 al 79, tienen asignados los pseudovectores que van del 25
al 40 y que se encuentran en las direcciones $20098-$200F2 (tomadas de 6 en 6). Por ejemplo, si se
decide utilizar el vector de excepción de usuario número 64, se deberá indicar, en el pseudovector 25,
situado en la posición de memoria $20098, la dirección de memoria donde se encuentra la primera
instrucción de nuestra rutina de excepción.
Prácticas de microprocesadores 14/12/04
1
Práctica 4
Por último, el microinstructor TM-683 asigna a las peticiones de interrupción de la DUART un nivel de
prioridad 6, por lo que la máscara de interrupción del registro SR deberá tener un nivel inferior a éste, si
se desean procesar dichas interrupciones.
Téngase en cuenta que, para mostrar inicialmente, el estado de los microinterruptores en los leds del
STK500, el MC68000 deberá enviar al principio el byte con el estado de los mismos y, por consiguiente,
es necesario que el primer sistema que esté funcionando sea el microcontrolador.
Estudio experimental
Conectar el cable serie entre ambos sistemas y comprobar el funcionamiento del programa desarrollado
en el estudio teórico.
Prácticas de microprocesadores 14/12/04
2
Descargar