Диссертация (1152184), страница 28
Текст из файла (страница 28)
Выбор аппаратных средств СКУДпредприятия должен быть оправданным, особенно это касается электронных166идентификаторов. При внедрении СКУД на крупном предприятии необходимовыдать тысячи (часто десятки тысяч) пропусков, и ошибка в выборе их типа будеточень трудно исправима.Микроконтроллер Atmel AVR ATMega2560 взаимодействует с турникетомчерез цифровые входы/выходы, для этого используется 7 из 54 доступных.Необходимоотметить,чтоцифровыеразъемыиспользуютсятакжеподключаемыми платами расширения, например, модулем ethernet shield. Вопрос опитании микроконтроллера является неоднозначным и в настоящее время широкодискутируется в технических обсуждениях [81]. Экспериментальным путемвыбрано наилучшее значение напряжения – 9В DC. Так как в схеме обычноприсутствует реле, требующее 5В DC, и установлен только один преобразовательнапряжения с 12В DC на 5В DC вольт, то приходится подключать микроконтроллерк источнику с напряжением 12В DC (к основному блоку питания, передпреобразователем).
Опыт эксплуатации показал, что система при этом работаетстабильно, перегрева и зависаний не наблюдается. Так как микроконтроллеррасположен в непосредственной близости от основного блока питания, к кабелю непредъявляется никаких особых требований. При подключении турникета,напротив, рекомендуется применять для подачи напряжения кабель сечением неменее 1,5 мм. На рисунке 45 представлен алгоритм управления турникетом с точкизрения микроконтроллера.Как видно из рисунка 45, процесс управления турникетом представляетсобой вечный цикл while (true) {}.
По команде открытия на вход или выход(id =1 или id=2) турникет открывается на 5 секунд (настраиваемый параметр). Еслив течение этих 5 секунд будет получен сигнал о повороте планок (факт прохода),то турникет закроется немедленно при получении такого сигнала. Управлениепроизводится в потенциальном режиме работы турникета, для открытиянеобходимо подать -12В (землю) на соответствующий управляющий контакт.Для связи микроконтроллера Atmel AVR ATMega2560 с центральнымсервером по протоколу UDP используется плата ethernet shield w5100.167НетФлаг доступноститурникета = trueПоступил ключ отсчитывателяНетДаНетДаНажата кнопкаОтправка ключана микроэвмчерез uart3ДаПо uart3 Полученакоманда для турникетаНетДаОтправкаинформации намикроэвм черезuart3Флагдоступноститурникета = falseИдентификаторкомандыidid=1id=2id=3Включение запретаприема ключей,открытие турникетана вход или выходВключениезапрета приемаключей,сигнал о запретепроходаНетПрошло 5 секундИли получен сигналпроворотаОтключениезапрета приемаключейДаЗакрытиетурникета,отключениезапрета приемаключей,Флагдоступноститурникета = falseРисунок 45 – Алгоритм процесса управления турникетомМежду микроконтроллером и турникетом желательно устанавливать реле.Данная плата работает весьма нестабильно, что связано с реализацией библиотекEthernet.h и EthernetUdp.h (стек TCP/IP реализован программно), но аналогипоказывают еще худшие результаты.
Для реагирования на зависания используетсямеханизм watchdog [116], который срабатывает, если в течение 8 секунд168микроконтроллер не получил UDP-пакет определенного содержания с основногосервера (контрольный пакет). Данная реализация оказалась достаточно стабильной,зафиксирован uptime 47 дней, за этот период через турникет было совершено 48234прохода.Централизованная архитектура программного обеспечения СКУД при всехсвоих достоинствах имеет значительный недостаток – отсутствие возможностиавтономнойработы.недостаточностьЭтотидругиефункциональностинедостаткиудаленного(невозможностьмониторинга,илиудаленногообновления программного обеспечения контроллера, удаленной перезагрузки)связаны, прежде всего, с аппаратными ограничениями микроконтроллера AtmelAVR ATMega2560.
К его недостаткам также можно отнести невозможностьустановки полноценной операционной системы, отсутствие функциональноститаймеров, потоков при разработке программного обеспечения. Удешевлениеновогопоколениямикрокомпьютеровпризначительномповышенииихтехнических характеристик и качества позволило автору диссертации и егоколлегам начать разработку программного обеспечения СКУД в распределеннойархитектуре.В качестве микрокомпьютера был выбран Orange pi one [60]. Операционнаясистема – Ubuntu 16.04.2 LTS, mainline kernel [113].
Согласно техническойдокументации, данный микрокомпьютер работает с напряжением 3,3В нацифровых разъемах, вследствие чего требуется использовать конвертеры уровней(5В / 3,3В). Соединять таким способом микрокомпьютер с микроконтроллеромвесьма неудобно, в схеме появляются дополнительные элементы и контактныеплощадки. Многие микрокомпьютеры имеют в своем составе цифровые порты снедокументированной возможностью подачи напряжения 5В (5V tolerant ports).Orange pi one был изучен автором диссертации на предмет такой возможности дляпорта uart3. Выяснилось, что разъем tx допускает подачу напряжения 5В (является5V tolerant), а разъем rx – нет.
Несмотря на то, что такая схема подключенияофициально не рекомендована производителем микрокомпьютера, она оказаласьпригодной для промышленной эксплуатации.169Распределенная архитектура программного обеспечения СКУД – это неальтернатива централизованной, а скорее ее развитие, улучшенный вариант.Необходимо соблюсти баланс – с одной стороны, информация для принятиярешения о допуске должна быть максимально актуальной, а с другой стороныСКУД должна быть автономной, в идеале полностью.
Попытка достичь этогоидеала ведет к необходимости создания инфраструктуры репликации в режимереального времени между КИС предприятия и контроллерами СКУД, чтодостаточно затруднительно в реализации. Более того, некоторый функционалСКУД предприятия вступает в противоречие с концепцией полной автономности.В качестве примера можно привести функционал запрета двойного прохода(antipassback) и функционал просмотра журнала СКУД в режиме реальноговремени.Поэтому для обеспечения автономности контроллер использует базу данных,актуализируемую данными КИС предприятия каждую ночь. Автономная базаданных используется контроллером только в случае потери связи с центральнымсервером КИС предприятия.Микрокомпьютер Orange pi one под управлением операционной системыUbuntu 16.04.2 LTS позволяет выполнять программный код, написанный на языкеC#.
Это достигается посредством интерпретатора mono [39]. На данный моментиспользуется версия 5.0.0, установка производится согласно документации [40].При этом выполнение запросов к MS SQL серверу с использованием хранимыхпроцедур работает стабильно и с минимальными настройками. Таким образом, приразработке новой версии СКУД удалось сохранить преемственность архитектур ииспользовать существующие наработки, сделанные на C#.
Это являетсяреализацией развиваемого в диссертации подхода, при котором разработкамодернизированного и программного обеспечения является наименее затратной.На рисунке 46 представлена структурно-логическая схема СКУД, реализованной враспределенной архитектуре программного обеспечения.Как видно из рисунка 46, функции считывания ключей, управлениятурникетом, получения информации для принятия решения о допуске и другие170функциибылиразнесенывосновноммеждудвумяустройствами–микроконтроллером Atmel AVR ATMega2560 и микрокомпьютером Orange pi one.Рисунок 46 – Структурно-логическая схема ядра СКУДПри всех своих достоинствах операционная система Linux не являетсясистемой реального времени (RTS) и не может эффективно решить задачу171приоритезации прерываний в user space [115]. Такие попытки предпринимались, идаже с некоторым положительным результатом, но при этом нельзя говорить остабильности и надежности системы [84].
Однопоточность Atmel AVRATMega2560 в данном случае является плюсом и обеспечивает то, что в моментсрабатыванияпрерыванийгарантированновыполнитсяпрограммныйкодобработчика.Более того, использование отдельного устройства для считывания ключей иуправления турникетом за счет модульности делает систему более гибкой, удобнойв обслуживании и отладке, дополнительно защищает микрокомпьютер от высокихдля него напряжений (более 3,3В). Механизм работы с прерываниями на Orange pione под linux с использованием C# на сегодняшний день даже в англоязычной частиинтернет очень слабо изучен и освещен, поэтому нет объективных причинрисковать надежностью и стабильностью работы СКУД, тем более, что стоимостьмикроконтроллера Atmel AVR ATMega2560 сравнительно невысока.
В любомслучае работы в этом направлении будут продолжены, более того, уже сейчас естьрезультаты, позволяющие говорить о том, что задача работы с прерываниямиOrange pi one с целью считывания карт доступа будет решена [15].Отметим, что в данной реализации более нет необходимости использоватьплаты расширения Ethernet shield для микроконтроллера, поскольку намикрокомпьютере присутствует порт RJ45.В процессе разработки программного обеспечения для микроконтроллераAtmel AVR ATMega2560 необходимо каждый раз при выпуске новой версиипроизводить запись программного обеспечения в микроконтроллер. Сделать этоудаленно весьма непросто [37], в особенности при большом количестве устройстви их территориальнойразнесенности. Для решения этой проблемы намикрокомпьютер может быть установлена среда разработки Arduino IDE.Соединив микрокомпьютер и микроконтроллер кабелем usb, разработчики получатвозможностиудаленногообновленияпрограммногомикроконтроллере и выполнения удаленной отладки.обеспеченияв172ПриработеСКУДкоммуникациямеждумикроконтроллеромимикрокомпьютером происходит по порту uart3.
Сборка Ubuntu 16.04.2 LTS сmainline kernel [113] на данный момент категорируется как экспериментальная, вдереве устройств отключены все порты uart, кроме нулевого (системная консоль).Длявключенияостальныхпортовuartнеобходимопроизвестиправкусоответствующего файла dtb. Файл для редактирования может быть полученпосредством команды “dtc -I dtb -O dts -o board.dts /boot/dtb/board.dtb” [87].
Даннаякоманда производит декомпиляцию файла дерева устройств. В выходной файлнеобходимо внести правки согласно Приложению А.После внесения правок и сохранения файла необходимо произвести егокомпиляцию посредством команды «dtc -I dts -O dtb -o /boot/dtb/board.dtb board.dts»[89]. Затем микрокомпьютер следует перезагрузить и проверить доступность,например, uart3 командой «cat /dev/ttyS3».Необходимопомнитьоразниценапряженийцифровыхмикроконтроллера и микрокомпьютера: при организации коммуникациипортовпортуuart3 использование делителя напряжения является обязательным.
Как видно изрисунка 45, от микроконтроллера на микрокомпьютер поступает информация особытиях предъявления пропусков и нажатии кнопок на пульте. В обратнуюсторону (от микрокомпьютера к микроконтроллеру) поступают команды наоткрытие турникета на вход или выход и команды звуковой сигнализации в случае,если проход запрещен. Микрокомпьютер Orange pi one с операционной системойUbuntu 16.04.2 LTS предоставляет широкие возможности для разработкипрограммного обеспечения.