Departamento de Ingeniería Electrónica. Universidad de Sevilla Asignatura: Laboratorio de Microelectrónica Digital. Escuela Superior de Ingenieros

Documentos relacionados
UART. Diseño de Sistemas con FPGA 1er cuatrimestre 2013 Patricia Borensztejn

Sistemas Electrónicos Digitales Curso de adaptación al Grado

SISTEMAS ELECTRÓNICOS DIGITALES

SelectRAM+memory Bloques de memoria RAM En las FPGAs Spartan IIE

Figura 2. Formato de un dato serie síncrono.

1. Módulo de desarrollo Spartan 3 STARTER KIT con un FPGA xc3s200 ft Software de diseño XILINX ISE versión 10.1

Diseño de un sistema de adquisición de datos de un micrófono utilizando una FPGA

Tema 10: Transmisión de datos

Manual de referencia de la tarjeta BASYS 2

Universidad Autónoma de Querétaro Facultad de Ingeniería

Desde 1987, Ingeniería, Desarrollo y Fabricación en España MDV6/MD6V. TRANSMISOR/RECEPTOR 4xVIDEO,DATOS,AUDIO Y CONTACTO

COMUNICACIÓN SERIE (RS232)

TRABAJO PRÁCTICO Nº 6: PUERTO SERIE

Decodificadores/Demultiplexores. Grupo 9 Javier de Gregorio Menezo Laro de la Fuente Lastra Raúl Fernández Díaz

ELECTRONICA ESTUDIO MODULO TRASMISOR-RECEPTOR DE RF A RS232 BIDIRECCIONAL Clave: 875

DISEÑO DE SISTEMAS ELECTRÓNICOS DIGITALES AVANZADOS

Tipos de Filtros Introducción

INGENIERÍA DE COMPUTADORES III. Solución al examen de Septiembre 2013

Registros de desplazamiento

LABORATORIO DE TECNOLOGÍA DE COMPUTADORES PRÁCTICA 7

LABORATORIO DE CIRCUITOS DIGITALES (2005-II) QUINTA CLASE DE VHDL

Tema: Comunicación en Serie. Interfaz RS-232.

APUNTES DE INSTRUMENTACIÓN PARA ELECTRÓNICA DIGITAL

Transmisión paralelo:

DECODIFICADORES. Para cualquier código dado en las entradas solo se activa una de las N posibles salidas. 2 N

Hardware Libre: la Tarjeta Skypic, una Entrenadora para Microcontroladores PIC

DESCRIPCIÓN DE CIRCUITOS DIGITALES

Prueba del Driver ModBus

GUÍA DE ESTUDIO TEMA 2. MODELO OSI. ESTÁNDARES Y PROTOCOLOS. MODELO TCP/IP.

MODBUS INDICE. Centro Integrado Politécnico ETI Departamento de Electricidad Fernando Pascual Moisés Pérez MODBUS 1. CARACTERÍSTICAS DEL BUS

Documentación Técnica Uso Interno

PIC MICRO ESTUDIO Display de 2 y4 Dígitos RS-232 (Clave 701 y 702) Guía de Uso

Tema 8: Organización de la Entrada/salida

PIC 18F45XX CARACTERÍSTICAS GENERALES

Guía de uso Tarjeta Nexys 2 FPGA Spartan-3E

Hardware Libre: Clasificación y desarrollo de hardware reconfigurable en entornos GNU/Linux

Conversor. Merlín Full. Manual de Usuario

Configurar MODEM sms. Tutorial. Configurar MODEM sms. En este tutorial veremos como configurar un módem y un envio de sms con el PLC de unitronics

CODIFICADORES CON PRIORIDAD. Grupo 2

PRÁCTICA 4. CONTADORES

INTRODUCCIÓN A LAS COMUNICACIONES POR RADIOFRECUENCIA

^6+1 2^5+1 2^2+1 2^1+1 2^ ^6+1 2^0-65.

Discusión. Modelo de una compuerta. Arquitecturas de Computadores Prof. Mauricio Solar. Temario. ...Introducción

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

