Протокол SPI.
Протокол SPI похож на протокол Microwire, но имеет несколько отличий.
1. SPI способен передавать данные со скоростью до 3 Мбит в секунду.
2. Разрядность данных в SPI пакете равна 8 бит.
3. Передатчик в SPI имеет возможность приостановить передачу данных..
4. Данные в SPI могут передаваться в виде множества байтов, которые называются «блок» или «страница».
Как и в протоколе Microwire, в SPI сначала передается байт, который содержит команду для принимающего устройства. Затем идет необязательный 16-разрядный адрес, после чего следуют 8-разрядные данные. Как было указано выше, протокол SPI позволяет передавать несколько байтов (рис. 2.35). В протоколе SPI используется симметричный тактовый сигнал, который имеет одинаковую длительность высокого и низкого уровня. Выходные данные должны быть выданы на линию по крайней мере за 30нс до поступления переднего фронта тактового сигнала, а считывание должно происходить за 30нс до заднего фронта.
Рис. 2.35 - Запись данных в протоколе SPI.
При реализации протоколов Microwire или SPI можно упростить схему соединения, если подключить вход Din и выход Dout к одной линии (рис. 2.36). При таком способе соединения микроконтроллер должен отключить свой выходной драйвер, когда закончит последовательную передачу данных. После этого он может принимать данные, поступающие от другого устройства. Резистор между выводами данных служит для ограничения тока в тех случаях, когда и микроконтроллер, и периферийное устройство выдают данные на линию связи.
Рис. 2.36 - Подключение входа «Din» и выхода «Dout» к одной линии.