Possiamo calcolare la velocità di trasmissione della comunicazione RS232 dal segnale di uscita TX?


10

Possiamo calcolare la velocità di trasmissione o la velocità di comunicazione della comunicazione RS232 dal segnale di uscita X?

L'immagine seguente proviene da un segnale di uscita di comunicazione RS232. Ho scattato questa foto con 0xaa e il periodo di tempo tra i massimi è 100.us.

Ho sentito che la frequenza dell'oscillatore esterno è 8Mhz. Possiamo calcolare il baud rate da quello?

Traccia dell'oscilloscopio che mostra il segnale RS232


9
Penso che un EE dovrebbe saperlo F=1/T.
Eugene Sh.

2
Mi aspettavo che questa fosse una domanda sul rilevamento del baud rate senza la conoscenza dei dati per facilitare la configurazione, ma questo? @EugeneSh. è più che giusto: conoscere la definizione di frequenza è una conoscenza di base quando si lavora con l'elettronica.
NieDzejkob,

1
Suggerimento: Se si confondono con qualcosa di simile, rendere la vostra macchina di sviluppo inviare la tua ipotesi migliore su ciò che si pensa che si sta vedendo e vedere che cosa che appare come la portata in confronto. Se è sbagliato, affina la tua ipotesi per avvicinarli.
Chris Stratton,

Sigrok è open source, giusto? In che modo le persone pensano che "indovina la frequenza" funzioni?
mckenzm,

Risposte:


21

Sembra che tu abbia circa 2,4 bit per divisione, che sono 250 µs. Ciò mette ogni bit a 104 µs. Inversione che produce 9,6 kBaud. Questo è uno dei baud rate standard, quindi sembra abbastanza plausibile.


12

100μS


8MHz

Alcuni altri pensieri:

  1. 100μS±2%
  2. 3.5V
  3. Questo segnale utilizza un HI per MARK (in RS-232, un MARK è una tensione negativa), quindi deve essere un livello logico emesso da una segnalazione micro e non RS-232.

Se togli il bit START richiesto e lo STOP minimo di un bit, significa che probabilmente ci sono almeno sette bit rimanenti per i dati:

inserisci qui la descrizione dell'immagine

Quanto sopra verrebbe interpretato a 0x2A indipendentemente dall'endianness, se sto prestando attenzione.

Tuttavia, questo sarebbe il grafico per otto bit di dati:

inserisci qui la descrizione dell'immagine

In questo caso, l'interpretazione sarebbe 0xAA oppure 0x55, a seconda della natura endiana del flusso. Quindi questo potrebbe rappresentare il tuo 0xAA (little endian, che credo sia più comune).

Come puoi vedere, il trasmettitore e il ricevitore devono concordare a priori il numero di bit di dati e la loro natura endiana.

I risultati dell'ambito potrebbero essere interpretati come dimensioni di parole seriali anche più lunghe. Li ho già visti prima (9, più comunemente, visto che alcuni circuiti integrati lo supportavano, ma ne ho già visti 10 usati prima.)

Senza accordo, è difficile esserne sicuri.


Come barra laterale:

Ricordo i giorni in cui i teletipi si stavano spostando da 5 bit a 6 bit (DTE dei primi anni '60) proprio nel momento in cui RS-232 fu creato nel 1960, poiché mio padre aveva un tale teletipo seduto a casa in uno spazio di home office. Le comunicazioni RS-232 a sei bit esistevano effettivamente per un periodo di tempo.

La codifica ASCII è stata ampiamente utilizzata alla fine degli anni '60 e all'inizio degli anni '70 ed è una codifica a 7 bit. Era molto comune per le comunicazioni dati RS-232 utilizzare 7 bit di dati.

Successivamente, quando i circuiti integrati di comunicazione e i microcontrollori divennero di uso comune e le dimensioni dei registri a 8 bit erano ampiamente disponibili, RS-232 veniva spesso esteso per trasmettere / ricevere 8 bit alla volta.

Penso che molte persone oggi si aspettino solo che venga utilizzato per le comunicazioni a 8 bit. Ma non è sempre stato così.


Penso che i dati potrebbero anche essere i due byte 0x98 0xE6 a 19.200, suddivisi come s00011001Ss01100111S [s = start S = stop]. Alcuni caratteri come "A" [0x41] generano modelli di bit che non possono essere creati da nessun altro baud rate (probabilmente perché Hayes ha scelto "A" come primo carattere per la sequenza di allenamento autobaud) ma il modello sopra rappresenterebbe un valido due- sequenza di byte a 19.200 baud.
Supercat,

Ero l'orgoglioso proprietario di una stampante meccanica per teletipo. Era interamente meccanico e funzionava a 60baud. Bene del tutto meccanico se non si contano i solenoidi e un motore sincrono. La punta di partenza ha rilasciato una frizione e una ruota selettrice ha iniziato a girare e le cose sono successe in sequenza lì dopo per posizionare la testina di stampa e sparare il martello. Era così bello da guardare. Ho dovuto lasciarlo alle spalle nel Regno Unito quando sono arrivato in Canada. Era piuttosto pesante da spedire.
Trevor_G,

Abbastanza sicuro, questo è uno dei motivi principali per cui RS232 aveva tensioni e correnti di azionamento così estreme. Non c'era niente in mezzo, solo cavo RS232 -> solenoide.
Trevor_G,

@supercat Yeah. Potrebbe anche essere suddiviso nel tempo. Queste variazioni stanno iniziando ad arrivare al punto in cui è richiesto un libro. Ma il tuo punto è sicuramente preso.
Jon

1
@Trevor Non ne ho mai posseduto uno, ma avevo spesso usato la KSR-35 (una macchina meccanica basata su una camma molto impressionante) e le successive, molto più economiche, ASR-33 / KSR-33. Quello che mio padre aveva a casa nostra (prima di morire in un incidente stradale) non era uno di questi, ma era un precedente dispositivo a codice a 6 bit di dimensioni simili all'ASR-33.
Jon

0

Se questo è per un microcontrollore, non è possibile determinare la velocità di trasmissione dal suo oscillatore, ma un cristallo da 8 MHz è sicuramente in grado di creare 9600 baud.

Puoi misurare e dirmi l'ora esatta dal primo minimo all'ultimo massimo? - Il primo spazio mi sembra leggermente diverso. Mi sembra che tu stia usando un grilletto, puoi spostarlo leggermente più in alto perché se si tratta di un trigger di bordo e seduto sui picchi, l'oscilloscopio avrà probabilmente problemi a innescarsi.


Se campionate il segnale e misurate la larghezza minima incontrata, è banale calcolare la frequenza. Prima o poi un bit di inizio deve essere seguito da un '1'.
mckenzm,

0

Determinare la velocità di trasmissione da una traccia dell'oscilloscopio è talvolta ma non sempre possibile.

Il baud rate è l'inverso del periodo di bit ma il segnale può rimanere nello stesso stato per molti periodi di bit, quindi non è sempre possibile determinare in modo inequivocabile il periodo di bit dalla traccia dell'oscilloscopio.

Supponendo che i dati a 8 bit e nessuna parità la forma d'onda possa rappresentare un singolo byte con un periodo di bit di ~ 100 ns ma potrebbe anche rappresentare due byte con un periodo di bit di circa 50 ns.

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.