2014-02-18 2 views
8

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

+5

Этот вопрос кажется не по теме, потому что речь идет об оборудовании, а не о программировании. –

+1

На самом деле, это в основном около * протоколов * - предоставлено, низкоуровневые, с которыми аппаратные пользователи имеют наибольшее значение, но те же проблемы возникают в сетевых стеках и т. Д. –

+1

Тем не менее, вопросы встраиваемых систем, а также границы между оборудованием и программное обеспечение получит гораздо лучший прием на http://electronics.stackexchange.com. Чистые вопросы по программному обеспечению всегда по теме, а также, если они связаны со встроенными системами и низкоуровневым программированием. – Lundin

ответ

9

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

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

0

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

8

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

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

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

+0

Это правильно (а также почему это не программирование вопрос). –

Смежные вопросы