Almacene entradas UART consecutivas para registrarse

1

He implementado un receptor / transmisor UART (8 bits) en VHDL para usar en un FPGA Digilent Nexys 3. Hasta ahora he logrado leer las entradas en un FIFO, procesar cada byte individualmente y escribir el byte por byte en otro FIFO para su transmisión.

Lo que idealmente me gustaría hacer es leer las entradas consecutivas del módulo UART en un registro std_logic_vector en lugar de un FIFO. El número de entradas con las que estoy trabajando es siempre constante, p. 4 entradas x 8 bits cada una = 32 bits. Iría algo como esto:

inputs in hex (not ascii - sent with e.g. RealTerm): 01 02 03 04
my_reg std_logic_vector(31 downto 0): X"01020304"

He considerado leer los valores del FIFO de entrada en un registro una vez que el FIFO está completo, pero eso desperdiciaría recursos en mi tablero para el FIFO. ¿Hay alguna forma de hacerlo sobre la marcha, ya que entran los valores de entrada de UART?

    
pregunta koukouviou

1 respuesta

2

Para hacer esto correctamente, necesita implementar algún tipo de protocolo de entramado con una máquina de estado. Recomiendo preparar un formato de paquete básico que al menos tenga algún tipo de identificador de número mágico en el encabezado que la máquina de estado puede buscar. Esto se usa para descartar cualquier byte adicional que pueda recibirse debido al ruido de la línea, etc. registrarse.

    
respondido por el alex.forencich

Lea otras preguntas en las etiquetas