You are on page 1of 10

UART

8.1

INTRODUCCIN

Un receptor asncrono universal y transmisor (UART) es un circuito que enva datos en paralelo a travs de una lnea serie. UART se utiliza con frecuencia en conjunto con el EIA (Alianza de Industries Electrnicas) estndar RS-232, que especifica las caractersticas elctricas, mecnicas, funcionales y de procedimientos de dos equipos de comunicacin de datos. Debido al nivel de voltaje que se define en el RS-232 es diferente al de FPGA I/O, se necesita un chip convertidor de voltaje entre un puerto serie y los pines FPGA I/Os. La placa S3 tiene un puerto RS-232 con un conector de nueve pines estndar. La placa contiene el chip convertidor de voltaje necesario y configura las diferentes seales de control del RS-232 para generar automticamente el reconocimiento por el puerto serie del PC. Una recta estndar a travs de cable serie se puede utilizar para conectar la placa S3 y el puerto serie del PC. La placa S3 bsicamente maneja el estndar RS-232 y slo tenemos que concentrar en el diseo del circuito UART. Un UART incluye un transmisor y un receptor. El transmisor es esencialmente un especial registro de desplazamiento que carga datos en paralelo y luego se desplaza hacia afuera poco a poco a una tasa especfica. El receptor, por otro lado, se desplaza en el bit de datos mediante bits y luego se vuelve a ensamblar los datos. La lnea de serie es 1 cuando est inactivo. La transmisin comienza con un bit de inicio, que es 0, seguido por los bits de datos y un bit de paridad opcional, y termina con bits de parada, que son 1. El nmero de bits de datos puede ser 6, 7, u 8. El bit de paridad opcional se utiliza para la deteccin de errores. Para paridad impar, se pone a 0 cuando los bits de datos tienen un nmero impar de 1s. Para paridad par, se establece a 0 cuando los bits de datos tienen un nmero par de l 's. El nmero de bits de parada puede ser 1, 1.5, o 2. Transmisin con 8 bits de datos, sin paridad y 1 bit de parada se muestra en la Figura 8.1. Tenga en cuenta que el LSB de la palabra de datos se transmite primero.

Figura 8.1 Transmisin de un byte.

No hay informacin de reloj se transmite a travs de la lnea serie. Antes de que comience la transmisin, el transmisor y el receptor deben ponerse de acuerdo sobre un conjunto de parmetros de antemano, lo que incluye la velocidad de transmisin (es decir, nmero de bits por segundo), el nmero de bits de datos y bits de parada, y el uso del bit de paridad. Las velocidades de transmisin utilizados son 2400, 4800, 9600 y 19200 baudios. Se ilustra el diseo de los subsistemas de recepcin y transmisin en el siguiente secciones. El diseo es personalizado para una UART con una tasa de 19.200 baudios, 8 bits de datos, 1 bit de parada y sin bit de paridad. UART SUBSISTEMA RECIBIDOR Puesto que ninguna informacin de reloj es transportado desde la seal transmitida, el receptor puede recuperar los bits de datos slo mediante el uso de los parmetros predeterminados. Utilizamos un esquema de sobremuestreo para estimar los puntos medios de los bits transmitidos y luego recuperarlos en estos puntos en consecuencia.
8.2

8.2.1

Procedimiento de sobre muestreo La tasa de muestreo ms comnmente utilizado es 16 veces la velocidad de transmisin, lo que significa que cada uno de bits en serie se muestrea 16 veces. Suponga que la comunicacin utiliza N bits de datos y bits de parada M. El esquema de sobremuestreo funciona de la siguiente manera: 1. Espere hasta que la seal de entrada se convierte en 0, comience el bit de inicio, y luego inicie el contador tick de muestreo. 2. Cuando el contador llega a 7, la seal de entrada alcanza el punto medio del bit de inicio. Borrar el contador a O y reiniciar. 3. Cuando el contador llega a 15, la seal de entrada para un bit avanza y llega a la mitad del primer bit de datos. Recuperar su valor, cambiarlo en un registro, y reiniciar el contador. 4. Repita el paso 3 N-1 veces ms para recuperar los bits de datos restantes. 5. Se utiliza Siel bit de paridad opcional, repita el paso 3 una vez para obtener el bit de paridad. 6. Repita el paso 3 M ms veces para obtener los bits de parada.

