4. Программное обеспечение контроллера
4.1. Разработка алгоритмов обработки данных контроллером
Программное обеспечение системы можно разделить на две группы:
– управляющие программы передающей аппаратуры - контроллера сбора и передачи телемеханической информации;
– программа компьютера.
Программа контроллера ждет сигнала ее вызова с диспетчерского пункта. Пока нет вызовов программа следит за состоянием датчиков пожара, затопления и охранным датчиком. Если от них приходит сигнал, то происходит вызов диспетчерского пункта и сообщается о причине вызова. Как только приходят четыре гудка на модем на пункте учета тепловой энергии, программа отправляет диспетчеру запрос на пароль и следит за состоянием линии связи, чтобы не потерять данные. По приходу пароля его сравнивают с тем, который зашит в ПЗУ данного контроллера и если сравнение прошло успешно, то диспетчер получает доступ к данным на теплосчетчике. Если пароль неверный - модем “кладет трубку” и система возвращается в начальное состояние. Для синхронизации передачи используется асинхронный старт-стоповый режим передачи информации.
Программа компьютера осуществляет прием информационных байтов с пункта учета тепловой энергии и их анализ. По результату анализа данные в удобном для пользователя виде выводятся на экран монитора. Данные также могут быть сохранены в базе данных, в которой хранятся абсолютно все параметры измерений. В программе есть диспетчер регулярного опроса, который по таймеру включается (например: ночью) и автоматически опрашивает все пункты учета тепловой энергии и заносит результаты измерений в базу данных. Существует интерфейсный блок, т.н. монитор данных. Он включает в себя блок статистического анализа, блок мониторинга в режиме реального времени, блок управления модемом, блок формирования отчетов. Блок статистического анализа позволяет производить логические и математические операции над поступившими данными. Блок мониторинга позволяет увидеть в реальном времени поступающие данные и мгновенные их значения. Блок управления модемом позволяет посылать на него различные команды, с помощью которых осуществляется дозвон до пункта учета тепловой энергии и передача данных. В блоке формирования отчетов по заданному образцу создается отчет, который при желании можно вывести на принтер.
4.2. Разработка программного обеспечения
Программа AVR-микроконтроллера - это размещенная в памяти программ последовательность команд, каждая из которых состоит из двоичных кодов операций и двоичных адресов операндов.
Система команд AVR-микроконтроллеров включает команды арифметических и логических операций, команды передачи данных, команды, управляющие последовательностью выполнения программы, и команды операций с битами. Для удобства написания и анализа программ всем операциям из системы команд, кроме двоичного кода, сопоставлены мнемокоды ассемблера (символические обозначения операций), которые используются при создании исходного текста программы.
Специальные программы-трансляторы затем переводят символические обозначения в двоичные коды.
По исходному тексту программы, написанной на языке ассемблера, можно определить время ее исполнения и объем программной памяти, необходимый для ее хранения. Программирование на языке ассемблера является прекрасным средством для того, чтобы прочувствовать архитектуру микроконтроллера и логику его работы. Этому также способствует то обстоятельство, что трансляторы с языка ассемблера распространяются фирмой Атмел бесплатно и доступны всем желающим.
Кроме языка ассемблера, для программирования встраиваемых микропроцессоров широкое распространение получили языки программирования высокого уровня: С и BASIC. Они предоставляют программисту такой же легкий доступ ко всем ресурсам микроконтроллера, как и ассемблер, но, вместе с тем, дают возможность создавать хорошо структурированные программы, снимают с программиста заботу о распределении памяти данных и содержат большой набор библиотечных функций для выполнения стандартных операций.
Важнейшим достоинством системы команд AVR-микроконтроллеров является то, что она была специально оптимизирована для использования языка С.
Вся энергонезависимая память AVR-микроконтроллеров размещается внутри кристалла и состоит из электрически программируемых FLASH-памяти программ и EEPROM-памяти данных.
Так как все команды AVR представляют собой 16-разрядные слова, FLASH- память организована как последовательность 16-разрядных ячеек и имеет емкость от 512 слов до 64K слов в зависимости от типа кристалла.
Во FLASH-память, кроме программы, могут быть записаны постоянные данные, которые не изменяются во время функционирования микропроцессорной системы. Это различные константы, таблицы знакогенераторов, таблицы линеаризации датчиков и т.п.
Достоинством технологии FLASH является высокая степень упаковки, а недостатком то, что она не позволяет стирать отдельные ячейки. Поэтому всегда выполняется полная очистка всей памяти программ. При этом гарантируется, как минимум 1000 циклов перезаписи FLASH-памяти AVR.
EEPROM блок электрически стираемой памяти AVR предназначен для хранения энергонезависимых данных, которые могут изменяться непосредственно на объекте. Это калибровочные коэффициенты, различные установки, конфигурационные параметры системы. EEPROM-память имеет меньшую емкость (от 64 байт до 4К байт), но имеет возможность побайтной перезаписи ячеек, которая может происходить как под управлением внешнего процессора, так и под управлением собственно AVR-микроконтроллера во время его работы по программе.
В энергонезависимой памяти AVR имеется несколько специализированных битов [7].
LOCK-биты (LB1, LB2) предназначены для защиты программной информации, содержащейся во FLASH-памяти. Возможные режимы защиты перечислены в таблице 4.1. Запрограммировав биты защиты, стереть их можно лишь во время очистки FLASH -памяти, которая уничтожает и всю программу.
Таблица 4.1
Режимы защиты программы
Состояние Lock-бит | |||
Режим | LB1 | LB2 | Тип защиты |
1 | 1 | 1 | Защита отсутствует |
2 | 0 | 1 | Запрет программирования Flash |
3 | 0 | 0 | Запрет как программирования, так и чтения Flash. |
FUSE-биты позволяют задавать некоторые конфигурационные особенности микроконтроллера (см. таблицу 4.2).
Микроконтроллеры AT90S1200 имеют FUSE-биты SPIEN и RCEN. Все остальные типы classicAVR конфигурируются при помощи FUSE-битов SPIEN и FSTRT. MegaAVR имеют четыре FUSE-бита: SPIEN, SUT0, SUT1 и EESAVE.
Три энергонезависимых Signature-байта служат для идентификации типа кристалла, программируются на фабрике и доступны только для чтения.
Таблица 4.2
Назначение FUSE-битов
Fuse-бит (значение по умолчанию) | Значение | Режим работы AVR |
0 | AVR тактируется внутренним RC-генератором. (работа AVR без каких-либо внешних элементов) | |
RCEN (1) | 1 | Тактирование при помощи внешнего кварцевого резонатора или генератора. |
0 | Разрешение последовательного программирования через SPI интерфейс | |
SPIEN (0) | 1 | Запрещение последовательного программирования через SPI интерфейс |
0 | Задержка старта AVR после сброса ~ 0.25мс | |
FSTRT (1) | 1 | Задержка старта AVR после сброса ~ 16 мс |
00 | Задержка старта AVR после сброса ~ 5 мс | |
01 | Задержка старта AVR после сброса ~ 0.5 мс | |
SUT 0/1 (11) | 10 | Задержка старта AVR после сброса ~ 4.0мс |
11 | Задержка старта AVR после сброса ~ 16 мс | |
0 | EEPROM не стирается во время цикла очистки энергонезависимой памяти | |
EESAVE (1) | 1 | EEPROM стирается во время цикла очистки энергонезависимой памяти |
Разнообразные способы программирования AVR-микроконтроллеров обеспечивают простой и удобный доступ к внутренней энергонезависимой памяти во всех возможных ситуациях программирования кристалла.
Для энергонезависимых FLASH и EEPROM блоков AVR предусмотрены параллельный и последовательный способы программирования, которые выполняются под управлением внешнего процессора, а для EEPROM-памяти также возможен способ программной перезаписи под управлением AVR. LOCK-биты могут программироваться как параллельно, так и последовательно. FUSE-биты у младших моделей AVR могут программироваться только последовательно, а у старших - и параллельно, и последовательно.
Параллельное программирование энергонезависимой памяти использует большое число выводов микроконтроллера и выполняется на специальных программаторах. Такое программирование удобно, когда при массовом производстве необходимо "прошивать" большое количество кристаллов.
Последовательное программирование может выполняться прямо в микропроцессорной системе (In System Programming) через последовательный SPI-интерфейс, который использует всего четыре вывода AVR-микроконтроллера. Эта новая возможность является очень важной, так как позволяет обновлять программное обеспечение в уже функционирующей микропроцессорной системе.
... менее 10 м вод. ст. Для ЦТП принимается располагаемый напор 25 м, при непосредственном присоединении систем отопления ≥ 5 м. Строится линия потерь давления в подающей магистрали. В закрытых системах теплоснабжения она является зеркальным отображением пьезометрической линии обратной магистрали. В открытых системах потери давления в подающей линии больше потерь давления в обратной линии из-за ...
... у абонента, который всегда может быть сдросселирован. 2.2 Тепловой расчет толщины изоляционного материала Одним из способов повышения эффективности работы системы теплоснабжения промышленного предприятия является снижение потерь тепла при транспортировке теплоносителя к потребителям. В современных условиях эксплуатации потери тепла в сетях составляют до 20.. 25% годового отпуска тепла. При ...
... схема подогревателей ГВС с независимым подключением системы отопления Таблица 2.1 – Обозначение к Рис.2.1,Рис.2.2 2.1 Тепловой и гидравлический расчет пластинчатых водонагревателей Схема подключения водонагревателей горячего водоснабжения в закрытых системах теплоснабжения выбирается в зависимости от соотношения максимального теплового потока на горячее водоснабжение и максимального ...
... 18 62,77 8 211 41,15 9 32,15 9 Туалет 29,99 6 23,99 10 Всего 426,06 105 321,06 Финансовый анализ показал, что проведение энергосберегающих мероприятий позволяет сократить величину денежных затрат на использование тепловой энергии в системе теплоснабжения исследуемых помещений. Если рассчитывать по пропорции, что 426,06 грн. можно сэкономить за весь отопительный сезон (152 дня), ...
0 комментариев