Comunicacion Serial NIOS

9
COMUNICACIÓN SERIAL NIOS II INTEGRANTES: Fabio Alejandro Ordoñez Loren Sildana Collo DESCRIPCION GENERAL JTAG UART BÁSICO COMUNICACIÓN SERIAL EJEMPLO AGREGAR COMUNICACIÓN SERIAL: Se agregará la interfaz paralela de entradas y salidas I/O. Seleccionar de la biblioteca de componentes Peripherals> Microcontroller Peripherals> PIO (Parallel I/O) y dar clic en Add y a continuación configurar dicho componente. El ancho del puerto será de 8 bits y en la dirección del puerto elegirla como de entrada, Input, como se muestra en la figura 11. Dar clic en Finish para regresar a la ventana del SOPC Builder en la pestaña de System Components. El procedimiento para la definición del puerto paralelo de salida es el mismo que en el paso 5, solo cambia la dirección, ahora será de salida, el ancho del puerto será de 8 bits. Realizados los puntos 5 y 6, debería aparecer la pantalla de la figura 12, donde ya se encuentran incluidas las interfaces de entrada y salida.

Transcript of Comunicacion Serial NIOS

Page 1: Comunicacion Serial NIOS

COMUNICACIÓN SERIAL NIOS II

INTEGRANTES: Fabio Alejandro Ordoñez Loren Sildana Collo

DESCRIPCION GENERAL JTAG UART BÁSICO COMUNICACIÓN SERIAL

EJEMPLO AGREGAR COMUNICACIÓN SERIAL:

Se agregará la interfaz paralela de entradas y salidas I/O.Seleccionar de la biblioteca de componentes Peripherals> Microcontroller Peripherals> PIO (Parallel I/O) y dar clic en Add y a continuación configurar dicho componente. El ancho del puerto será de 8 bits y en la dirección del puerto elegirla como de entrada, Input, como se muestra en la figura 11.Dar clic en Finish para regresar a la ventana del SOPC Builder en la pestaña de System Components.

El procedimiento para la definición del puerto paralelo de salida es el mismo que en el paso 5, solo cambia la dirección, ahora será de salida, el ancho del puerto será de 8 bits.Realizados los puntos 5 y 6, debería aparecer la pantalla de la figura 12, donde ya se encuentran incluidas las interfaces de entrada y salida.

Definición del puerto paralelo de entrada

Page 2: Comunicacion Serial NIOS

Interfaz de entrada y salida incluida en el sistema

En este sistema se desea tener comunicación entre una computadora y el sistema NIOS II.De la biblioteca de componentes seleccionar Interface Protocols> Serial> JTAG UART y dar clic en el botón Add. Aparecerá el asistente de configuración, para esta aplicación se dejaran intactos los parámetros, clic en el botón Finish para regresar a la ventana principal.

Asistente de configuración de la UART

Page 3: Comunicacion Serial NIOS

El sistema, ya completo, se muestra en la Figura 14, es importante mencionar que el SOPC Builder eligió los nombres de los componentes automáticamente pero los nombres no son tan descriptivos para ser asociados o identificados con los elementos del proyecto pero se pueden cambiar dando clic derecho y seleccionando Rename. Los nombres que se usarán en el sistema son los siguientes: cpu_0, onchip_memory2_0, Switches, LEDs y jtag_uart_0.

DESCRIPCION ESPECIFICA COMUNICACIÓN SERIAL

UART representa receptor asíncrono universal y transmisor. Contiene dos líneas serie para la comunicación de datos, uno para recibir y uno para transmitir.De datos en paralelo (normalmente 8 bits) se envían poco a poco a través de las líneas serie entre dos sistemas. A UART se emplea comúnmente en combinación con la interfaz RS-232 EIA para formar el puerto serie de un PC o un sistema embebido.JTAG núcleo UART de Altera es similar a un puerto serie. En lugar de utilizar un puerto RS-232 interfaz, los datos se reciben y se transmite a través del controlador JTAG FPGA y JTAG puerto. Esto elimina la necesidad de una conexión en serie separada entre una PC host y la placa de prototipos. El núcleo se encarga de la interfaz interna JTAG y control. Desde el procesador y el punto de vista del programa de aplicación, puede ser tratado como un puerto serie regular y se utiliza para comunicar el flujo de caracteres en serie entre el PC y la pizarra. El diagrama conceptual que se muestra en la figura

Page 4: Comunicacion Serial NIOS

CONFIGURACIÓN: Para aumentar el rendimiento y regular la transmisión de datos, una memoria intermedia FIFO de escritura y una memoria intermedia FIFO de lectura están incluidos en el núcleo UART JTAG.

La configuración especifica principalmente las características de los dos tampones, cuando un JTAG UART central se crea una instancia de SOPC Builder, aparece la página de configuración, como se muestra en figura Hay tres campos para cada búfer:

Página de instancias de un núcleo UART JTAG• Profundidad de Buffer: Este campo especifica el número de bytes en la memoria intermedia FIFO.• Umbral de IRQ: Este campo especifica la condición de interrupción. La interrupción señal de solicitud se afirma cuando el número de bytes de datos en la memoria intermedia FIFO alcanza el umbral especificado.• Construir utilizando registros en vez de bloques de memoria. Turing sobre esta opción fuerza el software de síntesis de utilizar los elementos de la lógica para aplicar el tampón.

Page 5: Comunicacion Serial NIOS

Registrarse mapa.

