Electronique > Réalisations > Merger RS232 / MIDI 001

Dernière mise à jour : 05/06/2011

Montage en cours de développement, volontairement non référencé dans les sommaires du site.


Présentation

Ce mergeur RS232 / MIDI permet de "mélanger" de façon intelligente les données provenant de deux sources de type RS232 ou MIDI (liaison série dans les deux cas), avant de les envoyer vers une unique sortie RS232. Relier de façon "brutale" deux sorties RS232 ne se fait pas vraiment, et les relier avec un "OU" à diodes (après conversion au niveau TTL) ne peut être satisfaisant que si les deux sources de données n'émettent pas des données au même moment. Dès l'instant où des données sont émises simultanément par les deux sources, on est obligé de mettre en oeuvre des mémoires tampon (buffer) dont la taille dépend de la quantité de données reçues simultanement depuis les deux sources. Le montage présenté ici permet de bloquer temporairement le transfert des données reçues sur une des entrées, si l'autre entrée en reçoit déjà. Les données en attente sont transmises sur la sortie dès que les données de l'autre voie sont toutes passées, et sont stockées dans une mémoire temporaire pendant ce temps-là. Afin de garantir un bon fonctionnement même avec des données soutenues, deux PIC sont mis en oeuvre, un par entrée de données, et la taille du buffer d'entrée est fixé de façon arbitraire à 128 octets pour chacun d'eux.

Schéma

Le schéma qui suit montre l'ensemble des composants requis pour les fonctions désirées.

merger_rs232_001

Remarque : le schéma actuel représente deux quartz - un par PIC - mais il y aura en fait un seul oscillateur pour les deux composants, qui seront ainsi synchrones.

Vitesses de transmission autorisées
Le traitement des données reçues par chaque PIC impose une vitesse de transmission parfaitement connue. On ne peux pas traiter (mettre en attente et envoyer) des données à la vitesse de 19200 bauds si les PICs s'attendent à recevoir des données à un autre rythme. C'est pourquoi il faut pour chaque PIC spécifier la vitesse des données qui lui arrivent dessus. Cette configuration s'effectue grâce aux micro-interrupteurs (micro-switches) DSW1 (premier PIC) et DSW2 (deuxième PIC), selon la table de correspondance suivante.

Vitesse DSWx-0 (RA0) DSWx-1 (RA1) DSWx-2 (RA2)
1200 0 0 0
2400 0 0 1
4800 0 1 0
9600 0 1 1
19200 1 0 0
31250 (MIDI) 1 0 1
38400 1 1 0
Non défini 1 1 1

Remarques :
- En théorie la vitesse spécifiée peut être différente pour les deux PIC, un des deux pouvant très bien traiter des données à 9600 bauds pendant que l'autre traite des données à 19200 bauds. Mais la sortie unique délivrerait dans ce cas des trames opérant à des vitesses différentes et à ma connaissance il n'existe pas beaucoup de circuits récepteurs capables de traiter des données à des vitesses différentes sans reconfiguration logicielle ou matérielle. Dans la pratique donc les vitesses spécifiées pour les deux PIC seront identiques.
- La position des switches de configuration de la vitesse n'est lue qu'au moment de la mise sous tension du système et n'est donc pas prise en compte si elle est changée alors que le système est déjà sous tension.
- Pour une application en merger MIDI ou pour une application RS232 où vous savez d'avance que la vitesse des données sera toujours la même, inutile d'installer les switches, que vous pouvez remplacer par des ponts de soudures (straps) permanents.

Logiciel du PIC

Sera disponible quand ça fonctionnera.

Circuit imprimé

Non réalisé.