4.24. Подсистема широтно-импульсной модуляции
Микроконтроллер 68HC912B32 и все МК семейства HCS12 имеют в своем составе модуль широтно-импульсного модулятора PWM (Pulse Width Modulation). Широтно-импульсная модуляция (ШИМ) — это способ регулирования скорости вращения двигателя постоянного тока посредством изменения среднего значения напряжения, приложенного к обмоткам двигателя. ШИМ-сигнал может также использоваться для изменения направления движения радиоуправляемой модели автомобиля.
Среднее значение напряжения на обмотках двигателя определяется отношением длительности импульса напряжения (состояние «on» на рис. 4.94) к длительности периода следования импульсов. Это отношение называют коэффициентом заполнения γ, который является величиной безразмерной. Например, если коэффициент заполнения равен 80%, то длительность импульса напряжения (состояние «on») составляет 80%, а длительность паузы (состояние «off») — 20% от длительности периода следования импульсов. На рис. 4.94 показана форма напряжения на обмотках двигателя постоянного тока при двух значениях коэффициента заполнения γ = 20% и γ = 80%.
а) Коэффициент заполнения — 20%
б) Коэффициент заполнения — 80%
Рис. 4.94.
Временные диаграммы ШИМ-сигналов с различными коэффициентами заполненияРисунок 4.95 иллюстрирует способ управления двигателем постоянного тока с использованием ШИМ. Если коэффициент заполнения γ = 80%, то к обмоткам двигателя будет приложено среднее напряжение, равное 80% от напряжения сети постоянного тока
Рис. 4.95.
Управление электрическим двигателем методом ШИМШиротно-импульсная модуляция используется не только для управления двигателем. Она имеет множество применений в технике управления различного рода исполнительными механизмами, в том числе в параграфе 4.24.5 будет рассмотрен пример формирования сигнала управления для серводвигателя, который приводит в движение рулевой механизм радиоуправляемой модели автомобиля.
Рис. 4.96.
Использование ШИМ для поворота рулевого колеса радиоуправляемой модели автомобиля.4.24.1. Структура модуля PWM
Для генерации модулированных по длительности импульсных сигналов средствами модуля PWM необходимо рассчитать временные параметры этих сигналов в относительных единицах. Единицей измерения времени для модуля PWM служит период следования импульсов сигнала E_CLOCK, который является первичным сигналом тактирования программируемых делителей частоты и счетчиков в составе модуля PWM. Частота импульсной последовательности E_CLOCK равна частоте системной шины МК. Поскольку частота системной шины МК для каждого нового проекта выбирается разработчиком по совокупности технических требований к изделию, то для каждого проектируемого изделия длительность кванта времени модуля PWM может оказаться различной.
После того, как временные параметры генерируемых сигналов, выраженные в числе периодов E_CLOCK, подсчитаны, следует загрузить их в регистры периода PWPERx и регистры коэффициента заполнения PWDTYx (x — номер канала модуля PWM, x = 0…3).
Модуль PWM имеет в своем составе четыре канала, которые могут генерировать на своих выходах ШИМ-сигналы с независимыми временными параметрами. Каждый канал состоит из двоичного 8-разрядного счетчика PWCNTx с системой предварительных делителей, двух схем сравнения и двух программно доступных регистров PWPERx и PWDTYx. Если работа канала разрешена, то счетчик канала PWCNTx считает непрерывно. Код в счетчике PWCNTx нарастает с $00 до значения, которое записано в регистр периода PWPERx. В момент сравнения счетчик автоматически сбрасывается, и счет продолжается, начиная с кода $00. Код счетчика PWCNTx непрерывно сравнивается с кодом регистра коэффициента заполнения PWDTYx. Если код в регистре PWDTYx превышает текущий код счетчика PWCNTx, то на выходе канала формируется логический сигнал высокого уровня. В момент, когда код счетчика превысит код в регистре коэффициента заполнения, на выходе установится низкий логический уровень (рис. 4.97).
Рис. 4.97.
Временная диаграмма, поясняющая формирование ШИМ-сигнала в модуле PWM.