GENERADOR DE SECUENCIAS PROGRAMADAS PARA LA VERIFICACIÓN DE SISTEMAS DIGITALES GSProg

GUÍA PRÁCTICA DEL SOFTWARE ACTIVE-HDL.

Tema 3 - Modelado con HDL a nivel RTL

TEMA 1: Concepto de ordenador

PIC16F882/883/884/886/887

5. Decodificadores. Salida _1= A A A A = m = M ... Electrónica Digital. Tema

PCF8574 EXPANSOR REMOTO 8-BIT I/O PARA I²C-BUS

HARDWARE USB/RS232 (28 servos)

Tema 9 Periféricos de Entrada

I2C. Ing. Pablo Martín Gomez

INTRODUCCIÓN AL SOFTWARE ISE (Integrated Software Environment) DE XILINX

Tema: Microprocesadores

Sistemas Secuenciales

SUPER CONTROLADOR DE SERVOS S310175

Circuito de refresco de un Display

Comunicación Serie RS 232

APUNTE DEL 8155 ELECTRÓNICA DIGITAL III

ICTP Latin-American Advanced Course on FPGADesign for Scientific Instrumentation. 19 November - 7 December, 2012

Simulín. Qué es Simulín? Características. Simulador de circuitos digitales para uso docente. v5.60 (Julio 2014) Función lógica (expresión algebraica)

NT 3 PROGRAMACION ON-LINE DE TODA LA FAMILIA APPCON

Diseño de una calculadora

FPGA: Herramientas de diseño

Redes de Comunicaciones. Ejercicios de clase Tema 3

JENNIFER NATHALY MUÑOZ RENGIFO FERNANDO ARIAS LEANDRO ORDÓÑEZ ANTE. Ing. JUAN SEBASTIAN CABRERA

PIC MICRO ESTUDIO Reloj en tiempo real RTCU2 Clave: 719

Laboratorio virtual para la programación de FPGAs

Conversor RS232-RS485/RS422 Aislado MCV1-C485-IA-IS. Manual del Usuario. Power. TX Data. RX Data MCV1. Internet Enabling Solutions.

Dpto. de Electrónica 2º GM - EMTT. Tema 6 La Memoria Principal (RAM)

Smart Buffer Plus Guía de Instalación y Configuración

Lab 5: Contador decimal en System Generator

Diseño VHDL de módulos combinacionales básicos

Sistemas de Interconexión entre Redes LAN

Contador de pulsos para Servomecanismos

Tema: Configuración de Access Point

ARQUITECTURA DE LAS COMPUTADORAS. UNIDAD 7: Unidades de Entrada-Salida

TUTORIAL Comunicación Serial

GUÍA RÁPIDA CONFIGURACIÓN PLUGIN Y DRIVER KRONOS NET

TARJETA DE DESARROLLO CPLD

Circuitos Secuenciales: concepto de estado

Transmisi n de Datos a Trav s de un PIC

Test de Fundamentos de Electrónica Industrial (4 puntos). 3º GITI. TIEMPO: 40 minutos May 2013

4. SUMADORES EN BINARIO PURO (I)

Manual de instalación Cable de interfaz USB

Anexo LA TRANSMISIÓN POR PUERTO SERIE

MPI. Índice. Tecnologías de Control. TEMA MPI 1. Subred MPI. 2. Comunicación de Datos Globales. 3. Funciones Básicas S7. 4.

MICROCONTROLADORES PIC

Tutoría 2. Banco de memoria de 8 y 16 bits (8086)

Arquitectura de Computadores. Práctica 1: Diseño Hardware de Procesadores. Práctica 1/1

Instituto Tecnológico de Massachussets Departamento de Ingeniería Eléctrica e Informática Circuitos Electrónicos Otoño 2000

CONTADORES. Definición. Diseño y analisis de un contador binario hacia arriba de 3 bits con flip-flops JK. Otros contadores típicos.

BIBLIOGRAFIA TEORIA DE CIRCUITOSY DISPOSOTIVOS BOYLESTAD ELECTRONICA DIGITAL TOKHEIM SISTEMAS DIGITALES TOCCI

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS FACULTAD DE INGENIERIA ELECTRONICA ESCUELA DE ELECTRONICA

