Mar 10, 2023
CLHS IP Core permet aux produits 25 Gbps d'atteindre rapidement le marché
Les applications de crash test peuvent bénéficier de l'interface fibre optique 25 G de
Les applications de crash test peuvent bénéficier de l'interface fibre optique 25 G de Camera Link HS (CLHS). L'image est capturée par une caméra Excelitas PCO. | Image reproduite avec l'aimable autorisation d'Excelitas PCO GmbH
Le protocole CLHS X 25 Gbps IP Core est le même noyau IP que l'on trouve dans tous les produits CLHS 10 Gbps sur le marché et est disponible auprès de l'A3 depuis la publication originale de la spécification CLHS en 2012. Ce noyau éprouvé présente des utiliser des interfaces parallèles pour la vidéo, le déclencheur bidirectionnel, les commandes de caméra, le GPIO bidirectionnel et le message de révision CLHS. Exécutant toutes les exigences de codage prioritaires répertoriées dans la spécification CLHS, le noyau simplifie le développement des produits CLHS. Le module PCS associé effectue un codage 64/66b avec correction d'erreur directe garantissant des transmissions sans erreur et permettant au cœur d'être utilisé avec des émetteurs-récepteurs FPGA qui offrent des sérialiseurs/désérialiseurs 64 à 1 simples. Aucune autre IP n'est nécessaire.
La spécification CLHS 1.2 a récemment introduit la vitesse de 25 Gbit/s avec les connecteurs QSFP28, SFP28 et MPO. La bonne nouvelle est que les moteurs optiques 25 Gbps sont rétrocompatibles avec les moteurs optiques 10 Gbps où la découverte CLHS se produit. CLHS utilise un processus de négociation à sécurité intégrée pour passer à 25 Gbit/s. Plusieurs développeurs ont déjà développé des systèmes 25 Gbps en utilisant du matériel 10 Gbps éprouvé pour déboguer le produit 25 Gbps. Le comité a une preuve de concept pour atteindre 50 Gbps en utilisant le même cœur IP, assurant une transition facile vers les vitesses futures.
Cet article décrit les étapes pour créer une solution CLHS 25 Gbps dans un FPGA pour une caméra contenant un capteur d'image monochrome ayant des pixels 2048H x 1024V avec une sortie 12 bits fonctionnant à 950 images par seconde. Il est souhaitable d'envoyer ces données de 2,99 Go/s à l'hôte pour traitement ; 2,99 Go/s est dans la capacité de 3 Go/s d'une seule voie CLHS à 25 G. Une solution SFP28 est choisie.
Le noyau VHDL ouvert acheté auprès de l'A3 pour 1000 $ (Camera Link HS Standard: The High-Speed Interface for the Future of Imaging and Machine Vision (automate.org)) comprend les modules de caméra et d'acquisition d'image CLHS et le PCS CLHS faisant un système comme indiqué ci-dessous.
Source de l'image : Teledyne DALSA
Le cœur n'est spécifique à aucun fournisseur et a été implémenté sur les FPGA AMD (Xilinx), Intel (Altera) et MicroChip (PolarFire). Le développeur doit configurer la fonction d'émetteur-récepteur, la distribution de l'horloge et la logique qui alimente/reçoit les messages vers/depuis le noyau. La figure ci-dessous montre les canaux de messages virtuels du cœur IP : Pulse (déclencheur), GPIO, Données vidéo, Commande et Révision. La configuration de l'émetteur-récepteur et la distribution de l'horloge sont configurées par les utilisateurs du noyau. Toutes les règles de construction, d'encodage et de priorité des paquets sont gérées par le noyau CLHS. Lors de la découverte, la carte d'acquisition lit les registres obligatoires de la caméra et décide d'initier le transfert vers un fonctionnement à 25 Gbit/s, ce qui nécessite la reconfiguration des émetteurs-récepteurs et la réinitialisation de toutes les PLL associées.
Source de l'image : Teledyne DALSA
Le noyau présente des interfaces parallèles faciles à utiliser. Par exemple, le message d'impulsion est envoyé en définissant le mode d'impulsion souhaité et les octets associés dans l'interface parallèle, puis une impulsion d'une largeur d'horloge est appliquée à la broche d'entrée de demande d'envoi. Le message Pulse est ensuite transmis sur la liaison, où le récepteur CLHS décode le type de message et signale la disponibilité des données parallèles au système de l'utilisateur avec une impulsion PulseMsgValidStrobe d'une horloge. Les messages GPIO et de révision utilisent des méthodologies identiques. Les paquets vidéo et de commande peuvent atteindre respectivement 8 000 et 1 000 octets. L'utilisateur écrit les données 64 bits ou 32 bits respectivement dans la mémoire tampon CLHS avec une impulsion d'activation d'écriture et une fois l'écriture des données de paquet terminée et la définition du contenu d'octet d'en-tête parallèle, émet une demande d'envoi d'une horloge sur le message port qui amène le cœur IP à envoyer le message sur le lien. Au niveau du récepteur, le paquet entrant est décodé et correctement stocké dans le tampon de réception vidéo ou de commande et émet une impulsion d'une horloge, telle que VidMsgValidStrobe, pour signaler que le tampon est prêt à être lu.
Considérons le message vidéo comme exemple pour définir les informations d'en-tête. CLHS est un paquet de style DMA distant utilisant RowID et ColumID pour définir l'emplacement du pixel du premier pixel du paquet. Le capteur considéré a une largeur de 2 000 pixels et les données 12 bits sont concaténées, ce qui donne 3 ko pour une seule ligne de données. Cela tient facilement dans le maximum de 8k octets. Si le débit de données du capteur était plus rapide, on pourrait ajouter une deuxième voie et envoyer des données de ligne paires sur la voie 0 et des données de ligne impaires sur la voie 1 ou choisir d'envoyer les pixels 0 à 1023 sur la voie 0 et les pixels 1024 à 2047 sur la voie 1. Le choix appartient à l'utilisateur et à la façon dont l'utilisateur choisit de remplir les tampons de données CLHS. Avec cet exemple, une seule voie est nécessaire et le premier pixel de chaque ligne est la colonne 0. Par convention, la première ligne d'une image est la ligne 0 et est incrémentée pour chaque sortie de ligne de la caméra. Si le capteur est en lecture haut/bas, la ligne 0 est la première ligne du cadre et la ligne 1023 est la deuxième ligne de la caméra, en définissant l'ID de ligne sur 0 puis 1023 comme entrée du noyau CLHS. CLHS est un modèle de transfert de données, de sorte que les caméras n'ont pas besoin de mettre en mémoire tampon les données d'image. Le développeur décide de prendre en charge les anciennes cartes d'acquisition d'images avec une capacité 10G et des conceptions en 2 connexions fibre, atteignant 2,8 Go/s de bande passante et la possibilité de configurer la caméra pour utiliser une seule voie 25 G pour une fréquence d'images complète. Les configurations que le développeur décide de prendre en charge dans la caméra sont répertoriées ci-dessous et documentées dans les registres CLHS obligatoires afin que la carte d'acquisition puisse négocier automatiquement la configuration.
Les valeurs appliquées au cœur IP vidéo de la caméra CLHS sont indiquées dans le tableau ci-dessous. Le petit préfixe v dans les noms de port indique que l'horloge utilisée pour cette interface est une horloge vidéo fournie par le client et que tous les signaux sont synchrones avec cette horloge. Le noyau de la carte d'acquisition d'images a des signaux correspondants, sauf lorsque la fonction inverse est nécessaire, comme l'entrée vRdEn et vVidDataAvailable, vVidMsgValidStrb et vVidDataValid.
CLHS utilise un noyau éprouvé qui est facile à utiliser, fonctionne à 10G, 25G et a une feuille de route vers 50G. Les produits peuvent être développés à 10G à l'aide de produits partenaires éprouvés et, une fois débogués, ils peuvent passer à 25G. Pour les clients qui n'ont pas besoin de la vitesse de 25G, ils peuvent utiliser des moteurs optiques 10G qui coûtent moins cher et se connectent à 10G. cartes d'acquisition d'images qui devraient être moins coûteuses que les produits 25G plus performants.
En savoir plus ≫