capturar dados brutos na porta COM

11

Eu tenho um dispositivo de transmissão Bluetooth e meu PC (Windows 7) está conectado a ele e configurado como se estivesse conectado por uma porta serial RS232 (COM4). Como capturar os dados brutos transmitidos pelo dispositivo Bluetooth ou, equivalentemente, os dados brutos recebidos no COM4?

user11395
fonte
Não é uma questão de eletrônica, pelo que sei.
Brian Carlton
5
Na verdade, acho que isso é tópico. Existem alguns softwares que podem capturar dados seriais de uma porta COM (alguns deles, mesmo quando outro aplicativo está usando a porta), e o software é realmente especializado o suficiente para que a maioria das pessoas não saiba que existe. A desvantagem é que, depois de passar algum tempo procurando por esse software, não consegui encontrar nenhum que funcionasse bem nos computadores pós-XP.
AndrejaKo
você está procurando uma ferramenta como esta? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
kenny
relacionados: "Exibir hexadecimal em PuTTY para serial" .
Davidcary

Respostas:

9

Você pode usar um programa de terminal padrão para capturar os dados em diferentes formatos. Sugiro usar o Terminal Bray , é muito fácil e tem muitas opções!

Ou você deseja capturar e interpretar os dados em algum tipo de aplicativo próprio?

Evert
fonte
Obrigado! Não estou procurando interpretar os dados. Tudo o que eu quero é receber os dados brutos e poder salvá-los em um arquivo. Estou tentando descobrir o que meu dispositivo Bluetooth realmente transmite. O Terminal de Bray faria isso por mim?
usar o seguinte comando
@ user11395 - sim, qualquer software de terminal decente fará isso, eu também uso o Terminal da Bray - o Putty é outro bom ... Uma dica - se você tiver problemas de conexão no Terminal da Bray, acesse as propriedades do dispositivo do módulo BT nas janelas (Controle Painel -> Dispositivos Bluetooth, clique com o botão direito do mouse e selecione "propriedades") e desmarque e selecione novamente o serviço SPP.
Oli Glaser
obrigado Oli. Estou executando o Terminal de Bray, mas algo parece estar errado. "Examino" novamente as portas, encontro a porta COM4, ​​conecto a COM4 e vejo os dados sendo capturados. No entanto, eu não acho que eles estejam corretos. Não tenho certeza dos valores dos Baud Rate / Data bits / Parity Stop Bits / Handshaking que devo escolher. Alguma sugestão?
user11395
Geralmente, os módulos são configurados para 9600,1, N (1 bit de parada, sem paridade), mas 115200 também é comum (pode-se dizer quais são os padrões onde quer que você o comprou). Definido como sem handshake. Você pode definir a taxa de transmissão com um comando AT (não pelo link sem fio, é necessário conectar-se diretamente aos pinos Rx / Tx do módulo) Antes de tentar isso, envie um caractere conhecido repetidamente e apenas comece a partir da transmissão mais lenta e suba - um deles deve produzir os dados corretos.
precisa saber é o seguinte
Consegui capturar os dados com o terminal de Bray. Não importa se eu seleciono uma taxa de transmissão de 9600 ou 115200 no terminal da Bray, obtenho os mesmos dados (que parecem estar corretos). Por que as duas opções dão o mesmo resultado? Além disso, descobri que meu dispositivo tem uma taxa de transmissão de 115200, mas, tanto quanto posso ver no meu gerenciador de dispositivos, essa porta COM está configurada para uma taxa de transmissão de 9600 (acho que por padrão). Devo mudar isso?
user11395
2

A melhor solução que encontrei, embora um pouco grosseira, é Tera Term http://ttssh2.sourceforge.jp/index.html.en .

O Bray's não funciona bem com o Windows 8. Embora seja impossível dizer exatamente o que está fazendo sem a fonte, parece que ele está assumindo a localização de uma configuração de registro.

O portmon também não funcionou para mim no Windows 8.