El esquema de sobremuestreo, bsicamente, realiza la funcin de una seal de reloj. En lugar de utilizar el flanco ascendente para indicar que la seal de entrada es vlido, se utiliza ticks de muestreo para estimar el punto medio de cada bit. Mientras que el receptor no tiene informacin sobre el tiempo de inicio exacto del bit de inicio, la 1 estimacin puede ser apagado por un mximo de 1/16. Las recuperaciones subsiguientes de los bit de datos estn desactivados de a lo sumo 1/16 desde el punto medio, as. Debido al sobremuestreo, la velocidad de transmisin puede ser slo una pequea fraccin de la tasa de reloj del sistema, y por lo tanto este esquema es no apropiado para una alta velocidad de datos.

Figura 8.2 Diagrama de bloques conceptual de un subsistema de recepcin UART.

El diagrama de bloques conceptual de un subsistema de recepcin UART se muestra en la Figura 8.2. Consiste en los siguientes componentes principales:
Receptor UART: circuito para obtener la palabra de datos a travs de sobremuestreo Generador de velocidad de transmisin: el circuito para generar las ticks de muestreo Circuito de interfaz: el circuito que proporciona una memoria intermedia y el estado

entre el receptor UART y el sistema que utiliza el UART


8.2.2

Generador de velocidad en baudios

El generador de velocidad en baudios genera una seal de muestreo cuya frecuencia es exactamente 16 veces la velocidad de transmisin designado de la UART. Para evitar la creacin de un nuevo dominio de reloj y de violar el principio de diseo sncrono, la seal de muestreo debe permitir funcionar como ticks en lugar de la seal de reloj para el receptor UART, como se explica en la Seccin 4.3.2. Para la velocidad de transmisin 19200 baudios, la tasa de muestreo tiene que ser 307.200 (es

decir, 19,200 * 16) ticks por segundo. Dado que la tasa de reloj del sistema es de 50 MHz, el generador de velocidad en baudios necesita un contador mod-163 , en el que un tick de ciclo de reloj se afirma una vez cada 163 ciclos de reloj. El contador mod-m parametrizada discute en la Seccin 4.3.2 se puede utilizar para este propsito al establecer el parmetro M a 163.
8.2.3

Receptor UART

Con una comprensin del procedimiento de sobremuestreo, podemos derivar la tabla ASMD en consecuencia, como se muestra en la Figura 8.3. Para dar cabida a futuras modificaciones, dos constantes se utilizan en la descripcin. La constante D_BIT indica el nmero de bits de datos, y la constante SB_TICK indica el nmero de pasos necesarios para los bits de parada, que es 16, 24 y 32 de 1, 1.5 y 2 bits de parada, respectivamente. D_BIT y SB_TICK se asignan a los 8 y 16 en este diseo. La tabla sigue los pasos descritos en la Seccin 8.2.1 e incluye tres grandes estados, inicio, datos y parada, que representan el procesamiento del bit de inicio, bits de datos y bit de parada. La seal s_tick es la seal de habilitacin del generador de velocidad de transmisin y hay 16 ticks en un intervalo de bit. Tenga en cuenta que la FSMD permanece en el mismo estado a menos que la seal s_tick se afirma. Hay dos contadores, representados por los registros de s y n. El registro s mantiene un registro del nmero de toma de muestras y los recuentos de ticks a 7 en el estado de inicio, a 15 en el estado de datos, y para SB_TICK en el estado de parada. Los bits recuperados se desplazan dentro y vuelven a montar en el registro b. Una seal de estado, rx_done_tick, est incluido. Esto se afirma para un ciclo de reloj despus de que se ha completado el proceso de recepcin. El cdigo correspondiente se muestra en el Listado 8.1.

8.2.4

Circuito de interfaz

