www.diagram.com.ua
www.diagram.com.ua

Русский: Русская версия English: English version

Translate it!

+ Поиск по всему сайту
+ Поиск по журналам
+ Поиск по статьям сайта
+ Поиск по каталогу схем
+ Поиск по схемам СССР
+ Поиск по Библиотеке

ВСЕ СТАТЬИ А-Я

БЕСПЛАТНАЯ БИБЛИОТЕКА
ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ
СПРАВОЧНИК
АРХИВ СТАТЕЙ

НОВОСТИ НАУКИ И ТЕХНИКИ, НОВИНКИ ЭЛЕКТРОНИКИ

ФОРУМЫ
ВАШИ ИСТОРИИ ИЗ ЖИЗНИ
ОБРАТНАЯ СВЯЗЬ
ОТЗЫВЫ О САЙТЕ

КАРТА САЙТА

Бесплатная техническая библиотека РАЗДЕЛЫ БЕСПЛАТНОЙ ТЕХНИЧЕСКОЙ БИБЛИОТЕКИ:
Архив и лента новостей
Книги и сборники
Технические журналы
Архив статей и поиск
Схемы и сервис-мануалы
Электронные справочники
Русские инструкции
Радиоэлектронные и электротехнические устройства

СКАЧАЙТЕ БЕСПЛАТНО:

ЭНЦИКЛОПЕДИЯ РАДИОЭЛЕКТРОНИКИ И ЭЛЕКТРОТЕХНИКИ БЕСПЛАТНО:
Автомобиль
Автомобильные электронные устройства
Аккумуляторы, зарядные устройства
Акустические системы
Альтернативные источники энергии
Антенны
Антенны КВ
Антенны телевизионные
Антенны УКВ
Антенные усилители
Аудио и видеонаблюдение
Аудиотехника
Блоки питания
Бытовая электроника
Бытовые электроприборы
Видеотехника
ВЧ усилители мощности
Галогенные лампы
Генераторы, гетеродины
Гирлянды
Гражданская радиосвязь
Детекторы напряженности поля
Дозиметры
Дом, приусадебное хозяйство, хобби
Зажигание автомобиля
Заземление и зануление
Зарядные устройства, аккумуляторы, батарейки
Защита электроаппаратуры
Звонки и аудио-имитаторы
Измерения, настройка, согласование антенн
Измерительная техника
Индикаторы, датчики, детекторы
Инструмент электрика
Инфракрасная техника
Кварцевые фильтры
Компьютерные интерфейсы
Компьютерные устройства
Компьютерный модинг
Компьютеры
Личная безопасность
Люминесцентные лампы
Медицина
Металлоискатели
Микроконтроллеры
Микрофоны, радиомикрофоны
Мобильная связь
Модернизация радиостанций
Модуляторы
Молниезащита
Музыканту
Начинающему радиолюбителю
Ограничители сигнала, компрессоры
Освещение
Освещение. Схемы управления
Охрана и безопасность
Охрана и сигнализация автомобиля
Охрана и сигнализация через мобильную связь
Охранные устройства и сигнализация объектов
Переговорные устройства
Передатчики
Передача данных
Предварительные усилители
Преобразователи напряжения, выпрямители, инверторы
Применение микросхем
Пускорегулирующие аппараты люминесцентных ламп
Работа с CAD-программами
Радиолюбительские расчеты
Радиолюбителю-конструктору
Радиоприем
Радиостанции портативные
Радиостанции, трансиверы
Радиоуправление
Разная бытовая электроника
Разные компьютерные устройства
Разные узлы радиолюбительской техники
Разные устройства гражданской радиосвязи
Разные электронные устройства
Разные электроустройства
Регуляторы мощности, термометры, термостабилизаторы
Регуляторы тембра, громкости
Регуляторы тока, напряжения, мощности
Сварочное оборудование
Светодиоды
Синтезаторы частоты
Смесители, преобразователи частоты
Спидометры и тахометры
Справочник электрика
Справочные материалы
Стабилизаторы напряжения
Студенту на заметку
Телевидение
Телефония
Теория антенн
Техника QRP
Технологии радиолюбителя
Технология антенн
Трансвертеры
Узлы радиолюбительской техники
Усилители мощности
Усилители мощности автомобильные
Усилители мощности ламповые
Усилители мощности транзисторные
Усилители низкой частоты
Устройства защитного отключения
Фильтры и согласующие устройства
Цветомузыкальные установки
Цифровая техника
Часы, таймеры, реле, коммутаторы нагрузки
Электрику
Электрику. ПТЭ
Электрику. ПУЭ
Электрические схемы автомобилей
Электрические счетчики
Электричество для начинающих
Электробезопасность, пожаробезопасность
Электродвигатели
Электромонтажные работы
Электронный впрыск топлива
Электропитание
Электроснабжение
Электротехнические материалы

