Comprendere i protocolli seriali

Interessati?

R&S®Essentials | Nozioni fondamentali su oscilloscopi digitali e sonde

Comprendere i protocolli seriali

Trasferimento di dati digitali: Trasmissione parallela e seriale

I sistemi digitali si basano sul concetto di bit, che devono essere trasferiti tra due componenti o dispositivi. Esistono molti modi di spostare i bit, ma i diversi metodi di trasferimento dei bit possono essere separati in due categorie principali: trasmissione parallela e seriale.

Trasmissione parallela

La trasmissione parallela sposta più bit simultaneamente fra il trasmettitore e il ricevitore, di solito con un conduttore separato per ogni bit. Le connessioni parallele funzionano bene per connessioni a breve distanzae/o da punto a punto. Hanno una tempistica semplice e sono relativamente facili da analizzare. Ma per quanto popolare fosse una volta la trasmissione parallela, ora è stata in gran parte sostituita dalla trasmissione seriale.

Trasmissione seriale

Come suggerisce il nome, la trasmissione seriale invia un bit alla volta, con tutti i bit inviati sullo stesso conduttore. La trasmissione seriale funziona bene per le applicazioni a lunga distanza, le applicazioni che hanno bisogno di una maggiore velocità di trasmissionee le applicazioni in cui esistono più nodi. Tutto questo ha un costo: la trasmissione seriale è più complessa e più difficile da analizzare. Anche se è vero che i bit di dati sono inviati su un singolo conduttore o “filo”, per la maggior parte i protocolli seriali utilizzano più conduttori.

Oltre al filo per i bit di dati, molti protocolli aggiungono anche un segnale di clock, qualche tipo di controllo o funzione di indirizzamento per più nodi.

Trasmissione parallela

Trasmissione seriale

Esempi di protocollo seriale

I protocolli seriali sono utilizzati in una grande varietà di applicazioni. I tre principali protocolli seriali utilizzati per applicazioni generiche sono UAR,, I²C e SPI..

Una categoria speciale di protocolli seriali sono quelli utilizzati nell’industria automobilistica, come CAN, LIe FlexRay. Questi protocolli sono stati progettati per soddisfare i requisiti impegnativi dei veicoli, come fornire un funzionamento affidabile a un mix di velocità sia basse sia alte e in un ambiente rumoroso.

Applicazioni generiche

UART (Universal Asynchronous Receiver/Transmitter)

  • Protocollo seriale classico
  • facile da implementare
  • è utilizzato nelle porte seriali e COM dei PC da decenni

I²C (Inter-IC)

  • Comunicazione tra circuiti integrati (e altro)

SPI (Serial Peripheral Interface)

  • Velocità maggiore di I²C
  • utilizza più fili ed è generalmente più complesso

Applicazioni automobilistiche

CAN (Controller Area Network)

  • Alta velocità
  • spesso utilizzata con i sensori

LIN (Local Interconnect Network)

  • Velocità inferiore
  • utilizzata con accessori (per esempio controllo finestrini, specchietti)

FlexRay

  • Maggiore velocità con ridondanza

Caratteristiche dei protocolli seriali

Anche se i dettagli di implementazione differiscono tra i protocolli, tutti i protocolli seriali hanno quattro caratteristiche di base, che sono importanti anche per l’analisi e la decodifica dei dati seriali:

  • Livelli: come le tensioni sono utilizzate per rappresentare 0 o 1
  • Temporizzazione: quanto spesso sono inviati i bit (tempo dei bit)
  • Framing: come i bit sono organizzati in gruppi e il ruolo di ogni bit o gruppo di bit
  • Protocollo: quali messaggi sono scambiati in quali circostanze

Livelli

Prima di eseguire qualsiasi tipo di decodifica digitale, dobbiamo essere in grado di distinguere gli 1 e gli 0. In altre parole, come sono determinati i valori dei bit dai livelli di tensione? Un approccio semplice sarebbe quello di definire che una tensione “bassa” è uguale a zero e una tensione “alta” è uguale a uno. In effetti, è così che funzionano alcuni protocolli seriali.
I protocolli seriali utilizzati in ambienti difficili, come l’automotive, spesso utilizzano una tensione differenziale, poiché i segnali differenziali tendono a essere più immuni al rumore. Differenziale significa che uno 0 o un 1 è definito in base alla differenza tra due tensioni, piuttosto che rispetto alla massa.

