Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: demanik, ivan_fd  
RFID
mikhail09p Дата: Сб, 28.01.2017, 10:42  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Здравствуйте.
Помогите прочитать ключ RFID 125кГц.
Пробую делать с помощью компаратора на 628 пике.
Может, кто поделится примером расшифровки кода? В смысле протокола RFID. Буду очень благодарен.

Сообщение отредактировал mikhail09p - Сб, 28.01.2017, 12:16
ЯНДЕКС Дата: 28.01.2017
Matrix252005 Дата: Пн, 30.01.2017, 10:02  |                                                                                                                Сообщение # 2
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 636
Репутация: 43   ±
Замечания:   ±
На сайте с 12.10.2007

Статус: Offline

Приятного времени суток!!!

Михаил, гляньте тут, может что и пойдет:

http://www.protonbasic.co.uk/showthread.php/57744-Rfid


THE TRUTH IS OUT THERE.

С уважением, Николай.
mikhail09p Дата: Пн, 30.01.2017, 18:55  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Спасибо, Николай, но там немного...
Наверное, из местных никто этим не занимался...
anatol Дата: Пн, 30.01.2017, 19:12  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

там же http://www.protonbasic.co.uk/showthread.php/57682-Rfid-with-EM4095
Device 18F8520 XTAL = 10
Declare PLL_REQ = On
Symbol CLK = PORTB.1
Symbol DTA = PORTB.0
Dim NB_CLK As Byte
Dim VAR1[64] As Byte
Dim INDEX As Byte
Dim CNT As Byte
Dim I As Byte
Dim RESULT As Byte
Dim row_count, row_bit, column_count As Byte
Dim row_sum, column_sum As Byte
Dim row_check[5] As Byte
Dim column_check[11] As Byte
TRISB = %00000011
TRISD = 0
PORTD = 0
PORTB = 0
INDEX = 0
;================================================================
SERIAL_BAUD = 19200
RSOUT_PIN = PORTC.6
RSOUT_MODE = TRUE
RSOUT_PACE = 1
RSIN_PIN = PORTC.7
RSIN_MODE = TRUE
TRISC.6 = 0
TRISC.7 = 1
PORTC.6 = 1
DelayMS 100
RSOut "Initializing......",13
PORTB.2 = 1
DelayMS 1000
PORTB.2 = 0
RSOut "Ready......",13
;================================================================
AGAIN:
PORTB.2 = 1
DelayUS 100
PORTB.2 = 0
INDEX = 0
While DTA = 0 : Wend
While DTA = 1 : Wend ; WAIT FOR FALLING EDGE ON DATA PIN

PORTB.2 = 1
DelayUS 100
PORTB.2 = 0

;---- Detecting the 9 consecutive logic one----------------------
INDEX = 0
For I = 0 To 63
NB_CLK = 64 : GoSub CLK_WAIT ; WAIT FOR 64 CLOCK PULSE
RESULT = DTA ; GET A BIT EVERY 64 CLOCK PULSE
If RESULT = 1 Then
Inc INDEX
Else
INDEX = 0
EndIf
If INDEX = 9 Then GoTo AAA
Next
AAA:
If INDEX = 9 Then ; If Index = 9 then there is a valid data
For I = 9 To 63
NB_CLK = 64 : GoSub CLK_WAIT ; WAIT FOR 64 CLOCK PULSE
VAR1 = DTA ; GET A BIT EVERY 64 CLOCK PULSE
Next
For I = 0 To 8
VAR1 = 1
Next
Else ; else : no card or just placed two card in reader
GoTo AGAIN
EndIf

;--- CRC Checking ---------------------------------------------
GoSub CRC_Check
If RESULT = 0 Then
GoTo AGAIN
Else
RSOut "CRC Check ok",13
EndIf

;--- Display the result of data -------------------------------
For I = 0 To 63
RSOut Dec VAR1
Next
RSOut 13
PORTB.4 = 1
DelayMS 5000
PORTB.4 = 0
GoTo AGAIN
;================================================================
CLK_WAIT:
For CNT = 1 To NB_CLK
While CLK = 0 : Wend
While CLK = 1 : Wend
Next
Return
;================================================================
CRC_Check:
' row parity check:
row_count = 9 ' count rows
While row_count < 59
column_count = 0 ' count columns
While column_count < 5
row_check[column_count] = VAR1[row_count+column_count]
Inc column_count
Wend
row_bit = 0 ' count row bits
row_sum = 0
While row_bit < 4
row_sum = row_sum + row_check[row_bit]
Inc row_bit
Wend
I = row_check[4]
If row_sum.0 <> I.0 Then
RESULT = 0
Return
End If
row_count = row_count + 5
Wend
' end row parity check
' column parity check:
column_count = 9 ' count columns
While column_count < 13
row_bit = 0 ' count column bits
row_count = 0 ' count rows
While row_bit < 11
column_check[row_bit] = VAR1[column_count+row_count]
Inc row_bit
row_count = row_count + 5
Wend
row_bit = 0 ' count column bits
column_sum = 0
While row_bit < 10
column_sum = column_sum + column_check[row_bit]
Inc row_bit
Wend
I = column_check[10]
If column_sum.0 <> I.0 Then
RESULT = 0
Return
End If
Inc column_count
Wend
' end column parity check
If VAR1[63] = 1 Then
RESULT = 0
Return
End If
RESULT = 1
Return
;================================================================
End