En un sistema grande, un UART es por lo general un circuito perifrico para la transferencia de datos en serie. El principal sistema comprueba su estado de forma peridica para recuperar y procesar la palabra recibida. El circuito de interfaz del receptor tiene dos funciones. En primer lugar, proporciona un mecanismo para indicar la disponibilidad de una nueva palabra y para prevenir la palabra recibida de ser recuperado varias veces. En segundo lugar, puede proporcionar espacio de memoria intermedia entre el receptor y el sistema principal. Hay tres sistemas utilizados comunmente: Una bandera FF Una bandera FF y una sola palabra buffer Un buffer FIFO Tenga en cuenta que el receptor UART afirma la seal de un ciclo de reloj rx_ready _tick despus de recibir una palabra de datos. El primer esquema utiliza una flag FF para realizar un seguimiento si una nueva palabra de datos est disponible. El FF tiene dos seales de entrada. Uno de ellos es Set_Flag, que establece el indicador de FF a 1, y el otro es clr_flag, que borra la flag FF a 0. La seal rx_ready _tick est conectado a la seal Set_Flag y establece la bandera cuando llega una nueva palabra de datos. El principal sistema comprueba la salida de la bandera FF para ver si una nueva palabra de datos est disponible. Afirma el ciclo de reloj de la seal clr_flag despus de recuperar la palabra. El diagrama de bloques top-level se muestra en la Figura 8.4 (a). Para ser

coherente con otros regmenes, la salida de la bandera FF se invierte para generar la seal final rx_empty. Lo que indica que no se dispone de nueva palabra. En este esquema, el sistema principal recupera la palabra de datos directamente desde el registro de desplazamiento del receptor UART y no proporciona ningn espacio de memoria intermedia adicional. Si el sistema remoto inicia una nueva transmisin antes de que el sistema principal consume la palabra de datos antigua (es decir, la bandera FF se mantiene), la antigua palabra ser sobrescrita, un error conocido como invadida de datos. Para proporcionar cierta proteccin, se puede aadir un buffer de una sola palabra, como se muestra en la figura 8.4 (b). Cuando se hace valer la seal rx_ready _tick, la palabra recibida se carga en la memoria intermedia y la bandera FF tambin se establece . El receptor puede continuar la operacin sin destruir el contenido de la ltima palabra recibida. El desbordamiento de datos no se producir siempre y cuando el sistema principal recupera la palabra antes de que llegue una nueva palabra. El cdigo de este sistema se muestra en el listado 8.2.

Figura 8.4 Circuito de interfaz de un subsistema de recepcin UART.

El tercer esquema utiliza un buffer FIFO se discute en la Seccin 4.5 0.3. El buffer FIFO ofrece ms espacio de bfer y reduce an ms el riesgo de desbordamiento de datos. Podemos ajustar el nmero deseado de palabras en FIFO para dar cabida a la necesidad de procesamiento del sistema principal. El diagrama de bloques detallado se muestra en la Figura 8.4 (c). La seal rx_ready_tick est conectado a la wr de la seal FIFO. Cuando se recibe una nueva palabra de datos, la seal WR se afirma un ciclo de reloj y los datos correspondientes se escribe en la FIFO. El principal sistema obtiene los datos del puerto de lectura de FIFO. Despus de recuperar una palabra, se afirma la seal rd signa! de un ciclo de reloj FIFO para quitar el elemento correspondiente. La signa vaco de la FIFO se puede utilizar para indicar si una palabra de datos recibida est disponible. Un error de desbordamiento de

datos se produce cuando llega una nueva palabra de datos y el FIFO es ful!.
8.3

UART TRANSMITE SUBSISTEMA

La organizacin de un subsistema de transmisin UART es similar a la del subsistema de recepcin. lt consiste en un transmisor UART, generador de velocidad de transmisin, y el circuito de interfaz. El circuito de interfaz es similar a la Ofthe subsistema receptor, excepto que el sistema principal establece el indicador de FF o escribe en la memoria intermedia FIFO, y el transmisor UART borra la bandera FF o lee la memoria intermedia FIFO. El transmisor UART es esencialmente un registro de desplazamiento que desplaza a la salida bits de datos a una velocidad especfica. La velocidad puede ser controlada por un ciclo de reloj de ticks de habilitacin generadas por el generador de velocidad en baudios. Debido a que no est involucrado sobremuestreo, la frecuencia de los ticks es 16 veces ms lenta que la del receptor UART. En lugar de la introduccin de un nuevo contador, el transmisor UART generalmente comparte el generador de velocidad en baudios del receptor UART y utiliza un contador interno para realizar un seguimiento del nmero de ticks de habilitacin. A poco que se desplaza cada 16 ticks de habilitacin. El grfico ASMD del transmisor UART es similar a la del receptor UART. Despus de la afirmacin de la seal tx_start, las cargas FSMD la palabra de datos y luego progresa gradualmente a travs de la salida, los datos y detener a los estados para desplazar los bits correspondientes. La seal es la finalizacin afirmando la seal tx_done_tick de un ciclo de reloj. Un 1-bit bfer, tx_reg, se utiliza para filtrar cualquier fallo potencial. El cdigo correspondiente se muestra en el listado 8.3.
8.4

