
Рис. 6.28.Схема обмена информацией между двумя микроконтроллерами через последовательные порты
В режиме 1 для передачи байта через последовательный порт достаточно скопировать его в буфер данных SBUF. Единственное отличие заключается в том, что, кроме настройки регистра SCON, необходимо настроить таймер для задания скорости передачи информации по последовательному порту. Прием начинается только после обнаружения стартового бита. Пример программы, позволяющей осуществить прием информации по последовательному порту, приведен на листинге 6.5.
Возможность работы в асинхронном режиме позволяет использовать последовательный порт для связи с универсальным компьютером через его последовательный СОМ-порт. К сожалению, уровни сигналов последовательного порта микроконтроллера не соответствуют спецификациям стандартного интерфейса RS232, используемого в СОМ-порте универсальных компьютеров, поэтому для подключения приходится дополнительно использовать специализированные микросхемы сования уровней. Эти же микросхемы обеспечивают защиту микроконтроллера от вывода из строя статическим потенциалом при подключении разъемов.


Обычно для обмена информацией используются только сигнальные цепи СОМ-порта компьютера. Тем не менее, оставшиеся буферы интерфейсной микросхемы могут быть использованы для контроля питания микроконтроллерной схемы. Для этого сигнал запроса готовности удаленного устройства от компьютера пропускается через интерфейсную микросхему. Затем этот же сигнал подается на вход подтверждения готовности удаленного устройства. Если на интерфейсную микросхему не будет подано питание, то сигнал подтверждения готовности не будет сформирован.
Типовая схема подключения компьютера к последовательному порту микроконтроллеров семейства MCS-51 с применением интерфейсной микросхемы ADM3202 приведена на рис. 6.29.

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

Рис. 6.30.Схема соединения нескольких микроконтроллеров между собой через последовательные порты, работающие в асинхронном режиме
Команды главного процессора могут быть обращены к конкретному подчиненному процессору, поэтому в состав команд включается адрес подчиненного процессора. При работе в шине необходимо уметь отличать адресную информацию от данных. Это можно осуществить при помощи девятого бита. Обычно при передаче адреса в девятый бит записывают единицу, а при передаче данных и команд - ноль. Таким образом, микроконтроллер, даже подключившийся к шине позднее остальных, легко может осуществить синхронизацию с многопроцессорной шиной. Временная диаграмма работы многопроцессорной шины приведена на рис. 6.31.

Рис. 6.31.Временная диаграмма работы многопроцессорной последовательной шины
Настройка и работа с портом в режиме 2 никаких особенностей не имеет, поэтому можно воспользоваться примерами программ (см. листинги 6.3 и 6.4), приведенными для режима 0. Все особенности работы сосредоточены на протокольном уровне, а это не входит в задачу рассмотрения последовательного порта.
Режим 3. Асинхронный 9-битовый режим
Работа последовательного порта в этом режиме не отличается от работы в режиме 2 за исключением скорости передачи. Скорость передачи по последовательному порту задается таймером 1, так же как и в режиме 1.
Для построения программы можно воспользоваться примером, приведенным для режима 1 (см. листинг 6.5), с учетом того, что в регистре SCON необходимо задать вместо режима 1 режим 3.