5 votos

¿Solo el maestro puede iniciar la comunicación en SPI mientras que en I2C el esclavo también puede iniciar la comunicación?

¿Es posible que un esclavo inicie la comunicación en SPI?

Pensé que debido a la selección de chip, es decir, la función NSS, solo el maestro puede comunicar la comunicación. Sin embargo, en I2C, el esclavo también puede iniciar la comunicación cambiando el indicador RW en la comunicación i2c. ¿Es esto correcto?

21voto

fviktor Puntos 1534

Con sólo el maestro puede iniciar la comunicación. I2C puede sin embargo tener varios maestros y los nodos pueden cambiar los roles, así que es un poco más flexible. Pero decir que el esclavo podía iniciar la comunicación, todavía no es correcta.

Una forma común para que un esclavo para indicar que se quiere comunicar con el maestro es el uso de una señal de interrupción. En muchos de los sensores y los Adc son los llamados "datos listo" o algo similar. Después de un esclavo ha afirmado la señal de la maestra sabe que el esclavo tiene algunos de los nuevos datos disponibles.

7voto

Godisemo Puntos 204

Ambos SPI y I2C sólo permiten el maestro de la comunicación inicial. Sin embargo, es posible que los dispositivos esclavos para indicar que algo ha sucedido que merece comunicarse con ellos a través de una interrupción pin.

Interrupción de los pines son bastante comunes en ICs con la serie de los buses. El pin cambia de estado para indicar que se ha producido un evento, y el maestro puede entonces ver a pin para saber cuándo debe comunicarse con el esclavo para averiguar lo sucedido.

Incluso en ese caso, sin embargo, hasta el maestro de inicio de la comunicación y puede simplemente ignorar el esclavo si se quiere.

7voto

Justme Puntos 201

No, en I2C solo el maestro puede comenzar a comunicarse en el bus, y todos los esclavos deben seguir al maestro. Un esclavo no puede iniciar la comunicación y específicamente el esclavo no puede cambiar la bandera RW de ninguna manera.

4voto

Chenghua Yang Puntos 51

Con SPI, la línea MOSI siempre transmite datos desde el maestro al esclavo, y el MISO línea siempre transmite datos desde el esclavo al maestro.

Con I2C, solo hay una sola línea de datos para ambas direcciones. El R/W bit controla el dispositivo que transmite los datos de bytes y con dispositivo transmite los bits ACK, pero el R/W bits siempre es controlado por el maestro. (R/W bits puede ser cambiado con la repetición de una condición de inicio, pero sólo por el maestro.)

Y el reloj está siempre controlado por el maestro. (I2C esclavo puede retrasar ciclos de reloj con el reloj de estiramiento, pero no puede generar nuevos ciclos de reloj.)

1voto

Alex Andronov Puntos 178

En SPI, cada dispositivo tiene una función fija como maestro o como esclavo. En I2C, las funciones de los dispositivos puede cambiar dinámicamente. Cualquier dispositivo que inicia una transacción en el bus (como opuesto a solicitar una transacción a través de algunos medios en el exterior del autobús) debe comportarse como maestro de esa transacción, pero que el dispositivo podría comportarse como esclavos para las transacciones iniciadas por otros dispositivos. Salvo un par de detalles, I2C se basa en no ser exactamente un maestro y un esclavo para cualquier transacción en particular:

  1. Cuando se utiliza más de direccionamiento de formatos, varios dispositivos pueden actuar provisionalmente como esclavos, mientras esperaban su dirección completa. En ese estado, la única cosa que los esclavos pueden hacer es indicar al maestro que el esclavo, el maestro está interesado en que podría estar listo para responder.

  2. Varios dispositivos pueden actuar simultáneamente como maestros si todos quieren enviar los mismos datos al mismo tiempo. Esto puede causar problemas si, por ejemplo, dos dispositivos cada solicitud que un dispositivo de incrementar un contador y, a continuación, solicitar al mismo tiempo que el dispositivo de decremento. Si los dos maestros de enviar bit-por-bit idéntica solicitudes, ni tampoco uno perdería el arbitraje, y así cada uno podría pensar que su solicitud fue honrado.

La mayoría de I2C sistemas contienen sólo uno de los dispositivos a los que se puede actuar como maestro, pero el protocolo se permiten múltiples dispositivos. A menos que un autobús se espera tener varios maestros, sin embargo, es más fácil implementar un dispositivo que espera ser el único maestro que uno que puede co-existir con otros maestros en el autobús.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X