8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
|
|
1 | |
.NET 4.x Считать Touch Memory28.02.2015, 18:33. Показов 2456. Ответов 6
Метки нет (Все метки)
Привет всем. Нашел считыватель ключей iButton RDS-01 USB (см на картинке его вид). А почему бы не сделать авторизацию в ПО через Touch Memory подумал я. На форму кинул SerialPort, подключился к нему и далее не знаю что делать. В интернете инфо не нашел. Подскажите пожалуйста как далее работать. Думаю, таймер должен лпрашивать устройство, в ответ получать команду пусто или ID таблетки Touch Memory.
0
|
28.02.2015, 18:33 | |
Ответы с готовыми решениями:
6
Touch memory ds1961s jquery touch - tap,touch,live Create an in memory bitmap and draw directly to the memory Оцените сборку пожалуйста. Нужно в основном считать считать и считать |
8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
|
||||||
14.11.2015, 16:50 [ТС] | 2 | |||||
Решил опять вернуться к данной теме. Знаю, что общение идет по интерфейсу 1-wire. После открытия COM порта и прилажениии таблетки придет массив битов. Пробовал так
0
|
8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
|
|||||||||||
19.11.2015, 20:55 [ТС] | 3 | ||||||||||
У меня таблетки фирмы Eltis, прочитал что это от компании Dallas, а значит работает по протоколу 1-Wire. Обмен данными происходит за счёт поочерёдного прижимания линии к земле, информация при этом кодируется длительностью таких сигналов. Происходит это примерно так:
Reset — мастер прижимает линию к земле как минимум на 480 микросекунд, это говорит о начале передачи данных. Presence — через некоторое время ключ отвечает импульсом около 120 микросекунд, что подтверждает его наличие на линии. Команда — мастер посылает команду из восьми бит, при этом логическая единица — это 1-15 микросекунд, а ноль — 60-120. Далее всё зависит от посланной команды. Обычно это 33h — "READ ROM", чтение серийного номера, после которого мастер читает 64 бита (1 байт — тип устройства, 6 байт — сам номер, 1 байт — CRC). Чтение каждого бита инициализируется мастером, для этого он посылает импульс в 1-15 микросекунд. Если после этого линия прижата к земле со стороны ключа на 60-120 микросекунд, то прочитан ноль, иначе — единица. Вот нашел часть кода, но C++
Добавлено через 21 час 42 минуты Есть у кого нибудь мысли??? За работу готов пополнить счет на телефоне
0
|
19.11.2015, 22:05 | 4 |
Мысли может и есть, а вот такого устройства точно нет. А не имея железки для проверки, копаться дистанционно-занятие малополезное.
Тогда вам в платный раздел. Если так, тема будет перенесена. Вы уверены, что хотите продолжить: Yes, No?
0
|
8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
|
|
13.01.2016, 21:53 [ТС] | 5 |
Да уверен. Мне нужно уже закрыть данный вопрос.
Кликните здесь для просмотра всего текста
принцип работы 1-Wire. Обмен данными происходит за счёт поочерёдного прижимания линии к земле, информация при этом кодируется длительностью таких сигналов. Происходит это примерно так: Reset — мастер прижимает линию к земле как минимум на 480 микросекунд, это говорит о начале передачи данных. Presence — через некоторое время ключ отвечает импульсом около 120 микросекунд, что подтверждает его наличие на линии. Команда — мастер посылает команду из восьми бит, при этом логическая единица — это 1-15 микросекунд, а ноль — 60-120. Далее всё зависит от посланной команды. Обычно это 33h — "READ ROM", чтение серийного номера, после которого мастер читает 64 бита (1 байт — тип устройства, 6 байт — сам номер, 1 байт — CRC). Чтение каждого бита инициализируется мастером, для этого он посылает импульс в 1-15 микросекунд. Если после этого линия прижата к земле со стороны ключа на 60-120 микросекунд, то прочитан ноль, иначе — единица. Как видите, прочитать ключ достаточно легко. Имитировать ключ гораздо сложнее, тем более многие домофоны используют разные хитрости. Вот основные подводные камни: Нужно всегда реагировать на reset, даже если он послан во время передачи данных. Импульс длиннее 480 микросекунд говорит о том, что надо начать всё сначала. Момент прикладывания ключа с его точки зрения — это тоже reset, ведь до этого питания не было. Поэтому теоретически домофон может и не посылать reset, и следует периодически отвечать сигналом presence по своей инициативе. Ключи могут реагировать и на другие команды: 0Fh как альтернатива 33h, SKIP ROM (CCh), MATCH ROM (55h) и самое хитрое, о чём я расскажу отдельно ниже, — SEARCH ROM (F0h). Некоторые домофоны могут послать самые разные комбинации таких команд, чтобы убедиться в том, что ключ настоящий. Бывает и обратная ситуация — домофон посылает команду, на которую ключ реагировать не должен. Дело в том, что некоторые программируемые ключи на них всё-таки реагируют, и так происходит ещё одна проверка. Необходимо полностью игнорировать всё, что идёт за этими командами, пока не будет послан reset. Для отсчёта времени лучше использовать асинхронный таймер в микроконтроллере, т.к. счёт идёт на микросекунды. Однако, установка кварца при этом будет излишней. Про SEARCH ROM (F0h) — это команда поиска всех 1-Wire устройств на шине. Дело в том, что теоретически можно подключить параллельно много ключей и получить список всех серийных номеров. В реальности для iButton такое не используется, ведь к домофону всегда прикладывается один ключ. Однако, некоторые домофоны посылают эту команду, ожидая найти один единственный серийный номер. Алгоритм весьма интересный. Каждое из устройств на шине одновременно посылает бит своего серийного номера, при чём два раза (т.е. мастер должен прочитать два бита). Сначала обычным образом, а затем инвертированным. Что же получается в итоге? Если у устройства в серийном номере стоит единица, то посылается «10». Если ноль, то «01». И всё отлично, пока у всех устройств эти биты совпадают. А если нет… Выше я написал, что при чтении наличие длинного сигнала — это 0, а отсутствие — это 1, т.е. 0 является доминантным. Таким образом, при возникновении конфликтов читаются два нуля. После получения «10», «01» или «00» мастер должен послать в линию только что прочитанный бит. В случае с «00» он таким образом выбирает, с какой группой устройств работать далее. В результате после N итераций получается бинарное дерево из N серийных номеров. Ответить на такую команду получается несколько сложнее, чем на обычный READ ROM. Нужно посылать каждый бит дважды — обычный и инвертированный, а затем проверять — совпадает ли с ним полученный от мастера ответ, и если не совпадает, то игнорировать дальнейшие команды.
0
|
8 / 8 / 6
Регистрация: 25.12.2013
Сообщений: 192
|
|
25.01.2016, 21:30 [ТС] | 6 |
НУЖНА ПОМОЩЬ
раньше было ради любопытства, а сейчас срочно внедрить надо в ПО
0
|
12079 / 8388 / 1281
Регистрация: 21.01.2016
Сообщений: 31,601
|
|
26.01.2016, 16:02 | 7 |
В чём именно помощь нужна-то? Протокол простой как две копейки. Примеров в сети по работе с ним предостаточно.
Добавлено через 17 минут На сайте производителя есть куча примеров, как работать с этим протоколом через последовательный порт: МаксимИнтегратед
0
|
26.01.2016, 16:02 | |
26.01.2016, 16:02 | |
Помогаю со студенческими работами здесь
7
Ipod touch Button (Touch out) Touch Input Работа с Touch Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |