Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Особенности последовательного интерфейса микроконтрол-леров семейства MCS51

Поиск

Последовательный порт в контроллерах MCS51 позволяет осуществлять последовательный дуплексный ввод-вывод в синхронном и асинхронном режимах с разными скоростями обмена. Помимо обычного ввода-вывода, в нем предусмотрена аппаратная поддержка взаимодействия нескольких микроконтроллеров.

Рис. 4. Схема интерфейса RS-232C.

Схематически контроллер порта можно представлен на рис. 5. Как видно из рисунка, регистр SBUF, доступный пользователю для чтения и записи, представляет собой физически два регистра, в один из которых можно только записывать, а из другого читать. Контроллер позволяет дуплексный обмен данными, т.е. одновременно может передавать и принимать информацию по линиям TxD (P3.1) и RxD (P3.0) соответственно.

Рис. 5. Контроллер последовательного порта

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

Прием осуществляется в обратном порядке: после начала процесса приема принятые биты данных последовательно сдвигаются в сдвиговом регистре, пока не будет принято их установленное количество, затем содержимое сдвигового регистра переписывается в SBUF и устанавливается флаг RI. После этого возможен прием следующей последовательности бит. Необходимо отметить, что запись принятого байта из сдвигового регистра в SBUF происходит только при условии, что RI=0, поэтому при считывании пользовательской программой очередного байта из SBUF ей необходимо сбрасывать этот флаг, иначе принятый в сдвиговый регистр, но не записанный в SBUF, следующий байт будет безвозвратно утерян.

Контроллер последовательного порта может работать в одном из четырех режимов (один синхронный и три асинхронных), различающихся скоростями обмена и количеством передаваемых/при-нимаемых бит:

· Режим 0 (синхронный): данные передаются и принимаются через RxD, TxD является синхронизирующим (выдает импульсы сдвига). Скорость в этом режиме фиксирована (1/12 частоты тактового генератора).

· Режим 1 (8 бит данных, асинхронный, переменная скорость). Передаются 10 бит: старт-бит, 8 бит данных (SBUF) и стоп-бит.

· Режим 2 (9 бит данных, асинхронный, фиксированная скорость). Передаются 11 бит: старт-бит, 8 бит (SBUF), бит TB8/RB8 (посылка/прием соответственно) и 1 стоп-бит. Биты ТВ8 и RB8 содержатся в регистре SCON (биты 3 и 2 соответственно), первый устанавливается программно, а второй содержит 9-й бит принятой комбинации. С помощью них можно организовать, например, контроль четности или обмен с двумя стоп-битами.

· Режим 3 (9 бит данных, асинхронный, переменная скорость). То же, что и режим 2, только скорость обмена переменная.

Режим контроллера, а также другие параметры его работы задаются в регистре SCON (098h) (рис. 6). Описание битов регистра приведены в таблице 1.

 

Рис. 6. Регистр SCON микроконтроллера

 

 

Таблица 1. Назначение битов регистра SCON.

Бит Описание
SM0 SM1 Режим последовательного обмена (Serial Mode)
0 0 Режим 0
0 1 Режим 1
1 0 Режим 2
1 1 Режим 3
SM2 Включает поддержку взаимодействия нескольких микроконтроллеров объединенных в сеть. Если SM2=1, то при приеме в режимах 2 и 3 RI не устанавливается в том случае, если принятый 9-й бит (RB8) равен 0. При приеме в режиме 1 RI не устанавливается, если не был принят правильный стоп-бит. В режиме 0 SM2 должен быть равен 0.
REN (Receiver Enable) Если установлен, то разрешен прием данных. Устанавливается и сбрасывается программно.
ТВ8 (Transmitter Bit 8) 9-й бит посылаемых данных в режимах 2 и 3. Устанавливается и сбрасывается программно.
RB8 (Receiver Bit 8) 9-й бит принимаемых данных в режимах 2 и 3. В режиме 1, если SM2=0, в RB8 записывается принятый стоп-бит (точнее то, что было принято в момент приема стоп-бита). В режиме 0 не используется.
TI (Transmitter Interrupt) Флаг завершения посылки. Устанавливается аппаратно по завершении посылки 8-го бита данных в режиме 0 или стоп-бита в других режимах. При ES=1 (бит 4 регистра IEN0(0A8h)) происходит прерывание (вектор 023h), когда TI устанавливается контроллером в 1. Должен быть сброшен программно.
RI (Receiver Interrupt) Флаг завершения приема. Устанавливается аппаратно по завершении приема 8-го бита данных в режиме 0 или стоп-бита в других режимах. При ES=1 (бит 4 регистра IEN0(0A8h)) происходит прерывание (вектор 023h), когда RI устанавливается контроллером в 1.

Скорости обмена в разных режимах различаются. В двух из них скорости фиксированы, а в двух других переменные. Рассмотрим подробнее способы задания скорости обмена в каждом из режимов.

· Режим 0. Фиксированная скорость обмена. В этом режиме скорость вычисляется следующим образом:
, где Core_Clk – внутренняя тактовая частота микроконтроллера.

· Режим 2. Скорость обмена зависит от значения бита SMOD (старший бит в регистре PCON(087h)). Если SMOD=0 (по умолчанию), то скорость определяется как 1/64 тактовой частоты. SMOD=l удваивает это значение. В общем случае:

· Режимы 1 и 3. В этих режимах порт можно синхронизировать от двух источников: от встроенного генератора импульсов и от таймера 1. Источник синхронизации определяется значением бита BD (старший бит регистра ADCON(0D8h)): если BD=1, то используется встроенный генератор импульсов, в противном случае используется таймер 1.

Встроенный генератор импульсов делит тактовую частоту МП на 2500 и, если SMOD=l, то полученное значение удваивается. Например, при тактовой частоте МП 12MHz можно получить стандартные скорости 12MHz/2500=4800 бод и (12MHz/2500)*2=9600 бод. В общем случае:

.

При использовании таймера 1 скорость обмена определяется временем переполнения таймера и значением бита SMOD:

где TMlOVrate – время переполнения таймера 1, зависящее от режима его работы. Таймер 1 может быть установлен как «таймер» или как «счетчик», в любом режиме работы. Прерывание от таймера при этом обычно запрещается. Чаще всего таймер 1 устанавливают как «таймер» в режиме 2: для этого старшая тетрада регистра TMOD(089h) должна равняться 0010b. При таком использовании после каждого переполнения регистра таймера ТL1 в него загружается значение из регистра ТН1. Скорость обмена в этом случае вычисляется по формуле:

В таблице 2 приведены способы задания некоторых стандартных скоростей обмена.

 

Таблица 2. Способы задания стандартных скоростей обмена.

Скорость fosc, MHz SMOD Таймер 1
С/Т Режим ТН1
62.5 Кбод 12.0       FF
19200 бод 11.059       FD
9600 бод 11.059       FD
4800 бод 11.059       FA
2400 бод 11.059       F4
1200 бод 11.059       Е8
11О бод 6.0        
11О бод 12.0       FEEB


Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 250; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.6.144 (0.008 с.)