Práctica I Modelado y simulación de una máquina expendedora de refrescos

Equipamiento ADSL» Inalámbrico. Adaptador USB PAUTAS PARA LA VERIFICACION TCP/IP

SISTEMA DE ADQUISICIÓN Y VISUALIZACIÓN DE PARÁMETROS BRINDADOS POR MÓDULO GPS

PRÁCTICA 4 Montaje y evaluación de sistemas secuenciales.

Transcripción:

Escuela Superior de Ingenieros Universidad de Sevilla Departamento de Ingeniería Electrónica Versión 1.2. 3 de Marzo de 2008 Práctica 3 LABORATORIO DE MICROELECTRÓNICA Jonathan N. Tombs Fernando Muñoz Chavero Miguel A. Aguirre Javier Nápoles 1

Práctica 3. Comunicación serie con la tarjeta S3 Este práctica es la tercera de un grupo de tres dedicada a entrenar al alumno con el entorno de trabajo Xilinx ISE 9.2 y la tarjeta Digilent S3. Se diseñarán un sistema de comunicaciones entre un ordenador personal y las tarjeta, basadas en la utilización de un enlace serie RS232. Los objetivos de la práctica son los siguientes: 1. Perfeccionar el entrenamiento con el entorno Xilinx ISE 9.2. 2. Faciltar un mecanismo de comunicaciones entre un PC y la tarjeta S3 que sirva para transferencia de información entre ambos sistemas. 2

1. Objetivo propuesto Se trata de diseñar un enlace serie RS232 con una velocidad de transferencia y definición del enlace de comunicaciones fijo. Proveer de un mecanismo de transferencia de información entre la tarjeta y el usuario para posibles aplicaciones en los proyectos. 2. Enlace de Serie Un enlace serie es una comunicación asíncrona a una velocidad determinada. La comunicación se realiza diseñando una UART para la transmisión y para la recepción de mensajes. Las condiciones de diseño serán las siguientes: 8 bits Paridad par 1 start y 2 de stop 9600 baudios Half duplex. No se permite envío y recepción simultáneos. Desde el PC utilizaremos la utilidad de Windows hiperterminal, que nos facilitará la transferencia a través del COM1. Una línea serie tiene dos líneas RX y TX, RX recibe la información y TX la envía. Driver Displays RX RECEPTOR Registro Byte DataRec0 Registro Byte DataRec1 DataOK StTrans TX TRANSMISOR DataRec1 Por otra parte, representaremos la información recibida en los displays de la placa. En el ejercicio de hoy almacenaremos cuatro valores en sendos registros de 8 bits, que forman una pequeña FIFO de dos bytes. A su vez estos registros se representan en el 3

display y luego se envían al PC por la línea de transmisión. En la consola hiperterminal se visualizarán los valores de la información retrasados un envío. Para realizar la práctica se utilizará el puerto RS232 de la placa, conectado al PC mediante un cable serie. La norma RS232 obliga a transmitir mediante tensiones de 0 a 15V. Se precisa, pues, de un chip que adapte dichas tensiones. En la figura se representa el esquema eléctrico de dicho puerto implementado en la placa S3. 3. Realización de la práctica Por razones didácticas seguiremos la evolución de la práctica de menor a mayor complejidad. Además se proporciona la parte del diseño relacionada con los drivers de los display, que pueden ser los mismos que se utilizaron en la práctica 1. Se comenzará realizando un transmisor que envíe un valor fijo al PC. 3.1 TRANSMISOR El transmisor es un circuito bastante sencillo, en el que la información transmitida por la línea TX tiene una configuración fija. En este caso se trata de una carga en paralelo y una salida en serie, para enviar 8 bits de información y a los cuales que hay que añadir el bit de start y bit proveniente del generador de paridad. La línea de transmisión está en estado 1 en reposo. La transmisión se realizará a la velocidad de 9600 baudios. 4

