banner
Hogar / Blog / CLHS IP Core permite que productos de 25 Gbps lleguen rápidamente al mercado
Blog

CLHS IP Core permite que productos de 25 Gbps lleguen rápidamente al mercado

Nov 01, 2023Nov 01, 2023

Las aplicaciones de prueba de choque pueden beneficiarse de la interfaz de fibra óptica de 25 G de Camera Link HS (CLHS). La imagen es capturada por una cámara PCO de Excelitas. | Imagen cortesía de Excelitas PCO GmbH

El núcleo IP de 25 Gbps del protocolo CLHS X es el mismo núcleo IP que se encuentra en todos los productos CLHS de 10 Gbps en el mercado y ha estado disponible en el A3 desde el lanzamiento original de la especificación CLHS en 2012. Este núcleo probado presenta fácil interfaces paralelas para usar para video, disparador bidireccional, comandos de cámara, GPIO bidireccional y el mensaje de revisión CLHS. Al cumplir con todos los requisitos de codificación de prioridad enumerados en la especificación CLHS, el núcleo simplifica el desarrollo de productos CLHS. El módulo PCS asociado realiza codificación 64/66b con corrección de errores directa, lo que garantiza transmisiones sin errores y permite utilizar el núcleo con transceptores FPGA que ofrecen serializadores/deserializadores 64 a 1 simples. No se necesita ninguna otra IP.

La especificación CLHS 1.2 introdujo recientemente la velocidad de 25 Gbps junto con los conectores QSFP28, SFP28 y MPO. La buena noticia es que los motores ópticos de 25 Gbps son compatibles con motores ópticos de 10 Gbps donde se produce el descubrimiento de CLHS. CLHS utiliza un proceso de negociación a prueba de fallos para cambiar a 25 Gbps. Varios desarrolladores ya han desarrollado sistemas de 25 Gbps utilizando hardware probado de 10 Gbps para depurar el producto de 25 Gbps. El comité tiene una prueba de concepto para lograr 50 Gbps utilizando el mismo núcleo IP, lo que garantiza una transición fácil a velocidades futuras.

Este artículo describe los pasos para crear una solución CLHS de 25 Gbps en una FPGA para una cámara que contiene un sensor de imagen monocromático con píxeles de 2048H x 1024V con salida de 12 bits que se ejecuta a 950 fotogramas por segundo. Se desea enviar estos datos de 2,99 GByte/seg al host para su procesamiento; 2,99 GByte/seg están dentro de la capacidad de 3 GByte/s de un único carril CLHS a 25 G. Se elige una solución SFP28.

El núcleo VHDL abierto adquirido en el A3 por 1.000 dólares (Camera Link HS Standard: The High-Speed ​​Interface for the Future of Imaging and Machine Vision (automate.org)) incluye los módulos de cámara y capturador de fotogramas CLHS y el CLHS PCS, lo que constituye un completo sistema como se muestra a continuación.

Fuente de la imagen: Teledyne DALSA

El núcleo no es específico de ningún proveedor y se ha implementado en FPGA AMD (Xilinx), Intel (Altera) y MicroChip (PolarFire). El desarrollador necesita configurar la función del transceptor, la distribución del reloj y la lógica que alimenta/recibe mensajes hacia/desde el núcleo. La siguiente figura muestra los canales de mensajes virtuales del núcleo IP de Pulse (activador), GPIO, Datos de video, Comando y Revisión. La configuración del transceptor y la distribución del reloj son configuradas por los usuarios del núcleo. Todas las reglas de prioridad, codificación y creación de paquetes son manejadas por el núcleo de CLHS. Durante el descubrimiento, el capturador de cuadros lee los registros obligatorios en la cámara y decide iniciar la transferencia a la operación de 25 Gbps, lo que requiere que se reconfiguren los transceptores y se restablezcan los PLL asociados.

Fuente de la imagen: Teledyne DALSA

