µClinux dans un processeur soft

µClinux dans un processeur soft

L’équipe Systèmes Electroniques a développé une plateforme embarquée complète basée sur un FPGA, mettant en oeuvre un processeur soft tournant un µClinux. Le nom de code de ce projet est SAND pour Smart Adaptable Networking Device. Ce système offre d’excellentes capacités de prototypage dans de nombreux domaines d’application.

Le système peut être divisé en trois modules différents : le matériel, le processeur soft et µClinux.

Le matériel

Le matériel est la toute première couche du système. C’est une carte électronique comprenant un FPGA comme composant principal. Ce FPGA peut être vu comme un CPU (unité centrale de traitement). Le CETIC a choisi pour cela un FPGA du constructeur Altera, le Cyclone 12000 portes logiques. Tout autour de ce FPGA, plusieurs composants offrent de la flexibilité et des capacités d’extensions au système, comme :
- une mémoire Flash de 32 MBytes pour le traitement non-volatile des données
- une SDRAM de 16 MBytes utilisée comme mémoire de travail
- un système matériel de chien de garde pour réinitialiser le système en cas de problème d’exécution
- une EPCS permettant de conserver la configuration du FPGA
- plusieurs entrées/sorties offrant des perspectives d’extension


La carte a été conçue comme une carte mère sur laquelle plusieurs cartes filles peuvent venir s’empiler. La carte mère (aussi appelée carte CPU) a pour tâche de réaliser toutes les opérations de traitement et de stockage tandis que les cartes filles (ou cartes d’extensions) permettent d’offrir une connectivité étendue au système.

Offrant une flexibilité maximale à coûts réduits, la carte CPU est une carte complexe à haute densité de composants, alors que les cartes d’extensions sont des PCB à coûts plus bas.

Le CETIC a actuellement développé deux cartes d’extensions compatibles :
- une carte de connectivité comportant les technologies WiFi, Bluetooth, GPS, USB et série
- une carte "automotive" incluant la connectivité OBD (bus de données utilisé dans la plupart des voitures européennes) et FMS (extension de la technologie CAN dans les camions).

Processeur soft

Un processeur est dit "soft" quand il est implémenté en logique reconfigurable comme dans un FPGA. Les processeurs soft offrent une très grande flexibilité et une excellente reconfigurablilité puisqu’ils sont implémentés en tant que blocs VHDL dans le FPGA. Il est facile d’ajouter des ports série ou une couche MAC USB dans le FPGA sans devoir changer le PCB, uniquement en reconfigurant le FPGA. Le CETIC utilise le processeur soft Nios2 d’Altera qui est reconnu pour sa rapidité d’intégration. Des outils spécifiques offrent une interface aisée pour la conception du processeur soft. Une fois le design terminé, un fichier VHDL est généré et prêt à être programmé dans le FPGA. Un environnement Open Source basé sur Eclipse est disponible pour développer du logiciel embarqué pour le processeur qui a été généré. La configuration du FPGA (incluant le processeur soft) est stockée dans une mémoire flash dédiée utilisée durant la séquence de démarrage. Cela signifie que le processeur peut modifier sa propre configuration dans la mémoire flash pour qu’un nouveau processeur apparaisse lors du redémarrage suivant du système. Un autre avantage de cette technologie est la possibilité d’instancier plusieurs processeurs soft dans un seul FPGA. La carte actuelle du CETIC permet d’aller jusque 6 processeurs en même temps. Ceci offre de larges opportunités de recherche sur le Grid Computing et sur les communications inter-processeurs.

µClinux

µClinux est une version allégée du célèbre système d’exploitation Linux. Cette version a été conçue pour les microcontrôleurs et les petits processeurs sans unité de gestion de la mémoire (MMU). Une série de restrictions s’appliquent aux processeurs sans MMU comme le Nios2, dont la gestion de la mémoire et l’absence de protection de la mémoire. Ces contraintes impliquent des règles strictes de programmation pendant la conception du logiciel embarqué. L’usage de µClinux offrent de nombreux avantages par rapport à un système utilisant des simples applications C embarquées :
- un environnement C open source
- de nombreuses applications existantes
- de nombreux drivers existants
- le support de la communauté opensource

Les applications

Le principal atout de ce système est sa flexibilité. L’approche modulaire et reconfigurable offre une infinité d’applications avec un minimum de modifications. Le CETIC a par exemple installé plusieurs SANDs dans des camions en collaboration avec Key Driving Competences dans le but d’apprendre à des chauffeurs une conduite plus économique (voir news).
De très nombreuses autres applications peuvent être couvertes avec ce système grâce à la combinaison gagnante de Linux et du matériel reconfigurable.

Le CETIC a également pu tester la reconfiguration du système par voie aérienne, qui peut être très utile dans le cas des mises à jour de systèmes mobiles. Des applications où différentes configurations peuvent être chargées en fonction de l’application permettent également de réduire la consommation de systèmes critiques.