Модуль Универсального Асинхронного Приёмо-передатчика (UART). Упрощённая блок схема модуля UART. Регистры управления, страница 9

8.1 Многопроцессорная Связь

Типичный многопроцессорный протокол связи дифференцируется между байтами данных и адрес/команда. Общая схема состоит в том, чтобы использовать 9-ый информационный разряд, чтобы выделить какие данные используются либо как информационные данные, либо как адрес. Если 9-ый бит установлен, данные обработаны как адрес или команда. Если 9-ый бит сброшен, полученное информационное слово обработано как данные, связанные с предыдущим адресом/командой.

Протокол работает следующим образом:

• ведущее устройство передает информационное слово состоящее из 9-ти битов. Данное слово содержит адрес ведомого устройства.

• Все ведомые устройства в цепочке связи получают слово адреса и проверяют принадлежит ли он им.

• ведомое устройство, к которому обращались, получит и обработает последующие байты данных, посланные ведущим устройством. Все другие ведомые устройства не будут обрабатывать последующие данные до нового прихода слова адреса (т.е. с установленным 9-ым битом).

8.2 ADDEN Служебный бит

Приёмник UART имеет режим определения адреса, который позволяет ему игнорировать информационные слова со сброшенным 9-ым битом. Это уменьшает количество прерывания в микроконтроллере, так как информационные слова со сброшенным  9-ым битом не буферизируются. Этот режим включается установкой бита ADDEN (UxSTA <5>).

UART должен быть настроен для работы в 9-ти битном режиме, чтобы использовать режим определения адреса (Address Detect). Бит ADDEN ни на что не влияет, если приёмник настроен на работу в 8-ми битном режиме.

8.3 Установка 9-ти битного режима работы передатчика

Процедура установки для 9-ти битной передачи  идентична процедуре для 8-ми битной передачи, за исключением того, что биты PDSEL <1:0> (UxMODE <2:1) должны быть установлены как ‘11’ (см.5.3 Настройки для передатчика UART).

Запись слова должна быть выполнена в регистр UxTXREG  (начало передачи передачи).

8.4 Установка 9-ти битного режима работы приёмника используя режим определения адреса

Процедура установки 9-ти битного режима работы приёмника подобна процедуре для 8-ми битного режимов работы приёмника, за исключением того, что биты PDSEL <1:0>  (UxMODE <2:1) должны быть установлены как ‘11’ (см. 7.4 Настройка приёмника UART).

Режим прерывания приёмника должен быть конфигурирован, заполнением битов URXISEL <1:0> и

(UxSTA <7:6>).

Обратите внимание:Если режим определения адреса активизирован (ADDEN =1), то биты управления URXISEL <1:0>  должны быть конфигурированы так, чтобы прерывание было сгенерировано после каждого полученного слова. Каждое полученное информационное слово должно быть проверено в программе на соответствие адреса, немедленно после приема.

Процедура для использование режима определения адреса:

1. Установить бит ADDEN (UxSTA <5>) разрешающий определение адреса. Установите биты URXISEL так, чтобы прерывание генерировалось после каждого полученного слова.

2. Проверить каждый 8-ми битный адрес, читая регистр UxRXREG, чтобы определить, является ли ваше устройство адресуемым.

3. Если адрес с вашим устройством не совпадает, то выбрасываем(удаляем) это слово.

4. Если это является вашим адресов, очистите бит ADDEN, чтобы разрешить приём последующих байт данных в буфер приёмника и прерывания CPU.

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

5. Когда получен последний байт данных, то установить бит ADDEN  так, чтобы можно было получать только байт адреса.

Также обеспечьте, чтобы служебные биты URXISEL были настроены чтобы генерировать прерывание после каждого полученного слова.

Рисунок 13: Прием с определением адреса  (ADDEN =1)

Обратите внимание: Эта временная диаграмма показывает байт данных, сопровождаемый байтом адреса. Байт данных не читается в UxRXREG ( буфер приёмника) потому что ADDEN = 1 и бит от 8 до 0.

9 ДРУГИЕ ОСОБЕННОСТИ UART