Bus I3C (Circuito integrato migliorato)
L'I3C (Improved Inter Integrated Circuit) è noto anche come MIPI I3C e SenseWire. I3C è il nuovo standard industriale per i bus di dati seriali multi-drop. L'I3C è stato rilasciato nel 2016 come collaborazione tra aziende di elettronica e computer con la Mobile Industry Processor Interface Alliance (MIPI Alliance). L'I3C aggiunge un numero significativo di funzionalità di interfaccia di sistema mantenendo la compatibilità verso l'alto con i dispositivi slave I²C esistenti, mentre i dispositivi I3C nativi supportano velocità di trasferimento dati più elevate simili a quelle dell'SPI (Serial Peripheral Interface). Con I3C, uno o più dispositivi master possono essere collegati a uno o più slave tramite il bus. Prodigy Technovations è uno dei primi produttori a offrire un analizzatore di protocollo I3C per questo scopo.
Perché un nuovo standard?
L'I3C è stato originariamente concepito come interfaccia unica per tutti i sensori collegati digitalmente utilizzati in un'applicazione mobile . Tuttavia, il bus è adatto anche a tutte le applicazioni embedded con velocità media e superiore che utilizzano sensori, controllori di potenza, attuatori, MCU e FPGA. L'I3C si basa e migliora le caratteristiche e i vantaggi di I2C mantenendo la compatibilità con il passato. L'interfaccia è utile per molte applicazioni in quanto fornisce un trasferimento di dati ad alta velocità a livelli di potenza molto bassi e consente il multi-drop tra il processore host e le periferiche, che è altamente auspicabile per qualsiasi sistema embedded.
Obiettivi per l'I3C dell'alleanza mipi:
- Standardizzare la comunicazione tra sensori,
- Ridurre il numero di pin fisici utilizzati nell'integrazione dei sistemi di sensori
- Supportare le funzioni a basso consumo, ad alta velocità e altre funzioni critiche attualmente coperte da I²C e SPI
I3C è l'ulteriore sviluppo di I²C
L'I²C (Inter-Integrated Circuit) è stato sviluppato nel 1982 ed è un bus seriale sincrono a due fili. È ancora lo standard industriale per le soluzioni di monitoraggio, diagnostica e controllo in molte applicazioni embedded. L'I2C è facile da implementare, ha un costo contenuto ed è veloce fino a 3,4 Mbps in modalità ad alta velocità (Hs-mode). L'I2C è un vero bus bidirezionale a due fili in un'architettura master/slave con indirizzamento software e protocollo di trasmissione integrato. Richiede solo una linea di clock SCL (Serial Clock Line) e una linea di dati SDA (Serial Data Line).
Ciò significa che un microcontrollore può controllare più chip con solo due pin di I/O e un semplice software. In origine, il bus I2C è stato sviluppato per le interazioni tra alcuni circuiti integrati montati sulla stessa scheda, ad esempio per controllare la sintonizzazione di televisori o radio.
L'elevato numero di sensori nei dispositivi mobili richiede che i processori applicativi e gli hub di sensori abbiano un numero maggiore di pin logici utilizzati per la comunicazione e il controllo dei sensori. In un'applicazione tipica, vengono utilizzate più interfacce di comunicazione digitale e linee logiche di supporto per segnali di interrupt e sleep dedicati. Oggi nei telefoni cellulari sono già integrati più di 10 sensori. Si raggiunge un punto critico quando sono necessari 20 o più segnali logici.
L'I2C, ad esempio, ha altri limiti:
- Gli slave dei sensori non sono in grado di avviare la comunicazione
- Il protocollo overhead riduce il throughput
- I resistori di trazione limitano la velocità di clock e aumentano la dissipazione di energia
I3C a confronto con altre interfacce digitali
Quando è necessario trasmettere grandi quantità di dati, un altro standard di fatto è l'interfaccia SPI (Serial Peripheral Interface). L'SPI richiede quattro linee di comunicazione:
- Il clock seriale (SCLK |SCK) viene emesso dal master per la sincronizzazione
- L'uscita Master, ingresso Slave (MOSI |SIMO)
- Ingresso master, uscita slave (MISO | SOMI)
- Una o più linee di chip select attive con logica-0. Sono controllate dal master. Normalmente c'è una linea per ogni slave. (SS Slave Select | CS Chip Select | STE Slave Transmit Enable STE | CE Chip Enabler)
Molte proprietà non sono chiaramente definite nello standard SPI. Di conseguenza, sono necessarie molte impostazioni, il che porta a diversi dispositivi incompatibili tra loro.
Con I3C, esiste un metodo uniforme per collegare i diversi sensori. Questo evita i problemi di integrazione perché gli sviluppatori non devono più confrontarsi con la frammentazione delle interfacce digitali (I2C, SPI, UART,...) .
Cosa distingue il bus I3C dal bus I2C?
- Design a risparmio energetico e di spazio per i dispositivi mobili (smartphone e dispositivi IoT).
- Interfaccia a due poli che è un superset dello standard I2C. I vecchi dispositivi I2C slave possono essere collegati al nuovo bus.
- Interruzioni in-band sul bus seriale, invece di richiedere pin separati.
- Velocità di trasmissione dati standard (SDR) fino a 12,5 Mbit/s quando si utilizzano i livelli di I/O CMOS
- Le modalità High Data Rate (HDR) consentono una velocità di trasmissione paragonabile a quella dell'SPI, ma richiedono solo una frazione della potenza della modalità veloce dell'I2C.
- Un set standardizzato di codici di istruzioni comuni
- Supporto per code di comandi
- Rilevamento e recupero degli errori (controllo di parità in modalità SDR e CRC a 5 bit per le modalità HDR)
- Assegnazione dinamica dell'indirizzo (DAA) per gli slave I3C, ma supporta ancora gli indirizzi statici per i dispositivi I2C tradizionali
- Hot-join (alcuni dispositivi sul bus possono essere accesi e spenti durante il funzionamento)
- Funzionamento multi-master con handover chiaramente definito
- Su un bus I3C in modalità standard (SDR) possono essere supportate quattro diverse classi di dispositivi
Adattatori host e analizzatori di protocollo I2C / I3C
La serie PGY-I3C-EX-PD è la soluzione leader al mondo per testare i progetti I3C. I dispositivi della serie PGY-I3C-EX-PD possono essere configurati come master o slave, generare traffico I3C con iniezioni di errori e decodificare pacchetti di protocollo I3C.
La serie I3C Analyzer and Exerciser di Prodigy comprende una versione lite e una versione completa con tutte le funzionalità di e le massime prestazioni hardware.