|
Wiki
UniCrema
Materie per semestre
Materie per anno
Materie per laurea
Help
|
|
Uni.RW-9Marzo History
Hide minor edits - Show changes to output
Changed line 33 from:
Lo standard RS-232 non obbliga all'utilizzo di uno specifico connettore. Per PC ci sono gli attuali DB9 (a 9 pin) e i vecchi DB25 (a 25 pin), mentre per applicazioni industriali ci sono vari altri tipi più efficienti come quelli a morsetti. \\
to:
Lo standard RS-232 non obbliga all'utilizzo di uno specifico connettore. Per PC ci sono gli attuali DB9 (a 9 pin) e i vecchi DB25 (a 25 pin), mentre per applicazioni industriali ci sono altri tipi più efficienti come quelli a morsetti. \\
Changed line 39 from:
Come abbiamo già detto lo standard RS-232 non definisce come deve essere fatta la presa di una seriale, ma i connettori consumer citati prima sono stati comunque standardizzati. Dagli schemi del DB25 e DB9 mostrati accanto si notano alcune linee rosse, che rappresentano delle ponticellature che permettono di usare solo i cavi TX, RX e GND. Il DB9 riduce drasticamente il numero di pin rispetto ai 25 del vecchio standard, così da occupare meno spazio a livello hardware e possa starci ad esempio su laptop.\\
to:
Come abbiamo già detto, lo standard RS-232 non definisce come deve essere fatta la presa di una seriale, ma i connettori consumer citati prima sono stati comunque standardizzati. Dagli schemi del DB25 e DB9 mostrati accanto si notano alcune linee rosse, che rappresentano delle ponticellature che permettono di usare solo i cavi TX, RX e GND. Il DB9 riduce drasticamente il numero di pin rispetto ai 25 del vecchio standard, così da occupare meno spazio a livello hardware e possa starci ad esempio su laptop.\\
Changed line 70 from:
* costo del cablaggio (cavo, prese, ...) molto basso, siamo nei limiti inferiori dei costi possibili di cablaggio
to:
* costo del cablaggio (cavo, prese, ...) molto basso, siamo nei limiti inferiori dei costi possibili
Changed line 77 from:
La lezione si conclude con l'esercizio proposto sulle slide: scrivere un protocollo di comunicazione seriale fra due processi su due pc diversi in grado di riprendersi anche a fronte di disconnessioni e riconnessioni successive e/o di errori di protocollo. Si tratta di un problema che chi progetta applicazioni vere deve porsi, perché non si può assumere che ogni bit inviato arrivi correttamente a destinazione. Si deve invece partire dall'assunzione che la trasmissione può sbagliare, e quindi dobbiamo riuscire a capire se qualcosa è andato storto, che cosa ha fallito, e come rimettere le cose a posto.\\
to:
La lezione si conclude con l'esercizio proposto sulle slide: scrivere un protocollo di comunicazione seriale fra due processi su due pc diversi in grado di riprendersi anche a fronte di disconnessioni e riconnessioni successive e/o di errori di protocollo. Si tratta di un problema che chi progetta applicazioni vere deve porsi, perché non si può assumere che ogni bit inviato arrivi correttamente a destinazione. Si deve invece partire dall'assunzione che la trasmissione può fallire, e quindi dobbiamo riuscire a capire se e cosa è andato storto, e come rimettere le cose a posto.\\
Changed lines 103-104 from:
Lo slave a questo punto ha ricevuto tutto: funzione + parametri. Come prima cosa manda al master un ack (o un nack se non ha ricevuto abbastanza parametri), poi i vari byte contenenti la risposta, poi i CRC della risposta e infine il solito EOT.\\ Il master chiude la menata trasmettendo un DLE+ACK se è andato tutto a buon fine, altrimenti un DLE+NACK se ci sono problemi.
to:
Lo slave a questo punto ha ricevuto tutto: funzione + parametri. Come prima cosa manda al master un ack (o un nack se non ha ricevuto abbastanza parametri), poi i vari byte contenenti la risposta, poi i CRC della risposta e infine il solito EOT.\\ Il master chiude la menata trasmettendo un DLE+ACK se è andato tutto a buon fine, o un DLE+NACK se ci sono problemi.
Added line 92:
Added line 98:
Changed lines 20-21 from:
* baud rate, che indica il numero di transizioni del segnale che avvengono in un secondo lungo la linea
to:
* baud rate, che indica il numero di transizioni del segnale che avvengono in un secondo lungo la linea. Poiché nello standard RS-232 la trasmissione è binaria (si hanno due soli livelli: uno alto ed uno basso), il baud rate e bps coincidono numericamente.
Added line 43:
Changed line 45 from:
Il segnale è modulato in partenza e demodulato in arrivo, e sotto in blu sono riportate le tacche del tempo che indicano la velocità con cui avviene la campionatura. Il segnale oscilla tra +12 e -12 volt (è portato a questa ampiezza proprio nella fase di modulazione), che sono i valori standard stabiliti per la seriale. A -12V è associato il bit 1, mentre a +12V il bit 0. Ovviamente si tratta di valori indicativi: normalmente sono ammessi tutti i voltaggi che superino di almeno tre volte lo zero. Il segnale infatti perde differenza di potenziale durante il tragitto, affievolendosi in modo direttamente proporzionale sia alla lunghezza che alla qualità del cavo. Poiché ad esempio il segnale può partire da 12V e arrivare con 7V, si mantiene un intervallo di indeterminatezza sopra e sotto i 3V, superato il quale tutti i voltaggi sono considerati validi.
to:
Il segnale è modulato in partenza e demodulato in arrivo, e sotto in blu sono riportate le tacche del tempo che indicano la velocità con cui avviene la campionatura. Il segnale oscilla tra +12 e -12 volt (è portato a questa ampiezza proprio nella fase di modulazione), che sono i valori standard stabiliti per la seriale. A -12V è associato il bit 1, mentre a +12V il bit 0. Ovviamente si tratta di valori indicativi: normalmente sono ammessi tutti i voltaggi che stiano almeno a 3 volt dallo zero. Il segnale infatti perde differenza di potenziale durante il tragitto, affievolendosi in modo direttamente proporzionale sia alla lunghezza che alla qualità del cavo. Poiché ad esempio il segnale può partire da 12V e arrivare con 7V, si mantiene un intervallo di indeterminatezza sopra e sotto i 3V, superato il quale tutti i voltaggi sono considerati validi.
Changed line 27 from:
to:
Changed line 58 from:
to:
Changed line 80 from:
to:
Changed line 1 from:
(:title Reti wireless - Appunti del 9 Marzo:)
to:
(:title Reti wireless - RS-232:)
Changed lines 5-7 from:
%titolo%''':: Reti wireless - Appunti del 9 Marzo ::'''
to:
%titolo%''':: Reti wireless - RS-232 ::'''
%center% %sottotitolo% Appunti del 9 Marzo
Changed lines 89-90 from:
to:
Added line 94:
Changed lines 74-99 from:
to:
La lezione si conclude con l'esercizio proposto sulle slide: scrivere un protocollo di comunicazione seriale fra due processi su due pc diversi in grado di riprendersi anche a fronte di disconnessioni e riconnessioni successive e/o di errori di protocollo. Si tratta di un problema che chi progetta applicazioni vere deve porsi, perché non si può assumere che ogni bit inviato arrivi correttamente a destinazione. Si deve invece partire dall'assunzione che la trasmissione può sbagliare, e quindi dobbiamo riuscire a capire se qualcosa è andato storto, che cosa ha fallito, e come rimettere le cose a posto.\\ Il protocollo proposto è quello sviluppato dalla Siemens, molto diffuso per le comunicazioni con i PLC.
>>evvai<< '''Rapacioli dixit'''\\ "Come ogni informatico che si rispetti l'ho copiato. Siccome qualcuno ci aveva pensato io ho detto 'perché devo pensarci anch'io che poi mi fumano le orecchie?'. Poi se penso molto sparo fuori minchiate, quindi l'ho copiato." >><<
In questo protocollo un PC riveste il ruolo di master della comunicazione e l'altro (slave) gli risponde solo se interrogato. C'è inoltre una fase di sicronizzazione iniziale, del tipo "sto per farti una domanda, sei pronto?" "sì sono pronto" "bene, rispondi a..". Solo che la prima risposta alla domanda da parte del ricevente è la domanda stessa. Prima di confondere troppo le idee, vediamo lo schema della fase di sincronizzazione.
'''Fase 1''' %lframe%Attach:RW-siemens1.gif La prima operazione che fa il master in fase di inizializzazione è svuotare i suoi buffer input/output, così qualunque residuo precedente di conversazione viene buttato via. I buffer sono infatti molto utili per la velocità di esecuzione dei programmi, ma sono un casino per la gestione dei protocolli perché c'è il rischio di considerare attuale una risposta ad una domanda precedente. Due precisazioni: 1. sono solo i buffer del master ad essere svuotati, 2. questi possono riempirsi un attimo dopo perché c'erano ancora delle comunicazioni pendenti, ma va beh, è un rischio accettabile. \\ La sincronizzazione continua con l'invio del comando '''STX''', trasmesso come uno dei primi 30 caratteri della tabella ASCII, a cui normalmente non corrisponde niente di indispensabile per una comunicazione, ma che tornano utili in questi casi. Al comando segue la domanda che vuole fare il master, trasmessa sottoforma di funzione.\\ Lo slave dà il comando '''DLE''' e rispedisce al mittente la stessa funzione, dimostrando così che ha capito la domanda. A questo punto si può assumere che la trasmissione è andata bene e che è lecito aspettarsi una risposta.
'''Fase 2''' %lframe%Attach:RW-siemens2.gif Conclusa con successo la sincronizzazione, il master rimanda allo slave il comando STX seguito da alcuni byte che rappresentano i parametri della funzione, due CRC per fare il controllo sulla correttezza dei dati inviati, e infine il segnale [@end of transmission@].
'''Fase 3''' %lframe%Attach:RW-siemens3.gif Lo slave a questo punto ha ricevuto tutto: funzione + parametri. Come prima cosa manda al master un ack (o un nack se non ha ricevuto abbastanza parametri), poi i vari byte contenenti la risposta, poi i CRC della risposta e infine il solito EOT.\\ Il master chiude la menata trasmettendo un DLE+ACK se è andato tutto a buon fine, altrimenti un DLE+NACK se ci sono problemi.
Ovviamente il master e lo slave non attendono indefinitamente la comunicazione dell'altro, ma c'è un timeout, superato il quale si assume che l'altro non risponderà mai e si chiude l'attesa.
Changed lines 60-74 from:
to:
Ricapitoliamo le caratteristiche e i limiti della RS-232: * velocità di trasferimento dei dati, relativamente bassa (massimo 115000 bps) * lunghezza del cavo, circa 15 metri (dipende anche dalla qualità del cavo stesso) * resistenza al rumore di contesto, decisamente scarsa. Se il cavo passa per ambienti inquinati si lascia influenzare – e quindi sporcare – moltissimo. Basta ad esempio che il voltaggio nel cavo aumenti di 10 volt (passando ad esempio vicino a un motore), e quello che era a -12V va a -2V, e quindi sarà ignorato devastando la comunicazione. I cavi seriali RS-232 non sono quindi in grado di funzionare correttamente quando il contesto è particolarmente ostile, perché misurano la tensione rispetto ad uno zero. Se in un ambiente tranquillo/domestico come quello di ufficio la trasmissione va bene, in un ambiente industriale no, basta farlo passare vicino a dei motori perché il risultato sia pesantemente inquinato. Va ancora peggio se viene adoperato su un'automobile, un ambiente estremamente sporco: batterie, relè, motori, .. \\ Concludendo, cavo seriale: poca resistenza al rumore di contesto * affidabilità, buona nelle condizioni ottimali, quindi in contesti non stressati * costo dei nodi, il più basso possibile: se devo fare una comunicazione tra due oggetti è sicuramente il meno costoso * costo del cablaggio (cavo, prese, ...) molto basso, siamo nei limiti inferiori dei costi possibili di cablaggio * il numero di punti da connettere sono due. L'RS-232 è infatti single-ended, quindi point-to-point, quindi non utilizzabile per realizzare un bus * i componenti che fanno uso di interfaccia seriale sono normalmente alimentati
Tipici utilizzi dell'interfaccia RS-232: stampanti (soprattutto in ambienti industriali), device a bassa velocità (ad esempio tutte le componenti di un bancomat, stampante che stampa lo scontrino compresa), comunicazioni tra CPU, o ad esempio nelle connessioni tra componenti di cellulari consumer, eccetera.\\ Si noti bene che le linee seriali continuano ad essere utilizzate pesantemente nell'industria nonostante stiano sparendo in ambienti consumer.
..to be continued
Changed lines 41-42 from:
%center%RW-segnaleSeriale.gif
to:
%center%Attach:RW-segnaleSeriale.gif
Changed line 49 from:
In rosso il segnale ideale, mentre in blu quello reale. Nella figura di sinistra il time slice è sufficientemente ampio perché si riesca a captare un segnale reale ammissibile; mentre nella figura a destra il time slice ridotto, ad esempio tra t'_2_'-t'_3_', fa campionare in modo errato perché il segnale non ha fatto in tempo a superare la soglia dei 3 volt
to:
''In rosso il segnale ideale, mentre in blu quello reale. Nella figura di sinistra il time slice è sufficientemente ampio perché si riesca a captare un segnale reale ammissibile; mentre nella figura a destra il time slice ridotto, ad esempio tra t'_2_'-t'_3_', fa campionare in modo errato perché il segnale non ha fatto in tempo a superare la soglia dei 3 volt''
Changed lines 46-47 from:
%center%%frame%Attach:RW-affidabSeriale.gif\\
to:
%center%Attach:RW-affidabSeriale.gif\\
Added line 49:
Changed line 8 from:
Tutte le immagini di questa pagina sono prese dalle slide del prof [[Rapacioli->Giovanni Rapacioli]]
to:
Alcune immagini di questa pagina sono prese dalle slide del prof [[Rapacioli->Giovanni Rapacioli]]
Changed lines 40-41 from:
to:
Osservando con un oscilloscopio il segnale seriale si osserva una forma come quella sottostante: %center%RW-segnaleSeriale.gif Il segnale è modulato in partenza e demodulato in arrivo, e sotto in blu sono riportate le tacche del tempo che indicano la velocità con cui avviene la campionatura. Il segnale oscilla tra +12 e -12 volt (è portato a questa ampiezza proprio nella fase di modulazione), che sono i valori standard stabiliti per la seriale. A -12V è associato il bit 1, mentre a +12V il bit 0. Ovviamente si tratta di valori indicativi: normalmente sono ammessi tutti i voltaggi che superino di almeno tre volte lo zero. Il segnale infatti perde differenza di potenziale durante il tragitto, affievolendosi in modo direttamente proporzionale sia alla lunghezza che alla qualità del cavo. Poiché ad esempio il segnale può partire da 12V e arrivare con 7V, si mantiene un intervallo di indeterminatezza sopra e sotto i 3V, superato il quale tutti i voltaggi sono considerati validi.
Elenchiamo una serie di parametri della RS-232: * la velocità di una linea seriale va da un minimo di 110 bps, ad un massimo - attuale - di 115000 bps. Più aumentano le velocità e più performanti devono essere le apparecchiature ai due capi del cavo di comunicazione, o una spara così velocemente le informazioni che l'altra non ci sta dietro e va in over-run. Inoltre è interessante osservare il rapporto tra time slice (campionatura del segnale) e baud rate. Ad esempio se trasmetto a 110 ho un time slice di 9,10 secondi, che è un'eternità; mentre se trasmetto a 19200 ho 52 microsecondi di intervallo di campionamento. Si dice che l'affidabilità della linea seriale è inversamente proporzionale alla velocità a cui trasmette: più veloce vado e più errori avrò (vedi figura sotto) %center%%frame%Attach:RW-affidabSeriale.gif\\ In rosso il segnale ideale, mentre in blu quello reale. Nella figura di sinistra il time slice è sufficientemente ampio perché si riesca a captare un segnale reale ammissibile; mentre nella figura a destra il time slice ridotto, ad esempio tra t'_2_'-t'_3_', fa campionare in modo errato perché il segnale non ha fatto in tempo a superare la soglia dei 3 volt * parità, che è l'unico controllo fatto dalla seriale sulla bontà del dato trasmesso. Può essere parità pari, dispari, o nessuna * bit di stop, che indicano la fine di una trama di trasmissione, e che possono essere 1, 1.5 o 2 * numero di bit per carattere, che possono essere 5,6,7,8 (anche se normalmente è o 7 o 8)
>>evvai<< '''Rapacioli dixit'''\\ "Se scegli meno di 5 bit per un carattere devono averti picchiato da bambino." >><<
...to be continued
Changed line 30 from:
to:
Changed lines 32-33 from:
I connettori per PC sono di tipo consumer, che costano poco (sui 20 centesimi) ma che non garantiscono buone performance. Ad esempio, la maggior parte di questi non arrivano a 100 inserimenti, ma si usurano prima (soprattutto la porta femmina, che si slabbra facilmente interrompendo la continuità elettrica tra i pin dei connettori). I connettori di tipo industriale (come quello del prof a quattro fili), costano molto di più (a partire da 20 euro) ma garantiscono un numero di inserimenti noto e sono certificati.\\
to:
I connettori per PC sono di tipo consumer, che costano poco (sui 20 centesimi) ma che non garantiscono buone performance. Ad esempio, la maggior parte di questi non arrivano a 100 inserimenti, ma si usurano prima (soprattutto la porta femmina, che si slabbra facilmente interrompendo la continuità elettrica tra i pin dei connettori). I connettori di tipo industriale (come quello del prof a quattro fili), costano molto di più (a partire da 20 euro) ma garantiscono un numero di inserimenti noto e sono certificati.
Changed line 35 from:
to:
Changed lines 29-30 from:
%rframe%Attach:RW-DB25.gif
to:
%rframe%Attach:RW-DB25.gif\\ Connettore DB25
Changed lines 33-34 from:
%rframe%Attach:RW-DB9.gif
to:
%rframe%Attach:RW-DB9.gif\\ Connettore DB9
Added lines 1-41:
(:title Reti wireless - Appunti del 9 Marzo:) [[Torna alla pagina di Reti wireless-> Reti wireless]] ----
%titolo%''':: Reti wireless - Appunti del 9 Marzo ::'''
>>frame<< Tutte le immagini di questa pagina sono prese dalle slide del prof [[Rapacioli->Giovanni Rapacioli]] >><<
!!RS-232 L'interfaccia seriale '''RS-232''' (Recommended Standard 232) permette lo scambio di dati tra dispositivi digitali, ed è la più semplice possibile e la meno costosa su cavo. È stata standardizzata da diversi enti in anni successivi (RS-232 è la sigla data dall'ente di certificazione EIA, mentre per l'europeo CCITT è chiamata V.21/V.24), rimanendo sostanzialmente uguale a sé stessa. Si noti che lo standard riguarda solo le caratteristiche fisico/elettriche, e infatti contiene solo indicazioni su come deve essere modulato il segnale (forma, voltaggi, frequenze, ..) su un cavo seriale. Lo standard quindi non dice nulla sul come deve avvenire la trasmissione dei dati, anche se col tempo sono stati elaborati protocolli condivisi tra i maggiori produttori.
Con una RS-232 i singoli bit che compongono un byte sono trasmessi uno dopo l'altro in serie (da cui ''seriale'') lungo il cavo. Esistono protocolli alternativi come il ''parallelo'' in cui i dati sono trasmessi contemporaneamente su più fili, così che possano essere inviati più byte in un colpo solo. L'interfaccia parallela comunque non ha avuto molta fortuna, mentre il seriale continua ad essere pesantemente usato, nonostante tutti i suoi limiti.
La velocità di una linea seriale si può calcolare in due modi: * bit per secondo (bps), che indica il numero di bit che vengono trasmessi in un secondo lungo la linea * baud rate, che indica il numero di transizioni del segnale che avvengono in un secondo lungo la linea
Anche la trasmissione dei dati può avvenire in due modi: * half-duplex, in cui la trasmissione è bidirezionale ma non avviene contemporaneamente nelle due direzioni * full-duplex, in cui la trasmissione è bidirezionale e contemporanea. Lo standard RS-232 permette una trasmissione di questo tipo in quanto è utilizzato un conduttore separato per ciascun verso di trasmissione delle informazioni
>>evvai<< '''Rapacioli dixit'''\\ "Half-duplex è una discussione normale, la full-duplex è una conversazione tra suocere" >><<
%rframe%Attach:RW-DB25.gif Lo standard RS-232 non obbliga all'utilizzo di uno specifico connettore. Per PC ci sono gli attuali DB9 (a 9 pin) e i vecchi DB25 (a 25 pin), mentre per applicazioni industriali ci sono vari altri tipi più efficienti come quelli a morsetti. \\ I connettori per PC sono di tipo consumer, che costano poco (sui 20 centesimi) ma che non garantiscono buone performance. Ad esempio, la maggior parte di questi non arrivano a 100 inserimenti, ma si usurano prima (soprattutto la porta femmina, che si slabbra facilmente interrompendo la continuità elettrica tra i pin dei connettori). I connettori di tipo industriale (come quello del prof a quattro fili), costano molto di più (a partire da 20 euro) ma garantiscono un numero di inserimenti noto e sono certificati.\\ %rframe%Attach:RW-DB9.gif Il costo e l'usura della cavetteria non sono aspetti da sottovalutare, e un punto di forza del wireless è che supera questi problemi. In applicazioni in cui è previsto un alto numero di inserzioni/deinserzioni basterebbero queste considerazioni per decidersi a passare da connessioni wired a quelle senza fili.\\ Come abbiamo già detto lo standard RS-232 non definisce come deve essere fatta la presa di una seriale, ma i connettori consumer citati prima sono stati comunque standardizzati. Dagli schemi del DB25 e DB9 mostrati accanto si notano alcune linee rosse, che rappresentano delle ponticellature che permettono di usare solo i cavi TX, RX e GND. Il DB9 riduce drasticamente il numero di pin rispetto ai 25 del vecchio standard, così da occupare meno spazio a livello hardware e possa starci ad esempio su laptop.\\ Ultima nota: il motivo per cui la parte attorno i connettori è fatta in metallo, è perché ad essa si allaccia la massa del cavo schermato, così da scaricare a terra.
..to be continued
---- [[Torna alla pagina di Reti wireless-> Reti wireless]]
|
|