SISTEMA UNIVERSAL UART

8.4.1 Ncleo completo UART Mediante la combinacin de la recepcin y transmisin de subsistemas, podemos construir el ncleo completo UART. El diagrama top-level se muestra en la Figura 8.5. El diagrama de bloques puede ser descrito por la creacin de instancias de componentes, y el cdigo correspondiente se muestra en el Listado 8.4. En el archivo de origen PicoBlaze (discutido en el Captulo 15), Xilinx proporciona un mdulo UART personalizado con una funcionalidad similar. A diferencia de nuestra aplicacin, el mdulo es descrito utilizando Xilinx primitivas de bajo nivel. Esto puede ser considerado como una descripcin a nivel de puertas que utiliza componentes de Xilinx-especficos. Dado que el diseador tiene el conocimiento experto de los dispositivos de Xilinx y se aprovecha de su arquitectura, su implementacin es ms eficaz que la RT-level independiente del dispositivo Descripcin de este captulo. Este instructivo es para comparar la complejidad del cdigo y el tamao del circuito de las dos descripciones. 8.4.2 Configuracin de verificacin UART Circuito de Verificacin Utilizamos un circuito de bucle de retorno y una PC para verificar el funcionamiento de la UART. El diagrama de bloques se muestra en la Figura 8.6. En el circuito, el puerto serie de la placa S3 est conectado al puerto serie de una PC. Cuando enviamos un caracter de la PC, la palabra de datos recibido se almacena en cuatro palabras bfer FIFO del receptor UART. Cuando se recupera (a travs del puerto r_data), la palabra de datos se

incrementa en 1 y se enva de vuelta al transmisor (a travs del puerto w_data). El interruptor de pulsador antirrebote produce un solo tick de un ciclo de reloj cuando se pulsa y se conecta a las seales de wr _uart rd_uart y. Cuando se genera el tick, este elimina una palabra de FIFO del receptor y escribe la palabra incrementado a la FIFO de transmisin lejos del transmisor. Por ejemplo, podemos escribir primero HAL en el PC y las tres palabras de datos se almacenan en la memoria del receptor del UART FIFO. A continuacin, puede pulsar el botn de la placa S3 tres veces. Los tres caracteres sucesivos, IBM, se transmitirn de nuevo y se muestran. El puerto r_data del UART est tambin conectado a los ocho LEDs de la placa S3, y sus seales rx_empty y tx_full estn conectados a las dos barras horizontales de el dgitos ms a la derecha de la pantalla de siete segmentos. El cdigo se muestra en el listado 8.5.

HyperTerminal de Windows de En el lado del PC, el programa HyperTerminal de Windows 'se puede utilizar como un terminal virtual para interactuar con la placa S3. Para ser compatible con nuestro personalizado UART, tiene que estar configurado como 19.200 baudios, 8 bits de datos, 1 bit de parada y sin bit de paridad. El procedimiento bsico es:
1. Seleccione Inicio > Programas > Accesorios > Comunicaciones > HyperTerminal.

Aparecer el cuadro de dilogo HyperTerminal.


2. Escriba un nombre para esta conexin, por ejemplo fpga_192. Haga clic en

Aceptar. Esta conexin se puede guardar y llamar despus. 3. Aparecer un cuadro de dilogo Connect_to. Pulse el campo Utilizando Conexin y seleccione el puerto serie deseado (por ejemplo, COM1). Haga clic en Aceptar. 4. Aparecer el cuadro de dilogo Configuracin de puerto. Configure el puerto de la siguiente manera:
Bits por segundo: 19200 Bits de datos: 8 Paridad: Ninguno Bits de parada: 1 Control de flujo: Ninguno

