Лекция: Прием данных

Работа приемника разрешается установкой разряда RXEN=1 в Rg UCSRB, после чего вывод RxD (PD0) подключается к приемнику USART и начинает функционировать как вход независимо от установок регистров управления портом.

Логика восстановления данных производит выборку состояний вывода RXD с частотой в 16 раз большей, чем частота бодов. При нахождении линии в пассивном состоянии одиночная выборка нулевого логического уровня будет интерпретироваться как падающий фронт стартового бита и будет запущена последовательность детектирования стартового бита. Считается, что первая выборка обнаружила первый нулевой логический уровень вероятного стартового бита. На выборках 8, 9 и 10 приемник вновь тестирует вывод RXD на изменение логических состояний. Если две или более из этих трех выборок обнаружат логические 1, то данный вероятный стартовый бит отвергается как шумовой всплеск и приемник начнет выявлять и анализировать следующие переходы из 1 в 0.

Если же был обнаружен действительный стартовый бит, то начинает производиться выборка следующих за стартовым битом информационных битов. Эти биты также тестируются на выборках 8, 9 и 10. Логическое состояние бита принимается по двум и более (из трех) одинаковым состояниям выборок. Все биты вводятся в сдвиговый регистр приемника с тем значением, которое было определено тестированием выборок.

Тестирование выборок битов принимаемых символов показано на Рис. 25.

Рис. 25. Тестирование выборок принимаемых данных

При поступлении стопового бита необходимо чтобы не менее двух выборок из трех подтвердили прием стопового бита (показали высокий уровень. Вне зависимости от того принят правильный стоповый бит или нет, данные пересылаются в регистр UDR и устанавливается флаг RXC в регистре (UСSRА). Регистр UDR фактически является двумя физически отдельными регистрами, один из которых служит для передачи данных и другой для приема. При считывании полученных данных из UDR обращение ведется к регистру приема данных, при записи обращение ведется к регистру передачи.

Если выбран режим обмена 9-разрядными словами данных, значение старшего разряда может быть определено по состоянию флага RXB8 регистра UCSRB. Причем содержимое старшего разряда данных должно быть считано до обращения к регистру UDR.

Если во время приема кадра включена схема контроля четности, то она вычисляет бит четности для всех разрядов принятого слова данных и сравнивает его с принятым битом четности. Результат проверки запоминается в буфере приемника вместе с принятым словом данных и стоп-битами. Наличие или отсутствие ошибки контроля четности может быть определено по состоянию флага PE Rg UCSRA. Этот флаг устанавливается в 1, если следующее слово, которое может быть прочитано из Rg UDR, имеет ошибку контроля четности.

Блок приемника имеет еще два флага

– флаг ошибки кадрирования FE,

– флаг переполнения DOR.

Для индикации состояния приемника в модулях USART используется флаг прерывания «Прием завершен» – RxC в Rg UCSRA. Этот флаг устанавливается в 1 при наличии непрочитанных данных в буфере приемника.

Выключение приемника осуществляется сбросом разряда RXENв Rg UCSRB. В отличии от передатчика, приемник выключается сразу же после сброса разряда, то есть кадр, принимаемый в этот момент, теряется, буфер приемника очищается, теряются все непрочитанные из Rg UDR данные.

При выключенном приемнике вывод RxD может использоваться как контакт ввода/вывода общего назначения.

 

еще рефераты
Еще работы по информатике