logo
КС-ZAO / Лекции ЦЭВМруский вариант11

Дополнительные сведения о режиме 1

10бит передаются (черезTXD)или принимаются (черезRXD): старт-бит (0), 8 бит данных, и стоп-бит (1). При приеме стоп-бит попадает вRB8 регистраSCON. В 8051 бодовая скорость определяется скорость переполнения таймера 1. В 8052 – таймера 1, таймера 2 или обеими (раздельно для приема и передачи).

На рис. 7.18 показана упрощенная диаграмма работы последовательного порта в режиме 1.

Транзакция инициируется любой инструкцией, использующей SBUF в качестве операнда назначения.Сигнал «write to SBUF» загружает 1 в 9-ую позицию регистра передачи и сигнализирует управляющему блокуTX о запросе на передачу. Транзакция начинается наS1P1 следующего, за переполнением «divide-by-16» счетчика, машинного цикла.

Транзакция начинается активацией сигнала SEND#, который помещает старт-бит в TXD. На следующем шаге активируетсяDATA, который помещает бит данных вTXD.

При сдвиге бит данных вправо, очередные позиции слева заполняются нулями. Когда установленный ранее в 1 9-ый бит байта данных подходит на первую позицию сдвигового регистра передачи (все остальные биты к этому времени равны 0), управляющий блокTX делает последний сдвиг и деактивирует сигналSEND и устанавливает флаг TI. Оба этих события происходят на 10-ом «divide-by-16» переполнении после «write to SBUF».

Рисунок 7.17. Последовательный порт в режиме 0

Прием инициируется определением перехода 1-в-0 на RXD. Для этогоRXD проверяется с 16-ти кратной частотой установленной скорости приема (в бодах). Когда передача замечена, «divide-by-16» счетчик сбрасывается и во входной сдвиговый регистр прописывается 1FFH.

Прием бита происходит со сменой 16-ти состояний счетчика. На 7, 8 и 9-ом состоянии, битовый детектор определяет значение на RXD. Значение принимается, если оно было удержано в течение хотя бы 2-х из 3-х состояний счетчика. Это делается в целях шумоподавления. Если значения первого принятого бита не 0, приемные схемы сбрасываются и продолжается поиск перехода 1-в-0. Это происходит в целях определения ложного стартового бита. Если стартовый бит правильный, он сдвигается во входной сдвиговый регистр и прием продолжается.

Рисунок 7.18. Последовательный порт в режиме 1. TCLK, RCLK и таймер2 имеются лишь в 8052/8032

Когда старт-бит оказывается на крайней левой позиции сдвигового регистра (в режиме 1 он 9-ти разрядный), происходит последний сдвиг, содержимое регистра передается в SBUF иRB8 и устанавливается флагRI. Сигнал для загрузкиSBUFиRB8 и установки флагаRI генерируется в случае выполнения следующих условий по окончании приема:

  1. RI=0

  2. SM2=0 или принят стоп-бит=1

Если хотя бы одно из этих двух условий не выполняется, принятый кадр будет безвозвратно утерян. При выполнении этих условий, стоп-бит попадает в RB8, 8 бит данных– вSBUF и выставляется флагRI. При этом, независимо от выполнения или невыполнения условий, наRXD продолжается слежение за наличием перехода1-в-0.