В статье кратко описывается принцип работы адресно-аналоговых систем охранно-пожарной сигнализации. Приводится функциональная схема и описание работы адресного расширителя — одного из устройств, применяющихся в адресных системах. Ставится задача о необходимости исследования характеристик микроконтроллеров для выбора оптимального варианта использования в составе устройства. Проводится анализ микроконтроллеров и обосновывается выбор конкретного варианта.
Ключевые слова: микроконтроллер, адресный расширитель, охранно-пожарная сигнализация, многокритериальная задача, линейная свёртка критериев.
Адресно-аналоговые системы охранно-пожарной сигнализации (ОПС) в настоящее время получили широкое распространение, благодаря главному их преимуществу — место возникновения тревожной ситуации определяется с точностью до устройства в адресной линии. Работа таких систем предполагает использование определенных протоколов взаимодействия между адресными устройствами (АУ) и приемно-контрольными приборами (ПКП). Реализация протокола и других алгоритмов адресных устройств должна быть выполнена с использованием соответствующих электронных компонентов, а именно микроконтроллеров.
В качестве примера АУ рассмотрим так называемый адресный расширитель. Адресный расширитель представляет собой часть модульного ПКП ОПС. Данное устройство предназначено для контроля состояния активных безадресных извещателей. Информационный обмен с центральным прибором адресной системы, контроллером линии связи (КЛС) осуществляется по адресной линии связи (АЛС). Часть схемы, к которой подключаются безадресные охранные и пожарные извещатели, обозначим как входы расширителя. Функциональная схема расширителя приведена на рисунке 1.
Рис. 1. Функциональная схема адресного расширителя
Из приведенной выше схемы видно, что что к клеммам расширителя будут подключаться следующие узлы:
‒ АЛС (к КЛС);
‒ извещатели ОПС;
‒ внешний источник питания.
Напряжение, поступающее от ДПЛС (клеммы +/-BW1,2), проходит через защитные цепи и изолятор короткого замыкания в линии (выход — BW_IN). Затем, идёт на обработку схемой приёмника АЛС, который совместно с аппаратными возможностями микроконтроллера (компараторы, SPI-интерфейс) выделяет из сигнала принимаемые байты. Здесь же требуется проверять уровень напряжения в ДПЛС, используя для этого аналоговый вход микроконтроллера (один канал аналого-цифрового преобразователя, АЦП). Завершив прием информации, микроконтроллер должен сформировать «ответ» и переслать его в КДЛ посредством схемы «передатчика ДПЛС» (в этом также участвуют компараторы и SPI-интерфейс). Кроме того, напряжение BW_IN должно идти и на «Преобразователь напряжения 3,3 В», который обеспечивает питание микроконтроллера, а также ограничительное напряжение 3,3 В защитным диодам в «Схеме входов».
«Схема входов» напрямую соединяется с клеммами подключения извещателей (+/- IN1..IN4). Питание входов осуществляется «Преобразователем напряжения 27 В», на вход которого через «Ключ выбора источника питания входов» подаётся напряжение цепи BW_IN либо напряжение со «схемы резервирования питания». Ключ выбора источника питания входов управляется микроконтроллером (один цифровой выход).
Также микроконтроллер выполняет управление индивидуальными для каждого входа расширителя ключами, находящимися в схеме «Входов», через «Шину управления питанием входов» (четыре цифровых выхода микроконтроллера). Это обеспечит сброс и подачу питания на каждый из входов. Аналоговый сигнал на входах расширителя подаётся на вход микроконтроллера и с помощью АЦП преобразовывается в цифровой код, на основе которого определяется текущее состояние входов расширителя (четыре канала АЦП). Вычисления ведутся относительно опорного напряжения, формирующегося из схемы «Опорное напряжение», на вход которой поступает подготовленное напряжение питания входов расширителя. Уровень опорного напряжения также нужно контролировать, поэтому измерения уровня аналогового сигнала на опорном напряжении также будет выполняться преобразование посредством АЦП (один канал).
И наконец, клеммы подключения внешнего источника питания (+/-U1, +/-U2), соединяются со «схемой резервирования питания», обеспечивающей напряжением входы от того внешнего источника, где оно больше. Кроме того, нужно контролировать напряжения и на вводах питания, в связи с чем, через «Шину аналоговых сигналов с вводов питания» должны подаваться напряжения на аналоговые входы микроконтроллера (два канала АЦП).
Также, микроконтроллер осуществляет управление светодиодной индикацией (два цифровых выхода) и контроль датчика вскрытия корпуса (один цифровой вход).
Таким образом, на основе представленной функциональной схемы адресного расширителя, сформируем критерии к микроконтроллеру, входящего в состав данного АУ:
‒ Объем памяти программ не менее 32 Кбайт.
‒ Объем оперативной памяти не менее 1 Кбайт.
‒ Объем энергонезависимой памяти не менее 1 Кбайт.
‒ Рабочий диапазон питания от 2,4 В до 3,6 В.
‒ Наличие внутреннего тактового генератора с возможностью выбора частоты работы.
‒ Наличие модуля SPI.
‒ Наличие двух модулей компараторов с выводом их входов и выходов на внешние цепи.
‒ Наличие не менее восьми каналов АЦП.
‒ Наличие не менее четырех таймеров.
‒ Минимальные размеры корпуса.
‒ Приемлемая цена.
В результате рассмотрения множества микроконтроллеров, было выделено 13 микроконтроллеров [2, 3, 4], удовлетворяющих заданным требованиям (таблица 1).
Таблица 1
Характеристики микроконтроллеров
№п/п |
Наименование |
Рабочий диапазон напряжения |
Память программ, Кб |
ОЗУ, Кб |
EEPROM, байт |
Выводы, шт. |
Периферия |
Цена |
|||
Компара-торы, шт. |
Каналы АЦП, шт. |
SPI |
Таймеры, шт. |
||||||||
1 |
PIC32MM0032GPL028 |
2V — 3,6V |
32 |
8 |
0 |
36 |
2 |
12 |
+ |
10 |
$0.91 |
2 |
PIC18(L)F25K40 |
1,8V — 5,5V |
32 |
2 |
256 |
28 |
2 |
24 |
+ |
7 |
$0.94 |
3 |
PIC32MM0064GPL028 |
2V — 3,6V |
64 |
8 |
0 |
28 |
2 |
12 |
+ |
10 |
$1.00 |
4 |
PIC18(L)F26K40 |
1,8V — 5,5V |
64 |
3 |
1024 |
28 |
2 |
24 |
+ |
7 |
$1.02 |
5 |
PIC16F18857 |
1,8V — 5,5V |
56 |
4 |
256 |
28 |
2 |
24 |
+ |
7 |
$1.04 |
6 |
PIC32MM0064GPL036 |
2V — 3,6V |
64 |
8 |
0 |
36 |
2 |
14 |
+ |
10 |
$1.12 |
7 |
ATSAMD20E15 |
1,62V — 3,63V |
32 |
4 |
0 |
32 |
2 |
10 |
+ |
7 |
$1.14 |
8 |
PIC24FJ64GA702 |
2V — 3,6V |
32 |
8 |
0 |
36 |
2 |
12 |
+ |
4 |
$0.91 |
9 |
PIC24FJ128GA702 |
1,8V — 5,5V |
32 |
2 |
256 |
28 |
2 |
24 |
+ |
4 |
$0.94 |
10 |
ATSAMD20E16 |
2V — 3,6V |
64 |
8 |
0 |
28 |
2 |
12 |
+ |
7 |
$1.00 |
11 |
ATSAMD20E17 |
1,8V — 5,5V |
64 |
3 |
1024 |
28 |
2 |
24 |
+ |
7 |
$1.02 |
12 |
ATSAMD20E18 |
1,8V — 5,5V |
56 |
4 |
256 |
28 |
2 |
24 |
+ |
7 |
$1.04 |
13 |
ATxmega32D4 |
2V — 3,6V |
64 |
8 |
0 |
36 |
2 |
14 |
+ |
4 |
$1.12 |
Следующим шагом в выборе микроконтроллера является сравнение объёма занимаемой памяти программ после компиляции типовых функций, используемых для реализации работы расширителя. В качестве тестовых программ были использованы последовательности команд работы с циклами, массивами и указателями разных типов данных (uint8_t, uint16_t, uint32_t).
Тестовые программы описаны на языке Си с использованием официально поддерживаемых среды разработки MPLAB X IDE v.4.01 и компиляторов XC8 v.1.44, XC16 v.1.33, XC32 v.1.44 — для микроконтроллеров PIC, и среды Atmel Studio 7.0 и компилятора gcc — для микроконтроллеров Atmel. Компиляция тестовых программ выполнялась в двух режимах: без оптимизации и с оптимизацией по занимаемой памяти программ.
Результаты проведенного исследования приведены на рисунках 2–7.
Рис. 2. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 8 бит без оптимизации
Рис. 3. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 8 бит с оптимизации по количеству занимаемой памяти программ
Рис. 4. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 16 бит без оптимизации
Рис. 5. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 16 бит с оптимизацией по количеству занимаемой памяти программ
Рис. 6. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 32 бита без оптимизации
Рис. 7. Количество занимаемой памяти микроконтроллеров при работе с числами разрядностью 32 бита с оптимизацией по количеству занимаемой памяти программ
Наличие большого количества входных данных для определения наилучшего варианта ведет к необходимости решения многокритериальной задачи. Таким образом, для определения, какой из микроконтроллеров использовать, была сформулирована многокритериальная задача, решение которой было найдено методом линейной свёртки критериев.
«Решение многокритериальных задач на основе линейной свертки критериев состоит в назначении тем или иным способом неотрицательных (а чаще положительных) коэффициентов (µ1, µ2, … µm), в сумме дающих единицу (хотя это не обязательно), и последующей максимизации линейной комбинации критериев (1) на множестве X» [1, C.75], где fi(x) — целевая функция (критерий), определенная на некотором подмножестве x множества возможных решений (вариантов).
Для решения проблемы многокритериального выбора, когда критерии относятся к разным шкалам и измеряются в различных единицах, «обычно используют прием, который носит название «нормализации критериев», заключающийся в приведении разнотипных критериев к единой шкале. <…> Этот прием заключается в применении к критериям таких монотонных преобразований, которые в той или иной степени «уравнивают» пределы изменения данных критериев. Наиболее распространенным преобразованием данного типа является замена исходного критерия fi на преобразованный критерий вида:
(2)
или
(3)» [1, С.79]
где
yimax и yimax — максимальное и минимальное значения функции fi на множестве X. Значения, таким образом преобразованных критериев, лежат в пределах отрезка [0;1].
Применив описанный выше метод для результатов тестовых программ, получим значения функции свёртки, указанные в последнем столбце итоговой таблицы критериев (Таблица 2).
Таблица 2
Общая таблица критериев
|
Память программ, Кбайт |
ОЗУ, Кбайт |
EEPROM, байт |
Цена, $ |
Значения функции свертки по результатам тестовых программ |
PIC32MM0032GPL028 |
32 |
8 |
0 |
0,91 |
0,544818766 |
PIC18(l)F25K40 |
32 |
2 |
256 |
0,94 |
0,743908423 |
PIC32MM0064GPL028 |
64 |
8 |
0 |
1 |
0,544818766 |
PIC18(L)F26K40 |
64 |
3 |
1024 |
1,02 |
0,743908423 |
PIC16F18857 |
56 |
4 |
256 |
1,04 |
0,431415856 |
PIC32MM0064GPL036 |
64 |
8 |
0 |
1,12 |
0,544818766 |
ATSAMD20E15 |
32 |
4 |
0 |
1,14 |
0,530949144 |
PIC24FJ64GA702 |
64 |
16 |
0 |
1,16 |
0,766278987 |
PIC24FJ128GA702 |
128 |
16 |
0 |
1,23 |
0,766278987 |
ATSAMD20E16 |
64 |
8 |
0 |
1,29 |
0,530949144 |
ATSAMD20E17 |
128 |
16 |
0 |
1,38 |
0,530949144 |
ATSAMD20E18 |
256 |
32 |
0 |
1,63 |
0,530949144 |
ATxmega32D4 |
32 |
4 |
1024 |
1,98 |
0,837342356 |
min |
32 |
2 |
0 |
0,91 |
0,431415856 |
max |
256 |
32 |
1024 |
1,98 |
0,837342356 |
Используя формулы 2 и 3 выполним нормализацию критериев, результат представлен в таблице 3. Значения функции свёртки по результатам тестовых программ обозначим как объём занимаемой памяти программ.
Таблица 3
Нормализованные значения общей таблицы критериев
|
Память программ, Кбайт |
ОЗУ, Кбайт |
EEPROM, байт |
Цена, $ |
Объем занимаемой памяти программ |
PIC32MM0032GPL028 |
0 |
0,2 |
0 |
1 |
0,279368088 |
PIC18(L)F25K40 |
0 |
0 |
0,25 |
0,971963 |
0,769825488 |
PIC32MM0064GPL028 |
0,142857143 |
0,2 |
0 |
0,915888 |
0,279368088 |
PIC18(L)F26K40 |
0,142857143 |
0,033333 |
1 |
0,897196 |
0,769825488 |
PIC16F18857 |
0,107142857 |
0,066667 |
0,25 |
0,878505 |
0 |
PIC32MM0064GPL036 |
0,142857143 |
0,2 |
0 |
0,803738 |
0,279368088 |
ATSAMD20E15 |
0 |
0,066667 |
0 |
0,785047 |
0,24520027 |
PIC24FJ64GA702 |
0,142857143 |
0,466667 |
0 |
0,766355 |
0,824935377 |
PIC24FJ128GA702 |
0,428571429 |
0,466667 |
0 |
0,700935 |
0,824935377 |
ATSAMD20E16 |
0,142857143 |
0,2 |
0 |
0,64486 |
0,24520027 |
ATSAMD20E17 |
0,428571429 |
0,466667 |
0 |
0,560748 |
0,24520027 |
ATSAMD20E18 |
1 |
1 |
0 |
0,327103 |
0,24520027 |
ATxmega32D4 |
0 |
0,066667 |
1 |
0 |
1 |
Приоритеты (коэффициенты линейной свёртки) данных критериев назначим следующим образом (Таблица 4).
Таблица 4
Коэффициенты линейной свёртки
Критерий |
Коэффициент µ |
Память программ |
0,2 |
ОЗУ |
0,1 |
EEPROM |
0,1 |
Цена |
0,33 |
Объем занимаемой памяти программ |
0,27 |
Используя формулу 1, вычислим итоговые значения функции свёртки для каждого предложенного варианта. Результат вычислений представлен на рисунке 8.
Рис. 8. Итоговые значения функции свёртки критериев.
Как видно из графика, наиболее целесообразно использовать микроконтроллер PIC18LF26K40, из преимуществ которого можно выделить большой объем памяти программ, небольшие объемы скомпилированного кода при работе с 8- и 16-разрядными числами, наличие EEPROM и низкую цену.
Таким образом, на основе проведенных исследований и анализа характеристик различных микроконтроллеров, можно сделать вывод о большом разнообразии предложенных на рынке средств для разработки самого разного оборудования, в том числе и устройств ОПС. Однако, стоит учитывать не мало не только технических факторов, которые влияют на выбор.
Литература:
- Ногин В. Д. Линейная свертка критериев в многокритериальной оптимизации / В. Д. Ногин // Искусственный интеллект и принятие решений. — 2014. — № 4. — С. 73–82
- New/Popular 8-bit Microcontrollers Products // microchip.com. URL: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=1012
- New/Popular 16-bit Microcontrollers Products // microchip.com. URL: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=20
- New/Popular 32-bit Microcontrollers Products // microchip.com. URL: http://www.microchip.com/ParamChartSearch/chart.aspx?branchID=211