In questa serie di articoli, esamineremo alcuni dei diversi tipi di Protocolli di Comunicazione Seriale disponibili per trasferire informazioni tra microcontrollori, periferiche produttrici e processatrici di dati, e altri dispositivi intelligenti. Gli articoli che seguono questa introduzione alle comunicazioni seriali copriranno alcuni dei protocolli più popolari comunemente utilizzati. Al termine di questa serie, riassumeremo i vantaggi e gli svantaggi di ciascuno. Speriamo che questa risorsa si riveli preziosa la prossima volta che vi trovate nella necessità di implementare un bus di comunicazione seriale, aiutandovi a scegliere l'opzione migliore per le vostre particolari circostanze.
Al giorno d'oggi l'elettronica digitale è diventata la parte più significativa della maggior parte dei dispositivi elettronici sul mercato. Molti chip diversi sono in uso, le cui operazioni complesse dipendono dalle informazioni inviate e ricevute da altri componenti digitali simili. Sono stati creati standard di protocollo comuni per consentire la comunicazione tra questi. Immaginate se ogni IC o dispositivo comunicasse utilizzando il proprio protocollo unico. Sarebbe come se ogni essere umano parlasse usando la propria lingua unica. Sarebbe il caos perché sarebbe quasi impossibile per noi capirci l'un l'altro.
Attualmente disponiamo di diversi IC di memoria, sensori digitali, dispositivi di protezione, alimentatori programmabili, potenziometri digitali, IC per radiofrequenza, ecc. Tutti devono comunicare tra loro o con microcontrollori, microprocessori, FPGA o ASIC. Lo scopo di queste comunicazioni tra dispositivi può variare notevolmente. Può essere per la programmazione per estrarre informazioni, fornendo un segnale per avviare l'esecuzione di un'azione.
Inoltre, alcuni protocolli ci danno la possibilità, come esseri umani, di interagire con gli IC attraverso i microcontrollori. Puoi inviare un segnale a un microcontrollore che è programmato per inviare un segnale a un IC attraverso uno di questi protocolli. In alternativa, puoi collegare uno degli strumenti di debug disponibili.
Uno dei problemi con le comunicazioni seriali è la difficoltà di trovare e risolvere i problemi del tuo circuito se qualcosa va storto. Supponiamo che i dati non vengano trasmessi da un dispositivo all'altro. In tal caso, il guasto può trovarsi in uno o più dei seguenti punti: nella logica del dispositivo trasmittente, nel suo progetto di circuito, nel modo in cui ha codificato le comunicazioni seriali, nel bus di comunicazione, nella decodifica da parte del ricevitore, nel progetto di circuito del ricevitore o infine nella logica del ricevitore. Collegare una sonda dell'oscilloscopio alle comunicazioni seriali può permetterti di vedere se c'è qualche attività, ma ti dirà poco della sua validità. Per vedere completamente cosa sta succedendo, avrai bisogno o di un oscilloscopio con funzione di decodifica o di un analizzatore logico. Questo ti permetterà di conoscere gli impulsi di tensione che viaggiano attraverso l'impulso per trovare guasti nei livelli di tensione, individuare eventuali problemi di rumore e cercare problemi con i tassi di salita e discesa del segnale.
Tuttavia, per eseguire un debug approfondito delle comunicazioni seriali, avrai bisogno di uno strumento che possa decodificare i dati sul bus per vedere se sono corretti o se sono stati corrotti o influenzati da collisioni. Un numero considerevole di strumenti di debug è stato creato appositamente per eseguire il debug delle comunicazioni tra dispositivi o IC. Uno degli analizzatori logici standard dell'industria è la serie di analizzatori logici Saleae Logic, con il modello Pro che offre una velocità sufficiente per analizzare tutti i protocolli più popolari.
Molti analizzatori logici a basso costo sono troppo lenti per gestire protocolli ad alta velocità come SPI. L'LA2016 Logic Analyser offre tassi di campionamento tra il Saleae Logic 8 e il Logic 8 Pro a un costo molto basso; ne possiedo uno e l'ho usato con molto successo per analizzare i protocolli.
Inoltre, la considerazione dei protocolli di comunicazione è cruciale sia per la progettazione del firmware che per quella hardware. Dal lato hardware, dovresti sempre esaminare attentamente il datasheet del tuo microcontrollore scelto. Gli MCU possono comunicare solo con protocolli predefiniti utilizzando pin dedicati. Il progettista dovrà decidere quali IC verranno utilizzati e quali protocolli richiederanno in anticipo rispetto alla selezione del loro MCU.
Ad esempio, il dispositivo STMicroelectronics STM32F103C8T6 montato sulla popolare scheda di sviluppo STM32 Blue Pill include 2 x I2C, 3 x USART, 2 x SPI e 1 x interfaccia di comunicazione CAN. Tuttavia, alcuni dei pin per questi protocolli di comunicazione sono condivisi. Ad esempio, se guardiamo al pin 14 del dispositivo, che è etichettato come PA4. Questo pin ha sia funzioni USART che SPI. Questo significa che non puoi utilizzare tutte le interfacce SPI e USART elencate per il tuo progetto contemporaneamente. Devi scegliere quali di queste ti servono e quando, e pianificare di conseguenza o cercare un altro microcontrollore che supporti più interfacce di comunicazione. Naturalmente, il pin PA4 può essere utilizzato per entrambi i protocolli di comunicazione cambiando la sua configurazione in fase operativa. Tuttavia, è ancora necessario considerare attentamente in quali momenti verrà utilizzato per funzionare perché non possono essere usati simultaneamente. Questo aumenterà la complessità sia della progettazione hardware che del firmware.
I pin di comunicazione seriale nei microcontrollori possono sovrapporsi, quindi leggi attentamente i datasheet È necessario scaricare e utilizzare il modulo di libreria di comunicazione IC appropriato in base ai protocolli che il dispositivo utilizzerà per le comunicazioni dal lato del firmware.
Sebbene esistano molti protocolli di comunicazione, i più popolari sono SPI e I2C. Ognuno dei protocolli ha le sue applicazioni, velocità di comunicazione, considerazioni di progettazione, vantaggi e svantaggi. Passeremo in rassegna ciascuno di essi in questa serie di articoli.
Nel prossimo articolo di questa serie esamineremo il popolare dispositivo UART e discuteremo alcuni dei loro vantaggi e dettagli implementativi. Concluderemo la serie confrontando i diversi protocolli, evidenziando i loro principali vantaggi e svantaggi.
Hai altre domande? Chiama un esperto di Altium e scopri come possiamo aiutarti con il tuo prossimo design di PCB.