Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИПУ ответы.docx
Скачиваний:
104
Добавлен:
20.04.2019
Размер:
5.23 Mб
Скачать

3.9.2.2 Режимы работы шины spi

Во время каждого цикла обмена по SPI происходит полнодуплексная передача данных:

Ведущий выставляет бит данных на линию MOSI; ведомый читает его с этой же линии.

Ведомый выставляет бит на линию MISO; ведущий читает его с этой же линии.

Не во всех случаях передачи данных все эти операции имеют значение, но они все равно выполняются.

Протокол передачи по интерфейсу SPI предельно прост и, по сути, идентичен логике работы сдвигового регистра, которая заключается в выполнении операции сдвига и, соответственно, побитного ввода и вывода данных по определенным фронтам сигнала синхронизации. Получается, что

164

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

В один и тот же момент времени ведущий может обмениваться данными только с одним ведомым.

Кроме установки скорости обмена ведущий должен определить, по каким фронтам сигнала синхронизации будет выполняться чтение, а по каким – запись данных. Установка данных при передаче и выборка при приеме всегда выполняются по противоположным фронтам синхронизации. Это необходимо для гарантирования выборки данных после надежного их установления. Если к этому учесть, что в качестве первого фронта в цикле передачи может выступать нарастающий или падающий фронт, то всего возможно четыре варианта логики работы интерфейса SPI. Эти варианты получили название режимов SPI и описываются двумя параметрами:

CPOL (полярность синхронизации) – исходный уровень сигнала синхронизации. Если CPOL=0, то линия синхронизации до начала цикла передачи и после его окончания имеет низкий уровень (т.е. первый фронт нарастающий, а последний – падающий). Если CPOL=1, – высокий (т.е. первый фронт падающий, а последний – нарастающий).

CPHA (фаза синхронизации). От этого параметра зависит, в какой последовательности выполняется установка и выборка данных. Если CPHA=0, то по переднему фронту в цикле синхронизации будет выполняться выборка данных, а затем, по заднему фронту, – установка данных. Если же CPHA=1, то установка данных будет выполняться по переднему фронту в цикле синхронизации, а выборка – по заднему. Информация по режимам SPI обобщена в таблице ниже.

Таблица 7. Режимы SPI.

Режимы SPI

0

1

2

3

CPOL

0

1

0

1

CPHA

0

0

1

1

Временная

диаграмма первого цикла синхронизации

165