8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 161 162 163 164 165 166 167 ... 195

13.3. Мультипроцессорный режим работы

Режим мультипроцессорного обмена позволяет осуществлять связь между несколькими ведомыми микроконтроллерами и одним ведущим. В этом режиме каждый ведомый микроконтроллер имеет свой уникальный адрес. Если ведущий микроконтроллер хочет что-либо передать, он посылает адресный байт, определяющий, к какому из микроконтроллеров ведущий собирается обратиться. Если какой-либо из ведомых микроконтроллеров распознал свой адрес, он переходит в режим приема данных и соответственно принимает последующие байты как данные. Остальные ведомые микроконтроллеры игнорируют принимаемые байты до посылки ведущим нового адресного байта. Включение режима фильтрации принимаемых кадров, не содержащих адреса, осуществляется установкой в 1 бита МРСМ (МРСМл) регистра UCSRA (UCSR/zA).

В микроконтроллере, выполняющем роль ведущего, должен быть установлен режим передачи 9-битных данных. При передаче адресного байта старший бит должен устанавливаться в 1, а при передаче байтов данных он должен сбрасываться в 0.

В ведомых микроконтроллерах механизм приема зависит от режима работы приемника. Если приемник настроен на прием 5...8-битных данных, то идентификация содержимого кадра (адрес/данные) осуществляется по 1-му стоп-биту. При приеме 9-битных данных идентификация содержимого кадра осуществляется по старшему биту слова данных. Если указанные биты установлены в 1, значит, кадр содержит адрес, в противном случае — данные.

Для осуществления обмена данными в мультипроцессорном режиме необходимо действовать следующим образом:

l.Bce ведомые микроконтроллеры переключаются в режим мультипроцессорного обмена установкой в 1 бита МРСМ (МРСМя) регистра UCSRA (UCSRajA).

2.Ведущий микроконтроллер посылает адресный кадр, а все ведомые микроконтроллеры его принимают. Соответственно в каждом из ведомых микроконтроллеров устанавливается флаг RXC (RXCaj) регистра UCSRA (UCSRM).

3.Каждый из ведомых микроконтроллеров считывает содержимое регистра данных. Микроконтроллер, адрес которого совпал с адресом, посланным ведущим, сбрасывает в 0 бит МРСМ (МРСМл).

Адресованный микроконтроллер начинает принимать кадры, содержащие данные. Если приемник ведомого микроконтроллера настроен на прием 5...8-битных данных, будет генерироваться ошибка кадрирования, поскольку первый стоп-бит будет равен 0 (этого можно избежать, исполь-


зуя два стоп-бита). В остальных ведомых микроконтроллерах бит МРСМ (МРСМя) установлен в 1, поэтому кадры данных будут игнорироваться.

После приема последнего байта данных адресованный микроконтроллер устанавливает бит МРСМ (МРСМ/?) в 1 и снова ожидает приход кадра с адресом. Процесс повторяется со 2-го пункта.

13.4. Модуль USART в режиме MSPI

В ряде новых моделей микроконтроллеров, а именно в ATmega48x/88x/168x, ATmega 164х/324х/644х и ATmega640x/1280x/1281x/ 2560х/2561х, модули USART могут работать в качестве ведущего шины SPI. В этом режиме, который называется MSPI (Master SPI Mode), модули USART поддерживают все четыре режима SPI (0, 1, 2 и 3). При этом доступны как двойная буферизация данных при приеме и передаче, так и большинство прерываний модуля.

Функции выводов модуля USART в режиме MSPI указаны в Табл. 13.13.

Таблица 13.13. Выводы USART в режиме MSPI

USART

SPI

Описание

TXDai

MOSI

Только выход ведущего

RXDai

MISO

Только вход ведущего

ХСКл

SCK

Выход тактового сигнала

-

SS

Не поддерживается

Обратите внимание, что направление передачи данных вывода ХСКл необходимо задавать вручную (соответствующий бит регистра DDRjc должен быть установлен в 1). Причем конфигурирование вывода желательно выполнять до разрешения работы приемника и передатчика USART.

13.4.1. Управление модулем USART в режиме MSPI

Управление модулями USART в режиме MSPI осуществляется посредством тех же регистров UCSR/jA, UCSR/jB и UCSRaC, что и в обычном режиме, изменяется только назначение (и название) некоторых битов регистров UCSR/jC. Биты этих регистров, используемые в режиме MSPI, приведены на Рис. 13.9...13.11, а их описание — в Табл. 13.14...13.16 соответственно.


7

6

5

4

3

2

1

0

RXCn

ТХСл

UDREn

-

-

-

-

-

Чтение )/Запись(\Л/)

R/W

R/W

R/W

R

R

R

R

R

Начальное значение

0

0

1

0

0

0

0

0

Puc. 13.9. Регистры UCSR/jA в режиме MSPI

Таблица 13.14. Биты регистров UCSR/iA в режиме MSPI

Бит

Название

Описание

7

KX.Cn

Флаг завершения приема. Флаг устанавливается в 1 при наличии непрочитанных данных в буфере приемника. После опустошения буфера флаг аппаратно сбрасывается. Если бит RXCIEw регистра UCSR/iB установлен, то при установке флага генерируется запрос на прерывание «прием завершен»

6

ТХСл

Флаг завершения передачи. Флаг устанавливается в 1 после передачи всех битов из сдвигового регистра передатчика, при условии, что в регистр данных UDR/i не было загружено нового значения. Если бит TXCIEai регистра UCSRaiB установлен, то при установке флага генерируется прерывание «передача завершена». Флаг сбрасывается аппаратно при выполнении подпрограммы обработки прерывания или программно, записью в него лог. 1

5

UDREai

Флаг опустошения регистра данных. Данный флаг устанавливается в 1 при пустом буфере передатчика (после пересылки байта из регистра данных UDR в сдвиговый регистр передатчика). Установленный флаг означает, что в регистр данных можно загружать новое значение. Если бит UDRIEai регистра UCSR/iB установлен, генерируется запрос на прерывание «регистр данных пуст». Флаг сбрасывается аппаратно, при записи в регистр данных

4...0

-

Не используются

Примечание, п = 0,1,2 или 3.

76543210

RXCIEn

TXCIEn

UDRIEn

RXENn

TXENn

-

-

-

Чтением/Запись) R/W R/W R/W R/W R/W RRR

Начальное значение 0 0100010

Рис. 13.10. Регистры UCSR/jB в режиме MSPI

Таблица 13.15. Биты регистров UCSR/iB в режиме MSPI

Бит

Название

Описание

7

RXCIEai

Разрешение прерывания по завершении приема. Если данный бит установлен в 1, то при установке флага RXOi регистра UCSR/iA генерируется прерывание «прием завершен» (если флаг I регистра SREG установлен в 1)

6

TXCIE/i

Разрешение прерывания по завершении передачи. Если данный бит установлен в 1, то при установке флага ТХСл регистра UCSR/iA генерируется прерывание «передача завершена» (если флаг I регистра SREG установлен в 1)

5

UDRIEw

Разрешение прерывания при очистке регистра данных USART. Если данный бит установлен в 1, то при установке флага UDREai регистра UCSRM генерируется прерывание «регистр данных пуст» (если флаг I регистра SREG установлен в 1)



0 ... 161 162 163 164 165 166 167 ... 195