СТАТЬИ БЕСПЛАТНО:
Батарейки и аккумуляторы
Большая энциклопедия для детей и взрослых
Биографии великих ученых
Важнейшие научные открытия
Детская научная лаборатория
Должностные инструкции
Домашняя мастерская
Жизнь замечательных физиков
Заводские технологии на дому - простые рецепты
Инструменты и механизмы для сельского хозяйства
Искусство аудио
Искусство видео
История техники, технологии, предметов вокруг нас
И тут появился изобретатель
Конспекты лекций, шпаргалки
Личный транспорт: наземный, водный, воздушный
Любителям путешествовать - советы туристу
Мобильные телефоны
Моделирование
Опыты по физике
Опыты по химии
Нормативная документация по охране труда
Основы безопасной жизнедеятельности (ОБЖД)
Основы первой медицинской помощи (ОПМП)
Охрана труда
Параметры, аналоги, маркировка радиодеталей
Радио - начинающим
Секреты ремонта
Советы радиолюбителям
Строителю, домашнему мастеру
Справочная информация
Типовые инструкции по охране труда (ТОИ)
Функциональный состав импортных ТВ
Функциональный состав, пульты, шасси, эквиваленты импортных телевизоров
Чудеса природы. Увлекательное путешествие вокруг земного шара
Шпионские штучки
Электрик в доме
Эффектные фокусы и их разгадки

ЖУРНАЛЫ БЕСПЛАТНО:
Блокнот Радиоаматора
Домашний компьютер
Домашний ПК
КВ журнал
КВ и УКВ
Квант
Компьютерра
Конструктор
Левша
Моделист-конструктор
М-Хобби
Наука и жизнь
Новости электроники
Новый Радиоежегодник
Популярная механика
Радио
Радио Телевизия Електроника
Радиоаматор
Радиодело
Радиодизайн
Радиокомпоненты
Радиоконструктор
Радиолюбитель
Радиомир
Радиосхема
Радиохобби
Ремонт и сервис
Ремонт электронной техники
Сам
Сервисный центр
Силовые машины
Схемотехника
Техника - молодежи
Химия и жизнь
ЭКиС
Электрик
Электроника
Юный техник
Юный техник для умелых рук
Я - электрик
A Radio. Prakticka Elektronika
Amaterske Radio
Chip
Circuit Cellar
Electronique et Loisirs
Electronique Pratique
Elektor Electronics
Elektronika dla Wszystkich
Elektronika Praktyczna
Everyday Practical Electronics
Evil Genius
Funkamateur
Nuts And Volts
QEX
QST
Radiotechnika Evkonyve
Servo
Stereophile

КНИГИ СЕРИЙНЫЕ БЕСПЛАТНО:
Библиотека по автоматике
Библиотека электромонтера
Библиотечка Квант
Библиотечка электротехника
Знай и умей
Массовая радиобиблиотека

КНИГИ ПО РАДИОТЕХНИКЕ И ЭЛЕКТРОНИКЕ БЕСПЛАТНО:
Автомобиль
Аппаратура СВЧ
Запись и воспроизведение звука
Ламповая аппаратура
Начинающему радиолюбителю
Охрана и безопасность
Радиолокация, навигация
Радиотехнические технологии
Радиоуправление, моделизм
Робототехника
Схемотехника
Теоретическая электроника, радиотехника
Усилители
Цифровая обработка сигналов
Электроника в быту
Электроника в медицине
Электроника в науке
Электроника для музыканта

КНИГИ ПО РЕМОНТУ БЕСПЛАТНО:
Ремонт аудиотехники
Ремонт бытовая техники
Ремонт видеотехники
Ремонт телевизоров ламповых
Ремонт телевизоров полупроводниковых
Ремонт мониторов
Ремонт оргтехники
Ремонт радиоприемников
Ремонт телефонов и факсов
Спутниковое телевидение
Теория телевидения
Теория ремонта электроники

КНИГИ ПО ИЗМЕРЕНИЯМ БЕСПЛАТНО:
Измерения и метрология
Измерительная аппаратура
Измерительная техника. Схемы и описания

КНИГИ ПО СВЯЗИ БЕСПЛАТНО:
Антенны
Аппаратура любительской радиосвязи
Линии связи, передача данных
Мобильные телефоны
Теория и практика радиосвязи

КНИГИ ПО ЭЛЕКТРИКЕ БЕСПЛАТНО:
Автоматика, автоматизация, управление
Аккумуляторы, элементы питания, зарядные устройства
Альтернативные источники энергии
Источники питания, стабилизаторы, преобразователи
Молниезащита
Осветительная аппаратура
Охрана труда, электробезопасность, пожаробезопасность
Релейная защита
Сварка, сварочное оборудование
Теория электротехники
Устройства телемеханики
Электрику, электромонтажнику, электромеханику
Электрические сети, воздушные и кабельные линии
Электродвигатели
Электрооборудование
Электропривод
Электростанции, подстанции
Электротехнические справочники
Энергетика, электроснабжение

СБОРНИКИ БЕСПЛАТНО:
В помощь радиолюбителю
Радиоаматор-лучшее
Радиоежегодник

