Diseño y aplicación de circuito de interfaz de comunicación digital de alta velocidad basado en sistema CPCI
Diseño de circuito y aplicación de interfaz de comunicación digital de alta velocidad basada en sistema CPCI.
Diseño de circuito e implementación funcional de interfaz de sistema final de protocolo AFDX de comunicación digital de alta velocidad en entorno de sistema CPCI. La programación Verilog se utiliza para implementar la parte de diseño de hardware basada en FPGA y la programación C se utiliza para implementar el diseño de software integrado basado en MicroBlaze.
0 Introducción
Con el rápido desarrollo de la tecnología de las comunicaciones, los sistemas integrados tienen mayores requisitos de velocidad de transmisión de datos. En equipos electrónicos militares como la aviación, los procesadores de señales digitales que implementan algoritmos de procesamiento de señales desempeñan un papel vital. La tecnología de bus CPCI resuelve eficazmente el problema de la interconexión de alta velocidad.
En la década de 1990, la tecnología de bus PCI se usaba ampliamente, pero su confiabilidad era baja y no podía cumplir con los requisitos de sistemas de alta disponibilidad con altos requisitos de tiempo de actividad. Además, el conector de su placa base tiene poca confiabilidad y se daña fácilmente durante el reemplazo. Las características de gran ancho de banda del CPCI determinan su idoneidad para situaciones de comunicación de datos de alta velocidad. Con la promoción de productos y soluciones basados en CPCI por parte de reconocidas empresas extranjeras de sistemas informáticos y la publicidad de la tecnología CPCI por parte de PICMG/PRC, CPCI se utiliza cada vez más en sistemas integrados de alto rendimiento en el campo de control industrial de mi país. Este artículo estudia el diseño del circuito y la implementación funcional de la interfaz del sistema final del protocolo AFDX de comunicación digital de alta velocidad en el entorno del sistema CPCI. La programación Verilog se utiliza para implementar la parte de diseño de hardware basada en FPGA y la programación C se utiliza para implementar el diseño de software integrado basado en MicroBlaze.
1 Diseño de hardware basado en FPGA
Módulo MAC 1.1, módulo FIFO y módulo MII
El módulo FIFO se divide en FIFO de recepción y FIFO de envío Llamando. el núcleo de IP a lograr. La estructura básica del módulo MAC y del módulo FIFO diseñados en este artículo se muestra en la Figura 1. El núcleo MAC se comunica externamente con el chip PHY a través de la interfaz MII y comunica datos internos en la FPGA a través del FIFO de envío y FIFO de recepción.
1.2 Módulo CRC
El módulo CRC determina la exactitud y validez de los datos recibidos comprobando el valor CRC de los datos. Una vez enviado el paquete de datos, también se envía el CRC 4 B del paquete de datos. El receptor puede derivar el nuevo valor CRC a través del paquete de datos y los datos CRC. Si el nuevo valor CRC es 0, lo que indica que los datos recibidos y enviados son inconsistentes, crc_error se establecerá en 1. La definición de sus pines se muestra en la Tabla 2.
1.3 Módulo de regulación y módulo de gestión de redundancia
El módulo de regulación regula el flujo de datos de cada VL según sus valores BAG y Lmax. El método específico es: cuando se alcanza el tiempo BAG del VL, y la fluctuación está dentro del rango máximo de fluctuación y la longitud de la trama es menor que Lmax, el indicador FTT está configurado para ser válido. En este momento, se aplicará el módulo multiplexor. para la programación del VL; de lo contrario, este VL no se puede programar. Asignar un ancho de banda fijo a cada VL equivale a limitar la transmisión de datos entre el extremo receptor y el extremo emisor a una BAG, es decir, solo hay una transmisión de datos en una BAG. Si el paquete de datos es demasiado grande, divídalo en. Se envían múltiples fotogramas y también se enviarán dentro de sus respectivas BOLSAS. Por lo tanto, para garantizar que se pueda determinar el ancho de banda utilizado en cualquier período de tiempo, se debe asignar razonablemente un período de tiempo a diferentes sistemas terminales. Los diagramas de entrada y salida del regularizador se muestran en la Figura 3.
Como se puede ver en la Figura 3, si la longitud entre dos tramas de datos es mayor que BAG, entonces la recepción es normal; cuando la longitud entre dos tramas de datos es menor que una BAG, la última trama de datos; se moverá a la posición inicial de la segunda BOLSA. En la red AFDX, dos tramas mutuamente redundantes se entregan al mismo sistema de destino a través de diferentes conmutadores de red AFDX. Siempre que el tráfico de entrada del puerto de salida del conmutador sea mayor que el tráfico de salida, inevitablemente se producirá un retraso en la conmutación. Debido a que los retardos de conmutación de diferentes conmutadores no son valores determinados, el intervalo de tiempo entre dos tramas mutuamente redundantes que llegan al destino también es incierto.
Al diseñar, SkewMax (desviación máxima) se utiliza en la gestión de redundancia de recepción de AFDX para limitar el tiempo de recepción de tramas redundantes. La función del módulo de gestión de redundancia es verificar la validez de las tramas recibidas y eliminar tramas válidas duplicadas. El diagrama de bloques del módulo de gestión redundante se muestra en la Figura 4.
1.4 Módulo de envío y recepción
El proceso básico de envío de datos es el siguiente: al enviar datos, los datos a enviar se transfieren al búfer de envío del MAC, y el los datos recibidos en el búfer de envío alcanzan el valor establecido, el módulo de envío de datos inicia el cronometraje del intervalo de trama y envía el delimitador de inicio de trama, el cálculo de la suma de verificación CRC y, al mismo tiempo, divide los datos; en nibbles (4 b) Enviado a la interfaz MII durante el proceso de envío, si el MAC detecta que la longitud de la trama es menor que la longitud mínima de la trama (64 B), se realiza un relleno de datos hasta 64 B.
La máquina de estado de la parte de envío de AFDX se muestra en la Figura 6. Los datos de envío incluyen principalmente espera, detección de longitud de datos, inserción de preámbulo y delimitador de inicio de trama, envío de datos y estado del resultado de verificación CRC. Cuando el sistema está funcionando, siempre está en estado de espera. Cuando es necesario enviar datos, la máquina de estado ingresará al siguiente estado y comenzará a enviar datos.
La recepción es el proceso inverso al envío. Primero, la detección de trama se realiza en la información de 4 bits recibida. Cuando se detectan el preámbulo y el delimitador de inicio de trama, se considera que se ha recibido una trama de datos. y luego comience a analizar el marco de datos y obtenga diversa información de datos en los datos del marco.
El proceso de recepción de AFDX es el siguiente: los datos son decodificados por el chip PHY y luego ingresan al núcleo MAC y luego ingresan al FIFO de recepción. Cuando el MAC recibe datos válidos, lee los datos de la interfaz MII y detecta el preámbulo y el delimitador de inicio de trama. Cuando se detecta un delimitador de inicio de trama válido, comienza a contar la longitud de la trama. En el proceso de recibir datos, el módulo receptor elimina el dominio de preámbulo, el dominio SFD, el dominio CRC y el dominio PAD de la trama recibida.
2 Diseño de software basado en MicroBlaze
2.1 Descripción del diseño
En MicroBlaze, el envío y recepción de datos de la capa UDP y la capa IP en la pila de protocolos AFDX La parte se completará principalmente para encapsular, analizar y controlar datos. La parte de envío completa principalmente las siguientes tareas: cuando los datos de una trama ingresan al puerto AFDX, la parte de envío comienza a encapsular los datos de la trama. La capa UDP agregará un encabezado UDP a los datos, incluidos los números de puerto UDP de origen y destino. La capa IP agrega el encabezado IP y el encabezado Ethernet a los datos procesados por la capa UDP, y luego los envía a la capa de enlace virtual y agrega un número de secuencia. La parte receptora completa principalmente las siguientes tareas: cuando una señal de trama se envía al MAC a través de la decodificación PHY y se envía al módulo receptor AFDX a través del FIFO receptor, comienza el proceso de recepción. En la capa de enlace, la señal de la trama primero se inspecciona para verificar su integridad y administración redundante, y luego ingresa a la capa IP para la inspección de la suma de verificación IP y luego se envía a la capa UDP, donde los datos de la trama correspondiente se envían después de pasar por el demultiplexor. Implementar la función de decapsulación de datos.
2.2 Proceso de diseño
El diseño del sistema basado en MicroBlaze requiere una compilación colaborativa del hardware y software del sistema. Después de completar el diseño del software de MicroBlaze, llame a MicroBlaze como un submódulo del proyecto ISE. Para verificar la corrección del programa, use ISE para llamar a ModelSim para simularlo. El método específico consiste en agregar un núcleo IP basado en el procesador MicroBlaze al proyecto ISE y escribir archivos de prueba para proporcionar incentivos para las señales de entrada del procesador y puertos para las señales de salida.
3 Pruebas y Verificación
El significado de simulación de los dos núcleos MAC es el mismo, por lo que se explica la forma de onda de simulación del primer núcleo MAC. mii_tx_en_0 es la señal de habilitación de trama Cuando el núcleo MAC funciona normalmente, la señal es 1 cuando se envían datos; cuando se envía 0, la señal habilitada es 0 y mii_txd_0 son los datos enviados.
Cuando una señal recibida ingresa al núcleo MAC, mii_rx_dv_0 es de nivel alto y los datos correspondientes son los datos recibidos; cuando ocurre un error en los datos recibidos, mii_rx_er_0 aparecerá en un nivel alto. Si no hay ningún error en los datos recibidos, entonces esto. la señal es de bajo nivel.
En el extremo receptor, se juzga si el resultado del cálculo CRC de los datos recibidos es 0. Si es 1, indica que hay un error de verificación CRC durante el proceso de recepción. Los resultados de la simulación del módulo de verificación CRC se muestran en la Figura 11. Como se puede ver en la Figura 11, el valor de verificación CRC (d19167bc) de los datos recibidos y los datos enviados se calculan juntos. El valor de verificación calculado es 0, lo que demuestra que no hay ningún problema con los datos recibidos.
Los datos de simulación del módulo normal se muestran en la Figura 12. Los bits de datos 1, 2, 3, 4,? recibidos aquí están espaciados de manera desigual. Los datos de salida 1, 2, 3, 4 después de la normalización están espaciados por igual. Los datos de salida iniciales de este módulo son incorrectos. El primer cuadro se generará repetidamente y los datos correctos se generarán más tarde.
Cuando el host quiere enviar datos, primero los envía al búfer de envío del MAC. Cuando los datos recibidos por el búfer de envío coinciden con el valor establecido, comienza la detección de longitud. Una vez completada la detección, el módulo de envío de datos inicia el cronometraje del intervalo de fotogramas. Según el valor del contador de tramas, se envían el preámbulo de la trama y el delimitador de inicio de trama, los datos de 4 bits se envían a la interfaz MII y, finalmente, los datos se envían desde la capa física al medio de red. Los resultados de la simulación del módulo de envío se muestran en la Figura 13.
Cuando la señal i_start_or_not de la forma de onda de simulación aquí es de alto nivel, el módulo de envío AFDX comienza a funcionar, i_data son los datos que deben enviarse, i_data_number es la cantidad de datos que deben enviarse, i_aim_address es la dirección de destino de la señal enviada, i_orig_address es la dirección de origen de la transmisión, i_head_ip es el encabezado IP de la señal de transmisión e i_head_udp es la señal de transmisión. Cuando comienza el envío, el sistema primero detecta la longitud de los datos a enviar. Si la longitud de los datos es mayor que 64, comienza a enviar. Si la longitud de los datos es menor que 64, se completa hasta llegar a 64. A través del módulo de envío AFDX, se obtienen los datos de la trama enviada o_AFDX_data y la señal de habilitación de trama o_afdx_frame correspondiente a la señal de la trama, y se completa el envío normal de datos.
Los resultados de la simulación del módulo receptor se muestran en la Figura 14. Cuando los datos externos ingresan al núcleo MAC después de ser decodificados por el PHY, el extremo receptor comienza a ingresar a la máquina de estado de recepción y primero detecta el preámbulo y el delimitador de inicio de trama. Si la detección es correcta, el sistema pasa al siguiente estado. Se puede ver en los resultados de la simulación en la Figura 14 que cuando se detectan el preámbulo y el delimitador de inicio de trama, current_state entrará en el siguiente estado. Luego comience a recibir datos, o_data son los datos recibidos. 4 Conclusión
Basado en un estudio en profundidad del protocolo Ethernet full-duplex de aviación (AFDX), este artículo presenta una placa de interfaz AFDX en una plataforma de procesamiento de señales general, que está acoplada en el correspondiente El XMC La tarjeta portadora se utiliza en el sistema CPCI. La velocidad de transmisión XMC de esta placa es de 3.125 Gb/s, que puede transmitir datos del protocolo RapidIO a alta velocidad y es compatible con la interfaz PCI de 32 b y el protocolo de puerto LINK. Dado que esta placa admite placas posteriores con múltiples modos de interfaz, proporciona una plataforma para la interconexión entre varias placas de alta velocidad.
Basado en la placa de interfaz AFDX, se diseña un método para implementar la función de interfaz del sistema final AFDX utilizando FPGA. Este método se basa en el diseño de hardware FPGA y el diseño de software integrado basado en MicroBlaze, y se implementa utilizando FPGA. y chips PHY La interfaz AFDX en el lado del sistema final completa la transmisión de datos del protocolo de cuatro capas de la capa de transporte (UDP), la capa de red (IP), la capa de enlace (Virtual Link) y la capa física (PHY), formando la interfaz. capaz de transmitir datos AFDX de forma fiable y en tiempo real. Debido a que el protocolo de red es relativamente complejo, el desarrollo y el diseño son difíciles. El diseño de este artículo básicamente implementa las funciones de envío y recepción de la interfaz del sistema final AFDX y básicamente logra los objetivos esperados.
Como parte importante del protocolo de red AFDX, el sistema final AFDX proporciona una interfaz de servicio de intercambio de datos segura y confiable para sistemas de aviónica y se utilizará más ampliamente en el futuro. ;