Смекни!
smekni.com

Motorola MC68HC705C8 (стр. 10 из 12)

MISO (Master In, Slave Out)-линия, предназначенная для ввода последовательной информации, если устройство находится в режиме "ведущий", или для ввода информации, если устройство находится в режиме "ведомый". Данные по линии также передаются старшим битом вперед. Линия MISO ведомого устройства находится в высокоимпедансном состоянии, если режим "ведомый" для него не выбран (SS\=1). Линия MISO ведомого устройства находится в состоянии высокого импеданса, если SS=1.

SCK (Serial CloK)-вывод синхронизации. Поскольку синхронизация происходит по ведущему устройству, линия SCK ведомого устройства работает на ввод. Как показано на рисунке, возможны четыре различных типа синхронизации, которые могут быть выбраны через биты CPOL и CPHA регистра управления. Режим синхронизации задается одинаковым для ведущего и ведомого устройств. Биты SPR0 и SPR1 в регистре управления ведущего устройства задают скорость обмена информацией. Значение этих бит у ведомого прибора не имеет значения.

SS\ (Slave Select)-выбор ведущий/ведомый. Линия SS\ имеет высокий уровень у ведущего устройства. Если вывод SS\ ведущего устройства переходит в состояние логического нуля, в регистре статуса SPSR устанавливается флаг MODF. Если ОЭВМ работает как ведущее устройство, генератор ведущего устройства является источником сигнала синхронизации для ведомых устройств. Данные параллельно загружаются в 8-битный сдвиговый регистр из внутренней шины (в ходе цикла записи) и затем последовательно поступают через вывод MOSI на ведомое устройство. В ходе цикла чтения данные поступают последовательно через вывод MISO от ведомого устройства в 8-битный сдвиговый регистр. Затем данные параллельно переносятся в буфер чтения и становятся доступными для чтения с внутренней шины. Если ОЭВМ работает как ведомое устройство, то на внешний вывод SS\ должен поступать сигнал низкого уровня, а на вывод SCK-сигнал синхронизации. Данные от ведущего устройства поступают последовательно на вывод MOSI и передаются в 8-битный сдвиговый регистр для параллельного переноса в буфер чтения. У ведомого в ходе цикла записи, данные параллельно загружаются в 8-битный сдвиговый регистр с внутренней шины данных, ожидая сигнала синхронизации от ведущего, для того чтобы последовательно передать данные через вывод MISO.

Motorola MC68HC705C8

Рис. 2-12. Структурная схема SPI.

На рис. 2-13 представлена типовая схема подключения пяти микропроцессорных устройств, из которых одно является ведущим, а четыре-ведомыми. В этой системе у каждого устройства обозначены основные контакты: MISO, MOSI, SCK и SS\.

Motorola MC68HC705C8

Рис. 2-13 Схема подключения устройств с использованием периферийного интерфейса.

Motorola MC68HC705C8

Рис. 2-14 Диаграмма работы SPI.

На рисунке 2-14 представлена временная диаграмма, показывающая соотношение данных с сигналом синхронизации. Как видно из рисунка, возможны 4 различных варианта, которые могут быть выбраны через биты CPOL и CPHA управляющего регистра. Различные протоколы работы SPI позволяют осуществлять обмен данными с любыми последовательными синхронными устройствами.

В состав периферийного интерфейса входят три регистра, которые осуществляют управление, отражают статус, а так же выполняют другие функции.

Управляющий регистр (SPSR), расположенный по адресу 0АН, контролирует индивидуальные функции интерфейса: прерывания, разрешение/запрет доступа, выбор ведущего/ведомого устройства и другими.

Управляющий регистр

Название SPIE SPE - MSTR CPOL CPHA SPR1 SPR0
Установка после RESET 0 0 - 0 0 0 0 0

SPIE-бит разрешения/запрета прерываний от последовательного интерфейса связи,

при SPIE=1 прерывания разрешены,

при SPIE=0 прерывания запрещены,

SPE-активация/блокировка интерфейса,

при SPE=1-система периферийного интерфейса активирована,

при SPE=0-система блокирована,

MSTR-бит выбора режима ведущий/ведомый,

при MSTR=1-режим "ведущий",

при MSTR=0-режим "ведомый",

CPOL-бит полярности синхронизации (см. рис. 17),

при CPOL=1-SCK-линия считается нерабочей в высоком состоянии,

при CPOL=0-SCK-линия считается нерабочей в низком состоянии,

CPHA-фаза синхронизации (см. рис. 17),

при CPHA=1 вывод SS\ является управляющим выводом доступа к данным

при CPHA=0-сдвиг синхронизации является логическим "ИЛИ" SCK и SS. Когда SS в состоянии 0 первый фронт SCK является сигналом начала передачи.

Биты SPR0,SPR1 задают скорость передачи данных, которую можно выбрать, руководствуясь таблицей:

SPSR1 SPSR0 Внутренняя синхронизация делится на
0 0 2
0 1 4
1 0 16
1 1 32

