Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541...

24
1 Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia – GO 62 – 3541-3230 Frequência 13.56MHz Protocolo ISO14443A Tags suportados MIFARE Ultralight®, MIFARE Classic® 1K, MIFARE Classic® 4K, Autodetecção Sim Antena integrada Sim Leitor/Gravador Sim Interface UART USB Tensão de Alimentação 5VDC Dimensão 70 x 114 × 30 mm

Transcript of Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541...

Page 1: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

1

Neokoros Brasil Ltda

Rua 86, 445, Setor Sul, Goiânia – GO

62 – 3541-3230

Frequência 13.56MHz

Protocolo ISO14443A

Tags suportados MIFARE Ultralight®, MIFARE Classic® 1K, MIFARE Classic® 4K,

Autodetecção Sim

Antena integrada Sim

Leitor/Gravador Sim

Interface UART – USB

Tensão de Alimentação 5VDC

Dimensão 70 x 114 × 30 mm

Page 2: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

2

1 - NK-RFID - Disposição Geral dos Conectores

1.1 - CN1 - Conector Host RS-232

Pino Função

1 VEXT

2 GND

3 HOST TX

4 HOST RX

1.2 - CN2 / CN3 - Conectores USB

4 - GND

3 - USB-DP

2 - USB-DM

1 - USB-VBUS

Pino Função

1 USB-VBUS

2 USB-DM

3 USB-DP

4 GND

1 - VEXT 2 - GND 3 - HOST TX 4 - HOST RX

Page 3: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

3

Pino Função

1 USB-VBUS

2 USB-DM

3 USB-DP

4 GND

1.3 - CN4 - ICSP (Interface para Conexão / Programação Serial)

Pino Função

1 VCC

2 GND

3 MCLR

4 PGC / LED 1

5 PGC / LED 2

1.4 - CN5 - Interface de Acionamento Externo (Buzzer, LED, GPIO)

Pino Função

1 VEXT

2 GND

3 GPIO

4 BUZZER

5 LED2

6 LED1

1.5 - CN6 - USB

Algumas versões da placa poderão contar com um conector do parão “USB Mini Tipo B” para o conector

CN6. Caso a placa não tenha sido montada com este tipo de conector, utilize a seguinte descrição de

pinagem / função de cada pino, se necessário:

4 - GND 3 - USB-DP 2 - USB-DM 1 - VBUS

4 - PGC 3 - MCLR 2 - GND 1 - VCC

5 - PGD

6 - LED

5 - LED

4 - BUZZER

3 - GPIO

2 - GND

1 - VEXT

Page 4: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

4

Pino Função

1 VBUS

2 D-

3 D+

4 ID

5 GND

6 SH

7 SH

8 SH

9 SH

1.6 - CN7 - Host TTL

O conector CN7 pode ser I2C, Serial TTL, Wiegand ou ABA Track

Pino Função

1 VEXT

2 GND

3 TXD/SDA/WIEGAND/ABATRACK2

4 TXD/SCL/WIEGAND/ABATRACK2

1.7 - CN8 - Aux RS-232

Pino Função

1 VEXT

2 GND

3 SLAVE-TX

4 SLAVE-RX

1.8 - CN9 - Host TTL

O conector CN9 pode ser I2C, Serial TTL, Wiegand ou ABA Track

Page 5: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

5

Pino Função

1 VEXT

2 GND

3 HOST-TX

4 HOST-RX

1.10 - CN11 - Aux RS-232

4 - SLAVE-RX

3 - SLAVE-TX

2 - GND

1 - VEXT

2 Funções dos Cartões Mifare e

A-Type (Tipo A)

2.1 Idle Request (Command = 0x21, _DEA_IDLE_REQ)

Este comando envia o comando REQA para sondar os campos dos cartões do Tipo A

● Command frame

LEN-H LEN-L CMD

0X0001 0x21

● Response frame (se a resposta for

OK)

LEN-H LEN-L Resp Data[0] Data[1]

0X0003 OK ATQA[0] ATQA[1]

Pino Função

1 VEXT

2 GND

3 SLAVE-TX

4 SLAVE-RX

1.9 - CN10 - Host RS -232

1 - VEXT