Сообщение отредактировал anatol - Пн, 30.01.2017, 19:13
mikhail09p Дата: Вт, 31.01.2017, 09:10  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Что-то никак не пойму без схемы. Тут, похоже, принимается с какого-то модуля...
anatol Дата: Вт, 31.01.2017, 11:38  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

mikhail09p, я ссылку исходную приводил. Похоже чел использует (или конвертировал под протон программу) с этой отладочной платы http://download.mikroe.com/documen....100.pdf
а сам приемник отсюда http://www.advanide.com/wp-cont....095.pdf
К сожалению не могу понять что используешь - RFID (безконтактный радио) или простой кодовый.
Знаний по этой теме немного совсем. Одно знаю что для ответа метки сначала надо "зарядить" в ней конденсатор непрерывным излучением, а потом посылать код опроса.
MiXaS Дата: Вт, 31.01.2017, 16:22  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 545
Репутация: 27   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

mikhail09p, скажите, а готовый модуль не подходит? с выходом uart?

Добавлено (31.01.2017, 16:22)
---------------------------------------------
Я вот этот использовал. Скорость чтения так себе, но работает

mikhail09p Дата: Вт, 31.01.2017, 17:53  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Ого! На каком расстоянии считывает? И что значит - скорость считывания? 1 сек?

Хотя хотелось бы обойтись просто контроллером. У людей ведь работает.
anatol Дата: Вт, 31.01.2017, 21:05  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

mikhail09p, нарисуй схему твоего девайса. Можно не все. Нужна схема приемопередатчика (или готовый) и подключение к пику.
mikhail09p Дата: Вт, 31.01.2017, 21:46  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

Схема вот. Не моя, но такая же. В железе работает. Сигнал смотрю на PORTA.3.
Программу тоже прикрепляю.
Аппаратный шим генерит на 125 кГц. Ключ отзывается.
Прикрепления: 5683111.jpg (118.6 Kb) · FRID_16F628.bas (5.6 Kb)
anatol Дата: Ср, 01.02.2017, 23:19  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 471
Репутация: 32   ±
Замечания:   ±
На сайте с 10.02.2010

Статус: Offline

Смотрел вкользь - домашние заботы. Не понял чем вы раскачиваете усилитель Порт B в программе не просматривается. Также вопрос по контуру L1-C1 - настроен он на 125 кГц? От его качества сильно зависит чувствительность приемного тракта. При наличии осциллографа запрос и ответ можно посмотреть  на порте А1 (ваша схема).Принимаемый сигнал будет значительно отличаться по амплитуде.
ЯНДЕКС Дата: 01.02.2017
mikhail09p Дата: Пт, 03.02.2017, 21:46  |                                                                                                                Сообщение # 12
Группа: Проверенные
Ранг:  Помогаю всем
Сообщений: 481
Репутация: 14   ±
Замечания:   ±
На сайте с 04.05.2010

Статус: Offline

PortB.3 - это выход ШИМ. Про контур знаю. Осциллографом смотрю, сигнал есть. Вопрос по расшифровке.
Прикрепления: FRID_16F628.dsn (70.2 Kb)
Max_Ostin Дата: Вс, 07.10.2018, 17:17  |                                                                                                                Сообщение # 13
Группа: Пользователи
Ранг:  Новенький
Сообщений: 12
Репутация: 0   ±
Замечания:   ±
На сайте с 29.10.2017

Статус: Offline

Здравствуйте уважаемые форумчане, подскажите в чём проблема.
Заинтерисовала так называемая "открывашка", "таблетка" i-button, которая открывает почти все двери
с домофоном всем известных фирм (Цифрал, Метаком и другие).
Проштудировал ин-нет и узнал, что она эта "таблетка" (она же DS1990A, а может и нет?) осуществляет обмен по 1-проводной линии (протокола 1-Wire), изобретённой фирмой DALLAS.К этому же типу относится датчик температуры DS18S20 (есть ещё часы реального времени).
 Написал прогу, используя старую от датчика температуры, нарисовал в Протеусе схемку,