La interfaz de usuario-visible para el JTAG UART núcleo se compone de dos registros de 32 bits,una para los datos y uno para el control, como se muestra en el mapa de registros en la figura

Registrarse mapa del núcleo UART JTAG.

Registro de datos contiene los siguientes campos:• datos: Este campo contiene el byte para transferir hacia o desde el núcleo JTAG. Durante la operación de escritura, que tiene un carácter que se escriben en la escritura Búfer FIFO. Durante la operación de lectura, que tiene un carácter leído de la leer búfer FIFO.• rv: El bit es 1 si el campo de datos es válido.• Ravail: Este campo contiene el número de caracteres que quedan en la lectura Búfer FIFO (después de la lectura actual).El registro de control contiene los siguientes campos:• re: Este bit debe establecerse en 1 para activar la solicitud de interrupción de lectura.• nos: Este bit debe establecerse en 1 para activar la solicitud de interrupción de escritura.• ri: Este bit indica si la solicitud de interrupción de lectura se encuentra pendiente.• wi: Este bit indica si la solicitud de interrupción de escritura está pendiente.• ac: Este bit indica si ha habido actividad JTAG desde el bit era liquidado.• wspace: Este campo contiene el número de plazas disponibles en la escritura FIFO tampón.

NÚCLEO temporizador interno

El núcleo temporizador interno soporta diversas necesidades de sincronización, tales como la medición del intervalo entre los eventos y pulsos periódicos de generación. La parte clave del núcleo es un contrarrestar esa cuenta atrás de un valor específico a 0. El valor se conoce como tiempo de espera período y se almacena en el período de tiempo de espera de registros. Cuando el contador llega a 0, una bit específico se establece, la solicitud de interrupción opcional se afirma, y una salida opcional pulso se puede generar también. Después de llegar a 0, el contador puede hacer una pausa y estancia allí (en el modo de cuenta atrás-una vez) o volver a cargar los valores de la época registra y reiniciar el conteo (en el modo continuo). Señales de control opcionales pueden ser utilizado para detener, iniciar o reiniciar el funcionamiento del contador. El contador es impulsado por el reloj del sistema y cada recuento corresponde a uno período de reloj. El tiempo transcurrido es por lo tanto igual al número de cuentas * período de reloj.configuraciónEl núcleo temporizador es versátil y se puede configurar para adaptarse a diferentes necesidades de temporización. ¿Cuándo un núcleo temporizador se crea una instancia de

Page 6: Comunicacion Serial NIOS

SOPC Builder, aparece la página de configuración de parámetros, como se muestra en la figura

Página de instancias del núcleo temporizador.

Hay varios campos:

• Tiempo de espera: Este campo especifica el periodo de tiempo de espera y determina la valor inicial del registro de tiempo de espera. Se puede especificar en términos de una unidad de tiempo (por ejemplo, MS) en lugar del número de relojes. En el primero, SOPC Constructor usará la información del reloj del sistema para convertirlo en una unidad de tiempo para el número de relojes.• Temporizador tamaño mostrador: Este campo especifica el número de bits en el contador, el cual puede ser de 32 o 64. En un sistema con un reloj de 50 MHz, un contador de 32 bits puede contar hasta 85,9 segundos (es decir, 232 * 20 ns) y un contador de 64 bits puede contar hasta más de 10.000 años (es decir, 264 * 20 ns)• Las opciones de hardware: Este campo especifica que se deben incluir características opcionales y contiene varios subcampos:Presets: Este subcampo se enumeran varias configuraciones predefinidas, incluyendo Simple interrupción periódica, con todas las funciones, Watchdog y Personalizado. Registros. Este subcampo especifica si ciertas características deben ser instanciada, incluyendo si permitiendo que el procesador para actualizar (es decir, escritura) contra

Page 7: Comunicacion Serial NIOS

tiempo de espera, para leer la cuenta corriente de la instantánea registros, y para hacer una pausa y reanudar el conteo.Las señales de salida. Este campo indica si se debe incluir el tiempo de espera opcional salida de impulsos o perro guardián de salida restablecimiento del temporizador.Registrarse mapaEl registro visible para el usuario de un núcleo de contador de tiempo de 32 bits consta de hasta seis registros de 16 bits,como se muestra en el mapa de registros en la figura 10.9. El registro de estado contiene dos campos:• a: El bit a (por "tiempo de espera") se establece en 1 cuando el contador llega a cero. Lo queda establecido hasta un procesador escribe 0 en este bit para desactivarla.• correr: Este bit se lee como 1 cuando el contador se está ejecutando.El registro de control contiene cuatro campos:• ¡a: Este bit indica si se habilita la interrupción.• cont: Este bit especifica si el temporizador opera en el modo continuo ocontar-once.• empezar: Escribir 1 en este bit se inicia el funcionamiento del contador (cuenta atrás).• parar: Escribir 1 en este bit se detiene el contador.El periodl y registros periodh almacenan los 16 bits más bajos y los 16 bits superiores de losValor de tiempo de espera de 32-bit. Los registros snapl y snaph se utilizan para tomar una "instantánea" de la barra actual. Cuando un procesador emite una instrucción de escritura (escribir se ignora de datos), el valor actual de 32 bits del contador se copia en los dos Instantánea de registros de 16 bits.El mapa de registros para un núcleo de contador de tiempo de 64 bits es similar, excepto que los cuatro registros de 16 bits se utilizan para almacenar el tiempo de espera y para tomar instantáneas.