Histoire de Fraise

Fraise est le « fruit » de multiples expériences et réflexions, elle est née d’un besoin profond et identifié de nombreux porteurs de projets numériques.

Pourquoi un nouveau protocole ?

Les instruments de musique électroniques utilisent traditionnellement le protocole MIDI, développé pour cet usage au début des années 1980. Alors qu’on peut maintenant considérer le MIDI comme obsolète, il n’a pas de réelle solution de remplacement.

Aujourd’hui, la plupart des contrôleurs dits « MIDI », ainsi que les cartes de développement DIY à microcontrôleur (type Arduino), sont connectées à l’ordinateur par USB. Malheureusement l’USB ne résout pas la plupart des limitations du MIDI (à l’exception du débit des données et du nombre de canaux) ; la longueur des câbles est encore plus limitée. Le processus de configuration est également plus difficile et délicat lorsqu’on doit utiliser plusieurs périphériques, et dépend du système d’exploitation de l’ordinateur.

Bien sûr Ethernet pourrait représenter un candidat idéal ; mais, s’il permet un débit énorme dans un câble de longueur respectable (1Gbs / 100m !), il augmente également les coûts et la complexité matérielle et logicielle.

La transmission de type RS485, quant à elle, nécessite une configuration matérielle assez simple, tout en étant en mesure d’échanger sur une longue distance des données à des débits suffisants pour ce genre d’application. Un microcontrôleur doit juste disposer d’un UART (port série asynchrone) pour pouvoir communiquer, et d’un petit circuit intégré (« transiever ») peu coûteux.
Mais RS485 définit uniquement une couche physique, non un protocole… C’est là le rôle de Fraise.

Histoire de Fraise…

Afin de répondre à nos besoins en terme de contrôle de plusieurs périphériques distants depuis un ordinateur, nous avons tout d’abord exploré deux pistes parallèlement (à partir d’environ 2005) :

  • l’écriture d’une première version d’un protocole (Fraise 1.0) établissant la communication entre les périphériques et un contrôleur maître lié en USB à l’ordinateur . La connexion électrique des signaux numériques était directe entre les microcontrôleurs (signal dit « TTL ») et la communication de type asynchrone « full-duplex », c’est à dire qu’un fil transmettait les signaux dans un sens (maître -> périphérique) et un autre fil transmettait dans l’autre sens (périphérique -> maître). Le bus de 4 fils transmettait aussi l’alimentation en 5V des périphériques.Cette version de Fraise a été utilisée dans la première version des Cloches-Pieds d’Al1&Ant1, exposée pour l’événement Les 400 Clous organisé par Métalu à Lille en 2007.
  • la fabrication de périphériques basés sur le protocole DMX512, qui utilise une liaison RS485. Cette liaison s’appuie sur une transmission symétrique du signal numérique (comme celle utilisée pour les signaux analogique en sonorisation), c’est à dire qu’un fil A transmet le signal pendant qu’un autre B transmet l’opposé du signal (0 devient 1 et inversement). A l’arrivée on soustrait B de A et on supprime ainsi une grosse partie des parasites que les deux signaux on ramassé de façon presque identique pendant le trajet. La longueur maximale du bus est donc beaucoup plus grande que dans le cas d’une liaison simple (dite asymétrique).Le DMX modifié (voir plus loin), que nous appelons DDMX, est utilisé sur les installations d’Amalgamix pour contrôler des projecteurs de cinéma (super8, 16mm, 35mm) ou des automatismes, depuis le premier épisode de Western Attitude, créé à la MFW de Lille en 2005.

Dans les deux cas nous utilisions du câble téléphonique plat à 4 fils, et les connecteurs associés de type RJ11. Cette solution a l’avantage du faible coût et de la rapidité à assembler les cordons (à l’aide d’une pince à sertir adaptée).

D’une part l’expérience du DMX512 nous a convaincu de la fiabilité de la transmission RS485 et de la simplicité de sa mise en œuvre. Cependant le protocole DMX ne définit qu’une liaison « simplex » c’est à dire unidirectionnelle ; il a été prévu pour commander des lumières, les informations ne circulent que du maître vers les périphériques. Il existe bien des adaptations possibles pour rendre possible un retour d’information, nous en avons explorées avec succès, mais ces solutions ne permettront jamais d’utiliser le DMX512 efficacement pour un réseau de capteurs.
D’autre part la solution Fraise 1.0 paraissait prometteuse, mais devenait vite inutilisable dès que la distance s’allongeait ou que le nombre de périphériques augmentait.

Nous avons donc été amenés à mixer les deux solutions, et à appuyer Fraise (version 2.0) sur RS485. Le bus 4 fils (connecteurs RJ11) transmet les signaux A et B du RS485, ainsi que la masse et une alimentation 12V. La liaison est de type « half-duplex » : les infos circulent alternativement dans un sens et dans l’autre, sur les mêmes fils. Cette version de Fraise équipe la Symphonie Electro-Ménagère d’Al1&Ant1, créée en 2010.
Une dernière modification est apportée par la suite au protocole, intégrant un système de détection des erreurs de transmission ainsi que qu’un mode spécial de communication servant à dialoguer avec un bootloader (bout de programme installé en fixe dans les microcontrôleurs des périphériques), afin de pouvoir reprogrammer les périphériques à distance. Cette version Fraise 2.1 est celle qui équipe désormais les nouvelles créations de Al1&Ant1 (à partir du Karaoké Electro-Mécanique en 2013), de Cendres La Rouge, d’Amalgamix et d’autres membres de metalu.net…

Comparaison de solutions existantes de communication entre un ensemble de cartes à microcontrôleur et un ordinateur :

solutionavantagesinconvénients
USB+ grand débit (12 Mbits/s théorique en USB1 - full speed)
+ “standard” sur les ordinateurs
+ faible coût
+ très faible distance (5 m)
+ nécessite des hubs pour multiplier les périphériques, impossible de chaîner les périphériques
+ faible nombre de périphériques en pratique
+ complexité et fragilité logicielle, tant dans l’ordinateur que dans le microcontrôleur
+ limite le choix du microcontrôleur ou nécessite un circuit spécialisé
ETHERNET+ très grand débit (10/100 Mbits/s)
+ grande distance (100 m)
+ standard sur les ordinateurs
+ fiabilité logicielle
+ complexité logicielle sur le microcontrôleur
+ coût plus élevé que l’USB
MIDI+ standard historique + faible débit (31.24 kbits/s)
+ faible distance (15 m)
+ câble unidirectionnel : 2 câbles par périphérique entrée-sortie
+ faible nombre de périphériques, câblage délicat, nécessite des mergers, des splitters...
+ pas d’interface physique sur l’ordinateur, nécessite une interface USB-midi
CAN + très sophistiqué, fiable
+ grande distance
+ nombre suffisant de périphériques (au moins 32)
+ chaînage possible des périphériques
+ débit suffisant pour des interfaces “musicales” (jusqu’à 1 Mbits/s)
+ complexité et rigidité logicielle
+ nécessite des composants spécialisés
+ pas d’interface physique sur l’ordinateur
SANS-FIL(wifi, bluetooth)+ coût, fiabilité aléatoire, latence, complexité
RS485+ grande distance (400 m)
+ débit suffisant pour des interfaces “musicales” (débit choisi : 250 kbits/s)
+ nombre suffisant de périphériques (au moins 32)
+ chaînage possible des périphériques
+ faible coût
+ port série standard sur un microcontrôleur
+ électronique simple
+ pas de protocole défini
+ pas d’interface physique sur l’ordinateur