Réseaux embarqués A P P L I C A T I O N Les SoC FPGA s’adaptent aux technologies Ethernet spécifiques au smart grid Cet article présente l’implémentation des protocoles HSR et IEEE 1588 PTP sur une puce SoC basée sur un FPGA Cyclone V d'Altera fonctionnant sous Linux. Cette puce intègre une matrice FPGA associée à un cœur de processeur ARM. Une solution qui convient aussi bien pour l’élaboration de nouvelles conceptions que pour la modernisation de composants existants utilisés dans le cadre de solutions de gestion intelligente des réseaux de distribution d’électricité. AUTEUR Jouni Kujala, responsable R&D chez Flexibilis (Finlande). U n smart grid est la version moderne d'un réseau électrique classique, mais dotée d’une « intelligence » via l’utilisation de technologies spécifiques pour collecter de l'information, la communiquer et in fine contrôler le réseau. Les smart grids se distinguent des approches traditionnelles par une amélioration notable au niveau de l’efficacité et de la fiabilité. Ils permettent la production décentralisée d'énergie, facilitant ainsi la connexion au réseau de sources d'énergies renouvelables d'origines diverses comme l'énergie solaire ou l'énergie éolienne. Parmi les nouvelles technologies déployées dans les smart grids, on trouve notamment le mécanisme de redondance HSR (High-availability Seamless Redundancy, voir encadré I) et le protocole de synchronisation IEEE 1588 PTP (Precision Time Protocol, voir encadré II) qui sont utilisés dans les sous-stations pour les communications internes et la syn- chronisation temporelle des mesures électriques. Pour implanter de manière concrète ces protocoles, il est aujourd’hui possible de faire appel à un FPGA. Le montage proposé ici est constitué de deux cartes, dont la plus grande est une carte de développement pour le Cyclone V SX d'Altera alors que le plus petite est un module SFP-HSMC de Terasic, qui se branche sur le connecteur HSMC de la carte SoC (voir photo ci-dessous). Ce module dispose aussi d’emplacements SFP (Small Form-factor Pluggable, émetteur-récepteur compact, insérable à chaud utilisé dans les réseaux) pour la connectivité Ethernet, soit à de la fibre optique, soit à de la technologie classique sur cuivre, selon le type de module SFP choisi. Les deux cartes sont disponibles à la commercialisation. Le cœur de cette réalisation (voir figure page 43) est le commutateur HSR qui effectue l'envoi des trames HSR/Ethernet d'un port vers un autre. Cette mise en œuvre possède quatre ports, dont l’un est connecté au processeur matériel ARM pour lui permettre d'envoyer et de recevoir les trames Ethernet. Les autres ports consistent en des ports HSR/Ethernet connectés aux modules SFP et aux autres composants via des blocs adaptateurs (GMII-to-1000BASE-X ou (G)MII-to-SGMII). Trois ports externes suffisent en fait pour implémenter des RedBox, autrement dit des « boîtiers de redondance » (redundancy boxes) dédiés. Toutefois, il est utile de disposer d'un port supplémentaire dans les nœuds terminaux, par exemple un port de maintenance pour réaliser une fonctionnalité de RedBox-in-EndNode, éliminant ainsi la nécessité des RedBox dédiées (voir figure de l'encardé I). Les blocs adaptateurs traduisent l'interface native MII/GMII du commutateur HSR aussi bien vers du 1000Base-X que du SGMII. La technologie 1000BASE-X est utilisée quand un module gigabit de fibre L’ensemble constitué d’une carte de développement pour SoC FPGA d’Altera et d’une carte SFP de Terasic permet l’implémentation des protocoles HSR et IEEE 1558. ● L’EMBARQUÉ / N°6 / 2014 / 41 A P P L I C A T I O N Réseaux embarqués I.- QU’EST-CE QUE L’HSR… n HSR est un protocole destiné à fournir de l'Ethernet redondant. Comme pour le protocole de communication RSTP (Real Time Streaming Protocol, ou protocole de streaming temps réel), la redondance provient de liens supplémentaires dans le réseau. Cependant, contrairement à RSTP, HSR fonctionne sans neutraliser ces liens supplémentaires. En fait, un réseau HSR utilise tous les liens, tout le temps, et les nœuds font des copies des trames pour utiliser simultanément tous les chemins du réseau. Alors que RSTP désactive certains liens pour obtenir un réseau sans boucle, HSR sait gérer les boucles. n Dans HSR, un en-tête spécifique est ajouté aux trames Ethernet (voir figure ci-contre). Cet en-tête HSR comprend un numéro de séquence qui, en combinaison avec l'adresse MAC source, est capable de reconnaître des copies de la même trame. Les nœuds du réseau HSR détectent et mémorisent les trames qu'ils ont reçues et transférées précédemment, pour être capable d'enlever les copies redondantes des trames sur le réseau. Ce procédé est impératif pour éviter que les trames bouclent indéfiniment et consomment ainsi toute la capacité réseau disponible. n Comme les liens du réseau ne sont pas désactivés par le protocole de redondance, ils ne nécessitent aucun délai de récupération dans le cas d'une faute. Résultat : HSR est un choix privilégié pour des applications qui n’acceptent aucune coupure pendant la communication ; cela inclut la distribution d’électricité, l'avionique ou certaines applications militaires. TOPOLOGIE D’UN RÉSEAU HSR n La topologie typique d'un réseau HSR est un anneau ou plusieurs anneaux interconnectés, mais HSR ne se limite pas à ces topologies. Au contraire, HSR est capable de supporter n'importe quelle topologie. Cependant, de très gros réseaux HSR (à plusieurs milliers de nœuds) ne sont pas très intéressants en pratique car tout le trafic doit transiter par chaque nœud du réseau ; à moins d'en réduire la taille via, par exemple, des LAN virtuels. Un réseau HSR typique est présenté sur la figure. Les RedBox (boîtiers de redondance – redundancy boxes) connectent au réseau HSR les nœuds et segments ne comprenant pas l'HSR. Des QuadBox (équipement à quatre ports) interconnectent les anneaux HSR. Les nœuds terminaux (appelés également DANH) sont les nœuds de communication appartenant à celui pour lequel le réseau a été construit. HSR supporte nativement la connexion à des réseaux PRP en utilisant ce qu'on appelle des RedBox HSR-PRP. SFP sur cuivre sont conçus pour être une solution directe de remplacement pour des entités à fibre optique, ils doivent être pilotés séparément pour opérer en mode SGMII. La commande pour basculer vers le mode SGMII est envoyée à la puce PHY, optique est connecté à un emplacement SFP. 1000BASE-X convient aussi pour des modules SFP conventionnels sur cuivre mais à des vitesses plus faibles (10 Mbit/s et 100 Mbit/s) qui sont uniquement supportées en mode SGMII. Comme les modules située au sein du module, en utilisant un bus I2C contrôlé via le bloc d’entrées/sortie d’usage général GPIO (General Purpose Input/Output). Le bloc Horloge Temps Réel est le gardien du temps et connaît la valeur courante de l’horloge. Ce temps II.- QUEL CONTEXTE D’UTILISATION POUR L’IEEE 1588 ? n Le protocole Precision Time Protocol (PTP) défini par la norme IEEE 1558 permet la synchronisation des horloges au travers du réseau Ethernet. Les applications où le protocole permet d’éviter l’appel à un réseau de synchronisation distinct sont alors beaucoup plus économiques. n Les mises en œuvre de l’IEEE 1588 PTP sont très différentes selon la précision désirée. La technologie de réseau sous-jacente a en effet une énorme incidence sur la précision. Les technologies DSL par exemple affichent une précision très médiocre comparées à celle du Fast Ethernet, et le Gigabit Ethernet est beaucoup plus performant que le Fast Ethernet – plus de capacité signifiant généralement une meilleure précision. De plus, la fibre optique est plus efficace en synchronisation que le cuivre. Les implémentations d’IEEE 1588 PTP peuvent être également réalisées par logiciel seul, mais pour tirer tout le potentiel des moyens disponibles, il est nécessaire d'utiliser des circuits conçus spécifiquement pour supporter l'IEEE 1588 PTP. Ce qui signifie qu'il faut enregistrer les temps exacts de réception et d’émission de 42 / L’EMBARQUÉ / N°6 / 2014 certaines des trames dans le silicium, et, dans certain cas (one-step clock), être capable de modifier les trames à la volée. Avec du matériel dédié, une précision de l'ordre de la nanoseconde peut être effectivement atteinte avec le protocole en faisant fonctionner du Gigabit Ethernet sur un câble de fibre optique. n La norme IEEE 1588 comprend un algorithme de sélection de type Best Master Clock qui établit l'horloge qui agira comme maître sur le réseau, les autres horloges étant des esclaves. En d’autres termes, ceci signifie qu’on choisit quelle horloge sera principale et donc quelles autres horloges suivront. Ainsi, toutes les horloges du réseau fonctionneront avec la même référence temporelle, le système étant tolérant aussi bien pour les fautes d'horloges que pour les défauts du réseau. Les horloges dites transparentes améliorent encore la précision de la synchronisation entre l’horloge maître et celles qui sont esclaves en compensant l'erreur causée par les nœuds du réseau. Au sein d'Ethernet, des horloges transparentes sont intégrées aux commutateurs Ethernet qui corrigent les erreurs dues aux éventuels retards induits par les piles du commutateur, en modifiant à la volée les messages PTP. n HSR est généralement utilisé dans les mêmes applications que celles qui font appel à IEEE 1588 PTP. C’est pourquoi, la spécification HSR définit comment IEEE 1588 PTP devrait être utilisé conjointement avec HSR. Cependant, un traitement spécial des trames IEEE 1588 est nécessaire, parce que le réseau HSR dispose de un, deux, ou plusieurs chemins fonctionnels entre les horloges, alors que les réseaux Ethernet n'en ont qu'un. Ce qui signifie par exemple qu'on ne peut utiliser des messages de suivi IEEE 1588 PTP dans un réseau HSR, parce qu'il serait impossible à un récepteur de savoir si le message de suivi et le message de synchronisation correspondant ont parcouru le même chemin au travers du réseau. Un problème qui implique d’utiliser des horloges appelées One-Step Clock (un message de synchronisation sans message de suivi) au lieu de deux étapes (message de synchronisation et message de suivi). A P P L I C A T I O N Réseaux embarqués Comment implémenter l'HSR La topologie typique d'un HSR est un anneau, ce qui induit beaucoup plus de nœuds entre la source et la destination que dans les topologies traditionnelles d'Ethernet. De ce fait, le temps de transfert exigée au niveau des composants est si faible qu'il est impossible de mettre en œuvre un nœud HSR avec un moteur de transfert basé sur du logiciel. L'HSR étant une technologie nouvelle en constante évolution, toutes les implémentations sont à base de blocs d’IP FPGA. Par ailleurs, en tant que technologie, HSR est fondamentalement très proche d’Ethernet. C’est pourquoi les réseaux HSR utilisent beaucoup de technologies qui sont familières dans les réseaux Ethernet traditionnels, comme les LAN virtuels et la priorisation. Il en résulte que la réalisation interne d'un com- SCHÉMA FONCTIONNEL DU SoC FPGA CYCLONE V On voit ici un exemple concret d’implémentation des technologies de réseau HSR et IEEE 1558 PTP sur un FPGA LED Carte de développement Altéra Altera SoC FPGA Ethernet Commutateur HSR AXI-vers -Avalon Avalon Horloge Avalon temps-réel GMII vers 1000BASE-X & (G)MII vers SGMII 3* Ethernet Avalon Avalon d'horloge est requis pour implémenter la fonctionnalité IEEE 1588 PTP. Le bloc d'horloge temps réel est distinct du commutateur HSR, car sa réalisation dépend fortement de l'environnement. En effet, diverses sortes de cartes disposent de différents styles d'oscillateurs qui peuvent par exemple être ajustables ou fixes, et leur précision comme leur fréquence sont très variables. Dans tous les cas, le temps d'horloge est requis par le bloc du commutateur HSR. Suivant la réalisation, ce temps d'horloge peut être fourni aux puces PHY avec des fonctionnalités IEEE 1588, Ethernet MAC(s), ou à d'autres blocs qui nécessitent une connaissance précise du temps, par exemple, pour horodater des échantillons de mesures. Une matrice de commutation en technologie Avalon connecte les blocs au processeur ARM via un pont AXI-to-Avalon. Avalon est un bon choix pour réaliser l’accès au registre interne du FPGA car il est largement utilisé et qu’il s’agit d’un standard ouvert. Le processeur surveille et contrôle la fonctionnalité des blocs connectés par Avalon par l'intermédiaire de l'accès au registre. Par exemple, il observe continuellement la vitesse de l'interface des modules cuivre SFP en interrogeant la puce PHY interne au module. Quand son mode change, le processeur configure en conséquence la vitesse de l'adaptateur (G)MII-to-SGMII et du port du commutateur HSR. Processeur ARM fonctionnant sous Linux Entrées/ sorties Avalon d’usage général Mémoire du programme Oscillateur Carte HSMC Terasic Modules SFP mutateur HSR, avec son apprentissage d'adresse, ses piles à sorties multiples, etc. s’apparente à celle des commutateurs Ethernet traditionnels. Cependant, la réalisation d'un HSR ne peut pas relever d’une implémentation purement matérielle. Du fait de la redondance, des fautes isolées sur le réseau ne peuvent pas être détectées sans un protocole spécial, baptisé protocole de supervision HSR. Ce protocole de supervision HSR garde la trace des nœuds HSR, des numéros de séquence de leurs trames de supervision et du numéro de port redondant sur lequel leurs trames sont reçues. L’ensemble de ces informations est stocké dans une table spéciale appelée table de nœuds. Elles peuvent ensuite être utilisées pour localiser des liens défectueux et autres problèmes du réseau. Pour des raisons pratiques, ce protocole complexe ne peut pas être implémenté sur du matériel ; il faut faire appel à du logiciel. Finalement, l’implémentation HSR requiert à la fois du logiciel et du matériel. Une puce SoC est donc par nature le choix idéal, permettant la réalisation d’une solution HSR monopuce. Comment implémenter l'IEEE 1588 PTP Comme dans le cas de l'HSR, l’implémentation de l'IEEE 1588 s’avère être à la fois logicielle et matérielle. I2C Les parties n'ayant pas d'exigences temps réel sont mises en œuvre par du logiciel. Il s’agit typiquement de l’algorithme de sélection de la meilleure horloge maître, de la pile de protocole ou encore de la génération des trames Ethernet. Les tâches critiques au niveau temporel incluent le timing exact en réception et en émission des transferts de trames, ainsi que la modification des messages Correction Field of Sync, Delay_Req, Pdelay_Req et Pdelay_ Resp. Ces tâches doivent être réalisées dans le silicium afin d'atteindre une précision de synchronisation inférieure à la microseconde sur le réseau Ethernet ; les solutions uniquement logicielles sont à peine capables d'une précision en dessous de la milliseconde alors que les implémentations matérielles peuvent atteindre la nanoseconde. Bien que des puces IEEE 1588 PHY soient disponibles sur le marché, elles sont inutiles dans ce cas-ci ; la fonctionnalité IEEE 1588 Transparent Clock au sein du commutateur et les fonctionnalités d'horodatage de la connexion Switch-to-HPS Ethernet éliminent la nécessité d’un support de l'IEEE 1588 dans les puces PHY. De ce fait, l'utilisation d’IEEE 1588 PTP est par exemple envisageable dans le cas des modules SFP sur cuivre qui n'ont pas de support IEEE 1588 PTP. n L’EMBARQUÉ / N°6 / 2014 / 43 Logiciels & systèmes Professionnels de l’embarqué Découvrez le système d’information le plus complet, 100% utile à votre métier ! Une newsletter quotidienne Votre fil d’actualité gratuit Une newsletter hebdo Tous les jeudis, des infos exclusives à forte valeur ajoutée Un magazine 100% numérique, trimestriel, pour une information fouillée, analysée et développée Un site Internet Plus de 1 500 articles par an exclusivement dédiés à l’embarqué Abonnez-vous •Pub 148x210.indd 1 www.lembarque.com 20/03/13 12:52