Progettazione PCB, Produzione, PCB, PECVD, e selezione dei componenti con servizio unico

Scaricamento | Di | Citazione | Mappa del sito

Comprendere la vera natura del GPIO, I2C, SPI, UART, USATO, e interfacce di comunicazione USB - UGPCB

Tecnologia PCB

Comprendere la vera natura del GPIO, I2C, SPI, UART, USATO, e interfacce di comunicazione USB

Devi aver visto varie interfacce su molti circuiti stampati di dispositivi elettronici, come GPIO, I2C, SPI, UART, USATO, USB, ecc. Devi essere curioso riguardo ai principi di funzionamento, scopi, e differenze tra queste interfacce sui circuiti stampati. Oggi, il nostro redattore ha fatto visita ai colleghi dell'ufficio tecnico dell'azienda UGPCB per spiegarli “vera natura.”

Interfacce di comunicazione

Interfacce di comunicazione

Differenze semplici

1) GPIO (Ingresso/Uscita per usi generici) è un input/output di uso generale, porto generale, bus extender che semplifica l'espansione degli I/O utilizzando lo standard industriale I2C, SMBus™, o SPI™ interfacce. Quando i microcontrollori o i chipset non dispongono di porte I/O sufficienti, o quando i sistemi richiedono comunicazione o controllo seriale remoto, I prodotti GPIO possono fornire funzioni di controllo e monitoraggio aggiuntive.

2) SPI (Interfaccia periferica seriale) è un bus seriale bidirezionale sincrono standard a quattro fili. L'interfaccia SPI viene utilizzata principalmente nella EEPROM, FLASH, orologi in tempo reale, Convertitori AD, e tra processori di segnali digitali e decodificatori di segnali digitali. SPI è un'alta velocità, full-duplex, bus di comunicazione sincrona che occupa solo quattro pin sul chip, risparmiando il numero di pin e lo spazio nel layout del PCB. Grazie alle sue caratteristiche semplici e facili da usare, sempre più chip integrano questo protocollo di comunicazione.

3) IO2C (AUTOBUS INTER-IC) è un bus seriale a due fili sviluppato da PHILIPS per il collegamento di microcontrollori e dei loro dispositivi periferici. È uno standard di bus ampiamente adottato nel campo del controllo della comunicazione microelettronica. Presenta i vantaggi di un minor numero di linee di interfaccia, semplici metodi di controllo, forme di confezionamento di piccoli dispositivi, e velocità di comunicazione più elevate.

4) UART (Trasmettitore ricevitore asincrono universale) è un dispositivo ricevitore/trasmettitore asincrono universale.

5) Trasmettitore ricevitore asincrono sincrono universale USART;

6) Bus seriale universale USB (Bus seriale universale)

7) CAN bus di campo

Tabella dei parametri di trasmissione dell'interfaccia

Tabella dei parametri di trasmissione dell'interfaccia

Composizione delle linee di trasmissione dati

Il bus SPI è costituito da tre linee di segnale Orologio seriale (SCLC), Uscita dati seriale (SDO), e ingresso dati seriale (SDI). Il bus SPI può connettere più dispositivi SPI. Il dispositivo SPI che fornisce l'orologio SPI è il dispositivo master o principale (Maestro), mentre altri dispositivi sono slave o dispositivi slave (Schiavo). I dispositivi master e slave possono raggiungere la comunicazione full-duplex. Quando sono presenti più dispositivi slave, è possibile aggiungere un'ulteriore riga di selezione dello slave.

Se si simula il bus SPI con porte IO generali, è necessario avere una porta di uscita (SDO), una porta di ingresso (SDI), e a seconda del tipo di dispositivo implementato, un'altra porta se si implementano dispositivi master e slave, richiede sia porte di ingresso che di uscita; se si implementano solo dispositivi master, è sufficiente una porta di uscita; se si implementano solo dispositivi slave, è necessaria una porta di ingresso.

Il bus I2C è bidirezionale, due fili (SCL, SDA), seriale, standard di interfaccia multimaster con meccanismo di arbitraggio del bus, rendendolo molto adatto per la distanza ravvicinata, comunicazioni di dati poco frequenti tra i dispositivi. Nel suo sistema di protocollo, durante la trasmissione dei dati, è incluso l'indirizzo del dispositivo di destinazione, abilitare la rete dei dispositivi.

