ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 03.06.2025
Просмотров: 769
Скачиваний: 0
Режимы работы и регистры последовательного интерфейса. Регистр управления/статуса приемопередатчика SCON. Функциональное назначение бит регистра управления/статуса приемопередатчика SCON. Скорость приема/передачи информации через последовательный порт. Работа в сети.
Через универсальный асинхронный приемопередатчик UART(UniversalAsynchronousReceiver-Transmitter) осуществляются прием и передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена. В состав приемопередатчика, называемого часто последовательным портом, входят принимающий и передающий сдвигающие регистры, а также специальный буферный регистр (SBUF) приемопередатчика.
Кроме того, работой последовательного порта управляют два служебных регистра -
Регистр управления/статуса приемопередатчика SCON
Бит SMOD регистра управления мощностью PCON
Запись байта в буфер приводит к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приемника позволяет совмещать операцию чтения ранее принятого байта с приемом очередного. Но если к моменту окончания приема байта предыдущий не был считан из SBUF, то он будет потерян.
Последовательный порт 8051 может работать в четырех различных режимах.
Режим 0. Информация и передается, и принимается через вывод входа приемника (RXD). Принимаются или передается 8 бит данных. Через вывод выхода передатчика (TXD; выдаются импульсы сдвига, которые сопровождают каждый бит. Частота передачи бита информации равна 1/12 частоты кварцевого резонатора
Режим 1. В этом режиме передаются через вывод TXD или принимаются через RXD 10 бит информации: старт-бит (0), 8 бит данных и стоп-бит (1) при приеме информации в бит RB8 регистра управления/статуса приемопередатчика SCON заносятся стоп-бит Скорость приема/передачи — величина переменная и задается таймером.
Режим 2. В этом режиме через вывод TXD передаются или через RXD принимаются 11 бит информации: старт-бит, 8 бит данных, программируемый девятый бит и стоп-бит. При передаче девятый бит данных может принимать значение 0 или 1 или, например, для повышения достоверности передачи путем контроля по четности в него может быть помещено значение признака паритета из слова состояния программы (PSW.0). При приеме девятый бит данных помещается в бит RB8 SCON, а стоп-бит, в отличие от режима 1, теряется. Частота приема/передачи выбирается программой и может быть равна либо 1/32, либо 1/64 частоты резонатора в зависимости от управляющего бита SMOD.
Режим 3. совпадает с режимом 2 во всех деталях, за исключением частоты приема/передачи, которая является величиной переменной и задается таймером.
Во всех случаях передача инициализируется инструкцией, в которой данные перемещаются в SBUF. Прием инициализируется при обнаружении перепада из 1 в 0 на входе приемника. При этом в режиме 0 этот переход должен сопровождаться выполнением условий RI= 0 и REN= 1 (см. табл), а для остальных режимов - REN = 1.
Регистр управления/статуса приемопередатчика SCON.
Управление режимом работы приемопередатчика осуществляется через специальный регистр с символическим именем SCON. Этот регистр содержит не только управляющие биты, определяющие режим работы последовательного порта, но и девятый бит принимаемых или передаваемых данных (RB8 и ТВ8) и биты прерывания приемопередатчика (RIи ТI).
Прикладная программа путем загрузки в старшие биты регистра SCON двухбитного кода определяет режим работы приемопередатчика. Во всех четырех режимах работы передача инициализируется любой командой, в которой буферный регистр SBUF указан как получатель байта. Как уже отмечалось, прием в режиме 0 осуществляется при условии, что RI= 0 и REN = 1, в остальных режимах - при условии, что REN = 1.
В бите ТВ8 программно устанавливается значение девятого бита данных, который будет передан 8 режиме 2 или 3. В бите RB8 в этих режимах фиксируется девятый принимаемый бит данных. В режиме 1 в бит RB8 заносится стоп-бит. В режиме 0 бит RB8 не используется.
Флаг прерывания передатчика ТI устанавливается аппаратно в конце периода передачи стоп-бита во всех режимах. Соответствующая подпрограмма обслуживания прерывания должна его сбрасывать.
Флаг прерывания приемника RI устанавливается аппаратно в конце периода приема восьмого бита данных в режиме 0 и в середине периода приема стоп-бита в режимах 1, 2 и 3. Подпрограмма обслуживания прерывания должна сбрасывать бит RI.
Функциональное назначение бит регистра управления/статуса приемопередатчика SCON.
|
Символ |
Позиция |
Имя и назначение |
|||||||||||||||
|
SM0 |
SCON.7 |
Биты управления режимом работы приемопередатчика. Устанавливаются/сбрасываются программно см. примечание 1
|
|||||||||||||||
|
SM1 |
SCON.6 |
||||||||||||||||
|
SM2 |
SCON.5 |
Бит управления режимом приемопередатчика. Устанавливается программно для запрета приема сообщения, в котором девятый бит имеет значение 0 |
|||||||||||||||
|
REN |
SCON.4 |
Бит разрешения приема. Устанавливается/сбрасывается программно для разрешения/запрета приема последовательных данных |
|||||||||||||||
|
TB8 |
SCON. 3 |
Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме 9-битового передатчика |
|||||||||||||||
|
RB8 |
SCON.2 |
Прием бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме 9-битового приемника |
|||||||||||||||
|
TI |
SCON. 1 |
Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно после обслуживания прерывания |
|||||||||||||||
|
RI |
SCON.0 |
Флаг прерывания приемника. Устанавливается аппаратно при приеме байта. Сбрасывается программно после обслуживания прерывания |
Скорость приема/передачи информации через последовательный порт.
Скорость приема/передачи, т.е. частота работы приемопередатчика в различных режимах, определяется различными способами.
В режиме 0 частота передачи зависит только от резонансной частоты кварцевого резонатора
f РЕЗ: f=fРЕЗ/12.
За машинный цикл последовательный порт передает один бит информации. В режимах 1, 2 и 3 скорость приема/передачи зависит от значения управляющего бита SMOD в регистре специальных функций PCON.
Регистр управления мощностью PCON.
|
Символ |
Позиция |
Наименование и функция |
|
SMOD |
PCON.7 |
Удвоенная скорость передачи. Если бит установлен в 1, то скорость передачи вдвое больше, чем при SMOD = 0. По сбросу SMOD = 0. |
|
PCON.6 |
Не используется |
|
|
PCON.5 |
Не используется |
|
|
PCON.4 |
Hе используется |
|
|
GF1 GF0 |
PCON.3 PCON.2 |
Флаги, специфицируемые пользователем (флаги общего назначения) |
|
PD |
PCON.1 |
Бит пониженной мощности. При установке бита в 1 микро-ЭВМ переходит в режим пониженной потребляемой мощности |
|
IDL |
PCON.0 |
Бит холостого хода. Если бит установлен в 1, то микро-ЭВМ переходит в режим холостого хода |
Примечание.При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс содержимого PCON выполняется путем загрузки в него кода 0XXX0000.
В режиме 2 частота передачи определяется выражением
f =2SMODfРЕЗ/64.
Иными словами, при SMOD = 0 частота передачи равна 1/64 частоты fРЕЗ, а пои SMOD = 1 — 1/32 частоты fРЕЗ.
В режимах 1 и 3 в формировании частоты передачи, кроме управляющего бита SMOD, принимает участие таймер 1. При этом частота передачи f зависит от частоты переполнения f OVLTи определяется следующим образом:
f=2SMODfOVTL1/32
Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам же таймер может работать как в режиме таймера, так и в режиме счетчика. Номер режима (0, 1, 2) роли не играет. Наиболее типично использование его в режиме таймера с автоперезагрузкой (старшая тетрада TMOD = 0010В). При этом частота передачи определяется выражением:
f = 2SMODfРЕЗ/(32х12х(256 —ТН1)).
Настройка таймера 1 для управления частотой работы приемопередатчика.
|
Частота приема/передачи (BAUD RATE) |
Частота резонатора МГц |
Таймер/счетчик 1 |
|||
|
SMOD |
С/Т |
Режим (MODE) |
Перезагружаемое число |
||
|
Режим 0, макс: 1 МГц |
12 |
X |
X |
X |
X |
|
Режим 2, макс: 375 Кгц |
12 |
1 |
X |
X |
X |
|
Режим 1, 3: 62,2 Кгц |
12 |
1 |
0 |
2 |
0FFH |
|
19,2 Кгц |
11,059 |
1 |
0 |
2 |
0FDH |
|
9,6 Кгц |
11,059 |
0 |
0 |
2 |
0FDH |
|
4,8 Кгц |
11,059 |
0 |
0 |
2 |
0FAH |
|
2,4 Кгц |
11,059 |
0 |
0 |
2 |
0F4H |
|
1,2 Кгц |
11,059 |
0 |
0 |
2 |
0F4H |
|
137,5 Гц |
11,059 |
0 |
0 |
2 |
1DH |
|
110 Гц |
6 |
0 |
0 |
2 |
72H |
|
110 Гц |
12 |
0 |
0 |
1 |
0FЕЕВН |
Отметим, что скорости приема и передачи могут различаться.
Предельно низких частот приемопередачи можно достичь при использовании таймера в режиме 1 (16-битный таймер) и разрешении прерываний от таймера (старший полубайт TMOD = 0001В). Перезагрузка 16-битного таймера должна осуществляться программным путем.,
Работа в сети.
Организация сети микроконтроллеров позволяет организовать обмен данными между одним ведущим и несколькими ведомыми устройствами. Каждый микроконтроллер в сети имеет свой уникальный адрес. Все устройства работают в режиме передачи с 9 битом. Ведущее устройство передает адрес устройства, к которому оно обращается, при этом 9 бит в передаче равен 1. Ведомые устройства принимают адрес и сравнивают его со своим. Микроконтроллеры, адрес которых не совпал с переданным, запрещают прием посылок с 9 битом, равным 0. В результате посылку данных с 9 битом, равным 0, будет принимать только одно устройство.