температурный i Button
Таблица 2-1: Типы устройств i Button, поставляемых в корпусе MicroCan.
Остановимся на кратком описании каждого из устройств.
DS1990A
Рис. 2-2: Структура данных DS1990A.
В Книге Стандартов от фирмы Dallas Semiconductor говорится, что «из-за особенностей разработки i Button и строгого заводского контроля DS1990A является уникальным электронным идентификатором, который невозможно подделать».
Примечание 1. На мой взгляд, это верно, но с небольшими оговорками. Само собой, не существует двух совершенно одинаковых электронных ключа DS1990A, один из которых подойдёт вместо другого (откроет замок). Однако ничто не мешает злоумышленнику разработать прибор, который будет считывать ключ DS1990A и затем воспроизводить его последовательный код, полностью имитируя поведение slave-устройства DS1990A. Имея такой прибор, злоумышленник может считать оригинал ключа и потом просто использовать его код, чтобы открыть замок (кстати, на корпусе MicroCan нанесена гравировка, полностью воспроизводящая family code, serial number и даже CRC). Правда, не надо забывать, что для этого владелец ключа должен передать ключ злоумышленнику во временное пользование, а в этом казусе владелец, пожалуй, и сам в некоторой степени виновен. Снятие кода с электронного ключа очень похоже, таким образом, на снятие слепка с ключа механического. Разница только в технологиях, а также в том, что двух одинаковых электронных ключей не бывает.
DS1991, MultiKey i Button
DS1991 разработан как электронный ключ с высокой степенью защиты, который позволяет получать доступ к различным защищённым областям с помощью только одного устройства. Каждый из трёх ключей можно рассматривать как защищённый файл, для доступа к которому надо знать пароль. Открытое поле такого ключа содержит имя защищённого файла. Таким образом, разные люди могут использовать даже один и тот же пароль, хотя они и пользуются разными экземплярами DS1991.
DS1991 имеет защиту от взлома. Если для чтения данных используется неверный пароль, то устройство будет выдавать случайные числа. Если запрограммирован новый пароль, то все данные субключа будут автоматически стёрты. Несмотря на то, что возможна прямая запись в защищённые субключи, незащищённая область памяти scratchpad должна использоваться как временное хранилище для проверки данных перед тем, как они будут скопированы в свое положенное место (субключ). Это даёт гарантию, что будут записаны неискажённые данные, даже если во время соединения прервётся контакт. В зависимости от применения, незащищённая область памяти scrat c hpad может альтернативно использоваться как простая память общего назначения, работающая на чтение и запись.
DS1992, i Button с энергонезависимой памятью на 1 Кбит
Как и все i Button, DS1992 содержит уникальный серийный номер. Внутренние 128 байт энергонезависимой памяти организованы как 4 области памяти (страницы) по 32 байта. Имеется также память scrat c hpad размером 32 байта (её назначение то же самое, что и у DS1991). Начать чтение RAM можно с любой байтовой позиции и на любой странице. Запись возможна только через scratchpad. После того, как записанные в scratchpad данные проверены на соответствие оригиналу, выполняется команда копирования данных из scratchpad в конечное место назначения данных, чем предотвращаются ошибки записи из-за возможного непостоянного контакта со считывающим устройством.
DS1993, i Button с энергонезависимой памятью на 4 Кбит
DS1992 и DS1993 разработаны как уникальное идентификационное устройство и мобильный носитель данных. С использованием специальных структур данных эти устройства могут сохранять многочисленные независимые файлы разного назначения. Кроме того, для защищённого доступа легко доступный серийный номер может использоваться как исходная величина совместно с секретным ключевым словом для кодирования приватных файлов данных. Несмотря на то, что закодированные данные можно прочитать, невозможно их продублировать из-за того, что два серийных номера не могут быть одинаковыми (см. примечание 1).
DS1994, i Button с таймером и энергонезависимой памятью на 4 Кбит
DS1994 добавляет к DS1993 часы реального времени, таймер временнЫх интервалов и счётчик циклов. За исключением family code, DS1994 полностью совместим с DS1993. Дополнительные регистры для часов и управляющие регистры размещены в верхней, последней странице памяти.
Возможность защиты от записи счётчиков и закрытие доступа к внутренним регистрам тревоги переводят устройство DS1994 на уровень не сбрасываемого контроллера истекающего времени. Все эти дополнительные особенности и связанные с ними регистры и управляющие флаги размещены на последней странице памяти (с номером 16). Доступ к содержимому этой страницы тот же самый, как и к обычным страницам памяти. Несмотря на то, что для операции записи обычно используют scrat c hpad, структура команд позволяет записать один или несколько байт.
DS1995, i Button с энергонезависимой памятью на 16 Кбит
Для применений, требующих сохранения нескольких файлов различного размера, ёмкость DS1993 может оказаться недостаточной. DS1995 учетверяет доступную ёмкость предыдущих версий i Button до 16 Кбит (до 64 страниц по 32 байта каждая). Поскольку DS1995 имеет ту же самую логическую структуру и понимает тот же самый набор команд, что и другие версии i Button с энергонезависимой памятью, устройство DS1995 полностью совместимо с существующим прикладным программным обеспечением. Новое уникальное значение family code указывает на наличие дополнительной ёмкости памяти.
DS1996, i Button с энергонезависимой памятью на 64 Кбит
DS1996 учетверяет ёмкость DS1995 до 64 Кбит (до 256 страниц по 32 байта каждая). С теми же самыми командами, как и у других i Button с энергонезависимой памятью, DS1996 позволяет легко провести апгрейд существующих систем. Как и все i Button, это устройство имеет уникальное значение family code.
DS1995 и DS1996 значительно превосходят по ёмкости существующие мобильные носители данных, как, например, серийные чип-карты или магнитные полосы. Использование серийного номера как исходной величины совместно с секретным ключевым словом позволяет сохранять как закодированные, так и незащищённые файлы данных в одном устройстве. Из-за недостатка места в статье мы не будем рассматривать методы использования большой ёмкости памяти этих устройств (см. Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 7).
DS1982, Add-Only i Button с однократно программируемой памятью на 1 Кбит
Серии DS198x используют технологию EEPROM, которая не требует встроенного источника энергии для поддержания сохранности данных. Так же как и у DS1990A, энергия для работы берётся непосредственно с линии данных. Как и все i Button, DS1982 содержит секцию ROM с серийным номером и family code. Память организована как 4 страницы по 32 байта каждая.
Такая изощрённая проверка перед записью необходима для устройств, основанных на технологии EEPROM, поскольку однажды записанные неверные данные уже невозможно исправить. Когда данные нуждаются в обновлении, старые данные «переназначаются» и добавляется новый набор данных. Этот режим функционирования объясняет имя Add-Only i Button ( i Button только для добавления данных) для этой группы. Устройства Add-Only i Button невозможно стереть. Каждая страница памяти аппаратно защищена от последующих попыток записи. Таким образом, каждое обновление будет оставлять для контроля постоянный след. Такое свойство памяти используется, например, в кассовых аппаратах (фискальная память).
Флаги, показывающие состояние страницы данных (запрещена она для записи и т. п.), помещены в 8-ми байтах статуса памяти устройства. Запись в данные статуса применяет ту же самую интегрированную процедуру, как и для страниц данных. Когда читаются информация статуса или просто данные, встроенный генератор CRC защищает поток данных от потенциальных ошибок.
DS1985, Add-Only i Button с однократно программируемой памятью на 16 Кбит
С 16-кратной ёмкостью по сравнению с DS1982, DS1985 является наименьшим устройством типа Add-Only, полностью поддерживающим сохранение и обновление нескольких файлов приложений. За подробностями обращайтесь в Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 7. Память приложений организована как 64 страницы по 32 байта каждая. В дополнение к памяти приложений, имеется 88 байт памяти статуса, выделенной для байт переназначения, флагов и бит защиты от записи. Специальная команда сигнализирует о перенаправлении данных для предотвращения потерь времени и чтения неверных данных. Другие функции у DS1985 те же самые, что и у DS1982.
DS1986, Add-Only i Button с однократно программируемой памятью на 64 Кбит
DS1986 является 64 Кбитным апгрейдом DS1985. Память организована как 256 страниц по 32 байта каждая. Расширенная область памяти потребовала увеличения памяти статуса до 352 байт. Все другие особенности DS1986 те же, что и у DS1985.
DS1920, Temperature i Button
3. Электрические стандарты и характеристики i Button
3.1. Интерфейс 1-Wire, временнЫе диаграммы
Введение
Тайм-слоты записи
ВременнЫе соотношения в i Button задаются соотносительно тайм-слота (специально сформированной порции цифрового сигнала). Для определения максимальной границы всех типов погрешностей формирования временнЫх диаграмм, i Button делает выборку значения данных на линии посередине тайм-слота. По определению активная часть 1-Wire тайм-слота (tSLOT) составляет 60 мкс. В нормальном состоянии i Button будет делать выборку сигнала с линии после 30 мкс относительно спада сигнала.
Внутренняя величина базового времени i Button может отличаться от стандартной, следовательно, может меняться время выборки сигнала. Допустимый диапазон изменения составляет от 15 до 60 мкс. Это означает, что реальное чтение линии slave-устройством может произойти в любом месте относительно старта тайм-слота между 15 и 60 мкс, т. е. может изменяться в соотношении 1 к 4. Во время этого окна времени напряжение на линии должно оставаться либо ниже VILMAX (максимально допустимое входное напряжение для лог. 0), либо больше VIHMIN (минимально допустимое входное напряжение для лог. 1). Основная форма тайм-слотов записи 1 и записи 0 показана на рисунках 3-1 и 3-2 соответственно. Эти тайм-слоты необходимы для записи команд и данных в i Button.
Рис. 3-1: Тайм-слот записи 1.
Рис. 3-2: Тайм-слот записи 0.
Длительность импульса низкого уровня для записи 1 (tLOW1) должна быть короче 15 мкс; для записи 0 длительность импульса низкого уровня должна быть не менее 60 мкс для удовлетворения условиям самого худшего случая допуска.
Длительность активной части тайм-слота можно увеличить и сделать намного больше 60 мкс. Максимальное увеличение ограничено фактом, что импульс низкого уровня как минимум в 8 тайм-слотов (480 мкс) определён как Reset Pulse (импульс сброса). Если принять во внимание наихудший допуск, то импульс низкого уровня в 120 мкс уже может быть воспринят как reset. Это ограничивает увеличение активной части тайм-слота до максимума в 120 мкс для предотвращения ошибочной интерпретации импульса низкого уровня как reset.
По окончании активной части каждого тайм-слота i Button нуждается во времени восстановления tREC (с минимальной величиной в 1 мкс) для подготовки следующего бита. Это время восстановления можно рассматривать как неактивную часть тайм-слота, оно должно быть добавлено к длительности активной части тайм-слота для получения времени, затрачиваемого на передачу бита. Широкий допуск на тайм-слот и некритичное время восстановления позволяют медленным микропроцессорам легко выполнять временнЫе требования для соединения 1-Wire.
Тайм-слоты чтения
Команды и данные посылаются в i Button путём комбинирования тайм-слотов, записывающих 0 и 1. Для чтения данных master генерирует тайм-слоты чтения для определения момента начала каждого бита. С точки зрения master, тайм-слоты чтения выглядят так же, как и тайм-слоты записи 1. Начиная с момента изменения уровня сигнала с высокого на низкий, i Button посылает один бит своего адресованного содержимого. Если передаваемый устройством i Button бит равен 1, то i Button оставляет импульс (линию данных) без изменения. Если бит равен 0, i Button будет притягивать линию данных на низкий уровень (открывая канал своего выходного транзистора) в течение времени tRDV, или 15 мкс (см. рис. 3-3). В течение этого окна времени данные доступны для чтения устройством master.
Рис. 3-3: Тайм-слот чтения данных.
Длительность tLOWR определяет время импульса низкого уровня, посылаемого устройством master. Оно должно быть как минимум 1 мкс, но в тоже время как можно меньше, чтобы увеличить окно выборки сигнала для master. В целях компенсации ёмкости линии интерфейса 1-Wire, master должен делать выборку сигнала как можно точнее через 15 мкс после начала синхронизирующего среза сигнала. Следующий за интервалом tRDV интервал tRELEASE является дополнительным, в течение которого i Button отпускает линию 1-Wire и сигнал возвращается к значению VPULLUP. Длительность tRELEASE может меняться в пределах от 0 до 45 мкс. Номинальная величина 15 мкс.
Детектирование presence (присутствия на шине)
Как упомянуто выше, интерфейс 1-Wire использует импульс reset. Этот импульс определён как импульс низкого уровня с минимальной длительностью 8 тайм-слотов или 480 мкс, за которым следует время reset с высоким уровнем на линии tRTSH и длительностью тоже 480 мкс (см. рис. 3-4). Это время нужно для того, чтобы i Button мог выдать импульс presence.
Рис 3-4: Импульсы reset и presence.
* Чтобы не маскировать сигналы прерываний от других устройств на шине 1-Wire, время tRSTL+tR должно быть всегда меньше 960 мкс.
Во время tRSTH на линии 1-Wire не разрешены никакие другие соединения. Импульс reset предназначен для обеспечения чистого старта, который прерывает любую синхронизацию других тайм-слотов. В окружении с неуверенным контактом необходимо снова запустить старт, если контакт прерывался. Если master послал импульс reset, i Button будет ожидать время tPDH, а затем сгенерирует импульс presence длительностью tPDL. Это позволяет устройству master легко определить, присутствует или нет i Button на линии. Кроме того, если несколько i Button соединены параллельно (см. Книгу Стандартов, часть 5, «Логические стандарты и характеристики»), master может измерить оба времени (tPDH и tPDL) и таким способом получить информацию о реальных временнЫх допусках для всех устройств на линии.
Нормальные величины 30 мкс для tPDH и 120 мкс для tPDL. Измеренное время tPDH показывает внутреннее базовое время для самого быстрого устройства на шине. Сумма измеренного времени tPDH и tPDL в 5 раз больше внутреннего базового времени самого медленного устройства на шине. Если на линии присутствует только одно устройство, обе величины tPDH и tPDL будут пропорциональны и будут изменяться в одну и ту же сторону. Это соотношение может быть использовано для построения адаптивной системы. Специальные вычисления этой системы должны быть приложены для корректировки временнЫх характеристик каждый раз после reset, поскольку индивидуальные временнЫе характеристики устройств i Button могут меняться в зависимости от температуры и нагрузки.
Точность измерений времени, требуемая для адаптивной подстройки временнЫх диаграмм, ограничена характеристиками входной логики master, постоянной времени линии 1-Wire (сопротивление нагрузочного резистора помножить на ёмкость кабеля) и прикладываемой частотой выборок состояния линии 1-Wire. Если видимое время нарастания или спада сигнала превышает 1 мкс, или если возможная наивысшая частота выборок не превышает 1 МГц, то адаптивную подстройку применить не получится.
Если i B u tton отключен от считывающего устройства, то он притягивает свою линию данных на низкий уровень через внутренний источник тока 5 мкА. Это симулирует импульс reset неограниченной длины. Как только i Button определит высокий уровень на своей линии данных, он сгенерирует импульс presence. Эта особенность может быть использована для автоматического включения устройства master с целью сохранения энергии между чтениями или записями. Это также удобно использовать для включения аппаратного прерывания последовательного порта, когда используется PC и адаптер COM-порта.
Устройства i Button специально разработаны для работы в условиях плохих электрических соединений. Однако требуется некоторое минимальное время контакта, требуемое для пересылки команд и пакета данных. Оно зависит от вида выполняемой операции. Для DS1990A, используемого в качестве электронного ключа, это время может не превышать 5 мс.
Повышенная скорость
Устройство i Button можно ввести в состояние ожидания, в котором i Button больше не отвечает ни на какие события на шине 1-Wire, пока не поступит импульс reset. С этой особенностью может сосуществовать возможность высокоскоростного соединения на шине 1-Wire без конфликтов с существующим протоколом. Линия данных при этом не может быть в состоянии низкого уровня более чем 120 мкс.
Фактически повышенная скорость реализуется изменением внутренней временнОй базы i Button в 10 раз. Это относится ко всем коммуникационным формам сигнала, включая импульсы reset и presence, но не включая длительность программирующих импульсов для устройств EEPROM (детали см. на рис. 3-1…3-4). Все i Button, которые могут работать с повышенной скоростью, будут работать со скоростью нормальной, если их специально не переключить на повышенную скорость. Устройства, реализующие повышенную скорость, можно идентифицировать по их family code, или с помощью специальных команд, которые не распознаются «не высокоскоростными» устройствами. Более подробно о протоколе, вводе i Button в состояние ожидания и о повышенной скорости обмена можно прочитать в Книге Стандартов i Button фирмы Dallas Semiconductor, часть 5.
3.2. Интерфейс 1-Wire, электрические параметры
Паразитное питание
Обычно в цифровых системах переменные величины напряжения относятся к цифровым сигналам, которые таким способом представляют высокие и низкие уровни семейства логики. ВременнЫе диаграммы 1-Wire отличаются от этой хорошо известной схемы из-за паразитного питания систем i Button, которые поддерживают ROM и высокотехнологичную логику большей части устройств. DS1991 использует не паразитное питание, а внутренний источник энергии, который обеспечивает работу защищённой памяти. DS1990A, DS198x и DS1920 разработаны только для использования паразитного питания. Логика ROM устройств от DS1992 до DS1996 питается либо от внутреннего литиевого источника напряжения 3 B, либо от напряжения на линии 1-Wire, в зависимости от того, какое из них больше. Эта возможность позволяет получить доступ к записанной лазером ROM-секции, даже если внутренний литиевый элемент истощился после истечения 10 лет или более.
Системы с паразитным питанием нуждаются в конденсаторе для сохранения энергии и диоды для предотвращения нежелательного разряда от линии данных (когда на ней появляются низкие логические уровни). Здесь применяется точно такая же схема, как у однополупериодного выпрямителя. После того, как конденсатор зарядится до нормального рабочего уровня, на нём будут кое-какие незначительные провалы и возрастания напряжения из-за импульсов перезаряда, возникающих при изменении сигнала на линии данных 1-Wire. Ёмкость энергосберегающего конденсатора i Button равна примерно 800 пФ. Эта ёмкость видна короткое время, когда i Button подсоединяется к считывающему устройству. После того, как конденсатор зарядился, на шине данных будет видна только малая часть от ёмкости конденсатора, соответствующая требуемой полной подзарядке конденсатора. Полная постоянная времени для зарядки конденсатора определяется самим конденсатором, внутренним сопротивлением около 1 кОм, сопротивлением кабеля и контактов, ёмкостью кабеля и внешним нагрузочным резистором. Добавочное падение напряжения на диоде и минимальное внутреннее рабочее напряжение кристалла дают минимально возможное напряжение на линии данных 1-Wire. В таблице 3-1 более подробно даны параметры, справедливые для всех видов i Button. Минимально возможное напряжение питания линии важно для выбора времени восстановления tREC времени высокого уровня reset tRSTH.
Спец. питающее напряжение
Табл. 3-1: Общие электрические параметры i Button.
Из-за применяемой в устройствах Add-Only технологии EEPROM, эти i Button требуют для программирования импульсов определённой длительности, напряжения и тока. Например, для DS1982 применяют импульс длительностью минимум 500 мкс, номинальное напряжение 11.5 В с пиковым максимальным током 10 мА. Для предотвращения повреждений других i Button, во время программирования к сети MicroLAN должны быть подключены только DS198x. Температурный i Button DS1920 требует усиленного питания 5 В от сети MicroLAN во время измерения температуры и записи внутренних ячеек памяти. Это не критично для работы других устройств на шине, поскольку i Button не будут начинать самостоятельно любой обмен данными. Не могут также в этой ситуации происходить прерывания от DS1994, поскольку их работа автоматически запрещается (см. Книгу Стандартов i Button фирмы Dallas Semiconductor, часть 6).
Нагрузочный резистор
Рекомендуемый номинал нагрузочного резистора для линии 1-Wire составляет 5 кОм. Эта величина была выбрана для обеспечения работы с контактами высокого сопротивления и для обеспечения хороших логических уровней на обоих концах короткого соединительного кабеля. Обычно считывающий узел master воспринимает напряжения до 0.8 В как логический 0. Поскольку на линию между master и i Button оказывает влияние постоянная времени шины 1-Wire, иногда может потребоваться использовать нагрузочный резистор с номиналом меньшим, чем 5 кОм.
Оптимизация при повышении длины соединительного кабеля
Идеальным соединением между i Button и мастер является короткий кабель с малой паразитной ёмкостью. В случае применения длинных кабелей появляется гораздо больше забот для обеспечения необходимых требований по постоянному и, в особенности, по переменному току. Появляются критические моменты для времени восстановления tREC и для чтения или записи бита 1. Время восстановления становится критичным, если для обмена данными необходимы два следующих друг за другом тайм-слота записи нуля. Если передача данных идёт на максимально возможной скорости, должен быть сформирован импульс tREC лог. уровня 1 с минимальной длительностью 1 мкс между двумя тайм-слотами записи нуля с длительностью 60 мкс. Возможность распространения такого короткого импульса по длинному кабелю значительно ухудшается пропорционально длине кабеля. Случается так, что короткий импульс полностью отфильтровывается и связь с i Button на дальнем конце кабеля становится невозможным. Можно легко увеличить расстояние передачи, просто увеличив величину tREC. Например, если tREC увеличить с 1 мкс до 15 мкс, максимальная скорость передачи данных упадёт с 16.3 Кбит/с до 13.3 Кбит/с, однако импульс tREC длительностью 15 мкс позволяет значительно повысить надёжность передачи на длинном кабеле. Запись бита 1 можно также улучшить путём уменьшения длительности tLOW1 тайм-слота записи 1, однако при этом не превышая нижнюю минимальную величину (см. рис. 3-1). Это также улучшает вероятность верного чтения 1 на длинном кабеле. Кроме того, на длинном кабеле нужно уменьшить номинал нагрузочного резистора линии.
Тесты показывают, что нагрузочный резистор номиналом 1 кОм позволяет работать с кабелем максимально возможной длины. Если применить резистор номиналом менее 1 кОм, то ухудшается качество логических уровней, и в сочетании с большой ёмкостью кабеля не получается достичь правильной формы сигналов. Маленький резистор повышает зависимость работы системы от качества контактов (зависимость от сопротивления контакта). Для увеличения длины кабеля рекомендуется использовать кабели с малой погонной ёмкостью – около 15 пФ/м.
Тесты также показывают, что витая пара проводов работает лучше, чем просто два параллельные провода. Простой нагрузочный резистор на стороне master показал лучшие результаты, чем усиленная активная импульсная нагрузка, поскольку резистор больше подходит к сопротивлению линии. В порядке улучшения работы можно применить на стороне master выходной ключ (драйвер) с улучшенными характеристиками включения. В особых случаях может потребоваться использовать компаратор на приёмном входе master для оптимизации порогов чтения лог. 0 и лог. 1 на длинных линиях.
Например, корректная работа i Button была достигнута на линии до 300 м с использованием простого витого телефонного кабеля. Нагрузочный резистор был уменьшен до 1 кОм; 30 экземпляров i Button были подключены параллельно в конце кабеля. Шина 1-Wire управлялась выводом порта 0 микроконтроллера DS5000 (совместимый с Intel 8051). Адаптеры для COM-порта PC работают на расстояниях до 200 м на большинстве PC (см. указания по применению №74 “Чтение и запись i Button через последовательный интерфейс”). Более подробную информацию можно получить из указаний по применению №55 “Расширение зоны контактирования устройств i Button” и №108 “MicroLAN – длинные дистанции”.
4. Система команд DS1990A
Как только мастер определил на шине наличие импульса presence, он может послать одну из четырёх команд, работающих с ПЗУ (ROM) DS1990A. Каждая команда состоит из 8 бит. Перечень этих команд следующий (в квадратных скобках указан hex-код команды):
Read ROM [33h] или [0Fh] (прочитать ПЗУ)
Эта команда позволяет мастеру шины прочитать из DS1990A код устройства (family code), уникальный 48-битный серийный номер и 8-битный CRC. Эта команда может быть использована только в том случае, если на шине присутствует только одно устройство DS1990A (для электронного замка это условие выполняется). Если на шине присутствует более одного подчинённого устройства, произойдёт коллизия данных, когда все slave-устройства начнут передавать одновременно (параллельно соединённые открытые стоки будут работать как логический элемент И). DS1990A будет одинаково реагировать как на код команды 33h, так и на код 0Fh для обеспечения совместимости с более ранней версией электронного серийного номера DS1990, который реагирует только на команду 0Fh.
Math ROM [55h], Skip ROM [CCh], Sear с h ROM [F0h]
Не будем останавливаться на этих командах, поскольку для электронного замка они не нужны (подробности по ним см. в Книге Стандартов i Button фирмы Dallas Semiconductor).
5. Генерирование CRC
Для проверки правильности данных, переданных из DS1990A (как, впрочем, и из других устройств i Button) master может генерировать значение CRC из принятых данных. Эта сгенерированная величина затем сравнивается с величиной, сохранённой в последних 8 битах DS1990A. Master вычисляет CRC от 8-битового family code и всех 48 бит серийного номера, но не от самой сохранённой в i Button величины CRC (от первых 7 байт содержимого DS1990A). Если две величины, вычисленная и считанная напрямую, совпадают, то передача была безошибочной. Для генерации CRC используется полином вида:
CRC = x 8 + x 5 + x 4 + 1
Ниже приведён код из технического описания DS1990A фирмы Dallas Semiconductor для процессора с системой команд Intel 8051, реализующий алгоритм вычисления CRC. Этот код без изменений был использован в программе электронного замка.
Более подробно принцип вычисления CRC описан в Книге Стандартов i Button фирмы Dallas Semiconductor.
6. Электронный замок
6.1. Основные особенности
Описываемый электронный замок предназначен для установки в квартирах, подъездах жилых домов. Очень хорошо он подходит для входных дверей офиса, куда должен иметь доступ ограниченный круг лиц. Основные достоинства такого замка:
— быстрое, удобное открытие двери простым прикладыванием металлической “таблетки” – электронного серийного номера DS1990A (далее по тексту просто “ключа”);
— увеличенная защищённость – отсутствие замочной скважины или клавиатуры, которую легко повредить, подбор ключа полностью исключён;
— очень простая процедура смены или добавления ключа – они записываются в память электронного замка, и так же легко оттуда удаляются;
— при утере одного ключа нет необходимости покупать новый замок или менять вставку – можно просто стереть память замка и “обучить” замок заново (занести в память ключи);
— большое количество (до 510) пользователей.
Недостатком, которым страдают все электронные замки, можно считать тот факт, что электронному замку и исполнительному механизму (соленоиду задвижки или электромотору) нужно резервированное питание, например, от аккумулятора, чтобы всегда можно было открыть дверь (в случае пропадания питания от сети).
Для постоянной работы с замком используется только чашка считывающего устройства и кнопка открывания двери, которая монтируется внутри запираемого помещения. Нажатие на эту кнопку точно так же открывает дверь, как прикладывание ключа. Для программирования замка служит перемычка, звуковой сигнализатор, два светодиода – зелёный и красный, а также специальный мастер-ключ. Мастер-ключ необходим для доступа к программированию замка. Кроме своих специальных функций, он может работать как обыкновенный ключ, если его занести в память электронного замка.
В таблице 6-1 приведены основные параметры, а на рисунке 6-1 – принципиальная схема электронного замка.
Напряжение питания (без учёта силовой части), В
Максимальный ток потребления (питание 5В), мА
Максимальное количество ключей (не считая мастер-ключа)
Источник
|