Je me décide à parler de ce qui me fait gagner ma croûte et me permet de craquer parfois sur du matériel photo, et par la même occasion bouffer et avoir un toit. Le « système embarqué ». Sous ce terme très à la mode, se planque la plupart des choses qui font qu’au quotidien vous pouvez utiliser un programme super compliqué sur votre machine à laver (lavage à 38,12°, puis essorage un peu vif mais pas trop , séchage optimal pour le t-shirt « 10 types de personnes, ceux qui connaissent le binaire et les autres » sans abimer la dentelle de la lingerie de madame), avoir des super intéressantes sur l’afficheur digital de votre autoradio, savoir combien de kilomètres vous pouvez encore parcourir avec votre voiture, ou bien configurer votre box internet pour laisser ouvert le port pour recevoir plus rapidement les films que votre cousin d’Amérique vous envoie par Internet.
Bref, yen a partout. Mais physiquement, ya quoi derrière ce merdier?
Ben la plupart du temps, le même bordel que dans votre PC. Un truc pour recevoir des stimuli de l’extérieur, un bouzin pour traiter les infos, et un bidule pour sortir des infos plus ou moins intéressante.
Question 1 : Alors ça veut dire qu’on pourrait utiliser un PC pour faire plein de truc dans ma machine à laver ?
Oui, clairement, le PC standard de Madame Michu a la capacité suffisante pour le faire. Mais…
Question 2 : mais pourquoi ya pas de prise USB sur ma machine à laver comme sur mon PC ?
Obvious : ça coûte des thunes ! et c’est inutile d’avoir un Core 2 Quad pour gérer le cycle d’essorage.
Question 3 : Il y a quoi dans ce cas dans ma machine à laver ?
Il peut y avoir plein de chose. Mais surtout, il y un chef d’orchestre, un composant qui peut être clairement omnipotent sur tout ce qui se passe dans la machine, de la présence d’une source d’énergie suffisante, à la gestion de la température de l’eau, en passant par l’usure du moteur électrique du tambour de la machine (important ça, mais pas si utiliser que l’on aimerait).
Et ce composant, c’est la plupart du temps un microcontrôleur.
Question 4 : C’est quoi un microcontrôleur?
C’est ça. Selon ma propre définition, c’est un microprocesseur avec des périphériques intégrés, parce que vous le savez déjà, bande de geek, quand on intègre plusieurs fonctions dans un même composant, c’est moins cher que de les prendre en pièce détaché. On va donc trouver plusieurs fonctions comme :
- un cœur central qui fait des calcul (le microprocesseur, finalement)
- une petite mémoire vive
- parfois une mémoire morte
- des entrées/sorties numériques
- des entrées/sorties analogiques
- des UART (Universal Asynchronous Receiver Transmitter) (mon dieu, en cherchant la traduction exacte du terme, je me suis rendu que j’écrivais la même chose que wikipedia…) qui sont globalement des liaisons séries (ouais, la prise DB-9 sur laquel vous branchiez votre antique modem 33k).
- etc
Ça a l’air de rien comme ça, mais votre Core 2, il fait pas tout ça. Bon… je m’avance un peu. Mais en tout cas, les premiers microprocesseurs d’homme avait besoin de plein de merdier autour d’eux pour gérer l’ensemble des tâches qu’on leur confiait. Pourquoi à votre avis vot’ Paintiomme il a un southbrigde et un northbrigde avec lui ?
Le microcontrôleur, lui, il se suffit « presque » à lui même, et surtout, il le fait pour pas très cher. Le micro le moins balèze que j’utilise pour le moment est un PIC 18F2525, dont le pris atteint la somme faramineuse de … 5 euros ? Et encore !
Bien évidement, tout comme pour les processeurs de PC, on a le choix. Et que dis je, on a plus que le choix. En effet, là où en informatique classique, on conseille à Madame Michu de prendre le dernier cri parce que c’est trop tout neuf de la balle, dans l’industrie on regarde à deux fois avant d’acheter, parce que le prix n’est clairement pas le le seul soucis du concepteur de système embarqué de lave linge (d’ailleurs, le prix, c’est souvent le département achat qui va lui dire : « dis donc, ton Coldfire, il coûte un peu cher là (un peu plus qu’un centaine d’euros), tu veux pas un PIC ou un ARM à 5 euros plutôt? »).
Pour repartir sur les choix possibles, on a donc plusieurs critères qui rentre en compte, comme par exemple :
- la puissance brute : alors que les processeurs 64bit commencent à être utilisé en info « domestique », les micro, eux, existe encore en version 8, 16 ou 32bit. La vitesse joue également son rôle
- le nombre de périphérique intégré : avoir un micro qui mouline à fond, c’est bien, mais si en plus on a plein de chose a lui faire faire (des acquisitions, de la comm série, ethernet, du calcul différentiel intégralement dérivé), c’est mieux qu’il est les bons périphériques déjà tout près (UART, liaison CAN, controlleur ethernet, etc)
- la consommation électrique : s’il pouvait en plus être invisible sur la facture électrique (et autonome longtemps sur batterie…)
- le prix : monde capitaliste, quand tu nous tiens.
- le support technique: l’air de rien, un micro avec une grosse doc peut couter plus cher que son homologue russe… dont la doc n’existe qu’en russe. Sans parler des outils de développement qui vont avec.
- la techno utilisé en interne : exemple à deux balles, un micro Intel sont en little endian, les Freescale sont en big endian, et essayer d’accorder les violons dès le départ en choisissant bien sont composants peut épargner des emmerdes (j’y reviendrais)
Bref, c’est quand même un beau bordel tout ça. Je vais préparer une suite ou je parlerais des langages, des périphériques, du jargon du coin, d’outils de dèv, et tant qu’à faire d’exemple pratique.