Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 524 по 631.doc
Скачиваний:
6
Добавлен:
16.04.2019
Размер:
2.54 Mб
Скачать

Коммуникационные микроконтроллеры и системы на их основе

Как и все другие каналы ввода/вывода, SPI-интерфейс в выключенном состоянии по­требляет минимум энергии, внутренний генератор не работает, и все регистры интерфейса находятся в исходном состоянии. Включение SPI-интерфейса в работу производится запи­сью «1» в бит EN регистра SPIMODE, как показано на рис. 5.59. После установки этого бита изменять значения других битов в регистре режима пользователю запрещено.

Порт может работать или в нормальном режиме (если бит LOOP = 0) или в тестовом петлевом режиме (бит LOOP = 1). В петлевом режиме приемник и передатчик работают нормально, но выходы передатчика внутренне соединены со входом приемника, а дан­ные на входных контактах приемника игнорируются.

Назначение выводов SPIMOSI и SPIMISO может меняться в зависимости от режима работы контроллера (табл. 5.37). Это сделано для упрощения объединения контролле­ров в режиме multimaster.

Таблица 5.37

Режимы использования контактов

Контакт

Назначение выводов

Режим-master

Режим slave

SPIMISO SPIMOSI

Вход (прием) Выход (передача)

Выход (передача) Вход (прием)

При помощи сигнала SPISEL master-станция активизирует работу slave-станции. Когда контроллер работает в режиме multimaster, вход SPISEL используется для обнаружения ошибки, когда несколько master-станций хотят работать одновременно. При этом, если контроллер работает как master-станция и обнаруживает на своем входе активный сигнал выбора slave-станции SPISEL от другого устройства master, то регистрируется ошибка.

Когда контроллер работает с несколькими slave-устройствами, следует использовать выводы параллельных портов ввода/вывода для формирования сигналов выбора slave-устройств.

Для инвертирования полярности тактового сигнала для SPI-порта используется бит CI. Если бит CI = 0, то данные выставляются на линию TXD по положительному перепаду тактового сигнала, а считываются с линии RXD - по отрицательному (рис. 5.60). Когда SPI-порт не передает данные, пассивное состояние линии тактового сигнала равно 0. Если же бит CI = 1, то данные передаются по отрицательному перепаду тактового сигнала, а считы­ваются по положительному. Когда SPI-порт не передает данные, пассивное состояние ли­нии тактового сигнала равно 1.

SPICLK (CI-0)

ЛJ~IJTЛ_Л_П_ГLn

SPICLK (СМ)

SPITXD(ouCpul)

SPIRXD(lr»ul)

SPIRXDOrjJU)

Рис. 5.60. Временные диаграммы работы SPI-интерфейса в различных режимах

532

Logic Нф|

Logic Ugh

Организация коммуникационных процессорных модулей в кмк

Бит СР определяет рабочую фазу тактового сигнала при передаче данных. Если бит СР = 0, то тактовый сигнал выставляется на линию SPICLK только в середине битового интервала передачи первого бита данных. Если бит СР = 1, то тактовый сигнал выстав­ляется в начале битового интервала передачи первого бита данных.

Пользователь может управлять работой SPI-интерфейса при помощи команд INIT ТХ PARAMETERS, CLOSE RX BD и INIT RX PARAMETERS.

Прием и передача данных. В контроллере МРС860 параметры SPI-контроллера хра­нятся на 2-й странице памяти параметров (parameter RAM) со смещением + 0x1 D80 от начала двухпортовой памяти. Структура и состав памяти параметров SPI-контроллера совпадают со структурой таблицы протокол-независимых параметров (см. табл. 5.30). Отличие заключается только в том, что отсутствуют две последние ячейки таблицы со смещениями SPI base+28 и SPI base+2C.

Данные для SPI-канала хранятся в буферах памяти, которые организованы в таблицу ТхВО (передачи) и RxBD (приема). Принцип организации таблицы аналогичен таблицам буферов для SCC-каналов ввода/вывода. Стартовый адрес таблиц в памяти контролле­ра хранится в ячейках RBASE и TBASE памяти параметров SPI-контроллера. Число бу­феров в таблице пользователь может ограничить, установив бит W := 1 в слове состоя­ния последнего необходимого буферного дескриптора. Значения, хранящиеся в ячейках RBASE и TBASE, должны быть кратны 8.

Буферы данных могут быть расположены или во внешней памяти или во внутренней двухпортовой памяти, например, в области параметров неиспользуемых SCC-каналов.

При подготовке обмена данными центральный процессор готовит данные для пере­дачи в буферах памяти, заполняет соответствующие буферные дескрипторы и устанав­ливает в их слове состояния бит готовности к передаче R := 1, а также заранее подготав­ливает буферы для приема данных.

Для начала передачи данных необходимо установить бит STR в регистре команд SPICOM (рис. 5.61). Остальные биты регистра SPICOM должны быть сброшены в «О». Если SPI-интерфейс работает в режиме master, то при установке бита STR := 1 контрол­лер начинает передавать и принимать данные. Данные начнут передаваться только тог­да, когда они будут загружены по SDMA-каналам в буфер FIFO передатчика. Когда кон­троллер работает в режиме slave, то передача начнется только после прихода сигнала выбора SPISEL и внешнего тактового сигнала. Бит STR сбрасывается в «О» автомати­чески через один период системной тактовой частоты после начала передачи.

Размер буферов FIFO для приема и передачи ограничен двумя символами.

Master-станция начинает выдавать тактовые импульсы для каждого символа на контакт SPICLK и одновременно передавать данные на контакт SPIMOSI и принимать данные с кон­такта SPIMISO. Контроллер заканчивает прием и передачу, когда будут переданы все дан­ные из буфера передачи или если при передаче возникла ошибка, а затем сбрасывает биты готовности буфера передачи R := 0 и бит пустого буфера приема Е := 0 и уведомляет цент­ральный процессор об окончании передачи маскируемым прерыванием.

Если данные для передачи занимают несколько буферов в памяти, то они будут пе­редаваться из нового буфера без задержек по окончании передачи из текущего буфера без ожидания повторной установки бита STR. Если в текущем буфере установлен бит последнего буфера кадра L = 1, то передача после передачи этого буфера будет оста­новлена. И текущий буфер приема данных будет закрыт, даже если он не заполнен.

STR I Зарезервировано

Рис. 5.61. Формат регистра команд SPICOM

533