Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Замок на iButton DS1990

Непрочитано 26.09.2011, 22:24  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от Bar_boss Посмотреть сообщение
Я же описывал ситуацию - если в области памяти, где хранятся коды ключей записаны 0xFF (нули) это чревато тем, что многократном замыкании/размыкании входа ключа возможен вариант, что этот "дребезг" будет воспринят как "правильный" ключ.
Это только в случае программного промаха. Если нормально организовать алгоритм считывания, то такое "рукопашное" замыкание/размыкание никак не пройдет.
Знаете ли дребезг надо давить
Реклама:
realid вне форума  
Непрочитано 26.09.2011, 22:30  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от realid Посмотреть сообщение
Знаете ли дребезг надо давить

"Беспощадно!"(С)
st_1 вне форума  
Непрочитано 26.09.2011, 22:31  
Bar_boss
Гражданин KAZUS.RUN
 
Регистрация: 22.04.2007
Адрес: Минск
Сообщений: 565
Сказал спасибо: 53
Сказали Спасибо 104 раз(а) в 81 сообщении(ях)
Bar_boss на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от st_1 Посмотреть сообщение
У вас ресурс циклов безграничен???
Не понял??? Ключ записали в EEPROM один раз, при необходимости стёрли, записали по-новой. Полный "ресет" памяти (заполнение случайными значениями) сделали только при первом включении устройства. Я же не пишу в EEPROM каждый раз при чтении ключа. Это происходит толко тогда, когда удаляется старый или записывается новый ключ в память. Ну не каждый же день вы будете удалять одни и записывать другие ключи? Кстати, а в домофонах разве по другому? Там ключи вроде бы тоже храняться в EEPROM, одни удаляют, другие записывают и про "ресурс циклов" что-то никто не говорит
Bar_boss вне форума  
Непрочитано 26.09.2011, 22:33  
Maxim39
Прописка
 
Аватар для Maxim39
 
Регистрация: 07.02.2010
Адрес: Калининград
Сообщений: 148
Сказал спасибо: 72
Сказали Спасибо 23 раз(а) в 20 сообщении(ях)
Maxim39 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от realid Посмотреть сообщение
Каким образом? Если ваша программа пропускает замыкание, то это ваша ошибка.
Уважаемый, прочитай еще раз мой пост#61. Там написано что я отбраковываю такой ключ по умолчанию, а коллега выше предлагает пропускать.

Вот пример из моей проги.

;----------------------------------------------------------------------------
;подпрограмма проверки CRC для полинома CRC=X8+X5+X4+1
;применяется в ключах и девайсах Dalls iButton
;данная подпрограмма полностью исключает реакцию на замыкание или
;скользящее прикосновение ключа, принимает в дальнейшую обработку только исправный код
;----------------------------------------------------------------------------

CHECK_CRC MOVF CRC_iButton,f ; Проверяем CRC на ноль на случай если
BTFSC STATUS,Z ; какой-то мудак замкнул контакты нашего гнезда (в других случаях это невозможно)
GOTO Mistake ; и возращаемся в основную программу к точке "ошибка чтения" или "руки прочь от гнезда"
CLRF CRC_M ; очищаем результирующий регистр (в конце в нем останется результат деления)
MOVLW 0x38 ; указываем начальный адрес данных которые требуется проверить
MOVWF FSR ; в регистр FSR
L_CRC
MOVF INDF,w ; загружаем байт данных в аккумулятор W
CALL CRC_ROUT ; вызываем подпрограмму CRC_ROUT
INCF FSR,f ; переходим к следующему байту
MOVF FSR,w ; проверяем не дошли ли мы до последнего байта это тот что перед CRC_iButton
XORLW 0x3F ; (внимание нельзя допустить что бы произошло сравнение CRC и CRC) результат будет 0
BTFSS STATUS,Z ; если не дошли то
GOTO L_CRC ; переходим к следующему байту
MOVFW CRC_iButton ; если дошли то производим сравнение CRC_iButton и вычисленного
XORWF CRC_M,w ; а если не ноль то перед нами живой ключик
BTFSS STATUS,Z ; его и сравним с результатом деления
GOTO Mistake ; если не совпало значит есть неверный байт
GOTO Passed ; если совпало ключ считан верно

