Что делает SPI быстрее, чем протокол I2C

Я знаю основные сообщения I2C и SPI. Поскольку оба являются синхронными протоколами. Я хотел знать, что делает SPI быстрее, чем I2C. Если я не ошибаюсь, используя I2C, мы можем использовать 400 Кбит / с, в то время как в SPI мы также можем достичь 10 Мбит / с. Из-за аппаратного изменения? Этот вопрос был задан мне в одном из интервью. Пожалуйста, сделайте меня правильным, если я ошибаюсь.

I2C довольно активен, поддерживая несколько мастеров на шине. Это вызывает значительные накладные расходы в протоколе шины, ACK для каждого байта и преднамеренные задержки для арбитража доступа к шине. Также установленная максимальная частота шины 100 кГц в исходной спецификации, 400 кГц, сегодня обычна, дополнительные скоростные режимы 10 кГц и 3,4 МГц высокочастотные, спецификация 2012 определяет сверхбыстрый режим 5 МГц.

SPI намного проще, один мастер без протокола шины за выбором микросхемы и без установленной максимальной скорости передачи. Если расстояния короткие, вы можете идти так быстро, как вы посмели. Довольно быстро на межсоединении между микросхемами, расположенными на расстоянии менее дюйма.

Существует важная разница в оборудовании, которая ограничивает скорость на I2C.

SPI: все линии управляются передатчиком как высоким, так и низким. Это минимизирует время, необходимое для изменения состояния проводника.

I2C: все линии имеют открытый коллектор, что означает, что передатчик только ведет линию на низком уровне. Когда передатчик отпускает линию, резистор, подключенный к Vcc (напряжение питания), тянет свет высоко. Однако из-за емкости провода и компонентов провод идет относительно высокого напряжения относительно медленно. Из-за этого, тактовая частота должна быть уменьшена, чтобы время, чтобы линии «дрейфовали» высоко.

скорости зависят от того, какой тип платы вы используете и как реализуется ваша аппаратная логика. Существуют определенные преимущества и недостатки в использовании одного над другим. Выбор того, какой тип шины использовать, зависит от того, какой тип связи вам нужен между различными периферийными устройствами, которые вы хотите подключить, используя их. http://quick2wire.com/articles/i2c-and-spi/