Выбери формат для чтения
Загружаем конспект в формате doc
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ЛЕКЦИЯ № 17
по учебной дисциплине
"ЦУ и МП в РЭО"
Раздел 2. Микропроцессорные устройства в РЭО
Тема 2.4. Принципы построения и работы микроконтроллеров
Занятие 2.4.2: "ОРГАНИЗАЦИЯ СВЯЗИ МИКРОКОНТРОЛЛЕРА
С ВНЕШНОЙ СРЕДОЙ И ВРЕМЕНЕМ"
План лекции:
Введение.
1. Порты ввода-вывода.
2.Таймеры и процессоры событий.
3. Вспомогательные аппаратные средства микроконтроллера.
Заключение.
Учебная литература: [1] – [5].
1. Порты ввода-вывода
Каждый МК имеет некоторое количество линий ввода/вывода, которые объединены в многоразрядные (чаще 8-разрядные) параллельные порты ввода/вывода. В памяти МК каждому порту ввода/вывода соответствует свой адрес регистра данных. Обращение к регистру данных порта ввода/вывода производится теми же командами, что и обращение к памяти данных. Кроме того, во многих МК отдельные разряды портов могут быть опрошены или установлены командами битового процессора.
(слайд 3). В зависимости от реализуемых функций различают следующие типы параллельных портов:
- однонаправленные порты, предназначенные только для ввода или только для вывода информации;
- двунаправленные порты, направление передачи которых (ввод или вывод) определяется в процессе инициализации МК;
- порты с альтернативной функцией (мультиплексированные порты). Отдельные линии этих портов используются совместно со встроенными периферийными устройствами МК, такими как таймеры, АЦП, контроллеры последовательных интерфейсов;
- порты с программно управляемой схемотехникой входного/выходного буфера.
(слайд 4). Порты выполняют роль устройств временного согласования функционирования МК и объекта управления, которые в общем случае работают асинхронно. Различают три типа алгоритмов обмена информацией между МК и ВУ через параллельные порты ввода/вывода:
- режим простого программного ввода/вывода;
- режим ввода/вывода со стробированием;
- режим ввода/вывода с полным набором сигналов подтверждения обмена.
Типовая схема двунаправленного порта ввода/вывода МК приведена на рисунке 17.1.
(слайд 5).
Рисунок 17.1 – Типовая схема двунаправленного порта ввода/вывода МК
(слайд 6). Триггер управления разрешает вывод данных на внешний вывод. В современных МК, как правило, обеспечивается индивидуальный доступ к триггерам данных и управления, что позволяет использовать каждую линию независимо в режиме ввода или вывода.
Необходимо обратить особое внимание на то, что при вводе данных считывается значение сигнала, поступающее на внешний вывод, а не содержимое триггера данных. Если к внешнему выводу МК подключены выходы других устройств, то они могут установить свой уровень выходного сигнала, который и будет считан вместо ожидаемого значения триггера данных.
Другим распространенным вариантом схемотехнической организации порта ввода/вывода является вывод с «открытым истоком», называемый еще «квазидвунаправленным». Такая организация вывода позволяет создавать шины с объединением устройств по схеме «монтажное И».
2. Таймеры и процессоры событий
(слайд 7). Большинство задач управления, которые реализуются с помощью МК, требуют исполнения их в реальном времени. Под этим понимается способность системы получить информацию о состоянии управляемого объекта, выполнить необходимые расчетные процедуры и выдать управляющие воздействия в течение интервала времени, достаточного для желаемого изменения состояния объекта.
Возлагать функции формирования управления в реальном масштабе времени только на центральный процессор неэффективно, так как это занимает ресурсы, необходимые для расчетных процедур. Поэтому в большинстве современных МК используется аппаратная поддержка работы в реальном времени с использованием таймера (таймеров).
(слайд 8). Модули таймеров служат для:
- приема информации о времени наступления тех или иных событий от внешних датчиков событий;
- формирования управляющих воздействий во времени.
Модуль таймера 8-разрядного МК представляет собой 8-ми или 16-разрядный счетчик со схемой управления. Схемотехникой МК обычно предусматривается возможность использования таймера в режиме счетчика внешних событий, поэтому его часто называют таймером/счетчиком. Структура типичного 16-разрядного таймера/счетчика в составе МК приведена на рисунке 17.2.
(слайд 9).
Рисунок 17.2 – Структура 16-разрядного модуля таймера/счетчика
(слайд 10). В памяти МК 16-разрядный счетчик отображается двумя регистрами: TH – старший байт счетчика, TL – младший байт. Регистры доступны для чтения и для записи. Направление счета – только прямое, то есть при поступлении входных импульсов содержимое счетчика инкрементируется. В зависимости от настройки счетчик может использовать один из источников входных сигналов:
- импульсную последовательность с выхода управляемого делителя частоты fBUS ;
- сигналы внешних событий, поступающие на вход TOCKI контроллера.
(слайд 11). В первом случае говорят, что счетчик работает в режиме таймера, во втором – в режиме счетчика событий. При переполнении счетчика устанавливается в «единицу» триггер переполнения TF, который генерирует запрос на прерывание, если прерывания от таймера разрешены. Пуск и останов таймера могут осуществляться только под управлением программы. Программным способом можно также установить старший и младший биты счетчика в произвольное состояние или прочитать текущий код счетчика (H/L).
Рассмотренный «классический» модуль таймера/счетчика широко применяется в различных моделях относительно простых МК. Он может использоваться для измерения временных интервалов и формирования последовательности импульсов. (слайд 12). Основными недостатками такого таймера/счетчика являются:
- потери времени на выполнение команд пуска и останова таймера, приводящие к появлению ошибки при измерении временных интервалов и ограничивающие минимальную длительность измеряемых интервалов времени единицами мс;
- сложности при формировании временных интервалов (меток времени), отличных от периода полного коэффициента счета, равного (Kдел/fBUS )*216;
- невозможность одновременного обслуживания (измерения или формирования импульсного сигнала) сразу нескольких каналов.
Первые два из перечисленных недостатков были устранены в усовершенствованном модуле таймера/счетчика, используемом в МК семейства MCS-51. Дополнительная логика счетного входа позволяет тактовым импульсам поступать на вход счетчика, если уровень сигнала на одной из линий ввода равен «1». Такое решение повышает точность измерения временных интервалов, так как пуск и останов таймера производится аппаратно. Также в усовершенствованном таймере реализован режим перезагрузки счетчика произвольным кодом в момент переполнения. Это позволяет формировать временные последовательности с периодом, отличным от периода полного коэффициента счета.
Однако эти усовершенствования не устраняют главного недостатка модуля «классического» таймера – одноканального режима работы. (слайд 13).
Совершенствование подсистемы реального времени МК ведется по следующим направлениям:
- увеличение числа модулей таймеров/счетчиков. Этот путь характерен для фирм, выпускающих МК со структурой MCS-51, а также для МК компаний Mitsubishi и Hitachi;
- модификация структуры модуля таймера/счетчика, при которой увеличение числа каналов достигается не за счет увеличения числа счетчиков, а за счет введения дополнительных аппаратных средств входного захвата (input capture –
IC) и выходного сравнения (output compare – OC). Такой подход используется, в частности, в МК компании Motorola.
(слайд 14). Следующим этапом развития модулей подсистемы реального времени МК стали модули процессоров событий. Впервые модули процессоров событий были использованы компанией Intel в МК семейства 8хC51Fx. Этот модуль получил название программируемого счетного массива (Programmable Counter Array – PCA).
(слайд 15). РСА обеспечивает более широкие возможности работы в реальном масштабе времени и в меньшей степени расходует ресурсы центрального процессора, чем стандартный и усовершенствованный таймеры/счетчики. К преимуществам РСА также можно отнести более простое программирование и более высокую точность. К примеру, РСА может обеспечить лучшее временное разрешение, чем таймеры 0, 1 и 2 МК семейства MCS-51, так как счетчик РСА способен работать с тактовой частотой, втрое большей, чем у этих таймеров. РСА также может решать многие задачи, выполнение которых с использованием таймеров требует дополнительных аппаратных затрат (например, определение фазового сдвига между импульсами или генерация ШИМ-сигнала).
РСА состоит из 16-битного таймера-счетчика и пяти 16-битных модулей сравнения-защелки, как показано на рисунке 17.3.
(слайд 16).
Рисунок 17.3 – Структура процессора событий МК семейства Intel 8xC51Fx
Таймер-счетчик РСА используется в качестве базового таймера для функционирования всех пяти модулей сравнения-защелки. Вход таймера-счетчика РСА может быть запрограммирован на счет сигналов от следующих источников:
- выход делителя на 12 тактового генератора МК;
- выход делителя на 4 тактового генератора МК;
- сигнал переполнения таймера 0;
- внешний входной сигнал на выводе ЕСI (P1.2).
Любой из модулей сравнения-защелки может быть запрограммирован для работы в следующих режимах:
- защелкивания по фронту и/или спаду импульса на входе CEXi;
- программируемого таймера;
- высокоскоростного выхода;
- широтно-импульсного модулятора.
Модуль 4 может быть также запрограммирован как сторожевой таймер (Watchdog Timer – WDT).
Режим защелкивания по импульсу на входе МК эквивалентен режиму входного захвата (IC) усовершенствованного таймера. Режимы программируемого таймера и высокоскоростного выхода близки по своим функциональным возможностям к режиму выходного сравнения (OC).
В режиме ШИМ на соответствующем выводе МК формируется последовательность импульсов с периодом, равным периоду базового таймера/счетчика PCA. Значение 8-разрядного кода, записанное в младший байт регистра-защелки соответствующего модуля задает скважность формируемого сигнала. При изменении кода от 0 до 255 скважность меняется от 100% до 0,4%.
Режим ШИМ очень прост с точки зрения программного обслуживания. Если изменения скважности не предполагается, то достаточно один раз занести соответствующий код в регистр данных модуля, проинициализировать режим ШИМ, и импульсная последовательность будет воспроизводиться с заданными параметрами без вмешательства программы.
При работе модуля сравнения-защелки в режиме защелки, программируемого таймера или высокоскоростного выхода модуль может сформировать сигнал прерывания. Сигналы от всех пяти модулей сравнения-защелки и сигнал переполнения таймера РСА разделяют один вектор прерывания. Иными словами, если прерывания разрешены, то и сигнал переполнения таймера PCA и сигнал от любого из модулей вызывают одну и ту же подпрограмму прерываний, которая должна сама идентифицировать источник, вызвавший ее.
Для работы с внешними устройствами таймер-счетчик РСА и модули сравнения-защелки используют выводы P1 порта МК. Если какой-либо вывод порта не используется при работе РСА, или РСА не задействован, порт может применяться стандартным образом.
Реализованный в 8хC51Fх PCA оказался настолько удачным, что архитектура данных МК стала промышленным стандартом де-факто, а сам PCA многократно воспроизводился в различных модификациях микроконтроллеров разных фирм.
(слайд 18). Тенденция развития подсистемы реального времени современных МК находит свое отражение в увеличении числа каналов процессоров событий и расширении их функциональных возможностей.
3. Вспомогательные аппаратные средства микроконтроллера
3.1. Тактовые генераторы МК
(слайд 19). Современные МК содержат встроенные тактовые генераторы, которые требуют минимального числа внешних времязадающих элементов. На практике используются три основных способа определения тактовой частоты генератора: с помощью кварцевого резонатора, керамического резонатора и внешней RC-цепи.
Типовая схема подключения кварцевого резонатора приведена на рисунке 17.4.
(слайд 20).
Рисунок 17.4 – Тактирование с использованием
кварцевого резонатора
Кварцевый или керамический резонатор Q подключается к выводам XTAL1 и XTAL2, которые обычно представляют собой вход и выход инвертирующего усилителя. Номиналы конденсаторов C1 и C2 определяются производителем МК для конкретной частоты резонатора.
(слайд 21). Использование кварцевого резонатора позволяет обеспечить высокую точность и стабильность тактовой частоты (разброс частот кварцевого резонатора обычно составляет менее 0,01%). Такой уровень точности требуется для обеспечения точного хода часов реального времени или организации интерфейса с другими устройствами. Основными недостатками кварцевого резонатора являются его низкая механическая прочность (высокая хрупкость) и относительно высокая стоимость.
3.2. Аппаратные средства обеспечения надежной работы МК
Прикладная программа, записанная в память программ МК, должна обеспечивать его надежную работу при любых комбинациях входных сигналов. Однако в результате электромагнитных помех, колебаний напряжения питания и других внешних факторов предусмотренный разработчиком ход выполнения программы может быть нарушен. (слайд 22). С целью обеспечения надежного запуска, контроля работы МК и восстановления работоспособности системы в отсутствие оператора все современные МК снабжаются аппаратными средствами обеспечения надежной работы. К ним относятся:
- схема формирования сигнала сброса МК;
- модуль мониторинга напряжения питания;
- сторожевой таймер.
(слайд 23). Основу сторожевого таймера составляет многоразрядный счетчик. При сбросе МК счетчик обнуляется. После перехода МК в активный режим работы значение счетчика начинает увеличиваться независимо от выполняемой программы. При достижении счетчиком максимального кода генерируется сигнал внутреннего сброса, и МК начинает выполнять рабочую программу сначала.
Для исключения сброса по переполнению сторожевого таймера рабочая программа МК должна периодически сбрасывать счетчик. Сброс счетчика сторожевого таймера осуществляется путем исполнения специальной команды (например, CLRWDT) или посредством записи некоторого указанного кода в один из регистров специальных функций. Тогда при нормальном, предусмотренном разработчиком, порядке исполнения рабочей программы переполнения счетчика сторожевого таймера не происходит, и он не оказывает влияния на работу МК. (слайд 24). Однако, если исполнение рабочей программы было нарушено, например, вследствие «зависания», то велика вероятность того, что счетчик не будет сброшен вовремя. Тогда произойдет сброс по переполнению сторожевого таймера, и нормальный ход выполнения рабочей программы будет восстановлен.
3.3. Дополнительные модули МК
Описанные выше модули составляют так называемый базовый комплект МК и входят в состав любого современного контроллера. Очевидна необходимость включения в состав МК дополнительных модулей, состав и возможности которых определяются конкретной решаемой задачей. Среди таких дополнительных модулей следует, прежде всего, отметить:
- модули последовательного ввода/вывода данных;
- модули аналогового ввода/вывода.