Генераторы запуска и синхронизации периферии Равикиран Шетти (Ravikiran Shetty), инженер по приложениям Microchip Technology

6 сентября 2017

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

 

 Современные встраиваемые системы чрезвычайно сложны. В каждой из них применяется один микроконтроллер, который выполняет множество разных функций. Этим приложениям требуется высокий уровень безопасности и оптимальное время исполнения с откликом в реальном времени наряду с мгновенной синхронизацией разных функций. Всем высокоорганизованным приложениям, начиная с систем управления приводом со встроенным блоком коррекции коэффициента мощности (ККМ) и заканчивая системами по управлению освещением, требуются в т.ч. коммутационные модули.

Приложения, где процессоры управляют последовательностью выполнения операций и синхронизацией, имеют собственные задержки, рассчитать которые не всегда представляется возможным. При таком подходе отнимается часть ресурсов ЦП, что ухудшает эффективность использования процессора, не позволяя его разгрузить, чтобы оптимизировать производительность приложения. Генератор запуска и синхронизации периферии (PeripheralTrigger Generator, PTG), независимая от ядра периферия (Core Independent Peripheral, CIP), которыми оснащены 16-разрядные цифровые сигнальные контроллеры dsPIC33 компании Microchip, обеспечивают точный временной режим и последовательность выполнения функций в сложных приложениях, разгружая ЦП.
Мы подробно рассмотрим несколько примеров того, как генератор запуска и синхронизации позволяет упростить последовательность выполнения функций периферийных устройств в приложениях с жестким временным режимом, к которым, например, относятся управление приводом с ККМ, контроль над интенсивностью освещения или генерация сигнала с постоянной частотой. Кроме того, этот генератор работает как источник синхронизации, независимый от ядра, что позволяет ядру перейти в режим сна или выполнять другие важные задачи.
Как следует из названия PTG, этот программируемый пользователем контроллер генерирует запуск сложных последовательностей входных сигналов, координируя работу других встроенных периферийных устройств. Поскольку в приложениях, в которых применяется этот генератор, задействованы АЦП, блоки выходного сравнения (OC), широтно-импульсной модуляции (ШИМ), таймеры и контроллеры прерываний, необходимо обеспечить управление сложными последовательностями запусков и откликов. PTG-генератор не только уменьшает зависимость системы от ядра, но и в одиночку следит за взаимодействием модулей, позволяя уменьшить сложность программного обеспечения и поддержать модульный принцип организации системы.
Периферия PTG поддерживает 8-бит команды, подаваемые в регистры очереди этого контроллера. Каждый 8-бит ступенчатый командный сигнал состоит из 4-бит кода и 4-бит поля опций. Эти команды определяют последовательность событий для генерации выходных пусковых сигналов для периферийных устройств. Ступенчатые командные сигналы также используются для генерации запросов ядру на прерывание.
 
