Le raspberry PI, et le temps réel

Raspberry PI et temps réel – Avant propos

Plusieurs types de systèmes embarqués existent. Les systèmes fortement contraints nécessitant une grande puissance de calcul requièrent des cycles de développement lourds et coûteux. Les électroniques mettent en œuvre des technologies onéreuses et en faibles quantités. On est dans une catégorie bien à part et peu d’industriels ont aujourd’hui ces problématiques. Les systèmes moyennement contraints eux peuvent utiliser du matériel moins spécifique et sont souvent montés à base de produits du marché (produits COTS – bus systèmes type bus VME, Compact PCI …). Les développements logiciels mettaient en œuvre des systèmes du genre OS temps Réel (VxWOrks, LynxOx, QNX, etc.). Les systèmes les moins contraints en termes de temps réel eux étaient souvent réalisés par des technologies microcontrôleur.

Les évolutions technologiques ont permis :

  • D’avoir des processeurs de plus en plus puissants, consommant de moins en moins, des coûts de plus en plus réduits,
  • L’intégration a permis le développement de briques de base de type SOC, permettant de faciliter l’intégration (et de réduire les coûts) et d’améliorer sensiblement le time to market,
  • La venue du logiciel libre (avec ses avantages et ses inconvénients) a permis une démocratisation du développement logiciel.

Et donc aujourd’hui où placer le Raspberry Pi dans ce domaine ?

L’intérêt de la RaspBerry PI réside dans le fait qu’elle regroupe bon nombre d’éléments habituellement disponibles que sur des plateformes plus lourdes (puissance de calcul, périphériques entrée/sortie, environnement logiciel libre) sur un format facilement embarquante et à un prix défiant toute concurrence.

D’un point de vue du matériel, la carte n’a pas été développée dans une optique industrielle :

  • Circuit d’alimentation pas forcément adapté (protections, consommation …),
  • pas d’horloge temps réelle,
  • utilisation carte SD pas suffisamment fiable,
  • tenue en température
  • aucune garantie sur la disponibilité à moyen et long temps (pas de gestion de l’obsolescence),

Toutefois elle offre des avantages non négligeables :

  • puissance de calcul importante,
  • son faible coût,
  • interfaçage facile : UART, USB, Ethernet…
  • possibilités d’extension importantes (par les broches GPIO et l’utilisation de bus I²c et SPI),

Aujourd’hui Element14 (distributeur de produits technologiques choisi par la fondation RPi, lié à Farnell) a ouvert un service de customisation. Ils proposent d’adapter le design original en fonction des demandes spécifiques :
Cf www.element14.com/document et www.element14.com/video

Des sites dédiés proposent des solutions matérielles pour interfacer la RaspberryPi avec des solutions couramment utilisées dans l’industrie (http://www.industrialberry.com).

La fondation a également développée un modèle plus orienté industriel. Il s’agit d’un module au format SODIMM regroupant le SOC et 4GB de eMMC (mémoire flash équivalente à une carte µSD). Son format lui permet d’être facilement intégré dans les systèmes développés par les clients. Une carte mère est également disponible.

D’un point de vue logiciel, alors que l’utilisation de l’environnement LINUX peut être vu comme un inconvénient pour les développeurs non habitués, il permet d’avoir accès à un nombre important de logiciel / drivers issus du domaine du logiciel libre.

Concernant le temps réel, bien qu’un certain nombre de projets soient en cours il n’existe à ce jour pas de solution RTOS officiellement supportés. Certaines solutions consistent à ajouter des fonctionnalités TR au noyau Linux (PREEMPT-RT, Xenomai):

  • https://docs.emlid.com/navio/Downloads/Real-time-Linux-RPi2/
  • https://github.com/emlid/linux-rt-rpi
  • https://xenomai.org/
  • Présentation de Pierre Ficheux sur « Linux Temps Réel sur RPi »

D’autres consistent à porter des noyaux temps réel, notons :

Conclusion

Le Raspberry PI reste un outil de prototypage, il n’existe pas à ce jour de support officiel pour le temps réel, “dur”. Pour adjoindre de telles fonctionnalités, il faudrait passer par une carte d’extension spécifique. Toutefois pour de petits besoin de temps réel “mou” des solutions sont expérimentées par la communauté. Bientôt peut être, un test du port de FreeRTOS sur Raspberry PI dans nos colonnes.