Qu’est-ce qu’un système embarqué ?

« Système embarqué »

Vous vous demandez sûrement ce que cache cette expression.

Définition

Un système embarqué (ou système enfoui) est un système électronique programmé pour effectuer une tâche à laquelle il est dédié. Il peut s’agir, pour le grand public, d’un téléphone portable, une calculatrice, un GPS…

Calculatrice TI82

Cette calculatrice graphique a 20 ans, elle permet de faire beaucoup de choses, dont de la programmation en BASIC. Et elle fonctionne parfaitement ! Un vrai bonheur !

Il a la particularité d’être peu encombrant, économique en énergie et en coût. Il a cependant des performances limitées mais généralement suffisantes pour accomplir sa tâche. Cet aspect restreint se ressent également lors de son développement, car il faut prendre en compte les limites du système sur lequel on travaille pour éviter des catastrophes comme celle d’Ariane 5.

Pourquoi cet engouement ?

Pour la simple et bonne raison qu’il s’agit là d’un domaine en pleine expansion. Ils coûtent relativement peu chers en matériaux et consomment peu d’énergie. Il faut cependant noter qu’ils nécessitent un type de développement particulier.

Raspberry Pi

Le Raspberry Pi, un ordinateur de la taille d’une carte de crédit. Petit, relativement performant, consommant peu d’énergie, et surtout pas cher ($25 à $35). Une solution honorable pour apporter facilement une solution de développement de logiciel embarqué à moindre coût.

S’il vous vient d’autres questions concernant les systèmes embarqués, n’hésitez-pas à poster vos commentaires.

Qu’est-ce qu’un microcontrôleur ?

Définition

Un microcontrôleur est un composant électronique, que l’on peut qualifier de condensé de tout ce que contient un ordinateur. Un microcontrôleur intègre entre autres un processeur, une mémoire ROM pour stocker le programme, une mémoire RAM pour stocker les données temporaires et un certain nombre d’entrées/sorties (analogiques et numériques), dont certaines dédiées à des usages particuliers.

Microcontrôleurs PIC

Quatre microcontrôleurs PIC de familles différentes : 18F, 16F, 12F et 10F.

Quelle est la différence avec un microprocesseur ?

Hormis le fait qu’un microprocesseur fait lui-même partie d’un microcontrôleur, ce dernier permet une économie par rapport à la consommation électrique, l’encombrement et le coût d’un microprocesseur.

D’un autre côté, les processeurs seuls sont plus performants que les microcontrôleurs. Le choix d’utiliser l’un ou l’autre dépend grandement des besoins du système.

Un processeur Intel 80486DX2

Un processeur Intel 80486DX2

Quels sont les constructeurs de microcontrôleurs ?

Microchip propose des microcontrôleurs peu coûteux, suffisamment performants et polyvalents. Ils représentent une bonne solution pour les petites entreprises ou les indépendants disposant de peu de moyens.

Silicon Labs fournit des microcontrôleurs relativement coûteux mais performants dans le domaine de l’acquisition et le traitement numérique de signaux. Leurs microcontrôleurs, les C8051, sont basés sur les 8051 d’Intel, comme beaucoup d’autres familles de microcontrôleurs.

Il existe aussi Atmel, NXP (anciennement Philips), Freescale (anciennement Motorola), NEC, Cypress et leur PSoC (Programmable System on Chip).

Ce ne sont pas les constructeurs qui manquent, certains étant plus spécialisés que d’autres pour un domaine particulier. Le tout est de savoir ce que l’on veut pour son projet et de se renseigner en conséquence pour savoir quel matériel est le plus adapté.

Si vous avez d’autres questions, n’hésitez pas à me les poser dans les commentaires.

Programmateur de PIC

Bonjour à toutes et à tous.

Aujourd’hui, je vais vous présenter mon premier projet personnel : un programmateur de PIC. Pour commencer, quelques explications avec une mise en contexte.

