Peut-on calculer le débit en bauds de la communication RS232 à partir du signal de sortie TX?

10

Peut-on calculer le débit en bauds ou la vitesse de communication de la communication RS232 à partir du signal de sortie X?

L'image ci-dessous provient d'un signal de sortie de communication RS232. J'ai pris cette photo avec 0xaa, et la période entre les sommets est de 100.us.

J'ai entendu dire que la fréquence de l'oscillateur externe était de 8 MHz. Pouvons-nous calculer le débit en bauds à partir de cela?

Trace d'oscilloscope montrant un signal RS232

chiper
la source
9
Je pense qu'un EE devrait le savoir F=1/T.
Eugene Sh.
2
Je m'attendais à ce que ce soit une question sur la détection du débit en bauds à l'insu des données pour faciliter la configuration, mais cela? @EugeneSh. est plus que juste - connaître la définition de la fréquence est une connaissance de base lorsque l'on travaille avec l'électronique.
NieDzejkob
1
Astuce: si vous êtes confus par quelque chose comme ça, faites en sorte que votre machine de développement envoie votre meilleure estimation de ce que vous pensez voir et voyez à quoi cela ressemble sur la portée en comparaison. En cas d'erreur, affinez votre supposition pour les rapprocher.
Chris Stratton
Sigrok est open source, non? Comment les gens pensent-ils que la "fréquence des suppositions" fonctionne?
mckenzm

Réponses:

21

Il semble que vous ayez environ 2,4 temps de bit par division, soit 250 µs. Cela met chaque temps de bit à 104 µs. Inversion qui donne 9,6 kBauds. C'est l'un des taux de transmission standard, donc cela semble tout à fait plausible.

Olin Lathrop
la source
12

100μs


8MHz

Quelques autres réflexions:

  1. 100μs±2%
  2. 3.5V
  3. Ce signal utilise un HI pour MARK (en RS-232, un MARK est une tension négative), il doit donc s'agir d'une sortie de niveau logique provenant d'un micro et non d'une signalisation RS-232.

Si vous supprimez le bit START requis et le temps STOP minimum d'un bit, cela signifie qu'il reste probablement au moins sept bits restants pour les données:

entrez la description de l'image ici

Ce qui précède serait interprété un 0x2A indépendamment de l'endianité, si je fais attention.

Cependant, ce serait le graphique pour huit bits de données:

entrez la description de l'image ici

Dans ce cas, l'interprétation serait soit 0xAA, soit 0x55, selon la nature endienne du flux. Cela pourrait donc représenter votre 0xAA (petit endian, qui je crois est plus courant.)

Comme vous pouvez le voir, l'émetteur et le récepteur doivent a priori s'accorder sur le nombre de bits de données et leur nature endienne.

Les résultats de la portée pourraient être interprétés comme des tailles de mots en série encore plus longues. Je les ai déjà vus (9, le plus souvent, comme certains circuits intégrés le soutenaient, mais j'en ai même vu 10 auparavant).

Sans accord, il est difficile d'en être sûr.


En tant que barre latérale:

Je me souviens de l'époque où les télétypes passaient de 5 bits à 6 bits (DTE du début des années 1960) au moment où RS-232 a été créé en 1960, car mon père avait un tel téléscripteur assis à la maison dans un espace de bureau à domicile. Les communications RS-232 à six bits ont effectivement existé pendant un certain temps.

Le codage ASCII a été largement utilisé à la fin des années 1960 et au début des années 1970 et est un codage 7 bits. Il était très courant que les communications de données RS-232 utilisent 7 bits de données.

Plus tard, alors que les circuits intégrés de communication et les microcontrôleurs sont devenus couramment utilisés et que les tailles de registre 8 bits étaient disponibles en abondance, RS-232 a souvent été étendu pour transmettre / recevoir 8 bits à la fois.

Je pense que la plupart des gens s'attendent aujourd'hui à ce qu'il soit utilisé pour les communications 8 bits. Mais ce n'était pas toujours le cas.

jonk
la source
Je pense que les données pourraient également être les deux octets 0x98 0xE6 à 19 200, décomposés en s00011001Ss01100111S [s = start S = stop]. Certains caractères comme "A" [0x41] génèrent des modèles de bits qui ne peuvent pas être créés par un autre débit en bauds (probablement pourquoi Hayes a choisi "A" comme premier caractère pour la séquence de formation en autobauds), mais le modèle ci-dessus représenterait un double valide séquence d'octets à 19 200 bauds.
supercat
J'étais l'heureux propriétaire d'une machine d'imprimante téléscripteur mécanique. Il était entièrement mécanique et fonctionnait à 60 bauds. Eh bien entièrement mécanique si vous ne comptez pas les solénoïdes et un moteur synchrone. Le bit de démarrage a relâché un embrayage et une roue de sélection a commencé à tourner et les choses se sont déroulées en séquence après pour positionner la tête d'impression et tirer le marteau. C'était tellement cool à regarder. J'ai dû le laisser au Royaume-Uni quand je suis arrivé au Canada. Il était plutôt trop lourd à expédier.
Trevor_G
Je suis presque sûr que c'est l'une des principales raisons pour lesquelles RS232 avait des tensions et des courants d'entraînement extrêmes. Il n'y avait rien entre les deux, juste un câble RS232 -> solénoïde.
Trevor_G
@supercat Ouais. Il pourrait également être divisé dans le temps. Ces variations commencent à arriver au point où un livre est nécessaire, cependant. Mais votre point est certainement pris.
jonk
1
@Trevor Je n'en ai jamais possédé, mais j'avais souvent utilisé le KSR-35 (une machine mécanique à cames très impressionnante) et le dernier, des ASR-33 / KSR-33 beaucoup moins chers. Celui que mon père avait chez nous (avant de mourir dans un accident de la circulation) n'était pas de ceux-ci, mais était un ancien appareil à code 6 bits de taille similaire à l'ASR-33.
jonk
0

S'il s'agit d'un microcontrôleur, il n'est pas possible de déterminer le débit en bauds à partir de son oscillateur, mais un cristal à 8 MHz est définitivement capable de créer 9600 bauds.

Pouvez-vous mesurer et me dire l'heure exacte du premier plus bas au dernier plus haut? - Le premier espace me semble légèrement décalé. Il me semble que vous utilisez un déclencheur, pouvez-vous le déplacer légèrement plus haut car s'il s'agit d'un déclencheur de bord et assis sur les pics, l'oscilloscope aura peut-être du mal à se déclencher.

Bilal
la source
Si vous échantillonnez le signal et mesurez la plus petite largeur rencontrée, il est trivial de calculer le taux. Tôt ou tard, un bit de départ doit être suivi d'un «1».
mckenzm
0

La détermination du débit en bauds à partir d'une trace de portée est parfois, mais pas toujours possible.

Le débit en bauds est l'inverse de la période binaire, mais le signal peut rester dans le même état pendant de nombreuses périodes binaires, vous ne pouvez donc pas toujours déterminer sans ambiguïté la période binaire à partir de la trace de l'oscilloscope.

En supposant des données de 8 bits et aucune parité, votre forme d'onde pourrait représenter un seul octet avec une période de bits de ~ 100 ns mais elle pourrait également représenter deux octets avec une période de bits d'environ 50 ns.

Peter Green
la source