Nota: Le sonde differenziali sono molto utili per queste misure.

Temporizzazione

Definire i livelli di tensione “0” e “1” non è sufficiente per determinare quali bit si stanno ricevendo. Inoltre, è importante comprendere quanto velocemente sono generati i bit o, in altre parole, qual è il “tempo di bit” o “bit rate”.
Per decodificare i dati seriali, il ricevitore o lo strumento deve utilizzare lo stesso bit rate del trasmettitore.

Framing

I protocolli seriali organizzano tipicamente i bit nei cosiddetti frame. I singoli bit o gruppi di bit nel frame hanno significati definiti. Per decodificare correttamente i frame, è necessaria una certa conoscenza di questa struttura.
Per esempio, quando si decodifica il protocollo seriale UART è importante sapere che lo stato di inattività della linea è un livello di tensione alto. Una transizione da alto a basso è un “bit di inizio” che indica l’inizio del frame. Inoltre, è necessario comprendere quanti bit di dati leggere, così come il fatto che c’è un bit di stop ad alto livello di tensione che termina il frame, seguito da un ritorno allo stato inattivo. Conoscendo la struttura del frame, i dati dell’utente possono essere estratti dal flusso di bit seriale, oltre a ricavare altre informazioni sulla trasmissione.

I bit sono di solito organizzati in “frame”; ogni bit o gruppo di bit in un frame ha un significato definito

Protocollo

L’ultimo aspetto da considerare può essere chiamato “protocollo”. Una definizione generica di protocollo è un insieme di regole per codificare e scambiare informazioni. Possono esistere regole per come e quando i dati sono inviati, e i tipi e i significati dei messaggi scambiati tra gli endpoint.
Un semplice protocollo sarebbe quello di inviare i dati non appena sono disponibili, indipendentemente dal fatto che il ricevitore sia pronto per i dati o meno. Un protocollo più sofisticato sarebbe quello di utilizzare qualche meccanismo per chiedere il permesso prima di inviare i dati. Un protocollo ancora più sofisticato coinvolgerebbe il mittente in attesa di una conferma esplicita che i dati sono stati ricevuti correttamente prima di inviare altri dati o inviare nuovamente i dati mancanti o errati.

Decodifica dei protocolli seriali

In passato, i protocolli seriali erano tipicamente decodificati utilizzando speciali tester di protocollo dedicati. Oggi il metodo più comune è l’utilizzo di un moderno oscilloscopio a memoria digitale, con uno o più canali. Dopo aver scelto il protocollo seriale di interesse, i livelli, la temporizzazione e il framing devono essere configurati per corrispondere al segnale seriale analizzato. Utilizzando queste informazioni, l’oscilloscopio produce risultati sotto forma di livelli di tensione grezzi, bit rilevati e frame il cui contenuto può essere visualizzato in binario, esadecimale o ASCII. La decodifica seriale sugli oscilloscopi spesso include anche funzionalità aggiuntive come il trigger su simboli specifici all’interno del frame, l’assegnazione di etichette leggibili dall’uomo a modelli definiti dall’utente e l’esportazione di dati.

Riassunto

I protocolli seriali sono utilizzati per spostare i bit in modo sequenziale, o uno alla volta, tra i componenti o tra dispositivi separati.

Le comunicazioni seriali sono utilizzate in quasi tutti i dispositivi digitali

I protocolli seriali possono essere divisi in:

  • standard generici come UART, I²C e SPI
  • protocolli più specifici per le applicazioni, come CAN, LIN e FlexRay (utilizzati principalmente nel settore automobilistico)

Tutti i protocolli seriali hanno determinate caratteristiche, come ad esempio:

  • come le tensioni sono mappate in bit,
  • la temporizzazione o il bit rate,
  • come i bit sono organizzati in unità di messaggio, o frame, nonché
  • i tipi di frame scambiati e le regole per quando ogni tipo di frame è inviato.

I moderni oscilloscopi digitali sono ora lo strumento preferito per analizzare e decodificare i dati seriali.

Per qualsiasi domanda sui protocolli seriali o sulla decodifica dei protocolli seriali, i nostri esperti forniranno assistenza.

Siete curiosi di saperne di più sui fondamenti dei test?

Iscrivetevi alla nostra newsletter