Регистр статуса расположен по адресу 0ВН и содержит три бита статуса

Регистр статуса

Название SPIF WCOL - MODF - - - -
Установка после RESET 0 0 - 0 - - - -

SPIF-флаг пересылки данных,

при SPIF=1-индицирует завершение обмена данными между ОЭВМ и внешним устройством. Передача данных начинается при записи "ведущим" данных в регистр данных. (если SPIF=1 и SPIE=1 прерывания разрешены),

при SPIF=0-сброс происходит при чтении SPSR (где SPIF=1), следующим за доступом к SPDR.

WCOL-флаг конфликта записи,

при WCOL=1-индицирует попытку записи данных в SPDR в тот момент, когда процесс обмена данными еще не завершен, передача данных прекращается,

при WCOL=0-сброс происходит при чтении SPSR (где WCOL=1), следующим за доступом к SPDR.

MODF-флаг сбоя режима,

при MODF=1-индицирует конфликт системы из-за наличия нескольких ведущих устройств. Флаг устанавливается, если cигнал на линии SS/ переходит в низкий уровень, в то время, как ОЭВМ конфигурируется ведущим устройством,

при MODF=0- сброс достигается при чтении SPSR (где MODF=1), следующим за записью в SPSR.

Регистр данных расположен по адресу 0СН и предназначен для обмена данными. Запись в этот регистр у ведущего устройства инициирует начало приема/передачи данных. Затем данные передаются прямо в сдвиговый регистр, который обменивается данными с ведомым устройством. По окончание обмена устанавливается флаг SPIF.

Регистр данных

SPD7 SPD6 SPD5 SPD4 SPD3 SPD2 SPD1 SPD0

3. Специальные режимы работы.

3.1 RESET.

RESET, или начальная установка, по-существу означает запуск программы, хранящейся в ППЗУ ОЭВМ, с определенного адреса с установкой периферийных систем, управляющих регистров и флагов в определенное состояние. Начальная установка происходит в одном из 4-х случаев:

1) Внешний RESET при подаче активного сигнала низкого уровня на вывод RESET/ микросхемы.

2) Внутренний RESET при включении питания.

3) Внутренний RESET при неправильном функционировании программы.

4) Внутренний RESET при отсутствии сигнала синхронизации.

При установке ОЭВМ в исходное состояние происходит следующее:

все регистры направления передачи данных сбрасываются (настройка на ввод информации);

в указатель стека загружается значение 00FFH;

бит I в регистре признаков устанавливается в "1";

триггер внешнего прерывания сбрасывается;

запрещается доступ к последовательному интерфейсу связи (биты ТЕ=0 и RE=0). Остальные биты регистров интерфейса связи: TIE, TCIE, RIE, ILIE, RWU, SBK, RDRF, IDLE, OR, и FE-сбрасываются.

биты статуса последовательного интерфейса TDRE и TC устанавливаются в 1.

предварительный делитель частоты и биты управления скоростью обмена информацией SCP0 и SCP1 сбрасываются.

последовательный периферийный интерфейс блокирован (бит SPE=0). Остальные биты сбрасываются: SPIE, MSTR, SPIF, WCOL, и MODF.

все биты разрешения прерываний от устройств последовательного ввода-вывода сбрасываются (SPIE, TIE, TCIE).

последовательный периферийный интерфейс конфигурируется как подчиненный (ведомый) компонент системы (MSTR=0).

предварительный делитель частоты таймера сбрасывается. В счетчик таймера загружается значение FFFCH. Бит TCMP сбрасывается. Все биты разрешения прерываний от таймера сбрасываются (ICIE, OCIE, и TOIE), запрещая прерывания. Бит OLVL сбрасывается.

триггер STOP сбрасывается.

триггер WAIT сбрасывается.

внутренняя шина адреса загружается исходным вектором (в старший байт программного счетчика загружается значение из ячейки с адресом 1FFEH, в младший-из ячейки 1FFFH).

Перейдем к более подробному рассмотрению режима RESET.

RESET по включению питания происходит при подаче напряжения питания на вывод Vdd микросхемы, и предназначен для стабилизации работы тактового генератора. Данный вид режима RESET предусмотрен исключительно для момента включения питания, и не должен использоваться для определения падения питающего напряжения. Схема задержки включения предусматривает прохождение 4064 импульсов с момента запуска генератора. Если же и после этого периода на выводе RESET/ сохраняется сигнал низкого уровня, то процессор остается в состоянии начальной установки до тех пор, пока на вывод RESET/ не будет подан сигнал высокого уровня.

RESET по внешнему сигналу происходит при условии присутствия уровня логического 0 на выводе RESET/ микросхемы в течение 1.5 машинных циклов.

RESET по времени выполнения программы происходит при переполнении специального таймера COP (Computer Operating Properly, дословно-компьютер работающий правильно, далее просто таймер COP), следящего за правильностью работы программы. Если таймер СОР активизирован, то его переполнение индицирует неправильность работы прикладной программы, что, в свою очередь, вызывает установку ОЭВМ в начальное состояние.