2 - GND 3 - HOST-TX 4 - HOST-RX

3 - TXD/SDA/WIEGAND/ABATRACK 2 2 - GND 1 - VEXT

4 - TXD/SCL/WIEGAND/ABATRACK 2

Pino Função

1 VEXT

2 GND

3 TXD/SDA/WIEGAND/ABATRACK2

4 TXD/SCL/WIEGAND/ABATRACK2

Page 6: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

6

- Data[0] : ATQA (menor byte) - Data[1] : ATQA (maior byte) exemplo:

Mifare retorna 0x00, 0x04.

- Resposta : OK(0x00) Err(verificar código de resposta– “response

code”).

2.2 Wakeup Request (Command = 0x22, _DEA_WAKEUP_REQ)

Envia o comando WUPA para sondar os campos dos cartões Tipo A. O comando WUPA é particularmente

enviado pelo PCD para colocar os PICCs que entraram em estado de parada (HALT STATE) em estado de

“pronto” (READY). A função WUPA é necessária no começo de uma nova seleção de um cartão.

● Command frame

LEN-H LEN-L CMD

0X0001 0x22

● Response frame (se a resposta for

OK)

LEN-H LEN-L Resp Data[0] Data[1]

0X0003 OK ATQA[0] ATQA[1]

- Data[0] : ATQA (menor byte)

- Data[1] : ATQA (maior byte)

- Resposta : OK(0x00) Err(verificar código de resposta– “response code”).

2.3 Anti-Collision (Command = 0x23, _DEA_ANTICOLL)

Inicia o “loop” anticolisão e retorna UID de um cartão no campo de operação da antena. Deverá ser

chamado após o REQA ou WUPA. Este comando suporta cascata de nível 1 (cascade level 1).

● Command frame

LEN-H LEN-L CMD

0X0001 0x23

● Response frame (se a resposta for OK)

LEN-H LEN-L Resp Data[0] Data[1] Data[2] Data[3]

0X0005 OK UID[0] UID[1] UID[2] UID[3]

Page 7: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

7

- Data[0…3] : UID[0] é o menor byte and UID[3] é o maiorbyte

- Response: OK(0x00) Err(verificar código de resposta– “resp

2.4 Select (Command = 0x24, _DEA_SELECT)

Seleciona o cartão com UID do cartão. Retorna SAK.

● Command frame

onse

code”).

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3]

0X0005 0x24 UID[0] UID[1] UID[2] UID[3]

- Data[0…3]: Card UID[0] ....... UID[3]

● Response frame

LEN-H LEN-L Resp Data[0]

0X0002 OK SAK

- Data[0]: SAK, Select acknowledge; (Selecionar reconhecimento). O SAK esperado para Mifareé

0x08, 0x28.

- Response: OK(0x00) Err(verificar código de resposta– “response code”).

2.5 Authentication Mifare (Command = 0x25, _DEA_AUTH)

Este comando inicia uma sequência de autenticação. Comando _DEA_LOADKEY (0x2F) deverá ser

executado antes deste comando porque as chaves deverão ser armazenadas na SRAM interna do leitor.

Recomendamos usar _DEA_AUTHKEY (0x30) ao invés deste comando.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2]

0X 0004 0x25 Mode KeyNo BlockNo

- Data[0]:

Data[0]: Modo (Mode)

0x00 Autenticação com chave A

0x04 Autenticação chave B

- Data[1]: Número (0-15) correspondente ao armazenamento da chave.

- Data[2]: Número de bloco do cartão.

Page 8: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

8

● Response frame

LEN-H LEN-L Resp

0X 0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.6 Halt (Command = 0x26, _DEA_HALT)

O comando aplica o estado de parada (HALT STATE) ao cartão selecionado.

● Command frame

LEN-H LEN-L CMD

0X0001 0x26

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.7 Read Mifare (Command = 0x27, _DEA_READ)

O comando lê um bloco (16 bytes) do bloco autenticado do cartão selecionado.

● Command frame

LEN-H LEN-L CMD Data[0]

0X 0002 0x27 BlockNo

- Data[0]: Número do bloco

● Response frame

LEN-H LEN-L Resp Data [0 ...15]