немного поколдовал и в Протеусе заработала. Спаял в "железе" на монтажной плате, она должна считывать помежуточное ПЗУ (Read ROM [33h]) и сохранить его в EEPROM. Затем, я EEPROM считываю через программатор узнаю его. Но прога в "железе" работает не правильно, чип видит подключение "таблетки" к слоту, гаснет красный и загорается зелёный диод.
Но при считывании EEPROM из чипа вижу восемь нулевых байтов. Про бывал изменять задержки в подпрограммах, в большую и в меньшую сторону - ничего не меняется. Из статьи о DS18S20, размерность задержек колеблется в два раза(!) и указанны только минимальные величины. А ведь помню, что кода-то давно собирал такой считыватель на базе 628А, и там в схеме присутствовал полевой транзистор (КП304А), и она нормально работала.
Правда в EEPROM сохранялось (могу и ошибаться), вроде четыре байта (может и шесть) и среди них не было байта 01h. И не помню в каких дебрях ин-нета я её нашёл.
 Кто делал в "железе", такой считыватель может подскажет, где ошибка?
 И если чисто логически поразмыслить прочитав статью в дополнениях, домофон не использует для
идентификации это самый серийный номер "таблетки".Потому, что он является уникальным и при потери его нельзя восстановить. А "таблетку" дубликат могут сделать в компании которая обслуживает домофоны.
Значить в "таблетке" есть какое-то одноразовое ПЗУ или електрически стираемое ПЗУ (как в DS18S20) которое есть в списке домофона для ключей которые открывают дверь?
Кто знает больше, скажите! 
И ещё маленький вопрос, а как эту CRC вычислять? Из материала про датчики DS1820 - ни чего не понял!

Прикрепления: INT.zip (1.13 Mb)
Aleksey_174 Дата: Пн, 08.10.2018, 05:44  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Новенький
Сообщений: 16
Репутация: 17   ±
Замечания:   ±
На сайте с 22.01.2017

Статус: Offline

Max_Ostin
Не понял ничего толком в вашем коде, вы пытаетесь прочитать ключ в побитовом режиме не подав на него команду чтения.
Обычный ключ ibutton содержит 8 байт информации, где 1 байт содержит идентификатор ключа обычно используется (01), 6 байт код ключа и один 1 CRC код.
CRC код используется для проверки целостности кода ключа.
Для того чтоб прочитать ключ с начала на него необходимо подать команду для чтения $33 или старые ключи $F0.
Для чтения и опроса ключа используй операторы QWrite и QRead
 DS1990:
       OWrite Key, 1, [$33]'      'Процедура чтения кода ключа  
       ORead Key, 0, [Str ID\8] 'в переменную ID
 Return
А для  вычисления CRC
 '--Процедура определения правильности кода ключа 
 Calculating_crc: 
    crc = 0 
    I = 0 
    TestBit = 0 
    Crcdata = ID[0] 
    GoSub CRC8 
    Crcdata = ID[1] 
    GoSub CRC8 
    Crcdata = ID[2] 
    GoSub CRC8 
    Crcdata = ID[3] 
    GoSub CRC8 
    Crcdata = ID[4] 
    GoSub CRC8 
    Crcdata = ID[5] 
    GoSub CRC8 
    Crcdata = ID[6] 
    GoSub CRC8 
Return 
CRC8: 
    For I = 0 To 7 ' для всех 8ми битов 
    TestBit = crc.0 ^ Crcdata.0   
    Crcdata = Crcdata >> 1 
    If TestBit = 0 Then Shift 
    crc = crc ^ $18 
    Shift:   
    crc = crc >> 1 
    crc.7 = TestBit 
Next
Переменные для них
Dim crc As Byte        'CRC
Dim Crcdata As Byte    'CRC
Dim TestBit As Bit     'CRC
Dim ID[8] As Byte      'буфер записи ключей
программа
gosub DS1990           'проверяем сунул ли кто нить ключ
                       'проверяем идентификатор ключа I-Button
If ID[0] = $1 Or ID[0] = $2 Then ')
GoSub Calculating_crc  'ключ есть проверяем на ошибки
If crc=ID[7] Then      'ошибок нет \\\\\\\\\\\\\\\\\\\\\\\\\\\
    Сам раньше баловался пока у нас домофоны не поменяли.
Anatoliy1000 Дата: Чт, 28.12.2023, 12:55  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 31
Репутация: 0   ±
Замечания:   ±
На сайте с 02.03.2016

Статус: Offline

Здравствуйте всем!
Подскажите есть ли готовая программка или готовые бюджетные решения открывашки электромеханического замка RFID ключем.
Ключ есть перезаписываемый 13,5 МГц (если на него нет прог, то 125КГц куплю).
Читалка ключей наверное самое бюджетное на алике 110р (ТУТ).
Замок есть на калитку электромагнитный бюджетник за 1,5к.


Я новичок. За помощь стараюсь плюсовать репутацию (пока других способов сказать спасибо не знаю).
  • Страница 1 из 1
  • 1
Поиск: