L'embarqué > Matériel & systèmes > Sous-système > Demmel facilite l’utilisation de Java dans l’embarqué via un module ad hoc

Demmel facilite l’utilisation de Java dans l’embarqué via un module ad hoc

Publié le 27 août 2019 à 10:39 par François Gauthier        Sous-système

Demmel JoC Javaino

Avec le circuit JoC (Java on a Chip) installé sur une carte de très petite taille (24 x 36 mm), la société autrichienne Demmel propose un contrôleur programmable en Java qui peut remplacer l'électronique classique des microcontrôleurs et simplifier, selon la société, la conception matérielle. L'intégration directe de ce module dans une application concrète élimine de fait le besoin de développements bas niveau complexes, souvent réalisés en langage C.

Deux composants clés constituent le socle de la solution : côté logiciel l’environnement JoC Manager, système de développement Java complet, et côté matériel une carte de référence baptisée Javaino, sur laquelle un module JoC est intégré, et qui possède toutes les broches du module JoC acheminées vers les connecteurs pour faciliter le prototypage. L’ensemble étant connecté via une interface USB au PC de développement.

Selon Demmel, l’utilisation de Java offre une bien meilleure protection contre les erreurs cachées que l'usage du C ou du C++ et ses pointeurs. L'utilisation d'une API Java orientée objet de haut niveau pour accéder au matériel permet en outre, toujours selon Demmel, de gagner du temps consacré à la programmation de bas niveau. Des fonctionnalités telles que la prise en charge de l'interface USB sont déjà implémentées dans l'API Java notamment, ce qui conduit à des cycles de développement accélérés.

De manière générale le développement d'applications est simplifié car les fonctionnalités de bas niveau sont déjà implantées dans le micrologiciel et sont accessibles via une interface de programmation d'applications (API) Java. Ainsi les fonctions de contrôleur telles que la communication (SPI, I2C, USB, UART) et les broches d’E/S (CNA, CAN, PWM, entrées/sorties numériques et analogiques) sont accessibles via les packages Java et les classes associées. L'API Java prend également en charge une matrice de clavier, une entrée codeur rotatif et une horloge temps réel (RTC). Elle intègre aussi un système de gestion d'événements notifiant automatiquement l'application Java en cas d'événement de communication, de minuterie ou de clavier. Même sans système d'exploitation, le traitement en parallèle est possible grâce à la fonctionnalité multithread de la machine virtuelle Java.


Dans la solution JoC, le code Java s'exécute dans la machine virtuelle Java (VM) implantée au sein du micrologiciel installé sur le circuit avec une empreinte mémoire de 30 Ko. Sans ajout d’un système d’exploitation.

Côté caractéristiques matérielles, le module JoC, alimenté sous 2,7 à 5,5 V, dispose en natif d’entrées/sorties numériques et analogiques, d’un port USB, de deux interfaces RS232, de ports I2C et SPI, d’une sortie PWM et de convertisseurs analogiques/numériques et numériques/analogiques. Une interface clavier pouvant contenir jusqu'à 128 touches et une horloge temps réel avec batterie de secours complètent les fonctionnalités de la puce dotée d’un numéro de série unique au niveau mondial.

Quant à la carte Javaino, compatible avec la plate-forme ouverte Arduino Uno, ses fonctionnalités peuvent être étendues grâce à la richesse de l’écosystème Arduino et ses shields (cartes filles). Enfin, côté programmation, le gestionnaire JoC assure l'édition, la compilation et le débogage à distance du code Java. L'application Java compilée est chargée directement sur la puce via l'interface USB et exécutée dans la machine virtuelle Java. Le débogage à distance de l'application Java générée est effectué via la même interface USB directement sur la carte Javaino connectée. Les fonctionnalités courantes telles que les points d'arrêt et l'inspection des variables sont incluses dans le débogueur.

Sur le même sujet