0X 0011 OK Bdata[0] ... Bdata[15]

- Response: OK(0x00), Err(verificar código de resposta – “response code”).

- Data[0 …15]: 16 byte de dados do bloco selecionado.

2.8 Write Mifare (Command = 0x28, _DEA_WRITE)

Este comando escreve um bloco (16 bytes) a um bloco autenticado do cartão selecionado.

● Command frame

LEN-H LEN-L CMD Data[0] Data [1 ...16]

0X0012 0x28 BlockNo Bdata[0] ... Bdata[15]

Page 9: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

9

- Data[0] : Número do bloco do cartão (bloco 0 não disponível) .

- Data[1… 16] : Dados a serem escritos no bloco selecionado.

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.9 Increment Mifare (Command = 0x28, _DEA_WRITE)

Este comando lê o bloco do valor acessado, checa a estrutura dos dados, aumenta conteúdo do valor do

bloco pelo valor transmitido (usando 31 bits menos significativos, não 32 bits) e armazena o resultado no

registro interno do cartão.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3] Data[4]

0X0006 0x29 BlockNo Value[0] Value[1] Value[2] Value[3]

- Data[0] : Número do bloco do cartão (bloco 0 não disponível).

- Data[1… 4] : O valor de incremento. A variável é interpretada como um valor de campointeiro(4bytes)

Ex. : se 1, 0x01 0x00 0x00 0x00

se 255, 0xFF 0x00 0x00 0x00

● Response frame

LEN-H LEN-L Resp

0X 0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.10 Increment Mifare (Command = 0x28, _DEA_WRITE)

Este comando lê o bloco do valor acessado, checa a estrutura dos dados, aumenta conteúdo do valor do

bloco pelo valor transmitido (usando 31 bits menos significativos, não 32 bits) e armazena o resultado no

registro interno do cartão.

● Command frame

LEN-H LEN-L CMD Data[0] Data [1] Data [2] Data [3] Data [4]

0X0006 0x2A BlockNo Value[0] Value[1] Value[2] Value[3]

Page 10: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

10

- Data[0] : Número do bloco do cartão.

- Data[1…4]: O valor de decremento. A variável é interpretada como um valor de campo inteiro(4bytes)

Ex. : se 1, 0x01 0x00 0x00 0x00

se 255, 0xFF 0x00 0x00 0x00

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.11 Increment and Transfer (Command = 0x2B, _DEA_INC_TRANS)

Este comando lê o bloco do valor acessado, checa a estrutura dos dados, aumenta o conteúdo do valor do

bloco pelo valor transmitido (usando 31 bits menos significativos, não 32 bits) e armazena o resultado no

registro interno do cartão([Trans BN] do formato do frame).

● Command frame

LEN-H LEN-L CMD Data[0] Data[1...4] Data[5]

0X007 0x2B BlockNo Value[0] ~ Value[4] Trans BN

- Data[0] : Número do bloco do cartão.

- Data[1…4]: O valor de incremento. A variável é interpretada como um valor de campointeiro(4bytes)

Ex. : se 1, 0x01 0x00 0x00 0x00

se 255, 0xFF 0x00 0x00 0x00

- Data[5] : Número do bloco do cartão o qual o valor aumentado vai transferir.

● Response frame

LEN-H LEN-L Resp

0X 001 OK(0x00), Err(verificar código de resposta – “response code”).

2.12 Decrement and Transfer (Command = 0x2C, _DEA_DEC_TRANS)

Este comando lê o bloco do valor acessado, checa a estrutura dos dados, diminui o conteúdo do valor do

bloco pelo valor transmitido (usando 31 bits menos significativos, não 32 bits) e armazena o resultado no

registro interno do cartão([Trans BN] do formato do frame).

● Command frame

LEN-H LEN-L CMD Data[0] Data[1...4] Data[5]

0X007 0x2C BlockNo Value[0] ~ Value[4] Trans BN

Page 11: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

11

- Data[0] : Número do bloco do cartão.

- Data[1…4]: O valor de decremento. A variável é interpretada como um valor de campo inteiro(4bytes)

Ex. : se 1, 0x01 0x00 0x00 0x00

