Файл: Микропроцессорные устройства систем управления (Ю.И. Иванов, 2005).pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 16.06.2025
Просмотров: 1573
Скачиваний: 1
5.2.Микроконтроллерная система управления температурой
Вкачестве примера реализации всех необходимых функций управления микроконтроллером AT90S8535 рассмотрим задачу поддержания микро климата в помещении, алгоритм решения которой приведен в главе 1 на рис. 3. Подготовка программы для микроконтроллера требует уточнения некоторых деталей и распределения функций между различными средства ми реализации.
Висходных данных задачи приведены только сведения, необходимые для составления общего алгоритма работы. Будем полагать, что управление охлаждением и подогревом производится независимыми стандартными ло гическими сигналами (1 - включено, 0 - выключено). Контролируемая температура измеряется двумя аналоговыми датчиками, оценка температу ры производится по среднему арифметическому значению их двух выход ных сигналов. Параметры аналоговых сигналов и опорное напряжение АЦП обеспечивают формирование кодов температуры в следующем фор мате: старший байт выходного кода АЦП соответствует значению темпера
туры с точностью до 0,1 °С (например, код 215 (0xd7) - 21,5 °С). Пороговые значения температур следующие: tram=17,0 °C, traax==22,0 °C.
Любая система управления должна содержать средства управления и индикации. В минимальном варианте необходимо производить включение и выключение системы кнопками управления, индикацию состояния сис темы и температуры в помещении. Тестовые режимы для проверки работо способности системы рассматривать не будем, хотя реальная система функции диагностики также должна поддерживать.
Кнопки управления можно подключить к свободным линиям параллель ных портов микроконтроллера с формированием общего сигнала внешнего прерывания по схеме, показанной на рис. 7. Такая схема позволяет при не обходимости подключить к "этому сигналу внешнего прерывания и другие
Пуск |
|
_х_ |
-> РВ1 |
_/1 |
-> РВ2 |
Стоп Ж |
Ж |
-» PD2 |
Рис. 7. Схема подключения кнопок управления
цепи. При обработке сигналов кнопок необходимо программно определить приоритеты сигналов при одновременном нажатии обеих кнопок ("защита от дурака"). Можно также указать, что в этой задаче применение алгоритма "антидребезга" необязательно, так как первое же замыкание кнопки пере-
104
водит систему в соответствующий режим. Последующие замыкания кон тактов будут только подтверждать команду перехода в этот режим.
Для индикации можно применять стандартные семисегментные индика торы, так как требуется отображение цифровых кодов температуры. Инди кация режима работы тоже может выполняться этими индикаторами. Вы ключением индикации можно отображать режим "Стоп", а включенная ин дикация температуры может отображать режим "Пуск". Для индикации со стояния "подогрев", "охлаждение" можно использовать соответствующие сигналы управления.
Управление цифровыми индикаторами через параллельные порты воз можно, но нецелесообразно: индикация каждой цифры требует отдельного байта управления. Рациональнее байты управления для индикации переда вать через последовательный интерфейс SPI во внешние регистры, а с их выходов в параллельном формате управлять индикаторами (рис. 8).
RG |
|||
/ |
/ |
||
D1 |
Out |
||
CP |
HI/ / |
||
MOSI |
Out |
Load
CP
SCK
Рис. 8. Схема управления индикаторами
О
U
Регистры индикаторов - стандартные однобайтовые регистры сдвига D1-D3 с входом последовательной записи In, тактовыми импульсами по следовательной записи SC, сигналом управления для вывода в параллель ном формате СР и параллельными выходами, к которым подключены циф ровые индикаторы. Выходные сигналы MOSI интерфейса SPI, работающе-
105
го в режиме master, поступают на вход In регистра D1, тактовые импульсы SCK - на входы тактирования последовательной записи SC всех регистров.
Алгоритм вывода должен обеспечивать последовательную выдачу трех байтов управления индикаторами, передача байтов должна начинаться с младшего разряда кода температуры. После трех циклов работы интерфей са SPI первый байт будет записан в регистре D3, второй байт - в регистpeD2 и третий байт - в регистре D1. Для выдачи принятого трехбайтового кода в индикаторы необходимо программно выполнить передачу сигнала Load, который интерфейсом SPI не формируется.
На следующем этапе необходимо выбрать средства микроконтроллера для реализации необходимых функций управления и определить их пара метры и режимы работы. Первое, что требуется оценить, достаточны ли программно-аппаратные ресурсы микроконтроллера для решения задачи? Предварительная оценка времени, требуемого для выполнения всех необ ходимых функций, - единицы миллисекунд (блок-схема алгоритма на рис. 3 позволяет определить ориентировочное число команд программы: от не скольких сот до 1 - 2 тысяч). Если ресурсы недостаточны, может потребо ваться применение других, более сложных средств. Тепловая инерцион ность помещений с постоянными времени десятки и более секунд обычно не предъявляет особых требований к быстродействию. Алгоритм управле ния не требует выполнения каких-либо сложных операций преобразования данных, поэтому можно сделать вывод о достаточных функциональных возможностях микроконтроллера для решения данной задачи.
Мало того, предварительная оценка быстродействия микроконтроллера и инерционности объекта управления показывает, что имеет смысл искус ственно увеличить интервалы времени для контроля температуры. Это по зволяет и обеспечить эффективное управление, и резервировать ресурсы микроконтроллера для решения дополнительных задач. Выберем перио дичность запуска функций управления, равной 1 с. Такая периодичность практически не повлияет на эффективность управления температурной (те пловые постоянные времени объекта управления на 1-2 порядка выше), обеспечит необходимую оперативность и наглядность отображения темпе ратуры на индикаторе и достаточно просто реализуется с помощью тайме ров микроконтроллера.
Дополнительного уточнения также требуют пороговые значения темпе ратуры tmin и tmax . Для единственного порогового значения и для включе ния, и для выключения, весьма вероятен режим, при котором в каждом очередном цикле контроля будет производиться переключение сигнала управления (включение-отключение-включение-отключение и т.д.). Если ввести гистерезис (различные пороговые значения для включения tj и вы ключения t2), такой режим постоянных переключений станет маловероят ным. Разность пороговых значений выберем ±1°С, тогда tmaxi=23,0 °C; tmax2=21,0°C; ^1=16,0 °С; tmin2=18,0°C.
106
Выберем тактовую частоту микроконтроллера, которая определяется внешними частотозадающим элементами и может лежать в диапазоне 0 - 8 МГц. Типичное значение тактовой частоты - 4 МГц. Ввод аналоговых сиг налов от датчиков температуры будем производить через АЦП микрокон троллера, используя входы порта А: РАО - датчик 1, РА1 - датчик 2. Пере ключение входов АЦП программное с помощью регистра мультиплексора ADMUX. В байте управления АЦП необходимо определить режим одно кратного преобразования с программным запуском, разрешение прерыва ния и тактовую частоту с коэффициентом деления 32. Выходной код АЦП будем преобразовывать в однобайтовый формат и передавать для дальней шей обработки вектором прерывания АЦП. Сразу же можно выбрать линии ввода-вывода для передачи сигналов управления: РА7 - управление охлаж дением, РА6 - управление подогревом. Таким образом, в порте А две ли нии должны настраиваться на ввод (датчики) и две линии - на вывод (сиг налы управления).
Интерфейс SPI также требует выбора параметров настройки для регист ра управления SPCR. Управление интерфейсом также будем производить через его вектор прерывания с заданием режима master, порядка формиро вания байта данных при выводе, параметров сигнала SCK и его частоты. Высокая скорость передачи данных не требуется, поэтому выберем коэф фициент деления для тактовой частоты интерфейса - 16. Интерфейс пере дает выходные сигналы через РВ5 (MOSI), PB7 (SCK). Для сигнала управ ления индикацией (Load) выберем РВО. Эти три бита порта В должны быть настроены на вывод данных с заданием пассивного высокого уровня сигна ла.
Алгоритм вывода кодов индикации через интерфейс SPI должен вклю чать преобразование байтов кода температуры в коды индикации трех де сятичных цифр с десятичной точкой после второй цифры. Управление ин дикаторами требует формирования специальных кодов для каждой деся тичной цифры. Эти коды индикации можно хранить в FLASH, а для вывода кодов индикации выполнять программное преобразование трех десятичных цифр температуры в три байта кодов управления индикаторами с помощью констант из FLASH. Первым в интерфейсе SPI должен поступать код инди кации младшей цифры, после вывода третьего кода индикации необходимо программно сформировать сигнал управления на РВО.
Для обработки сигналов от кнопок управления используем внешнее пре рывание INTO. Определим режим формирования этого запроса прерывания в регистре MCUCR по падающему фронту сигнала PD2 и разрешение этого прерывания в регистре GIMSK. Вектор прерывания должен анализировать состояния сигналов РВ1 и РВ2, определяя выполняемую операцию управ ления (Пуск, Стоп). Для реализации этих функций необходимо задать ре жим ввода на PD2, РВ1 и РВ2 с обязательным формированием пассивного высокого уровня. Если кнопки не замкнуты, на всех этих входах - высокий
107
уровень сигнала, при нажатии любой кнопки - низкий уровень на PD2 и выводе порта В, к которому подключена нажатая кнопка (рис. 7)
Запуск функций управления с периодичностью 1 с можно производить таймером 0, используя его вектор прерывания по переполнению. Макси мальный период для этого прерывания зависит от коэффициента деления тактовой частоты: t=1024*256/4uc=65,536 мс. Увеличение периода до тре буемой величины можно выполнить программно, запуская функции управ ления каждым 16-м вызовом вектора прерывания таймера, тогда период T=16*t=l,05 с. Необходимым дополнением алгоритма обработки прерыва ния становится счетчик количества прерываний, с помощью которого и оп ределяется номер текущего прерывания.
Функциональная схема системы управления температурой с указанным распределением функций в микроконтроллере AT90S8535 приведена на рис. 9.
1 |
V П> |
РАО |
РА7 |
> |
cool |
V |
||
/ |
/ |
|||||||
- 5 *7 > |
РА1 |
РА6 |
>i |
heat |
? |
|||
REF |
AREF |
М с и |
||||||
AT90S8535 |
||||||||
Пуск |
MOSI I |
Блок |
I |
|||||
1 |
у |
РВ1 |
РВ5 |
|||||
1 |
индикации |
|||||||
РВ2 |
||||||||
1 Стоп 2 |
РВ7 |
SCK |
8 |
|||||
2£ |
Load |
|||||||
РВО |
||||||||
PD2
Рис. 9. Функциональная схема системы управления температурой
Аналоговые сигналы двух датчиков температуры поступают на входы РАО, РА1 микроконтроллера через согласующие усилители. Эти усилители выполняют масштабирование выходных сигналов датчиков и при необхо108
димости ограничение спектра сигналов для снижения уровня помех и по вышения точности преобразования в цифровой код. Вместе с прецизион ным источником опорного напряжения (REF) эти усилители определяют диапазон измеряемой температуры и значения кодов на выходе АЦП мик роконтроллера. В соответствии с погрешностями дискретизации АЦП точ ность формирования сигналов всеми аналоговыми устройствами должна быть на уровне 0,1-0,2 %.
Усилители сигналов управления РА6, РА7 должны формировать сигна лы cool, heat с требуемыми параметрами, преобразуя стандартные логиче ские сигналы на выходах микроконтроллера. В зависимости от характери стик сигналов управления эти усилители могут содержать ключи на бипо лярных или полевых транзисторах, ключи с электромагнитными реле или твердотельные реле. Кнопки управления и блок индикации показаны ранее на рис. 7, 8.
Взаимодействие устройств микроконтроллера при выполнении всех ука занных функций достаточно эффективно обеспечивается применением сис темы прерываний. Отдельные элементы задачи управления могут быть описаны в форме подпрограмм для векторов прерываний и подпрограмм для реализации некоторых дополнительных функций. Логическая органи зация программы микроконтроллера стандартна, программа состоит из следующих элементов: описание векторов прерываний, инициализация всех используемых компонентов микроконтроллера, комплекс подпро грамм для реализации всех необходимых функций. Вызов подпрограмм производится соответствующими аппаратными средствами микроконтрол лера.
В режиме Стоп все функции системы управления отключены, аппарат ные и программные средства в состоянии покоя, микроконтроллер может выполнять какие-нибудь другие функции. При нажатии кнопки "Пуск" подпрограммой вектора внешнего прерывания запускается первый цикл управления температурой и таймер 0 для выполнения повторных циклов контроля с периодом около 1 с. Каждый цикл контроля начинается с запус ка АЦП, по его вектору прерывания вводится код текущей температуры. Код температуры поступает в интерфейс SPI для управления индикацией и одновременно на программную обработку с реализацией алгоритма управ ления, приведенного на рис. 3. После завершения этих функций, которые загружают процессор в течение единиц миллисекунд, выполнение алго ритмов управления приостанавливается до повторного запуска цикла тай мером 0. Нетрудно показать, что задача управления требует менее 1% об щего времени работы процессора.
Работа системы управления может быть прервана на любом этапе нажа тием кнопки "Стоп", подпрограмма вектора внешнего прерывания должна остановить работу всех используемых средств: АЦП, таймера 0, через SPI
109