ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Последовательный порт. Последовательный порт (SP)предназначен для приема и выдачи байтов данных в последовательном кодеПоследовательный порт (SP)предназначен для приема и выдачи байтов данных в последовательном коде. Последовательный порт содержит приемник, передатчик, управляющий регистр SCON и буферный регистр SBUF, состоящий, по сути, из двух регистров – буферного регистра передатчика и буферного регистра приемника, которые имеют одно и то же имя. Это обеспечивает возможность одновременной работы приемника и передатчика. Схема распределения разрядов в регистре SCON приведена на рисунке 1.10.
Последовательный порт может работать в четырех режимах. Выбор режима работы определяется комбинацией состояний разрядов 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.
Выдача происходит после выполнения команды программы, по которой осуществляется запись байта данных в регистр 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.
Передача кадра начинается после выполнения команды программы, по которой происходит запись байта в регистр SBUF. При завершении передачи кадра устанавливается в единичное состояние разряд SCON.1=TI и в контроллер прерывания поступает запрос прерывания от передатчика. Разряд TI сбрасывается в нулевое состояние по команде в программе. Прием кадра возможен при единичном состоянии разряда регистра SCON.4=REN. Прием начинается при поступлении стартового бита (отрицательный перепад сигнала) на вход Р3.0=RXD. Принятый байт записывается в буферный регистр приемника и сохраняется в нем до завершения приема следующего кадра. Следует помнить, что принятый байт необходимо считать до прихода следующего байта, в противном случае он будет потерян. UART может работать в трех режимах. В режиме 1 (SM0, SM1 = 0,1) кадр содержит десять битов. Скорость передачи и приема (BR, бит/с) зависит от частоты переполнений таймера-счетчика Т/С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 и тактовой частоты работы микроконтроллера и определяется по формуле:
Скорость передачи и приема в режиме 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 устанавливается в единичное состояние и запрос прерывания от приемника поступает в контроллер прерываний, если в принятом кадре контрольный бит имеет единичное значение. Не нашли, что искали? Воспользуйтесь поиском:
|