se 255, 0xFF 0x00 0x00 0x00

- Data[5] : Número do bloco do cartão o qual o valor aumentado vai transferir.

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response

code”).

2.13 Restore Mifare (Command = 0x2D, _DEA_RESTORE)

Este comando lê o bloco do valor acessado, checa a estrutura dos dados, e armazena o resultado no

registro interno do cartão. Valor é armazenado apenas na memória volátil. Para armazenar esse valor em

um bloco de valor o comando _DEA_TRANSFER deverá ser executado após este comando.

● Command frame

LEN-H LEN-L CMD Data [0]

0X 0002 0x2D BlockNo

- Data[0] : Número do bloco do cartão

● Response frame

LEN-H LEN-L Resp

0X 0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.14 Transfer Mifare (Command = 0x2E, _DEA_TRANSFER)

Este comando transfere o conteúdo do registro interno do cartão ao endereço selecionado. O setor deve

ser autenticado para esta operação. A função de transferência pode ser chamada diretamente após o

Incremento, Decremento ou Restauração.

● Command frame

LEN-H LEN-L CMD Data [0]

0X0002 0x2E BlockNo

Page 12: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

12

- Data[0] : Número do bloco do cartão.

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.15 Load Key Mifare (Command = 0x2F, _DEA_LOADKEY)

Este comando escreve uma chave mestra na memória interna (FLASH) do leitor e a coloca no buffer de

chave mestra. Leitor pode armazenar 16 chaves em memória não volátil para procedimento de

autenticação do cartão acessado. Embora a energia esteja desligada, as chaves não são perdidas. Este

comando é utilizado para procedimento de autenticação.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] ... Data[7]

0X008 0x2F Mode KeyNo Key[0] ... Key[5]

- Data[0] : Mode

Data[0]: Load Key Mode (Modo de carregamento da chave)

0x00 Loading Key A (Carregamento da chave A)

0x04 Loading Key B (Carregamento da chave B)

- Data[1] : O número da chave ou índice(0 ~ 15) para autenticação

- Data[2…7]: Key[0]..[5], A chave de dados a ser armazenada na memória interna do leitor.

● Response: OK(0x00), Err(verificar código de resposta – “response code”).

2.16 Auth Key Mifare (Command = 0x30, _DEA_AUTHKEY)

Este comando escreve uma chave secreta diretamente no buffer de chave secreta e autentica o setor

selecionado com a chave submetida.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1...6] Data[7]

0X 0008 0x30 Mode Key[0] ...

Key[5]

Block No

- Data[0] : Mode

Data[0]: Load Key Mode (Modo de carregamento da chave)

0x00 Loading Key A (Carregamento da chave A)

0x04 Loading Key B (Carregamento da chave B)

- Data[1...6] : Key[0]..[5] A chave de dados a ser armazenada no buffer de chave secreta.

- Data[7]: O numeral do bloco para Autenticação.

Page 13: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

13

● Response frame

LEN-H LEN-L Resp

0X 0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.17 Request to Auth (Command = 0x31, _DEA_REQ_ANTI_AUTH)

Este comando executa as operações de Requisição (Request), Anticolisão e Autenticação todos de uma vez

e retorna a UID do cartão selecionado. Este comando usa os dados de chave armazenados na memória

interna. Antes de usá-lo, o comando _DEA_LOADKEY(0x2F) deverá ser executado.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3]

0X0005 0x31 R-mode A-mode Key No BlockNo

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, requisição de “despertar”)

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication Mode (Modo Autenticação)

0x00 Authentication with Key A (Autenticação com Chave A)

0x04 Authentication with Key B (Autenticação com Chave B)

- Data[2]: O número da chave ou índice (0 ~ 15) para autenticação.

- Data[3]: Número do bloco do cartão.

● Response frame

LEN-H LEN-L Resp Data[0] Data[1] Data[2] Data[3]

0X0005 OK UID[0] UID[1] UID[2] UID[3]

- Data[2]: O número da chave

- Data[3]: Número do bloco do

● Response frame

ou índice (0 ~ 15) para autenticação.

cartão.

LEN-H LEN-L Resp Data[0] Data[1] Data[2] Data[3]

