Встроенные периферийные устройства микроконтроллеров
В составе МК, как показано на( рис.8) 8, кроме центрального процессора, выполняющего основные алгоритмы обработки данных, присутствуют так называемые периферийные устройства, также выполняющие функции обработки данных, но только по специализированным алгоритмам, освобождая основной процессор от многочисленных вспомогательных процедур.
К ним можно отнести следующие устройства:
-модуль скоростного ввода/ вывода данных (встроенный процессор событий);
-
модуль скоростного ввода/вывода данных (встроенный процессор событий);
- встроенные многоканальные ШИМ-генераторы;
- встроенный аналого-цифровой преобразователь;
- последовательные порты обмена данными;
- встроенный контроллер прерываний;
- сервер периферийных транзакций.
Далее будут рассмотрены более подробные описания и схемотехнические решения перечисленных модулей на примере реализаций в МК фирмы «Intel» MCS-196 [1]. В МК других производителей эти модули также могут присутствовать в аналогичном или в модифицированном виде.
2.1.Порты ввода/вывода
Порты ввода/вывода представляют собой 8-разрядные регистры специального назначения, связанные с внешними ножками (pin) микросхемы и встроенными периферийными устройствами МК. Каждый бит регистров специального назначения связан с определенной функцией периферийных устройств. Все порты подразделяются на 3три вида: порты только для ввода данных; порты только для вывода данных и порты ввода/вывода.
Внутренние структуры соответствующих портов, в целях упрощения, приведены на рис.9 9 одноразрядными.
Порт ввода данных соединяет входы микросхемы МК и внутреннюю шину через последовательно соединенные защитный согласующий резистор, буфер преобразования уровня входного сигнала, регистр данных порта и буфер. Транзисторные ключи Q1…-Q4 являются частью схемы защиты и программной настройки порта, необходимой для установки одного из альтернативных режимов работы: ввод аналоговых сигналов или ввод дискретных сигналов.
В случае установки режима ввода аналоговых сигналов информация после входного резистора направляется к аналоговому мультиплексору и затем к АЦП, схема которого будет рассмотрена далее.
В случае установки режима ввода дискретных сигналов буфер преобразователя уровня усиливает или ослабляет входной сигнал, в зависимости от соотношений уровня сигнала на входе с соответствующими пороговыми значениями, принятыми для уровней «0» или «1» дискретных сигналов.
В регистр данных по сигналу «строб» будет занесена информация в виде «0» или «1», после чего по команде «чтение из порта» информация поступит на внутреннюю шину МК.
Порт вывода данных получает данные с внутренней шины МК и с помощью схемы комбинационной логики подсоединяет вывод микросхемы к питанию или к общей точке в соответствии с выводимой информацией.
Порт ввода/вывода может осуществлять передачу информации в одном из двух направлений, в зависимости от потребности разработчика системы в конкретном проекте. Для установки режима ввода или вывода все универсальные порты должны быть проинициализированы, т. е. должным образом настроены до начала их использования целевой программой МК.
Обычно это делается в начальных блоках программы, называемых блоками инициализации.
2.2.Модуль скоростного ввода/вывода данных
Для целей промышленного применения, ориентированных на управление событиями в реальном времени, в кристалл микроконтроллера встраиваются устройства скоростного ввода/вывода данных (или процессор событий). Эти устройства используются для точного формирования периодических сигналов в функции времени, а также для измерения временных интервалов между внешними событиями, например для измерения частоты, периода скважности, фазового сдвига импульсных последовательностей с датчиков обратных связей (измерение скорости двигателей по сигналу импульсного датчика положения ротора или скорости).
В состав модуля входят таймеры, один из которых является счетчиком тактовых внутренних сигналов прямого счета, а второй может считать как внутренние тактовые сигналы, так и внешние, причем как в прямом, так и в обратном направлении. Инициализация таймеров должна быть произведена до начала работы основной программы.
В процессе работы модуль аппаратно контролирует изменение потенциала внешнего сигнала на (назначенных) входах с помощью встроенной схемы детектора перепадов входного сигнала. При этом детекторы могут быть программно настроены на подъем и/или на потенциал.а. Перепад рассматривается как внешнее событие, момент наступления которого фиксируется по текущим показаниям таймера и вместе со статусом входов записывается в стек процессора.
Эта процедура носит название «захват события» и сопровождается формированием запроса на прерывание центральному процессору для обслуживания модуля.
В программе обслуживания прерываний учитывается номер входа, вызвавшего событие, и содержимое таймера в момент наступления события. Таким образом, вычитая из времени наступления текущего события время предыдущего события, можно с высокой точностью определить интервал между событиями, как показано на рис.10. 10.
Например, скорость вращения ротора генератора агрегата или электродвигателя можно определить, если установить на него зубчатый металлический диск, а индукционный датчик поместить так, чтобы он выдавал импульс от проходящих мимо него зубцов. Тогда измеренное значение периода следования импульсов позволит вычислить частоту вращения агрегата.
Существенным является то, что работа модулей высокоскоростного ввода/вывода и процессора событий в моменты захвата событий происходит автономно от работы основного процессора и не требует никаких дополнительных аппаратных или программных затрат.
2.3.Встроенные многоканальные ШИМ-генераторы
Несмотря на универсальность, гибкость и широкие функциональные возможности применения процессоров событий, данный модуль все же требует некоторого «отвлечения» процессора на обслуживание программ прерывания. Это может проявляться в ограничениях значений максимальной и минимальной скважностей ШИМ-сигналов.
Поэтому для генерации ШИМ-сигналов на высоких несущих частотах (до 40 кГц) более удобен встроенный многоканальный (чаще всего трехканальный) ШИМ-модулятор (рис.11).
Этот генератор копирует структуры классических ШИМ-генераторов с «цифровой пилой» задания и отдельными компараторами для каждого из каналов и не имеет ограничений в регулировании скважности с точностью до 1/255 ширины импульса опорной частоты.
Встроенный ШИМ-генератор может быть использован для прямого цифрового управления электронными коммутаторами, ключами инверторов напряжения и тока, а также в качестве простейших цифроаналоговых преобразователей в системах управления и контроля.
В последнем случае достаточно дополнительно установить на выходе фильтр нижних частот.
2.4.Встроенный аналого-цифровой преобразователь
Встроенный многоканальный аналого-цифровой преобразователь (рис.12)) включает входы аналоговых сигналов (обычно используются входы одного или двух дискретных портов ввода данных, которые заранее инициализированы для соответствующего режима работы), программно- диф. управляемый аналоговый мультиплексор, устройство выборки и хранения аналогового сигнала, схему преобразования, регистры времени выборки и времени преобразования, регистр команд, в котором задается номер канала и условия запуска преобразователя, регистр результата.
Уникальной возможностью является автоматический запуск АЦП от модуля высокоскоростного вывода или от процессора транзакций. Эти режимы позволяют полностью автоматизировать не только процесс запуска АЦП, но и процесс получения результатов в определенном месте оперативной памяти ОЗУ (режим сканирования АЦП). При этом все преобразования выполняются как бы самостоятельно, в фоновом режиме, почти без «отвлечения» процессора от решения собственно задач управления.
Многоканальность (от 8 до 16) встроенного АЦП позволяет «одновременно» вводить сигналы от датчиков напряжений и токов, частоты, а также от датчиков технологических параметров, например давления, температуры, расхода. Это позволяет создавать системы комплексной автоматизации.
Среднее быстродействие АЦП составляет от 7 до 20 мкс при разрядности от 8 до 12. Эти показатели для большинства практических задач оказываются удовлетворительными. На рис. 13 приведены варианты схем подключения источников аналоговых сигналов. Схема на рис. 13, а является простейшей. Наличие сопротивлений резисторов, включенных последовательно с входной цепью, ограничивает входной ток при возникновении перенапряжений. Этим же целям служат защитные диоды. Конденсатор вместе с резистором образуют фильтр нижних частот, снижающий чувствительность к высокочастотным помехам. В схеме на рис. 13, б использован неинвертирующий операционный усилитель, позволяющий повысить точность преобразования, а также согласовать уровень входного сигнала с допустимым значением аналогового входа МК ( 0…5 В, Uref), подбором соотношений сопротивлений резисторов R1 и R2. Для этой схемы входное напряжение на входе МК определяется выражением
Uвых = (1+ R2/R1)Uвх.
Схема на рис. 13, в позволяет подключать реверсивные (относительно нуля) входные сигналы, преобразовать уровни входных напряжений и защитить вход МК от перенапряжений. Входное напряжение на входе МК определяется выражением
Uвых = (R2/R1)( Umax – Uвх).
Последовательный порт обмена данными
Современные микроконтроллерные средства не могут проектироваться без учета одного из важнейших требований комплексной автоматизации – наличия необходимых аппаратных и программных интерфейсов для сопряжения с устройствами управления верхнего уровня – управляющими ЭВМ или промышленными программируемыми контроллерами. Для выполнения этих требований в МК имеются встроенные последовательные порты обмена данными.
В состав последовательного порта (рис. 14) входит универсальный синхронно-асинхронный приемопередатчик, который может работать в нескольких режимах: одном синхронном и трех асинхронных в соответствии с установкой режима в регистре управления.
Скорость приема или передачи данных устанавливается в регистре скорости обмена (4800, 9600, 19 200, 38 400, 57 600 бод). Максимальная скорость приемопередачи при тактовой частоте 20 МГц для асинхронного режима составляет 1,25 Мбит, а для синхронного – 3,33 Мбит.
Состояние последовательного порта контролируется в соответствии с заданием в статусном регистре либо в режиме программного опроса, либо по прерываниям. В последнем режиме запрос на прерывание по приему генерируется автоматически, когда по последовательному каналу поступил байт данных и буфер данных содержит информацию, преобразованную из последовательного формата в параллельный. Запрос на прерывание по передаче генерируется, когда очередной байт данных передан и буфер передатчика пуст.
Порт допускает работу в так называемом режиме Master-Slave (Ведущий-Ведомый), что позволяет включать МК в состав мультимикропроцессорной системы управления (рис. 15) с возможностью автоматической идентификации адреса одним из нескольких приемников. Это делается с помощью отдельного дополнительного бита, передача которого активизирует прием адреса одновременно всеми подключенными к порту приемниками. Тот приемник, который идентифицировал свой адрес, на
чинает работать в обычном режиме пакета данных, а все остальные отключаются.
Если мультипроцессорная система выполнена не на одной печатной плате, а в виде отдельных устройств, то связь между удаленными устройствами должна осуществляться по одному из специально разработанных стандартных интерфейсов (RS-232, RS-422, RS-485) через микросхемы-драйверы.
Для интегрированных иерархических систем автоматического управления исключительно важное значение имеет наличие нескольких (двух-трех) портов последовательного обмена. Тогда один порт обеспечивает обмен данными с системами верхнего уровня, а второй (третий) – с другими контроллерами в мультипроцессорной системе и с внешним пультом оперативного управления либо обеспечивает сбор данных с удаленных технологических датчиков невысокого быстродействия (температура, давление, расход и т. д.).
Встроенный контроллер прерываний
Построить эффективную систему управления в реальном времени можно только с использованием контроллера прерываний. Контроллер прерываний, получая запрос прерывания от внешнего сигнала, от одного из интегрированных в микроконтроллер периферийных устройств или по команде (программы), с учетом установленного приоритета прерываний вызывает соответствующую процедуру обслуживания прерывания. При этом содержимое счетчика команд сохраняется в стеке, после чего в счетчик команд загружается вектор перехода на процедуру обслуживания прерывания. После того как обслуживание прерывания завершится, следует автоматический возврат к задаче, которая была прервана. Так организуется обработка внутренних и внешних событий в реальном времени с подключением соответствующих подпрограмм к общему потоку управляющей программы – к фоновой программе.
В случае возникновения нескольких запросов на прерывания обслуживаться будет тот запрос, который обладает высшим приоритетом, затем следующий по уровню и самой последней будет выполняться основная программа – фоновая задача.
Встроенный контроллер прерываний с установленными приоритетами используется для эффективного управления внешними событиями в реальном времени с минимальными затратами ресурсов процессора на идентификацию событий и анализ состояний входов.
Дата добавления: 2020-05-20; просмотров: 618;