Коэффициент мощности и управление приводом
В приложениях со встроенным блоком ККМ и с управлением приводом один-единственный DSC-контроллер управляет синхронным двигателем на постоянных магнитах с помощью схемы векторного управления с ориентацией по полю (Field Oriented Control, FOC), а также ККМ-преобразователя. Этому приложению требуются три ШИМ-канала для управления работой двигателя и один дополнительный ШИМ-канал для осуществления ККМ. Периферийный блок выходного сравнения применяется для наращивания используемого числа ШИМ-каналов, которое может превышать даже число высокоскоростных ШИМ-каналов, имеющихся в устройстве.
Блоки ШИМ и выходного сравнения могут генерировать необходимые сигналы для управления приводом и осуществления ККМ. Однако в приложении с ККМ время выполнения команд имеет очень большое значение для решения разных задач и не должно превышать оптимальной величины. К числу этих задач относятся синхронизация управления приводом и блока ШИМ/ККМ, запуск АЦП для преобразования и коммутация каналов АЦП при управлении приводом, а также сигналами обратной связи ККМ.
Соответствие этим требованиям обеспечивается с помощью PTG-контроллера, который синхронизирует высокоскоростные сигналы ШИМ и выходного сравнения, а также генерирует сигналы запуска периферийных АЦП по фронтам высокоскоростных ШИМ-сигналов. Кроме того, PTG контролирует завершение преобразования с помощью АЦП и генерирует прерывания в соответствии с алгоритмом FOC и управляющим кодом цифрового ККМ. Поскольку периферийные устройства работают без участия ЦП, нагрузка на ядро уменьшается, сокращается энергопотребление всего приложения, и ресурсы процессора освобождаются для выполнения более важных функций. Коммутационная частота блоков управления приводом и ККМ ШИМ выбирается таким образом, чтобы она была целым кратным.
АЦП в цифровых сигнальных контроллерах dsPIC выполняют одновременную дискретизацию по четырем каналам. Алгоритмы ККМ используют собственные аналоговые каналы, которым требуется одновременная оцифровка, т.к. фазовое соотношение между этими сигналами является определяющим для осуществления эффективного управления.
Сигналы обратной связи блоков управления приводом и ККМ выбираются так, чтобы их дискретизация осуществлялась путем чередования выбора каналов АЦП. Сигналы блоков управления приводом и ККМ могут поступать в схемы выборки и хранения перед запуском АЦП на основе информации о состоянии фронтов ШИМ-сигналов. Каналы необходимо сконфигурировать таким образом, чтобы в конце выборки с использованием четырех каналов и последовательности преобразованных сигналов результаты преобразования поступали в блок FOC или ККМ в буферные регистры их соответствующих АЦП.
Задав биты выбора каналов для передачи сигналов обратной связи блока ККМ в схему выборки и хранения АЦП, необходимо сгенерировать сигнал запуска для каждого цикла ККМ ШИМ. Аналогично, для каждого ШИМ-цикла блока управления приводом требуется генерировать пусковой сигнал АЦП после установки битов выбора каналов для передачи сигналов обратной связи блока управления приводом в схему выборки и хранения АЦП. Таким образом, периферийный PTG-контроллер конфигурируется для генерации сигналов запуска АЦП по фронтам импульсов блоков управления приводом и ККМ ШИМ. Кроме того, этот контроллер генерирует два прерывания для выполнения алгоритмов FOC и ККМ (см. рис. 1).
Рис. 1. Выполнение кода с помощью прерываний PTG-контроллера
 
Как видно из этого примера, PTG-контроллер одного устройства dsPIC33 упрощает реализацию ККМ и схемы управления приводом путем эффективного упорядочения использования АЦП и ШИМ.
 
Управление освещением
В системах управления освещением генератор ШИМ с блоком выходного сравнения можно использовать для управления яркостью света.
В этом приложении применяются два периферийных блока выходного сравнения, а их коэффициенты заполнения изменяются с помощью входных сигналов, полученных из двух раздельных каналов АЦП. Величина коэффициента заполнения обновляется в зависимости от значения каждого АЦП. Периферийный PTG-контроллер обеспечивает более простой способ синхронизации периферийных блоков АЦП и выходного сравнения. Кроме того, этот контроллер позволяет избежать зависания и повысить безопасность системы.
С целью синхронизации схема сначала проверяет состояние АЦП и генерирует соответствующие прерывания, чтобы изменить коэффициент заполнения блока сравнения. Генератор PTG самостоятельно меняет канал АЦП, не обращаясь за помощью к центральному процессору. С целью повышения безопасности генератор PTG оснащен специализированным сторожевым таймером на случай неожиданного отказа. Этот таймер позволяет контролировать и выполнять необходимую коррекцию.
Структурная схема этого приложения показана на рисунке 2.
Рис. 2. Управление коэффициентом заполнения блоков выходного сравнения (OC1 и OC2)
 
