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

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

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

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

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

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

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

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

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

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

"Беспощадно!"(С)
st_1 вне форума  
Непрочитано 26.09.2011, 22:31  
Bar_boss
Гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Регистрация: 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,124
Сказал спасибо: 116
Сказали Спасибо 867 раз(а) в 614 сообщении(ях)
st_1 на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

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

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

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

А может ввести в записи ключа бит (байт) активности, если 1, то ключ активен, если 0 не активен, при переполнении памяти, ключи записывать в неактивные записи, что то вроде структуры с битом активности и байтами кода.
nonamedov вне форума  
Непрочитано 26.09.2011, 22:55  
Bar_boss
Гражданин KAZUS.RU
 
Регистрация: 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,532
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
realid на пути к лучшему
По умолчанию Re: Замок на iButton DS1990

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

Закладки
Опции темы

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

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

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


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


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot