Bienvenu(e)! Identification Créer un nouveau profil

Recherche avancée

Multiplexage sur RS232

Envoyé par Melgo2B 
Multiplexage sur RS232
lundi 17 janvier 2011 19:05:22
Bonjour et merci tout d'abord pour ce site passionnant, qui m'a permis moi simple électricien de comprendre clairement et simplement comment utiliser le port parallèle ou le fonctionnement de la liaison asynchrone.

A propos de cette liaison, je souhaitais savoir si il y avait une possibilité de la multiplexer, avec plusieurs entrées / sorties adressées (je n'utilise peut-être pas les bons termes, mais j'ose quand même!!!), et si oui de quelle manière.

Ex: Liaison 4 bits, max232 sur le port série, et connectée à sa "sortie" l'une après l'autre 3 cartes adressées "000", "001", et "010" (en binaire bien sur!). Quand le pc envoie "0101", la 3e carte alimente une led, ferme un contact ou autre... et l'inverse également (fermeture d'un contact sur la 2e carte, elle envoie au pc "0011"winking smiley.

Même si ma question est idiote ou farfelu, merci d'avance pour la réponse.



Modifié 2 fois. Dernière modification le 18/01/11 12:22 par Melgo2B.

Re: Multiplexage sur RS232
mardi 18 janvier 2011 13:23:26
Salut,

Bienvenue sur ce site.

Pour répondre à ta question, il est possible de placer plusieurs devices en sortie d'une même ligne asynchrone. Mais il est requis d'avoir un microcontroleur qui va lire les trames envoyées et quand il reçoit l'information que la trame lui est destinée, il va alors l'interprété.

Tu dois également veiller à ce qu'il y ait un maitre dans la communication, dans ton cas ce sera certainement l'ordinateur. C'est le maitre qui intéroge les différents cartes et celles-ci ne parlent que si elles en ont l'autorisation, et dans un temps maximum après la demande.

Tu devras peut-être au lieu d'utiliser un max232, utiliser un max485 qui a comme intéret de mélanger le même canal physique pour l'émission la réception. De tel manière, tout ce qui est envoyé, que ce soit par l'ordinateur, ou par les devices sont quand même écouté par les autres devices.

Je ne sais pas si ça a été clair? Il existe également des multiplexeur rs232, mais je pense que ça coute un certain prix

A++

Benjamin
Re: Multiplexage sur RS232
mardi 18 janvier 2011 21:42:55
Merci pour la rapidité de ta réponse !!! Et oui tu as été très clair.Mais ça a suscité encore plus de questions ...

1) Quel type de microcontroleur me conseilles-tu pour l'envoie / la réception des données? Et comment fonctionne-t-il stp (condos, résistances, codeurs pour l'adresse, etc)?

2) Est-ce obligatoire d'avoir un maitre? J'imaginais les cartes e/s "autonomes", pour qu'elles puissent "parler sans avoir à lever le doigt" (je pensais d'ailleurs les alimenter en les branchant sur 4 fils: 1 = 0V/Masse, 2 = +5/12/24V, 3 = Tx, 4 = Rx. Désolé si ça n'a aucun rapport).

3) La max485 a l'air effectivement mieux pour moi. Fonctionne-t-elle sur des grandes distances (200 - 300m) en "full duplex"?

J'espère ne pas être trop ennuyant, mais ça me passionne et m'intéresse sincèrement.
Merci encore d'avance.
Re: Multiplexage sur RS232
mercredi 19 janvier 2011 12:04:18
Salut,

Pour répondre dans l'ordre a tes questions:

1) Un simple MCU comme un 16f777 conviendra sans probleme, il te faut un quartz, une ou deux résistance, et deux trois capa. Néanmoins tu as besoins d'un programmateur (type PicKit 2 ou 3 (environ 50€)) et de quelque connaissance en programmation pour implémenter le programme dans la puce. Pour le codeurs, soit tu programmes le code dans la puce, soit tu permets la configuration via un dipswitch.

2) Pour moi un maitre est obligatoire, car chaque TX de tes MCU sont connecté a la ligne RX et vis-vers-ça. Si tu n'as pas un maitre plusieurs MCU risque de rentrer en colision.

3) Le max485 est je pense la meilleur solution. Ce dernier permet d'avoir des portées importante + de 100m (a condition d'utiliser du bon cable et d'avoir une ligne bien adaptée). Le Max485 est utilisé pour le protocole DMX et fonctionne très bien. En ce qui concerne le full duplex, la réponse est non, tu seras en half duplex. Ceci dit, as-tu réellement besoin du full duplex???

Bàt,

Benjamin
Re: Multiplexage sur RS232
jeudi 20 janvier 2011 20:57:17
Re!

Merci encore pour tes réponses. Vu que "jamais 203!", je vais encore en profiter une dernière fois (je vais essayer)...

