📘 Capitolo 1 – Introduction (Schema Grafico Dettagliato con Spiegazioni e Frame)
1.1 Structure and Content 📚
Module 1: Intra-Vehicle Communication
- Analisi dei dispositivi interni al veicolo: ECU, sensori, attuatori
- Tecnologie di bus di comunicazione: CAN, LIN, FlexRay, MOST, Ethernet (T1/T1S)
- Sistemi operativi e suddivisione in domini
Module 2: Inter-Vehicle Communication
- Comunicazioni tra veicoli (V2V) e con infrastruttura (V2X)
- Tecnologie wireless: Bluetooth, LoRa, C-V2X, IEEE 802.11p
- Tipologie di messaggi, sincronizzazione GPS, gestione broadcast
1.2 Intra-Vehicle Evolution 🚗
Evoluzione da cablaggi punto-punto a bus condivisi
Aumento esponenziale delle ECU e delle loro connessioni: complessità O(n²)
Nuove tendenze progettuali:
- 🔁 Distribuzione delle funzioni su più ECU
- 📦 Integrazione di più funzioni in un’unica ECU per ridurre costi e peso
1.3 Architectures 🧱
🟦 Domain Architecture
- Un controller centrale per ciascun dominio (infotainment, powertrain, etc.)
- Software centralizzato su ECU ad alte prestazioni (HPC)
- ✔ Elevata potenza di calcolo
- ❌ Maggiore rigidità nei cablaggi e costi elevati
🟩 Zonal Architecture
- I nodi sono raggruppati in zone fisiche con mini-ethernet locali
- Comunicazione tra zone tramite backbone ad alta velocità
- ✔ Riduce lunghezza dei cavi, peso, costi e aumenta modularità
1.4 Comunicazioni e Protocolli 🧠
🔹 Concetti ISO/OSI
Nel contesto automotive si usano soprattutto:
- Physical Layer: trasmissione elettrica del segnale
- Data Link Layer: accesso al mezzo, gestione degli errori, sincronizzazione
📡 Protocolli di Comunicazione
🔹 CAN (Controller Area Network)
- Mezzo fisico: doppino intrecciato (CAN_H, CAN_L)
- Topologia: bus condiviso tra più nodi
- Accesso: CSMA/CR (Carrier Sense Multiple Access with Collision Resolution)
- Codifica: NRZ + bit stuffing
- Bitrate: fino a 1 Mbps
📦 Struttura del frame CAN (Standard)
| Campo | Descrizione |
|---|---|
| SOF | Start Of Frame (1 bit dominante) |
| ID | Identificativo messaggio (11 o 29 bit) |
| RTR | Richiesta remota |
| Control | Lunghezza dati (0–8 byte) + bit riservati |
| Data | Dati applicativi (0–64 bit) |
| CRC | Controllo di ridondanza ciclica (15 bit) |
| ACK | Conferma ricezione da altri nodi (2 bit) |
| EOF | Fine messaggio (7 bit recessivi) |
🔀 Bit Stuffing e Time Quanta nei protocolli automotive
🔹 Bit Stuffing (in particolare nel CAN)
- Utilizzato nelle trasmissioni NRZ per evitare lunghe sequenze senza transizioni (che renderebbero difficile la sincronizzazione dei bit).
- Regola: dopo 5 bit consecutivi uguali, viene inserito automaticamente un bit opposto dal trasmettitore.
- Questo bit “di stuffing” viene rimosso automaticamente dal ricevitore.
Esempio:
Dati originali: 1111100000111111
Dati trasmessi: 111110100001111101
^ ^
(bit stuffing)
- ❗ Serve a mantenere un sufficiente numero di transizioni nel flusso di bit per permettere al ricevitore di rimanere sincronizzato.
- ✅ Migliora l’affidabilità senza aumentare il carico dati apparente.
- ❌ Comporta un overhead variabile, dipendente dal contenuto trasmesso.
⏱️ Time Quanta (TQ) – temporizzazione nel CAN
Nel protocollo CAN, ogni bit non è trasmesso in un colpo solo, ma suddiviso in segmenti temporali detti Time Quanta (TQ).
🔧 Composizione del bit time:
| Segmento | Descrizione |
|---|---|
| Sync Segment | Allinea i nodi sul fronte del bit (1 TQ) |
| Propagation Segment | Compensa ritardi di propagazione fisici della linea |
| Phase Segment 1 | Tempo per eventuale ritardo; include il Sample Point |
| Phase Segment 2 | Permette aggiustamenti finali del clock; segue il Sample Point |
- Il numero totale di TQ determina la durata di un bit (Bit Time)
- I segmenti Phase1 e Phase2 sono regolabili in fase di sincronizzazione
🎯 Sample Point
- Posizione all’interno del bit in cui il ricevitore legge il valore
- Idealmente posizionato verso la fine del Phase Segment 1 (es. 87.5% del bit time)
🔁 SJW – Sync Jump Width
- Massimo numero di TQ che il bit time può “scivolare” in avanti o indietro per correggere differenze di clock tra nodi
- Valore tipico: 1–4 TQ
🔬 Esempio (con 16 TQ totali)
Bit time: 16 TQ = [1 | 5 | 7 | 3] → Sync | Prop | Phase1 | Phase2
Sample point = TQ 1 + 5 + 7 = TQ13 (81.25%)
Questo meccanismo permette al CAN di gestire sincronizzazione precisa tra nodi che utilizzano quarzi diversi, mantenendo affidabilità anche in ambienti elettricamente rumorosi.
❗ Errori nel CAN Bus
Il protocollo CAN include meccanismi di rilevamento e gestione degli errori estremamente robusti. Ogni nodo può rilevare, notificare e correggere gli errori per mantenere l’integrità della comunicazione.
🔍 Tipologie di errore rilevate
| Tipo di Errore | Descrizione |
|---|---|
| Bit Error | Il bit letto dal bus è diverso da quello trasmesso |
| Stuff Error | Il ricevitore rileva più di 5 bit uguali consecutivi (violazione stuffing) |
| CRC Error | Il campo CRC ricevuto non corrisponde a quello calcolato |
| Form Error | Struttura del frame non conforme (es. EOF errato) |
| ACK Error | Nessun nodo ha inviato l’ACK dopo il frame |
🛡️ Meccanismi di rilevamento
- Ogni nodo monitora il bus anche durante l’invio
- In caso di errore, il nodo trasmette un Error Frame (6 bit dominanti + 8 recessivi)
- Gli altri nodi ignorano il messaggio difettoso e considerano il bus occupato
🔄 Gestione degli errori: TEC e REC
Ogni nodo mantiene due contatori:
- TEC (Transmit Error Counter)
- REC (Receive Error Counter)
I contatori aumentano in caso di errore, diminuiscono se il messaggio è corretto
| Stato Nodo | Condizione TEC/REC | Azione |
|---|---|---|
| Error Active | TEC < 128, REC < 128 | Normale, può trasmettere e segnalare errori |
| Error Passive | TEC ≥ 128 o REC ≥ 128 | Può trasmettere ma non invia error frame attivi |
| Bus Off | TEC ≥ 256 | Nodo disconnesso automaticamente dalla rete |
- Il nodo bus off deve attendere una riconfigurazione software/manuale per riattivarsi
✅ Benefici del sistema di errore CAN
- ✅ Rilevazione rapida (< 5 bit)
- ✅ Isolamento automatico dei nodi difettosi
- ✅ Continuità di servizio anche in presenza di errori
- ✅ Affidabilità elevata in ambienti con rumore elettrico
🔹 CAN-FD
- Estensione del CAN con supporto a bitrate più alti e payload più grandi
- Due fasi: arbitraggio classico e fase dati veloce
📦 Frame CAN-FD
Come il CAN classico, con aggiunta di:
- EDL: indica modalità FD
- BRS: switch della velocità
- CRC esteso: 17 o 21 bit
🔹 LIN
- Protocollo semplice per dispositivi secondari
- Accesso: Time Triggered, guidato dal master
- Codifica: UART
- Error detection: sistema rudimentale di identificaione degli errori somma di tutti i bytes del payload modulo 256
📦 Frame LIN
- LIN Message: due componenti principali
- Message Header: Break, sync, id
- Message Response: Data, Checksum
| Campo | Descrizione |
|---|---|
| Break | Inizio frame (13 bit dominanti + 1 recessivo) |
| Sync | Byte di sincronizzazione (0x55) |
| Identifier | ID + bit di parità |
| Data | Fino a 8 byte |
| Checksum | Somma modulo 256 dei byte dati |
Nel protocollo LIN, esistono sei differenti tipologie di frame, ognuna con uno specifico uso funzionale:
1. Unconditional Frame
- ID: da
0x00a0x3B - Descrizione: è il tipo di frame più comune.
- Il master invia l’header, lo slave destinatario invia il response con i dati.
- Gli altri nodi ignorano il messaggio.
2. Event-Triggered Frame
- ID: da
0x00a0x3B - Descrizione: il master interroga più slave contemporaneamente.
- Se uno slave ha dati aggiornati, risponde.
- Se più slave rispondono insieme, si genera una collisione → il master invia un unconditional frame dedicato.
3. Sporadic Frame
- ID: da
0x00a0x3B - Descrizione: frame trasmesso dal master stesso solo se necessario, anche se originariamente lo slave doveva rispondere.
- Utile per ottimizzare la comunicazione quando solo il master possiede l’informazione.
4. Diagnostic Frame
- ID:
0x3C(request),0x3D(response) - Descrizione: comunicazione request-response tra master e slave per fini diagnostici (es. lettura/scrittura di parametri).
- Il contenuto può superare i normali 8 byte, gestito in blocchi.
5. User-Defined Frame
- ID:
0x3E - Descrizione: utilizzabile liberamente per scopi personalizzati del costruttore.
- Non standardizzato.
6. Reserved Frame
- ID:
0x3F - Descrizione: riservato per uso futuro e non utilizzabile nelle comunicazioni LIN standard.
Ogni tipo di frame LIN è identificato univocamente attraverso l’Identifier (ID) e la presenza o meno di campi come il checksum o la lunghezza dei dati, gestiti dal master. Questa classificazione consente una comunicazione flessibile e deterministica, adattata alle esigenze del veicolo.
🔹 FlexRay
🔴 Descrizione Dettagliata: FlexRay
✅ Cos’è FlexRay?
FlexRay è un protocollo di comunicazione deterministico ad alta affidabilità progettato per sistemi safety-critical automotive come:
- Steer-by-wire / Brake-by-wire
- Controllo chassis e attuatori
- Sistemi ADAS avanzati e guida autonoma
⚙️ Caratteristiche Tecniche
| Caratteristica | Dettaglio |
|---|---|
| Topologia | Star, Bus o mista |
| Mezzo fisico | Twisted Pair (2 o 4 fili, dual-channel) |
| Bitrate | 10 Mbps per canale (fino a 20 Mbps totali) |
| Accesso al mezzo | TDMA (segmento statico) + CSMA/CR (segmento dinamico) |
| Determinismo | ✅ Sì, con slot preallocati |
| Redundancy | ✅ Dual channel per fault-tolerance o maggiore banda |
| Codifica | NRZ senza bit stuffing |
🧠 Struttura del Ciclo di Comunicazione
Ogni ciclo di comunicazione FlexRay è diviso in 4 segmenti principali:
Static Segment 🧱
- Suddiviso in slot temporali numerati (es. slot 0, 1, 2…)
- Ogni nodo ha uno o più slot predefiniti in cui può trasmettere in esclusiva
- I frame inviati in questo segmento sono deterministici: ritardi e collisioni sono impossibili
- Adatto a segnali periodici, safety-critical (es. sterzo, freni)
Dynamic Segment ⚡
- Ogni ciclo può avere uno spazio dinamico condiviso
- Suddiviso in mini-slot: ogni nodo ha un turno per “tentare” la trasmissione
- Funziona come un CAN simulato: se un nodo ha dati da inviare, li trasmette; altrimenti salta il turno
- Utile per dati asincroni, evento-driven (es. messaggi ADAS, diagnostica non ciclica)
Symbol Window 🌀
- Utilizzata per trasmettere simboli di controllo o messaggi speciali (es. inizio rete, sincronizzazione)
- Può essere usata per segnalare condizioni di bootstrap o avvio
Network Idle Time (NIT) 💤
- Segmento finale usato per stabilizzare e sincronizzare il clock dei nodi
- Garantisce che tutti i nodi completino l’elaborazione prima dell’inizio del ciclo successivo
📦 Formato del Frame FlexRay
| Campo | Descrizione |
|---|---|
| Control | 5 bit: tipo frame, static/dynamic, sync/startup/null |
| Frame ID | 11 bit: identificatore unico del frame |
| Length | 7 bit: lunghezza del payload (fino a 254 byte) |
| Header CRC | 11 bit: controllo d’errore per l’header |
| Cycle Count | 6 bit: numero del ciclo corrente |
| Payload | Dati trasmessi (0–254 byte) |
| Trailer | CRC payload (24 bit) |
- Nessun bit stuffing è usato → alta precisione temporale
- Sample point noto e sincronizzato tramite frame structure
⏱️ Sincronizzazione Temporale
FlexRay implementa una sincronizzazione distribuita, senza master clock. Il meccanismo si basa su nodi speciali detti “cold-start nodes”:
- Quando la rete è inattiva, uno dei nodi cold-start trasmette un Wakeup Pattern per “risvegliare” la rete
- Trasmette un simbolo speciale detto Collision Avoidance Symbol (CAS) che innesca la sincronizzazione
- Il nodo cold-start assume il ruolo di Leading Coldstart Node e imposta il Cycle Counter = 0
- Gli altri nodi attendono un numero definito di cicli per sincronizzarsi (es. 4 cicli)
- Tutti i nodi avviano la comunicazione sincronizzata, allineando il proprio clock al ritmo del ciclo globale
Il Cycle Counter incrementa ad ogni ciclo e consente a tutti i nodi di conoscere in quale fase temporale si trovano.
Grazie a questa sincronizzazione:
- Il TDMA funziona in modo preciso
- Si evitano desincronizzazioni tra nodi
- Il sistema può essere avviato anche da un singolo nodo
✅ Vantaggi
- ✅ Trasmissione deterministica e affidabile
- ✅ Dual-channel per tolleranza ai guasti
- ✅ Alta immunità ai disturbi (EMI)
- ✅ Statico + Dinamico nello stesso ciclo
- ✅ Alta sincronizzazione temporale distribuita
❌ Svantaggi
- ❌ Costo più elevato rispetto a CAN o LIN
- ❌ Rete statica e poco flessibile
- ❌ Difficile aggiornare la configurazione a runtime
🛠️ Applicazioni Tipiche
- Sistemi steer/brake-by-wire
- Sospensioni attive, ESP
- Sistemi ADAS sincroni con più sensori
- Safety-critical ECU interconnect
🔁 Confronto sintetico
| Caratteristica | FlexRay | CAN | LIN | Ethernet |
|---|---|---|---|---|
| Determinismo | ✅ Sì (TDMA) | ❌ No | ✅ Sì (Time-Trigger) | ❌ Solo con TSN |
| Banda | 10–20 Mbps | 1–6 Mbps | ≤ 20 kbps | 100 Mbps – 10 Gbps |
| Topologia | Star / Bus | Bus | Bus (Master/Slave) | Star (con switch) |
| Fault tolerance | ✅ Dual channel | ❌ | ❌ | ❌ |
| Flessibilità | ❌ Statica | ✅ Dinamica | ❌ Statica | ✅ Dinamica |
| Complessità HW | 🔼 Alta | ⚖️ Media | 🔽 Bassa | 🔼 Alta |
| Costo | 🔼 Alto | ✅ Medio | ✅ Basso | 🔼 Alto |
📶 Ethernet (Classic) – CSMA/CD, Frame Structure e le Soluzioni Automotive
Ethernet nasce come tecnologia di rete locale condivisa secondo IEEE 802.3, pensata per ambienti flessibili e aperti, ma inizialmente inadatta al mondo automotive per ragioni di determinismo, EMI e sincronizzazione temporale.
🧱 Accesso al Mezzo: CSMA/CD
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) è il meccanismo classico di accesso a contesa:
- Il nodo verifica se il mezzo è libero
- Inizia a trasmettere
- Se durante la trasmissione rileva una collisione, invia un jam signal e si ferma
- Attende un tempo casuale (backoff) e ritenta
❌ Problemi in ambito automotive
- Latenza non deterministica: un pacchetto può attendere centinaia di µs in coda
- Collisioni e jitter: CSMA/CD non è affidabile in ambienti critici
- Assenza di sincronizzazione globale tra i dispositivi
- Rumore EMI elevato nelle versioni standard
📦 Struttura del Frame Ethernet (Standard IEEE 802.3)
| Campo | Lunghezza | Descrizione |
|---|---|---|
| Preamble | 7 byte | Sequenza di sincronizzazione (101010…) |
| SFD | 1 byte | Start Frame Delimiter (10101011) |
| Dest. MAC | 6 byte | Indirizzo fisico del destinatario |
| Src. MAC | 6 byte | Indirizzo fisico del mittente |
| EtherType/Length | 2 byte | Tipo di protocollo superiore o lunghezza |
| Payload | 46–1500 B | Dati applicativi |
| FCS (CRC-32) | 4 byte | Verifica d’integrità del frame (Frame Check Seq) |
- Lunghezza totale tipica: 64–1518 byte (escluso preambolo)
- Il FCS è un CRC a 32 bit, calcolato sul frame dal destinatario per validazione
🔧 Miglioramenti introdotti per l’automotive
Topologia punto-punto con switch
- Nessuna collisione su link dedicati
- Ogni connessione è full-duplex → CSMA/CD diventa obsoleto
TSN – Time Sensitive Networking (IEEE 802.1)
- Scheduling dei pacchetti su base temporale (Time-Aware Shaper)
- Sincronizzazione di rete con IEEE 802.1AS
- Adatto a sistemi deterministici (es. ADAS, guida autonoma)
AVB – Audio Video Bridging
- Introduce stream reservation e code prioritarie
- Garantisce qualità di servizio (QoS) per audio/video e sensori
Express Packets (OPEN Alliance)
- Pacchetti critici possono interrompere quelli in corso
- Garantisce latenza sub-microsecondo anche su link condivisi
BroadR-Reach (EMI Reduction)
- PHY sviluppato da Broadcom per ridurre le emissioni EMI
- Funziona su un singolo doppino a 100 Mbps (con banda ridotta a 27 MHz)
PoDL – Power over Data Line (IEEE 802.3bu)
- Alimentazione e dati sullo stesso filo (riduce cablaggi)
Grazie a questi miglioramenti, Ethernet è diventata una soluzione modulare, scalabile e deterministica anche per ambienti automotive, mantenendo compatibilità con TCP/IP e supportando comunicazioni ad alta larghezza di banda tra ECU, gateway, sensori e attuatori.
🔁 10BASE-T1S – Ethernet su Bus con Accesso Deterministico
10BASE-T1S è una variante Ethernet pensata per l’ambiente automotive:
- Usa Single Twisted Pair (STP) come mezzo fisico
- Supporta topologia bus multi-drop, fino a 8 nodi per segmento
- Bitrate fisso: 10 Gbps
🔄 Accesso al mezzo con PLCA (Physical Layer Collision Avoidance)
PLCA è un meccanismo introdotto nello standard IEEE 802.3cg per gestire accesso al mezzo condiviso in reti Ethernet 10BASE-T1S, eliminando collisioni e rendendo l’accesso deterministico e ordinato.
🔁 Funzionamento dettagliato:
Ogni nodo ha un identificativo unico (Node ID) da 0 a N−1
I cicli di trasmissione sono scanditi da un Beacon trasmesso periodicamente dal nodo con ID 0 (coordinatore)
Ogni ciclo è suddiviso in slot logici (Transmit Opportunities, TO)
A ogni TO, il nodo corrispondente può:
- Trasmettere un frame se ha dati disponibili
- Segnalare l’intenzione di non trasmettere
Se il nodo salta il proprio turno, si passa immediatamente al successivo
🛡️ Vantaggi di PLCA:
- ✅ Elimina le collisioni → niente backoff o CSMA/CD
- ✅ Determinismo → ogni nodo conosce esattamente quando può trasmettere
- ✅ Basso overhead → ciclo rapido anche con più nodi
- ✅ Compatibile con le MAC Ethernet standard
🧩 Parametri principali:
| Parametro | Descrizione |
|---|---|
| Max Node Count | Fino a 8 nodi supportati |
| Beacon Interval | Periodicità con cui il nodo 0 sincronizza i cicli |
| TO (Transmit Opportunity) | Slot in cui ciascun nodo può accedere al mezzo |
| Timeout | Tempo massimo per la trasmissione nel proprio TO |
PLCA consente così di usare Ethernet full-duplex IP-based in una topologia a bus condiviso, mantenendo bassa complessità hardware e prevedibilità temporale, ideale per reti embedded e architetture zonali.
🧠 Bit Coding
Codifica: 4B5B → ogni 4 bit dati diventano 5 bit trasmessi
DME (Differential Manchester Encoding):
Tecnica di codifica che combina transizioni regolari con informazioni differenziali
Ogni bit ha una transizione all’inizio del periodo di bit (clock recovery)
Il valore logico è determinato dalla presenza o assenza di una transizione a metà bit:
- 1 = nessuna transizione al centro
- 0 = transizione al centro
Il significato dei livelli alti o bassi è relativo alla transizione precedente (differenziale)
✅ Garantisce sincronizzazione e robustezza in ambienti disturbati
❌ Maggiore complessità nel decoding rispetto a NRZ o Manchester
⚙️ Caratteristiche chiave
- Ideale per reti semplici, bassa latenza, con costi contenuti
- Compatibile con il modello IP (full Ethernet stack)
- Supporta Express Packet per real-time su segmento condiviso
🔍 Confronto Generale
| Protocollo | Mezzo | Topologia | Accesso | Codifica | Bitrate | Determinismo | Frame Typology |
|---|---|---|---|---|---|---|---|
| CAN | Twisted pair | Bus | CSMA/CR | NRZ + Stuffing | ≤ 1 Mbps | ❌ | ID, RTR, Data, CRC, ACK |
| CAN-FD | Twisted pair | Bus | CSMA/CR | NRZ + Stuffing | ≤ 6 Mbps | ❌ | CAN base + EDL, BRS, CRC esteso |
| LIN | 1 filo | Master/Slave | Time-Triggered | UART | ≤ 20 kbps | ✅ | Header (Break, Sync, ID), Data, Checksum |
| FlexRay | 2/4 fili | Star / Bus | TDMA + CSMA/CR | Framing fisso | 10 Mbps | ✅ | Header, Payload, Trailer |
| Ethernet | Twisted pair/STP | Star | CSMA/CD | 4B5B / NRZ | ≥ 100 Mbps | ❌ / ✅ (TSN) | MAC, EtherType, Payload, CRC |
| 10BASE-T1S | Single TP | Bus | PLCA | 4B5B + DME | 10 Mbps | ✅ | Idem Ethernet, supporta Express Packets |
GPS (Global Positioning System)
Il GPS è un sistema di navigazione satellitare globale, concepito originariamente dal Dipartimento della Difesa degli Stati Uniti e oggi utilizzato in molteplici applicazioni civili, tra cui l’automotive. È parte integrante delle comunicazioni inter-veicolari (Inter-Vehicle Communications) per garantire la localizzazione e la sincronizzazione temporale dei nodi mobili (es. veicoli) nel contesto della connettività automobilistica【8†main.pdf】.
Cos’è il GPS
Il nome completo è NAVigation Satellite Timing and Ranging Global Positioning System (NAVSTAR GPS). È composto da tre segmenti principali【9†M2L0.pdf】:
- Space Segment: costellazione di oltre 30 satelliti in orbita media (MEO), trasmettono continuamente messaggi di navigazione.
- Control Segment: stazioni di terra che monitorano, aggiornano e correggono le orbite dei satelliti.
- User Segment: dispositivi finali (es. ricevitori) che ricevono i segnali satellitari e calcolano la posizione.
Principio di Funzionamento
Ogni satellite trasmette una Navigation Message (NAV) composta da 25 frame di 30 secondi ciascuno (totale: 12,5 minuti). Ogni frame ha 6 sub-frame:
- Sub-frame 1: informazioni sull’orologio del satellite
- Sub-frame 2-3: informazioni orbitali (ephemeris)
- Sub-frame 4-5: almanacco e stato della costellazione【9†M2L0.pdf】
Il calcolo della posizione avviene tramite trilaterazione. Il ricevitore determina la distanza da almeno quattro satelliti risolvendo il sistema:
d_i = \sqrt{(x_i - x_u)^2 + (y_i - y_u)^2 + (z_i - z_u)^2} + c \cdot \Delta e
Dove:
- (x_i, y_i, z_i): coordinate note del satellite
- (x_u, y_u, z_u): coordinate da calcolare
- (c): velocità della luce
- (\Delta e): errore dell’orologio del ricevitore【8†main.pdf】
Modulazione e Codifica
Il GPS utilizza la modulazione BPSK (Bi-Phase Shift Keying) su due frequenze:
- 1575.42 MHz (L1)
- 1227.60 MHz (L2)
Vantaggi:
- Ridondanza
- Resistenza al jamming
- Compensazione del ritardo ionosferico
- Supporto per ricevitori dual-frequency【9†M2L0.pdf】
Limitazioni del GPS
- Alto consumo energetico
- Inutilizzabile indoor o in presenza di ostacoli
- Sensibile alla miniaturizzazione (antenna piccola = meno accuratezza)
- Affidabilità ridotta in ambienti urbani densi【9†M2L0.pdf】【8†main.pdf】
Applicazioni Automotive
Nel settore automotive, il GPS è utilizzato per:
- Geolocalizzazione del veicolo
- Sincronizzazione temporale per comunicazioni V2X (es. 802.11p, C-V2X)
- Supporto alla navigazione autonoma
Inoltre, il GPS può essere integrato con tecnologie come LoRaWAN per applicazioni di localizzazione low-cost, ad esempio nei sistemi di tracking basati su dispositivi a basso consumo【11†M2L2.pdf】.
Bluetooth
Il Bluetooth è una tecnologia wireless a corto raggio, sviluppata per sostituire i cavi seriali (RS-232) e abilitare la comunicazione tra dispositivi elettronici. Utilizza la banda ISM a 2.4 GHz, e crea reti personali chiamate Piconet, tipicamente con una portata di circa 10 metri【10†M2L1_part1.pdf】.
Caratteristiche Principali
- Frequenza: 2.4 – 2.485 GHz (79 canali da 1 MHz)
- Topologia: Master/Slave all’interno di una piconet
- Standard: IEEE 802.15.1
- Velocità: Alcune versioni raggiungono i 3 Mbps (EDR)
- Portata: da 10 cm (Classe 3) a 100 m (Classe 1)
Architettura della Rete
- Piconet: una rete formata da un master e fino a 7 slave attivi.
- Master: gestisce la comunicazione, decide quando ogni dispositivo può trasmettere.
- Slave: possono comunicare solo con il master, non tra loro.
Processo di Connessione
- Inquiry: ricerca dei dispositivi vicini.
- Paging: creazione della connessione.
- Stato di Connessione:
- Active
- Sniff (power-saving)
- Hold
- Park
Pairing
- Due dispositivi associati stabiliscono connessioni automatiche.
- Scambio di chiavi segrete e salvataggio dei profili.
Classi di Potenza
| Classe | Potenza Max (dBm) | Portata Stimata |
|---|---|---|
| 1 | 20 | 100 m |
| 2 | 4 | 10 m |
| 3 | 0 | 10 cm |
Profili Bluetooth
I profili definiscono le applicazioni supportate. Due dispositivi sono compatibili se condividono gli stessi profili. Esempi:
- SPP (Serial Port Profile): sostituisce RS-232/UART.
- HID (Human Interface Device): mouse, tastiera, joystick.
- HFP/HSP (Hands-Free/Headset Profile): comunicazioni audio.
- A2DP (Advanced Audio Distribution Profile): trasmissione unidirezionale audio di qualità.
- AVRCP (Audio/Video Remote Control Profile): controllo remoto.
Bluetooth Stack
Diviso in due livelli:
- Controller Stack: gestisce l’interfaccia radio (real-time).
- Host Stack: elabora dati e applicazioni.
Comunicazione
Radio Layer
- Trasmissione a 2.4GHz con Frequency Hopping Spread Spectrum (FHSS): 1600 salti/sec
- 79 canali da 1 MHz
Frequency Hopping Spread Spectrum (FHSS)
Frequency Hopping Spread Spectrum (FHSS) è una tecnica di modulazione usata per migliorare la resistenza alle interferenze e aumentare la sicurezza nelle comunicazioni wireless come il Bluetooth.
Come funziona
- La banda di frequenze (es. 2.4 GHz) viene suddivisa in canali stretti (es. 79 canali da 1 MHz).
- Il trasmettitore e il ricevitore concordano una sequenza pseudo-casuale di canali da usare.
- Ogni slot di tempo (625 µs nel Bluetooth) viene usato per trasmettere su un singolo canale.
- Alla fine dello slot, entrambi cambiano frequenza in modo sincrono.
Tipologie di salto
- Slow Hopping: la stessa frequenza è usata per più bit → implementazione più semplice, ma meno resistente alle interferenze.
- Fast Hopping: si cambia frequenza a ogni bit → maggiore robustezza ma richiede una sincronizzazione più accurata.
Vantaggi di FHSS
- ✅ Resistenza al rumore: l’effetto di un’interferenza su un singolo canale è temporaneo.
- ✅ Maggiore sicurezza: difficile da intercettare senza conoscere la sequenza di salto.
- ✅ Condivisione efficiente dello spettro: più dispositivi possono usare la stessa banda con minori collisioni.
Bluetooth usa FHSS a 1600 salti al secondo, tra 79 canali da 1 MHz, con sincronizzazione tra i dispositivi.
Struttura di un Pacchetto Bluetooth
Nel livello Baseband dello stack Bluetooth, ogni pacchetto è composto da tre sezioni principali:
| Campo | Dimensione | Descrizione |
|---|---|---|
| Access Code | 72 bit | Utilizzato per la sincronizzazione temporale, identificazione del piconet (piconet ID), paging e inquiry. |
| Header | 54 bit | Include: packet acknoledgement, packet numbering for out-of-order packet reordering, flow control, slave address and error check |
| Payload | 0–2745 bit | Contiene i dati trasmessi (voce o dati). Include anche un Payload Header opzionale. |
Tipi di pacchetti
- SCO (Synchronous Connection-Oriented): usato per voce, non supporta ritrasmissione.
- ACL (Asynchronous Connection-Less): usato per dati, supporta ritrasmissione automatica (ARQ) e controllo di flusso.
Baseband Layer
- Gestisce i pacchetti, sincronizzazione, codifica, sicurezza
- Tipi di collegamento:
- SCO: sincronizzato, per voce (non ritrasmesso)
- ACL: asincrono, per dati (con ritrasmissione)
Sicurezza
- Autenticazione
- Cifratura (chiavi segrete e AES)
- Random number generator
Controllo degli Errori
Nel livello Baseband, Bluetooth implementa diversi meccanismi per il controllo e la correzione degli errori:
- FEC (Forward Error Correction):
- 1/3 FEC: ogni bit è ripetuto tre volte (alta ridondanza, bassa efficienza).
- 2/3 FEC: 10 bit vengono codificati in 15 bit usando un polinomio generatore (corregge 1 errore ogni 3 blocchi).
- ARQ (Automatic Repeat reQuest):
- Utilizzato nei pacchetti ACL, consente la ritrasmissione automatica se non viene ricevuto un ACK.
Tipi di Collegamento: SCO vs ACL
Bluetooth definisce due tipi principali di link tra master e slave:
SCO – Synchronous Connection-Oriented
- Tipo: punto-a-punto, simmetrico.
- Uso: trasmissione vocale.
- Caratteristiche:
- Slot temporali riservati a intervalli regolari.
- Nessuna ritrasmissione: la latenza è più importante dell’affidabilità.
- Fino a 3 link SCO simultanei per il master.
ACL – Asynchronous Connection-Less
- Tipo: punto-a-multipunto.
- Uso: trasferimento dati.
- Caratteristiche:
- Usa slot non riservati (dinamici).
- Ritrasmissione abilitata (ARQ).
- Solo un link ACL alla volta tra master e slave.
- Può includere flusso dati e meccanismi di controllo di congestione.
Questa distinzione è fondamentale in ambito automotive, dove l’audio in tempo reale (es. chiamate in vivavoce) usa SCO, mentre i dati multimediali o diagnostici viaggiano su ACL.
Bluetooth in ambito Automotive
- Infotainment: audio, chiamate, controllo app
- Keyless Entry: smartphone come chiave virtuale
- Wearables: monitoraggio del conducente (salute)
- Manutenzione: diagnostica e sensori wireless
Evoluzione delle Versioni
- 2.0 + EDR (2004): 3 Mbps
- 3.0 + HS (2009): WiFi per trasferimenti rapidi
- 4.0 (2010): include Bluetooth Low Energy (BLE)
- 5.0 (2016): doppia velocità e maggiore copertura
Confronto Bluetooth vs BLE
| Caratteristica | Bluetooth | BLE |
|---|---|---|
| Consumo Energetico | Basso | Molto basso |
| Velocità | Fino a 3 Mbps | 1 Mbps |
| Portata | Fino a 100 m | 50–150 m (in esterno) |
| Casi d’uso | Audio, File, Headset | Domotica, Fitness, IoT |