0X0005 OK UID[0] UID[1] UID[2] UID[3]

- Data[0...3]: UID do cartão

- Response: OK(0x00), Err(verificar código de resposta – “response code”)

Page 14: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

14

2.18 Request to Auth (Command = 0x31, _DEA_REQ_ANTI_AUTH)

Este comando executa de uma vez as operações de Requisição (Request), Anticolisão com chave e retorna

a UID do cartão selecionado.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3...8]

0X000A 0X32 R-Mode A-Mode BlockNo Key [0..5}

- Data[0]: Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, requisição de “despertar”)

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication Mode (Modo Autenticação)

0x00 Authentication with Key A (Autenticação com Chave A)

0x04 Authentication with Key B (Autenticação com Chave B)

- Data[2] : Número do bloco (0 ~ 63) do

cartão

-

● Response frame

Data[3...8] : Chave de dados para autenticação o bloco selecionado

LEN-H LEN-L Resp Data[0] Data[1] Data[2] Data[3]

0X0005 OK UID[0] UID[1] UID[2] UID[3]

- Data[0…3] : UID do cartão.

- Response : OK(0x00), Err(verificar código de resposta – “response code”).

2.19 Increment and Transfer2 (Command = 0x33, _DEA_INC_TRANS2)

Este comando lê o valor do bloco acessado, checa a estrutura de dados, aumenta o conteúdo do bloco de

valor através do valor transmitido (usando os 31 bits mais significativos, não os 32 bits), armazena o

resultado no bloco selecionado do cartão e verifica o incremento correto.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1...4] Data[5]

0X0007 0x33 BlockNo Value[0]~[3]

Trans BN

Page 15: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

15

- Data[0]: Número do bloco do cartão.

- Data[1...4] : O valor de incremento. A variável é interpretada como um valor de campointeiro(4bytes)

Ex. : Se 1, 0x01 0x00 0x00 0x00

Se 255, 0xFF 0x00 0x00 0x00

- Data[5]: Número do bloco do cartão que o valor incrementado irá transferir

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.20 Decrement and Transfer2 (Command = 0x34, _DEA_DEC_TRANS2)

Este comando lê o valor do bloco acessado, checa a estrutura de dados e inconsistências, diminui o

conteúdo do valor do bloco pelo valor transmitido (usando 31 bits menos significativos, não os 32 bits),

armazena o resultado no bloco selecionado do cartão e verifica o decremento correto.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1...4] Data[5]

0X0007 0x34 BlockNo Value[0]~[4]

Trans BN

- Data[0]: O endereço do cartão de onde o bloco de valor é lido.

- Data[1...4]: O valor de decremento. A variável é interpretada como um valor de

campointeiro (4bytes) com o menor byte localizado no endereço inferior Ex. : se 1, 0x01

0x00 0x00 0x00 se 255, 0xFF 0x00 0x00 0x00

Data[5]: Número do bloco do cartão o qual o valor diminuído irá transferir

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.21 Request to Read A (Command = 0x35, _A_REQ_ANTI_AUTH_READ)

Este comando executa de uma vez as ações de Requisição (Request), Anticolisão, Autenticação e leitura e

retorna a UID e os dados dos blocos do cartão selecionado. Este comando usa os dados de chave

armazenados na memória interna. Antes de usá-lo o comando _DEA_LOADKEY(0x2F) deverá ser

executado.

Page 16: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

16

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3]

0X0005 0x35 R-mode A-mode Key No Block No

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, Requisição de “despertar”

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication Mode (Modo Autenticação)

0x00 Autenticação com Chave A

0x04 Autenticação com Chave B

- Data[2] : O número da chave ou índice(0 ~ 15) para autenticação- Data[3] : Números de bloco do cartão.

● Response frame

LEN-H LEN-L Resp Data[0...3] Data[4...19]

0X 0015 OK UID [0...3] Block Data [0...15]

- Data[0…3] : Número de série do cartão acessado

- Data[4…19] : Dados a serem lidos do bloco selecionado

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.22 Request to Read K (Command = 0x36, _DEA_REQ_ANTI_AUTHKEY_READ)