Se si simula il bus I2C con porte IO generali per la trasmissione bidirezionale, una porta di ingresso/uscita (SDA) è necessario, e un'altra porta di uscita (SCL) è obbligatorio. (Nota La mia comprensione di I2C è relativamente limitata, quindi questa descrizione potrebbe essere incompleta.)

Il bus UART è una porta seriale asincrona, quindi generalmente ha una struttura molto più complessa rispetto alle due porte seriali sincrone precedenti (come introdotto nei libri sui microcontrollori, sebbene non sia considerato complesso). Generalmente è costituito da un generatore di baud rate (il baud rate generato è uguale a 16 volte la velocità di trasmissione), un ricevitore UART, e un trasmettitore UART, con due fili nell'hardware, uno per l'invio e uno per la ricezione.

Chiaramente, se si simula il bus UART con porte IO generali, sono necessarie una porta di ingresso e una porta di uscita.

Dal secondo punto, è evidente che SPI e UART possono raggiungere il full duplex, ma I2C non può.

Differenze nel protocollo di comunicazione

SPI

 

SPI

SPI

SPI è un protocollo che consente a un dispositivo master di avviare una comunicazione sincrona con un dispositivo slave, completando così lo scambio di dati. Questo metodo di comunicazione ha il vantaggio di occupare meno porte; generalmente, quattro sono sufficienti per la comunicazione di base. Allo stesso tempo, anche la velocità di trasmissione è molto elevata. Generalmente, richiede che il dispositivo master disponga di un controller SPI (ma può anche essere simulato) per comunicare con chip basati su SPI.

Il principio di comunicazione di SPI è molto semplice; richiede almeno quattro fili, ma possono bastarne anche tre. Sono comuni a tutti i dispositivi SDI basati su SPI (immissione dei dati), SDO (uscita dei dati), SCK (orologio), CS (selezione del chip). Il CS controlla se il chip è selezionato, ciò significa che le operazioni su questo chip sono efficaci solo quando il segnale di selezione del chip è su un segnale di abilitazione predeterminato (livello alto o basso). Ciò consente di collegare più dispositivi SPI sullo stesso bus.

Poi ci sono le tre linee responsabili della comunicazione. La comunicazione viene completata tramite lo scambio di dati. Qui, è importante sapere che SPI è un protocollo di comunicazione seriale, ciò significa che i dati vengono trasmessi bit per bit. Questo è il motivo per cui esiste la linea di orologi SCK. L'SCK fornisce impulsi di clock, e SDI, SDO completa la trasmissione dei dati in base a questi impulsi. L'output dei dati avviene attraverso la linea SDO; i dati cambiano sul fronte di salita o di discesa dell'orologio e vengono letti immediatamente dopo il fronte di discesa o di salita. Un bit della trasmissione dei dati viene completato in questo modo. L'input segue lo stesso principio. Così, almeno otto cambiamenti nel segnale dell'orologio (un ciclo su e giù costituisce un cambiamento) consentire la trasmissione di 8 bit di dati.

Va notato che la linea del segnale SCK è controllata solo dal dispositivo master, e i dispositivi slave non possono controllare la linea del segnale. Allo stesso modo, in un dispositivo basato su SPI, deve esserci almeno un dispositivo master.

Questa caratteristica di trasmissione presenta un vantaggio rispetto alle tipiche comunicazioni seriali a differenza della comunicazione seriale convenzionale, che trasmette almeno 8 bit di dati in modo continuo, SPI consente la trasmissione dei dati bit per bit, e consente anche la pausa perché la linea di clock SCK è controllata dal dispositivo master. Quando non c'è alcuna transizione dell'orologio, il dispositivo slave non raccoglie né trasmette dati. In altre parole, il dispositivo master può controllare la comunicazione attraverso il controllo della linea di clock SCK.

SPI è anche un protocollo di scambio dati poiché le linee di ingresso e uscita dei dati SPI sono indipendenti, consentono il completamento simultaneo dell'input e dell'output dei dati.