СПРАВОЧНИКИ БЕСПЛАТНО:
Зарубежные микросхемы и транзисторы
Измерительная техника. Схемы и описания
Медицинская аппаратура
Механизмы импортной аудио и видеоаппаратуры
Прошивки зарубежной аппаратуры
Пульты ДУ импортных телевизоров
Радиокомпоненты Atmel
Радиокомпоненты Cirrus Logic
Радиокомпоненты Maxim
Радиокомпоненты Microchip
Радиокомпоненты Mitsubishi
Радиокомпоненты Motorola
Радиокомпоненты National Semiconductor
Радиокомпоненты Panasonic
Радиокомпоненты Philips
Радиокомпоненты Rohm
Радиокомпоненты Samsung
Радиокомпоненты Sharp
Радиокомпоненты Sony
Радиокомпоненты Toshiba
Соответствие моделей и шасси телевизоров
Строчные трансформаторы HR
Строчные трансформаторы Konig

СХЕМЫ И СЕРВИС-МАНУАЛЫ БЕСПЛАТНО:
Бытовая техника Beko
Бытовая техника Braun
Бытовая техника Candy
Бытовая техника Elenberg
Бытовая техника Elica
Бытовая техника Gorenje
Бытовая техника Hansa
Бытовая техника Merloni
Бытовая техника SEB
Бытовая техника Snaige
Бытовая техника Stinol
Бытовая техника Universal
Бытовая техника Whirpool

Зарубежные DVD-плееры
Зарубежные автомагнитолы
Зарубежная аудиоаппаратура
Зарубежные видеокамеры
Зарубежные видеомагнитофоны и видеоплееры
Зарубежные мониторы
Зарубежные моноблоки
Зарубежные телевизоры
Зарубежные телефоны
Зарубежные факсы

Мобильники Benq-Siemens
Мобильники Eastcom
Мобильники Ericsson
Мобильники Fly Bird
Мобильники LG
Мобильники Maxon
Мобильники Mitsubishi
Мобильники Motorola
Мобильники Nokia
Мобильники Panasonic
Мобильники Pantech
Мобильники Samsung
Мобильники Sharp
Мобильники Siemens
Мобильники Sony-Ericsson
Мобильники TCL
Мобильники Voxtel

Отечественные телевизоры
Отечественная аудиоаппаратура

Справочники по вхождению в режим сервиса

Схемы блоков питания импортных телевизоров и видеотехники

Телевизоры Avest
Телевизоры Beko
Телевизоры, аудио, видеотехника Elenberg, Cameron, Cortland
Телевизоры Erisson
Телевизоры Rainford
Телевизоры Roadstar
Телевизоры Rolsen
Телевизоры Vestel
Телевизоры Витязь
Телевизоры Горизонт
Телевизоры Рекорд
Телевизоры Рубин

Станки металлообрабатывающие
Электроинструмент Bocsh
Электроинструмент Makita

БЕСПЛАТНЫЙ АРХИВ СТАТЕЙ
(150000 статей в Архиве)

АЛФАВИТНЫЙ УКАЗАТЕЛЬ СТАТЕЙ:
Библиотечка Квант указатель
Библиотека по автоматике указатель
Библиотека электромонтера указатель
Библиотечка электротехника указатель
Блокнот Радиоаматора указатель
В помощь радиолюбителю указатель
Знай и умей указатель
Массовая радиобиблиотека указатель
КВ и УКВ указатель
КВ журнал указатель
Квант указатель
Конструктор указатель
Моделист-конструктор указатель
Наука и жизнь указатель
Новости электроники указатель
Новый Радиоежегодник указатель
Популярная механика указатель
Радио указатель
Радиоаматор указатель
Радиоаматор-лучшее указатель
Радиоежегодник указатель
Радиодело указатель
Радиодизайн указатель
Радиокомпоненты указатель
Радиоконструктор указатель
Радиолюбитель указатель
Радиомир указатель
Радиосхема указатель
Радиохобби указатель
Ремонт и сервис указатель
Ремонт электронной техники указатель
Сам указатель
Сервисный центр указатель
Силовая электроника указатель
Схемотехника указатель
Техника - молодежи указатель
Химия и жизнь указатель
ЭКиС (Электронные компоненты и системы) указатель
Электрик указатель
Электроника указатель
Юный техник указатель
Я - электрик указатель

СПРАВОЧНИК БЕСПЛАТНО

ПАРАМЕТРЫ РАДИОДЕТАЛЕЙ БЕСПЛАТНО

ДАТАШИТЫ БЕСПЛАТНО

ПРОШИВКИ БЕСПЛАТНО

РУССКИЕ ИНСТРУКЦИИ БЕСПЛАТНО


Стол заказов СТОЛ ЗАКАЗОВ:

СХЕМЫ ПОД ЗАКАЗ:
Импортные DVD
Импортные автоаудио
Импортные аудио
Импортные видеокамеры
Импортные видеомагнитофоны
Импортные кондиционеры
Импортные мониторы
Импортные моноблоки
Импортные проекторы
Импортные СВЧ-печи
Импортная спутниковая аппаратура
Импортные стиральные машины
Импортные телевизоры
Импортные телефоны
Импортные факсы
Импортные фотоаппараты
Импортные холодильники

