La seriale é fatta così?

Apr 25, 2005 10 Replies

Salve Ng, una delucidazione



Se io invio un carattere nella seriale dal pin3 uscirà un segnale con questa forma?


S 1 2 3 4 5 6 7 8 P E __ __ __ __ __ __ __| |__| |__| |__| |__| |__| |__



Dove: S = bit di start



1-8 = bit dati che possono essere 0 o 1 a seconda del dato P = bit di parità E = bit di stop

in particolare quello che non capisco é:



la parità é facoltativa? ma lo stop é positivo o negativo? Il bit di stop dura come gli altri? i bit dati sono sempre 8 o anche meno?



Grazie



Gibe Modena Italy Utente Macintosh dal 1991 gibe[chiocciola]gosseyn[punto]com

Il 25 Apr 2005, 03:32, Gibe ha scritto:

Quasi esatto. In realta' sulle linee della RS232 i segnali sono negati. Cioe' lo 0 logico corrisponde ad una tensione positiva, mentre l'1 logico e' una tensione negativa.

Si'.

Lo stop corrisponde allo 0 logico, cioe' tensione positiva se riferita all' RS232.

Di solito si', ma e' programmabile a 1, 1.5 o 2 bit. Tieni presente che questo e' il tempo che viene inserito dall'UART quando c'e' una trasmissione continua di dati. Se i dati vengono trasmessi con delle pause, per esempio nel caso della tastiera di un terminale, la durata dello stop e' indefinitivamente lunga.

Anche meno, ma in teoria potrebbero essere anche di piu'. Normalmente le UART possono essere programmate per trasmettere dati a 5, 6, 7, 8 bit.

Tutto chiaro adesso? Ciao.

-------------------------------- Inviato via

formatting link

"Gibe" ha scritto nel messaggio news: snipped-for-privacy@powernews.iol.it...

Esatto, solamente che il bit di stop è negato rispetto allo start bit. Tu hai indicato lo start bit come un livello alto, che corrisponde allo 0 logico... infatti la seriale in "posizione di riposo" si trova al livello logico 1, è a questo livello che lo stop bit riporta il segnale!

Si

Vedi sopra

I bit durano tutti allo stesso modo, ma per alcuni protocolli i bit di stop potrebbero essere anche 2. Inoltre capisci anche da solo che se trasmetti un solo byte il bit di stop si fonde con lo stato di riposo della seriale quindi la sua durata tende all'infinito! :-)

Di solito 8, ma anche 7. Questo perché 7 bit servono per codificare un carattere ASCII e 8 bit compongono un byte, ma nulla vieta di fare diversamente...

J.

"Gibe" ha scritto

formatting link

Per parita' stop ecc hanno gia' detto gli altri.

ciao Claudio F

Cut-----------

Molto esauriente, adesso il mio vero dubbio, questi 2 segnali sono validi (ho girato i livelli che adesso sono corretti e ho tolto la parita)?

S 1 2 3 4 5 6 7 8 E __ _______________________________ |__|

S 1 2 3 4 5 6 7 8 E __ ___________________ |______________|

In pratica nel primo esempio ho tutti i bit dati a 0 e nel secondo 4 a 1 e 4 a 0 Segnali del genere possono essere qualunque cosa, anche un rimbalzo di un contatto meccanico La seriale su cosa si basa per sapere che il byte é terminato? Dato il fronte di discesa del bit di start attende un tempo "T" pari a 10 "t" (t=durata di un singolo impulso impostato nei parametri della seriale) e considera chiuso il byte o cosa?

Grazie di tutto

Gibe Modena Italy Utente Macintosh dal 1991 gibe[chiocciola]gosseyn[punto]com

"Gibe" ha scritto nel messaggio news: snipped-for-privacy@powernews.iol.it...

I due segnali sono entrambi validi

Hai girato i segnali... quindi avendo negato la negazione hai la forma vera, nel primo segnale stai trasmettendo tutti 1, nel secondo quattro 1 e quattro

0.

Di solito non si collega un pulsante alla seriale! :-)

Quasi! In realtà dopo il fronte di discesa attende 1 bit e mezzo e campiona per 8 volte (se i bit dati sono 8) a distanza di un bit, infine controlla se il bit successivo è 1 (stop bit). Se lo stop è 1 mette il dato in coda, se è

0 restituisce un errore.

J.

Multimetro alla mano a riposo la seriale del mio computer segnala sul pin 3 -5V (gnd pin 5), che in teoria non é ne TTL ne EIA, cosa devo pensare? Devo collegare alla seriale un cip CMOS alimentato a 5V, devo fare un adattatore o funziona lo stesso (in realta funziona perche l'ho gia fatto ma era per stare sul sicuro)?

Gibe Modena Italy Utente Macintosh dal 1991 gibe[chiocciola]gosseyn[punto]com

Gibe ha scritto:

Andando a memoria: Mi sembra che il segnale uscisse dal pin 2.

Giuliano

questo articolo e` stato inviato via web dal servizio gratuito http://www.newsland.it/news segnala gli abusi ad abuse@newsland.it

Pestando alacremente sulla tastiera Gibe ebbe l'ardire di profferire:

Appena dopo l'inizio del bit di stop attende t+1/2t e successivamente

1t per ogni bit successivo in modo da campionare gorsso modo il centro del bit stesso evitando di beccare magari l'inizio o la fine dei fronti di salita/discesa. Ad ogni campionamento memorizza lo stato trovato. Dal momento che devi SAPERE con che modalità ricevi sai in anticipo quanti bit devi campionare...
MIPS: Meaningless Indicator of Processor Speed. News 2000 [v 2.06] / StopDialer / PopDuster - http://www.socket2000.com Akapulce portal: http://www.akapulce.net

Il 25 Apr 2005, 16:37, Gibe ha scritto:

Sono entrambi dati validi. Tieni presente che normalmente trasmettitore e ricevitore devono essere programmati per lavorare nella stessa modalita', cioe' stesso baud rate, n. bit, parita' ecc.

Essendo un protocollo asincrono, una volta iniziata la trasmisisone di un dato con lo start bit, il ricevitore non puo' fare niente di piu' che leggere i dati dal primo all'ultimo nella parte centrale di ogni bit nei tempi previsti per quella velocita' di trasmissione Almeno cosi' funzionavano le vecchie uart. In realta' da un po' di anni ogni bit viene campionato piu' volte, per esempio 16 volte, e fatto un semplice filtraggio digitale per mediare eventuali disturbi. Inoltre le uart fanno un'ultima verifica sul bit di stop. Se viene rilevato che non ha il valore corretto, viene segnalato uno specifico errore (frame error) che puo' indicare un disturbo o, piu' probabilmente, che il ricevitore aveva erroneamente interpretato uno start bit, oppure che c'e' una discordanza nel formato dei dati o di velocita'. Ciao.

-------------------------------- Inviato via

formatting link

"Gibe" ha scritto

I livelli validi vanno da +/-3V in su, il massimo non lo ricordo, forse

+/-15

Un'altra seriale potrebbe fornire valori differenti, quindi meglio sempre ragionare nell'ottica dei +/-3..+/-15.

ciao Claudio F

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required