Comparativa de Protocols de Comunicació: RS-232, SPI, I2C, USB

Informática y Telecomunicaciones5,47 KB

RS-232

Configurat a 115.200 bauds.

Característiques

  • Cables: 3 cables: RX (recepció), TX (transmissió) i GND (massa).
  • Càlcul de temps: Cada byte (caràcter) necessita, com a mínim, 1 bit d'inici + 8 bits de dades + 1 bit de parada (10 bits en total). Per a 1.500 bytes, caldrà intercanviar 10 * 1.500 = 15.000 bits. El temps de transmissió és de 15.000 bits / 115.200 bps = 0,130 s.

Avantatges

  • Sobrecàrrega mínima del protocol.
  • Comunicació full-duplex.
  • Hardware simple.
  • Ambdós sistemes poden iniciar la comunicació i transmetre simultàniament.
  • Permet la comunicació a gran distància.

Inconvenients

  • Comunicació punt a punt, no està orientada a una estructura de tipus bus.
  • Velocitat baixa (perquè el receptor i l'emissor es puguin entendre).
  • No té detecció d'errors.

SPI

CLK a 1,5 Mbauds.

Característiques

  • Cables: 4 cables: MOSI o SDO (Master Output Slave Input o Serial Data Output), MISO o SDI (Master Input Slave Output o Serial Data Input), SCLK (Serial Clock) i GND (massa).
  • Càlcul de temps: S'envia únicament la informació, per tant: 8 bits * 1.500 = 12.000 bits. El temps de transmissió és de 12.000 bits / 1,5 Mbps = 8 ms.

Avantatges

  • Sense sobrecàrrega deguda al protocol.
  • Hardware molt simple.
  • Ràpid.

Inconvenients

  • Sistema master-slave on el màster sempre és el mateix sistema; per tant, la transmissió mai no podrà ser iniciada per l'slave.
  • Comunicació a distància reduïda, habitualment dins del mateix circuit.
  • No té detecció d'errors.

I2C

Configurat a 100 kbauds.

Característiques

  • Cables: 3 cables: SDA (Serial Data), SCL (Serial Clock) i GND (massa).
  • Càlcul de temps: Per a la transmissió cal: 1 bit d'inici + 7 bits d'adreça + 1 bit (R/W) + ACK + (8 bits de dades + 1 bit ACK) * 1.500 + 1 bit de parada = 13.511 bits. El temps de transmissió és de 13.511 bits / 100 kbps = 0,135 s.

Avantatges

  • Té detecció d'errors (ACK/NACK).
  • Ambdós sistemes poden iniciar l'intercanvi d'informació prenent el rol de MÀSTER al bus.
  • Permet la comunicació en bus.

Inconvenients

  • Sobrecàrrega del protocol.
  • Comunicació half-duplex (o llegeixes o escrius).
  • Relativament lent.
  • Orientat a comunicacions a curta distància.

USB

1,5 Mbauds (USB 1.1 Low Speed).

Característiques

  • Cables: 4 cables: D+ i D- (parell diferencial per a les dades), Vcc (alimentació) i GND (massa).
  • Càlcul de temps: En el protocol USB, per transmetre informació cal enviar els paquets següents (exemple de transmissió del Màster a l'Slave): Paquet IN (35 bits) + Paquet DATA0 (amb 1.203 bytes, 9.659 bits) + Paquet ACK (19 bits) + Paquet DATA1 (amb 297 bytes, 2.411 bits) + Paquet ACK (19 bits) = 12.143 bits. El temps de transmissió és de 12.143 bits / 1,5 Mbps = 8,09 ms.

Avantatges

  • Estructura en bus.
  • Detecció d'errors.
  • Un dels sistemes serà el Màster i l'altre l'Slave, que hauria de demanar transaccions d'informació de tipus INTERRUPT.
  • Distància màxima de 5 metres.

Inconvenients

  • Sobrecàrrega del protocol (poca).
  • Comunicació half-duplex.
  • Hardware complex, però que permet polivalència en les comunicacions.

Tipus d'Endpoints USB

Control

Serveix per enviar paquets de control de mida petita. L'amplada de banda està garantida (10%) i hi ha control d'errors i retransmissió de paquets en cas d'error.

Interrupció

El màster pregunta periòdicament a l'slave per dades a emetre/rebre. Els paquets enviats són de mida petita. L'amplada de banda està garantida i hi ha control d'errors i retransmissió de paquets en cas d'error.

Bulk

Serveix per enviar grans volums de dades que no tenen restricció de temps. S'aplica control d'errors i retransmissió, però l'amplada de banda no està garantida; s'utilitza la que estigui disponible en cada moment.

Isòcrona

Serveix per enviar dades a intervals i durades constants (típic de l'streaming d'àudio o vídeo). No hi ha control d'errors ni retransmissions, i es garanteix com a mínim el 20% de l'amplada de banda del bus.

Configuració EUSART

(Asíncrona, full-duplex, 8 bits de dades, sense bit de paritat, 1 bit d'inici, 1 bit de parada).

TRISCbits.RC6 = 1; // Configurem els 2 pins associats a l'EUSART com a sortida.
TRISCbits.RC7 = 1;
TXSTA = 0b...; // TX9=0 (8 bits de dades), TXEN=1 (transmissió habilitada), SYNC=0 (comunicació asíncrona), BRGH=?
RCSTA = 0b...; // SPEN=1 (port sèrie habilitat), RX9=0 (8 bits de dades), SREN=1 (recepció contínua habilitada), Address Detect deshabilitat.
BAUDCON = 0b...; // RXDTP=0, TXCKP=0 (polaritats dels senyals no invertides), BRG16=?, WUE=0, ABDEN=0 (funcions extenses no habilitades).

La velocitat de comunicació de l'EUSART es determina a partir dels bits de configuració SYNC, BRG16, BRGH i el valor 'n' del registre SPBRGH:SPBRG (16 bits), segons la fórmula de bauds de la taula corresponent.

Descargar

PDF Word HTML