Сторожевой таймер в контроллере PTG предотвращает возникновение ситуаций, когда контроллер неопределенное время при выполнении команды ожидает внешнее событие – высокое/низкое логическое состояние пускового сигнала оборудования. В этом приложении контроллер PTG ожидает пусковой сигнал, свидетельствующий о завершении преобразования АЦП. В активном состоянии сторожевой таймер начинает отсчет по началу выполнения команды. Таймер переходит в неактивное состояние, когда команда завершает выполнение. Если ожидаемое событие не происходит до того, как истекает время ожидания сторожевого таймера, контроллер PTG отменяет непоступившую команду и прекращает генерацию последовательностей. Далее на ЦП поступает прерывание по ошибке сторожевого таймера.
Таким образом, безопасное функционирование осуществляется путем выхода из состояния, когда АЦП или контроллер PTG прекращают работу. Эти периферийные устройства можно повторно инициализировать и запустить в течение прерывания, выданного в результате ошибки сторожевого таймера.
Приложение становится независимым от ядра процессора с помощью контроллера PTG, который коммутирует каналы АЦП и контролирует периферийные устройства.
Один-единственный PTG-контроллер следит за всеми взаимодействиями периферийных устройств, что упрощает используемое ПО и сохраняет принцип модульного построения. Сторожевой таймер этого контроллера позволяет восстановить рабочее состояние после любого катастрофического отказа, повышая надежность системы.
 
Сигнал постоянной частоты
PTG-контроллер применяется для генерации сигнала постоянной частоты, который выполняет функцию источника синхронизации. Этот контроллер запускает компаратор, который выбирает маску ввода. Ширина пускового импульса контроллера с собственным таймером может меняться. Пусковой сигнал периферийного устройства используется также для выбора маски ввода операционного усилителя и компаратора (см. рис. 3).
 
Рис. 3. Программируемая пользователем функция маскирования
 
С помощью этой функции выходной сигнал PTG-генератора подается через периферийный компаратор. Инвертирующий вход компаратора подключен к заземлению, а неинвертирующий – к внутреннему источнику опорного напряжения (ИОН).
Пусковой импульс поступает в виде выходного сигнала компаратора. Поскольку PTG непрерывно генерирует пусковые сигналы, компаратор выдает сигнал постоянной частоты. Ширина импульсов этого сигнала равна длительности одного цикла синхросигнала PTG.
Таймер PTG-контроллера и биты длительности импульсов могут управлять временем включения и выключения. Ширина выходных импульсов определяет время выключения выходного сигнала, а таймер – время включения этого сигнала, т.е. задержку между запуском периферийных компараторов.
В зависимости от полярности выходного сигнала компаратора время выключения управляется либо таймером, либо битами длительности импульсов. Частотой выходного сигнала тоже можно управлять с помощью регистра, который функционирует как делитель синхросигналов.
Комплементарный сигнал генерируется с помощью четырех периферийных компараторов путем изменения полярности выходного сигнала этих устройств. Ширина импульса изменяется с помощью соответствующих битов, что уменьшает частоту выходного сигнала. Следовательно, сигнал постоянной частоты можно генерировать с помощью периферийных компараторов и PTG-генератора.
К числу преимуществ использования PTG-генератора в этом приложении относится то, что выходной сигнал может выступать в роли источника постоянных синхросигналов, который работает независимо от процессорного ядра. При использовании большего числа периферийных компараторов генерируется даже комплементарный сигнал. PTG-генератор также работает в энергосберегающих режимах ожидания и сна.
 
Выводы
Периферийные PTG-генераторы в цифровых сигнальных контроллерах dsPIC33 от компании Microchip позволяют создавать сложные последовательности сигналов в приложениях с учетом жестких временных режимов и требований к энергосбережению. PTG-генератор позволяет взаимодействовать разным периферийным устройствам друг с другом без вмешательства ЦП или с минимальным его участием, а также расширяет возможности имеющейся периферии.
Применение периферийного PTG-генератора уменьшает время отклика и нагрузку на программное обеспечение. Это периферийное устройство обладает также встроенными функциями, к которым относится специализированный сторожевой таймер, повышающий функциональную безопасность.
 код статьи МСА728
 
 
 
 

 

Источник: Microchip

Оставить комментарий