capturer des données brutes dans le port COM

11

J'ai un périphérique de transmission Bluetooth et mon PC (Windows 7) y est connecté et configuré comme s'il était connecté via un port série RS232 (COM4). Comment puis-je capturer les données brutes transmises par le périphérique Bluetooth ou, de manière équivalente, les données brutes reçues dans COM4?

user11395
la source
Pas une question d'électronique, pour autant que je sache.
Brian Carlton
5
Je pense en fait que c'est sur le sujet. Certains logiciels peuvent capturer des données série à partir d'un port COM (certains d'entre eux même lorsqu'une autre application utilise le port), et le logiciel est en fait suffisamment spécialisé pour que la plupart des gens ne sachent pas qu'il existe. L'inconvénient est qu'après avoir passé un certain temps à chercher de tels logiciels, je n'ai trouvé aucun qui fonctionne bien sur les ordinateurs post-XP.
AndrejaKo
cherchez-vous un outil comme celui-ci? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
kenny

Réponses:

9

Vous pouvez utiliser un programme de terminal standard pour capturer les données dans différents formats. Je suggère d'utiliser le terminal de Bray , c'est vraiment facile et il y a beaucoup d'options!

Ou voulez-vous capturer et interpréter les données dans une sorte de propre application?

Evert
la source
Je vous remercie! Je ne cherche pas à interpréter les données. Tout ce que je veux, c'est recevoir les données brutes et pouvoir les enregistrer dans un fichier. J'essaie de savoir ce que mon appareil Bluetooth transmet réellement. Le terminal de Bray ferait-il cela pour moi?
user11395
@ user11395 - oui, n'importe quel logiciel de terminal décent le fera, j'utilise aussi le terminal de Bray - Putty est un autre bon ... Un conseil - si vous avez des problèmes de connexion dans le terminal de Bray, accédez aux propriétés de l'appareil de votre module BT dans Windows (Control Panneau -> Périphériques Bluetooth, cliquez avec le bouton droit et sélectionnez "propriétés"), puis désélectionnez et resélectionnez le service SPP.
Oli Glaser
merci Oli. J'exécute le terminal de Bray, mais quelque chose semble ne pas fonctionner. Je "réanalyse" les ports, je trouve le port COM4, ​​je me connecte à COM4 et puis je peux voir les données capturées. Cependant, je ne pense pas qu'ils soient corrects. Je ne suis pas sûr des valeurs du débit en bauds / bits de données / bits d'arrêt de parité / prise de contact que je devrais choisir. Aucune suggestion?
user11395
Généralement, les modules sont définis sur 9600,1, N (1 bit d'arrêt, pas de parité), mais 115200 est également courant (il peut indiquer quels sont les paramètres par défaut où que vous l'achetiez). Vous pouvez définir le débit en bauds avec une commande AT (pas sur la liaison sans fil, vous devez vous connecter directement aux broches Rx / Tx du module) Avant d'essayer, envoyez un caractère connu à plusieurs reprises et commencez simplement par le baud le plus lent et montez - l'un d'eux devrait produire les données correctes.
Oli Glaser
J'ai réussi à capturer les données avec le terminal de Bray. Peu importe si je sélectionne un débit en bauds de 9600 ou 115200 sur le terminal de Bray, j'obtiens les mêmes données (qui semblent être correctes). Pourquoi les deux options donnent-elles le même résultat? De plus, j'ai découvert que mon appareil a un débit en bauds de 115200, mais pour autant que je puisse voir dans mon gestionnaire de périphériques, ce port COM est réglé sur un débit en bauds de 9600 (je suppose par défaut). Dois-je changer cela?
user11395
2

La meilleure solution que j'ai trouvée, quoique un peu grossière, est Tera Term http://ttssh2.sourceforge.jp/index.html.en .

Bray ne fonctionne pas bien avec Windows 8. Bien qu'il soit impossible de dire exactement ce qu'il fait sans la source, il semble qu'il fasse des hypothèses sur l'emplacement d'un paramètre de registre.

portmon ne fonctionnait pas non plus pour moi sur Windows 8.

