Comunicación serial USB FPGA (1)

Tabla de contenido

1. El principio del puerto serie Uart

1. Introducción al protocolo de comunicación en serie

2. La capa física y la capa de protocolo del puerto serie.

2.1 Capa física

2.2 Capa de protocolo

2. Plataforma experimental

3. Requisitos experimentales

 


 


1. El principio del puerto serie Uart

1. Introducción al protocolo de comunicación en serie

La interfaz en serie se abrevia como puerto en serie, también llamada interfaz de comunicación en serie o interfaz de comunicación en serie (generalmente conocida como interfaz COM), que es una interfaz extendida que utiliza comunicación en serie. La interfaz serial se refiere a la transmisión secuencial de datos bit a bit. Su característica es que la línea de comunicación es simple, siempre que un par de líneas de transmisión puedan lograr una comunicación bidireccional (la línea telefónica se puede usar directamente como línea de transmisión), lo que reduce en gran medida el costo y es especialmente adecuado para comunicaciones de larga distancia, pero la velocidad de transmisión es lenta.

La interfaz serie se puede dividir en interfaz serie síncrona (inglés: SynchronousSerialInterface, SSI) y serie asíncrona (UART, transmisor receptor asíncrono universal) desde el modo de transmisión. La interfaz serial síncrona es una interfaz de comunicación industrial de uso común. UART es un chip cuya entrada en paralelo se convierte en salida en serie, generalmente integrado en la placa base. UART incluye un puerto serie de nivel TTL y un puerto serie de nivel RS232. El nivel TTL es 3.3V, mientras que RS232 es un nivel lógico negativo, define + 5 ~ + 12V como nivel bajo y -12 ~ -5V como nivel alto. Este experimento utiliza una interfaz en serie de USB a TTL.

La interfaz serial incluye RS-232-C, RS-422, RS485, etc. de acuerdo con estándares y protocolos eléctricos. Los estándares RS-232-C, RS-422 y RS-485 solo especifican las características eléctricas de la interfaz y no involucran conectores, cables o protocolos.

En informática, la mayoría de los problemas complejos se pueden simplificar mediante capas. Por ejemplo, el chip se divide en la capa del núcleo y los periféricos integrados en el chip; la biblioteca estándar STM32 es la capa de software entre los registros y el código de usuario. En cuanto al protocolo de comunicación, también lo entendemos por capas, lo más básico es dividirlo en una capa física y una capa de protocolo. La capa física estipula que el sistema de comunicación tiene las características de funciones mecánicas y electrónicas para asegurar la transmisión de los datos originales en los medios físicos. La capa de protocolo estipula principalmente la lógica de comunicación y unifica los estándares de empaquetado y desempaquetado de datos de las partes emisora ​​y receptora. En pocas palabras, la capa física estipula que nos comunicamos con nuestra boca o el cuerpo, mientras que la capa de protocolo estipula que nos comunicamos en chino o inglés.

2. La capa física y la capa de protocolo del puerto serie.

2.1 Capa física

Existen muchos estándares y variantes de la capa física de comunicación serial, principalmente explicamos el protocolo de comunicación USB a serial. El nivel de señal del puerto USB se puede convertir a nivel TTL utilizando el chip USB a TTL CH340g. Para otros controladores, usamos el controlador como FPGA. Su diagrama de bloques es el siguiente:


                                                       Figura 1: Diagrama de estructura de USB a serie

El estándar de nivel 5VTTL es: Logic 1 es 2.4V-5V y Logic 0 es 0V-0.5V.


                                                     Figura 2: Circuito de puerto serie USB a UART

La imagen muestra el circuito del puerto serie USB a UART, que está conectado a las interfaces D + y D- de CH340 a través de las dos líneas de datos D + y D- de USB, y convierte los datos en señales de nivel TTL a través de las dos líneas de señal TXD y RXD de CH340 Envía y recibe datos con FPGA.

2.2 Capa de protocolo

El paquete de datos de comunicación en serie es transmitido por el dispositivo emisor a la interfaz RXD del dispositivo receptor a través de su propia interfaz TXD. En la capa de protocolo de comunicación en serie, se especifica el contenido del paquete de datos. Se compone de bit de inicio, datos del cuerpo, bit de verificación y bit de parada. El formato del paquete de datos de ambas partes debe acordarse para poder enviar y recibir datos normalmente. La composición se muestra a continuación Imagen:

