As etiquetas RFID (Tag) e os leitores (Reader) que estejam em conformidade com o protocolo EPC Class1 Gen2 (G2) versão V109 devem ter as seguintes características:
1. Partição de memória de tags
A memória de tags é dividida em quatro bancos independentes (reservados): EPC (código eletrônico do produto), TID (número de identificação da tag) e User (usuário).
Reservado: Armazene Kill Password (senha de eliminação) e Access Password (senha de acesso).
EPC: Armazena números EPC, etc.
TID: Número de identificação da etiqueta da loja, cada número TID deve ser único.
Usuário: Armazena dados definidos pelo usuário.
Além disso, também há unidades de armazenamento usadas nos bits de status Lock (bloqueio) de cada bloco.
Em segundo lugar, o estatuto do rótulo
Após receber irradiação de onda contínua (CW) e inicialização (Power-up), o rótulo pode estar em Pronto (preparar), Arbitrar (cortar), Responder (retornar ordem), Reconhecido (resposta), Aberto (público), Protegido (proteger), Morto (inativado), um dos sete estados.
O estado Pronto é o estado em que o rótulo que não foi desativado está ligado, pronto para responder aos comandos.
O estado Arbitrate serve principalmente para aguardar a resposta de comandos como Query.
Após responder à Consulta, ele entra no estado de Resposta e responde ao comando ACK para enviar de volta o número EPC.
Após enviar de volta o número EPC, ele entra no estado Reconhecido e pode responder ao comando Req_RN.
A senha de acesso não é 0 para entrar no estado aberto, e as operações de leitura e gravação são realizadas aqui.
Somente quando a senha de acesso for conhecida, ele poderá entrar no estado protegido e executar operações como leitura, gravação e bloqueio.
A etiqueta que entra no estado "Inativado" permanecerá no mesmo estado e nunca gerará um sinal modulado para ativar o campo de radiofrequência, invalidando-o permanentemente. As etiquetas inativadas devem manter o estado "Inativado" em todos os ambientes e entrar no estado "Inativado" quando ligadas, sendo a operação de inativação irreversível.
Para fazer com que a tag entre em um determinado estado, geralmente é necessário um conjunto de comandos válidos na ordem correta. Por sua vez, cada comando só pode ser efetivo quando a tag estiver no estado correto, e a tag também alternará para outros estados após responder ao comando.
Três, classificação de comando
Da perspectiva da arquitetura e escalabilidade do sistema de comando, ele é dividido em quatro categorias: Mandatory (obrigatório), Optional (opcional), Proprietary (proprietário) e Custom (personalizado).
Do ponto de vista da função de uso, ele é dividido em três tipos de comandos de rótulo: Select (selecionar), Inventory (inventário) e Access (acesso). Além disso, para expansão futura dos comandos, códigos de diferentes comprimentos são reservados para uso.
Quarto, o comando necessário (obrigatório)
Etiquetas e leitores que estejam em conformidade com o protocolo G2 devem suportar onze comandos necessários:
Selecione
Consulta
QueryAdjust (ajustar consulta)
QueryRep (consulta repetida)
ACK (resposta EPC)
NAK (voltar ao julgamento)
Req_RN (solicitação de número aleatório)
Ler
Escrever
Matar (inativar)
Trancar
Cinco, comando opcional (Opcional)
Para tags e leitores que estão em conformidade com o protocolo G2, há três comandos opcionais: Access, BlockWrite e BlockErase.
Seis comandos proprietários (Proprietary)
Comandos proprietários são geralmente usados para fins de fabricação, como testes internos de etiquetas. Tais comandos devem ser permanentemente inválidos após a etiqueta sair da fábrica.
Sete, comando personalizado (Custom)
Pode ser um comando definido pelo fabricante e aberto aos usuários. Por exemplo, a Philips oferece: BlockLock (bloqueio de bloqueio), ChangeEAS (alteração do status do EAS), EASAlarm (alarme do EAS) e outros comandos (EAS é um sistema eletrônico antirroubo comum, abreviação de artigo eletrônico para Vigilância).
8. Do ponto de vista funcional: comandos select (Selecionar)
Existe apenas um: Selecionar, que é necessário. As etiquetas possuem uma variedade de atributos. Com base nos padrões e estratégias definidos pelo usuário, use o comando Selecionar para alterar alguns atributos e sinais. Um grupo específico de etiquetas pode ser selecionado ou delineado. Você só pode realizar operações de reconhecimento ou acesso de inventário nelas. Propício para reduzir conflitos e identificações repetidas, acelerando a identificação.
Nove, do ponto de vista funcional: comandos de inventário (Inventory)
Existem cinco: Query, QueryAdjust, QueryRep, ACK, NAK, todos necessários.
1. Após a tag receber um comando de consulta válido, cada tag que atender aos critérios definidos e for selecionada gerará um número aleatório (semelhante a uma jogada de dados), e cada tag com um número aleatório de zero gerará uma resposta (a senha temporária RN16 será enviada de volta), um número aleatório de 16 bits) e será transferida para o estado de resposta; as tags que atenderem a outras condições alterarão certos atributos e sinais, saindo do grupo de tags mencionado acima, o que é benéfico para reduzir a identificação repetida.
2. Depois que as tags recebem um comando QueryAdjust válido, cada tag gera um novo número aleatório (como rolar novamente um dado), e o resto é o mesmo que Query.
3. Depois que a tag recebe um comando QueryRep válido, ela subtrai apenas um do número aleatório original de cada tag no grupo de tags, e os outros são iguais aos da Consulta.
4. Somente tags singulares podem receber um comando ACK válido (usando o RN16 acima, ou Handle, um número aleatório de 16 bits que representa temporariamente a identidade da tag, que é um mecanismo de segurança) e enviá-lo de volta para a área EPC após recebê-lo. O conteúdo, a função mais básica do protocolo EPC.
5. Após a tag receber um comando NAK válido, ela irá para o estado Arbitrate em outras situações, exceto no estado Ready and Killed.
10. Do ponto de vista funcional: Comandos de acesso
Há cinco necessários: Req_RN, Read, Write, Kill, Lock e três opcionais: Access, BlockWrite, BlockErase.
1. Após a tag receber um comando Req_RN válido (com RN16 ou Handle), ela envia de volta o handle ou um novo RN16, dependendo do status.
2. Após a tag receber um comando Read (com Handle) válido, ela envia de volta o código do tipo de erro ou o conteúdo e o handle do bloco solicitado.
3. Após a tag receber um comando de gravação válido (com RN16 e identificador), ela enviará de volta o código do tipo de erro ou, se a gravação for bem-sucedida, ela enviará de volta o identificador.
4. Após a tag receber um comando Kill válido (com Kill Password, RN16 e Handle), ela enviará de volta o código do tipo de erro, ou o handle será enviado de volta se a inativação for bem-sucedida.
5. Após a tag receber um comando de bloqueio válido (com identificador), ela enviará de volta o código do tipo de erro, ou o identificador será enviado de volta se o bloqueio for bem-sucedido.
6. Após a tag receber um comando de acesso válido (com senha de acesso, RN16 e identificador), ela envia de volta o identificador.
7. Após a tag receber um comando BlockWrite (com Handle) válido, ela enviará de volta o código do tipo de erro ou, se o bloco for gravado com sucesso, ela enviará de volta o handle.
8. Após a tag receber um comando BlockErase (com Handle) válido, ela enviará de volta o código do tipo de erro ou, se a eliminação do bloco for bem-sucedida, ela enviará de volta o handle.
11. Qual mecanismo o G2 usa para evitar conflitos?
Conforme mencionado na resposta acima, quando mais de uma etiqueta com um número aleatório igual a zero é enviada de volta para uma RN16 diferente, elas terão diferentes formas de onda RN16 sobrepostas na antena receptora, o que é chamado de colisões, e, portanto, não podem ser decodificadas corretamente. Existem diversos mecanismos anticolisão para evitar sobreposição e deformação da forma de onda, como tentar (divisão de tempo) fazer com que apenas uma etiqueta "fale" por vez e, em seguida, singularizá-la para identificar e ler cada uma das múltiplas etiquetas RFID UHF.
Os três comandos do cabeçalho Q acima refletem o mecanismo anticolisão do G2: a etiqueta com um número aleatório de zero pode ser enviada de volta para o RN16. Se houver várias etiquetas com um número aleatório de zero ao mesmo tempo e não puderem ser decodificadas corretamente, a palavra Q deve ser retransmitida estrategicamente. O comando ou combinação do cabeçalho é dado ao grupo de etiquetas selecionado até que possa ser decodificado corretamente.
12. Como obter a exclusividade do número de identificação da etiqueta (TID)
O número de identificação da etiqueta, TID (Tag identifier), é um sinal de distinção de identidade entre etiquetas (pode ser análogo ao número de uma nota). Do ponto de vista da segurança e do combate à falsificação, quaisquer duas etiquetas G2 não devem ser exatamente iguais e devem ser únicas. Cada um dos quatro blocos de armazenamento da etiqueta é útil, e alguns deles podem ser reescritos a qualquer momento após saírem da fábrica. Somente o TID deve ser capaz de realizar essa tarefa, portanto, o TID da etiqueta deve ser único.
Antes de sair da fábrica, o fabricante do chip G2 deve usar o comando Lock ou outros meios para agir no TID para torná-lo permanentemente bloqueado, e o fabricante ou organização relevante deve garantir que o TID do comprimento apropriado de cada chip G2 seja único, e não haverá um terceiro. Dois TIDs idênticos, mesmo que uma tag G2 esteja no estado Killed e não seja ativada e usada novamente, seu TID (ainda nesta tag) não aparecerá em outra tag G2.
Dessa forma, como o TID é único, embora o código EPC na etiqueta possa ser copiado para outra etiqueta, ele também pode ser distinguido pelo TID na etiqueta, tornando o original mais claro. Esse tipo de estrutura e método é simples e viável, mas preste atenção à cadeia lógica que garante a exclusividade.
A versão V109 do protocolo G2 requer apenas 32 bits (incluindo o identificador de classe de alocação de 8 bits, o identificador de designer de máscara de tag de 12 bits e o número do modelo de tag de 12 bits) para TID. Para mais bits, por exemplo, SNR (número de série) é "Tags may contain" em vez de " should contain". No entanto, como o número EPC foi projetado para ser usado para distinguir um único produto, 32 bits provavelmente não é suficiente, e ele deveria ter SNR.
13. Comando Kill no protocolo G2
O protocolo G2 configura o comando Kill e usa uma senha de 32 bits para controlá-lo. Após o comando Kill ser usado efetivamente, a etiqueta nunca gerará um sinal de modulação para ativar o campo de radiofrequência, que é permanentemente inválido. Mas os dados originais ainda podem estar na etiqueta. Se você quiser lê-los, não é completamente impossível. Você pode considerar melhorar o significado do comando Kill e apagar os dados.
Além disso, em um determinado período de tempo, devido ao custo de uso de etiquetas G2 ou outros motivos, será considerada a reciclagem e a reutilização de etiquetas (como usuários que desejam usar paletes e caixas etiquetadas por vez, e o número EPC correspondente, Usuário O conteúdo da área precisa ser reescrito; é caro, inconveniente, etc. substituir ou recolocar a etiqueta. Requer um comando que pode ser reescrito mesmo se o conteúdo da etiqueta estiver permanentemente bloqueado. Devido à influência de diferentes estados de bloqueio, apenas o comando Write ou BlockWrite, BlockErase pode não ser capaz de reescrever o número EPC, o conteúdo do usuário ou a senha (por exemplo, o número EPC de uma etiqueta está bloqueado para que não possa ser reescrito, ou não está bloqueado, mas a senha de acesso desta etiqueta é esquecida e não pode ser reescrita). Isso cria um requisito que requer um comando Erase simples e claro - exceto para a área TID e seu bit de status Lock (TID não pode ser reescrito depois que a etiqueta sai da fábrica), outros números EPC, o conteúdo da área Reservada, a área do usuário e outros bits de estados de bloqueio, mesmo que estejam permanentemente bloqueados, serão todos apagados em preparação para reescrita.
Em comparação, o comando Kill aprimorado e o comando Erase adicionado têm basicamente as mesmas funções (incluindo a senha Kill, caso ambos sejam usados). A única diferença é que o comando Kill anterior não gera um sinal de modulação, que também pode ser unificado ao parâmetro RFU transmitido pelo comando Kill. Valores diferentes são considerados.
14. O que devo fazer se a tag ou o leitor não suportar comandos opcionais (Access)?
Se o comando BlockWrite ou BlockErase não for suportado, ele pode ser substituído pelo comando Write (escrever 16 bits por vez) várias vezes, porque apagar pode ser considerado como escrever 0. A gravação de bloco anterior e o apagamento de bloco são várias vezes 16 bits. bit, outras condições de uso são semelhantes.
Se o comando Access não for suportado, somente quando a Senha de Acesso for 0, o estado Protegido poderá ser acessado e o comando Bloquear poderá ser usado. Você pode alterar a Senha de Acesso no estado Aberto ou Protegido e, em seguida, usar o comando Bloquear para bloquear ou bloquear permanentemente a Senha de Acesso (o bit pwd-read/write é 1, o bit permalock é 0 ou 1, consulte a tabela anexa). O rótulo não será mais "Não é possível entrar no estado Protegido" e não será mais possível usar o comando Bloquear para alterar qualquer estado bloqueado.
Se o comando Access for suportado, é possível usar o comando correspondente para entrar livremente em todos os vários estados. Além de o rótulo estar permanentemente bloqueado ou permanentemente desbloqueado, recusar-se a executar determinados comandos e estar no estado "Eliminado", também é possível executar cada comando com eficácia.