Je voyais le full duplex justement indispensable pour avoir les mcu autonomes. Pour mon montage les infos envoyés par les PIC devraient être unitaires, il y a théoriquement aucune chance que 2 envoies de mcu se croisent (au pire avec un bit de parité l'erreur est plus détectable). D'ailleurs peut-on les programmer pour que quand un envoi est en cours les autres mcu patientent?

De plus, je me demande comment les PIC vont pouvoir informer le pc d'un changement de situation. Le pc va les questionner un par un? Si j'ai 250 cartes, il va falloir un sacré débit pour les interroger sans un délai trop long ... Et avec une grande distance, le risque de parasites et de mauvais envois est amplifié.

J'imaginais un fonctionnement plus simple: à la mise en route le pc interroge les cartes. Du coup la prog aurait été plus simple à mon avis (coté pc: un mode question, un mode envoi). Ou même un envoi du pc d'un bit spéciale genre "256" pour que les mcu répondent un par un, puis dès qu'un changement est constaté le mcu concerné l'envoi.

Mais j'ai peur que ça ne soit pas possible... Ça devient compliqué!!!

Merci d'avance Pour tes précieux conseilles.
Re: Multiplexage sur RS232
vendredi 21 janvier 2011 13:11:40
Salut,

Si tes MCU doivent communiquer entre eux, tu ne sauras pas faire du full duplex. Si maintenant tes MCU communiquent uniquement vers le PC, en effet tu pourras faire du full duplex car tu ne devras croiser ton RX et TX qu'au niveau du PC.(attention, utilisation de deux max485 et donc deux pairs cuivrées)

Concernant portée/nombre de device, si tu passes à 250 devices, tu devras mettre des répétiteurs sur ta ligne. Un max485 de base ne supporte que 32 devices en sorties.

Pour éviter que tes mcu ne prennent la ligne en même temps, il faut que tu connectes ton TX sur une input de ton choix, et avant de transmettre, tu dois vérifier que la ligne est à l'état haut depuis suffisamment longtemps (le temps de l'envoie d'un byte).

Il serait intéréssant que tu décrives un peu plus ton application, ainsi que les données qui vont devoir circuler. Ce serait plus simple pour pouvoir mieux te conseiller sur ce que tu dois utiliser. Quelle quantité d'information, quel temps de delais entre l'apparition de l'information et son arrivée sur l'ordinateur (si c'est pour gérer un éclairage, tu peux te permettre d'avoir 100 ms d'écart, si maintenant c'est pour gérer des machines, en effet ta réaction doit être rapide (dépendant de l'application)).

A++

Benjamin
Re: Multiplexage sur RS232
lundi 24 janvier 2011 12:05:27
Bonjour Benjamin

Mon application est simple:
une série de contacts (entrée pc) et voyants type leds (sortie pc) relié au pc.
Mes contraintes:
- Le changement d'état d'un contact doit être rapidement traité par le pc (moins d'une seconde),
- Le nombre de contacts va être de 50 à 250,
- Au démarrage du programme le pc doit être informé de l'état de certain contacts,
- Distance 100m environ (+/- 50m),
- Distance entre contacts de 0 à 100m,
- Tout changement d'état doit être sur.
Mes "avantages":
- Jamais 2 info envoyé simultanément (ou pas de chance),
- Changement d'état d'un contact rare (5/min maxi),
- Communication uniquement PC <-> contacts/leds.

Je ne sais pas si c'est suffisant, si tu as besoin de + d'informations.
Je voyais la liaison série comme utile pour moi, ca je me vois mal apporter les infos fil par fil (et je les brancherais où?) !!!

Merci d'avance.
Re: Multiplexage sur RS232
mercredi 26 janvier 2011 13:18:53
Salut,

Une réaction d'ordre de grandeur de moins d'une seconde est une réaction lente. Donc ne te tracasse pas pour du full ou half duplex, ton système suivra sans même que tu t'en rendes compte.

Pour une distance de 100m en effet, utilise du rs485 avec du bon cable à 120Ohms.

Tu n'aurais pas su tout rapporter fil par fil, ce n'est pas une question de nombre de fils mais uniquement une question de longueur de fil. Il te faut un mcu par ensemble de contact/led pour gérer la communication avec le pc.

Ce sera également plus simple de faire comme tu le souhaites du full duplex d'un point de vue des lignes. C'est a dire mettre une ligne RS485 en RX et une autre en TX. Au vu du nombre de device, tu devras mettre des répétiteurs sur tes lignes (simple deux max485 en série). Si tu travailles en half duplex tu auras la difficulté que ces répétiteur devront être bidirectionnel, et ça c'est pas évident.

A++

Benjamin
Re: Multiplexage sur RS232
jeudi 27 janvier 2011 11:26:04
Bonjour Benjamin,

Je n'ai pas tout compris, malgré tes efforts pour etre clair.
- Dois-je oublier la prise rs232 du pc pour une rs485?
- Comment fonctionnent les répétiteurs? Et comment les branche-on?

De plus j'ai oublier une contrainte: Je ne peux rien brancher sur la longueur, c'est-à-dire que les 2 max485 doivent envoyer/recevoir à 50m des mcu, sans "ampli de ligne" (le câble va etre enterré). C'est un problème?

Merci encore pour toutes ces explications.
Re: Multiplexage sur RS232
vendredi 28 janvier 2011 08:55:42
Salut,

Le rs232 n'est qu'une mise en forme de ton signal électrique sur base d'un UART, le RS485 en est un autre...

Une technique tres simple pour sortir du RS485 depuis ton pc c'est de mettre un MAX232 suivi d'un MAX485. Tu transforme alors ton signal rs232 en UART 0-5V et tu le reconvertis en RS485.

Pour les répétiteurs, c'est pas compliqué non plus. Derrière un max 485 tu peux avoir (si je me souviens bien) un maximum de 32 devices. Il est donc nécessaire de réamplifier ton signal en plaçant un device qui d'un coté écoute la ligne et la reproduit a l'identique derriere. De nouveau, pour moi la technique la plus simple est de placer deux max485 en tête beche. Il te faut juste une alimentation, Maintenant rien ne t'empeche de placer le répétiteur au niveau de tes devices, voir l'intégrer directement dans ton device, avec le problème que si un device claque, c'est tout ceux derrière qui sont isolés

A++

Benjamin
Seuls les utilisateurs enregistrés peuvent poster des messages dans ce forum.

Cliquez ici pour vous connecter