Отечественные автоаудио
Отечественные видеомагнитофоны
Отечественные магнитофоны
Отечественные мониторы
Отечественные приборы
Отечественные радиолы
Отечественные радиоприемники
Отечественные усилители
Отечественные цветные телевизоры
Отечественные черно-белые телевизоры
Отечественные электрофоны


Бонусы БОНУСЫ:

НА ДОСУГЕ:
Интерактивные флеш-игры
Игры он-лайн
Ваши истории
Знаете ли Вы, что...
Зрительные иллюзии
Веселые задачки
Каталог Вивасан
Палиндромы

ИСТОРИИ ИЗ ЖИЗНИ

ССЫЛКИ

ДОБАВИТЬ В ЗАКЛАДКИ

Оставить отзыв о сайте

ДИАГРАММА
© 2000-2017

Дизайн и поддержка:
Александр Кузнецов

Техническое обеспечение:
Михаил Булах

Программирование:
Данил Мончукин

Маркетинг:
Татьяна Анастасьева

Перевод:
Наталья Кузнецова

Контакты

При использовании материалов сайта обязательна ссылка на http://www.diagram.com.ua

сделано в Украине
сделано в Украине

Диаграмма. Бесплатная техническая библиотека

Бесплатная техническая библиотека Бесплатная техническая библиотека Как скачивать файлы с сайта? Как скачивать файлы с сайта? Добавить в закладки, оставить отзывДобавить в закладки, оставить отзыв

Энциклопедия радиоэлектроники и электротехники. Большая подборка статей со схемами, иллюстрациями, комментариями Энциклопедия радиоэлектроники и электротехники

Бесплатная библиотека / Схемы радиоэлектронных и электротехнических устройств

Проектируем устройства на микроконтроллерах

Энциклопедия радиоэлектроники и электротехники / Микроконтроллеры

Комментарии к статье Комментарии к статье

Между первоначальным замыслом создания устройства на базе микроконтроллера (МК) и разработкой его программы есть важный этап - составление блок-схемы алгоритма. О нем нередко забывают или, что еще хуже, им пренебрегают. Программирование ведется "эвристически", по существу, - методом проб и ошибок. Результат - кое-как работающая громоздкая программа, не до конца понятная даже ее создателю, и плохо поддающаяся модернизации. Однако давно известны и используются программистами достаточно простые методы, позволяющие, начав со словесной формулировки алгоритма, грамотно спроектировать его блок-схему. Профессиональные интересы автора статьи лежат в области разработок на МК серии Z8, но излагаемый им материал в равной мере относится и к МК других типов.

Взаимодействие любой МК-системы с оператором и объектом управления можно представить показанной на рис. 1 схемой [1]. В общем случае объект управления снабжен исполнительными устройствами и датчиками. Человек-оператор воздействует на МК с помощью задающих устройств и получает информацию о состоянии объекта из показаний устройств индикации. Первые представляют собой переключатели, кнопки, переменные резисторы, вторые - световые (в том числе графические и буквенно-цифровые) индикаторы, звукоизлучающие и другие сигнальные устройства.

Проектируем устройства на микроконтроллерах

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

Методика проектирования систем на МК [2, 3] включает в себя постановку и анализ задачи, ее инженерную интерпретацию, разработку блок-схемы алгоритма и текста прикладной программы. В подобных системах максимальное число функций стремятся возложить именно на программные средства. От эффективности их реализации зависят в конечном счете требуемый объем памяти, быстродействие и надежность работы системы в цепом. Конечно, предстоит еще разработка принципиальной схемы и самой конструкции изделия, но их мы коснемся лишь в мере, необходимой для разработки программы МК.

Постановка задачи - это словесная формулировка требований к проектируемой системе. Прежде всего описывают ее назначение, характеристики объекта управления, датчиков, индикаторов, исполнительных и задающих устройств. Далее следует подробно рассказать о желательном поведении системы во всех возможных ситуациях, в том числе "нештатных". Ни в коем случае нельзя полагаться на безошибочные действия оператора. Например, услышав аварийный сигнал, он вполне может вместо предписанной кнопки "СТОП" нажать на кнопку "СТАРТ" или беспорядочно нажимать на все кнопки подряд. Конечно, все подобные ситуации предвидеть невозможно, но к этому нужно стремиться. Обязательно следует задать численные значения параметров проектируемой системы.

Вначале задачу формулируют, как правило, "на уровне пользователя". Например, исходное задание на разработку системы управления вентилятором может звучать так: "Включать и выключать вентилятор, регулировать интенсивность воздушного потока и изменять его направление (вытяжка/нагнетание)". Инженерный анализ сведет эту задачу к управлению скоростью и направлением вращения привода вентилятора - электродвигателя постоянного тока. Поскольку мощность выходных сигналов МК заведомо недостаточна для непосредственного управления двигателем, между ними придется установить специальное устройство-драйвер, формирующее сигналы нужной мощности, а задача, решаемая МК. ограничится подачей управляющих воздействий на драйвер.

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