Haga clic en Aceptar. 5. Seleccione Archivo > Propiedades > Ajuste. Haga clic en Configuracin ASCII y comprobar el eco de los caracteres escritos localmente en la caja. Haga clic en Aceptar dos veces. Esto permitir que los caracteres escritos se muestran en la pantalla. El programa HyperTerminal est configurada y listo para comunicarse con la placa S3. Podemos escribir unas pocas teclas y observe los LED de la placa S3. Tenga en cuenta que las palabras recibidas se almacenan en la memoria intermedia FIFO y slo se muestra la primera palabra de datos recibido. Despus pulsamos el botn, la primera palabra de datos se eliminar de la FIFO y la palabra incrementado ser devuelto de regreso al puerto serie del PC se muestra en la ventana de HyperTermina. El estado de lleno y vaco de las respectivas memorias intermedias FIFO puede ser probada consecutivamente por recibir y transmitir ms de cuatro palabras de datos. Cdigo ASCII En HyperTerminal, los caracteres se envan en cdigo ASCII, que es 7 bits y se compone de 128 palabras de cdigo, incluyendo alfabetos regulares, nmeros, signos de puntuacin y caracteres de control no imprimibles. Los caracteres y sus palabras de cdigo

(en hexadecimal para mat) se muestran en la Tabla 8.1. Los caracteres no imprimibles se indican entre parntesis, como (del). Algunos caracteres no imprimibles pueden introducir medidas especiales cuando se reciben:
(nul): byte nulo, que es el patrn todo ceros (bel): generar un sonido de la campana, si es compatible (bs): Retroceso (ht): Ficha horizontal (nl): nueva lnea (vt): tabulacin vertical (np): nueva pgina (cr): retorno de carro (esc): escapar (sp): espacio (del): eliminar, que es tambin la de todos los de un patrn

Desde que usamos el puerto serie del PC para comunicarse con la placa S3 en muchos experimentos y proyectos, las siguientes observaciones nos ayudan a manipular y procesar el cdigo ASCII:
Cuando el primer dgito hexadecimal en un cdigo de palabra es

o , el carcter correspondiente es un carcter de control. Cuando el primer dgito hexadecimal en un cdigo de palabra es o , el carcter correspondiente es un dgito o puntuacion. Cuando el primer dgito hexadecimal en cdigo de palabra es o , el carcter correspondiente es generalmente una letra mayscula. Cuando el primer dgito hexadecimal en cdigo de palabra es o , el carcter correspondiente es generalmente una letra minscula. Si el primer dgito hexadecimal en cdigo de palabra es , el dgito hexgono inferior representa el correspondiente dgito decimal. Las letras en maysculas y minsculas difieren en un solo bit y se pueden convertir el uno al otro mediante la adicin o sustraccin de o invirtiendo el sexto bit.

Tenga en cuenta que el cdigo ASCII utiliza slo 7 bits, aunque una palabra de datos se compone normalmente de 8 bits (es decir, un byte). El PC utiliza un conjunto extendido en el que el MSB es 1 y los caracteres son smbolos grficos especiales. Este cdigo, sin embargo, no es parte del estndar ASCII.
8.5

Personalizacin de una UART

La UART discutido en las secciones anteriores se personaliza para una configuracin particular. El diseo y el cdigo se pueden modificar fcilmente para dar cabida a otras caractersticas requeridas: Velocidad de transmisin. La velocidad de transmisin es controlada por el muestreo del ticks generador de velocidad en baudios de frecuencia. La frecuencia se puede cambiar mediante la revisin del parmetro M del contador mod-m, que se representa como la constante en el cdigo DVSR. Nmero de bits de datos. El nmero de bits de datos se puede cambiar mediante la

