Микропроцессоры и микроконтроллеры

 
 
 
«Ограничение возможностей языка с целью предотвращения программистских ошибок в лучшем случае опасно.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: Структура и программирование однокристальных микроконтроллеров :: 6.1 Структура и принципы использования последовательного порта МК

6.1 Структура и принципы использования последовательного порта МК

Последовательный порт МК часто называют универсальным асинхронным приемником-передатчиком (УАПП – UART).

Через УАПП осуществляется прием и передача информации, представленной   последовательным кодом. Последовательный порт ввода-вывода используют в асинхронном режиме для связи со стандартными  периферийными устройствами (дисплеем, модемом, другими контроллерами). В синхронном режиме УАПП применяют совместно с внешними сдвигающими регистрами для расширения количества линий ввода-вывода МК-системы минимальной конфигурации.

УАПП аппаратно реализует побитовый способ передачи данных. Но на уровне программы минимальный объем передаваемой информации – один байт.

Структура УАПП показана на рис. 6.1.

Рисунок 6.1 – Структура последовательного порта UART МК MCS-51

Функционирование УАПП при передаче байта

Для начала передачи байта нужно с помощью любой команды пересылки направить данные в регистр SBUF. Например, это можно сделать командой

MOV  SBUF, A

После этого УАПП автоматически начинает побитовую передачу информации через выход TxD со скоростью, заданной программистом при настройке УАПП. Когда будет передан последний бит посылки, флаг завершения передачи TI будет установлен в “1”. После этого можно пересылать следующий байт.

Функционирование УАПП при приеме байта

Для запуска приема нужно установить в “1” бит разрешения приема REN. Например, это можно сделать командой

SETB  REN

Фактический прием байта начнется тогда, когда внешнее устройство, подключенное к входу RxD, начнет передачу данных. Побитовое тактирование приема происходит со скоростью, заданной программистом при настройке УАПП. При получении всей посылки флаг завершения приема RI будет установлен в “1”. После этого можно прочитать принятый байт из регистра SBUF, например, командой:

MOV  A, SBUF

Чтение должно быть выполнено до завершения приема следующего байта.

Физически реализованы два отдельных регистра SBUF –  для приема и передачи.

Настройка УАПП и управление его работой

Для задания режимов работы УАПП служит регистр SCON. Имена битов регистра SCON можно использовать в командах программы.

Имя бита

Назначение

SM0

SM1

Выбор режима работы УАПП

Биты нужно устанавливать и сбрасывать программно.

SM0

SM1

Режим работы УАПП

0

0

Режим 0. Посылка – 8 бит. Максимальная скорость передачи. Режим синхронной передачи

0

1

Режим 1. Посылка – 10 бит. Скорость передачи  задается программно. Режим асинхронной передачи

1

0

Режим 2. Посылка – 11 бит. Фиксированная скорость передачи. Режим асинхронной передачи

1

1

Режим 3. Посылка – 11 бит. Скорость передачи задается программно. Режим асинхронной передачи

_

SM2

Управление приемом посылок.  Бит изменяется программно. При SM2 = 1 запрещается прием посылок, в которых девятый бит равен 0 (для режимов 2 и 3).
При SM2 = 0 разрешен прием любых посылок

REN

Разрешение приема. Бит изменяют программно. При REN = 1 прием разрешен.
При REN = 0 прием запрещен

TB8

Значение передаваемого 8-го бита в посылке (не считая старт-бита). Бит нужно изменять программно. Используется в режимах 2 и 3

RB8

Значение 8-го бита в принятой посылке (не считая старт-бита). Бит изменяется аппаратно и фиксирует восьмой принятый бит в режимах 2 и 3

TI

Флаг завершения передачи посылки. Устанавливается аппаратно при окончании передачи байта. Должен быть сброшен программно

RI

Флаг завершения приема посылки. Устанавливается аппаратно при окончании приема байта.  Должен быть сброшен программно




Следующая статья >>
«6.2 Описание режимов работы УАПП»