acquisire dati grezzi nella porta COM


11

Ho un dispositivo di trasmissione Bluetooth e il mio PC (Windows 7) è collegato ad esso e configurato come se fosse collegato tramite una porta seriale RS232 (COM4). Come posso acquisire i dati grezzi trasmessi dal dispositivo Bluetooth o, equivalentemente, i dati grezzi ricevuti in COM4?


Non è una domanda di elettronica, per quanto posso dire.
Brian Carlton,

5
In realtà penso che questo sia in tema. Esistono alcuni software in grado di acquisire dati seriali da una porta COM (alcuni anche quando un'altra applicazione utilizza la porta) e il software è in realtà abbastanza specializzato che la maggior parte delle persone non sa che esiste. Il rovescio della medaglia è che dopo aver trascorso un po 'di tempo alla ricerca di tale software, non sono riuscito a trovare nessuno che funzioni bene sui computer post XP.
AndrejaKo

stai cercando uno strumento come questo? com0com.cvs.sourceforge.net/viewvc/com0com/hub4com/…
kenny

Risposte:


9

È possibile utilizzare un programma terminale standard per acquisire i dati in diversi formati. Suggerisco di usare Bray's Terminal , è davvero semplice e ha molte opzioni!

Oppure vuoi acquisire e interpretare i dati in una sorta di propria applicazione?


Grazie! Non sto cercando di interpretare i dati. Tutto quello che voglio è ricevere i dati grezzi ed essere in grado di salvarli in un file. Sto cercando di scoprire cosa trasmette il mio dispositivo Bluetooth. Bray's Terminal lo farebbe per me?
user11395

@utente11395 - sì, qualsiasi software per terminali decente lo farà, io uso anche Bray's Terminal - Putty è un altro buono ... Un consiglio - se hai problemi di connessione nel terminale di Bray, vai alle proprietà del tuo modulo BT in Windows (Control Pannello -> Dispositivi Bluetooth, fare clic con il tasto destro e selezionare "Proprietà"), quindi deselezionare e selezionare nuovamente il servizio SPP.
Oli Glaser,

grazie Oli. Sto gestendo Bray's Terminal, ma qualcosa sembra essere sbagliato. "Rieseguo la scansione" delle porte, trovo la porta COM4, ​​mi collego a COM4 e quindi riesco a vedere i dati acquisiti. Tuttavia non penso che siano corretti. Non sono sicuro dei valori di Baud Rate / Bit di dati / Bit di stop di parità / Handshaking che dovrei scegliere. Eventuali suggerimenti?
user11395

Generalmente i moduli vengono impostati su 9600,1, N (1 bit di stop, nessuna parità) ma anche 115200 è comune (si può dire quali sono le impostazioni predefinite ovunque sia stato acquistato) Impostare anche su nessuna sincronizzazione. È possibile impostare la velocità di trasmissione con un comando AT (non tramite il collegamento wireless, è necessario connettersi direttamente ai pin del modulo Rx / Tx) Prima di provare questo, inviare ripetutamente un personaggio noto e iniziare dal baud più lento e procedere verso l'alto - uno di questi dovrebbe produrre i dati corretti.
Oli Glaser,

Sono riuscito a catturare i dati con il terminale di Bray. Non importa se seleziono un baud rate di 9600 o 115200 sul terminale di Bray, ottengo gli stessi dati (che sembrano essere corretti). Perché entrambe le opzioni danno lo stesso risultato? Inoltre, ho scoperto che il mio dispositivo ha una velocità di trasmissione di 115200, ma per quanto posso vedere nel mio gestore dispositivi, questa porta COM è impostata su una velocità di trasmissione di 9600 (immagino di default). Devo cambiarlo?
user11395

2

La migliore soluzione che ho trovato, sebbene un po 'rozza, è Tera Term http://ttssh2.sourceforge.jp/index.html.en .

Bray's non funziona bene con Windows 8. Anche se è impossibile dire esattamente cosa sta facendo senza il sorgente, sembra che stia prendendo delle ipotesi sulla posizione di un'impostazione del registro.

portmon, inoltre, non ha funzionato per me su Windows 8.


Sto usando Bray's nell'ultima versione di Win 10, quindi funziona ancora almeno in alcuni casi. Sul mio computer è installato solo COM3.
Chris Dragon,

2

Il mio emulatore di terminale preferito personale per il debug è RealTerm che ha una buona gamma di opzioni di visualizzazione per sistemi embedded. Sia RS-232 che TCP / IP funzionano bene con Windows 7 x64 e versioni precedenti (non ho provato con Win 8 ma non ho motivo di pensare che non funzionerebbe). Alcune funzioni che trovo particolarmente utili sono:

  • Vista ASCII / HEX dei dati
  • I file di acquisizione possono includere timestamp
  • C'è un modo semplice per inviare sequenze di dati binari
  • I pin di controllo del flusso hardware possono essere facilmente monitorati / modificati

Ci sono anche alcune altre opzioni per I2C, SPI, Dallas 1-wire e GPIB. Non ho usato personalmente queste funzionalità ma c'è un buon riassunto nella pagina SourceForge sopra. Ecco una schermata della visualizzazione della scheda di visualizzazione principale:

inserisci qui la descrizione dell'immagine


1

Consiglierei anche Bray, se non sei sicuro del baud rate che apre il gestore hardware, vai alle porte COM e seleziona le proprietà, è elencato lì anche se non sempre accurato.


Sono riuscito a catturare i dati con il terminale di Bray. Non importa se seleziono un baud rate di 9600 o 115200 sul terminale di Bray, ottengo gli stessi dati (che sembrano essere corretti). Perché entrambe le opzioni danno lo stesso risultato? Inoltre, ho scoperto che il mio dispositivo ha una velocità di trasmissione di 115200, ma per quanto posso vedere nel mio gestore dispositivi, questa porta COM è impostata su una velocità di trasmissione di 9600 (immagino di default). Devo cambiarlo?
user11395,

1

C'è portmon : uno strumento sysinternals che agisce come un datascope per le porte COM.


1
Nella mia esperienza, non funziona su sistemi Windows x64.
JonCage,

1

A seconda delle esatte esigenze, può essere utile utilizzare un microcontrollore in grado di acquisire e timestamp dei dati e quindi inoltrarli al PC. Gli UART storicamente trovati su PC tipici sono stati in grado di registrare informazioni di temporizzazione accurate o acquisire dati a 9 bit facendo in modo che il processore afferrasse ogni byte quando arriva, senza buffering; i sistemi operativi e i driver successivi non sono generalmente attrezzati per farlo, e i chip da UART a USB sono senza speranza in questo senso. Se il tuo PC è in grado di ricevere dati al doppio della velocità di dati desiderata, è possibile che un microcontrollore riceva byte di dati e per ogni byte invii due byte. Il primo byte dovrebbe avere l'MSB impostato, riportare l'MSB (o due MSB se a 9 bit) dei dati in arrivo nei bit successivi, e utilizzare i 5 (o 4) bit inferiori per riportare la quantità di tempo (0-30 o 0-14) dalla metà del bit di arresto del byte precedente (misurato in unità, ad esempio un tempo di un bit). Il secondo byte dovrebbe cancellare l'MSB e contenere i restanti 7 bit di dati. Quando non vengono trasmessi dati, i caratteri di stimolazione FF vengono inviati ogni 30 (o 14) bit volte. Il software che riceve questi rapporti sarebbe quindi in grado di ricostruire in modo molto preciso (entro un bit) il momento esatto dei dati in arrivo. Se la velocità dati che alimenta il PC era quattro volte la velocità dati monitorata, si potrebbe usare questo schema generale per multiplexare due canali di ricezione in una porta PC (utilizzare un bit del byte di intestazione per identificare se conteneva dati per il primo o il secondo porta). Sebbene il tempismo delle cose accurate al bit time possa sembrare eccessivo, a volte può essere utile,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.