jkschneider
fonte
Estou usando o Bray's na versão mais recente do Win 10, então ainda está funcionando, pelo menos em alguns casos. Meu computador possui apenas COM3 instalado.
Chris Dragão
2

Meu emulador de terminal favorito pessoal para depuração é o RealTerm, que possui uma boa variedade de opções de exibição para sistemas embarcados. O RS-232 e o TCP / IP funcionam bem no Windows 7 x64 e abaixo (eu não tentei no Win 8, mas não tenho nenhum motivo para pensar que não funcionaria). Alguns recursos que considero especialmente úteis são:

  • Visualização de dados ASCII / HEX
  • Os arquivos de captura podem incluir registros de data e hora
  • Existe uma maneira fácil de enviar sequências de dados binários
  • Os pinos de controle de fluxo de hardware podem ser facilmente monitorados / alterados

Existem também algumas outras opções para I2C, SPI, Dallas 1-wire e GPIB. Eu pessoalmente não usei esses recursos, mas há um bom resumo na página do SourceForge acima. Aqui está uma captura de tela da visualização da guia principal da tela:

insira a descrição da imagem aqui

PeterJ
fonte
1

Também recomendo o bray, se você não tiver certeza sobre a taxa de transmissão, abra o gerenciador de hardware, navegue até as portas COM e selecione as propriedades. Ele está listado lá, embora nem sempre seja preciso.

s3c
fonte
Consegui capturar os dados com o terminal de Bray. Não importa se eu seleciono uma taxa de transmissão de 9600 ou 115200 no terminal da Bray, obtenho os mesmos dados (que parecem estar corretos). Por que as duas opções dão o mesmo resultado? Além disso, descobri que meu dispositivo tem uma taxa de transmissão de 115200, mas, tanto quanto posso ver no meu gerenciador de dispositivos, essa porta COM está configurada para uma taxa de transmissão de 9600 (acho que por padrão). Devo mudar isso?
precisa saber é o seguinte
1

Existe o portmon : uma ferramenta sysinternals que atua como um datascope para portas COM.

Axeman
fonte
1
Não funciona em sistemas Windows x64 na minha experiência.
21416 JonCage
1

Dependendo dos requisitos exatos, pode ser útil usar um microcontrolador que possa capturar e marcar os dados no tempo e enviá-los ao PC. Os UARTs historicamente encontrados em PCs típicos só conseguiram registrar informações precisas de tempo ou capturar dados de 9 bits, fazendo com que o processador pegue cada byte quando chegar, sem buffer; sistemas operacionais e drivers posteriores geralmente não estão equipados para fazer isso, e os chips UART para USB são inúteis nesse sentido. Se o seu PC puder receber dados com o dobro da taxa de dados desejada, um microcontrolador receberá bytes de dados e, para cada byte, enviará dois bytes. O primeiro byte deve ter o MSB definido, relatar o MSB (ou dois MSBs de 9 bits) dos dados recebidos nos próximos bits, e use os 5 (ou 4) bits inferiores para informar a quantidade de tempo (0-30 ou 0-14) desde o meio do bit de parada do byte anterior (medido em unidades de, por exemplo, um tempo de bit). O segundo byte teria o MSB limpo e conteria os 7 bits restantes de dados. Quando nenhum dado está sendo transmitido, os caracteres de estimulação FF são enviados a cada 30 (ou 14) bits de tempo. O software que recebe esses relatórios poderá, assim, reconstruir com muita precisão (dentro de um bit) o ​​tempo exato dos dados recebidos. Se a taxa de dados que alimenta o PC for quatro vezes a taxa de dados que está sendo monitorada, pode-se usar esse esquema geral para multiplexar dois canais de recebimento em uma porta do PC (use um pouco do byte do cabeçalho para identificar se continha dados para o primeiro ou o segundo porta). Embora a temporização de itens com precisão de um bit possa parecer excessiva, há momentos em que pode ser útil,

supercat
fonte