Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Микропроцессоры.doc
Скачиваний:
524
Добавлен:
13.05.2015
Размер:
2.99 Mб
Скачать
      1. Описание последовательного порта.

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

  • режим "0" - синхронный ввод/вывод с частотой OSC/12;

  • режим "1" - асинхронный с 8-бит. кадром, частота kf;

  • режим "2" - асинхронный с 9-бит. кадром, частота kOSC/32;

  • режим "3" - асинхронный с 9-бит. кадром, частота kf;

где k {1, 1/2}, f - частота переполнения T1 (fov), деленная на 16.

Входные и выходные данные хранятся в регистре SBUF(99), управление работой приемопередатчиков осуществляется словом состояния и управления SCON (98), формат которого представлен в Табл. 11 .38.

Рис.11.100. Разряд порта Р3

В режиме "0" (синхронный) данные передаются или принимаются по линии RxD со скоростью OSC/12 младшими битами вперед по 8 бит за операцию. Для синхронизации внешних средств используется линия TxD (Рис. 11 .101)

Табл.11.38

№ бита

Имя

Назначение

RI

Флаг прерывания приемника

TI

Флаг прерывания передатчика

RB8

8 бит приемника (реж. 2 и 3)

TB8

8 бит передатчика (реж. 2 и 3)

REN

Разрешение приема

SM2

Запрещение приема кодов с b8 = 0

SM1

00 - "0"

10 - "2"

SM0

01 - "1"

11 - "3"

Передача инициируется всякий раз, когда в новые данные записываются в буфер SBUF. Признаком окончания передачи служит установка флага TI.

Операция ввода активизируется при разрешенном приеме (REN = 1) по сбросу RI. Установка RI свидетельствует о готовности введенных данных для считывания из буфера SBUF.

Врежиме 1..3 реализуется асинхронный обмен данными. Кадр для передачи в режиме 1 показан на Рис. 11 .102. Кадры для режимов 2 и 3 отличаются наличием девятого бита D8, следующего за D7 перед стоповым битом.

Рис.11.101. Прием/передача в синхронном режиме

Для повышения помехоустойчивости приема в режимах 1..3 каждый бит данных опрашивается трижды. Для этого период передачи бита делится на 16 интервалов и опросы осуществляются в 7, 8, 9 интервалах; значение бита определяется мажорированием. До прихода стартового бита приемник RxD проверяется 16 раз за период. При обнаружении перехода "H""L" начинается отсчет. Если стартовый бит не подтверждается (опрос 3 раза), то переход принимается за помеху. При обнаружении стартового бита осуществляется прием следующих 8 или 9 битов (в зависимости от режима) и размещение их в SBUF и флажке RB8. При приеме стопового бита устанавливается флаг RI, свидетельствующий об окончании приема очередного кадра.

Рис.11.102. Кадр передачи в режиме 1

Передача данных на выход TxD начинается после записи их в SBUF независимо от флага TI. Передача стартового бита начинается в фазе S1P1 МЦ, следующего за сигналом переполнения того счетчика, который служит генератором скорости. Кадр завершается выдачей стопового бита. Перед началом передачи стоп-бита устанавливается флаг TI - окончание передачи данных.

Флажки RI и TI способны осуществлять запросы на прерывания, причем в режимах 1..3 при SM2 = 1 установка флага RI (и генерация запроса) возможна только при приеме кадра с D8 = 1. Для режима 1 это соответствует приему стопового бита. Таким образом имеется возможность (в режимах 2 и 3) разделять принимаемые кадры на два класса (по D8 RB8). Кадры, принимаемые с RB8 = 0 теряются. Это дает возможность эффективно управлять межмашинной связью в сетях с единой последовательной магистралью. Кадры с RB8 = 1 - широковещательные и содержат адрес приемника, информация которому будет передаваться кадрами с RB8 = 0. Для вызова другого абонента следует передать новый кадр с RB8 = 1.

Скорость передачи зависит от состояния флага SMOD в регистре PCON (87), режима работы канала и длительности периода пересчета таймера-генератора скорости.

Для режима 2: при SMOD = 1 - скорость OSC/32;

SMOD = 0 - скорость OSC/64.

В режимах 1 и 3 скорость передачи определяется частотой переполнения таймера T1(fov) следующим образом:

f= (2SMOD/32)fov.

При использовании таймера T1 в режиме автозагрузки скорость последовательного обмена определяется по следующей формуле:

f= (2SMODfOSC)/(3212[256 - (тн)]).

В случае SMOD = 1 скорость совпадает с частотой переполнения таймера, при SMOD = 0 - скорость в два раза ниже.