Utilizaremos los siguientes elementos para realizar el tranmisor: Contador de bits Contados de baudios Máquina de estados que controla la transmisión Generador de paridad Multiplexor de selector de bit. En esta práctica es muy aconsejable utilizar un contador genérico en el que se adapte su extensión y valor de saturación a cada una de las aplicaciones, con señal de habilitación (enable) y señal de reset síncrono. La línea serie se comporta según la figura adjunta: Start B0 B7 Paridad Stop Muestreo 9600 b.p.s. B0 es el bit menos significativo del Byte a transmitir, y el bit de paridad representa un valor que hace que el número de bits a 1 del byte, junto con el propio bit de paridad, sea par. Los bits de stop representan un tiempo de al menos dos bytes en los que la línea TX está en reposo. La figura presenta un esquema de una posible solución al circuito. StSend Transmit Maq Est Transm Fin resets resets Contador de Baudios (Mod 5208) S9600 Contador de Bits (Mod 11) Selector 0 0 DataPar 1-8 Transmit TX GenParidad 9 1 10 5

3.1.1 Máquina de estados La máquina de estados de transmisión controla la transmisión, siguiendo el circuito del esquema anterior es: StSend=0 Reposo Transmite=0 Fin=1 StSend=1 Transmision Fin=0 Transmite=1 Donde StSend es un pulso de inicio de transmisión, Fin es un pulso de fin de transmisión dado por el contador de bits. Transmite tiene la misión de habilitar todo el tiempo del proceso durante el cual se transmite. La señal Transmite activará el contador de baudios de transmisión y el de bits, es decir, esta señal invertida mantiene a cero estos contadores cuando no hay transmisión. 3.1.2. Contador de Bits de Transmisión Este contador debe contar al menos 11 bits, donde el bit 0 es el de start, que está a 0, los bits 1 a 8 son la información transmitida, el bit 9 es el de paridad y el bit 10 debe estar a 1. Este contador cambia cada 1/9600 segundos. Para esta parte de la práctica se procederá a fijar un valor al dato de entrada. Se propone que para este dato se utilice el carácter hexadecimal 0x45. 3.2 RECEPTOR En la figura 1 se muestra el esquema general del receptor. Podemos distinguir los siguientes bloques a diseñar en VHDL: Desmultiplicador para ajustar la frecuencia de recepción Registro de recepción, conversor de serie a paralelo Generador de paridad Máquina de estados de recepción En la figura se muestra un esquema de la arquitectura del receptor basado en los bloques anteriormente mencionados. 6

RX ByteOki Maq Est Receptor Fin Contador de Baudios (Mod 2604) s19200 Resets SmplBit Contador de Bits (Mod 10) Registro Desplazamiento prt b7 b0 st DataRec (1 a 8) ByteOki ByteOkp ByteOk Gen Paridad ByteOkp El receptor ha de muestrear la información a mitad de bit, para asegurar que la recepción sea correcta. Por ello utilizaremos un contador que desmultiplica a doble velocidad, y muestreará la señal cada dos pulsos, tal y como se muestra en la figura. Start B0 B7 Paridad Stop Muestreo 9600 b.p.s. La velocidad de bits se ha de construir a partir de una desmultiplicación del reloj de 50MHz. Se construye un contador desmultiplicador de 50Mhz a 19200 (2x9600) ciclos por segundo: 50000000 / 19200=2604 Este contador se utilizará para muestrear cada bit. Se realizará de la siguiente manera, mediante una máquina de estados: Se recibe el bit de Start, en el que se pone la línea RX a cero. El contador se pone a cero y utilizaremos una señal de para muestrear cada dos pulsos de saturación. Se han de contar 9 bits (8 + paridad) El dato válido se genera a partir de la valoración de la paridad. La necesidad de un contador de velocidad doble se justifica para garantizar que el muestreo se realizará a mitad del tiempo de un bit de la información recibida, tal y como se muestra en la figura. 3.2.1 Diseño de la máquina de estados de recepción 7