El núcleo presenta interfaces paralelas fáciles de usar. Como ejemplo, el mensaje de pulso se envía configurando el modo de pulso deseado y los bytes asociados en la interfaz paralela, y luego se aplica un pulso de un reloj al pin de entrada de solicitud de envío. Luego, el mensaje Pulse se transmite a través del enlace, donde el receptor CLHS decodifica el tipo de mensaje y señala la disponibilidad de datos paralelos al sistema del usuario con un pulso PulseMsgValidStrobe de un reloj. Los mensajes GPIO y de revisión utilizan metodologías idénticas. Los paquetes de video y comando pueden tener un tamaño de hasta 8k y 1k bytes respectivamente. El usuario escribe los datos de 64 bits o 32 bits respectivamente en el búfer CLHS con un pulso de habilitación de escritura y cuando termina de escribir los datos del paquete y configura el contenido del byte del encabezado paralelo, emite una solicitud de envío en un reloj en el mensaje. puerto que hace que el núcleo IP envíe el mensaje al enlace. En el receptor, el paquete entrante se decodifica y se almacena correctamente en el búfer de recepción de video o comando y emite un pulso de un reloj, como VidMsgValidStrobe, para indicar que el búfer está listo para ser leído.

Consideremos el mensaje de vídeo como ejemplo para configurar la información del encabezado. CLHS es un paquete remoto de estilo DMA que utiliza RowID y ColumID para definir la ubicación del primer píxel del paquete. El sensor bajo consideración tiene 2k píxeles de ancho y los datos de 12 bits están concatenados, lo que da como resultado 3kbytes para una sola fila de datos. Esto cabe fácilmente en el máximo de 8k bytes. Si la velocidad de datos del sensor fuera más rápida, entonces se podría agregar un segundo carril y enviar datos de filas pares en el carril 0 y datos de filas impares en el carril 1 o elegir enviar el píxel 0 a 1023 en el carril 0 y el píxel 1024 a 2047 en el carril. 1. La elección depende del usuario y de cómo elige llenar los buffers de datos de CLHS. En este ejemplo, solo se necesita un carril y el primer píxel de cada fila es la columna 0. Por convención, la primera fila de un fotograma es la fila 0 y se incrementa para cada fila generada por la cámara. Si el sensor es de lectura superior/inferior, entonces la fila 0 es la primera fila del marco y la fila 1023 es la segunda fila de la cámara, configurando la ID de fila en 0 y luego 1023 como entrada al núcleo CLHS. CLHS es un modelo de envío de datos, por lo que las cámaras no necesitan almacenar datos de imágenes en un buffer. El desarrollador decide admitir capturadores de fotogramas más antiguos con capacidad de 10G y diseños en 2 conexiones de fibra, logrando 2,8 GByte/s de ancho de banda y la capacidad de configurar la cámara para usar un único carril de 25G para una velocidad de fotogramas completa. Las configuraciones que el desarrollador decide admitir en la cámara se enumeran a continuación y se documentan en los registros CLHS obligatorios para que el capturador de fotogramas pueda negociar automáticamente la configuración.

Los valores aplicados al núcleo de Vídeo IP de la cámara CLHS se muestran en la siguiente tabla. El prefijo v pequeño en los nombres de los puertos indica que el reloj utilizado para esta interfaz es un reloj de video proporcionado por el cliente y que todas las señales están sincronizadas con este reloj. El núcleo del capturador de fotogramas tiene señales correspondientes, excepto cuando se necesita la función inversa, como la entrada vRdEn y vVidDataAvailable, vVidMsgValidStrb y vVidDataValid.

CLHS utiliza un núcleo probado que es fácil de usar, opera a 10G, 25G y tiene una hoja de ruta hacia 50G. Los productos se pueden desarrollar en 10G utilizando productos de socios probados y, cuando se depuran, pueden pasar a 25 G. Para los clientes que no necesitan la velocidad de 25 G, pueden usar motores ópticos de 10 G que tienen un menor costo y potencia al conectarse a 10G. capturadores de fotogramas que se prevé que tengan un costo menor que los productos 25G de mayor rendimiento.

Leer más ≫