modificacin del lmite del registro n_reg superior, que se especifica como el DBIT constante en el cdigo. Bit de paridad. Un bit de paridad se puede incluir con la introduccin de un nuevo estado entre los datos y el estado detener en la tabla ASMD en la Figura 8.3. Nmero de bits de parada. El nmero de bits de parada se puede cambiar modificando el lmite superior del registro s_reg en el estado de parada de la tabla ASMD. La constante SB_TICK se utiliza para este propsito. Puede ser 16, 24, o 32, que es de 1, 1.5, o 2 bits de parada, respectivamente. Comprobacin de errores. Tres tipos de errores pueden ser detectados en el subsistema de recepcin de UART que son: Error de paridad. Si el bit de paridad est incluido, el receptor puede comprobar la correccin del bit de paridad recibido. Error Frame. El receptor puede comprobar el valor recibido en el estado de parada. Si el valor no es 1, se produce un error de trama. Error de desbordamiento de bfer. Esto sucede cuando el sistema principal no recupera las palabras recibidas en tiempo y forma. El receptor UART puede comprobar el valor de la seal flag_reg del bfer o la seal completa de FIFO cuando la palabra recibida est listo para ser almacenado (es decir, cuando se genera la seal de rx_done_tick). Desbordamiento de datos se produce cuando la seal flag_reg o la seal total sigue firme.
-

8.6

NOTAS BIBLIOGRFICAS

Aunque el estndar RS-232 es muy antigua, an proporciona un enlace de comunicacin de baja velocidad simple y confiable entre los dos dispositivos. El sitio web de Wikipedia tiene un buen artculo de informacin general y algunos enlaces tiles sobre el tema (bsqueda con la palabra clave RS232). Serial Port Complete por Jan Axelson proporciona informacin de la interfaz de los dispositivos de hardware al puerto serie de un PC.
8.7 8.7.1

EXPERIMENTOS DE PROPUESTAS Con todas las funciones UART

La alternativa para personalizar el UART es incluir todas las caractersticas de diseo y para configurar dinmicamente la UART, segn sea necesario. Considerar todas las funciones de UART que utilizan seales de entrada adicionales para especificar la velocidad de transmisin, el tipo de bit de paridad y el nmero de bits de datos y bits de parada. El UART tambin incluye una seal de error. Adems de las seales de I/0 del diseo uart_top en el Listado 8.4, se requieren las siguientes seales: bd_rate: 2 bits de seal de entrada que especifica la velocidad de transmisin, que puede ser 1200, 2400, 4800, o 9600 baudios d_num: 1 bit de seal de entrada que especifica el nmero de bits de datos, que pueden ser 7 o8 sNUM: 1 bit de seal de entrada que especifica el nmero de bits de parada, que puede ser 1 o 2 par: 2 bits de seal de entrada especificando el esquema de paridad deseada, que puede ser sin paridad, paridad par, o paridad impar err: 3-bit de seal de salida en el que los bits indican la existencia del error de paridad, error

de trama, y los datos de error de desbordamiento. Deduzca este circuito de la siguiente manera:
1. Modificar la tabla ASMD en la Figura 8.3 para dar cabida a las extensiones requeridas. 2. Revisar el cdigo del receptor UART de acuerdo a la tabla ASMD. 3. Revisar el cdigo del transmisor UART para dar cabida a las extensiones requeridas. 4. Revisar el cdigo UART de alto nivel y el circuito de verificacin. Utilice los

interruptores de a bordo para las seales de entrada adicionales y tres LEDs para las seales de error. Sintetizar el circuito de verificacin.
5. Creacin de

diferentes configuraciones en funcionamiento HyperTerminal y verificacin del circuito UART. UART con un circuito de deteccin de la velocidad de transmisin automtica

8.7.2

El nmero ms comnmente utilizada de bits de datos de una conexin en serie es ocho, que corresponde a un byte. Cuando un cdigo ASCII normal se utiliza en la comunicacin (como lo escribe en la ventana de HyperTerminal), se utilizan slo siete LSB y el MSB es 0. Si el UART se configura como 8 bits de datos, 1 bit de parada y sin bit de paridad, la palabra recibida est en la forma de 0_dddd_ddd0_1, en la que d es un bit de datos y puede ser 0 o 1. Supongamos que hay tiempo suficiente entre la primera palabra y posteriores transmisiones. Podemos determinar la velocidad de transmisin mediante la medicin del intervalo de tiempo entre el primer 0 y el ltimos 0. En base a esta observacin, podemos deducir un UART con un circuito de deteccin de velocidad de transmisin automtica. En este esquema, el sistema de transmisin enva primero un cdigo ASCII para la deteccin de la frecuencia y a continuacin, reanuda el funcionamiento normal despus. El subsistema receptor utiliza la primera palabra para determinar una tasa de baudios y luego utiliza esta tasa para el generador de velocidad en baudios para la transmisin restante. Supongamos que la configuracin UART es de 8 bits de datos, 1 bit de parada y sin bit de paridad, y la velocidad de transmisin puede ser 4800, 9600 o 19200 baudios. El receptor revisado UART debe tener dos modos de funcionamiento. Es inicialmente en el "modo de deteccin" y espera para la primera palabra. Despus de recibir la palabra y que se determina la velocidad de transmisin, el receptor entra en "modo normal" y la UART opera de manera regular. Deducir la UART de la siguiente manera:
1. Dibuje el grfico ASMD para el circuito detector velocidad de transmisin automtica. 2. Deduzca el cdigo VHDL para el grfico ASMD. Utilice tres LEDs de la placa S3 para