Este comando executa de uma vez as ações de Requisição (Request), Anticolisão, Autenticação e leitura e

retorna a UID e os dados dos blocos do cartão selecionado.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3..8]

0X000A 0x36 R-mode A-mode BlockNo Key[0..5]

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Autenticação)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, requisição de “despertar”)

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication Mode (Modo Autenticação)

0x00 Authentication with Key A (Autenticação com Chave A)

0x04 Authentication with Key B (Autenticação com Chave B)

- Data[2] : Número de bloco do cartão

- Data[3...8] : Dados de chave externa para autenticação do bloco selecionado

Page 17: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

17

● Response frame

LEN-H LEN-L Resp Data[0...3] Data[4...19]

0X 0015 OK UID [0...3] BlockData [0...15]

- Data[0...3] : Número de série do cartão acessado

- Data[4...19] : Dados a serem lidos do bloco selecionado

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.23 Request to Write A (Command = 0x37, _DEA_REQ_ANTI_AUTH_WRITE)

Este comando executa de uma vez as ações de Requisição (Request), Anticolisão, Autenticação e escrita

e retorna a UID do cartão selecionado. O comando usa dados de chave interna armazenada na memória

interna. Antes de usá-lo, o comando _DEA_LOADKEY(0x2F) deverá ser executado.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[4...19]

0X0015 0x35 R-mode A-mode BlockNo BlockData[0...15]

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, requisição de “despertar”)

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication (Modo Autenticação)

0x00 Authentication with Key A (Autenticação com Chave A)

0x04 Authentication with Key B (Autenticação com Chave B)

- Data[2] : O número da chave ou índice(0 ~ 15) para autenticação

- Data[3] : Número de bloco do cartão.

- Data[4...19] : Dados a serem escritos no bloco selecionado

● Response frame

LEN-H LEN-L Resp Data[0...3]

0X 0005 OK UID [0...3]

- Data[0...3] : UID do cartão selecionado

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

Page 18: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

18

2.24 Request to Write K (Command = 0x3 8, _DEA_REQ_ANTI_AUTHKEY_WRITE)

Este comando executa de uma vez as ações de Requisição (Request), Anticolisão, Autenticação e escrita e

retorna a UID do cartão selecionado.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2] Data[3...8] Data[9~24]

0X001A 0x35 R-mode A-mode BlockNo Key [0...5] BlockData [0...15]

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, Requisição de “despertar”)

- Data[1] : Authentication Mode (Modo Autenticação)

Data[1]: Authentication Mode (Modo Autenticação)

0x00 Authentication Mode with Key A (Autenticação com Chave A)

0x04 Authentication Mode with Key B (Autenticação com Chave B)

- Data[2] : Número de bloco do cartão acessado.

- Data[3...8] : Dado de chave externa(6byte) para autenticação do bloco selecionado.

- Data[9...24] : Dados a serem escritos no bloco selecionado.

● Response frame

LEN-H LEN-L Resp Data[0...3]

0X 0005 OK UID [0...3]

- Data[0…3] : UID do cartão selecionado

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.25 Request to Select (Command = 0x39, _DEA_REQ_ANTI_SEL)

Este comando executa de uma vez as ações de Requisição (Request), Anticolisão, e Seleção e retorna o SAK

e a UID do cartão selecionado. Suporta até o terceiro nível de cascata (up to cascade level 3).

● Command frame

LEN-H LEN-L CMD Data[0]

0X0002 0x39 RMode

- Data[0] : Request Mode (Modo Requisição)

Data[0]: Request Mode (Modo Requisição)

Page 19: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

19

0x00 Request Idle (Requisição em Espera)

0x01 Request All, Wakeup Request (Requisição total, Requisição de “despertar”)

● Response frame

LEN-H LEN-L Resp Data[0...]

0X0005 OK SAK[1]+UID[0...]

- SAK: 1Byte SAK

- Data[0…] : 4,7 ou 10 Bytes UID do cartão selecionado

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.26 Write Ultra Light (Command = 0x3B, _DEA_UWRITE)

Este comando escreve 4 bytes em um endereço selecionado do cartão Mifare ultra light

● Command frame

LEN-H LEN-L CMD Data[1...4]