CRC_ROUT
MOVWF CRC_L ; сохраняяем байт во временном регистре
MOVLW 0x08 ; записываем количество ходов для преобразований
MOVWF COUNT ; в регистр счетчик
MOVF CRC_L,w ; снова берем байт
L1_CRC
XORWF CRC_M,w ; ксорим его с результирующим регистром
MOVWF TMP0 ; сохраняем результат во временном регистре
RRF TMP0,w ; сдвигаем в право
MOVF CRC_M,w ; подгружаем результирующий регистр
BTFSC STATUS,C ; проверяем был ли перенос 1 из младшего разряда TMP0
XORLW 0x18 ; если да то число нечетное и его ксорим с числом 0x18 (что такое незнаю но работает)
MOVWF TMP0 ; если нет число четное, ксорить его ненадо оставляем как было
RRF TMP0,w ; и просто сдвигаем в право
MOVWF CRC_M ; результат сохраняем в CRC_M
BCF STATUS,C ; здесь обнуляется флаг переноса если он был или небыл что бы в следующем цикле не ошибиться
RRF CRC_L,f ; сдвигаем исходный байт
MOVF CRC_L,w ; грузим его в аккумулятор

DECFSZ COUNT,f ; и если счетчик не дошел еще до 0
GOTO L1_CRC ; повторяем цикл
RETLW 0 ; если дошел переходим к следующему байту
__________________
Лужу, паяю, ЭВМ починяю.....

Последний раз редактировалось Maxim39; 26.09.2011 в 22:56. Причина: Вставил соурс.
Maxim39 вне форума  
Непрочитано 26.09.2011, 22:33  
Bar_boss
Гражданин KAZUS.RUN
 
Регистрация: 22.04.2007
Адрес: Минск
Сообщений: 565
Сказал спасибо: 53
Сказали Спасибо 104 раз(а) в 81 сообщении(ях)
Bar_boss на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от st_1 Посмотреть сообщение

"Беспощадно!"(С)
Гениально! (С). На микрочипе Грег, а у на кузусе - st_1. Ни одного толкового совета, но нравоучения на каждом шагу
Bar_boss вне форума  
Непрочитано 26.09.2011, 22:43  
st_1
Заблокирован
 
Регистрация: 26.12.2009
Сообщений: 3,102
Сказал спасибо: 113
Сказали Спасибо 860 раз(а) в 610 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от Bar_boss Посмотреть сообщение
Гениально! (С). На микрочипе Грег, а у на кузусе - st_1. Ни одного толкового совета, но нравоучения на каждом шагу
А вот это вы зря!!! Значит не в коня корм...
Я то ладно... Мои шутки многие неадекватно воспринимают... я отношусь к этому с пониманием... А по поводу Грега... видать вы не тем ухом его слушали... а и ладно... и распыляться не буду...

Удачи!!!
st_1 вне форума  
Непрочитано 26.09.2011, 22:44  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от Maxim39 Посмотреть сообщение
Уважаемый, прочитай еще раз мой пост#61. Там написано что я отбраковываю такой ключ по умолчанию, а коллега выше предлагает пропускать.
То есть вы отбраковываете ключ, а почему бы не определить что это замыкание и просто не читать?
Я встречал умышленно созданные ключи с неправильным CRC и полностью состоящим из 0. Типа мастер-ключи так называемые.
realid вне форума  
Непрочитано 26.09.2011, 22:46  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

А может ввести в записи ключа бит (байт) активности, если 1, то ключ активен, если 0 не активен, при переполнении памяти, ключи записывать в неактивные записи, что то вроде структуры с битом активности и байтами кода.
nonamedov вне форума  
Непрочитано 26.09.2011, 22:55  
Bar_boss
Гражданин KAZUS.RUN
 
Регистрация: 22.04.2007
Адрес: Минск
Сообщений: 565
Сказал спасибо: 53
Сказали Спасибо 104 раз(а) в 81 сообщении(ях)
Bar_boss на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от st_1 Посмотреть сообщение
А вот это вы зря!!! Значит не в коня корм...
Я то ладно... Мои шутки многие неадекватно воспринимают... я отношусь к этому с пониманием... А по поводу Грега... видать вы не тем ухом его слушали... а и ладно... и распыляться не буду...
Удачи!!!
Да ладно, извините, если обидел. И насчёт Грега, видимо, я не совсем прав. Просто, иногда действительно бывают вопросы, в которых пытаешься разобраться, а тебя как пацана начинают "строить". Делает человек что-то неправильно, ну подскажи, объясни. Форумы ведь для этого и созданы, не все тут гуру.
Bar_boss вне форума  
Непрочитано 26.09.2011, 22:56  
realid
Супер-модератор
 
Аватар для realid
 
Регистрация: 15.10.2007
Сообщений: 3,578
Сказал спасибо: 175
Сказали Спасибо 1,567 раз(а) в 810 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

Сообщение от nonamedov Посмотреть сообщение
А может ввести в записи ключа бит (байт) активности, если 1, то ключ активен, если 0 не активен, при переполнении памяти, ключи записывать в неактивные записи, что то вроде структуры с битом активности и байтами кода.
А почему бы не использовать первый байт ключа, он как известно не бывает 0xFF. Это и есть признак есть(!0xFF)/пусто(0xFF).
realid вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 12:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.