indicar la velocidad de transmisin de la seal entrante.


3. Modifique la UART para incluir tres diferentes velocidades: 4800, 9600 y 19200.

Esto se puede lograr mediante el uso de un registro para el divisor del generador de velocidad en baudios y cargar el valor de acuerdo con la velocidad de transmisin deseada. 4. Crear un top-level FSMD para realizar un seguimiento de modo y para controlar y coordinar el funcionamiento del circuito de deteccin de velocidad de transmisin y el receptor regular de UART. Use un interruptor pulsador de la placa S3 para forzar la UART en el modo de deteccin. 5. Revisar el cdigo UART de alto nivel y el circuito de verificacin. Sintetizar el circuito de verificacin. 6. Creacin de diferentes configuraciones en HyperTerminal y verificar el funcionamiento del UART.

8.7.3

UART con una velocidad de transmisin automtica y el circuito de deteccin de paridad

Adems de la velocidad en baudios, se supone que el esquema de paridad tambin necesita ser determinado de forma automtica, que puede ser sin paridad, paridad par, o paridad impar. Ampliar el circuito de deteccin de la velocidad de transmisin automtica anterior para detectar la configuracin de la paridad y la repeticin Experimental 8.7.2.
8.7.4

UART controlado cronmetro

Considere el mayor cronmetro en el experimento 4.7.6. El funcionamiento del cronmetro est controlado por tres interruptores de la placa S3. Con la UART, podemos utilizar PC de HyperTerminal para enviar comandos y recuperar el tiempo del cronmetro: Cuando recibe una c o C (para "clear") recibe el cdigo ASCII, el cronmetro aborta recuento actual, se pone a cero, y establece el mtodo de recuento de "arriba". Cuando recibe una a g o G (para "go") se recibe el cdigo ASCII, el cronmetro comienza a contar. Cuando se recibe una p o P (de "pausa") el cdigo ASCII es recibido , contando pausas. Cuando una u o U (de "arriba-abajo") se recibe el cdigo ASCII, el cronmetro se invierte el sentido de contar. Cuando una r o R (para "recibir") se recibe el cdigo ASCII, el cronmetro transmite la hora actual en la PC. El tiempo debe mostrarse como DD. D, donde D es un dgito decimal Se omiten todos los dems cdigos.
,

Disear el nuevo cronmetro, sintetizar el circuito, conectarlo a un PC y utilizar HyperTerminal para verificar su funcionamiento.
8.7.5

UART controlado bandera giratoria LED

Considere el circuito de la bandera LED giratoria en el experimento 4.7.5. Con la UART, podemos utilizar HyperTerminal de una PC para controlar su funcionamiento y modificar dinmicamente los dgitos de la bandera: Cuando una g o G (para el "go") se recibe el cdigo ASCII, la bandera LED gira. Cuando se recibe una p o P (de "pausa") se recibe el cdigo ASCII, la bandera LED hace una pausa. Cuando hay una do o D (para la "direccin") se recibe el cdigo ASCII, la bandera LED invierte la direccin de rotacin. Cuando se recibe un cdigo ASCII decimal dgitos (es decir, 0, 1, ..., 9), se modificar la bandera. La bandera puede ser tratada como un bfer FIFO de 10 palabras. La nueva cifra se insertar al principio (es decir, la posicin ms a la izquierda) de la bandera y el dgito ms a la derecha se desplazarn a cabo y se desechen. Sern ignorados todos otros cdigos.

El diseo de la nueva bandera giratoria LED, sintetizar el circuito, conctelo a un PC y utilizar HyperTerminal para verificar su funcionamiento.

You might also like