0X0006 0x3B Bdata [0] ... Bdata [3]

- Data[0]: endereço do cartão Mifare ultra light.

- Data[1…4] : dados(4byte) a serem escritos no endereço selecionado.

● Response frame

LEN-H LEN-L Resp

0X0001 OK(0x00), Err(verificar código de resposta – “response code”).

2.27 Full Anti-Collision and Select (Command = 0x3D, _DEA_ANTI_SEL_LEVEL)

Este comando inicia a anticolisão e seleciona a sequência em modo cascata (cascade mode) para obter UID

completa quando seu tamanho é maior do que o tamanho único no comando tipo A. O comando

“Request” deverá ser executado antes.

● Command frame

LEN-H LEN-L CMD

0X0002 0x3D

● Response frame (se a resposta é OK)

LEN-H LEN-L Resp Data[0] Data[1...N-1]

Page 20: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

20

N+1 OK SAK UID [0...N-2]

- Data[0] : SAK, Select Acknowledge (Selecionar Reconhecer)

- Data[1...N-1] UID do cartão, o comprimento do UID é 4(Tamanho único) ou 7(Tamanho duplo) ou

10(Tamanho triplo).

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

Ex:

Commands Responses

REQA : 0xA1 0x00 0x07 0x26 ATQA : 0x04 0x00

ANTI_SEL : 0x3D S AK + UID : 0x08 0xB2 0xFA 0x26 0x1F 0x71

2.28 Anti-Collision Level (Command = 0x3E, _DEA_ANTICOLL_LEVEL)

Este comando executa a sequência anticolisão definida por cada nível de cascata no modo bit. Será usado

para saber os dados UID (número de série 4-byte + 1-byte LRC) durante a função de anticolisão em cada

nível. Retorna apenas UID de 5-bytes ou um nível definido em caso de não haver colisão. Seleção de

sequência será executada usando o comando _DEA_TRANSPARENT contendo dados SEL_CODE e um UID

de 5-bytes após este comando. Por favor consulte a especificação ISSO 14443 Parte 3 para obter sequência

detalhada em modo cascata.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1] Data[2...5]

0X 007 0x3E Cascade Level Bit count Valid UID

- Data[0] : Cascade Level (Nível de Cascata)

Data[0]: Cascade Level (Nível de Cascata)

