Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
686.docx
Скачиваний:
85
Добавлен:
24.04.2019
Размер:
6.68 Mб
Скачать

1.2.5.9 Вывод прерывания int

Рисунок 7. Логика работы прерываний по сигналу и по таймеру.

35

Условия для генерации на выходе INT активного сигнала (логический «0»)

определяются путем программирования регистра управления будильником

(08h). К таким условиям относятся сигнализация по часам, сигнализация по

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

происходит в том случае, когда установлен флаг сигнала или флаг таймера и

при этом разрешено соответствующее прерывание. В любом случае прерывание

очищается

только

программным

путем:

очисткой

флага,

вызвавшего

прерывание.

1.2.6

Система контроля питания

Система питания является фундаментом для любой электронной схемы. К

сожалению, во встроенных системах не всегда удается добиться качественного

вторичного электропитания при использовании автономных источников

энергии (аккумуляторов, химических элементов питания и т.п.), бортовой сети

(например, в автомобиле), при наличии большого количества помех (например,

на производстве). Система контроля питания предназначена для обеспечения

надежного функционирования микроконтроллера в условиях нестабильного

питающего напряжения [40].

Сразу после включения питания устройства на плате начинаются

переходные процессы. Нарастание напряжения происходит не мгновенно и не

линейно, время установки стабильного напряжения питания зависит от схемы и

составляет обычно десятки-сотни миллисекунд. На этот момент времени

система контроля питания задерживает старт микроконтроллера. Если старт не

задержать, микроконтроллер, получая нестабильное питание, может давать

сбои в работе и часто рестартовать.

В процессе работы система контроля питания постоянно проверяет

уровень напряжения в цепях питания. Если уровень отклоняется от заданной

величины, система контроля питания вырабатывает прерывание. Обработчик

прерывания может корректно завершить работу встраиваемой системы,

например, при внезапном пропадании питания.

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

питания? Можно попытаться сохранить в энергонезависимой или обычной

памяти контроллера текущее состояние прикладной программы, чтобы после

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

Естественно, для реализации такого механизма защиты от сбоев питания вы

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

состояния ее работы. Другими словами, при проектировании такого рода

программ очень полезно использовать конечные автоматы.

Задача супервизора питания – отследить уровень питающего напряжения и

выдать цифровой сигнал, если уровень не соответствует заданному критерию.

К чему могут привести изменения питающего напряжения?

36

Так как схема СнК не является чисто активной нагрузкой, при включении

питания начинаются так называемые переходные процессы. Уровень питания

устанавливается не сразу, а в течении нескольких десятков - сотен

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

напряжения. В результате, микропроцессор и программируемая логика может

десятки раз включаться и выключаться отрабатывая начальный участок

алгоритма. Такое поведение схемы может отрицательно сказываться на

энергонезависимой памяти устройства, так и на объекте управления,

подключенном к УСО системы ввода-вывода. Аналогичные переходные

процессы обычно возникают при выключении устройства или при внезапном и

кратковременном пропадании питающего напряжения ( например из-за плохого

контакта).

Самым

простым

способом

борьбы

с

этим

явлением,

является

использование супервизора питания, который держит сигнал RESET в

активном состоянии на время работы переходных процессов.

Обычно, для защиты от переходных процессов супервизоры питания

снабжают компаратором с триггером Шмидта, а также счетным таймером, для

организации регулируемой или постоянной задержки выходного сигнала.

Очень серьёзную проблему вызывает подача нескольких напряжений

питания на схему. Какие проблемы могут возникнуть? Во-первых, при

некорректной

подаче

питающего

напряжения

снижается

надежность

электронных компонентов, что в свою очередь снижает срок службы СнК. Это

происходит из-за того, что некоторое время после включения, электронным

компонентам приходится работать в недопустимых условиях (например, только

с одним источником питания вместо трёх). Во-вторых, возможны ситуации,

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

превышение допустимых токов или напряжений на выводах микросхем, что

может привести к фатальным последствиям.

Из-за некорректной подачи нескольких напряжений может возникнуть

тирристорный

эффект,

приводящий

к

временному

повышенному

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

конфликт системных шин, возникающий из-за того, что при старте часть

системных шин работает встык друг другу (обе шины работают на выход

одновременно).

Решение проблем, связанных с несколькими питающими напряжениями

также возможно с помощью супервизора питания.

1.2.7

Встроенная FLASH-память

Встроенная FLASH-память в основном предназначена для хранения

программ и сравнительно больших объемов данных. Объем памяти, в

зависимости от типа микроконтроллера, может достигать от единиц до сотен

килобайт.

37

FLASH-память не позволяет перезаписывать отдельные байты. Адресное

пространство памяти разбито на участки по аналогии с жесткими дисками,

называемыми секторами. Для записи новой информации необходимо с

помощью специальной команды стереть целый сектор или все сектора сразу.

Один из секторов называется загрузочным. Обычно он располагается в той

части адресного пространства микроконтроллера, с которого стартует

