Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory.doc
Скачиваний:
29
Добавлен:
18.03.2015
Размер:
1.51 Mб
Скачать

20.5. Работа приемника

Приемник включается в случае установки вначале разрешения приема. (устанавливается бит RxEN Рг В. При этом вход приемника подключается к линии порта. Затем начинается поиск стартового бита (асинхронный прием). При обнаружении перепада на входе приемник определяет уровень сигнала на половине битового интервала. Если и этот уровень нулевой, считается, что стартовый бит обнаружен. После обнаружения стартового бита приемник последовательно считывает биты в сдвиговый регистр, пока не дойдет до стоповых бит.

Если принимается кадр из 11 бит, то дополнительный 9-й бит записывается в бит 1-й Рг В. Если на месте ожидаемого стопового бита обнаруживается «0», то устанавливается бит 4 («ошибка формата») Рг А.

Затем принятая информация переписывается в приемный регистр данных, при этом устанавливается в «1» разряд 7 (RxC) регистра А и при единичном состоянии разряда 7 регистра В (RxCIE) в блок прерываний поступает запрос на прерывание о наличии данных в приемнике. Прерывающая программа должна считать данные в МП.

Если при завершении приема кадра принятый ранее байт не был считан, то устанавливается флаг переполнения 3 (DOR) регистра А. Если байт из сдвигающего регистра передается в приемный, то этот флаг сбрасывается.

Регистр А имеет бит МРСМ, который устанавливает режим мультипроцессорного обмена. При единичном значении разряда приемник принимает кадры с единичным значением дополнительного бита и игнорирует кадры с нулевым значением. При нулевом значении бита приемник принимает все кадры. Наличие этого разряда позволяет организовать простейшую локальную сеть, в которой имеется один ведущий МК и несколько ведомых.

Пример 2. Прием данных (5-8 бит)

#define RxC 7

unsigned char USART_Receive (void )

{

while ( !(UCSRA & (1« RxC)) ); // ждем, пока будут получены данные

return UDR; /* читаем данные из буфера и возвращаем их при выходе из подпрограммы */

20) Таймер-счетчик МК

Во всех моделях семейства AVR имеются по крайней мере 2 таймера-счетчика (Т/С): 8-разрядный (T0, T2, …) и 16-разрядный (T1, T3,…). В ATmega8, например, 2 восьмиразрядных T/C и один 16-разрядный. Т/С Т0 имеет, как правило, минимальный набор функций: отсчет и измерение временных интервалов, счетчик внешних событий (нормальный режим).

Т/С Т1, Т3 являются многофункциональными. К нормальному режиму добавляется режим захвата, режим «Сброс при совпадении» (СТС), режим «Быстродействующий ШИМ» (Fast PWM), режим «ШИМ с точной фазой» (Phase Correct PWM). Кроме того, как в любых современных МК, в МК AVR есть сторожевой таймер. Рассмотрим подробнее режимы работы таймеров/счетчиков.

Режим Normal. В этом режиме таймер производит подсчет приходящих на его вход импульсов (от тактового генератора или внешнего устройства) и вызывает прерывание по переполнению. Для увеличения коэффициента счета программным путем необходимо в подпрограмме прерывания сбросить флаг переполнения и увеличить на единицу содержимое регистра переполнений. В режиме Normal работы счетчика используется «захват» в каналах.

Режим «Захват» (Сapture). При захвате содержимое счетного регистра в определенный момент времени сохраняется в регистре захвата. Запоминание происходит или по сигналу, который поступает через специальный вход МК, либо от сигнала с выхода компаратора. Наличие этого режима позволяет измерять длительность различных процессов.

Режим «Сброс при совпадении». В этом режиме содержимое счетчика сравнивается с содержимым регистра совпадения. При совпадении происходит сброс таймера. Максимально возможное значение коэффициента пересчета таймера определяется содержимым регистра совпадения. После этого счетчик сбрасывается и начинается счет от нуля. В этом режиме можно настроить выход таким образом, чтобы каждый раз при совпадении сигнал менялся на противоположный. Получим колебания, частота которых яв-ляется управляемой.

Рис. 21.1. Режим работы «Сброс при совпадении»

Режим «Быстродействующий ШИМ». Для формирования сигнала ШИМ также используют режим совпадения.

Рис 21.2. Формирование ШИМ – сигнала в режиме Fast PW

Для формирования ШИМ при совпадении сигнал на выходе устанавливается в «0», а при переполнении – в единицу. Таким образом, период сигнала имеет фиксированное значение, а длительность импульсов модулируется.

Режим ШИМ с точной фазой (Phase Correct PWM). В описанных примерах при изменении длительности импульсов меняется и их фаза. Центр каждого импульса как бы сдвигается во времени. При управлении электродвигателем такое поведение фазы нежелательно. Поэтому предусмотрен еще один режим: с точной фазой (рисунок 21.2).

Рис 21.2. Формирование ШИМ – сигнала в режиме Fast Correct PWM

Счетчик сначала считает так же, как в обычном случае, затем начинает работать как реверсивный, при этом не сбрасывается, а переключается в режим реверсивного счета. В результате пила становится симметричной. В результате, фаза выходных импульсов не меняется, то есть середина каждого импульса строго привязана к точке смены направления таймера. Недостаток: частота выходного сигнала в 2 раза меньше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]