0x93 Cascade Level 1 (Equal or More than single UID - Igual ou maior que UID único

0x95 Cascade Level 2 (Equal or More than double UID - Igual ou maior que UID duplo

0x97 Cascade Level 3 (Triple UID) UID triplo

- Data[1] : Contagem de Bits(Contagem de bits UID válido, 0 ~ 32) - Data[2..5] : N-

bytes UID válido.

● Response frame (Se a resposta for OK)

LEN-H LEN-L Resp Data [0]

0X 0005 OK UID[0..3] or CT + UID [0..2]

- Data[0…3]: CT é cascade tag, UID is UID do cartão.

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

Ex:

Commands Responses

REQA : 0xA1 0x00 0x07 0x26 ATQA : 0x04 0x00

Page 21: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

21

Level 1 ANTI : 0x3E 0x93 0x00 UID : 0xB2 0xFA 0x26 0x1F 0x71

Level 1 SEL : 0x41 0x93 0x70 0xB2 0xFA 0x26 0x1F 0x71 SAK : 0x08

2.29 Select Level (Command = 0x3F, _DEA_SELECT_LEVEL)

Este comando inicia a sequência de seleção. Será usado quando o tamanho do UID for maior que o

tamanho único para obter UID completo. Não implementado na versão ISO156963.

● Command frame

LEN-H LEN-L CMD Data[0] Data[1..4]

0x0005 0c3F Cascade Level UID

- Data[0](Cascade Level) :0x93 = Cascade Level maior que o UID único

0x95 = Cascade Level 2 (Equal or More t duplo

0x97 = Cascade Level 3 (Triple UID) UID Triplo

- Data[1..4] : UID

● Response frame (Se a resposta for OK)

(Equal or

More

han Double UID)

than single UID) Igual ou

Igual ou maior que o

UID

LEN-H LEN-L Resp Data[0]

0x0005 OK SAK

- Data[0] : SAK, Select Acknowledge (Seleção Reconhecimento)

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.30 Device Information (Command = 0x40, _DEA_DEVINFO)

Este comando retorna a Identificação do Tipo de Produto e o Número de Serial do leitor.

● Command frame

LEN-H LEN-L CMD

0x01 0x40

1

Page 22: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

22

● Response frame (Se a resposta for OK)

LEN-H LEN-L Resp Data [0...N-1]

N+1 OK PSNR[0...N-1]

- Data [0…N-1] : Número Serial do Produto (No caso da DE-620, 12 bytes)

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.31 Type-A Transparent (Command = 0x41, _DEA_TRANSPARENT)

Leitor recebe dados do “host” e os envia com o CRC computado ao cartão. O “host” não necessita

computar CRC de 2-bytes. Leitor extrai dados CRC de 2-bytes da resposta de dados do cartão.

● Command frame

LEN-H LEN-L CMD Data [0...N-2] Data [N-1]

N +1 0x41 APDU TOUT

- Data[0…N-2] : APDU para ser enviada ao cartão. Leitor computa CRC e os anexa à APDU.

- Data[N-1]: TOUT, Valor de timeout – leitor espera pela resposta do cartão.

Tabela 1 < Tabela de Time Out >

Valor TOUT em hexadecimal Valor de Tempo FWI

0x02 1.208 msec 2

0x03 2.416 msec 3

0x03 4.832 msec 4

0x0A 9.664 msec 5

0x14 19.32 msec 6

0x27 38.66 msec 7

0x4E 77.3 msec 8

0x9B 154.6 msec 9

0xB0 ~ 309.3 msec 10

0xC0 ~ 618.6 msec 11

0xD0 ~ 1.2371 msec 12

0xE0 ~ 2.4742 msec 13

0xF0 ~ 4.9485 msec 14

Page 23: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

23

0xFF 9.897 msec 15

● Response frame

LEN-H LEN-L Resp Data [0...N-1]

N +1 OK APDU

- Data [0…N-1] : APDU recebida do Cartão, exceto CRC de 2-bytes.

- Response: OK(0x00) Err(verificar código de resposta – “response code”).

2.32 Type-A Transparent2 (Command = 0x47, _DEA_TRANSPARENT2)

Leitor recebe dados do “host” e ignora dados para o cartão. “Host” deve computar CRC de 2-bytes de

dados e enviar 2-bytes de dador CRC computados com APDU para o módulo de RF. Leitor recebe dados de

resposta do cartão e ignora dados recebidos ao “host”.

● Command frame

LEN-H LEN-L CMD Data [0...N-2] Data [N-1]

N +1 0x47 APDU+CRC TOUT

- Data[0…N-2] : APDU para ser enviada ao Cartão. Um HOST computa o CRC e deve anexa-lo à APDU.

- Data[N-1]: TOUT, Valor de Timeout – Leitor espera pela resposta do cartão. Ver Tabela 1.

● Response frame

LEN-H LEN-L Resp Data [0...N-1]

N +1 OK APDU+CRC

- Data[0…N-1] : APDU recebida do cartão

- Response: OK(0x00)

2.33 NFC T1 Tag Transparent (Command = 0x6B)

Leitor recebe dados do “host” e envia dados com o CRC computado para o NFC T1 Tag(TOPAZ). “Host” não

necessita computar o CRC de 2-bytes. Leitor extrai os dados CRC de 2-bytes dos dados de resposta do

cartão.

● Command frame

LEN-H LEN-L CMD Data [0...N-2] Data [N-1]

N +1 0x6B CMD+DATA TOUT

- Data[0…N-2] : APDU a ser enviado ao cartão. Leitor computa CRC e o anexa à APDU

- Data[N-1]: TOUT, Valor de Timeout – leitor espera pela resposta do cartão.

Page 24: Neokoros Brasil Ltda Rua 86, 445, Setor Sul, Goiânia 3541 ...neokoros.com/home/wp-content/uploads/2018/07/NKRFID.pdf · 4 TXD/SCL/WIEGAND/ABATRACK2 -CN8 Aux RS1.7 232 Pino Função

24