jkschneider
la source
J'utilise Bray dans la dernière version de Win 10, donc cela fonctionne toujours au moins dans certains cas. Mon ordinateur n'a installé que COM3.
Chris Dragon
2

Mon émulateur de terminal préféré pour le débogage est RealTerm qui a une belle gamme d'options d'affichage pour les systèmes embarqués. RS-232 et TCP / IP fonctionnent bien sous Windows 7 x64 et inférieur (je n'ai pas essayé sous Win 8 mais je n'ai aucune raison de penser que cela ne fonctionnerait pas). Voici quelques fonctionnalités que je trouve particulièrement utiles:

  • Vue ASCII / HEX des données
  • Les fichiers de capture peuvent inclure des horodatages
  • Il existe un moyen simple d'envoyer des séquences de données binaires
  • Les broches de contrôle de flux matériel peuvent facilement être surveillées / modifiées

Il existe également de nombreuses autres options pour I2C, SPI, Dallas 1-wire et GPIB. Je n'ai pas personnellement utilisé ces fonctionnalités mais il y a un bon résumé sur la page SourceForge ci-dessus. Voici une capture d'écran de la vue de l'onglet d'affichage principal:

entrez la description de l'image ici

PeterJ
la source
1

Je recommanderais également Bray, si vous n'êtes pas sûr du débit en bauds, ouvrez le gestionnaire de matériel, accédez aux ports COM et sélectionnez les propriétés, il y est répertorié mais pas toujours précis.

s3c
la source
J'ai réussi à capturer les données avec le terminal de Bray. Peu importe si je sélectionne un débit en bauds de 9600 ou 115200 sur le terminal de Bray, j'obtiens les mêmes données (qui semblent être correctes). Pourquoi les deux options donnent-elles le même résultat? De plus, j'ai découvert que mon appareil a un débit en bauds de 115200, mais pour autant que je puisse voir dans mon gestionnaire de périphériques, ce port COM est réglé sur un débit en bauds de 9600 (je suppose par défaut). Dois-je changer cela?
user11395
1

Il y a portmon : un outil sysinternals qui agit comme un datascope pour les ports COM.

Axeman
la source
1
Ne fonctionne pas sur les systèmes Windows x64 selon mon expérience.
JonCage
1

Selon vos besoins précis, il peut être utile d'utiliser un microcontrôleur qui peut capturer et horodater les données, puis les transmettre au PC. Les UART historiquement trouvés sur les PC typiques n'ont pu enregistrer des informations de synchronisation précises ou capturer des données 9 bits qu'en ayant le processeur saisir chaque octet à son arrivée, sans mise en mémoire tampon; les systèmes d'exploitation et pilotes ultérieurs ne sont généralement pas équipés pour cela, et les puces UART vers USB sont désespérées à cet égard. Si votre PC peut recevoir des données au double de votre débit de données souhaité, vous pouvez avoir un microcontrôleur pour recevoir des octets de données et pour chaque octet envoyer deux octets. Le premier octet devrait avoir le MSB défini, signaler le MSB (ou deux MSB si 9 bits) des données entrantes dans le ou les bits suivants, et utilisez les 5 derniers bits (ou 4) pour signaler la quantité de temps (0-30 ou 0-14) depuis le milieu du bit d'arrêt de l'octet précédent (mesuré en unités de, par exemple, un temps de bit). Le deuxième octet aurait le MSB effacé et contiendrait les 7 bits de données restants. Lorsqu'aucune donnée n'est transmise, des caractères de stimulation FF sont envoyés toutes les 30 (ou 14) fois. Le logiciel recevant ces rapports serait ainsi en mesure de reconstruire de façon très précise (en un temps de bit) la synchronisation exacte des données entrantes. Si le débit de données alimentant le PC était quatre fois le débit de données surveillé, on pourrait utiliser ce schéma général pour multiplexer deux canaux de réception dans un port PC (utiliser un bit de l'octet d'en-tête pour identifier s'il contenait des données pour le premier ou le second). Port). Bien que chronométrer des choses précises à un seul bit puisse sembler excessif, il peut parfois être utile,

supercat
la source