Esta máquina de estados controla el muestreo de señales activadas por el contador de baudios. Se activa a partir del bit de start por RX. En reposo los contadores no se mueven. Una vez que se activa el contador de baudios, se atiende a su bit de saturación. Cada dos bits de saturación, se muestrea la señal de RX a través de SmplBit. El mecanismo se detiene cuando el número de bits muestreado es igual al valor de saturación del contador de bits SatCtBits. 3.2.2. Registro de desplazamiento La información se guarda en un registro de desplazamiento que cuando se habilita, se, transfiere la información al registro adyacente, y si no está habilitado, se retiene la información. 3.3. VERIFICACIÓN Para realizar la verficación de la información enviada se propone realizar dos acciones: 1. Representar en el display de la placa la información de los bytes recibidos. LA representación en el display se facilita en un módulo VHDL ya realizado y disponible en la web de descargas. 2. Reenvío al PC de la información de los bytes, mediante el transmisor. Los valores enviados aparecerían en la consola de la herramienta hiperterminal. 3.3.1 Hiperterminal 8

Es una aplicación de Windows que permite realizar operaciones de comunicación por diferentes canales, y en particular por el puerto serie, identificaci por COM1:. Se encuentra en Inicio >Programas >Accesorios >Comunicaciones >Hyperterminal Con el programa desconectado (icono del teléfono descolgado), Archivo >Propiedades Debe aparecer conectar usando COM1. Aquí presionar el botón Configurar. Aquí debe aparecer la configuración de la velocidad del puerto serie: 9

La figura muestra la configuración del puerto serie para realizar esta práctica. Una vez configurado la información que se escriba desde teclado en la consola del hyperterminal se transfiere automáticamente al puerto serie, y la información recibida será escrita en la consola. Los caracteres escritos no aparecen en la configuración por defecto de la consola. 4. Desarrollo de la Práctica Como se ha comentado comenzaremos por el transmisor. Realizaremos una primera versión que enviará al PC un valor fijo. 4.1 Contador Descripción Entidad clk reset enable resets Sat CONT_BAUDIOS y CONT_BITS Contador síncrono con habilitación y valor de saturación. Se llamará a esta instancia en cuatro ocasiones, para dos temporizar los baudios y dos para contar bits. entity contador is Generic (Nbit: INTEGER := 8; ValSat: INTEGER := 100); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC;--reset asíncrono enable : in STD_LOGIC; resets : in STD_LOGIC;--reset síncrono Sat: out STD_LOGIC; Q : out STD_LOGIC_VECTOR (Nbit-1 downto 0)); end contador; Descripción de los puertos Reloj Reset asíncrono activo a nivel alto Señal de habilitación activa a nivel alto. Si enable= 1 el contador avanzará uno en la cuenta en el flanco positivo de reloj. Reset síncrono activo a nivel alto. Si resets= 1 el contador pasará a cero en el siguiente flanco positivo de reloj. Pulso de salida que aparece cuando el contador alcanza ValSat. 10

Q Salida de Nbit igual a la valor de la cuenta. 4.2 Paridad Descripción Entidad dato Paridad GEN_PAR Circuito totalmente combinacional para calcular el bit de paridad del byte. entity paridad is Port ( data : in STD_LOGIC_VECTOR (7 downto 0); parity: out STD_LOGIC); end paridad; Descripción de los puertos Byte para calcular la paridad Valor de la paridad 4.3 Máquina de estado de transmisión Descripción Entidad clk rst StSend Fin Transmit FSM_TRANSMISOR Circuito de control del proceso de transmisión entity fsmtrns is Port ( clk : in STD_LOGIC; rst : in STD_LOGIC; StSend : in STD_LOGIC; Fin : in STD_LOGIC; Transmit : out STD_LOGIC); end fsmtrns; Descripción de los puertos Reloj de sistema de 50MHz Reset asíncrono activo a nivel alto Comienza el proceso de transmisión. Debe ser un pulso de un periodo de reloj Final del contador de bits de transmisión Esta señal está a 1 durante el periodo de tranmisión. 4.4 Máquina de estado de recepción Descripción Entidad FSM_RECEPTOR Circuito totalmente combinacional para calcular el bit de paridad del byte. entity fsmrec is Port ( clk : in STD_LOGIC; rst : in STD_LOGIC; RX : in STD_LOGIC; satctbits : in STD_LOGIC; s19200 : in STD_LOGIC; clrctbits : out STD_LOGIC; smplbit : out STD_LOGIC; ByteOki : out STD_LOGIC); end fsmrec; 11

