Скачиваний:
144
Добавлен:
21.02.2014
Размер:
1.47 Mб
Скачать

6.2.4 Выбор ведомого устройства (ss/).

Этот вход используется для выбора ведомого устройства. Сигнал на этой линии должен принять низкий уровень до начала обмена данными и должен оставаться низким в течение всего времени обмена.

У ведущего устройства сигнал на этой линии должен постоянно быть высокого уровня. Если же уровень сигнала становится низким, то устанавливается флаг ошибки MODF регистра статуса SPI (SPSR). Вывод SS/ можно настроить как линию вывода общего назначения посредством записи “1” в бит 5 порта D, запрещая таким образом работу системы контроля. Три других вывода при работе SPI всегда используются самим SPI.

Если бит CPHA=0, то в качестве импульсов сдвига используется сигнал, представляющий собой функцию “ИЛИ” сигналов SS/ и SCK. В этом режиме уровень сигнала на линии SS/ должен быть высоким между двумя последовательными символами при передачи одного сообщения SPI. При CPHA=1 уровень сигнала на SS/ может оставаться низким на протяжении передачи нескольких символов. В случае когда присутствует только одно ведомое устройство, вывод SS/ можно подключить к VSS, пока используются режимы с CPHA=1.

6.3 Функциональное описание.

На рисунке 6-2 представлена блок-схема системы последовательного периферийного интерфейса. Когда ведущее устройство передает данные ведомому по линии MOSI, ведомое устройство отвечает посылкой данных ведомому по линии MISO. Весь этот процесс и составляет дуплексный обмен данными между двумя устройствами с синхронизацией одним и тем же сигналом. Таким образом, передаваемый байт замещается принимаемым байтом и поэтому не требуются отдельные флаги, сигнализирующие об очистке передатчика и заполнении приемника. Для инцикации завершения обмена данными используется один бит SPIF.

Рисунок 6-2. Блок-схема SPI.

Последовательный периферийный интерфейс является дважды буферированным на чтение, но не запись. Если выполняется запись данных во время передачи данных, то текущая передача не прерывается, а сама запись игнорируется. Такое событие вызывает установку флага ошибки записи WCOL регистра SPSR. После сдвига данных устанавливается флаг SPIF того же регистра SPSR.

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

В режиме ведомого устройства логические схемы формируют низкий уровень на выводе SS/ и формируют тактовые импульсы на выводе SCK. Таким образом, ведомое устройство синхронизируется по ведущему. Данные последовательно посылаются ведущим устройством по линии MOSI и считываются в регистр сдвига. После полной загрузки сдвигового регистра данные параллельно перемещаются в буфер чтения. В течение цикла записи данные записываются в сдвиговый регистр, после чего ведомое устройство ждет сигнала синхронизации от ведущего для сдвига данных по линии MISO.

На рисунке 6-3 показано взаимное соединение выводов MOSI, MISO, SCK и SS ведущего и ведомого устройств.

Рисунок 6-3. Соединение ведущий-ведомый при использовании SPI.

Поскольку линии порта D (и соответственно линии SPI) могут работать в режиме с открытым стоком и таким образом позволять соединение “монтажное ИЛИ”, система SPI может быть построена различными способами. Система, в которой происходит единственный двунаправленный обмен данными может просто использовать соединение выводов MISO и MOSI. Но так как микроконтроллер MC68HC11E9 может выборочно запрещать свой выход MISO, то возможны другие виды протокола обмена.

Соседние файлы в папке МС68НС11Е9