Мегаобучалка Главная | О нас | Обратная связь  


Последовательный порт. Управление последовательным




Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Портом

Последовательный порт предназначен для реализации ввода или вывода данных, представленных в последовательном коде.

При вводе последовательные данные поступают на линию RxD МК, накапливаются в буфере приёмника (в последовательно-параллельном регистре) и преобразуются в параллельную форму. Принятые данные из буфера приемника в параллельном виде выдаются на внутреннюю шину последовательного порта.

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

Буфер приемника и буфер передатчика при обращении к ним имеют одинаковые имя (SBUF) и адрес (99). Если в команде обращения имя SBUF обозначает регистр – источник данных, то обращение происходит к буферу приемника, читаются данные, поступившие в последовательный порт по линии RxD . Если в команде имя SBUF обозначает регистр назначения, то им является буфер передатчика. Загруженные в него параллельные данные преобразуются в последовательную форму и выводятся через линию TxD МК.



Управление последовательным портом осуществляется через

8-разрядный управляющий регистр SCON (адрес 98).

 

Определение флагов и управляющих битов регистраSCON

 

Имя регистра SCON
Адрес регистра
Бит регистра SCON.7 SCON.6 SCON.5 SCON.4 SCON.3 SCON.2 SCON.1 SCON.0
Имя флага или бита управления SM0 SM1 SM2 REN TB8 RB8 TI RI
Адрес флага или бита управления 9F 9E 9D 9C 9B 9A

 

Описание флагов и управляющих битов в составе регистра

SCON:

 

SM0, SM1 – двухразрядный код, определяющий номер рабочего режима (00, 01, 10, 11) последовательного порта (задается из программы): 00 – режим 0, синхронный последовательный ввод/вывод со скоростью FOSC/12; 01 – режим 1, асинхронный ввод или вывод с переменной скоростью и с 10-битовым кадром (старт-бит, 8 бит последовательных данных D0,…,D7, стоп-бит); 10 – режим 2, асинхронный ввод или вывод с фиксированной скоростью FOSC/32 или FOSC/64 и с 11-битовым кадром (старт-бит, 8 бит последовательных данных D0,…,D7, служебный бит D8, стоп-бит); 11 – режим 3, асинхронный ввод или вывод с переменной скоростью и с 11-битовым кадром (старт-бит, 8 бит последовательных данных D0,…,D7, служебный бит D8, стоп-бит).
SM2 – бит запрета приема кадров с нулевым восьмым битом (D8 = 0); устанавливается и сбрасывается из программы; в режиме 1 должен быть установлен; в режиме 0 – сброшен.
REN – бит разрешения приёма последовательных данных; устанавливается и сбрасывается из программы.
TB8 – восьмой бит (D8) передатчика в режимах 2 и 3; устанавливается и сбрасывается из программы для задания подлежащего передаче значения служебного бита в кадре (признак информации, передаваемой в кадре).
RB8 – восьмой бит (D8) приёмника в режимах 2 и 3; копия значения служебного бита D8 в принятом кадре (признака информации, принятой в кадре); в режиме 1 – записывается стоп-бит; в режиме 0 – не используется и должен быть равен 0; фиксируется аппаратными средствами приёмника.
TI – флаг прерывания от передатчика; устанавливается аппаратно по окончании передачи кадра, сбрасывается из программы после обработки прерывания.
RI – флаг прерывания от приемника; устанавливается аппаратно по окончании приёма кадра; сбрасывается из программы после обработки прерывания.

 

Режим 0. Последовательный порт МК работает как 8-разрядный регистр сдвига. Данные последовательно передаются (передатчиком) или принимаются (приёмником) путём их сдвига через общую линию RxD младшими битами вперёд, по 8 разрядов за одну операцию обмена. Для синхронизации устройств, участвующих в обмене (регистров сдвига), передатчик формирует импульсы сдвига с частотой FOSC/12 и выдает их на общую линию TxD.

Передача последовательных данных инициируется всякий раз, когда новый байт записывается в SBUF. Признаком окончания передачи служит установка флага TI. Приём данных активизируется (при разрешенном приёме последовательных данных – REN = 1) путём сброса флага RI. Снова установленный флаг указывает на готовность новых (введённых) данных, которые можно считывать из SBUF.

Режим 1. Передача инициируется любой командой, для которой получателем байта является SBUF. Время передачи каждого бита последовательных данных равно 16 тактам специального счётчика (счётчика бит-интервалов), пересчитывающего импульсы переполнения таймера/счётчика Т/С1. Частота переполнения Т/С1 определяет скорость выдачи последовательных данных передатчиком.

Приём последовательных данных начинается с момента обнаружения перехода сигнала на входе RxD из состояния 1 в состояние 0 и включения счётчика бит-интервалов для приёмника. В середине каждого бит-интервала производится опрос сигнала на входе RxD и принимаются решения о значении каждого последовательного бита. Принятые биты сдвигаются в регистр приёмника, затем запоминаются в SBUF – после чего устанавливается флаг RI. После окончания приема кадра устройство управления приёмом вновь начинает отыскивать переход 1 – 0 на входе RxD.

Режим 2. Скорость передачи в режиме 2 постоянная, но зависит от значения флага SMOD в регистре PCON и может быть равна либо FOSC/32 (SMOD = 0), либо FOSC/64 (SMOD = 1).

Режим 3. Скорость передачи переменная и определяется частотой переполнения таймера/счётчика Т/С, но может понижаться в 2 раза при значении флага SMOD = 0 в регистре PCON. При SMOD = 1 скорость передачи совпадает с частотой переполнения.

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

Возможность реагировать только на кадры с RB8 = D8 = 1 или принимать любые кадры при SM2 = 0 может использоваться при построении управляющей системы из нескольких МК, объединённых в единую сеть на основе использования последовательной передачи данных.

 




Читайте также:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...



©2015-2020 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1055)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)
Поможем в написании
> Курсовые, контрольные, дипломные и другие работы со скидкой до 25%
3 569 лучших специалисов, готовы оказать помощь 24/7