Предположим, что будет применен интегральный драйвер электродвигателя постоянного тока LMD18200 фирмы National Semiconductor. Типовая схема его включения показана на рис. 2. Он содержит мост из мощных МОП-транзисторов, в диагональ которого включают двигатель.

Проектируем устройства на микроконтроллерах

Управляют драйвером с помощью трех логических сигналов. На вход PWM (Pulse Width Modulation - широтно-импульсная модуляция, ШИМ) подают прямоугольные импульсы, от отношения длительности которых к периоду повторения (коэффициента заполнения) зависит частота вращения двигателя. Логическим уровнем сигнала на входе DIR (direction - направление) задают полярность напряжения, подаваемого на двигатель, следовательно, направление его вращения. Установив уровень лог. 1 на входе BR (brake - тормоз), двигатель останавливают, причем, если в это время на входе PWM лог. 0, цепь питания двигателя окажется просто разомкнута, в противном случае выводы двигателя будут еще и соединены между собой, что обеспечит экстренное торможение.

В драйвер встроены два датчика. Один из них генерирует ток, вытекающий из вывода CUR (current - ток) и пропорциональный току двигателя с коэффициентом 377 мкА/А. Выход датчика температуры TF (Thermal Flag - флаг температуры) - дискретный с открытым коллектором. Он переходит в состояние лог. 0. если кристалл драйвера нагрелся выше 145 °С.

Сформулируем требования к устройству управления электродвигателем вентилятора, а по существу, - драйвером двигателя.

Устройство управления должно быть снабжено кнопками, нажимая на которые оператор (пользователь) сможет включать и выключать двигатель, изменять направление, увеличивать и уменьшать частоту его вращения. Должна быть предусмотрена индикация направления вращения двигателя световыми сигналами разного цвета и звуковая сигнализация об аварии (перегреве или перегрузке).

После подачи напряжения питания устройство должно, не включая двигатель, ожидать команду, задающую направление вращения. Ее получение следует подтвердить световым сигналом. По команде "ПУСК" двигатель должен быть включен и начать вращаться в заданном направлении со средней частотой (коэффициент заполнения сигнала PWM = 0.5). По командам "МЕДЛЕННЕЕ" и "БЫСТРЕЕ" коэффициент заполнения должен соответственно уменьшаться или увеличиваться, не выходя за пределы 0.2... 1. Команда "СТОП" должна немедленно останавливать двигатель, после чего его можно вновь запустить, подав команду "ПУСК".

В случае превышения допустимого значения потребляемого тока, что может быть следствием, например, механического заклинивания вала двигателя, последний нужно выключить и подать прерывистый звуковой сигнал частотой 1000 Гц в виде коротких посылок (длительность их и пауз между ними 1 с). При перегреве микросхемы необходимо остановить двигатель и подать звуковой сигнал длинными посылками (длительность посылок и пауз 2 с). Звуковая сигнализация должна оставаться включенной до тех пор. пока оператор не подаст команду "СТОП", возвращающую устройство в исходное состояние. До подачи такой команды оно не должно реагировать ни на какие другие.

Уже на этом этапе следует абстрагироваться от подробностей, несущественных для разработки программы МК. Например, в данном случае не имеет значения то. что объект управления (двигатель) служит приводом вентилятора, от направления его вращения зависит тип вентиляции(вытяжная или приточная), а от частоты - интенсивность потока воздуха. Более того, разрабатывая алгоритм, можно вообще забыть о двигателе и его драйвере, сосредоточившись на формировании управляющих сигналов PWM. DIR, BR и обработке сигналов датчиков CUR и ТЕ.

Анализируя сформулированную задачу, желательно сразу выявить некоторые проблемы, которые неизбежно проявят себя на следующих этапах. Например, должна ли система реагировать на команду "ПУСК", если направление вращения предварительно не задано? Если да. то в каком направлении должен вращаться двигатель в подобном случае? Должны ли сохраняться заданные частота и направление вращения после остановки и повторного пуска двигателя? А после устранения аварийной ситуации? На все подобные вопросы необходимо ответить как можно раньше.

Исходя из словесного описания, составляют списки входных и выходных сигналов МК. В первый из них включают команды, подаваемые оператором, и сигналы датчиков: "ВЫТЯЖКА". "НАГНЕТАНИЕ". "ПУСК". "БЫСТРЕЕ". "МЕДЛЕННЕЕ". "СТОП". "ПЕРЕГРУЗКА" (CUR). "ПЕРЕГРЕВ" (TF). Во второй -сигналы управления драйвером двигателя и индикаторами: PWM - частота вращения. DIR - направление вращения, BR - выключить двигатель. G -включить зеленый светодиод. Y -включить желтый светодиод. S - звук.

