Go Down

Topic: Protocole pour liaison RS485 (Read 813 times) previous topic - next topic

renzejo

Bonjour à tous,

Je suis actuellement entrain de réaliser un projet basé sur arduino qui nécessite une communication avec de grand nombre de cartes.
Je dois pouvoir avoir une communication, a minima, en half-duplex. Chaque esclave agira également en tant que maître d'un autre circuit. Pour cela, chaque carte esclave aura 2 modules MAX485, le premier servant à la réception des ordres d'un master et le second servira à renvoyer des ces requêtes sur le circuit suivant. Ainsi, on peut grandement augmenter le nombre de systèmes utilisés.
Je vous mets un schéma ci-dessous afin de bien expliquer le principe. La réception se fait sur le Serial1 et l'envois sur le Serial2 de mes arduino mega.



La véritable question que je me pose est au point de vue du protocole. J'ai pu voir sur le forum et sur différents sites qu'il fallait créer son protocole. Existe-t-il des librairies permettant d'utiliser des protocoles existants pour communiquer avec mes RS485 ?

Cordialement,
renzejo

hazerty565

#1
Mar 17, 2018, 02:34 pm Last Edit: Mar 17, 2018, 02:47 pm by hazerty565
salut, alors, etant donner que la RS485, est un bus multipoint, ça manque de detail, dans ton projet, pourquoi RS485?


en modbus, tu peux avoir un seul maitre, et autant d'esclave.
je dis pas que c'estpas possible, mais ton schéma, tu auras un arduino maitre, un esclave/maitre puis un esclave/maitre, mais c'est ce compliqué les choses...
pour un esclave en bas, ton maitre va demander deja a l'un de la premiere ligne, et ensuite la deuxieme, donc passer par 2 arduino, ce qui complique la chose
avant toute chose, tu as quoi comme module RS485?




                         Maitre 1          esclave 2                   esclave 4         esclave 6      esclave X
                             |                     |                            |                       |                 |
BUS 485( 2 fils) =================================================
                                          |                          |                       |                            |
                                     esclave 1               esclave 3             esclave 5           esclave X


En faite, en modbus tu as le maitre, en faite, chaque esclave doit avoir un ID, et le maitre va demander

esclave 1: ID[7] // le maitre demande a l'esclave 1 la temperature par exemple

pour plus d'infos
http://www.yoctopuce.com/FR/article/petite-introduction-a-rs485-et-modbus

renzejo

Salut a toi et merci pour ta réponse rapide !

Alors pourquoi la RS485 ? Et bien j'ai besoin de beaucoup d'esclave (donc du multipoint) sur de longue distance (jusque plus de 1km).

Le principe du modbus est intéressant, mais quelle est la longueur maximale ? Si je vois bien sur ton schéma c'est 500m et la sa pêche un peu, je me trompe ?

hazerty565

#3
Mar 17, 2018, 05:52 pm Last Edit: Mar 17, 2018, 05:53 pm by hazerty565
Si tu t'es renseigné un peu, pour la RS485 le débit pouvant atteindre plusieurs Mbit/s, selon la longueur du bus (de 100 kbit/s sur ligne de 1200 m à 35 Mbit/s sur ligne de 10 m)

C'est quoi le nom de ton module RS485?

renzejo

Salut,
Oui j'ai vu pour la vitesse de transmission, je pensais juste, au vu du schéma, que les distances étaient réduite pour le modbus.
Les modules sont des MAX485.

Go Up