clk rst RX satctbits S19200 clrctbits SmplBit ByteOk SmplBit Descripción de los puertos Reloj de sistema de 50MHz Reset asíncrono activo a nivel alto Línea de recepción Señal indicadora del final del contador de bits Saturación del contador de baudios Reset síncrono de los contadores de baudios y de bits Pulso de muestreo de un bit. Se habilita el contador de bits y el registro de desplazamiento. Debe durar un periodo de reloj. Se alcanza el final de la cuenta de byte y se debe verificar la paridad. Muestreo de un bit 4.5 Registro de Desplazamiento Descripción Entidad clk reset enable RX DataPar REG_DESPL Registro de desplazamiento que lee el valor de la información recibida en modo serie. Se lee el bit menos significativo primero. entity SerialPar is Generic (Nbits: INTEGER := 10); Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; enable : in STD_LOGIC; RX: in STD_LOGIC; DataPar: out STD_LOGIC_VECTOR (Nbits-1 downto 0)); end SerialPar; Descripción de los puertos Reloj de sistema Reset asíncrono activo a nivel alto Señal de habilitación activa a nivel alto. Si enable= 1 cada registro transferirá el contenido de cada uno de sus bits al siguiente. Señals de recepción serie. Valor de salida paralelo. El registro de desplazamiento ha de realizarse siendo el Msb el registro que primero recibe la información. Puede realizarse utilizando el siguiente código concurrente: pdata(nbits 2 downto 0)<=Data(Nbits 1 downto 1) when(enable=ʹ1ʹ) else Data(Nbits 2 downto 0); pdata(nbits 1)<=RX when(enable=ʹ1ʹ) else Data(Nbits 1); 4.6 Presentación de la información PRES_INFO 12

Descripción Entidad clk reset Data0 Data1 select DataPar Presenta la información en el display de 7 segmentos. Se trata de la práctica 1 adaptada a este problema. Se entrega como parte del enunciado. entity PrDisplay is Port ( clk : in STD_LOGIC; reset : in STD_LOGIC; data0: in STD_LOGIC_VECTOR (7 downto 0); data1: in STD_LOGIC_VECTOR (7 downto 0); siete_seg: out STD_LOGIC_VECTOR (6 downto 0); select: out STD_LOGIC_VECTOR (3 downto 0)); end PrDisplay; Descripción de los puertos Reloj de sistema Reset asíncrono activo a nivel alto Valor del registro 0 a representar Valor del registro 0 a representar Selector del display Valor del display de siete segmentos 4.7 Conexionado de pines de entrada/salida El fichero USER CONSTRAINTS FILE debe contener la siguiente información: NET ʺSelector<0>ʺ LOC = ʺE13ʺ ; NET ʺSelector <1>ʺ LOC = ʺF14ʺ ; NET ʺSelector <2>ʺ LOC = ʺG14ʺ ; NET ʺSelector <3>ʺ LOC = ʺD14ʺ ; NET ʺclkʺ LOC = ʺT9ʺ ; NET ʺRXʺ LOC = ʺT13ʺ ; NET ʺrstʺ LOC = ʺL14ʺ ; NET ʺSiete_Seg<1>ʺ LOC = ʺE14ʺ ; NET ʺSiete_Seg<2>ʺ LOC = ʺG13ʺ ; NET ʺSiete_Seg<3>ʺ LOC = ʺN15ʺ ; NET ʺSiete_Seg<4>ʺ LOC = ʺP15ʺ ; NET ʺSiete_Seg<5>ʺ LOC = ʺR16ʺ ; NET ʺSiete_Seg<6>ʺ LOC = ʺF13ʺ ; NET ʺSiete_Seg<7>ʺ LOC = ʺN16ʺ ; NET ʺTXʺ LOC = ʺR13ʺ ; 13