С учетом сказанного можно сделать предварительный вывод о том. что требуется МК. имеющий не менее 14 выводов для подключения внешних цепей (восемь входов и шесть выходов). Поскольку сигнал CUR - аналоговый, понадобится компаратор для сравнения показаний датчика с допустимым значением и формирования логического сигнала "ПЕРЕГРУЗКА". Поэтому предпочтителен МК. снабженный встроенным компаратором. Пригодна, например, минимальная 18-выводная модификация МК серии Z86. Самый дешевый вариант - микросхема. Z86E02. Пока это все. что касается аппаратной части устройства. Распределение входных и выходных сигналов по выводам МК на данном этапе несущественно.

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

Пример графа автомата приведен на рис. 3.

Проектируем устройства на микроконтроллерах

Состояния изображены узлами (вершинами) графа. В данном случае их четыре: А. В. С и D. Вершины соединены дугами, снабженными стрелками, показывающими направление перехода, над дугой указывают событие Xi, вызывающее данный переход, а под ней - набор Yi выходных сигналов, формируемых автоматом в этот момент и не изменяющихся до следующего перехода. Теоретически из каждой вершины графа должно выходить ровно столько дуг. сколько возможно различных внешних воздействий на автомат. Если некоторое событие не изменяет состояния автомата, соответствующую дугу показывают входящей в ту же вершину, из которой она вышла. Однако, чтобы не загромождать чертеж, на практике оставляют только те из подобных дуг. с которыми связаны изменения выходных сигналов. Например, из графа, показанного на рис. 3. можно удалить дуги А-А и В-В. На обычном языке это означает, что автомат в состояниях А и В на событие Х3 не реагирует.

События, воздействующие на автомат, реализуемый в виде программы МК. бывают не только "прямыми", вызванными изменениями логических уровней сигналов, подаваемых на внешние выводы МК, но и "косвенными". К последним относят, например, определенный результат сравнения вычисленного и заданного значений некоторого параметра или завершение какой-либо длительной операции. Грань между прямыми и косвенными событиями иногда провести трудно. Скажем, такое распространенное событие, как срабатывание встроенного в МК таймера, можно считать косвенным, если фиксировать его. анализируя число, находящееся в соответствующем регистре, или прямым, реагируя на сигнал, генерируемый таймером по окончании счета. Выходные сигналы тоже могут быть косвенными, не изменяющими непосредственно логические уровни на выходах МК. Нередко при переходах между состояниями автомата лишь присваивают определенные значения переменным программы.

Возвращаясь к решаемой задаче, построим граф автомата управления двигателем. Анализируя задание, можно выделить следующие состояния:

  • НАЧАЛО - устанавливается немедленно после включения питания. Выполняются необходимые начальные действия - задаются исходные значения переменных программы и выходных сигналов, настраиваются периферийные устройства. После этого автомат переходит в состояние СТОП1 (хороший пример перехода по косвенному событию - завершению инициализации);
  • СТОП 1 - автомат входит в него по завершении инициализации или выйдя из аварийной ситуации. Выходит по командам, задающим направление вращения двигателя:
  • СТОП2 - автомат ожидает команду "ПУСК";
  • РАБОТА - основное состояние, устройство генерирует сигнал PWM. Выход по команде "СТОП" или по сигналам аварийных датчиков;
  • ПЕРЕГРЕВ. ПЕРЕГРУЗКА - состояния, в которые автомат переходит из состояния РАБОТА в результате срабатывания соответствующих датчиков. Двигатель выключен, устройство генерирует звуковые сигналы. Выход - только по команде "СТОП".

Построенный граф показан на рис. 4.

Проектируем устройства на микроконтроллерах

Нетрудно заметить, что невозможно изменить случайно заданное неверное направление вращения, не включив, а затем выключив двигатель. К тому же, чтобы запустить его, всегда требуется подать две команды - направления и пуска. Отказавшись от команды "ПУСК", можно исключить состояние СТОП2. а дуги команд "НАГНЕТАНИЕ" и "ВЫТЯЖКА" направить непосредственно в состояние РАБОТА. В результате на пульте управления станет одной кнопкой меньше, освободится один вход МК. а двигатель будет включаться сразу же после нажатия любой из кнопок, задающих направление. Строго говоря, на любое изменение заданного алгоритма управления нужно получить согласие заказчика или будущего пользователя устройства. Но в любительской практике заказчик, исполнитель и пользователь нередко - одно лицо и достаточно "посоветоваться с самим собой".

Бросается в глаза, что граф не отражает способ формирования сигнала PWM с переменным коэффициентом заполнения. В общем случае это может делать специальное устройство, управляемое от МК. Но мы стремимся все реализовать чисто программным путем, поэтому придется разбить состояние РАБОТА на два. В первом из них (РАБОТАО) PWM=0, ьо втором (РАБОТА 1) - PWM = 1.

Теперь предусмотрим события, вызывающие переходы между ними, - поочередные срабатывания двух таймеров, один из которых задает длительность импульсов PWM, а второй - пауз между ними, причем каждый таймер, сработав, запускает другой. Благодаря тому, что в данном случае "логические" таймеры никогда не работают одновременно, их можно будет реализовать с помощью одного "физического" таймера, программно изменяя его выдержку времени после каждого срабатывания.

