Le bus 485 est une méthode de transmission de signal différentielle couramment utilisée. Il présente les avantages d'une forte capacité anti-interférence, d'une longue distance de transmission et d'un grand nombre de nœuds. Il est largement utilisé dans la communication, l'automatisation industrielle et d'autres domaines. Cependant, dans les applications pratiques, nous pouvons rencontrer un problème, à savoir si le bus 485 doit ajouter des résistances pull-down sur les lignes A et B, et quelle résistance est appropriée. Cet article analysera et expliquera ce problème.
1. Comment fonctionne le bus 485 ?
Tout d'abord, nous devons comprendre le principe de fonctionnement et les caractéristiques du signal du bus 485. Selon la norme RS-485, le bus 485 transmet des signaux différentiels via deux lignes (A et B), et le bit de données actuel est jugé comme étant 0 ou 1 en fonction de la différence de tension entre les deux lignes.
Il existe trois états de données lors de la transmission 485 :
1. Lorsque la différence de tension entre A et B est supérieure à +200 mV, la logique de la sortie de l'émetteur-récepteur 485 est 1 ;
2. Lorsque la différence de tension entre A et B est inférieure à -200 mV, la logique de sortie de l'émetteur-récepteur 485 est 0 ;
3. Lorsque la différence de tension entre A et B est comprise entre -200 mV ~ + 200 mV, l'émetteur-récepteur 485 peut émettre un niveau haut ou bas, ce qui constitue un état incertain.
2. Comment éviter un état incertain
Dans des circonstances normales, nous espérons que les données reçues par le récepteur ne pourront être que 0 ou 1, et que l'état incertain ne pourra pas apparaître sur le bus 485. Alors, dans quelles circonstances y aura-t-il un état incertain ?
Il existe principalement deux situations :
1. Lorsque le bus 485 est à l'état inactif, c'est-à-dire que tous les émetteurs-récepteurs 485 sont à l'état de réception et qu'aucun émetteur-récepteur ne pilote le bus. À ce stade, puisqu'aucune source de signal ne génère de tension différentielle sur le bus, les tensions sur les deux lignes A et B sont fondamentalement égales, c'est-à-dire que la tension différentielle est fondamentalement égale à 0.
2. Lorsque le bus 485 est dans un état ouvert, c'est-à-dire lorsqu'un émetteur-récepteur 485 est déconnecté du bus. À ce stade, puisque l’émetteur-récepteur déconnecté n’a plus d’impact sur le bus, la tension différentielle entre les émetteurs-récepteurs restants est pratiquement nulle.
3. Lorsque la sortie du pilote 485 est insuffisante pour rendre la valeur absolue de A et B supérieure à 200 mV, c'est-à-dire que l'état du signal du bus 485 ne peut plus refléter l'état du pilote et que le récepteur ne peut pas reconnaître le signal correct.
Lorsque le bus 485 est dans un état incertain, cela provoquera des erreurs ou des échecs de communication. Par exemple, si un émetteur-récepteur 485 pense qu'il a reçu un signal de données 0 dans un état incertain et émet un niveau faible sur le port série, alors pour la communication UART, cela équivaut à un bit de démarrage (Start Bit), ce qui provoquera Erreurs de jugement ou d'erreur de bit ; si un émetteur-récepteur 485 émet alternativement des niveaux haut et bas dans un état incertain, alors pour la communication UART, il interférera avec les données normales, provoquant la réception de données anormales par le récepteur UART.
Afin d'éviter que le bus 485 ne soit dans un état incertain, nous avons analysé ces deux anomalies. La raison de ces deux anomalies est que lorsque l'émetteur-récepteur est en état de réception, la différence de tension normale sur la ligne AB ne peut pas être maintenue. Afin de maintenir la différence de tension correcte en état de repos ou de déconnexion, nous devons ajouter des résistances pull-down sur les lignes A et B (généralement A est connecté à la résistance pull-up et B est connecté à la résistance pull- résistance vers le bas) pour garantir que le bus est inactif. Ou il y a une tension différentielle fixe dans l'état de circuit ouvert.
Comme indiqué ci-dessous:
Alors, quels facteurs devons-nous prendre en compte lors du choix de la taille de la résistance pull-down ? Il y a principalement les aspects suivants :
1. Les résistances pull-up et pull-down doivent être suffisamment petites pour garantir que la tension différentielle à l'état inactif ou ouvert est supérieure à +200 mV ou inférieure à -200 mV (selon le cas) afin d'éviter les états indéterminés.
2. Les résistances pull-up et pull-down doivent être suffisamment grandes pour réduire la dissipation de puissance et la chaleur sans affecter la capacité de commande et la tension de sortie de l'émetteur-récepteur 485.
3. Les résistances pull-up et pull-down doivent correspondre à l'impédance d'entrée, à la résistance des bornes, à la longueur du bus, au nombre de nœuds et à d'autres facteurs de l'émetteur-récepteur 485 pour garantir l'adaptation d'impédance et l'intégrité du signal du bus.
Tout d'abord, lorsque l'émetteur-récepteur est déconnecté, la tension de l'émetteur-récepteur A et B est déterminée conjointement par , , et , c'est-à-dire :
Habituellement, nous utiliserons la même valeur que et, la formule peut alors être simplifiée comme suit :
À ce moment-là, nous définissons la résistance d'entrée différentielle interne de la puce, et on peut calculer qu'à ce moment-là, bien sûr, tant que la déconnexion peut être satisfaite, les lignes A et B sont dans l'état de données 1.
Pour l'état inactif, on considère que la plupart des dispositifs nœuds ajouteront des résistances sur les lignes A et B, et ajouteront des résistances aux bornes. Comme indiqué ci-dessous:
Nous savons du processus de dérivation précédent que la seule différence est l'augmentation de la résistance d'entrée et de la résistance de pull-up et de pull-down due à l'ajout de nœuds, nous pouvons donc dériver la formule suivante basée sur le circuit ci-dessus :
Dans cette formule, m est le nombre de nœuds avec des résistances pull-up et pull-down, et n est le nombre de nœuds. La différence entre la borne A et la borne B du bus est définie comme un minimum de 200 mA, afin que l'on puisse simplifier cette formule à :
Avec cette formule, la valeur des résistances pull-up et pull-down peut être déterminée en fonction du nombre réel de nœuds.
Cependant, le résultat calculé selon cette formule n'est qu'une valeur idéale. En utilisation réelle, les résistances pull-up et pull-down sont généralement déterminées à l'intérieur du nœud. Différents périphériques à nœuds peuvent avoir différentes résistances pull-up et pull-down internes. Nous devons prendre en compte le nombre de nœuds pour considérer la valeur de cette résistance. Pour déterminer la valeur des résistances pull-up et pull-down, il est également nécessaire de prendre en compte la capacité de charge de la puce pilote. Les résistances pull-up et pull-down ne peuvent pas être réglées à des valeurs très faibles.
En bref, le bus 485 doit ajouter une résistance pull-down sur la ligne AB, principalement pour garantir que le bus a une tension différentielle fixe à l'état inactif ou ouvert, afin d'éviter les erreurs de communication ou les pannes causées par des états incertains. Lors de la sélection de la taille de la résistance pull-down, des facteurs tels que la consommation d'énergie, la capacité de pilotage et l'adaptation d'impédance doivent être pris en compte de manière globale pour garantir la stabilité et la fiabilité de la communication.