2.2.1. Velocidad en baudios

Este capítulo explica principalmente la comunicación asíncrona en serie. En la comunicación asíncrona, no hay señal de reloj. Por lo tanto, los dos dispositivos de comunicación deben acordar la velocidad en baudios, es decir, la longitud de cada símbolo, para decodificar la señal, como se muestra en la Figura 206. Cada cuadrícula separada por la línea de puntos representa un símbolo. Las velocidades de transmisión comunes son 4800, 9600, 115200, etc.

2.2.2. Iniciar y detener las señales de comunicación

Un paquete de datos de comunicación en serie comienza desde la señal de inicio hasta el final de la señal de parada. La señal de inicio del paquete de datos está representada por un bit de datos de 0 lógico, y la señal de parada del paquete de datos puede representarse por 0.5, 1, 1.5 o 2 bits de datos de 1 lógico, siempre que las dos partes estén de acuerdo.

2.2.3. Datos válidos

Inmediatamente después del bit de inicio del paquete de datos se encuentra el contenido de los datos principales a transmitir, también conocidos como datos válidos. La longitud de los datos válidos a menudo se acuerda en 5, 6, 7 u 8 bits.

2.2.4. Verificación de datos

Después de los datos válidos, hay un bit de verificación de datos opcional. Debido a que la comunicación de datos es relativamente más susceptible a la interferencia externa, lo que da como resultado desviaciones en los datos de transmisión, puede agregar bits de verificación durante el proceso de transmisión para resolver este problema. Los métodos de verificación incluyen impar, par, espacio, marca y no paridad. Se presentan de la siguiente manera:

  • La paridad impar requiere un número impar de datos válidos y "1" en el bit de paridad. Por ejemplo, un dato válido de 8 bits es 01101001. En este momento, hay un total de 4 "1". Para lograr el efecto de paridad impar, marque El bit de verificación es "1", y los últimos datos transmitidos serán 8 bits de datos válidos más 1 bit de bit de verificación para un total de 9 bits.
  • Los requisitos de paridad par e impar son todo lo contrario. El número de "1" en los datos de la trama y el bit de paridad debe ser un número par, como la trama de datos: 11001010, en este momento la cantidad de "1" en la trama de datos es 4, por lo que incluso El dígito de control es "0".
  • 0 verificación significa que no importa cuál sea el contenido de los datos válidos, el bit de verificación siempre es "0", y 1 verificación significa que el bit de verificación siempre es "1".
  • En el caso de no verificación, no se incluye ningún bit de verificación en el paquete de datos.

2. Plataforma experimental

Después de comprender el principio básico y el protocolo de transmisión de la comunicación serial, la función de comunicación se realiza a través del puerto serial USB de la PC y FPGA. La siguiente figura muestra el ejemplo de conexión del circuito USB a TTL y Cyclone IV E FPGA:


                                               Figura 3: Ejemplo de conexión de circuito de USB a TTL y FPGA Cyclone IV E

La siguiente tabla es la tabla de asignación de pines FPGA y UART:

Tabla 1: Tabla de asignación de pines UART
           Nombre siginal                        Pin FPGA
        UART_RX                     PIN_B5
        UART_TX                     PIN_A6

3. Requisitos experimentales

Se utiliza la placa de desarrollo AC620 de Xiaomei. Los tres botones S0, S1, S2 están en estado inactivo cuando se presiona S0, y la comunicación en serie no se realiza en este estado; cuando se presiona S1, está en el estado 1: la PC envía datos a FPGA, Los datos se envían por el puerto serie de la PC, la FPGA recibe 8 bits de datos, seleccione si los 8 LED en la posición correspondiente son brillantes u oscuros; S2 está en el estado 2: FPGA envía datos a la PC, FPGA envía datos 8'hff cíclicamente, puerto serie de la PC recibir.

Consejo: Como solo hay 4 LED en la placa de desarrollo de LED0 ~ LED3, se necesitan 8 de ellos en este diseño. Por lo tanto, los indicadores de señal conectados a las dos interfaces TXD y RXD de comunicación RS232 y CAN se utilizan como los LED que necesitamos.


                                                                 Figura 4: Diagrama de ubicación de LED utilizado en la placa

 

Supongo que te gusta

Origin blog.csdn.net/qq_33231534/article/details/105364361
Recomendado
Clasificación