процессор. Адрес старта - очень важный параметр, его обязательно нужно знать

для всех используемых микроконтроллеров.

Необходимо помнить, что количество циклов записи и стирания

ограничено и достигает десятков тысяч - миллионов раз, и если вы собираетесь

использовать FLASH память для хранения данных необходимо предусмотреть.

Для обеспечения операции стирания и записи используются команды,

отправляемые по специальным адресам адресного пространства FLASH-

памяти.

Среди главных достоинств этой памяти можно назвать следующие:

 Энергонезависимость, т.е. способность хранить информацию при

выключенном питании (энергия расходуется только в момент записи

данных);

 Информация может храниться очень длительное время (десятки лет);

 Сравнительно небольшие размеры;

 Высокая надежность хранения данных, в том числе устойчивость к

механическим нагрузкам;

 Не содержит движущихся деталей (как в жестких дисках).

 Основные недостатки флэш-памяти:

 Невысокая скорость передачи данных (в сравнении с динамической

оперативной памятью);

 Незначительный объем (по сравнению с жесткими дисками);

 Ограничение по количеству циклов перезаписи (хотя эта цифра в

современных разработках очень высока - более миллиона циклов).

1.2.8

Контроллер прямого доступа к памяти

Обмен

данными

микропроцессора

с

медленнодействующими

периферийными устройствами (ПУ) обычно организуется по прерываниям или

по программному опросу. Однако при передаче между основной и внешней

памятью микро-ЭВМ больших блоков данных (десятки байт и более)

производительность процессора в этих режимах является недостаточной.

Скорость передачи данных в режиме программного ввода-вывода

ограничивается только процессором. Поэтому для передачи данных между

устройствами внешней памяти и ОЗУ разработан специальный метод передачи

данных без участия процессора, получившего название прямого доступа к

памяти (Direct Memory Access, DMA). Аппаратные средства реализации канала

ПДП называются контроллером прямого доступа к памяти (КПДП).

38

DMA-контроллер содержит несколько регистров, доступных центральному

процессору для чтения и записи. Обычно эти регистры задают порт (или канал),

который

должен

быть

использован;

направление

переноса

данных

(чтение/запись); единицу переноса (побайтно/пословно); число байтов, которое

следует перенести; адрес.

Необходимо отметить, что контроллер ПДП используется не только для

передачи данных между ПУ и памятью, но и из памяти в память, и из ПУ в ПУ.

В идеальном случае режим ПДП совершенно не должен влиять на

действия процессора, но для этого потребуется сложный и дорогой тракт в

основную память вычислительной системы. Поэтому в большинстве систем

используется временное разделение (мультиплексирование) общей системной

шины между процессором и КПДП.

Разработано две разновидности ПДП: режим без пропусков тактов

микропроцессора и режим с пропуском тактов микропроцессора.

В первом режиме реализации прямой доступ осуществляется без участия

процессора (параллельно микропроцессору). Для этого используются те

интервалы машинных циклов, в течение которых микропроцессор не

обращается к основной памяти. Процессор (или дополнительная схема)

идентифицирует

эти

интервалы

для

КПДП

специальным

сигналом,

означающим доступность системной шины. Производительность процессора в

этом режиме не уменьшается, но для каждого типа процессора потребуется

свой контроллер ПДП. С другой стороны, сами передачи будут носить

нерегулярный характер ввиду отсутствия у некоторых команд этих интервалов,

что приведет к уменьшению скорости передачи данных в режиме ПДП.

Во втором способе реализации КПДП полностью ″захватывает″ системную

шину на время передачи, при этом процессор отключается от системной шины

и переходит в режим холостого хода. Таким образом, передачи ПДП

осуществляются путем пропуска тактов процессора в выполняемой программе.

При выполнении передач ПДП содержимое внутренних регистров процессора

не модифицируются, поэтому его не нужно запоминать в памяти, а затем

восстанавливать, как при обработке прерываний. Выполнение программы

осуществляется сразу после окончания ПДП. Тем не менее, в условиях

интенсивных передач ПДП эффективная производительность процессора

уменьшается.

Обычно блоками ПДП снабжаются сравнительно мощные модели

микроконтроллеров. В основном ПДП используется для взаимодействия памяти

с устройствами ввода-вывода, которые могут создать большой поток данных:

сетевыми контроллерами, UART, ЦАП и АЦП.

Как правило, блок ПДП программисты встроенных систем, особенно

начинающие, стараются обходить стороной, считая его излишне сложным. На

самом деле, использование ПДП не является более сложным, чем, например,

использование системы прерываний, а эффект от применения ПДП может

39

разгрузить

центральный

процессор

и

увеличить

производительность

контроллера.

1.2.9

Средства понижения энергопотребления

Практически все современные микроконтроллеры имеют встроенные

средства

понижения

энергопотребления,

позволяющие

отключать

не

используемые в данный момент блоки, понижать тактовую частоту процессора

и переходить в различные режимы сна.

40

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