Diversi dispositivi SPI hanno implementazioni diverse, principalmente in termini di quando i dati cambiano e vengono raccolti, con diverse definizioni per la raccolta sul fronte di salita o sul fronte di discesa del segnale di clock. Per dettagli specifici, fare riferimento alla documentazione dei relativi dispositivi.

IO2C

Sono necessarie solo due linee bus, una linea dati seriale SDA e una linea orologio seriale SCL.

Ogni dispositivo connesso al bus può essere indirizzato con un indirizzo univoco e una semplice relazione master-slave impostata tramite software. L'host può fungere da trasmettitore o ricevitore principale.

È un vero bus multimaster; se due o più master avviano contemporaneamente il trasferimento dei dati, il rilevamento e l'arbitraggio dei conflitti prevengono la corruzione dei dati.

Le velocità di trasferimento dati bidirezionali seriali a 8 bit possono raggiungere fino a 100 kbit/s in modalità standard, 400kbit/s in modalità veloce, e 3,4 Mbit/s in modalità ad alta velocità.

I filtri su chip rimuovono i difetti dalla linea dati del bus per garantire l'integrità dei dati.

Il numero di circuiti integrati collegati allo stesso bus è limitato solo dalla capacità massima del bus di 400pF.

UART

Il bus UART è una porta seriale asincrona, quindi la sua struttura è generalmente molto più complessa delle due precedenti porte seriali sincrone. Solitamente è costituito da un generatore di baud rate (che genera un baud rate pari a 16 volte la velocità di trasmissione), un ricevitore UART, e un trasmettitore UART, con due fili nell'hardware, uno per l'invio e uno per la ricezione.

UART è comunemente usato per controllare i chip del computer per i dispositivi seriali. Un punto da notare è che fornisce un'interfaccia per apparecchiature terminali dati RS-232C, consentendo ai computer di comunicare con modem o altri dispositivi seriali utilizzando l'interfaccia RS-232C.

UART sta per ricevitore/trasmettitore asincrono universale (porta di comunicazione seriale asincrona). Include standard e specifiche per interfacce come RS232, RS499, RS423, RS422, e RS485, rendendo UART un termine generale per porte di comunicazione seriale asincrona. Rs232, RS499, RS423, RS422, e RS485 sono standard e specifiche di interfaccia per varie porte di comunicazione seriale asincrona, definizione delle caratteristiche elettriche, velocità di trasmissione, caratteristiche di connessione, e proprietà meccaniche delle interfacce. Appartengono allo strato fisico (lo strato più basso) concetto nella rete di comunicazione e non sono direttamente correlati ai protocolli di comunicazione. I protocolli di comunicazione appartengono al livello di collegamento dati (lo strato successivo più alto) concetto nella rete di comunicazione. La porta COM è l'abbreviazione della porta di comunicazione seriale asincrona su un PC (personal computer). Per ragioni storiche, L'interfaccia esterna del PC IBM è stata configurata come RS232, diventando lo standard de facto nel settore dei PC. Così, le porte COM sui PC moderni sono tutte RS232. Se sono disponibili più porte di comunicazione seriale asincrona, sono chiamati COM1, COM2, ecc.

È chiaro che sia SPI che UART possono ottenere una comunicazione full-duplex, ma I2C non può.

