Хочешь ходить в гости к подруге, но у тебя нет ключей от её подъезда. Либо просто тебе нужно подосрать твоему недругу, но ты не можешь попасть к нему в дом, тогда эта статья для тебя. Пара слов о принципе работы. Нет, это не так. Таблетка представляет собой ПЗУ, с жёстко зашитым в ней ключом. Называется это ПЗУ — Touch Memory, марки DS1. A. DS1. 99. 0A — это и есть марка домофонных ключей.
Общается с домофоном по шине one- wire (однопроводной интерфейс). Эта шина разработана фирмой Dallas и позволяет общаться двум устройствам всего по одному проводу. Если устройство пассивное (как в нашем случае), то оно ещё и передаёт ему питание по этому проводу. Надо ещё заметить, что необходим ещё общий провод (чтобы цепь замыкалась), но, как правило, все земли устройств подключённых к этой шине соединены воедино. В ключе находится конденсатор на 6. Но ведущее устройство должно постоянно (не реже чем в раз 1. ПЗУ в таблетке продолжало питаться.
Потроха таблетки. Как видно, никаких магнитов там нет! Короче говоря, отбросив все умные термины можно сказать просто, все, что необходимо для работы устройства передаётся только по одному проводу.
Для сравнения для работы USB необходимо 4 провода, а тут будет всего два, а при соединении земли, то только один. К слову сказать, шина 1- Wire оказалась столь удачной, что на ней даже организованны промышленные сети, в том числе и в нашей стране. Внутреннее устройство таблетки. Организация шины One- wire. Шина One- wire работает следующим образом.
Есть ведущее устройство Мастер, и ведомое устройство, в нашем случае пассивный ключик . Основные сигналы генерирует мастер, сигналы логической единицы и нуля. Ведомое устройство может только принудительно генерировать сигналы нуля (т. Расчет Стоимости Мебели В Excel.
Программатор ключей. Собрав аппаратную часть, можно перейти к программной части. Скачиваем архив программы Burning KEY.
Упрощённая схема ведущего и ведомого устройства показана на картинках. Схема таблетки. Схема мастера. Если взглянуть на схему, нетрудно заметить, что по умолчанию у мастера стоит всегда +5 вольт, а ля логическая единица.
Здравствуйте. Когдато видел ссылочку на программатор ключей DALLAS ( таблетка) на авр. А сейчас найти не могу=( Ребят, кто что. Когдато видел ссылочку на программатор ключей DALLAS(таблетка) на авр. А сейчас найти не могу=( Ребят, кто что знает по программатору, поделитесь пожалуста.
Для передачи логического нуля мастер через транзистор замыкает шину на землю, а для передачи единицы — просто размыкает. Это сделано для того, чтобы обеспечить питание ведомого устройства. Ведомое устройство сделано аналогично, только оно не генерирует +5 вольт. Оно может только просаживать шину на землю, тем самым, передавая логический ноль.
Логическая единица передаётся просто «молчанием» устройства. Протокол работы. Сразу можно однозначно заметить, что парадом правит только Мастер, сам ключик DS1. A либо удерживает землю (мастер её сам выставляет шину в ноль), либо просто отмалчивается, в случае, если он хочет передать единицу, то он просто молчит. Смотрим рисунок. Импульс сброса и импульс инициализации. Домофон, в режиме простоя постоянно генерирует импульс RESET. Когда подключается таблетка, то она отвечает ему импульсом PREFERENCE, показывая мастеру о том, что можно с ней работать.
Это одни из самых длинных импульсов. Обрати внимание, как сделана передача нуля и единицы.
В любом случае импульс «роняется» на землю, но если передаётся единица, то он быстро восстанавливается (около 1 микросекунды), если же должен быть ноль, то импульс некоторое время «висит» на земле, затем возвращается опять в единицу. Возвращение в единицу нужно для того, чтобы пассивное устройство постоянно пополняло энергию конденсатора, и на ней было питание. Далее домофон выдерживает некоторое время и начинает генерировать импульсы приёма информации, всего 6.
Ключ лишь должен правильно сопоставить длительности. Если он хочет вывести ноль, то он удерживает шину некоторое время в нуле, если же нет, то просто молчит. Всё остальное за него делает домофон.
Содержимое ключа DS1. A. В домофонах, и просто устройствах, где для открытия дверей используется подобные устройства, применяется ключ стандарта DS1. A. Это устройство представляет собой 8- ми байтовое ПЗУ, с информацией записанной лазером. Схема дампа ключа.
В младшем байте содержится код семейства. Для DS1. 99. 0A он всегда будет равен 0. В шести последующих байтах содержится серийный номер ключа. То самое сокровенное, что идентифицирует ключик.
Последний байт называется CRC, это контроль чётности, обеспечивающий подлинность переданных данных. Он вычисляется из семи предыдущих байт. К слову заметить, что это не единственный стандарт. Существуют перезаписываемые ПЗУ, на которых можно носить информацию, также есть ключи шифрования. Но всё многообразие таблеток Dallas просто нереально рассмотреть в рамках одной статьи, о них можно почитать на диске. Физическое устройства ключа. Наверное, всё вышесказанное отбило всякое желание заниматься эмуляторами ключей, ведь ключ надо прочитать, а это такой геморрр.
Оказывается нет! Производители Dallas позаботились о нас и всю необходимую для нас информацию разместил непосредственно на ключе, при том в шестнадцатеричной системе! Она выгравирована на нём и её вполне можно прочитать, а потом в дальнейшем зашить в наш замечательный эмулятор. Морда ключа. Нас интересует из всей этой информации следующее: CC = CRC — это байт контроля чётности 7- й байт в прошивке. SSSSSSSSSSSS = двенадцать ниблов //нибл = 1/2 байта// серийного номера, т. Достаточно просто взять у недруга ключик в руки и переписать то, что на нём написано. Что я в общем- то с успехом и сделал.
Сначала я нашёл на каком- то сайте готовый эмулятор, зашил его в свой АТ8. С5. 1 и он не заработал (что не удивительно).
Но это не спортивно юзать чужие прошивки и отлавливать чужие, специально оставленные, баги в коде. По сему я начал делать свои эмуляторы и писать под них свои программы. В общем, я попробовал сделать эмулятор на 6 различных микроконтроллерах, разных архитектур, принадлежащих двум семействам AVR и i. Atmel. Заработал не на всех, и программ было написано уйма. По началу ставились вообще наполеоновские задачи сделать универсальный эмулятор с возможностью подборки ключа, но потом я оставил эту затею в силу её геморойности и бессмысленности, пусть ей займутся другие люди, кого заинтересует данная статья. Но себестоимость эмулятора, не считая затраченных трудов меньше 7. ATtiny. 12. Принцип действия эмулятора.
Мы достаточно подробно рассмотрели принцип работы домофона, и соответственно не составит большой проблемы описать алгоритм программы эмулятора DS1. A. Смотрим внимательно диаграмму, и думаем, что надо сделать. А делать надо следующее. Висящая в воздухе нога микроконтроллера (пока не присоединена к земле, импульс ресета) будет считаться контроллером логической единицей. Значится так, мы после подачи питания на котроллер должны ждать того пока наша ножка не уйдёт на землю, а ля в ноль. Как мы услышали ноль, радуемся, ждём некоторое время и переводим порт из режима чтения в режим записи. Затем роняем шину в ноль, и держим её некоторое время — генерим импульс PRESENCE (длительности импульсов смотри в даташите).
Дальше снова переводим шину в режим чтения, и ждём что же нам скажет мастер — домофон. Он нам скажет команду чтения, состоящую из 8- ми бит. Декодировать её не будем, т. Дальше ждём. И начинается самое сложное и интересное — надо быстро смотреть, что нам говорит домофон и отвечать ему тоже быстро. Нам нужно побитно выдать серийный номер, состоящий из 8- ми байт, о которых я говорил выше.
Я это делал следующим образом (не важно, какой микроконтроллер, принцип везде один будет), загружал байт в какой- нибудь свободный регистр, и сдвигал его вправо, и смотрел бит переноса. Как только домофон роняет шину в ноль, то если у меня флаг переноса установлен в еденицу, то я просто отмалчиваюсь на этот импульс, и жду генерации следующего импульса чтения бита от мастера. Если же у меня во флаге переноса находиться ноль, то после того как домофон уронит шину на ноль, я перевожу порт микроконтроллера в режим вывода и принудительно удерживаю шину в нуле некоторое время, потом отпускаю и обратно перевожу порт контроллера в режим чтения. По длительности импульса в земле устройство мастер понимает, передана была ли ему единица или нуль.