Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие. MS Word.doc
Скачиваний:
41
Добавлен:
02.05.2014
Размер:
1.05 Mб
Скачать

Структурная схема приёмника

При приёме сигнал проходит через синхронный детектор бит в сдвиговый регистр. Данные переписываются в очередь FIFO, состоящую из двух 9-ти битных регистров (но программно доступен только один). При приёме может возникнуть ошибка отсутствия стоп-бита, а при несвоевременном чтении из буфера – ошибка переполнения очереди.

Временные диаграммы:

В синхронном ведомом режиме сигнал синхронизации поступает от внешнего источника. Это позволяет контроллеру передавать и принимать данные в режиме пониженного энергопотребления (режим SLEEP).

Модуль прерываниёMCs51

1

IE0

1

IE1

1

В MCs51 действует аппаратный пулинг.

При возникновении разрешения сигнала прерывания формируется аппаратный вызов подпрограммы обработки прерывания, если нет блокировки по условиям:

  1. Установлена общая блокировка прерываний;

  2. Установлена блокировка данного прерывания;

  3. В данный момент обслуживается прерывание данного и более высокого приоритета.

Возврат из подпрограммы обработки прерывания в основную программу осуществляется с помощью команды RETIили с использование регистровIEиIP.

При использовании прерываний всегда используется стек, поэтому значение регистра SPдолжно быть определено.

Флаги TIиRIвсегда сбрасываются программно. Независимо от того, разрешено или нет соответствующее прерывание, флагиIE0,IE1,TF0,TF1,RI,TIбудут установлены.

22.11.2000

Система прерываний pic16

Работает медленнее, чем MSc51.

Для всех прерываний вектор (адрес начала обработки прерывания) 4, т.е. подпрограмме обработки необходимо осуществить программы полинга разрешённых для прерывания устройств. Приоритеты определяются порядком опроса флагов прерываний. Здесь имеется 12 прерываний. Прерывания могут вызвать следующие события:

  1. внешнее прерывание по фронту или спадам (RB0/INT);

  2. прерывание от переполнения TMR0;

  3. прерывание при изменении сигналов на выводах RB<4:7>;

  4. прерывание от переполнения TMR1;

  5. прерывание при достижении таймером TMR2 значения регистра периода;

  6. прерывание от модуля CCP1 (произведено чтение налету или значениеTMR1 сравнялось с заданным);

  7. прерывание от модуля CCP2;

  8. прерывание от синхронного последовательного порта SSP;

  9. прерывание от параллельного порта (тот, который может работать в режиме сопроцессора);

  10. прерывание при завершении АЦП;

  11. прерывание при приёме данных модулем SCI;

  12. прерывание при передаче данных модулем SCI.

Чем меньше используется прерываний, тем лучше.

INTCON– управляющий регистр прерываний.

Бит

Обозначение

Назначение

7

GIE

Разрешение всех прерываний (=1)

6

PEIE

Разрешение прерываний устройств периферии

5

T0IE

Разрешено прерывание с таймером TMR0

4

INTE

Разрешение прерываний по входу INT

3

RBIE

Прерывание при изменении состояния на входах RB<4:7>

2

T0IF

Флаг прерывания таймера TMR0

1

INTF

Внешнее прерывание

0

RBIF

Флаг прерывания при изменении на входах RB<4:7>

Остальные регистры выполняю оставшиеся 9 прерываний.

Работа системы прерываний заключается в следующем: когда начинает обрабатываться прерывание, бит GIEобнуляется автоматически, чтобы запретить повторные прерывания на момент выполнения текущего. Он также автоматически восстанавливается по команде возврат из прерывания. Программа обработки прерываний не должна каким-либо способом устанавливать битGIE. Возврат из прерывания производится командойRETFIE(для всех контроллеров).

В программе обработки флаг запроса на обрабатываемое прерывание должен быть программно сброшен, иначе программа обработки будет выполняться постоянно.

По прерываниям можно выходить из режима пониженного энергопотребления в случаях:

  • вообще можно выйти:

  1. при внешнем сбросе (для всех устройств);

  2. сброс при срабатывании сторожевого таймера;

  • выход по прерыванию приводит к некоторым событиям, при этом работают следующие прерывания:

  1. от TMR1;

  2. от модуля SCIв ведомом режиме;

  3. от модуля SSPв ведомом режиме;

  4. от модуля CCPв режиме захвата;

  5. от модуля АЦП, если он работает с RC-генератором;

  6. от параллельного порта.

При возникновении прерывания и GIE=1 будет выполняться подпрограмма обработки прерывания. Если общее прерывание запрещено, то будет выполняться команда, следующая заSLEEP.

АЦП

В контроллерах PIC16C7xимеется 8-ми разрядный АЦП, подключаемый через коммутатор к одному из нескольких входов (до 8). АЦП –AIC(Analog-To-Digital-Converter) построен по схеме последовательных приближений: 1 разряд за 1 такт модуля. Тактирование может производиться от основного генератора со временем цикла не менее 1.6 мкс или от внутреннегоRC-генератора с длительностью ~4 мкс.

Ошибка 1 мл. разряд при опорном напряженииVREF=5.12 В разрешение 20 мВ.

С АЦП связано 3 регистра, один из которых ADRES, а остальные управляющие:ADCON1 показывает, какие входы могут быть подключены (7, 5, 4, 3, 2). Можно использовать напряжение питания илиVREFв качестве опорного.

27.11.2000

ADCON0

Бит

Обозначение

Назначение

7

ADS1

выбор тактов на один шаг приближения:

  1. fQ/2

  2. fQ/8

    1. fQ/32

    2. fRC

6

ADS0

5

CHS2

Выбор аналогового канала

4

CHS1

3

CHS0

2

GO/DONE

Бит статуса; устанавливается для начала преобразования, аппаратно сбрасывается при окончании

1

Не используется

0

ADON

Включение модуля АЦП

При использовании RC-генератора преобразование будет завершено даже в режиме пониженного энергопотребления. Результат получается в регистрADRES. Если прерывание от АЦП разрешено, то процессор выйдет из режимаSLEEPпо прерыванию. Если прерывание от АЦП запрещено, то узел АЦП уменьшит потребление тока, но бит статуса останется установленным.

Непосредственно перед модулем АЦП находится устройство выборки и хранения.

Пока бит статуса = 0, ключ будет постоянно замкнут, а конденсатор подключен к источнику входного напряжения. Нет специальной команды, чтобы начать и закончить выборку. Поэтому, когда начинается цикл преобразования после установки бита статуса в 1, ключ размыкается и напряжение на конденсаторе запоминается. На это уходит 2 такта. На зарядку запоминающего конденсатора необходимо отвести время 10-30 мкс.

Цикл измерения АЦП:

  1. подключается аналоговый вход с записью данных в ADCON0 (GO/DONE=0);

  2. через 10-30 мкс. запускается преобразование установкой бита статуса;

  3. через 10 циклов проверяется бит статуса, если он = 0, то читается содержимое ADRES.

4.12.2000

Соседние файлы в предмете Микропроцессорные системы