Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Последовательный порт. Последовательный порт (SP)предназначен для приема и выдачи байтов данных в последовательном коде




Последовательный порт (SP)предназначен для приема и выдачи байтов данных в последовательном коде. Последовательный порт содержит приемник, передатчик, управляющий регистр SCON и буферный регистр SBUF, состоящий, по сути, из двух регистров – буферного регистра передатчика и буферного регистра приемника, которые имеют одно и то же имя. Это обеспечивает возможность одновременной работы приемника и передатчика. Схема распределения разрядов в регистре SCON приведена на рисунке 1.10.

 

               
SM0 SM1 SM2 REN TB8 RB8 TI RI
  Рисунок 1.10 – Схема распределения разрядов в регистре SCON

 

Последовательный порт может работать в четырех режимах. Выбор режима работы определяется комбинацией состояний разрядов SCON.7=SM0 и SCON.6=SM1.

При SM0, SM1=0,0 (режим 0) последовательный порт работает в режиме сдвигающего регистра с частотой сдвига Fosc/12. Вывод порта Р3.1 = TXD используется в качестве выхода для выдачи серии из восьми импульсов, управляющих сдвигом во внешнем сдвигающем регистре. Вывод порта Р3.0=RXD используется для последовательной выдачи или последовательного приема байта, начиная с младшего бита (D0). Временные диаграммы сигналов на выводах P3.1 = TXD и Р3.0=RXD при выдаче и приеме байта в этом режиме изображены на рисунке 1.11.

 

  Рисунок 1.11 – Временные диаграммы сигналов на выводах TXD и RXD в режиме 0

 

Выдача происходит после выполнения команды программы, по которой осуществляется запись байта данных в регистр SBUF. При завершении выдачи байта устанавливается в единичное состояние разряд регистра SCON.1=TI и в контроллер прерываний поступает запрос прерывания от передатчика последовательного порта. Сброс разряда TI выполняется только программным способом, по команде в программе.

Прием начинается при единичном состоянии разряда регистра SCON.4=REN и сбросе в нулевое состояние разряда регистра SCON.0=RI (или при нулевом состоянии разряда SCON.0=RI и установке в единичное состояние разряда SCON.4=REN).

При завершении приема разряд регистра SCON.0=RI устанавливается в единичное состояние и в контроллер прерываний поступает запрос прерывания от приемника последовательного порта. Сброс разряда RI выполняется программным способом, по команде в программе.

При других комбинациях состояний разрядов SM0 и SM1 последовательный порт работает в качестве универсального асинхронного приемопередатчика (UART).

UART предназначен для передачи и приема байтов по последовательному каналу связи (например, по интерфейсу RS - 232С).

При передаче байта формируется посылка (кадр), содержащая десять или одиннадцать битов. Кадр содержит стартовый бит (Start=0), восемь битов данных (D0, D1,..., D7) и стоповый бит (Stop=1). Между старшим битом данных (D7) и стоповым битом может помещаться контрольный бит (СВ). Структура кадров, содержащих десять и одиннадцать битов, показана на рисунке 1.12.

 

а)
б)
  а) режим 1; б) режимы 2, 3   Рисунок 1.12 – Структура кадров

 

Передача кадра начинается после выполнения команды программы, по которой происходит запись байта в регистр SBUF. При завершении передачи кадра устанавливается в единичное состояние разряд SCON.1=TI и в контроллер прерывания поступает запрос прерывания от передатчика. Разряд TI сбрасывается в нулевое состояние по команде в программе.

Прием кадра возможен при единичном состоянии разряда регистра SCON.4=REN. Прием начинается при поступлении стартового бита (отрицательный перепад сигнала) на вход Р3.0=RXD. Принятый байт записывается в буферный регистр приемника и сохраняется в нем до завершения приема следующего кадра. Следует помнить, что принятый байт необходимо считать до прихода следующего байта, в противном случае он будет потерян. UART может работать в трех режимах.

В режиме 1 (SM0, SM1 = 0,1) кадр содержит десять битов. Скорость передачи и приема (BR, бит/с) зависит от частоты переполнений таймера-счетчика Т/С1 и определяется по формуле:

, (1)

где SMOD – состояние разряда регистра PCON.7=SMOD;

Fosc – тактовая частота работы микроконтроллера, Гц;

N – число, код которого записан в счетчик ТН1 таймера-счетчика Т/С1, работающего в режиме 2 (с автоперезагрузкой).

При приеме стоповый бит заносится в разряд регистра SCON.2=RB8.

В режиме 2 (SM0, SM1 = 1,0) и в режиме 3 (SM0, SM1 = 1,1) кадр содержит одиннадцать битов. Значение контрольного бита перед пе­редачей кадра записывается в разряд регистра SCON.3 = ТВ8.

Значение контрольного бита в принятом кадре переписывается в разряд регистра SCON.2 = RB8.

Скорость передачи и приема (BR) в режиме 2 зависит только от значения бита SMOD и тактовой частоты работы микроконтроллера и определяется по формуле:

, (2)

Скорость передачи и приема в режиме 3 зависит от частоты переполнений таймера-счетчика Т/С1 и определяется по формуле (1).

Для получения стандартных значений скорости передачи по интерфейсу RS-232 в режимах 1 и 3 следует использовать кварцевый резонатор с резонансной частотой кратной 12. Типичными значениями являются 18432 кГц и 11059 кГц.

При завершении приема кадра в режимах 1, 2, 3 установка в единичное состояние разряда регистра SCON.0 = RI и поступление запроса прерывания от приемника в контроллер прерываний зависит от состояния разряда регистра SCON.5 = SM2.

При SM2 = 0 разряд регистра SCON.0 = RI устанавливается в единичное состояние и запрос прерывания от приемника поступает в контроллер прерываний при завершении приема любого кадра.

При SM2 = 1 в режиме 1 разряд регистра SCON.0 = RI устанавливается в единичное состояние и запрос прерывания от приемника поступает в контроллер прерываний, если в принятом кадре бит на десятой позиции имеет единичное значение (есть стоповый бит). В режимах 2 и 3 разряд SCON.0 = RI устанавливается в единичное состояние и запрос прерывания от приемника поступает в контроллер прерываний, если в принятом кадре контрольный бит имеет единичное значение.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных