2017-06-15 5 views
1

J'ai un périphérique qui envoie des données en continu via UART. J'essaie de le lire en utilisant une application de terminal sur un PC basé sur Windows. Le problème est que je ne sais pas à quelle vitesse de transmission l'appareil envoie les données. Les données que je reçois à des débits en bauds plus élevés n'ont aucun sens, donc je l'ai réduit à moins de ou égal à 600 parmi les vitesses de transmission standard disponibles sur le terminal.Détection automatique du débit en bauds UART d'un périphérique en fonctionnement

Existe-t-il un logiciel pour détecter la vitesse de transmission ou une méthode utilisant un microcontrôleur?

+1

en utilisant n'importe quel microcontrôleur probablement pas. Si la broche est partagée par un gpio, vous pouvez interroger/interrompre sur les changements d'état et de mesure, la plus petite mesure devrait vous donner le débit en bauds. Alternativement vous pouvez juste balayer des fréquences, si vous obtenez un coup il peut encore être faux, pourrait être 2x, 3x, 4x, etc. trop lent. peut devenir difficile à impossible, pour aligner correctement juste en ajustant votre baud, vous devez également avoir un modèle de données (format de trame, etc) que vous pouvez rechercher lorsque vos erreurs de cadrage disparaissent. –

+0

Si vous parlez d'un programme/périphérique spécifique, placez-le simplement sur une portée, ou utilisez votre microcontrôleur pour mesurer les impulsions à l'aide d'un gpio et d'une minuterie, puis à partir de là, calculez le baud. –

+0

Vous pouvez également avoir une non-concordance non seulement du débit en bauds, mais aussi du nombre de bits de données, de la parité ou des bits d'arrêt. –

Répondre

1

Non, pas si vous voulez vous faire rapidement. Dix ans à faire ce type de tâche, dit un oscilloscope ou même un analyseur logique USB bon marché est votre meilleure solution ici. Ce n'est pas encore un problème de logiciel, c'est un problème de détection de signal. Vous devriez être capable de l'effacer en quelques minutes avec le bon instrument.

Je suppose que vous faites seulement cet exercice parce que la partie de transmission est une pour laquelle vous ne pouvez pas trouver une feuille de données. Si vous aviez en main une fiche technique, cela éclaircirait cela, ou au moins suggérerait les taux de transmission possibles que vous devriez essayer.

0

J'ai essayé le logiciel Realterm et j'ai découvert que les données arrivent à 300 Bauds, sans parité, 8 bits de données et 1 ou 2 bits d'arrêt. Pour les options restantes, j'obtiens une erreur d'encadrement et une condition de rupture dans le logiciel. Merci à tous ...