Командами "БЫСТРЕЕ" и "МЕДЛЕННЕЕ" регулируют выдержки времени таймеров, оставляя их сумму неизменной и равной заданному периоду повторения импульсов PWM. Реагировать на эти команды автомат может в обоих рассматриваемых состояниях. Однако для упрощения алгоритма допустимо ограничиться реакцией только в одном из них. Благодаря кратковременности этих состояний задержка исполнении останется незаметной оператору.

Еще одно необходимое уточнение - проверка допустимости значений выдержек времени. Согласно заданию, коэффициент заполнения сигнала PWM. равный Т1/(Т1+Т0). где Т1 и Т0 - выдержки времени таймеров, должен всегда оставаться в интервале 0,2... 1. Поэтому после каждой команды изменения скорости автомат должен переходить в состояние ПРОВЕРКА и только из него возвращаться в состояние РАБОТА по одной из двух дуг. Первая соответствует положительному результату проверки, при переходе по ней устанавливаются новые значения выдержек. Вторая - результат отрицательный, действовавшие ранее выдержки остаются неизменными.

Продолжая анализировать граф, обращаем внимание, что состояния ПЕРЕГРЕВ и ПЕРЕГРУЗКА различаются только периодом повторения звукового сигнала. Их неплохо объединить в одно, назвав его АВАРИЯ. Звуковой сигнал S можно генерировать с помощью двух таймеров, подобно рассмотренному выше сигналу PWM. Более того, желательно использовать тот же самый "физический" таймер, который в этом состоянии остается безработным.

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

Разработанный граф автомата управления двигателем показан на рис. 5.

Проектируем устройства на микроконтроллерах

Обратите внимание, что словесные формулировки выполняемых действий заменены присваиванием определенных значений переменным. Например, вместо фразы "включить желтый светодиод" указано Y = 1 и уточнено, что зеленый светодиод следует выключить, G = 0. Кроме упоминавшихся ранее выходных сигналов и выдержек таймеров, введены константа Т-период повторения импульсов PWM и переменная N - число импульсов S, оставшихся до завершения формируемого интервала звукового сигнала.

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

На рис. 6 типовая блок-схема управляющего алгоритма представлена в самом общем виде. После инициализации программа работает циклически. Проанализировав переменную состояния, она в каждом цикле выполняет соответствующую процедуру. Изменение состояния автомата отображается присваиванием нового значения переменной состояния, в результате в следующем цикле будет выполнена другая процедура.

Проектируем устройства на микроконтроллерах

Процедуры, реализующие каждое из состояний автомата, строят по блок-схемам, аналогичным показанной на рис. 7. Прежде всего анализируют внешние воздействия (события). Далее процесс делят на столько ветвей, сколько дуг выходит из соответствующей вершины графа автомата, в каждой из них предусмотрено выполнение функций, необходимых для реализации данного перехода, в заключение присваивают переменной состояния значение, равное номеру вершины, в которую направлена дуга. Возможен и другой подход: сначала реализуют дуги, входящие в вершину, а затем реагируют на воздействия. Его основной недостаток - программа должна "знать", из какого состояния автомат перешел в данное, чего не требовалось в предыдущем случае.

Проектируем устройства на микроконтроллерах

Обратите внимание, что на рис. 7 показаны два возможных варианта выхода из процедуры-состояния. В первом - события анализируются циклически, пока не будет обнаружено одно из них, вызывающее выход из данного состояния. Во втором - если ни одного из таких воздействий нет. процедура завершается, как показано штриховой линией.

Если внешних воздействий немного и реакция на них в каждом состоянии специфична, процедуры обнаружения событий включают в блоки обработки состояний. Например, проверять, нажата ли кнопка "ПУСК", можно только в том состоянии, в котором автомат должен на это реагировать. Часто процедуру фильтрации событий выносят в главный цикл (на рис. 6 она показана штриховой линией) и предусматривают переменную, которой присваивают значение, однозначно связанное с произошедшим событием. Например, результат опроса клавиатуры - код нажатой клавиши. В блоке обработки состояния, выполненном по второму из рассмотренных выше вариантов, лишь анализируют значение этой переменной.

В отличие от теоретической модели реальные события нередко происходят одновременно. В подобной ситуации автомат должен прежде всего прореагировать на событие, имеющее наивысший приоритет. Простейший способ задать приоритеты - выбрать правильную последовательность анализа событий. Например, согласно блок-схеме, показанной на рис. 7, высший приоритет у события Х1. низший - у ХЗ. Если высокоприоритетные события происходят значительно чаще имеющих низкий приоритет, очередь до последних может никогда не дойти. Во избежание этого редким событиям следует отдавать наивысшие приоритеты. Иногда распределение последних приходится изменять в процессе работы программы, например, помещая каждое только что обработанное событие в конец очереди.

