Ether-C АЛГОРИТМЫ РАБОТЫ КОНТРОЛЛЕРА......................................................................................................... 4 БАЗОВАЯ ПОДСИСТЕМА............................................................................................................................................ 4 Время в контроллере ......................................................................................................................................... 4 Упакованное время ............................................................................................................................................ 4 Неупакованное время ........................................................................................................................................ 4 События базовой подсистемы ........................................................................................................................ 5 МОДУЛЬ СОБЫТИЙ ................................................................................................................................................... 5 Формат событий .............................................................................................................................................. 5 МОДУЛИ ПОРТОВ ВВОДА-ВЫВОДА........................................................................................................................... 5 Работа портов ввода ........................................................................................................................................ 5 Работа портов вывода ..................................................................................................................................... 6 Макросы вывода ................................................................................................................................................ 6 Входы Wiegand ................................................................................................................................................... 6 События модуля ввода...................................................................................................................................... 7 МОДУЛЬ WATCHDOG ............................................................................................................................................... 7 События WatchDog ........................................................................................................................................... 8 МОДУЛЬ СКУД ........................................................................................................................................................ 8 Метки СКУД ...................................................................................................................................................... 8 События СКУД ................................................................................................................................................. 9 ПРОТОКОЛ ДОСТУПА К КОНТРОЛЛЕРУ .................................................................................................... 11 Адресация ......................................................................................................................................................... 11 Надежность связи .......................................................................................................................................... 11 Многобайтовые переменные .......................................................................................................................... 12 ПАРАМЕТРЫ КОНТРОЛЛЕРА .......................................................................................................................... 13 ОБЩИЕ ПАРАМЕТРЫ (ГРУППА 0) ............................................................................................................................ 13 Версия устройства (подгруппа 0).................................................................................................................. 13 Состояние аппаратных джамперов (подгруппа 1) ..................................................................................... 14 Упакованное время (подгруппа 2) .................................................................................................................. 14 Неупакованное время (подгруппа 3)............................................................................................................... 14 СЕТЕВЫЕ ПАРАМЕТРЫ (ГРУППА 1) ......................................................................................................................... 14 Ethernet параметры (подгруппа 0)................................................................................................................. 14 IP параметры контроллера (подгруппа 1) .................................................................................................... 14 ПАРАМЕТРЫ УДАЛЕННЫХ ХОСТОВ (ГРУППА 2) ..................................................................................................... 15 ПАРАМЕТРЫ БЕЗОПАСНОСТИ (ГРУППА 3) .............................................................................................................. 15 Параметры безопасности (подгруппа 0) ...................................................................................................... 15 Криптопрофили (подгруппы 1...8) ................................................................................................................. 15 ПАРАМЕТРЫ МОДУЛЯ ПОРТОВ ВВОДА (ГРУППА 4) ................................................................................................ 16 Версия (подгруппа 0) ....................................................................................................................................... 16 Общие параметры (подгруппа 1) ................................................................................................................... 16 Индивидуальные параметры портов (подгруппы 2…) ................................................................................ 16 ПАРАМЕТРЫ МОДУЛЕЙ RFID (ГРУППА 6) .............................................................................................................. 17 Версия (подгруппа 0) ....................................................................................................................................... 17 Общие параметры (подгруппа 1) ................................................................................................................... 17 Индивидуальные параметры считывателей (подгруппы 2…) .................................................................... 17 ПАРАМЕТРЫ МОДУЛЯ СОБЫТИЙ (ГРУППА 10) ....................................................................................................... 17 Версия (подгруппа 0) ....................................................................................................................................... 17 Общие параметры модуля событий (подгруппа 1)...................................................................................... 18 ПАРАМЕТРЫ МОДУЛЯ ПОРТОВ ВЫВОДА (ГРУППА 11)............................................................................................ 18 Версия (подгруппа 0) ....................................................................................................................................... 18 Таблицы макросов вывода (подгруппы 1,2) ................................................................................................... 18 ПАРАМЕТРЫ МОДУЛЕЙ WATCHDOG (ГРУППА 12) ................................................................................................. 18 Версия (подгруппа 0) ....................................................................................................................................... 18 Индивидуальные параметры модулей (подгруппы 1…) ............................................................................... 18 ПАРАМЕТРЫ МОДУЛЕЙ СКУД (ГРУППА 13) .......................................................................................................... 19 Версия (подгруппа 0) ....................................................................................................................................... 19 Параметры СКУД (подгруппа 1) ................................................................................................................... 19 Индивидуальные параметры модулей (подгруппы 2…(2+КМ-1)) .............................................................. 19 Параметры 16 временных зон (подгруппы (2+КМ)…(2+КМ+16-1)) ......................................................... 20 Список праздников (подгруппа (2+КМ+16)) ................................................................................................. 21 prox@prox.ru www.prox.ru 1 Ether-C ТАБЛИЦА КОДОВ СООБЩЕНИЙ .................................................................................................................... 22 Общие........................................................................................................................................................................22 События ....................................................................................................................................................................22 Модуль СКУД ..........................................................................................................................................................22 Ввод-вывод ...............................................................................................................................................................22 ОБЩИЕ ................................................................................................................................................................... 23 Сообщение «Адрес назначения» ..................................................................................................................... 23 Сообщение «Адрес источника» ...................................................................................................................... 23 Сообщение «Установка адреса хоста» ........................................................................................................ 23 Сообщение «Холостая вставка» ................................................................................................................... 24 Сообщение «Текущее время» .......................................................................................................................... 24 Сообщение «Запись параметров».................................................................................................................. 24 Сообщение «Чтение параметров» ................................................................................................................ 24 СОБЫТИЯ ................................................................................................................................................................ 25 «Установка указателя чтения событий» .................................................................................................... 25 «Чтение указателя чтения событий» .......................................................................................................... 25 «Сообщение о событии»................................................................................................................................. 25 СКУД ..................................................................................................................................................................... 25 Сообщение «Управление состоянием точки доступа» ............................................................................... 25 Сообщение «Запись метки» ........................................................................................................................... 26 Сообщение «Чтение метки» .......................................................................................................................... 27 Сообщение «Удаление метки» ....................................................................................................................... 27 Сообщение «Запрос к хосту о метке» .......................................................................................................... 28 ВВОД-ВЫВОД.......................................................................................................................................................... 29 Сообщение «Запуск макроса вывода» ........................................................................................................... 29 Сообщение «Чтение текущего состояния входов-выходов» ...................................................................... 29 Флаги управления контроллером ................................................................................................................... 29 ВСЯКОЕ ................................................................................................................................................................... 31 Джампер WP и начальное конфигурирование .............................................................................................. 31 РЕАЛИЗАЦИЯ ПРОТОКОЛОВ ETHERNET ................................................................................................... 32 ARP ПРОТОКОЛ ...................................................................................................................................................... 32 ICMP ПРОТОКОЛ .................................................................................................................................................... 32 NBNS (WINS) ПРОТОКОЛ...................................................................................................................................... 32 DHCP ПРОТОКОЛ ................................................................................................................................................... 32 AUTOIP ................................................................................................................................................................... 32 IP/UDP ПРОТОКОЛ ................................................................................................................................................. 32 БЕЗОПАСНОСТЬ СИСТЕМЫ ............................................................................................................................ 34 ПЕРВЫЙ УРОВЕНЬ БЕЗОПАСНОСТИ......................................................................................................................... 34 ВТОРОЙ УРОВЕНЬ БЕЗОПАСНОСТИ ......................................................................................................................... 34 ТРЕТИЙ УРОВЕНЬ БЕЗОПАСНОСТИ.......................................................................................................................... 34 СИСТЕМА КОНТРОЛЯ И УПРАВЛЕНИЯ ДОСТУПОМ (СКУД) .............................................................. 35 Общие понятия и задачи ................................................................................................................................ 35 О ПРАВАХ И ПРАВИЛАХ ДОСТУПА ......................................................................................................................... 36 СПЕЦИФИКАЦИЯ КОНТРОЛЛЕРА ................................................................................................................ 37 ИСПОЛНЕНИЕ STS-407 .......................................................................................................................................... 37 Конструктив STS-407 ..................................................................................................................................... 37 Электрические параметры контроллера ..................................................................................................... 37 СХЕМОТЕХНИКА ПОРТОВ ВВОДА-ВЫВОДА ............................................................................................................ 38 КОНФИГУРАЦИОННАЯ И ТЕСТОВАЯ УТИЛИТА .................................................................................... 39 НЕ ДОДЕЛАНО В ДОКУМЕНТЕ ................................................................................................................................. 39 НАЗНАЧЕНИЕ .......................................................................................................................................................... 39 ОСОБЕННОСТИ ....................................................................................................................................................... 39 СОКРАЩЕНИЯ И ПОНЯТИЯ ..................................................................................................................................... 39 ЗАМЕЧАНИЯ ПО РЕАЛИЗАЦИИ УСТРОЙСТВ ............................................................................................ 40 prox@prox.ru www.prox.ru 2 Ether-C Релиз 01.04.2007............................................................................................................................................... 40 ИСТОРИЯ ................................................................................................................................................................ 41 История документа ........................................................................................................................................ 41 История реализаций устройств .................................................................................................................... 41 КОНТАКТНАЯ ИНФОРМАЦИЯ ........................................................................................................................ 42 ТЕХПОДДЕРЖКА ..................................................................................................................................................... 42 ПРОДАЖИ, ОТГРУЗКА ............................................................................................................................................. 42 prox@prox.ru www.prox.ru 3 Ether-C Алгоритмы работы контроллера Контроллер реализован как базовая подсистема на которую навешиваются дополнительные алгоритмы (программные модули). В конкретном типе контроллера свой набор модулей. Базовая подсистема Базовая подсистема выполняет вспомогательные функции обеспечения и ее работа в основном прозрачна для пользователя. Время в контроллере Все события снабжаются отметкой реального времени. Для этого в контроллере реализованы аппаратные энергонезависимые часы реального времени. Время доступно в виде упакованного времени (используется в датировке событий) и в виде отдельных переменных (при чтении-записи времени). Упакованное время Упакованное время занимает 4 байта и интерпретируется как целое число (unsigned long). Упакованное время рассчитывается из обычного времени по следующему алгоритму: PackedTime = (Second) | (Minutes<<6) | (Hours<<12) | (Day<<17) | (Month<<22) | ((Year2005)<<26). Фактически упакованное время имеет такой формат (MSB…LSB): YYYY.YYMМ : MMDD.DDDH : HHHH.mmmm : mmSS.SSSS. Обычное время из упакованного: Second = (PackedTime) & 0x3F; Minutes = (PackedTime>>6) & 0x3F; Hours = (PackedTime>>12) & 0x1F; Day = (PackedTime>>17) & 0x1F; Month = (PackedTime>>22) & 0x0F; Year = 2005 + ((PackedTime>>26) & 0x7F); Видно, что упакованное время имеет дискрет 1 секунда и диапазон до 2070 года. Контроллер учитывает високосные годы. После 2070 года можно выбрать другое смещение (например 2070 год) но контроллер не сможет учитывать корректно високосные годы. Неупакованное время Существует в виде отдельных параметров Second, Minutes, Hours, DayOfWeek, DayOfMonth, Month, Year. Все переменные в формате однобайтовый BCD. Параметры Second, Minutes, Hours, DayOfWeek считаются от нуля. Day, Month – от 1. Year == 0 соответствует 2000 году. Отдельно существует понятие «день недели». Это однобайтовая переменная с диапазоном 0…6 (ПН…ВС). День недели не рассчитывается на основании даты а выставляется при установке времени и далее изменяется вместе с датой. prox@prox.ru www.prox.ru 4 Ether-C События базовой подсистемы На данный момент определено только одно системное событие – включение питания. Если при включении питания часы оказались сбиты (слишком долго не было питания) то время события будет нулевым. Код события 0x01. Данные события не определены. Модуль событий Всякие изменения в состоянии контроллера называются событиями. Например, изменение состояния входа или изменение состояния логических автоматов модулей СКУД, WDT. Часть событий доступно прикладному ПО верхнего уровня в виде немедленной рассылки хостам и записи в стеке событий. Стек событий – энергонезависимый кольцевой FIFO-буфер. Событие записывается в него если выставлены соответствующие маски записи событий. Стеков событий может быть несколько [смысл: события имеют разную важность, критически важное событие не должно быть затерто многочисленными второстепенными событиями], каждую группу событий независимо можно отнести к своему стеку. Количество и глубина стеков событий в каждом типе контроллеров указана в спецификации на конкретный контроллер. Количество разных типов событий определяется наличием в контроллере программных и аппаратных модулей. Список возможных кодов событий указан в отдельной главе. Формат событий События в системе представляются структурой: Поле Код события Порядковый номер события Данные события Время события Длина байт 1 4, unsigned long 6 4, время Данные Упакованное время Модули портов ввода-вывода Количество и схемотехника портов ввода-вывода указаны в спецификации на конкретное исполнение контроллера. Соответствие маркировки на плате внутренним параметрам указано в описании параметров модулей и в описании команд опроса-записи состояния портов. Те клеммы ввода-вывода что не используются другими программными модулями (СКУД, WatchDog) могут быть использованы для прямого контроля и управления со стороны уполномоченного хоста. Работа портов ввода Входы предусматривают подключение концевиков с одним или двумя оконечными резисторами или без оконечных резисторов. Каждый вход (концевик) может иметь «замкнутое», «разомкнутое» и «аварийное» состояние (под аварийным понимается обрыв или замыкание шлейфа). Рисунок ниже поясняет ситуацию на примере концевика с двумя резисторами. prox@prox.ru www.prox.ru 5 Ether-C Все входы снабжены неотключаемыми фильтрами. Тип фильтра – традиционный равновесный интегрирующий фильтр с гистерезисом. Постоянная времени фильтра – 70…100мс. Не все типы контроллеров поддерживают определение аварийного состояния входа, см. спецификацию контроллеров. Работа портов вывода Вывод реализован через механизм простых макросов. Макрос представляет собой зацикленную последовательность команд «установить 0» и «установить 1» с индивидуальной задержкой. Для каждого выхода сопоставлено два независимых макроса: «постоянный» и «временный». Постоянный макрос выполняется всегда если не задан временный. Временный макрос может быть исполнен однократно; несколько раз; с ограничением по времени; бесконечно. Когда временный макрос прекращает работу снова включается постоянный макрос. Таким образом для каждого выхода можно задать совершенно произвольную циклическую схему переключений (например, морганий светодиода) и при необходимости перекрывать ее другой схемой. Механизм не имеет способов синхронизации исполнения макросов разных выходов друг с другом или с какими либо событиями в контроллере. Однако можно гарантировать что одновременно запущенные макросы не «разбегаются» по временным параметрам. Макросы вывода Все макросы вывода находятся в одном массиве «макрокоманд». Для исполнения макроса задается его начало в виде индекса этого массива. По мере исполнения отдельных макрокоманд индекс увеличивается. По достижении конца макроса исполнение продолжается с начального индекса. Каждая макрокоманда в массиве - один байт которым задаются время исполнения (0127 с шагом 25 мс; биты 7-1) и соответствующее состояние выхода (0 или 1; бит 0). Если время исполнения задано нулевым – это признак конца макроса. Массив макросов разбит на 2 части – постоянную (задана при производстве для внутренних целей) и задаваемую пользователем (см. параметры контроллера). Входы Wiegand Помимо дискретных входов-выходов есть входы интерфейса Wiegand. Они недоступны как дискретные входы. Интерфейс Wiegand предназначен для подключения бесконтактных считывателей систем контроля доступа. Формально параметры интерфейса Wiegand не prox@prox.ru www.prox.ru 6 Ether-C стандартизованы, поэтому потенциально возможна несовместимость с некоторыми типами оборудования. Контроллер корректно воспринимает период следования импульсов от 500 мкс до 7 мс, минимальная длительность импульса 10 мкс. Никаких проверок целостности кода с помощью битов четности не делается, биты четности удаляются из кода. Длина посылки Wiegand может варьироваться от 26 до 42 бит, результирующий код будет иметь длину от 24 до 40 бит. Если полученный код Wiegand длиннее кода метки используемой в контроллере то старшие биты обрезаются. Сейчас контроллер работает с Wiegand длиной 26, 40 и 42 бита. Для 26 и 42 отрезаются первый и последний биты (биты четности). Если вам требуются более полные знания по интерфейсу Wiegand - запрашивайте техподдержку, на этот интерфейс имеется отдельный документ. События модуля ввода События изменения портов ввода имеют коды события: 0x08 – изменение входа 1->0. 0x09 – изменение входа 0->1. 0x0A – изменение входа ошибка->норма. 0x0B – изменение входа норма->ошибка. Данные события: Поле Номер входа Не используется Длина байт 1 5 Данные События приема кода Wiegand имеют код события 0x02. Данные события: Поле Номер интерфейса Wiegand Не используется Код Wiegand Длина байт 1 1 4 Данные Всегда 0 Модуль WatchDog Модуль WatchDog (WDT) позволяет организовать сигнализацию и перезапуск внешней аппаратуры при проблемах в сети или с другой внешней аппаратурой. WDT имеет 2 режима работы: контроль хостов (сетевой режим) и контроль портов ввода (обычный режим). Алгоритм работы: если в течение заданного времени от удаленного хоста нет активности (сетевой режим) или нет изменений входного порта (обычный режим) то заданный выход на заданное время переходит в неактивное состояние. После окончания неактивного состояния выхода (а также после включения питания) снова ждем активности с дополнительным таймаутом «на запуск». В качестве активности в сетевом режиме допускаются следующие варианты: ответ хоста на ping-запрос от контроллера; приход ping-запроса от хоста к контроллеру; трафик управления контроллером. prox@prox.ru www.prox.ru 7 Ether-C При срабатывании WDT генерируется соответствующее событие. Контроллер может содержать несколько модулей WatchDog, все они работают абсолютно независимо. События WatchDog События WatchDog имеют код события 0x03. Данные события: Поле Длина байт Данные Модуль СКУД Модуль СКУД контролирует 1 или 2 двери (с концевиком и замком каждая), 2 считывателя (интерфейса Wiegand), кнопки открывания, блокировки, пожара. Модуль может работать в режиме «1 дверь – 1 считыватель» (реализуются 2 полностью независимые точки доступа) или «1 дверь – 2 считывателя» (реализуется одна точка доступа). Модуль может работать как полностью автономно так и под контролем центрального сервера СКУД. Потеря связи с сервером вызывает переход в автономный режим, восстановление связи возвращает режим внешнего управления. Переход между режимами прозрачен для сервера и пользователей. Модуль отрабатывает следующие алгоритмы работы точки доступа: Контроль процесса открывания и закрывания дверей с таймаутами. Работу дверей с концевиком и без. Замки магнитные и защелки. Генерацию событий открывания, закрывания, отказа в проходе, взлома. Контроль временных зон и расписаний в локальной базе данных. Метки СКУД Контроллер имеет собственную (локальную) базу данных меток а также может работать с центральной БД меток на одном или более хостах. Каждая запись о метке состоит из уникального кода метки и параметров метки. Код метки представлен как число unsigned long 4 байт. Если код метки короче 4 байт, то старшие незначащие байты заполняются нулями. Параметры метки – структура с набором параметров метки. Маска дверей 1 Временные зоны для двери 0 Временные зоны для двери 1 резерв prox@prox.ru 2 Параметры метки Бит 0 – обрабатывать метку для первой двери Бит 1 – для второй двери Битовая маска для временных зон 0..15 2 27 www.prox.ru 8 Ether-C В случае указания пустых временных зон (значение 0) считать все биты временных зон установленными (значение 0xFF). События СКУД События СКУД имеют код события 0x04. Данные события: Поле Длина байт Тип события 1 Номер источника события 1 Номер метки 4 События СКУД – один байт, в котором: Данные См. таблицу событий СКУД = Номер считывателя, номер двери. Бит 7: замок был открыт. Биты 4,5: группа событий: 0 – сетевые события 1 – локальные события 2 – событие тампера 3 – другие события СКУД. Биты 0-3: код события в группе. Код события Описание 0x81 Решение ЦБД – пропустить (== откр замка) 0x04 Решение ЦБД – отказать 0x82 0x83 0x05 0x06 Команда ЦБД открыть дверь навсегда (== откр замка) Команда ЦБД открыть дверь однократно (== откр замка) Команда ЦБД заблокировать дверь Команда ЦБД возврата в штатный режим 0x90 0x10 0x11 0x12 0x13 Решение ЛБД – пропустить (== откр замка) Решение ЛБД – отказать (нет в БД) Решение ЛБД – отказать (блокировка) Решение ЛБД – отказать (блокировка по расписаниям) Решение ЛБД – отказать (не попадает в расписания) 0x98 0x18 0x19 0x1A Пропуск по кнопке открывания двери. Отказ прохода по кнопке (блокировка). Команда включения локальной блокировки. Команда выключения локальной блокировки. 0x20 0x21 0x22 0x23 0x24 Дверь штатно открыта (событие от геркона двери). Причина открывания - см. предыдущие события с замком. Забыли открыть дверь. Вышел таймаут на открывание. Забыли закрыть дверь. Вышел таймаут на закрывание. Взлом. Дверь открыта (геркон двери сработал) с закрытым замком. Дверь закрыта (причина открытого состояния – см. предыдущие события). prox@prox.ru www.prox.ru 9 Ether-C ЦБД – Центральная База Данных, т.е. сервера. После некоторых событий (например, обнаружение карточки) контроллер отправляет сообщение с этим событием в ЦБД по сети. Если в течение заданного таймаута сервер ответит, то решение пропустить или нет будет взято из этого ответа. Если по истечении таймаута ответ не поступит то решение принимается на основании собственной памяти меток (решение ЛБД). ЛБД – Локальная База Данных. Собственная память ключей контроллера. prox@prox.ru www.prox.ru 10 Ether-C Протокол доступа к контроллеру Управление контроллером осуществляется с помощью специального протокола поверх UDP транспорта (UDP порт 8192). Формат сообщения этого протокола приведен на рисунке: Длина (1 байт) Код сообщения (1 байт) Данные CRC16 (2 байта) Поле длина – это длина только секции данных (0…255). Коды сообщений и их значение приведены в отдельной главе. CRC16 считается над всеми байтами сообщения (от поля длины до конца данных). CRC16 реализована согласно стандарту CCITT X.25 (аналогично в ISO/IEC 3309 и RFC1331). Начальное значение 0xFFFF; результат расчета инвертируется. Исходники алгоритма расчета есть в исходниках демопрограммы. Один пакет UDP содержит одно или более сообщений протокола. Одно сообщение не может быть разорвано между двумя пакетами UDP. Поскольку протокол имеет только один синхронизирующий маркер – начало пакета UDP, поэтому никаких инородных вкраплений между, перед или после сообщений не допускается. Недопустима фрагментация UDP пакетов, поэтому если вы не уверены в своем сетевом обрудовании – не используйте UDP пакеты длиннее ~400 байт. Если в процессе разбора запросов будет обнаружено некорректное сообщение (неверный CRC, неподдерживаемый код сообщения) то это и все последующие сообщения в этом пакете будут проигнорированы. Адресация Контроллер имеет трехуровневую фильтрацию UDP трафика в сети. Первый уровень – по MAC адресу. Контроллер принимает UDP пакеты адресованные непосредственно ему (всегда), а также широковещательные и мультикастовые пакеты (если это разрешено настройками сетевой безопасности). Второй уровень – UDP порт. Третий уровень – по специальному сообщению «Адресная вставка». Если сообщения «адресная вставка» нет, то пакет принимается (если это разрешено настройками сетевой безопасности). Если контроллер получает от хоста запрос на который нужно ответить то MAC, IP адреса и порт назначения для ответа всегда берутся из запроса независимо от параметров контроллера. Если контроллер сам создает сообщение для удаленного хоста то порт назначения зависит от флага «использовать порт источника». Надежность связи Транспорт UDP не имеет механизмов контроля доставки данных. Решение этой проблемы возложено на протокол управления исходя из логики работы контроллера. Механизмов два: 1) контроль исполнения команды путем возврата записанных данных (в таких командах ответ содержит тот же набор параметров что и запрос). 2) prox@prox.ru www.prox.ru 11 Ether-C Подробности в разделе сообщений протокола. Многобайтовые переменные Целые многобайтовые значения передаются младшим байтом вперед. MAC и IP адреса, порты TCP/UDP передаются старшим байтом вперед. Числа с плавающей запятой имеют формат согласно IEEE754 и передаются экспонентой вперед. Строки передаются первым символом вперед. Конец строки либо отмечается нулевым байтом, либо по достижении указанного размера поля. Если строка короче отведенного для нее поля, оставшиеся байты игнорируются (заполняются произвольным значением). О представлении времени см. главу о времени в системе. prox@prox.ru www.prox.ru 12 Ether-C Параметры контроллера Контроллер содержит множество параметров сгруппированных по логике работы контроллера. Группировка двухуровневая (группа : подгруппа). Каждая подгруппа параметров читается и пишется только как единое целое. Каждая подгруппа имеет возможность загрузки значений по умолчанию (командой записи параметров без значений или с неполным набором значений). Каждой группе индивидуально назначаются права доступа на чтение и на запись (требование авторизации и криптозащиты; защита от перезаписи). Вот список групп параметров, он неполный и будет пополняться с расширением функциональности: Одна группа заводских параметров контроллера (MAC адрес, версия, набортные ресурсы). Запись невозможна, только чтение. Две группы сетевых параметров контроллера: Группа IP параметров (IP адрес, маска подсети, сетевое имя контроллера и т.п.). Запись только при установленной перемычке WP. Группа параметров сетевой безопасности (режимы работы вспомогательных протоколов Ethernet). Параметры удаленных хостов (IP и MAC адреса, условия взаимодействия). Одна группа на каждый удаленный хост. Параметры безопасности. Криптопрофили (ключи и методы авторизации и шифрации трафика). Одна группа на каждый криптопрофиль. Чтение невозможно, только запись. Одна группа прав доступа (какой криптопрофиль для какого действия требуется; какой уровень шифрации для какой информации применять; какой хост что может делать; кому и какие события рассылать; у кого запрашивать ). Одна группа работы с событиями (что делаем с конкретными событиями: сохраняем в стеке событий; рассылаем хостам;). Параметры СКУД и ввода-вывода (группа параметров точек прохода; группа параметров ввода-вывода). Запись только при установленной перемычке WP. Общие параметры СКУД (). Параметры точек прохода (тип исполнительного механизма, используемые считыватели и клеммы ввода-вывода, параметры механизма прохода; ). Одна группа на каждую точку прохода. Макросы для выходных сигналов (схемы индикации и т.п.). Общие параметры (группа 0) Версия устройства (подгруппа 0) Только чтение. Название Длина Примечание Текстовое название 20 String prox@prox.ru www.prox.ru 13 Ether-C устройства Версия устройства 20 String Состояние аппаратных джамперов (подгруппа 1) Только чтение. Название Длина Примечание Аппаратные джамперы Режим работы 1 Бит 0 – джампер «WP» (1- установлен) Бит 1 – джампер «1» (1- установлен) Бит 0 – режим «свободного доступа» включен 1 Упакованное время (подгруппа 2) Название Длина Текущее время 4, время Примечание Неупакованное время (подгруппа 3) Название Длина Примечание Секунды 1 BCD, 0-59 Минуты 1 BCD, 0-59 Часы 1 BCD, 0-23 День недели 1 BCD, 0-6 День месяца 1 BCD, 1-31 Месяц 1 BCD, 1-12 Год 1 BCD, 00-99, соотв. 2000-2099 года Примечание: BCD (Binary-Coded Decimal) обозначает формат записи двух десятичных чисел, в котором младший ниббл (4 бита) содержит младшее десятичное число а старший ниббл – старшее десятичное число. Например значение 0x39 в BCD записи трактуется как десятичное 39. Сетевые параметры (группа 1) Ethernet параметры (подгруппа 0) Только чтение. Название Длина MAC адрес контроллера 6, MAC Примечание IP параметры контроллера (подгруппа 1) Название Длина Примечание Метод получения IP параметров контроллера 1 Байт флагов 1 1 0 – использовать статически указанные IP параметры. 1 – брать IP адрес из валидного UDP пакета с MAC адресом контроллера. 2 – использовать DHCP. 3 – использовать AutoIP. Бит 0 – IP адрес указан корректно. Бит 1 – Включить NBNS. Бит 2 – Включить DHCP. prox@prox.ru www.prox.ru 14 Ether-C Бит 3 – Включить AutoIP. Биты 4,5,6,7 – не используются. IP адрес устройства Маска подсети IP адрес шлюза Доменное имя Подсистема контроллеров 4, IP 4, IP 4, IP 16, string 1 См. сообщение «Адрес назначения» Параметры удаленных хостов (группа 2) До 4 удаленных хостов, каждый в отдельной подгруппе (0…3) Название Длина Примечание Байт флагов 1 1 Бит 0 – IP адрес валиден и хост включен Бит 1 – вкл рассылки событий Бит 2 – вкл быстрого запроса по меткам СКУД Бит 3 – Бит 4 – Бит 5 – Бит 6 – Бит 7 – IP адрес хоста Порт хоста 4 2 По умолчанию 8192 Параметры безопасности (группа 3) Параметры безопасности (подгруппа 0) Все действия с контроллером «снаружи» классифицированы по уровням доступа. Чтобы совершить эти действия Название Длина Уровень прав доступа 1 Уровень требования авторизации 1 Уровень требования шифрации трафика 1 Примечание Бит 0 – вкл авторизацию хоста Бит 1 – вкл шифрацию 0 – крипторежимы не используются 10 – любые действия не требуют авторизации 1 – сообщения и параметры уровня 1 требуют авторизации 0xFF – авторизация требуется всегда 0 – любые действия можно выполнять без шифрации 1 - сообщения и параметры уровня 1 требуют шифрации 0хFF – весь трафик шифруется Криптопрофили (подгруппы 1...8) Доступны только на запись. Если криптопрофиль указан как потоковый (известен как крипторежим CBC) то один prox@prox.ru www.prox.ru 15 Ether-C криптомодуль может использоваться только для одного хоста. Динамический ключ – специальный режим при котором периодически две стороны обмена договариваются о ключе шифрации. Название Длина Имя криптоалгоритма 8 Байт флагов 1 1 Примечание AES; ARC4; Бит 0 – потоковый крипторежим (CBC) Бит 1 – Бит 2 – Бит 3 – Бит 4 – Бит 5 – Бит 6 – Бит 7 – 0 – динамическая смена ключа не используется Номер криптопрофиля 1 для динамической смены ключа Ключ ? Длина определяется алгоритмом Параметры модуля портов ввода (группа 4) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 Количество портов ввода String Общие параметры (подгруппа 1) Название Длина Примечание Индивидуальные параметры портов (подгруппы 2…) Каждый аппаратный вход на плате контроллера имеет индивидуальные параметры. Параметры каждого из входов находятся в своей подгруппе параметров. Параметры входа маркированного IN1 находятся в подгруппе 2, входа маркированного IN2 находятся в подгруппе 3 и т.д. по количеству входов конкретного контроллера. В таблице ниже показан состав параметров одного входа. Параметры отвечают за уведомление центрального хоста о событиях изменения порта ввода. Уведомления бывают двух типов: быстрые с негарантированной доставкой и медленные но надежные (через энергонезависимый стек событий). Название Длина Разрешение быстрой 1 рассылки событий Разрешение 1 сохранения события в prox@prox.ru Примечание 0 – не рассылаем !0 – рассылаем 0 – не сохраняем !0 – сохраняем в стек событий www.prox.ru 16 Ether-C стеке событий Инверсия входа 0 – не инвертируем. !0 – инвертируем. 1 Параметры модулей RFID (группа 6) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 Количество входов RFID считывателей String Общие параметры (подгруппа 1) Параметры: режимы интерфейса считывателя. TBD Название Длина Примечание Индивидуальные параметры считывателей (подгруппы 2…) Каждый аппаратный вход считывателя на плате контроллера имеет индивидуальные параметры. Параметры каждого из входов находятся в своей подгруппе параметров. Параметры входа маркированного IN1 находятся в подгруппе 2, входа маркированного IN2 находятся в подгруппе 3 и т.д. по количеству входов конкретного контроллера. В таблице ниже показан состав параметров одного входа. Параметры отвечают за уведомление центрального хоста о чтении метки. Уведомления бывают двух типов: быстрые с негарантированной доставкой и медленные но надежные (через энергонезависимый стек событий). Название Длина Разрешение быстрой 1 рассылки событий Разрешение 1 сохранения события в стеке событий 1 Примечание 0 – не рассылаем !0 – рассылаем 0 – не сохраняем !0 – сохраняем в стек событий Параметры модуля событий (группа 10) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 Количество независимых стеков событий String prox@prox.ru www.prox.ru 17 Ether-C Общие параметры модуля событий (подгруппа 1) Параметры рассылки событий есть также в параметрах хостов. Это независимые параметры, т.е. если задана широковещательная рассылка и рассылка конкретному хосту – будут выполнены обе. Авторизация и потоковые криптоалгоритмы не могут быть применены при групповых (широковещательной и мультикастовой) рассылках. Название Длина Примечание Байт флагов 1 1 Бит 0 – рассылать события широковещательно Бит 1 – рассылать события мультикастово Бит 2 – рассылать только после авторизации. Бит 3 – рассылать только с шифрованием. Бит 4 – Бит 5 – Бит 6 – Бит 7 – Параметры модуля портов вывода (группа 11) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 Количество портов вывода String Таблицы макросов вывода (подгруппы 1,2) Таблиц две – постоянная (определенная производителем) и задаваемая пользователем. Постоянная таблица может быть только прочитана, записать нельзя. Переменная таблица может быть записана только при установленном джампере WP. Постоянная таблица – в подгруппе 1, переменная – в подгруппе 2. Размер постоянной таблицы – 64 байта. Размер таблицы задаваемой пользователем – 192 байта. Фактически обе таблицы входят в одну таблицу макросов вывода размером 256 байт. При этом постоянная таблица занимает адреса (индексы) 0-63, а переменная – 64-255. Параметры модулей WatchDog (группа 12) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 String Индивидуальные параметры модулей (подгруппы 1…) В контроллере может быть несколько модулей WDT. Каждый может контролировать до 4х портов ввода или до 4-х хостов. prox@prox.ru www.prox.ru 18 Ether-C Название Длина Примечание Флаги 1 Бит 0 – контроль каналов по И (0) или ИЛИ (1).* Бит 1 – каналы ассоциированы с хостами (0) или с портами ввода (1). Бит 3,2 – режим контроля.* Бит 4 – Задан первый канал контроля Бит 5 – Задан второй канал контроля Бит 6 – Задан третий канал контроля Бит 7 – Задан четвертый канал контроля 4 байта – 4 канала контроля. Для контроля хостов – номера хостов [0…3]. Для портов ввода – номера портов [0…]. Номера 4 контролируемых каналов Номер выхода 1 Таймаут молчания 2 В секундах Время на запуск 2 В секундах Время неактивного 2 В секундах состояния выхода Логика контроля каналов: по И – срабатывание только если по всем каналам нарушен таймаут; ИЛИ - срабатывание по любому каналу. Режим контроля для хостов: 0 – пассивный режим, ожидание PING-запроса от хоста; 1 – пассивный режим, управляющие сообщения сброса WDT от хоста; 2 – активный режим, отсылка PING; 3 – резерв. Режим контроля для портов ввода: 0 – по любому изменению, 1…3 – резерв. Параметры модулей СКУД (группа 13) Версия (подгруппа 0) Только чтение Название Длина Примечание Количество модулей Версия модуля 1 20 String Параметры СКУД (подгруппа 1) Название Длина Режим обращения к 1 центральной БД меток Таймаут запроса 1 центральной БД меток Примечание Бит 0 – Выключение запросов к центральной БД. Время ожидания в х100мс. По истечении принимается решение по локальной БД меток. Индивидуальные параметры модулей (подгруппы 2…(2+КМ-1)) Количество подгрупп равно количеству модулей в параметре «количество модулей» заголовка (обозначается КМ). prox@prox.ru www.prox.ru 19 Ether-C Под модулями СКУД понимаются точки доступа. Точка доступа (ТД) в физическом смысле – это механизм (дверь с замком, разделяющая две зоны доступа (помещения)), снабженный датчиками (концевики, считыватели и пр.) и исполнительными механизмами (замок, индикация). Механизмы бывают разных типов (дверь, турникет, ворота и т.п.). Название Длина Примечание Тип механизма 1 bits 0..2: тип механики (0 - выкл, 1 – дверь, ...). bit 5: запрещен контроль светодиодных выходов СКУДом. Bit 6: тип замка (0 – магнит; 1 – защелка). Bit 7: Считыватель с одной стороны или двух (в последнем случае вторая ТД отключена). 0xFF – замка нет. 0xFF – кнопки нет. Номер выхода замка 1 Номер входа кнопки 1 открывания Номер входа 1 0xFF – нет. Если есть позволяет открыть дверь на пожарного концевика все время активного состояния. Номер входа кнопки 1 0xFF – кнопки нет. блокировки Номер входа тампера 1 0xFF – тампера нет. Время открывания 1 время в х400мс замка Время на открывание 1 время в х400мс. Должно быть не меньше времени двери открывания замка. Время на закрывание 1 время в х400мс. двери Если в типе механизма установлен бит 7 (две считки на одну ТД) то работает только нечетные ТД (нулевая, вторая и т.д.). Четные ТД ДОЛЖНЫ быть выключены (значение типа механизма 0). Поиск метки от второй считки в БД будет вестись от имени четной ТД (запись должна быть одинакова для четной и нечетной ТД). Запись в событиях о событии от считывателя будет вестись для обеих ТД. Если ТД выключена, то рассылка уведомлений от считывателя не осуществляется. Параметры 16 временных зон (подгруппы (2+КМ)…(2+КМ+16-1)) Примечание: функционал связанный с временными зонами поддерживается только в релизе «ANDY». Под модулями СКУД понимаются точки доступа. Точка доступа (ТД) в физическом смысле – это механизм (дверь с замком, разделяющая две зоны доступа (помещения)), снабженный датчиками (концевики, считыватели и пр.) и исполнительными механизмами (замок, индикация). Механизмы бывают разных типов (дверь, турникет, ворота и т.п.). Название Длина Примечание Тип временной зоны 1 0 – зона не активна 1 – обычная зона, допуск разрешен 2 – зона запрета, имеет приоритет prox@prox.ru www.prox.ru 20 Ether-C Минута начала действия Час начала действия Минута окончания действия Час окончания действия Маска дней недели 1 1 1 1 Биты 0..6– дни недели с пн. по вс. бит 7 - праздничные даты В случае указания пустых временных зон (значение 0) считать все биты временных зон установленными (значение 0xFF). Если время начала действия временной зоны равно времени ее окончания, то считать зону круглосуточной Если временная зона переходит границу суток (т.е. время начала действия зоны больше, чем время окончания), проверку допустимых дней недели производить по дате начала действия зоны. 1 Список праздников (подгруппа (2+КМ+16)) Примечание: функционал связанный с праздниками поддерживается только в релизе «ANDY». Таблица-список праздников в виде месяц,день. Длина таблицы 64 записи. Если ячейка не используется, достаточно выставить в ней невалидное значение (например 0,0). Название Длина Примечание Номер дня Номер месяца … Повторяется 64 раза … . prox@prox.ru 1 1 www.prox.ru 21 Ether-C Таблица кодов сообщений Сообщения бывают двух типов – с ответом или без ответа. Ответы на сообщения отсылаются на тот же адрес с которого пришли сообщения. Чтобы разделить сообщения и ответы на них в ответах выставляется в единицу старший бит кода сообщения. Код ист/отв 00 01 Both / Both / - Действие Общие Адрес назначения Адрес источника 02 03 РС / O РС / O Команда на запись параметров в EEPROM Запрос на чтение параметров из EEPROM 04 05 08 Both / Both / O Both / - Установка крипторежима Смена ключа шифрации трафика Холостая вставка 09 РС / O Установка адреса хоста 10 11 12 13 14 События Установка указателя чтения событий Чтение событий с указанными признаками (не реализовано) Чтение указателя стека событий Сообщение о событии Сообщение о текущем состоянии указателя чтения событий РС / O РС / O РС / O К/К/- 18 19 1A 1B 1С 1D 1E 1F РС / O РС / O РС / O РС / O К/O РС / O PC / O РС / O 20 21 22 РС / O РС / O К/- 28 РС / - Модуль СКУД Запись метки Удаление метки Чтение метки Чтение состояния памяти меток Запрос к хосту о метке Удаление всех меток Управление состоянием точки доступа Ввод-вывод Запуск макроса вывода. Чтение текущего состояния входов-выходов. Сообщение об изменении состояния входа. Модуль WatchDog Сброс WDT Графа «ист/отв» указывает возможный источник сообщения (К; РС; both обозначает контроллер, хост или оба соотв.) и наличие ответа (О). prox@prox.ru www.prox.ru 22 Ether-C Общие Сообщения «адрес назначения», «адрес источника», «установка крипорежима» и «холостая вставка» вообще не требуют контроля доставки потому как работают только в пределах одного UDP пакета. Сообщение «текущее время» является периодическим и некритичным. Если канал связи пропускает хоть что то, то подобного уровня вероятности доставки этого сообщения вполне достаточно. Команда «Чтение параметров» имеет ответ и логика хоста должна содержать таймаут с автоповтором команды. Команда «запись параметров» изменяет внутреннее состояние контроллера. Логика должна быть построена на базе двух переменных состояния у хоста – одно значение показывает что должно быть, другое – что реально прочитано из контроллера. Если прочитанного из контроллера нет – гоним запрос на чтение; если прочли и не совпадает – гоним команду записи новых значений. Сообщение «Адрес назначения» Назначение: Идентификация адресата сообщения когда для работы в сети используются широковещательные или мультикастовые рассылки. Когда требуется криптографическое подтверждение адресата сообщения. Сообщение содержит 4 байта - адрес назначения. В качестве адреса используются младшие 4 байта MAC адреса. Адрес назначения может принимать специальное значение 0xFFFFFF?? (сообщение для всех контроллеров). При этом младший байт (??) обозначает подсистему контроллеров (см. параметр «подсистема контроллеров» в группе «Сетевые параметры») или FF – всем контроллерам. Получив сообщение контроллер либо продолжает разбор оставшихся в пакете сообщений (адрес назначения совпал), либо игнорирует все оставшиеся в UDP пакете сообщения независимо от наличия других адресных вставок. Сообщение «Адрес источника» Назначение - идентификация источника UDP пакета когда нельзя пользоваться RAW режимом сокета или требуется криптографическое подтверждение источника сообщения. Сообщение содержит 4 байта - адрес источника. В качестве адресов используются младшие 4 байта соответствующего MAC адреса контроллера. Сообщение «Установка адреса хоста» Назначение – внесение адреса в таблицу удаленных хостов. Параметры хоста могут быть взяты из сообщения (если они там есть) или из IP заголовка источника сообщения. Данные сообщения: Поле Номер хоста Байт флагов 1 IP адрес хоста prox@prox.ru Длина, байт Данные 1 См. «Байт флагов 1» в параметрах удаленных 1 хостов 0 или 4 www.prox.ru 23 Ether-C Порт 0 или 2 Сообщение «Холостая вставка» Назначение – повышение уровня криптозащиты. Это выполняется двумя путями. Поскольку контроль целостности сообщения CRC 16 бит, то есть существенная вероятность принять произвольную последовательность байт (при попытке атаки на контроллер) за валидное сообщение. Расширять CRC до 32 бит накладно. Вместо этого в параметрах режимов безопасности введена опция необходимости холостой вставки. Таким образом для ошибочной интерпретации случайных данных требуется чтобы CRC сошлось уже для двух сообщений подряд. Вероятность такого события уже намного ниже. Помимо прямых попыток подделки сообщения возможна атака типа «запомнилповторил». Атакующий может запомнить кадр и впоследствии повторить его. Контроллер и валидный хост должны отслеживать такую ситуацию. Данные холостой вставки – число unsigned long 4 байта. Для повышения криптостойкости могут также использоваться адресные сообщения. Сообщение «Текущее время» Управляющий хост может периодически рассылать сообщения с текущим временем для регулярной коррекции часов. Данные сообщения – упакованное время, 4 байта. Сообщение «Запись параметров» Команда записи энергонезависимых параметров. Данные сообщения: Поле Длина, байт Данные Группа параметров 1 Подгруппа параметров 1 Данные >= 0 Ответ полностью аналогичен ответу на команду чтения параметров. Если код ошибки нулевой (нет ошибок) и/или данные в ответе совпали с записанными – значит команда выполнена успешно. Команда дуальна команде чтения энергонезависимой памяти. Сообщение «Чтение параметров» Команда чтения энергонезависимых параметров. Данные сообщения: Поле Группа параметров Подгруппа параметров Данные ответа: Длина, байт Данные 1 1 Поле Код ошибки Группа параметров Подгруппа параметров Длина, байт Данные 1 0 – выполнено успешно 1 1 prox@prox.ru www.prox.ru 24 Ether-C Для параметров Write Only поле данных Данные >= 0 имеет правильный размер но все значения нулевые. Если запрос был неверен (таких параметров нет, например) то в ответе нет данных. Для параметров Write Only поле данных имеет правильный размер но все значения нулевые. События «Установка указателя чтения событий» События рассылаются в порядке генерации. Чтобы повторить рассылку уже разосланных событий необходимо переставить указатель чтения событий на порядковый номер события с которого требуется повторить рассылку. Формат сообщения: Поле Указатель чтения событий Длина, байт 4, unsigned long Данные «Чтение указателя чтения событий» Чтобы уточнить не потерялись ли последние события можно периодически сверять указатель чтения событий в контроллере с значением в базе данных. Если есть расхождения – сервер может переустановить указатель чтения и получить потерянный комплект последних событий заново. Формат ответа: Поле Код ошибки Указатель чтения событий Длина, байт 1 4, unsigned long Данные Всегда 0 – нет ошибок «Сообщение о событии» В момент генерации события оно записывается в стек событий и однократно рассылается хостам через сообщение о событии. Никаких подтверждений о доставке не ожидается, повторов не производится. Если заинтересованный хост потерял это событие, он всегда может скачать стек событий и найти нужное событие там. В одном сообщении о событии может быть более одного события. Это определяется по длине данных сообщения (длина данных = к-во событий * длину записи о событии (15 байт)). Формат сообщения: Поле Запись о событии Длина, байт 15, событие Данные СКУД Сообщение «Управление состоянием точки доступа» Это команда точке доступа на немедленное изменение ее текущего состояния. prox@prox.ru www.prox.ru 25 Ether-C Возможные типы изменений: - Разрешить проход через ТД на заданное время для заданных категорий пользователей. В жизни эта команда означает «открыть дверь» однократно или на время. - Запретить проход через ТД на заданное время для заданных категорий пользователей. В жизни эта команда означает «заблокировать дверь» на время. Данные сообщения от хоста: Поле Номер ТД Код управления Длина, байт 1 Данные 0 – возврат ТД в штатный режим (снятие всех ограничений). 1 – безусловное разрешение прохода. 2 – запрет прохода. Сейчас не играет 1 Время 4 Признаки категории ? Не определено пользователей В ответ приходит два байта: признак постоянного разрешения прохода и признак запрета прохода (блокировки). Остальные сообщения ориентированы на работу с памятью меток доступа. Команды «Запись метки», «Удаление метки» и «Чтение метки» должны иметь ту же логику защиты от потерь что и команда «запись параметров». Сообщение «Запрос к хосту о метке» не требует автоповторов в первом приближении по причине дублирования БД меток локально и возможности поднести метку к считывателю повторно. Сообщение «Запись метки» Запись метки – занесение ее номера и параметров в локальную БД контроллера. Заносить можно метку в конкретную ячейку БД (запись метки по индексу) или оставить выбор места размещения на усмотрение контроллера. Вариант работы определяется по длине сообщения: если длина 2+4+32 байт, то запись по индексу, если меньше безиндексная. Запись по индексу работает гораздо быстрее, т.к. не ищет свободное место и не проверяет результаты записи повторным поиском. Данные сообщения от хоста: Поле Длина, байт Данные Индекс ячейки локальной Поля нет – запись в произвольную ячейку. 0/2 БД Поле есть – запись в указанную ячейку. Код метки 4 Параметры метки в БД 32 Данные ответа контроллера для индексного варианта записи: prox@prox.ru www.prox.ru 26 Ether-C Поле Длина байт Данные 0 – команда успешно выполнена 2 – индекс превышает размеры БД Данные ответа контроллера для НЕ-индексного варианта записи в точности повторяют ответ на сообщение чтения метки. Код ошибки 1 Сообщение «Чтение метки» Чтение метки – поиск заданного хостом кода метки в БД и возвращение отчета о поиске. Можно прочесть метку в конкретной ячейке БД (чтение метки по индексу) или указать код метки и контроллер сам найдет эту метку в БД. Вариант работы определяется по длине сообщения: если длина 2 байта, то чтение по индексу, если 4 байта – по номеру. Чтение по индексу работает гораздо быстрее. Данные сообщения от хоста: Поле Длина, байт Индекс ячейки локальной 0/2 БД Код метки 4/0 Данные ответа контроллера: Поле Длина байт Данные Поля нет – поиск по коду метки. Поле есть – чтение из указанной ячейки. Данные 0 – команда успешно выполнена Код ошибки 1 1 – запись с заданным кодом метки отсутствует 2 – заданный индекс превышает размеры БД Длина этого поля: Код метки 0/4 0 – если код ошибки = 2. 4 – во всех остальных случаях. Длина этого поля: Параметры метки в БД 0 / 32 0 – записи нет в БД (если код ошибки != 0). 32 – запись есть в БД (если код ошибки = 0). Длина этого поля: Индекс метки в БД 0/2 0 – записи нет в БД (если код ошибки != 0). 2 – запись есть в БД (если код ошибки = 0). Примечание: Поле «Индекс метки в БД» в ответе поддерживается только в релизе «ANDY». Сообщение «Удаление метки» Удаление метки – удаление записи о метке из локальной БД контроллера. Удалить можно метку в конкретной ячейке БД (удаление метки по индексу) или указать номер метки и контроллер сам найдет и удалит эт метку в БД. Вариант работы определяется по длине сообщения: если длина 2 байта, то удаление по индексу, если 4 байта – по номеру. Удаление по индексу работает гораздо быстрее, т.к. контроллер не ищет метку в памяти и не проверяет не осталось ли дубликатов метки в БД или нет. Примечание: если дубликаты все же есть, то контроллер не удаляет второй дубликат, а только сообщает в ответе о его параметрах. prox@prox.ru www.prox.ru 27 Ether-C Данные сообщения от хоста: Длина, байт Поле Индекс ячейки локальной 0/2 БД Код метки 4/0 Данные ответа контроллера: Длина байт 1 4/0 Поле Код ошибки Код метки Данные Поля нет – удаление по коду метки. Поле есть – удаление метки из ячейки БД. Данные 0 – команда успешно выполнена Повтор кода метки Длина этого поля: Параметры метки в БД 0 / 32 0 – метки с таким номером больше нет в БД. 32 – есть дубликат метки в БД. Таким образом длина ответа 1 байт после удаления по индексу. Длина ответа 1+4 байт после успешного удаления по коду метки. Длина ответа 1+4+32 байт если найден дубликат метки. Сообщение «Запрос к хосту о метке» Прием кода метки по интерфейсу Wiegand вызывает генерацию специального события которое немедленно вне очереди передается уполномоченному хосту. Цель отправки сообщения – получение прав доступа данной метки из центральной базы данных. Контроллер ожидает ответа от центральной БД в течение установленного времени (см. параметр «таймаут центральной БД»). Если ответ не поступит – решение будет принято на основании записи в локальной БД. Никаких механизмов «гарантированной доставки» не предусмотрено. Если сообщения потерялись – решение будет принято локально. При поднесении двух и более меток подряд (до истечения таймаута) контроллер отправляет сообщения хосту обо всех метках, однако решение будет принято только для последней метки (как локальное так и удаленное). Подобные проблемы должны решаться организационными мерами во избежание путаницы кого именно пропустили. По ответу центральной БД возможно сразу же обновить локальную БД (запись или стирание метки). В этом случае контроллер ведет себя в точности так как будто поступили сообщения 0х18 и 0х19 соответственно и дает соответствующий ответ. Данные сообщения от контроллера: Длина, байт 4 1 Поле Код метки Номер считывателя Данные ответа хоста: Код метки Номер считывателя Длина байт 4 1 Флаги 1 Поле prox@prox.ru www.prox.ru Данные Данные Повтор из запроса Повтор из запроса Бит 0 – решение принято центральной БД. Бит 1 – решение центральной БД (нет / да). Бит 4 – записать метку в локальную БД. 28 Ether-C Параметры метки в БД 0 / 32 Бит 5 – удалить метку из локальной БД. Нужны только при записи метки в локальную БД. Ввод-вывод Сообщение «Запуск макроса вывода» Данные сообщения от хоста: Номер выхода Индекс массива макросов Длина, байт 1 1 Уровень макроса 1 Ограничение по времени 1 Поле Данные 0 – постоянный 1 – временный 0 – указано время исполнения (*400мс) 1 – указано количество итераций Параметр времени 1 Данные ответа контроллера: Длина байт Поле Данные Сообщение «Чтение текущего состояния входов-выходов» Данные сообщения от хоста: нет. Данные ответа контроллера: два массива байт, разделенных байтом 0xFF. Первый массив отражает состояния входов (один байт – один вход; в порядке маркировки входов 1…). Биты 0,1 – логическое состояние входа (бит 0 – для простых шлейфов, дополнительно бит 1 – для двухконтактных шлейфов). Бит 4 – состояние ошибки (0 - нет ошибки, 1 – есть ошибка). Второй массив отражает состояние выходов (один байт – один выход; в порядке маркировки выходов 1…). Бит 0 – логическое состояние выхода (0 – выходной ключ закрыт; 1 – выходной ключ открыт). * - Начальное значение входов необходимо для генерации события об изменении в момент включения если реальное начальное состояние входов отличалось от заданного. Некоторые параметры имеют функцию автозаполнения (например, MAC адреса удаленных хостов). Флаги управления контроллером Байт 1 флагов: prox@prox.ru www.prox.ru 29 Ether-C - Бит 1 – разрешить прием локальных широковещательных сообщений (фильтрация по IP, только для рабочего порта). - Бит 2 – разрешить прием глобальных широковещательных сообщений (фильтрация по IP, только для рабочего порта). - Бит 3 – разрешить прием мультикастинговых сообщений (фильтрация по MAC и IP, только для рабочего порта). - Бит 4 – рассылка уведомлений о событиях через локальные широковещательные сообщения. - Бит 5 – рассылка уведомлений о событиях через глобальные широковещательные сообщения. - Бит 6 – рассылка уведомлений о событиях через мультикастинговые сообщения. - Бит 7 – запретить прием широковещательных сообщений (фильтрация по MAC, для всех протоколов; установка этого флага делает контроллер «невидимым» в сети; джампер WP перекрывает этот флаг). Байт 2 флагов: - Бит 0 – запрет работы со сторонними хостами (прием и отправка событий и команд) (0 – разрешена работа, 1 – запрещена). - Бит 1 – разрешить отвечать на тот порт с которого приходил последний запрос. - Бит 6 –получить IP параметры через службу DHCP или (если она не работает) занять произвольный свободный адрес в группе 192.168.х.х. - Бит 7 – доменное имя контроллера корректное. Установка бита разрешает работу сервера имен. prox@prox.ru www.prox.ru 30 Ether-C Всякое Джампер WP и начальное конфигурирование Джампер WP служит для упрощения начального конфигурирования и обновления прошивки устройства. Включение устройства с установленным джампером переводит устройство на 6-7 секунд в режим обновления прошивки. Подробности в документе "Инструкция по обновлению Ethernet.doc". Если попыток обновления не было, устройство выходит в нормальный рабочий режим. В рабочем режиме установленный джампер отключает все требования безопасности на ~30 минут. Это позволяет программировать контроллер зная только его MAC адрес. На случай утери MAC адреса контроллер в этом режиме периодически делает широковещательную рассылку из которой можно его извлечь. prox@prox.ru www.prox.ru 31 Ether-C Реализация протоколов Ethernet Контроллер поддерживает ряд стандартных Ethernet протоколов в рамках, необходимых для его функционирования. ARP протокол Поддерживается как ответ на ARP-запрос, так и формирование запросов. ARP-запрос формируется, если к корректно заданному IP адресу неизвестен соответствующий MAC адрес или хост не подает признаков жизни. О безопасности. Протокол ARP работает с широковещательными рассылками, что может привести к уменьшению скрытности работы системы в подсети. В связи с этим некоторые из режимов сетевой безопасности ограничивают работу протокола. ICMP протокол Поддерживается только ответ на PING (и, соответственно, на TRACERT). Ограничение: размер данных не более 200 байт. О безопасности. PING является простым средством поиска хостов с целью атаки в глобальной сети. В связи с этим некоторые из режимов сетевой безопасности ограничивают работу протокола. NBNS (WINS) протокол Протокол NBNS (NetBIOS Name Server) позволяет адресоваться к устройству по имени вместо IP-адреса (аналогично именам компьютеров в локальной сети). Само имя задается в параметре «Доменное имя контроллера» в настроечных параметрах контроллера. Поддерживается только ответ на поиск имени (NAME QUERY REQUEST) что позволяет задавать текстовое имя контроллера вместо IP адреса. О безопасности. Протокол NBNS работает с широковещательными рассылками, что может привести к уменьшению скрытности работы системы в подсети. В связи с этим некоторые из режимов сетевой безопасности ограничивают работу протокола. DHCP протокол Протокол предназначен для автоматического конфигурирования параметров IPадресации контроллера в сети (т.е. позволяет не заморачиваться с их конфигурированием на этапе инсталляции). Поскольку после его работы собственный адрес контроллера становится неизвестен, то такое конфигурирование обычно используется только если контроллер сам первым отсылает данные или совместно с NBNS (NetBIOS Name Server). AutoIP Это способ не назначать контроллеру IP адрес на этапе инсталляции. Контроллер берет IP адрес из первой же адресованной ему (по MAC адресу) посылки. В таких случаях IP адрес (вместе с соответствующим MAC адресом) вводится на хосте (или шлюзе) через команду “arp –s” или другими аналогичными способами. Этот механизм назначения IP адресов наиболее удобен для высшего уровня сетевой безопасности. IP/UDP протокол prox@prox.ru www.prox.ru 32 Ether-C UDP протокол используется как транспорт обмена сообщениями и командами с управляющими хостами. Подробнее – в разделе о протоколе управления. prox@prox.ru www.prox.ru 33 Ether-C Безопасность системы Подразумевает невозможность сторонним лицам подслушивать, имитировать, подменять или блокировать критически важные сообщения между контроллером и хостом. Первый уровень безопасности – сетевая надежность. Подразумевает стойкость к DoSатакам (целенаправленная или случайная перегрузка контроллера сетевым «мусором», т.е. блокировка нормального обмена). Реализуется главным образом через скрытность (сторонний пользователь не должен узнать MAC адресов элементов системы чтобы рассылать на них мусор) и блокировку приема широковещательных сообщений (защита от мусора «для всех»). Второй уровень безопасности – безопасность канала управления. Реализуется через взаимную криптоавторизацию элементов системы и шифрацию трафика. Третий уровень безопасности – возможность присвоения элементам системы разных прав доступа к информации. (Например, штатное управляющее ПО верхнего уровня не должно иметь прав по изменению конфигурации системы, это может делать только специально обученный персонал имеющий соответствующие права доступа.) Реализуется через взаимную криптоавторизацию элементов системы и шифрацию трафика. Первый уровень безопасности Регулируется пользователем через параметр «Сетевая безопасность». Возможные его значения: 0х00. Никаких мер не принимается. Контроллер штатно отвечает на все ARP, NBNS и PING запросы, сам рассылает ARP запросы согласно правил маршрутизации. 0х01. То же что выше но полностью игнорируем всех кроме хостов из списка (проверка источника по IP адресу). 0хFF. То же что предыдущий пункт но не отвечаем на ARP и NBNS запросы от кого бы они ни исходили. Полная блокировка приема и передачи широковещательных рассылок. Не делаем ARP запросов (MAC адрес получаем из первого обращения хоста). Второй уровень безопасности Третий уровень безопасности prox@prox.ru www.prox.ru 34 Ether-C Система контроля и управления доступом (СКУД) Общие понятия и задачи Любая СКУД имеет такие понятия: 1) Зоны доступа (помещения). Имеют следующие свойства: a) Статические правила доступа в зону. Например: i) Признаки объектов имеющих право на доступ в зону. ii) Специальные правила доступа в зону (проход в сопровождении; проход только группой; обход охраны; …). b) Временные правила доступа в зону. Например: i) Блокировка зоны. ii) Свободный доступ в зоне (пожар в этой или соседней зоне; гостевой день; …). iii) Временное изменение статических прав доступа. c) Динамические свойства зоны: i) Список объектов в зоне (другая интерпретация БД текущего положения объекта). 2) Контролируемые объекты (люди, матценности). Имеют следующие свойства: a) Динамические свойства объекта: i) База данных о текущем положении объекта. b) Права перемещения объекта. Например: i) Принадлежность объекта к группам и приоритет объекта в группе. ii) Расписания. 3) Механика (с датчиками и приводами) позволяющая объектам контролируемо перемещаться между двумя зонами доступа. Имеет следующие свойства: a) Тип механики. Например: дверь; турникет; ворота; шлагбаум и т.п. b) Способы подключения датчиков и приводов специфичные для данного типа механики. 4) С обоих сторон механики расположены точки доступа (далее ТД). Каждая ТД снабжена средствами идентификации объектов. ТД имеет следующие свойства: a) Тип и способ подключения датчика объекта. Например: кнопка «открыть»; RFID считыватель; контактор TouchMemory; и т.п. b) Подключение и схемы светозвуковой индикации состояния ТД. c) Ссылка на используемую механику. d) Ссылка на зону доступа в которую дает доступ данная ТД. e) Ссылка на зону доступа в которой расположена данная ТД. 5) Логирование событий СКУД. Имеет следующие признаки: a) Списки событий и их приоритеты по логированию. 6) Средства аварийного оповещения. Имеет следующие признаки: prox@prox.ru www.prox.ru 35 Ether-C a) Списки аварийных событий. b) Подключение и схемы светозвуковой сигнализации. c) Средства удаленного оповещения (функции охранки + пожарки). d) Дополнительные датчики проникновения в зону доступа помимо штатной механики и аварийных событий в зоне (функции охранки + пожарки). О правах и правилах доступа Довольно трудно обобщить все случаи использования СКУД применительно к алгоритмам функционирования контроллеров. Самый неоднозначный вопрос СКУД – это механизм задания прав и правил доступа. Правила доступа – это список возможных алгоритмов по которым СКУД может принимать решения. Например: 1) Разделение объектов на группы и приоритет внутри групп; списки групп и приоритеты для зон доступа. 2) Расписания: смены; выходные и праздники; сверхурочные; 3) Специальные алгоритмы: проход в сопровождении; проход только группой; обход охраны; 4) Специальные режимы: «пожар»; «гостевой день»; Права доступа – это способ задать список параметров для правил доступа для конкретного объекта или зоны доступа. prox@prox.ru www.prox.ru 36 Ether-C Спецификация контроллера Исполнение STS-407 Контроллер предназначен для обслуживания одной точки прохода в разнообразных конфигурациях (дверь/турникет/шлагбаум/шлюз/ворота; с замками магнитными, защелками, моторными; с широкими возможностями по подключению датчиков и светозвуковой сигнализации). Контроллер поддерживает до 30000 ключей; до 60000 событий; расписания. К контроллеру подключается: до 2-х считывателей по интерфейсу Wiegand с независимым управлением индикацией (2 выхода на считыватель); до 8 входов концевиков (в кофигурации с одним, двумя или без оконечных резисторов); до 2-х замков с цепочкой размагничивания; дополнительно 2 выхода типа «открытый сток» и 2 релейных выхода; Конструктив STS-407 Назначение клемм контроллера подписано на плате контроллера. Цоколевка Ethernet-разъема RJ45 соответствует цоколевке Ethernet-разъема компьютера. Электрические параметры контроллера Параметр Значение = 8..16В нестаб. Напряжение питания Защитный стабилитрон >= 20В. Ток потребления 80 мА без учета реле и светодиодов. Стандартные пороги 5В КМОП типа HCT. Входы, вариант ТТЛ/КМОП Подтяжка 10 кОм к +5В. (wiegand) Допустимые входные напряжения – до +-16В. Подтяжка 2,2 кОм к +5В. Входы, вариант «концевики» Допустимые входные напряжения – до +-16В. Пороги задаются программно. 2А 50В max; Выходы «открытый сток» с цепочкой 4А пиковое; размагничивания Размагничивающая емкость 47 мкФ. Стабилитрон >= 50В. 1A 50В max; Выходы «открытый сток» 2А пиковое; Нормировка контактов 120В 6А. Выходы «реле» Электромеханика. Примечание: электрические параметры Ethernet-интерфейса соответствуют рекомендациям стандарта. Гарантированные климатические параметры – соответствуют индустриальному температурному диапазону. Ethernet-интерфейс имеет гальваническую развязку от источника питания (согласно стандарту). prox@prox.ru www.prox.ru 37 Ether-C Схемотехника портов ввода-вывода Схемотехника выходов «открытый сток» и входов (как концевиков так входов Wiegand) на рисунке ниже. Минусовой провод является общим с минусом питания контроллера. На схемах цепь «+12В» соединена непосредственно с клеммой питания контроллера. На схемах цепь «+5В» - внутреннее напряжение контроллера. Релейные выходы – электромеханические; NC – нормально замкнутый контакт; NO – нормально разомкнутый; com – перекидывающийся контакт. prox@prox.ru www.prox.ru 38 Ether-C Конфигурационная и тестовая утилита Поставляется с исходниками. Не доделано в документе 1) Криптобезопасность Назначение Линейка СКУД контроллеров. Особенности Сокращения и понятия Метка - это карточка: у нее есть код (уникальный номер) и параметры доступа в БД. prox@prox.ru www.prox.ru 39 Ether-C Замечания по реализации устройств Релиз 01.04.2007 prox@prox.ru www.prox.ru 40 Ether-C История История документа История документа: Дата Новая версия устройства Примечание 01.04.2007 В таблицу заносятся только изменения, приведшие к смене алгоритмов работы изделия. Текстовые правки и дополнения изменяют только дату документа. История реализаций устройств Текущий рабочий релиз: Текущий бета-релиз: нет Дата 01.04.2007 Версия устройства Примечание 0.0 Документ 01.04.2007 В таблицу заносятся только версии, идущие в серию. Промежуточные реализации не учитываются. Устройство имело предшественников, не изготавливавшихся серийно и/или имевших другие протоколы и алгоритмы работы. Если в номерах версий устройства в таблице имеются пропуски, то неуказанные версии не имеют критичных для пользователя изменений в алгоритмах работы. prox@prox.ru www.prox.ru 41 Ether-C Контактная информация Техподдержка e-mail: undefined@mail.ru ICQ: 463627544 Продажи, отгрузка www.prox.ru prox@prox.ru тел: +7 (812) 91-444-19 prox@prox.ru www.prox.ru 42