Ricevitore e trasmettitore asincrono sincrono universale USART. (La differenza rispetto all'UART è evidente.)

Ricevitore e trasmettitore asincrono universale UART;

Ricevitore e trasmettitore asincrono sincrono universale USART. Generalmente, nei microcontrollori, le interfacce denominate UART vengono utilizzate solo per la comunicazione seriale asincrona, mentre quelli denominati USART possono essere utilizzati sia per la comunicazione seriale sincrona che asincrona.

USB

USB sta per Universal Serial Bus, uno standard di bus esterno per la connessione e la comunicazione tra un computer e dispositivi esterni, applicato nel dominio PC. USB supporta le funzioni plug-and-play e hot-swap. L'USB è stato proposto da una coalizione che includeva Intel, Compaq, IBM, e Microsoft alla fine 1994.

USB

USB

Le caratteristiche elettriche e le caratteristiche di trasmissione dell'USB includono ricetrasmettitori USB ad alta velocità come Philips’ 82C251, SN65/75LBC031 di TI, CF150 di Bosch, C250, e UC5350 di Intersil; i ricetrasmettitori USB a bassa velocità includono Philips 82C252, TJA1053, Siemens TLE6252G; I ricetrasmettitori USB a filo singolo includono Philips AU5790, Infineon TLE 6255, Delfi DK166153.

POTERE

Quando l'autobus è fermo, qualsiasi nodo CAN può avviare la trasmissione dei dati. Se due o più nodi iniziano la trasmissione simultaneamente, l'arbitraggio bit per bit basato sull'identificatore risolve i conflitti di accesso. CAN è un bus di tipo broadcast in cui tutti i nodi ricevono dati dal bus, e un meccanismo di filtraggio hardware determina se il messaggio viene fornito al nodo.

Esistono quattro tipi di telegrammi Data Frame, quadro remoto, quadro di errore, e telaio di sovraccarico.

I controller CAN di base sono economici con buffer di messaggi limitati per l'invio/ricezione e meccanismi di filtraggio dei messaggi CAN di base. I controller CAN completi offrono costi e prestazioni più elevati con buffer in grado di gestire 8 o più messaggi da inviare e ricevere. I controller CAN standard gestiscono i messaggi con identificatori a 11 bit, mentre i controller CAN estesi gestiscono messaggi identificatori sia a 11 bit che a 29 bit. CAN con attivazione temporale (TTCAN) i controller pianificano i messaggi CAN in base all'ora e agli eventi, migliorare le prestazioni complessive e la prevedibilità del comportamento della rete CAN.

I byte di dati vengono trasmessi a partire dal bit più significativo. Un byte di dati da 8 bit può essere trasmesso in un'unica operazione di invio, con la velocità massima del bus CAN pari a 1 Mbps.

La maggior parte dei microcontrollori CAN richiedono un ricetrasmettitore esterno per la connessione al bus fisico. Il mercato offre ricetrasmettitori ad alta velocità come Philips’ 82C251, SN65/75LBC031 di TI, CF150 di Bosch, C250, e UC5350 di Intersil; e ricetrasmettitori a bassa velocità come Philips 82C252, TJA1053, e Siemens TLE 6252G.

Scelta del bus seriale

Microcontrollori (µC) sono al centro dei prodotti elettronici avanzati di oggi, che richiedono la comunicazione con uno o più dispositivi periferici. Tradizionalmente, Le periferiche µC erano collegate tramite dati mappati in memoria e bus di indirizzi. Questo tipo di interfaccia richiede un numero minimo di pin (esclusa alimentazione e terra) 8 (dati) + 1 (R//W) + 1 (/CS) + n righe di indirizzo [n = log2(registro interno o conteggio dei byte di memoria)]. Per esempio, richiede la comunicazione con una periferica da 16 byte 8 + 1 + 1 + 4 = 14 perni. Questa interfaccia offre un accesso rapido ma aumenta le dimensioni del pacchetto e il costo totale a causa del maggior numero di pin. Per ridurre i costi e le dimensioni degli imballaggi, le interfacce seriali sono alternative ideali.

Selezionare un bus seriale non è facile. Oltre a considerare la velocità dei dati, ordine di trasmissione dei bit di dati (bit più significativo per primo o per ultimo), e tensione, i progettisti dovrebbero considerare come selezionare una periferica (tramite ingressi di selezione del chip hardware o protocollo software), come le periferiche si sincronizzano con µC (utilizzando una linea di orologio hardware o informazioni di orologio integrate nel flusso di dati), se i dati vengono trasmessi su una singola linea (passaggio tra “alto” E “Basso”) o su una coppia differenziale (due linee che commutano simultaneamente in direzioni opposte), e se le linee di comunicazione utilizzano una resistenza adattata ad entrambe le estremità (solitamente per la segnalazione differenziale), senza eguali, o abbinato ad un'estremità (comune per gli autobus single-ended). Tavolo 1 mostra le differenze tra i vari sistemi bus comuni in forma di matrice. Solo quattro dei 16 le possibili combinazioni sono ben note.

Oltre a queste caratteristiche, applicazioni specifiche possono avere requisiti aggiuntivi come i metodi di alimentazione, isolamento, soppressione del rumore, µC massimo (ospite) a periferico (schiavo) distanza di trasmissione, e metodi di connessione dei cavi (tipo di autobus, tipo di stella, protezione da inversione di polarità, ecc.). Applicazioni come l'automazione degli edifici, controllo industriale, lettura del contatore, ecc., hanno stabilito standard per tali requisiti.

I²C/SMBus rispetto a. 1-Filobus

Se l'applicazione può fornire una linea di orologio, la selezione del bus può estendersi ai dispositivi I²C/SMBus. Secondo le specifiche SMBus, può essere visto come un derivato della specifica del bus I²C a 100 kbps con funzionalità di timeout aggiunte. Nei casi in cui un nodo perde la sincronizzazione con il master del bus, la funzione di timeout impedisce il blocco del bus, mentre il sistema I²C richiede un ripristino all'accensione per riprendersi da tali condizioni di guasto. Il sistema 1-Wire resetta/rileva la presenza durante la fase di inizializzazione dell'interfaccia di comunicazione.

Oltre alla linea dell'orologio, I²C/SMBus fornisce un bit di riconoscimento per ogni byte trasmesso sul bus, riducendo la velocità dati effettiva di 12%. Il processo di comunicazione inizia con una condizione di avvio seguita dall'indirizzo del dispositivo slave e da un bit di direzione dei dati (leggere/scrivere), che termina con una condizione di arresto. Per il sistema 1-Wire, i requisiti del livello di rete devono essere soddisfatti per primi (i.e., selezionando un dispositivo specifico tramite i comandi di ricerca ROM o la trasmissione), quindi inviando codici di comando relativi a dispositivi specifici che influenzano la direzione della trasmissione dei dati (leggere/scrivere).

Un problema notevole con i sistemi bus I²C e SMBus originali è il loro spazio di indirizzi limitato a 7 bit. Con più di 127 diversi tipi di dispositivi disponibili, è impossibile dedurre la funzionalità del dispositivo solo dall'indirizzo dello slave. Inoltre, molti dispositivi I²C consentono agli utenti di impostare arbitrariamente uno o più bit di indirizzo per collegare più dispositivi identici sul bus, riducendo ulteriormente lo spazio degli indirizzi disponibile. La risoluzione dei conflitti di indirizzi implica la segmentazione del sistema bus in più segmenti che possono essere attivati ​​in qualsiasi momento sotto il controllo del software. Ciò richiede hardware aggiuntivo e complica il firmware dell'applicazione. I sistemi I²C non dispongono di funzionalità di rilevamento o enumerazione dei nodi di rete, rendendo difficile la gestione delle reti con un numero di nodi che cambia dinamicamente. Questo problema viene risolto dal protocollo di risoluzione degli indirizzi nella versione delle specifiche SMBus 2.013, sebbene i dispositivi SMBus supportati siano rari.

Interfaccia SPI e MICROWIRE

SPI e MICROFILO (un sottoinsieme di SPI) richiedono una linea di selezione chip aggiuntiva per ciascun dispositivo slave. A causa del segnale di selezione del chip, il protocollo SPI definisce solo comandi di lettura/scrittura per indirizzi di memoria e registri di stato senza fornire funzionalità di riconoscimento. In genere, I dispositivi SPI utilizzano pin separati per l'input e l'output dei dati. Poiché l'output dei dati è a tre stati, tranne durante le operazioni di lettura, i due pin dati possono essere collegati insieme per formare un'unica linea dati bidirezionale. I bus SPI vengono scelti quando altri sistemi bus non forniscono le funzionalità necessarie o quando sono necessarie velocità di trasferimento dati più elevate, supporta velocità fino a 2Mbps o superiori. Tuttavia, generare segnali CS per indirizzare dispositivi specifici è uno svantaggio di SPI e MICROWIRE. Come I²C, non supportano il rilevamento dei nodi. L'host non può dedurre la funzionalità del dispositivo dagli indirizzi logici dello slave, rendendo difficile la gestione delle reti con nodi che cambiano dinamicamente.

RS-485, LVDS, POTERE, USB 2.0, e FireWire

Questi standard illustrano le caratteristiche di trasmissione differenziale. I più veloci tra questi sistemi bus sono FireWire e USB 2.0, che utilizzano collegamenti elettrici punto a punto. Con nodi o hub avanzati, possono formare bus virtuali con topologie ad albero, invio di pacchetti di dati dall'origine all'endpoint (USB) o peer-to-peer (FireWire), con velocità dati burst fino a 480 Mbps (USB 2.0) o 1600Mbps (FireWire). I pacchetti di dati di dimensioni limitate e i meccanismi di comunicazione di ricezione/bufferizzazione/reinvio aumentano il tempo di trasmissione, riducendo così il throughput effettivo dei dati. La topologia e il protocollo USB consentono fino a 126 nodi, mentre FireWire supporta fino a 63 nodi con una distanza massima da nodo a nodo di 4,5 m utilizzando cavi passivi. Progettato per periferiche PC, multimedia, controllo industriale, e applicazioni aeronautiche (solo FireWire), I dispositivi USB e FireWire supportano l'hot plug. Questa funzionalità consente modifiche dinamiche nel conteggio dei nodi di rete.

LVDS, RS-485, e CAN può implementare topologie di bus che collegano più host. Segnalazione differenziale di bassa tensione (LVDS) offre la velocità più alta tra questi standard, in grado di funzionare a 100 Mbps su distanze fino a 10 m. La velocità dati e il throughput effettivi dipendono dalle dimensioni della rete. Lo standard elettrico LVDS è progettato per applicazioni backplane e supporta l'hot plug ma non include alcun protocollo.

RS-485 definisce anche solo i parametri elettrici, specificando la capacità di carico e i carichi massimi per linea bus (32), non in termini di nodi. Il carico di un nodo elettrico può essere inferiore a 1. La velocità dati tipica può raggiungere fino a 35 Mbps su distanze di 12 m, e 100kbps su distanze di 1200m, sufficiente per applicazioni di acquisizione e controllo dati. I protocolli dei dispositivi RS-485 sono spesso basati su protocolli originariamente progettati per RS-232.

Serie RS

Serie RS

Al contrario, la rete dell'area del controllore (POTERE) definisce un protocollo di comunicazione per il controllo distribuito in tempo reale con sicurezza molto elevata, specificatamente rivolti ad applicazioni automobilistiche e di automazione industriale. La velocità dei dati varia da 1 Mbps su distanze fino a 40 m a 50 kbps su distanze fino a 1000 m. Il metodo di indirizzamento si basa sui messaggi, e il protocollo stesso non limita il numero di nodi. I nodi CAN supportano l'hot plug, consentendo cambiamenti dinamici nel conteggio dei nodi di rete.

Conclusione

Nel semplice, sistemi di bus a basso costo rispetto ai bus LIN e SensorPath, 1-I sistemi cablati offrono la più ampia gamma di funzioni e driver di rete per dispositivi slave. I²C e SMBus richiedono linee dati e messa a terra, oltre a linee di clock e alimentatori VCC, ma offrono molte funzionalità del dispositivo. SPI e MICROWIRE richiedono linee di selezione chip aggiuntive ma forniscono velocità dati più elevate. Oltre a supportare l'alimentazione parassita e il rilevamento dei nodi di rete, l'interfaccia e il protocollo 1-Wire supportano l'hot plug, solitamente si trova solo nei sistemi ad alta velocità che utilizzano segnalazione differenziale e SMBus 2.0 prodotti compatibili. iButton® I prodotti sono ampiamente utilizzati come dispositivi a 1 cavo hot plug; l'hot plug è la loro modalità operativa normale. Questi dispositivi si sono dimostrati estremamente efficaci in applicazioni quali i numeri di identificazione globale, identificazione e certificazione di circuiti/componenti, rilevamento della temperatura, e dispositivi di attuazione. Un'altra applicazione di successo della tecnologia 1-Wire comprende l'archiviazione sicura e meccanismi di risposta alle sfide per ottenere un'autenticazione a basso costo e una protezione del codice software.

Prec:

Prossimo:

Lascia una risposta

Un commento

  1. Backlink per l'ottimizzazione SEO

    Lavoro fantastico! Questo è il tipo di informazioni che dovrebbero essere condivise sul web. Peccato per Google per non aver posizionato questo post più in alto! Vieni a visitare il mio sito web . Grazie =)

Lasciate un messaggio