Непредсказуемое поведение системы на МК часто объясняется помехами или дребезгом контактов органов управления. Подобные ложные события необходимо "отсеивать" с помощью программных фильтров. Чаще всего для признания события свершившимся достаточно убедиться, что логический уровень сигнала на соответствующем входе МК оставался неизменным в течение определенного времени. В ответственных случаях применяют и более сложные процедуры.

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

Аппарат приоритетных векторных прерываний выполняемой программы предусмотрен в подавляющем большинстве МК. Прерывания могут быть как внешними, так и внутренними. В последнем случае вход запроса прерывания не имеет внешнего вывода, а соединен с источником запросов, находящимся непосредственно на кристалле МК. Обычно предусмотрены внутренние прерывания не только от таймера, но и от других встроенных в данный МК устройств: контроллеров последовательных портов, компараторов аналоговых сигналов, аналого-цифровых преобразователей.

Нередко одно из внутренних прерываний современных МК связано с так называемым сторожевым таймером (Watch Dog), служащим для защиты от случайных сбоев. Этот таймер требует постоянной

инициализации путем записи определенного кода в определенную ячейку адресного пространства. Программу МК строят таким образом, чтобы при ее нормальном ходе такая процедура выполнялась достаточно часто. Если МК "завис", инициализация сторожевого таймера прекращается и через некоторое время он подает свой запрос прерывания, обработка которого призвана восстановить нормальную работу системы. Как правило, реакция на прерывание от сторожевого таймера такая же. как на внешний сигнал, устанавливающий МК в исходное состояние.

Прерываниями управляют, разрешая или запрещая их в зависимости от состояния реализуемого автомата. Если одно и то же прерывание в разных состояниях необходимо обрабатывать по разному, процедуру обработки строят подобно главному циклу программы, предусматривая в ней анализ состояния. Отличие состоит в том. что такую процедуру не замыкают в кольцо. Завершив ее, МК продолжит выполнять программу с того места, где она была прервана. Это чревато сбоями, так как в изменившемся в результате обработки прерывания состоянии продолжение прерванных действий может дать неправильный результат. Защищаются от подобных ошибок, запрещая прерывания на время выполнения критических участков программного хода, что. несомненно, замедляет реакцию системы.

Если источников запросов прерываний в системе больше предусмотренных для них входов МК, аппаратно реализуют групповой запрос, объединяя выходы нескольких источников по схеме ИЛИ. Приняв такой запрос. МК обязан выяснить кто его послал и соответствующим образом обработать.

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

Разработанная с учетом изложенного блок-схема алгоритма управления электродвигателем вентилятора состоит из двух частей, изображенных на рис. 8 (главный цикл) и рис. 9 (обработка прерывания от таймера). Обе они соответствуют в основном рассмотренным выше типовым блок схемам, за исключением того, что объединены одинаковые операции, выполняемые при обработке разных событий. Обработчик прерывания от таймера формирует сигналы PWM и S. При переходе из состояния СТОП в состояние РАБОТА прерывание разрешается, а при возврате в состояние СТОП - запрещается.

Проектируем устройства на микроконтроллерах

В программе появилась переменная состояния ST, которой для наглядности присваиваются строковые значения - названия соответствующих состояний. Как говорилось выше, в программе это будут числа - номера состояний или их символические имена. Значения, присваиваемые переменной N0, выбраны исходя из предположения, что периоды повторения формируемых импульсов PWR и S одинаковы и равны 1 мс. Если это не так. блок-схему придется немного изменить.

Проектируем устройства на микроконтроллерах

Теперь можно переходить к выбору МК, распределению входных и выходных сигналов по его выводам и разработке полной принципиальной схемы устройства. Определив, с какими внешними цепями будут соединены разряды того или иного порта ввода/вывода МК, и логические уровни, сигналов в этих цепях, программист может приступать к разработке программы.

Литература

  1. Франке К. Введение в микро-ЭВМ: Пер. с нем. - М.: Энергоатомиэдат. 1998.
  2. Каган Б. М., Сташин В. В. Основы проектирования микропроцессорных устройств автоматики. - М.: Энергоатомиэдат. 1987.
  3. Сташин В. В., Урусов А. В., Мологоицева О. Ф. Проектирование цифровых устройств на однокристальных микроконтроллерах. - М.: Энергоатомиэдат. 1990.

Автор: М.Гладштейн, г.Рыбинск

Смотрите другие статьи раздела Микроконтроллеры.

Читайте и пишите полезные комментарии к этой статье.

Рекомендуем скачать в нашей Бесплатной технической библиотеке:

журналы Circuit Cellar 1994 (архив за год)

журналы Сам 2001 (архив за год)

книга Присоединение проводников к контактным выводам электрооборудования. Масанов Н.Ф., 1969

книга Измерители параметров транзисторов. Солдатенков С.Г., 1971

статья Микропроцессорный коммутатор аудиосигналов

статья Походный холодильник

справочник Зарубежные микросхемы и транзисторы. Серия B

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

Имя:

E-mail (не обязательно):

Комментарий:

[lol][;)][roll][oops][cry][up][down][!][?]