Le PC embarqué tel que le PC/104
Un consortium a créé une norme d’ordinateur embarqué appellée PC/104. Son nom lui vient de la définition de son architecture autour d’un bus composé de deux connecteurs, l’un de 64 points, l’autre de 40, soit un total de 104 connections. Ainsi, tout s’organise autour d’une carte mère, d’un module d’E/S et d’un convertisseur A/N. Le bus, sa taille et sa consommation sont imposés, contrairement au microprocesseur qui peut varier d’un modèle à l’autre – même si la famille x86 est très présente -. Une telle architecture d’ordinateur débouche sur des applications non pas domestiques ou de bureautique, mais industrielles ou militaires pour acquérir des données puis les traiter relativement rapidement dans un contexte de contrôle commande. La compacité de sa dimension – moins de 10×10 cm² – et l’aptitude à l’empilage de carte laisse augurer de possibles applications pour une micro-usine, compte tenu du concept de cellules de production modulaires de dimensions similaires.
Carte avec OS temps réel
Il est impossible d’effectuer instantanément des opérations informatiques. Cependant lorsque l’exécution d’une commande est suffisamment rapide pour ne pas perturber la dynamique d’un processus physique contrôlé, on définit la notion de système temps réel. Le respect de la contrainte temporelle est donc tout aussi essentiel que la justesse du résultat obtenu. Pour qu’un système temps réel soit bon, il ne s’agit pas uniquement qu’il fournisse un résultat de calcul exact, mais il doit délivrer ce résultat dans le temps qui lui est imparti. De tels systèmes d’exploitation, « operating system » – OS -, sont présents dans de multiples secteurs d’activités. La production industrielle, les contrôles de processus chimiques et énergétiques, la robotique ou encore l’aéronautique, en sont friands. Le monde économique tient également à ce que les places boursières travaillent à temps pour assurer une synchronisation des opérations financières. Pour développer un système d’exploitation temps réel, il s’agit que chacun de ses composants soit suffisamment rapide pour que, vu du système piloté, le temps de réaction soit inférieur à son temps de réponse. Pour ce faire, aucune application informatique ne doit tendre à ralentir inopinément l’exécution de ses consœurs internes au noyau de l’OS. Microcontôleur La partie matérielle qui accueille l’OS d’un automate est appelée microcontrôleur. Ce circuit intégré regroupe les composants, éléments essentiels à la constitution d’un ordinateur : – le processeur qui va exécuter des instructions et traiter les données des programmes ; – la mémoire morte, chargée de retenir les instructions formant le programme ; – la mémoire vive qui évolue au gré des données ; – quelques interfaces d’entrées-sorties – aussi appelées périphériques – ; Un microcontrôleur intègre l’ensemble de ces constituants ; il est par conséquent mois gourmand en énergie et moins onéreux à la fabrication, mais il perd en rapidité d’exécution. C’est principalement cette miniaturisation et cette intégration qui ont permis de démocratiser les systèmes électroniques autopilotés. Ce sont également ces propriétés qui justifient leur usage pour la micro-usine. La vulgarisation de cette technologie a été fortement encouragée par la démocratisation de deux microcontrôleurs dans des applications pédagogiques de formation : Microchip a crée le « PIC » avec la série des 16Fxx et Freescale – anciennement Motorola – a développé son 68HC11, remplacé par les 68HC12 et 68HC08. Pour la micro-usine modulaire et une aptitude à être « plug and produce », la solution de la compact interface de hez Cypress EZ-USB FX2 de 5×5 mm² est très séduisante, et d’autant plus dans sa version LP – Low Power – compte-tenu de notre objectif énergétique.
Vue de micro-contrôleurs FPGA
Un FPGA est un réseau programmable de portes logiques – Field-Programmable Gate Array -. La programmation intervient post-fabrication. Elle peut être définitive ou modifiée à souhait, via de nombreuses cellules logiques élémentaires assemblées selon le besoin. De tels circuits se retrouvent sous diverses appellations reconnaissables encore par les initiales PAL ou PLA – pour Programmable Logic Array -, PLD – pour Programmable Logic Device – parfois précédées de E ou C – pour Erasable ou Complex -. L’usage d’une appelation dépend principalement de la technologie adoptée : respectivement RAM pour les FPGA, FLASH pour les PLD, ou fusible pour les PAL. Matériellement, l’architecture de certaines puces FPGA peut contenir de la mémoire, des fonctions d’horloge, ou encore des blocs DSP câblés – la technologie DSP est détaillée dans le prochain paragraphe -. Ainsi les fonctionnalités particulières dont peuvent disposer certaines de ces puces sont : – Un cœur de microprocesseur enfoui, dit hard core ; – des mémoires supplémentaires souvent double-port et avec parfois un accès à la pile de type FIFO – First In First Out – ; – des multiplieurs câblés ; – des blocs multiplieur-accumulateur pour traitements DSP ; – des blocs de resynchronisation ou synthèse d’horloges, dits PLL ; – une reconfiguration partielle, y compris durant son fonctionnement – nonnégligeable pour la micro-usine qui verra évoluer sa configuration -, – un chiffrage des paramètres de configuration ; – des liaisons mises en série à haut-débit des entrées-sorties grâce aux fonctions sérialiseurs / dé-sérialiseurs ; – un contrôle numérique de l’impédance des entrées-sorties, supprimant ainsi une grande quantité de composants passifs sur la carte. La constitution d’un bloc logique utilise habituellement une bascule – Flip-Flop en anglais- et une table de correspondance – LUT ou Look-Up-Table -. Cette LUT autorise l’implémentation d’équations logiques à quatre voire six entrées et une sortie. Cependant, il arrive que la LUT soit utilisée comme un multiplexeur, un registre à décalage voire une mémoire. La notion de registre consiste à retenir un état – logique séquentielle – ou à synchroniser des signaux – cas du pipeline -. Une telle puce FPGA peut contenir quelques millions de blocs logiques. Ils sont connectés entre eux par une matrice de routage, configurable selon le besoin. Ainsi, le composant peut être reconfiguré à souhait, mais l’encombrement de cette fonction de routage est important sur le silicium et induit un coût élevé des FPGA. On utilise généralement l’adjectif « Manhattan » pour désigner la topologie du routage en référence aux rues du quartier de New-York qui se croisent perpendiculairement. Compte-tenu de l’explosion de la quantité et de la densité de portes logiques qui n’autorise plus un routage manuel, un outil automatique de routage et placement a été développé. Il associe les ressources matérielles encore disponibles sur la puce et le schéma logique souhaité par le concepteur. Les résultats obtenus sont généralement satisfaisants en terme d’utilisation des ressources mais les SAMMI, AS2M, femto-st Eric Descourvières 178 performances – déterminisme temporel – varient d’un routage à l’autre car elles dépendent de la longueur des liaisons inter-cellules. Que ce soit pour le routage du circuit ou pour constituer les blocs logiques à interconnecter, les FPGA actuels utilisent principalement des cellules SRAM. Cette SRAM n’est autre que de la mémoire vive dite Statique – Static Random Access Memory – et elle utilise des bascules pour stocker les données. Mais la SRAM ne nécessite pas des rafraîchissements périodiques de son contenu, contrairement à la mémoire dynamique DRAM plus compacte en terme d’encombrement car composée d’un simple pico-condensateur et d’un transistor. Néanmoins, la SRAM doit être alimentée en permanence pour ne pas perdre définitivement les données mémorisées ; sa mémoire est dite volatile, tout comme pour la mémoire dynamique. Puisque ce sont des mémoires volatiles qui enregistrent la configuration – le routage et les LUT -, alors le design du FPGA est obligatoirement sauvegardé dans une mémoire externe non volatile. Il s’agit souvent d’une mémoire Flash série, compatible avec le test de la carte à puce ainsi obtenue. Technologiquement, il arrive que la configuration soit enregistrée dans une EEPROM, supprimant ainsi l’usage d’une mémoire externe. Ce peut enfin être une technologie de configuration unique par anti-fusibles : une tension élevée « claque » un diélectrique, crée un contact et assure physiquement la programmation. Soulignons le fait que cette dernière technologie ne peut pas conduire à la reconfiguration du FPGA.