Qu’est-ce que PIC ?

PIC est une famille de microcontrôleurs, développée par une entreprise appelée Microchip. Cette dernière fournit aux entreprises des microcontrôleurs polyvalents et peu coûteux. Cela se ressent parfois sur la qualité de certaines solutions proposées – je pense notamment aux compilateurs et librairies, développés par Microchip et distribués en ligne gratuitement. Ils restent toutefois des systèmes stables pouvant servir à un grand nombre d’applications.

Microcontrôleurs PIC

Quatre microcontrôleurs PIC de familles différentes : 18F, 16F, 12F et 10F.

Pourquoi réaliser un programmateur de PIC ?

Tout d’abord, ces microcontrôleurs sont vendus vierges, c’est à dire qu’ils n’ont aucun programme intégré dedans. Pour y intégrer un programme, il faut un appareil appelé un programmateur.

Il en existe de toutes sortes, les plus chers étant ceux qui permettent de programmer le plus grand nombre de modèles de microcontrôleurs. L’ennui vient justement de leur coût – trop élevé pour mes maigres moyens – et que les plus abordables sont limités et/ou disposent uniquement d’un port RS232, port absent de certains ordinateurs de nos jours (notamment les portables).

L’idéal serait de le connecter en USB, possibilité offerte par certains programmateurs figurant parmi les plus onéreux. Il existe bien des adaptateurs RS232/USB mais les programmateurs ne fonctionnent pas toujours avec. Le but est donc d’en réaliser un avec les moyens du bord. Cela apporte également l’opportunité d’étudier le fonctionnement d’un programmateur.

PicKit2

Le PicKit2 sert d’intermédiaire entre l’ordinateur et le microcontrôleur PIC pour permettre de le programmer et le déboguer.

Comment le réaliser ?

Pour ce projet, j’ai besoin de connaître le fonctionnement d’un programmateur et d’avoir un matériel adapté pour mettre en œuvre la méthode de programmation.

Pour cela, je dispose de la documentation de Microchip fournie gratuitement en ligne, expliquant en détails la méthode de programmation ICSP. Concernant le matériel, je possède un microcontrôleur PIC18F2550 à programmer et une carte de développement Arduino, dédiée à l’apprentissage simplifié de l’électronique embarquée pour les débutants et amateurs, facilement programmable par USB.

Arduino Diecimila

Le projet se déroule comme suit :

– Une étape d’étude de documentation consacrée à la lecture de la documentation et à la compréhension de la méthode ICSP,

– Le développement – conception, réalisation et tests unitaires – du programme Arduino,

– Le développement d’une application fenêtrée servant d’interface de programmation,

– Enfin, le montage électronique suivi de l’intégration des différents programmes pour procéder aux tests finaux.

Le but est d’obtenir un logiciel de programmation permettant d’analyser et extraire les données d’un fichier de programme .hex et de les transmettre au programme Arduino pour qu’il programme le PIC18F2550.

Où en est le projet ?

Le projet a déjà débuté. L’étude de la documentation est terminée et le développement du programme Arduino est en cours.

Quelle sera la suite du projet ?

Un rapport de projet sera établi afin d’expliquer étape par étape comment réaliser son programmateur de PIC avec un Arduino. Pour l’instant, le projet se concentre exclusivement sur le PIC18F2550. Par la suite, il sera possible d’étendre les possibilités du programmateur.

J’envisage donc 3 cheminements possibles :

– Le perfectionnement du programmateur par ajout de fonctionnalités,

– L’extension du nombre de modèles gérés par le programmateur,

– Le développement d’un nouveau modèle de programmateur USB, libre et plus performant au niveau du matériel et des fonctionnalités.

Ces trois chemins peuvent se rejoindre pour au final obtenir un projet libre de programmateur universel de microcontrôleurs, performant, utilisable via USB et, si possible, gratuit.

Je vous tiens au courant et vous dis à bientôt.

Nicolas SAN AGUSTIN