Режим 2. Асинхронный 9-битовый режим с фиксированной скоростью передачи
В этом режиме последовательный порт работает на фиксированной скорости передачи, так же как в режиме 0. Скорость обмена определяется значением бита SMOD и при частоте кварцевого резонатора 12 МГц составляет 375 кбит/с. У современных микроконтроллеров, способных работать с более высокой тактовой частотой, скорость обмена может превышать 1 Мбит/с.
Основной особенностью работы последовательного порта в этом режиме является передача девятого информационного бита, который может быть использован для контроля достоверности передаваемой информации. Для вычисления четности передаваемого байта можно воспользоваться аппаратным вычислителем, подключенным к аккумулятору микроконтроллера A. Результат вычисления четности байта сохраняется в бите четности P регистра PSW, откуда его можно скопировать в девятый информационный бит последовательного порта TB8, расположенный в регистре управления последовательным портом SCON.
Еще большие возможности для построения устройств предоставляет 9-разрядный режим работы при реализации многопроцессорных систем. Параллельные порты микроконтроллеров семейства MCS-51 построены по схеме с открытым стоком. Это позволяет объединять несколько выходов передатчиков в одну шину. Такое выполнение выходных каскадов микросхем облегчает построение многопроцессорных систем. В многопроцессорной системе один процессор должен быть главным (master), остальные - подчиненными (slave). Естественно команды главного процессора должны восприниматься подчиненными, поэтому выход передатчика главного процессора соединяется с входами приемников подчиненных. Выходы же передатчиков подчиненных процессоров объединяются и подключаются к входу приемника главного процессора. Схема примера многопроцессорной системы приведена на рис. 20.31.
Рис. 20.31. Схема соединения нескольких микроконтроллеров между собой через последовательные порты, работающие в асинхронном режиме
Команды главного процессора могут быть обращены к конкретному подчиненному процессору, поэтому в состав команд включается адрес подчиненного процессора. При работе в шине необходимо уметь отличать адресную информацию от данных. Это можно осуществить при помощи девятого бита. Обычно при передаче адреса в девятый бит записывают единицу, а при передаче данных и команд — ноль. Таким образом, микроконтроллер, даже подключившийся к шине позднее остальных, легко может осуществить синхронизацию с многопроцессорной шиной. Временная диаграмма работы многопроцессорной шины приведена на рис. 20.32.
Рис. 20.32. Временная диаграмма работы многопроцессорной последовательной шины
Настройка и работа с портом в режиме 2 никаких особенностей не имеет, поэтому можно воспользоваться примерами программ (см. листинги 20.3 и 20.4), приведенными для режима 0. Все особенности работы сосредоточены на протокольном уровне, а это не входит в задачу рассмотрения последовательного порта.
|