UM11942
Camada de instrução PN5190
Controlador Frontend NFC
Manual do usuário
Controlador Frontend NFC PN5190
Informações do documento
Informação | Contente |
Palavras-chave | PN5190, NFC, frontend NFC, controlador, camada de instrução |
Resumo | Este documento descreve os comandos e respostas da camada de instruções para trabalhar a partir de um controlador host, para avaliar a operação do controlador frontend NFC NXP PN5190. PN5190 é um controlador frontend NFC de próxima geração. O escopo deste documento é descrever os comandos de interface para trabalhar com o controlador frontend NFC PN5190. Para mais informações sobre o funcionamento do controlador frontend NFC PN5190, consulte a ficha técnica e suas informações complementares. |
Histórico de revisão
Rev | Data | Descrição |
3.7 | 20230525 | • O tipo e o título do documento foram alterados do adendo da folha de dados do produto para o manual do usuário • Limpeza editorial • Termos editoriais atualizados para sinais SPI • Adicionado comando GET_CRC_USER_AREA na Tabela 8 na Seção 4.5.2.3 • Vários detalhes diferenciados atualizados para PN5190B1 e PN5190B2 na Seção 3.4.1 • Resposta atualizada da Seção 3.4.7 |
3.6 | 20230111 | Descrição da resposta de verificação de integridade aprimorada na Seção 3.4.7 |
3.5 | 20221104 | Seção 4.5.4.6.3 “Evento”: adicionada |
3.4 | 20220701 | • Adicionado comando CONFIGURE_MULTIPLE_TESTBUS_DIGITAL na Tabela 8 na Seção 4.5.9.3 • Seção 4.5.9.2.2 atualizada |
3.3 | 20220329 | Descrição do hardware melhorada na Seção 4.5.12.2.1 “Comando” e Seção 4.5.12.2.2 “Resposta” |
3.2 | 20210910 | Números de versão de firmware atualizados de 2.1 para 2.01 e 2.3 para 2.03 |
3.1 | 20210527 | Descrição do comando RETRIEVE_RF_FELICA_EMD_DATA adicionada |
3 | 20210118 | Primeira versão oficial lançada |
Introdução
1.1 Introdução
Este documento descreve a interface do host PN5190 e as APIs. A interface física do host usada na documentação é SPI. A característica física do SPI não é considerada no documento.
A separação de quadros e o controle de fluxo fazem parte deste documento.
1.1.1 Âmbito
O documento descreve a camada lógica, o código de instrução e as APIs que são relevantes para o cliente.
Comunicação do anfitrião encerradaview
O PN5190 possui dois modos principais de operação para se comunicar com o controlador host.
- A comunicação baseada em HDLL é usada quando o dispositivo é acionado para entrar:
a. Modo de download seguro criptografado para atualizar seu firmware - Comunicação baseada em comando-resposta TLV (fornecida como um exampe).
2.1 Modo HDLL
O modo HDLL é usado para que o formato de troca de pacotes funcione com os modos de operação IC abaixo:
- Modo de download seguro de firmware (SFWU), consulte a Seção 3
2.1.1 Descrição do HDLL
HDLL é a camada de link desenvolvida pela NXP para garantir um download confiável de FW.
Uma mensagem HDLL é composta por um cabeçalho de 2 bytes, seguido por um quadro, contendo o opcode e o Payload do comando. Cada mensagem termina com um CRC de 16 bits, conforme descrito na figura abaixo:O cabeçalho HDL contém:
- Um pedaço. O que indica se esta mensagem é o único ou o último pedaço de uma mensagem (pedaço = 0). Ou se, pelo menos, um outro pedaço segue (pedaço = 1).
- O comprimento da carga útil codificada em 10 bits. Portanto, a carga útil do quadro HDL pode ir até 1023 bytes.
A ordem dos bytes foi definida como big-endian, ou seja, Ms Byte primeiro.
O CRC16 é compatível com o padrão X.25 (CRC-CCITT, ISO/IEC13239) com polinômio x^16 + x^12 + x^5 +1 e valor de pré-carga 0xFFFF.
É calculado sobre todo o quadro HDLL, ou seja, Cabeçalho + Quadro.
Sampimplementação do código C:
uint16_t estático phHal_Host_CalcCrc16(uint8_t* p, uint32_t dwLength)
{
uint32_t eu;
uint16_t crc_new;
uint16_t crc = 0xffffU;
para (I = 0; i <dwLength; i++)
{
crc_new = (uint8_t)(crc >> 8) | (crc << 8);
crc_new ^= p[i];
crc_new ^= (uint8_t)(crc_new & 0xff) >> 4;
crc_new ^= crc_new << 12;
crc_new ^= (crc_new & 0xff) << 5;
crc = crc_novo;
}
retornar crc;
}
2.1.2 Mapeamento de transporte no SPI
Para cada asserção NTS, o primeiro byte é sempre um HEADER (byte de indicação de fluxo), pode ser 0x7F/0xFF em relação à operação de gravação/leitura.
2.1.2.1 Sequência de gravação do host (direção DH => PN5190)2.1.2.2 Sequência de leitura do host (Direção PN5190 => DH)
2.1.3 Protocolo HDLL
HDLL é um protocolo de resposta de comando. Todas as operações citadas acima são acionadas através de um comando específico e validadas com base na resposta.
Os comandos e respostas seguem a sintaxe da mensagem HDLL, sendo o comando enviado pelo host do dispositivo, a resposta pelo PN5190. O opcode indica o comando e o tipo de resposta.
Comunicações baseadas em HDLL, usadas apenas quando o PN5190 é acionado para entrar no modo “Download seguro de firmware”.
2.2 Modo TLV
TLV significa Tag Valor do comprimento.
2.2.1 Definição de quadro
Um quadro SPI começa com a borda descendente do NTS e termina com a borda ascendente do NTS. SPI é full duplex por definição física, mas PN5190 usa SPI em modo half-duplex. O modo SPI é limitado a CPOL 0 e CPHA 0 com uma velocidade de clock máxima especificada em [2]. Cada quadro SPI é composto por um cabeçalho de 1 byte e n bytes de corpo.
2.2.2 Indicação de fluxoO HOST sempre envia como primeiro byte o byte de indicação de fluxo, seja para escrever ou ler dados do PN5190.
Se houver uma solicitação de leitura e nenhum dado estiver disponível, a resposta conterá 0xFF.
Os dados após o byte de indicação de fluxo são uma ou várias mensagens.
Para cada asserção NTS, o primeiro byte é sempre um HEADER (byte de indicação de fluxo), pode ser 0x7F/0xFF em relação à operação de gravação/leitura.
2.2.3 Tipo de mensagem
Um controlador host deve se comunicar com o PN5190 usando mensagens que são transportadas dentro de quadros SPI.
Existem três tipos diferentes de mensagens:
- Comando
- Resposta
- Evento
O diagrama de comunicação acima mostra as direções permitidas para os diferentes tipos de mensagens conforme abaixo:
- Comando e resposta.
- Os comandos são enviados apenas do controlador host para PN5190.
- Respostas e eventos são enviados apenas do PN5190 para o controlador host.
- As respostas dos comandos são sincronizadas usando o pino IRQ.
- O host pode enviar os comandos somente quando o IRQ estiver baixo.
- O host pode ler a resposta/evento somente quando o IRQ estiver alto.
2.2.3.1 Sequências e regras permitidasSequências permitidas de comando, resposta e eventos
- Um comando é sempre confirmado por uma resposta, ou um evento, ou ambos.
- O controlador host não tem permissão para enviar outro comando antes de não ter recebido uma resposta ao comando anterior.
- Os eventos podem ser enviados de forma assíncrona a qualquer momento (NÃO intercalados em um par comando/resposta).
- As mensagens EVENT nunca são combinadas com as mensagens RESPONSE dentro de um quadro.
Observação: A disponibilidade de uma mensagem (seja RESPONSE ou EVENT) é sinalizada com o IRQ indo de alto para baixo. O IRQ permanece alto até que toda a resposta ou event frame seja lida. Somente depois que o sinal IRQ estiver baixo, o host poderá enviar o próximo comando.
2.2.4 Formato da mensagem
Cada mensagem é codificada em uma estrutura TLV com carga útil de n bytes para cada mensagem, exceto para o comando SWITCH_MODE_NORMAL.Cada TLV é composto por:
Tipo (T) => 1 byte
Bit[7] Tipo de Mensagem
0: Mensagem de COMANDO ou RESPOSTA
1: Mensagem do EVENTO
Bit[6:0]: Código de instrução
Comprimento (L) => 2 bytes (deve estar no formato big-endian)
Valor (V) => N bytes de valor/dados do TLV (Parâmetros de Comando/Dados de Resposta) com base no campo Comprimento (formato big-endian)
2.2.4.1 Quadro dividido
A mensagem COMMAND deve ser enviada em um quadro SPI.
As mensagens RESPONSE e EVENT podem ser lidas em vários quadros SPI, por exemplo, para ler o byte de comprimento.As mensagens RESPONSE ou EVENT podem ser lidas em um único quadro SPI, mas atrasadas por NO-CLOCK entre elas, por exemplo, para ler o byte de comprimento.
Modo de inicialização operacional IC – modo de download de FW seguro
3.1 Introdução
Parte do código do firmware PN5190 é armazenado permanentemente na ROM, enquanto o restante do código e dos dados são armazenados no flash incorporado. Os dados do usuário são armazenados em flash e protegidos por mecanismos anti-tearing que garantem a integridade e disponibilidade dos dados. Para fornecer aos clientes dos NXPs recursos compatíveis com os padrões mais recentes (EMVCo, NFC Forum e assim por diante), tanto o código quanto os dados do usuário em FLASH podem ser atualizados.
A autenticidade e integridade do firmware criptografado são protegidas por assinatura de chave assimétrica/simétrica e mecanismo de hash de cadeia reversa. O primeiro comando DL_SEC_WRITE contém o hash do segundo comando e é protegido por uma assinatura RSA na carga do primeiro quadro. O firmware PN5190 usa a chave pública RSA para autenticar o primeiro comando. O hash encadeado em cada comando é usado para autenticar o comando subsequente, para garantir que o código e os dados do firmware não sejam acessados por terceiros.
As cargas dos comandos DL_SEC_WRITE são criptografadas com uma chave AES-128. Após a autenticação de cada comando, o conteúdo da carga útil é descriptografado e gravado em flash pelo firmware PN5190.
Para firmware NXP, a NXP é responsável por fornecer novas atualizações seguras de firmware, juntamente com novos dados do usuário.
O procedimento de atualização está equipado com um mecanismo para proteger a autenticidade, integridade e confidencialidade do código e dos dados da NXP.
O esquema de pacote de quadros baseado em HDLL é usado para todos os comandos e respostas para o modo de atualização de firmware seguro.
A Seção 2.1 fornece maisview do esquema de pacote de quadros HDLL usado.
Os ICs PN5190 suportam download de firmware seguro e criptografado herdado e protocolo de download de firmware seguro criptografado assistido por hardware, dependendo da variante usada.
Os dois tipos são:
- Protocolo legado de download de firmware seguro que funciona apenas com a versão PN5190 B0/B1 IC.
- Protocolo de download de firmware seguro assistido por criptografia de hardware que funciona apenas com a versão PN5190B2 IC, que usa blocos de criptografia de hardware no chip
As seções a seguir explicam os comandos e respostas do modo de download seguro de firmware.
3.2 Como acionar o modo “Download seguro de firmware”
O diagrama abaixo e as etapas subsequentes mostram como acionar o modo de download de firmware seguro.Pré-condição: PN5190 está no estado Operação.
Cenário principal:
- Condição de entrada onde o pino DWL_REQ é usado para entrar no modo “Download seguro de firmware”.
a. O host do dispositivo puxa o pino DWL_REQ alto (válido somente se a atualização segura do firmware for feita através do pino DWL_REQ) OU
b. O host do dispositivo executa uma reinicialização forçada para inicializar o PN5190 - Condição de entrada onde o pino DWL_REQ não é usado para entrar no modo “Download seguro de firmware” (download sem pino).
a. O host do dispositivo executa uma reinicialização forçada para inicializar o PN5190
b. O host do dispositivo envia SWITCH_MODE_NORMAL (Seção 4.5.4.5) para entrar no modo normal de aplicação.
c. Agora, quando o IC está no modo normal de aplicação, o host do dispositivo envia SWITCH_MODE_DOWNLOAD (Seção 4.5.4.9) para entrar no modo de download seguro. - O host do dispositivo envia o comando DL_GET_VERSION (Seção 3.4.4), ou DL_GET_DIE_ID (Seção 3.4.6) ou DL_GET_SESSION_STATE (Seção 3.4.5).
- O host do dispositivo lê a versão atual de hardware e firmware, sessão e Die-id do dispositivo.
a. O host do dispositivo verifica o status da sessão se o último download foi concluído
b. O host do dispositivo aplica as regras de verificação de versão para decidir se deseja iniciar ou sair do download. - O host do dispositivo é carregado de um file o código binário do firmware a ser baixado
- O host do dispositivo fornece um primeiro comando DL_SEC_WRITE (Seção 3.4.8) que contém:
a. A versão do novo firmware,
b. Um nonce de 16 bytes de valores arbitrários usado para ofuscação de chave de criptografia
c. Um valor resumido do próximo quadro,
d. A assinatura digital do próprio quadro - O host do dispositivo carrega a sequência do protocolo de download seguro para o PN5190 com comandos DL_SEC_WRITE (Seção 3.4.8)
- Quando o último comando DL_SEC_WRITE (Seção 3.4.8) for enviado, o host do dispositivo executa o comando DL_CHECK_INTEGRITY (Seção 3.4.7) para verificar se as memórias foram escritas com sucesso.
- O host do dispositivo lê a nova versão do firmware e verifica o status da sessão, se fechada, para reportar à camada superior
- O host do dispositivo puxa o pino DWL_REQ para baixo (se o pino DWL_REQ for usado para entrar no modo de download)
- O host do dispositivo executa uma reinicialização total (alternando o pino VEN) no dispositivo para reinicializar o PN5190
Pós-condição: O firmware está atualizado; o novo número da versão do firmware é relatado.
3.3 Assinatura de firmware e controle de versão
No modo de download de firmware PN5190, um mecanismo garante que apenas um firmware assinado e entregue pela NXP será aceito para firmware NXP.
O seguinte é aplicável apenas para o firmware NXP seguro e criptografado.
Durante uma sessão de download, uma nova versão de firmware de 16 bits é enviada. É composto por um número maior e um número menor:
- Número principal: 8 bits (MSB)
- Número menor: 8 bits (LSB)
O PN5190 verifica se o novo número da versão principal é maior ou igual ao atual. Caso contrário, o download seguro do firmware será rejeitado e a sessão será mantida fechada.
3.4 Comandos HDLL para download criptografado legado e assistido por criptografia de hardware download criptografado
Esta seção fornece informações sobre os comandos e respostas que foram usados para ambos os tipos de download do firmware NXP.
3.4.1 Códigos OP de comando HDLL
Observação: Os quadros de comando HDLL são alinhados em 4 bytes. Bytes de carga útil não utilizados são deixados nulos.
Tabela 1. Lista de códigos OP de comando HDLL
PN5190 B0/B1 (Baixar legado) |
PN5190 B2 (Download assistido por criptografia) |
Alias de Comando | Descrição |
0xF0 | 0xE5 | DL_REINICIAR | Executa uma reinicialização suave |
0xF1 | 0xE1 | DL_OBTER_VERSÃO | Retorna os números de versão |
0xF2 | 0xDB | DL_OBTER_ESTADO_DA_SESSÃO | Retorna o estado atual da sessão |
0xF4 | 0xDF | DL_OBTER_ID_DA_MORTE | Retorna o ID do dado |
0xE0 | 0xE7 | DL_VERIFICAR_INTEGRIDADE | Verifica e retorna os CRCs nas diferentes áreas, bem como sinalizadores de status de aprovação/reprovação para cada |
0xC0 | 0x8C | DL_SEC_GRAVAÇÃO | Grava x bytes na memória começando no endereço absoluto y |
3.4.2 Opcodes de resposta HDLL
Observação: Os quadros de resposta HDLL são alinhados em 4 bytes. Bytes de carga útil não utilizados são deixados nulos. Somente respostas DL_OK podem conter valores de carga útil.
Tabela 2. Lista de códigos OP de resposta HDLL
opcode | Alias de resposta | Descrição |
0x00 | DL_OK | Comando aprovado |
0x01 | DL_ENDEREÇO_INVÁLIDO | Endereço não permitido |
0x0B | DL_DESCONHECIDO_CMD | Comando desconhecido |
0x0C | DL_ABORTED_CMD | A sequência de pedaços é muito grande |
0x1E | DL_ADDR_RANGE_OFL_ERROR | Endereço fora do alcance |
0x1F | DL_BUFFER_OFL_ERROR | O buffer é muito pequeno |
0x20 | DL_MEM_BSY | Memória ocupada |
0x21 | ERRO_DE_ASSINATURA_DL | Incompatibilidade de assinatura |
0x24 | DL_ERRO_VERSÃO_FIRMWARE | Versão atual igual ou superior |
0x28 | ERRO_DE_PROTOCOLO_DL | Erro de protocolo |
0x2A | DL_SFWU_DEGRADADO | Corrupção de dados flash |
0x2D | PH_STATUS_DL_PRIMEIRO_BLOCO | Primeiro pedaço recebido |
0x2E | PH_STATUS_DL_PRÓXIMO_BLOCO | Aguarde o próximo pedaço |
0xC5 | PH_STATUS_ERRO_INTERNO_5 | Incompatibilidade de comprimento |
3.4.3 Comando DL_RESET
Troca de quadros:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF0 0x00 0x00 0x00 0x18 0x5B]
PN5190B2: [HDLL] -> [0x00 0x04 0xE5 0x00 0x00 0x00 0xBF 0xB9] [HDLL] <- [0x00 0x04 STAT 0x00 CRC16] A redefinição impede que o PN5190 envie a resposta DL_STATUS_OK. Portanto, apenas um status incorreto pode ser recebido.
STAT é o status de retorno.
3.4.4 Comando DL_GET_VERSION
Troca de quadros:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF1 0x00 0x00 0x00 0x6E 0xEF]
PN5190B2: [HDLL] -> [0x00 0x04 0xE1 0x00 0x00 0x00 0x75 0x48] [HDLL] <- [0x00 0x08 STAT HW_V RO_V MODEL_ID FM1V FM2V RFU1 RFU2 CRC16] O quadro de carga útil da resposta GetVersion é:
Tabela 3. Resposta ao comando GetVersion
Campo | Byte | Descrição |
ESTATÍSTICA | 1 | Status |
HW_V | 2 | Versão do hardware |
RO_V | 3 | Código ROM |
MODELO_ID | 4 | ID do modelo |
FMxV | 5-6 | Versão do firmware (usada para download) |
RFU1-RFU2 | 7-8 | – |
Os valores esperados dos diferentes campos de resposta e seu mapeamento são os seguintes:
Tabela 4. Valores esperados da resposta do comando GetVersion
Tipo de CI | Versão HW (hexadecimal) | Versão ROM (hexadecimal) | ID do modelo (hexadecimal) | Versão FW (hexadecimal) |
PN5190 B0 | 0x51 | 0x02 | 0x00 | xx.aa |
PN5190 B1 | 0x52 | 0x02 | 0x00 | xx.aa |
PN5190 B2 | 0x53 | 0x03 | 0x00 | xx.aa |
3.4.5 Comando DL_GET_SESSION_STATE
Troca de quadros:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF2 0x00 0x00 0x00 0xF5 0x33]
PN5190B2: [HDLL] -> [0x00 0x04 0xDB 0x00 0x00 0x00 0x31 0x0A] [HDLL] <- [0x00 0x04 STAT SSTA RFU CRC16] O quadro de carga útil da resposta GetSession é:
Tabela 5. Resposta ao comando GetSession
Campo | Byte | Descrição |
ESTATÍSTICA | 1 | Status |
SSTA | 2 | Estado da sessão • 0x00: fechado • 0x01: aberto • 0x02: bloqueado (download não permitido) |
RFUs | 3-4 |
3.4.6 Comando DL_GET_DIE_ID
Troca de quadros:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xF4 0x00 0x00 0x00 0xD2 0xAA]
PN5190B2: [HDLL] -> [0x00 0x04 0xDF 0x00 0x00 0x00 0xFB 0xFB] [HDLL] <- [0x00 0x14 STAT 0x00 0x00 0x00 ID0 ID1 ID2 ID3 ID4 ID5 ID6 ID7 ID8 ID9
ID10 ID11 ID12 ID13 ID14 ID15 CRC16] O quadro de carga útil da resposta GetDieId é:
Tabela 6. Resposta ao comando GetDieId
Campo | Byte | Descrição |
ESTATÍSTICA | 1 | Status |
RFUs | 2-4 | |
MORRE | 5-20 | ID do dado (16 bytes) |
3.4.7 Comando DL_CHECK_INTEGRITY
Troca de quadros:
PN5190 B0/B1: [HDLL] -> [0x00 0x04 0xE0 0x00 0x00 0x00 CRC16]
PN5190B2: [HDLL] -> [0x00 0x04 0xE7 0x00 0x00 0x00 0x52 0xD1] [HDLL] <- [0x00 0x20 STAT LEN_DATA LEN_CODE 0x00 [CRC_INFO] [CRC32] CRC16] O quadro de carga útil da resposta CheckIntegrity é:
Tabela 7. Resposta ao comando CheckIntegrity
Campo | Byte | Valor / Descrição | |
ESTATÍSTICA | 1 | Status | |
DADOS DE LENÇA | 2 | Número total de seções de dados | |
CÓDIGO LEN | 3 | Número total de seções de código | |
RFUs | 4 | Reservado | |
[INFO_CRC] | 58 | 32 bits (little endian). Se um bit for definido, o CRC da seção correspondente está OK, caso contrário, não está OK. | |
Pedaço | Status de integridade da área | ||
[31:28] | Reservado [3] | ||
[27:23] | Reservado [1] | ||
[22] | Reservado [3] | ||
[21:20] | Reservado [1] | ||
[19] | Área de configuração de RF (PN5190 B0/B1) [2] Reservada (PN5190 B2) [3] | ||
[18] | Área de configuração de protocolo (PN5190 B0/B1) [2] Área de configuração de RF (PN5190 B2) [2] | ||
[17] | Reservado (PN5190 B0/B1) [3] Área de configuração do usuário (PN5190 B2) [2] | ||
[16:6] | Reservado [3] | ||
[5:4] | Reservado para PN5190 B0/B1 [3] Reservado para PN5190 B2 [1] | ||
[3:0] | Reservado [1] | ||
[CRC32] | 9-136 | CRC32 das 32 seções. Cada CRC tem 4 bytes armazenados no formato little-endian. Os primeiros 4 bytes do CRC são do bit CRC_INFO[31], os próximos 4 bytes do CRC são do bit CRC_INFO[30] e assim por diante. |
- [1] Este bit deve ser 1 para que o PN5190 funcione corretamente (com recursos e/ou download de FW criptografado).
- [2] Este bit é definido como 1 por padrão, mas as configurações modificadas pelo usuário invalidam o CRC. Nenhum efeito na funcionalidade do PN5190.
- [3] Este valor de bit, mesmo que seja 0, não é relevante. Este valor de bit pode ser ignorado.
3.4.8 Comando DL_SEC_WRITE
O comando DL_SEC_WRITE deve ser considerado no contexto de uma sequência de comandos de gravação segura: o “download de firmware seguro” criptografado (frequentemente referido como eSFWu).
O comando de gravação segura primeiro abre a sessão de download e passa na autenticação RSA. Os próximos são passar endereços e bytes criptografados para gravar no Flash PN5190. Todos, exceto o último, contêm o hash dos próximos, informando, portanto, que não são os últimos e unindo criptograficamente os quadros da sequência.
Outros comandos (exceto DL_RESET e DL_CHECK_INTEGRITY) podem ser inseridos entre os comandos de gravação segura de uma sequência sem quebrá-la.
3.4.8.1 Primeiro comando DL_SEC_WRITE
Um comando de gravação segura é o primeiro se e somente se:
- O comprimento do quadro é de 312 bytes
- Nenhum comando de gravação segura foi recebido desde a última reinicialização.
- A assinatura incorporada foi verificada com sucesso pelo PN5190.
A resposta ao comando do primeiro quadro seria a seguinte: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT é o status de retorno.
Observação: Pelo menos um pedaço de dados deve ser gravado durante um eSFWu, mesmo que os dados gravados possam ter apenas um byte. Portanto, o primeiro comando sempre conterá o hash do próximo comando, pois serão pelo menos dois comandos.
3.4.8.2 Comandos DL_SEC_WRITE intermediários
Um comando de gravação seguro é 'intermediário' se e somente se:
- O opcode é descrito na Seção 3.4.1 para o comando DL_SEC_WRITE.
- Um primeiro comando de gravação seguro já foi recebido e verificado com sucesso antes
- Nenhuma redefinição ocorreu desde o recebimento do primeiro comando de gravação segura
- O comprimento do quadro é igual ao tamanho dos dados + tamanho do cabeçalho + tamanho do hash: FLEN = SIZE + 6 + 32
- O resumo de todo o quadro é igual ao valor de hash recebido no quadro anterior
A resposta ao comando do primeiro quadro seria a seguinte: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT é o status de retorno.
3.4.8.3 Último comando DL_SEC_WRITE
Um comando de gravação segura é o último se e somente se:
- O opcode é descrito na Seção 3.4.1 para o comando DL_SEC_WRITE.
- Um primeiro comando de gravação seguro já foi recebido e verificado com sucesso antes
- Nenhuma redefinição ocorreu desde o recebimento do primeiro comando de gravação segura
- O comprimento do quadro é igual ao tamanho dos dados + tamanho do cabeçalho: FLEN = SIZE + 6
- O resumo de todo o quadro é igual ao valor de hash recebido no quadro anterior
A resposta ao comando do primeiro quadro seria a seguinte: [HDLL] <- [0x00 0x04 STAT 0x00 0x00 0x00 CRC16] STAT é o status de retorno.
Modo de inicialização operacional IC – Modo de operação normal
4.1 Introdução
Geralmente o IC PN5190 deve estar no modo normal de operação para obter a funcionalidade NFC dele.
Quando o IC PN5190 é inicializado, ele está sempre aguardando o recebimento de comandos de um host para executar a operação, a menos que eventos gerados no IC PN5190 resultem na inicialização do IC PN5190.
4.2 Lista de comandos acimaview
Tabela 8. Lista de comandos PN5190
Código de comando | Nome do comando |
0x00 | ESCREVER_REGISTRAR |
0x01 | ESCREVER_REGISTRO_OU_MASCARAR |
0x02 | ESCREVER_REGISTRO_E_MASCARAR |
0x03 | ESCREVER_REGISTRO_MÚLTIPLO |
0x04 | READ_REGISTER |
0x05 | LEITURA_REGISTRO_MÚLTIPLO |
0x06 | ESCREVER_E2PROM |
0x07 | LEIA_E2PROM |
0x08 | TRANSMITIR_DADOS_RF |
0x09 | RECUPERAR_DADOS_RF |
0x0A | TROCA_DADOS_RF |
0x0B | MFC_AUTENTICAR |
0x0C | EPC_GEN2_INVENTÁRIO |
0x0D | LOAD_RF_CONFIGURAÇÃO |
0x0E | ATUALIZAÇÃO_RF_CONFIGURAÇÃO |
0x0F | GET_RF_CONFIGURAÇÃO |
0x10 | RF_ON |
0x11 | RF_DESLIGADO |
0x12 | CONFIGURAR TESTBUS_DIGITAL |
0x13 | CONFIGURAR_TESTBUS_ANALOG |
0x14 | CTS_ATIVAR |
0x15 | CTS_CONFIGURAR |
0x16 | CTS_RECUPERAR_LOG |
0x17-0x18 | RFUs |
0x19 | até FW v2.01: RFU |
do FW v2.03 em diante: RETRIEVE_RF_FELICA_EMD_DATA | |
0x1A | RECEBER_DADOS_RF |
0x1B-0x1F | RFUs |
0x20 | MODO_DE_TROCA_NORMAL |
0x21 | SWITCH_MODE_AUTOCOLL |
0x22 | INTERRUPTOR_MODO_ESPERA |
0x23 | MODO_DE_TROCA_LPCD |
0x24 | RFUs |
0x25 | SWITCH_MODE_DOWNLOAD |
0x26 | OBTER_DIEID |
0x27 | GET_VERSION |
0x28 | RFUs |
0x29 | até FW v2.05: RFU |
do firmware v2.06 em diante: GET_CRC_USER_AREA | |
0x2A | até FW v2.03: RFU |
do firmware v2.05 em diante: CONFIGURE_MULTIPLE_TESTBUS_DIGITAL | |
0x2B-0x3F | RFUs |
0x40 | ANTENNA_SELF_TEST (não compatível) |
0x41 | TESTE_PRBS |
0x42-0x4F | RFUs |
4.3 Valores de status de resposta
A seguir estão os valores de status de resposta, que são retornados como parte da resposta do PN5190 após a operacionalização do comando.
Tabela 9. Valores de status de resposta do PN5190
Status de resposta | Valor do status da resposta | Descrição |
PN5190_STATUS_SUCESSO | 0x00 | Indica que a operação foi concluída com sucesso |
PN5190_STATUS_TEMPO LIMITE | 0x01 | Indica que a operação do comando resultou em timeout |
PN5190_STATUS_INTEGRIDADE_ERROR | 0x02 | Indica que a operação do comando resultou em erro de integridade de dados de RF |
PN5190_STATUS_RF_COLLISION_ERROR | 0x03 | Indica que a operação do comando resultou em erro de colisão de RF |
PN5190_STATUS_RFU1 | 0x04 | Reservado |
PN5190_STATUS_COMANDO_INVÁLIDO | 0x05 | Indica que o comando fornecido é inválido/não implementado |
PN5190_STATUS_RFU2 | 0x06 | Reservado |
PN5190_STATUS_ERRO_AUTH | 0x07 | Indica que a autenticação MFC falhou (permissão negada) |
PN5190_STATUS_ERRO_DE_MEMÓRIA | 0x08 | Indica que a operação do comando resultou em erro de programação ou erro de memória interna |
PN5190_STATUS_RFU4 | 0x09 | Reservado |
PN5190_STATUS_SEM_CAMPO_RF | 0x0A | Indica que não há ou há erro na presença do campo RF interno (aplicável somente se estiver no modo iniciador/leitor) |
PN5190_STATUS_RFU5 | 0x0B | Reservado |
PN5190_STATUS_SYNTAX_ERROR | 0x0C | Indica que um comprimento de quadro de comando inválido foi recebido |
PN5190_STATUS_ERRO_DE_RECURSOS | 0x0D | Indica que ocorreu um erro de recurso interno |
PN5190_STATUS_RFU6 | 0x0E | Reservado |
PN5190_STATUS_RFU7 | 0x0F | Reservado |
PN5190_STATUS_SEM_CAMPO_RF_EXTERNO | 0x10 | Indica que nenhum campo RF externo está presente durante a execução do comando (aplicável apenas no modo cartão/alvo) |
PN5190_STATUS_RX_TEMPO LIMITE | 0x11 | Indica que os dados não são recebidos depois que o RFExchange é iniciado e o RX atinge o tempo limite. |
PN5190_STATUS_USUÁRIO_CANCELADO | 0x12 | Indica que o comando atual em andamento foi abortado |
PN5190_STATUS_PREVENIR_ESPERA | 0x13 | Indica que o PN5190 está impedido de entrar no modo Standby |
PN5190_STATUS_RFU9 | 0x14 | Reservado |
PN5190_STATUS_CLOCK_ERROR | 0x15 | Indica que o relógio do CLIF não começou |
PN5190_STATUS_RFU10 | 0x16 | Reservado |
PN5190_STATUS_PRBS_ERROR | 0x17 | Indica que o comando PRBS retornou um erro |
PN5190_STATUS_INSTR_ERROR | 0x18 | Indica que a operação do comando falhou (pode incluir erro nos parâmetros da instrução, erro de sintaxe, erro na própria operação, pré-requisitos para a instrução não atendidos, etc.) |
PN5190_STATUS_ACESSO_NEGADO | 0x19 | Indica que o acesso à memória interna foi negado |
PN5190_STATUS_TX_FALHA | 0x1A | Indica que o TX sobre RF falhou |
PN5190_STATUS_NO_ANTENA | 0x1B | Indica que nenhuma antena está conectada/presente |
PN5190_STATUS_TXLDO_ERROR | 0x1C | Indica que há um erro no TXLDO quando o VUP não está disponível e o RF está LIGADO. |
PN5190_STATUS_RFCFG_NÃO_APLICADO | 0x1D | Indica que a configuração de RF não é carregada quando o RF está ligado |
PN5190_STATUS_TIMEOUT_COM_ERRO_EMD | 0x1E | até FW 2.01: não esperado |
do FW 2.03 em diante: Indica que durante a troca com LOG ENABLE BIT definido no registro FeliCa EMD, foi observado erro FeliCa EMD |
||
PN5190_STATUS_ERRO_INTERNO | 0x7F | Indica que a operação NVM falhou |
PN5190_STATUS_SUCESSO_ENCADEAMENTO | 0xAF | Indica que, além disso, os dados estão pendentes para serem lidos |
4.4 Eventos encerradosview
Existem duas maneiras pelas quais os eventos são notificados ao host.
4.4.1 Eventos normais sobre pin IRQ
Esses eventos são categorias conforme abaixo:
- Sempre ativado – o host é sempre notificado
- Controlado pelo Host – O Host é notificado, caso o respectivo bit Event Enable esteja setado no registrador (EVENT_ENABLE (01h)).
Interrupções de baixo nível dos IPs periféricos, incluindo o CLIF, serão completamente tratadas dentro do firmware e o host será notificado apenas dos eventos listados na seção de eventos.
O firmware implementa dois registradores de eventos como registradores RAM que podem ser escritos/lidos usando os comandos da Seção 4.5.1.1/Seção 4.5.1.5.
O registro EVENT_ENABLE (0x01) => Habilitar notificações específicas/de todos os eventos.
O registro EVENT_STATUS (0x02) => Parte da carga útil da mensagem do evento.
Os eventos serão apagados pelo host assim que a mensagem do evento for lida pelo host.
Os eventos são de natureza assíncrona e são notificados ao host, se estiverem habilitados no registro EVENT_ENABLE.
A seguir está a lista de eventos que estarão disponíveis para o anfitrião como parte da mensagem do evento.
Tabela 10. Eventos PN5190 (conteúdo de EVENT_STATUS)
Bit – Faixa | Campo [1] | Sempre Habilitado (S/N) | |
31 | 12 | RFUs | NA |
11 | 11 | EVENTO_CTS [2] | N |
10 | 10 | EVENTO_INATIVO | Y |
9 | 9 | LPCD_CALIBRAÇÃO_CONCLUÍDA_EVENTO | Y |
8 | 8 | LPCD_EVENTO | Y |
7 | 7 | AUTOCOLL_EVENTO | Y |
6 | 6 | TIMER0_EVENTO | N |
5 | 5 | EVENTO_DE_SOBRE_CORRENTE_TX | N |
4 | 4 | RFON_DET_EVENTO [2] | N |
3 | 3 | RFOFF_DET_EVENTO [2] | N |
2 | 2 | STANDBY_PREV_EVENTO | Y |
1 | 1 | EVENTO_DE_ERRO_GERAL | Y |
0 | 0 | EVENTO_DE_BOOT | Y |
- Observe que dois eventos não são eliminados, exceto em caso de erros. Em caso de erros durante a operação, serão definidos eventos funcionais (ex. BOOT_EVENT, AUTOCALL_EVENT etc.) e GENERAL_ERROR_EVENT.
- Este evento será desativado automaticamente após ser postado no host. O host deve habilitar novamente esses eventos se desejar que eles sejam notificados.
4.4.1.1 Formatos de mensagens de eventos
O formato da mensagem de evento difere dependendo das ocorrências de um evento e do estado diferente do PN5190.
O anfitrião deve ler tag (T) e comprimento da mensagem (L) e depois lê o número correspondente de bytes como valor (V) dos eventos.
Em geral, a mensagem de evento (ver Figura 12) contém EVENT_STATUS conforme definido na Tabela 11 e os dados do evento correspondem ao respectivo bit de evento definido em EVENT_STATUS.
Observação:
Para alguns eventos, a carga útil não existe. Por exemplo, se TIMER0_EVENT for acionado, apenas EVENT_STATUS será fornecido como parte da mensagem do evento.
A Tabela 11 também detalha se os dados do evento estão presentes para o evento correspondente na mensagem do evento.GENERAL_ERROR_EVENT também pode ocorrer com outros eventos.
Neste cenário, a mensagem de evento (consulte a Figura 13) contém EVENT_STATUS conforme definido na Tabela 11 e GENERAL_ERROR_STATUS_DATA conforme definido na Tabela 14 e então os dados do evento correspondem ao respectivo bit de evento definido em EVENT_STATUS conforme definido na Tabela 11.Observação:
Somente após BOOT_EVENT ou após POR, STANDBY, ULPCD o host poderá trabalhar no modo de operação normal emitindo os comandos listados acima.
No caso de abortar um comando em execução existente, somente após IDLE_EVENT o host poderá trabalhar no modo de operação normal emitindo os comandos listados acima.
4.4.1.2 Diferentes definições de status de EVENTO
4.4.1.2.1 Definições de bits para EVENT_STATUS
Tabela 11. Definições para bits EVENT_STATUS
Bit (Para – De) | Evento | Descrição | Dados do evento do evento correspondente (se houver) |
|
31 | 12 | RFUs | Reservado | |
11 | 11 | EVENTO_CTS | Este bit é ativado quando o evento CTS é gerado. | Tabela 86 |
10 | 10 | EVENTO_INATIVO | Este bit é definido quando o comando em andamento é cancelado devido à emissão do comando SWITCH_MODE_NORMAL. | Nenhum dado de evento |
9 | 9 | LPCD_CALIBRAÇÃO_CONCLUÍDA_ EVENTO |
Este bit é energizado quando o evento LPCDCalibrationdone é gerado. | Tabela 16 |
8 | 8 | LPCD_EVENTO | Este bit é energizado quando o evento LPCD é gerado. | Tabela 15 |
7 | 7 | AUTOCOLL_EVENTO | Este bit é energizado quando a operação AUTOCOLL é concluída. | Tabela 52 |
6 | 6 | TIMER0_EVENTO | Este bit é energizado quando ocorre o evento TIMER0. | Nenhum dado de evento |
5 | 5 | TX_OVERCURRENT_ERROR_ EVENTO |
Este bit é ativado quando a corrente no driver TX é superior ao limite definido na EEPROM. Nessa condição, o campo é automaticamente desligado antes da notificação ao host. Consulte a Seção 4.4.2.2. | Nenhum dado de evento |
4 | 4 | RFON_DET_EVENTO | Este bit é ativado quando o campo RF externo é detectado. | Nenhum dado de evento |
3 | 3 | RFOFF_DET_EVENTO | Este bit é definido quando o campo RF externo já existente desaparece. | Nenhum dado de evento |
2 | 2 | STANDBY_PREV_EVENTO | Este bit é definido quando o modo de espera é evitado devido à existência de condições de prevenção | Tabela 13 |
1 | 1 | EVENTO_DE_ERRO_GERAL | Este bit é definido quando existe alguma condição geral de erro | Tabela 14 |
0 | 0 | EVENTO_DE_BOOT | Este bit é ativado quando o PN5190 é inicializado com POR/Standby | Tabela 12 |
4.4.1.2.2 Definições de bits para BOOT_STATUS_DATA
Tabela 12. Definições para bits BOOT_STATUS_DATA
Pouco a | Pouco de | Status de inicialização | Motivo da inicialização devido a |
31 | 27 | RFUs | Reservado |
26 | 26 | ULP_ESPERA | Motivo de inicialização devido à saída de ULP_STANDBY. |
25 | 23 | RFUs | Reservado |
22 | 22 | BOOT_RX_ULPDET | RX ULPDET resultou em inicialização no modo ULP-Standby |
21 | 21 | RFUs | Reservado |
20 | 20 | BOOT_SPI | Motivo de inicialização devido ao sinal SPI_NTS sendo reduzido |
19 | 17 | RFUs | Reservado |
16 | 16 | BOOT_GPIO3 | Motivo de inicialização devido à transição do GPIO3 de baixo para alto. |
15 | 15 | BOOT_GPIO2 | Motivo de inicialização devido à transição do GPIO2 de baixo para alto. |
14 | 14 | BOOT_GPIO1 | Motivo de inicialização devido à transição do GPIO1 de baixo para alto. |
13 | 13 | BOOT_GPIO0 | Motivo de inicialização devido à transição do GPIO0 de baixo para alto. |
12 | 12 | BOOT_LPDET | Motivo de inicialização devido à presença de campo RF externo durante STANDBY/SUSPEND |
11 | 11 | RFUs | Reservado |
10 | 8 | RFUs | Reservado |
7 | 7 | REINICIALIZAÇÃO_SUAVE_DE_BOOT | Motivo de inicialização devido à reinicialização suave do IC |
6 | 6 | PERDA_DE_DIA_DE_BOOT | Motivo de inicialização devido à perda de VDDIO. Consulte a Seção 4.4.2.3 |
5 | 5 | BOOT_VDDIO_INÍCIO | Motivo de inicialização se STANDBY for inserido com VDDIO LOSS. Consulte a Seção 4.4.2.3 |
4 | 4 | BOOT_WUC | Motivo de inicialização devido ao contador de ativação decorrido durante a operação STANDBY. |
3 | 3 | TEMP_DE_BOOT | O motivo da inicialização devido à temperatura do IC é superior ao limite configurado. Consulte a Seção 4.4.2.1 |
2 | 2 | BOOT_WDG | Motivo de inicialização devido à redefinição do watchdog |
1 | 1 | RFUs | Reservado |
0 | 0 | BOOT_POR | Motivo da inicialização devido à redefinição da inicialização |
4.4.1.2.3 Definições de bits para STANDBY_PREV_STATUS_DATA
Tabela 13. Definições para bits STANDBY_PREV_STATUS_DATA
Pouco a | Pouco de | Prevenção de espera | Modo de espera impedido devido a |
31 | 26 | RFUs | RESERVADO |
25 | 25 | RFUs | RESERVADO |
24 | 24 | TEMP_ANTERIOR | A temperatura operacional do IC está fora do limite |
23 | 23 | RFUs | RESERVADO |
22 | 22 | PREV_HOSTCOMM | Comunicação de interface de host |
21 | 21 | PREV_SPI | Sinal SPI_NTS sendo puxado para baixo |
20 | 18 | RFUs | RESERVADO |
17 | 17 | ANTERIOR_GPIO3 | Sinal GPIO3 em transição de baixo para alto |
16 | 16 | ANTERIOR_GPIO2 | Sinal GPIO2 em transição de baixo para alto |
15 | 15 | ANTERIOR_GPIO1 | Sinal GPIO1 em transição de baixo para alto |
14 | 14 | ANTERIOR_GPIO0 | Sinal GPIO0 em transição de baixo para alto |
13 | 13 | ANTERIOR_WUC | Contador de despertar decorrido |
12 | 12 | PREV_LPDET | Detecção de baixa potência. Ocorre quando um sinal de RF externo é detectado no processo de entrada em espera. |
11 | 11 | PREV_RX_ULPDET | Detecção de potência ultrabaixa RX. Ocorre quando o sinal de RF é detectado no processo de passagem para ULP_STANDBY. |
10 | 10 | RFUs | RESERVADO |
9 | 5 | RFUs | RESERVADO |
4 | 4 | RFUs | RESERVADO |
3 | 3 | RFUs | RESERVADO |
2 | 2 | RFUs | RESERVADO |
1 | 1 | RFUs | RESERVADO |
0 | 0 | RFUs | RESERVADO |
4.4.1.2.4 Definições de bits para GENERAL_ERROR_STATUS_DATA
Tabela 14. Definições para bits GENERAL_ERROR_STATUS_DATA
Pouco a | Pouco de | Status de erro | Descrição |
31 | 6 | RFUs | Reservado |
5 | 5 | XTAL_START_ERROR | A inicialização do XTAL falhou durante a inicialização |
4 | 4 | ERRO_DE_RECUPERAÇÃO_SYS_TRIM | Ocorreu um erro interno de memória de corte do sistema, mas a recuperação falhou. O sistema funciona em modo downgrade. |
3 | 3 | SYS_TRIM_RECUPERAÇÃO_SUCESSO | Ocorreu um erro de memória interna do sistema e a recuperação foi bem-sucedida. O host deve reinicializar o PN5190 para que a recuperação entre em vigor. |
2 | 2 | TXLDO_ERROR | Erro TXLDO |
1 | 1 | ERRO_DE_RELÓGIO | Erro de relógio |
0 | 0 | GPADC_ERROR | Erro ADC |
4.4.1.2.5 Definições de bits para LPCD_STATUS_DATA
Tabela 15. Definições para bytes LPCD_STATUS_DATA
Pouco a | Pouco de | Aplicabilidade dos bits de status de acordo com a operação subjacente de LPCD ou ULPCD | A descrição do bit correspondente é definida no byte de status. | ||
CDLP | ULPCD | ||||
31 | 7 | RFUs | Reservado | ||
6 | 6 | Abortar_HIF | Y | N | Abortado devido à atividade do HIF |
5 | 5 | Erro CLKDET | N | Y | Abortado devido a erro CLKDET ocorrido |
4 | 4 | Tempo limite do XTAL | N | Y | Abortado devido ao tempo limite do XTAL ter ocorrido |
3 | 3 | Sobrecorrente VDDPA LDO | N | Y | Abortado devido à ocorrência de sobrecorrente VDDPA LDO |
2 | 2 | Campo RF externo | Y | Y | Abortado devido a campo RF externo |
1 | 1 | Abortar GPIO3 | N | Y | Abortado devido à mudança de nível GPIO3 |
0 | 0 | Cartão detectado | Y | Y | O cartão foi detectado |
4.4.1.2.6 Definições de bits para dados de status LPCD_CALIBRATION_DONE
Tabela 16. Definições para bytes de dados de status LPCD_CALIBRATION_DONE para ULPCD
Pouco a | Pouco de | Status de LPCD_CALIBRATION CONCLUÍDO evento | A descrição do bit correspondente é definida no byte de status. |
31 | 11 | Reservado | |
10 | 0 | Valor de referência da calibração ULPCD | O valor RSSI medido durante a calibração ULPCD que é usado como referência durante ULPCD |
Tabela 17. Definições para bytes de dados de status LPCD_CALIBRATION_DONE para LPCD
Pouco a | Pouco de | Aplicabilidade dos bits de status de acordo com a operação subjacente de LPCD ou ULPCD | A descrição do bit correspondente é definida no byte de status. | ||
2 | 2 | Campo RF externo | Y | Y | Abortado devido a campo RF externo |
1 | 1 | Abortar GPIO3 | N | Y | Abortado devido à mudança de nível GPIO3 |
0 | 0 | Cartão detectado | Y | Y | O cartão foi detectado |
4.4.2 Tratamento de diferentes cenários de inicialização
O IC PN5190 lida com diferentes condições de erro relacionadas aos parâmetros do IC, conforme abaixo.
4.4.2.1 Tratamento do cenário de superaquecimento quando o PN5190 está em operação
Sempre que a temperatura interna do IC PN5190 atingir o valor limite configurado no campo EEPROM TEMP_WARNING [2], o IC entra em standby. E, conseqüentemente, se o campo EEPROM ENABLE_GPIO0_ON_OVERTEMP [2] estiver configurado para gerar uma notificação ao host, então o GPIO0 será aumentado para notificar o IC sobre temperatura.
À medida que a temperatura do IC cair abaixo do valor limite configurado no campo EEPROM TEMP_WARNING [2], o IC será inicializado com BOOT_EVENT como na Tabela 11 e o bit de status de inicialização BOOT_TEMP será definido como na Tabela 12 e o GPIO0 será puxado para baixo.
4.4.2.2 Tratamento de sobrecorrente
Se o IC PN5190 detectar a condição de sobrecorrente, o IC desliga a alimentação de RF e envia TX_OVERCURRENT_ERROR_EVENT como na Tabela 11.
A duração da condição de sobrecorrente pode ser controlada modificando o campo EEPROM TXLDO_CONFIG [2].
Para obter informações sobre IC acima do limite de corrente, consulte o documento [2].
Observação:
Se houver outros eventos ou respostas pendentes, eles serão enviados ao host.
4.4.2.3 Perda de VDDIO durante a operação
Se o IC PN5190 descobrir que não há VDDIO (perda de VDDIO), o IC entra em espera.
O IC inicializa somente quando o VDDIO está disponível, com BOOT_EVENT como na Tabela 11 e o bit de status de inicialização BOOT_VDDIO_START é definido como na Tabela 12.
Para obter informações sobre as características estáticas do IC PN5190, consulte o documento [2].
4.4.3 Tratamento de cenários de aborto
O IC PN5190 tem suporte para abortar os comandos de execução atuais e o comportamento do IC PN5190, quando tal comando de abortar como a Seção 4.5.4.5.2 é enviado para o IC PN5190 é mostrado na Tabela 18.
Observação:
Quando o IC PN5190 está no modo ULPCD e ULP-Standby, ele não pode ser abortado enviando uma Seção 4.5.4.5.2 OU iniciando uma transação SPI (puxando para baixo o sinal SPI_NTS).
Tabela 18. Resposta de evento esperada quando comandos diferentes terminam com a Seção 4.5.4.5.2
Comandos | Comportamento quando o comando Switch Mode Normal é enviado |
Todos os comandos onde baixa potência não é inserida | EVENT_STAUS está definido como “IDLE_EVENT” |
Modo de comutação LPCD | EVENT_STATUS é definido como “LPCD_EVENT” com “LPCD_ STATUS_DATA” indicando bits de status como “Abort_HIF” |
Alternar modo de espera | EVENT_STAUS é definido como “BOOT_EVENT” com “BOOT_STATUS_DATA” indicando bits “BOOT_SPI” |
Switch Mode Autocoll (sem modo autônomo, modo autônomo com espera e modo autônomo sem espera) | EVENT_STAUS é definido como “AUTOCOLL_EVENT” com bits STATUS_DATA indicando que o comando foi cancelado pelo usuário. |
4.5 Detalhes das instruções de operação no modo normal
4.5.1 Manipulação de Registro
As instruções desta seção são utilizadas para acessar os registros lógicos do PN5190.
4.5.1.1 GRAVAÇÃO_REGISTRO
Esta instrução é usada para escrever um valor de 32 bits (little-endian) em um registrador lógico.
4.5.1.1.1 condições
O endereço do registrador deve existir, e o registrador deve ter o atributo READ-WRITE ou WRITE-ONLY.
4.5.1.1.2 Comando
Tabela 19. Valor do comando WRITE_REGISTER Grava um valor de 32 bits em um registro.
Campo de carga útil | Comprimento | Valor / Descrição |
Endereço de registro | 1 Byte | Endereço do registro. |
Tabela 19. Valor do comando WRITE_REGISTER…continuação
Escreva um valor de 32 bits em um registro.
Campo de carga útil | Comprimento | Valor / Descrição |
Valor | 4 Byte | Valor de registro de 32 bits que deve ser escrito. (Pequeno endian) |
4.5.1.1.3 Resposta
Tabela 20. Valor de resposta WRITE_REGISTER
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR |
4.5.1.1.4 Evento
Não há eventos para este comando.
4.5.1.2 ESCREVER_REGISTRO_OU_MÁSCARA
Esta instrução é usada para modificar o conteúdo do registro usando uma operação lógica OR. O conteúdo do registrador é lido e uma operação lógica OR é executada com a máscara fornecida. O conteúdo modificado é gravado de volta no registro.
4.5.1.2.1 condições
O endereço do registrador deve existir, e o registrador deve ter o atributo READ-WRITE.
4.5.1.2.2 Comando
Tabela 21. Valor do comando WRITE_REGISTER_OR_MASK Execute uma operação lógica OR em um registro usando a máscara fornecida.
Campo de carga útil | Comprimento | Valor/descrição |
Endereço de registro | 1 Byte | Endereço do registro. |
Máscara | 4 Byte | Bitmask usado como operando para operação lógica OR. (Pequeno endian) |
4.5.1.2.3 Resposta
Tabela 22. Valor de resposta WRITE_REGISTER_OR_MASK
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR |
4.5.1.2.4 Evento
Não há eventos para este comando.
4.5.1.3 ESCREVER_REGISTRO_E_MÁSCARA
Esta instrução é usada para modificar o conteúdo do registro usando uma operação lógica AND. O conteúdo do registro é lido e uma operação lógica AND é executada com a máscara fornecida. O conteúdo modificado é gravado de volta no registro.
4.5.1.3.1 condições
O endereço do registrador deve existir, e o registrador deve ter o atributo READ-WRITE.
4.5.1.3.2 Comando
Tabela 23. Valor do comando WRITE_REGISTER_AND_MASK Execute uma operação AND lógica em um registro usando a máscara fornecida.
Campo de carga útil | Comprimento | Valor/descrição |
Endereço de registro | 1 Byte | Endereço do registro. |
Máscara | 4 Byte | Bitmask usado como operando para operação lógica AND. (Pequeno endian ) |
4.5.1.3.3 Resposta
Tabela 24. Valor de resposta WRITE_REGISTER_AND_MASK
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR |
4.5.1.3.4 Evento
Não há eventos para este comando.
4.5.1.4 ESCREVER_REGISTRO_MÚLTIPLO
A funcionalidade desta instrução é semelhante à Seção 4.5.1.1, Seção 4.5.1.2, Seção 4.5.1.3, com a possibilidade de combiná-las. Na verdade, ele pega uma matriz de conjunto de valores de tipo de registro e executa a ação apropriada. O tipo reflete a ação que é gravação de registro, operação lógica OR em um registro ou operação lógica AND em um registro.
4.5.1.4.1 condições
O respectivo endereço lógico do registrador dentro de um conjunto deve existir.
O atributo de acesso ao registro deve permitir a execução da ação necessária (tipo):
- Ação de gravação (0x01): atributo READ-WRITE ou WRITE-ONLY
- OU ação de máscara (0x02): atributo READ-WRITE
- E ação de máscara (0x03): atributo READ-WRITE
O tamanho do array 'Set' deve estar no intervalo de 1 a 43, inclusive.
O campo 'Tipo' deve estar no intervalo de 1 a 3, inclusive
4.5.1.4.2 Comando
Tabela 25. Valor do comando WRITE_REGISTER_MULTIPLE Execute uma operação de gravação de registro usando um conjunto de pares Registro-Valor.
Campo de carga útil | Comprimento | Valor/descrição | |||
Definir [1…n] | 6 Byte | Endereço de registro | 1 Byte | Endereço lógico do registrador. | |
Tipo | 1 Byte | 0x1 | Gravar Registro | ||
0x2 | Escreva Registro OU Máscara | ||||
0x3 | Escreva Registro E Máscara | ||||
Valor | 4 Byte | 32 Valor do registrador de bits que deve ser escrito ou máscara de bits usada para operação lógica. (Pequeno endian) |
Nota: No caso de uma exceção, a operação não é revertida, ou seja, os registros que foram modificados até ocorrer a exceção permanecem no estado modificado. O host deve tomar as ações adequadas para recuperar para um estado definido.
4.5.1.4.3 Resposta
Tabela 26. Valor de resposta WRITE_REGISTER_MULTIPLE
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR |
4.5.1.4.4 Evento
Não há eventos para este comando.
4.5.1.5 LEITURA_REGISTRO
Esta instrução é usada para ler o conteúdo de um registrador lógico. O conteúdo está presente na resposta, como valor de 4 bytes no formato little-endian.
4.5.1.5.1 condições
O endereço do registrador lógico deve existir. O atributo de acesso do registrador deve ser READ-WRITE ou READ-ONLY.
4.5.1.5.2 Comando
Tabela 27. Valor do comando READ_REGISTER
Leia o conteúdo de um registro.
Campo de carga útil | Comprimento | Valor / Descrição |
Endereço de registro | 1 Byte | Endereço do registrador lógico |
4.5.1.5.3 Resposta
Tabela 28. Valor de resposta READ_REGISTER
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) | ||
Registrar valor | 4 Byte | Valor de registro de 32 bits que foi lido. (Pequeno endian) |
4.5.1.5.4 Evento
Não há eventos para este comando.
4.5.1.6 LEITURA_REGISTRO_MÚLTIPLO
Esta instrução é usada para ler vários registradores lógicos de uma só vez. O resultado (conteúdo de cada registro) é fornecido na resposta à instrução. O endereço de registro em si não está incluído na resposta. A ordem do conteúdo do registrador na resposta corresponde à ordem dos endereços dos registradores na instrução.
4.5.1.6.1 condições
Todos os endereços de registro na instrução devem existir. O atributo de acesso para cada registro deve ser READ-WRITE ou READ-ONLY. O tamanho da matriz 'Endereço de Registro' deve estar no intervalo de 1 a 18, inclusive.
4.5.1.6.2 Comando
Tabela 29. Valor do comando READ_REGISTER_MULTIPLE Execute uma operação de leitura de registro em um conjunto de registros.
Campo de carga útil | Comprimento | Valor / Descrição |
Registrar endereço[1…n] | 1 Byte | Endereço de registro |
4.5.1.6.3 Resposta
Tabela 30. Valor de resposta READ_REGISTER_MULTIPLE
Campo de carga útil | Comprimento | Valor/descrição | ||
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: | ||
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) | ||||
Valor de registro [1…n] | 4 Byte | Valor | 4 Byte | Valor de registro de 32 bits que foi lido (little-endian). |
4.5.1.6.4 Evento
Não há eventos para este comando.
4.5.2 Manipulação E2PROM
A área acessível na E2PROM é de acordo com o mapa da EEPROM e o tamanho endereçável.
Observação:
1. Sempre que o 'Endereço E2PROM' for mencionado nas instruções abaixo, deverá referir-se ao tamanho da área EEPROM endereçável.
4.5.2.1 ESCREVER_E2PROM
Esta instrução é utilizada para escrever um ou mais valores na E2PROM. O campo 'Valores' contém os dados a serem gravados na E2PROM começando no endereço fornecido pelo campo 'Endereço E2PROM'. Os dados são gravados em ordem sequencial.
Observação:
Observe que este é um comando de bloqueio, isso significa que o NFC FE está bloqueado durante a operação de gravação. Isso pode levar vários milissegundos.
4.5.2.1.1 condições
O campo 'Endereço E2PROM' deve estar no intervalo conforme [2]. O número de bytes no campo 'Valores' deve estar no intervalo de 1 a 1024 (0x0400), inclusive. A operação de gravação não deve ultrapassar o endereço EEPROM mencionado em [2]. A resposta de erro deve ser enviada ao host se o endereço exceder o espaço de endereço EEPROM como em [2].
4.5.2.1.2 Comando
Tabela 31. Valor do comando WRITE_E2PROM Grava valores fornecidos sequencialmente em E2PROM.
Campo de carga útil | Comprimento | Valor/descrição |
Endereço E2PROM | 2 Byte | Endereço na EEPROM a partir do qual a operação de escrita deve ser iniciada. (Pequeno endian ) |
Valores | 1 – 1024 bytes | Valores que devem ser escritos na E2PROM em ordem sequencial. |
4.5.2.1.3 Resposta
Tabela 32. Valor de resposta WRITE_EEPROM
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR PN5190_STATUS_MEMORY_ERROR |
4.5.2.1.4 Evento
Não há eventos para este comando.
4.5.2.2 LEITURA_E2PROM
Esta instrução é usada para ler dados da área de memória E2PROM. O campo 'Endereço E2PROM' indica o endereço inicial da operação de leitura. A resposta contém os dados lidos do E2PROM.
4.5.2.2.1 condições
O campo 'Endereço E2PROM' deve estar em um intervalo válido.
O campo 'Número de bytes' deve estar no intervalo de 1 a 256, inclusive.
A operação de leitura não deve ultrapassar o último endereço EEPROM acessível.
A resposta de erro será enviada ao host, se o endereço exceder o espaço de endereço EEPROM.
4.5.2.2.2 Comando
Tabela 33. Valor do comando READ_E2PROM Ler valores de E2PROM sequencialmente.
Campo de carga útil | Comprimento | Valor/descrição |
Endereço E2PROM | 2 Byte | Endereço na E2PROM a partir do qual será iniciada a operação de leitura. (Pequeno endian ) |
Número de bytes | 2 Byte | Número de bytes a serem lidos. (Pequeno endian) |
4.5.2.2.3 Resposta
Tabela 34. Valor de resposta READ_E2PROM
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) | ||
Valores | 1 – 1024 bytes | Valores que foram lidos em ordem sequencial. |
4.5.2.2.4 Evento
Não há eventos para este comando.
4.5.2.3 OBTER_ÁREA_DO_USUÁRIO_CRC
Esta instrução é usada para calcular o CRC para toda a área de configuração do usuário, incluindo a área de protocolo do IC PN5190.
4.5.2.3.1 Comando
Tabela 35. Valor do comando GET_CRC_USER_AREA
Leia o CRC da área de configuração do usuário, incluindo a área de protocolo.
Campo de carga útil | Comprimento | Valor / Descrição |
– | – | Nenhum dado na carga útil |
4.5.2.3.2 Resposta
Tabela 36. Valor de resposta GET_CRC_USER_AREA
Campo de carga útil | Comprimento | Valor/descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO | ||
PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) | ||
Valores | 4 Byte | 4 bytes de dados CRC em formato little-endian. |
4.5.2.3.3 Evento
Não há eventos para este comando.
4.5.3 Manipulação de dados CLIF
As instruções descritas nesta seção descrevem os comandos para transmissão e recepção de RF.
4.5.3.1 TROCA_RF_DADOS
A função de troca de RF realiza uma transmissão dos dados TX e aguarda a recepção de quaisquer dados RX.
A função retorna em caso de recepção (errônea ou correta) ou de timeout. O cronômetro é iniciado com o FIM da TRANSMISSÃO e parado com o INÍCIO da RECEPÇÃO. O valor de timeout pré-configurado na EEPROM deverá ser utilizado caso o timeout não seja configurado antes da execução do comando Exchange.
Se transceptor_state for
- em IDLE, o modo TRANSCEIVE é inserido.
- Em WAIT_RECEIVE, o estado do transceptor é redefinido para TRANSCEIVE MODE caso o bit inicializador seja definido
- Em WAIT_TRANSMIT, o estado do transceptor é redefinido para TRANSCEIVE MODE caso o bit inicializador NÃO esteja definido
O campo 'Número de bits válidos no último byte' indica o comprimento exato dos dados a serem transmitidos.
4.5.3.1.1 condições
O tamanho do campo 'TX Data' deve estar no intervalo de 0 a 1024, inclusive.
O campo 'Número de bits válidos no último byte' deve estar no intervalo de 0 a 7.
O comando não deve ser chamado durante uma transmissão de RF em andamento. O comando deve garantir o estado correto do transceptor para transmitir os dados.
Observação:
Este comando é válido apenas para modo Leitor e modo iniciador P2P” Passivo/Ativo.
4.5.3.1.2 Comando
Tabela 37. Valor do comando EXCHANGE_RF_DATA
Grave os dados TX no buffer interno de transmissão de RF e inicie a transmissão usando o comando transceive e aguarde até a recepção ou o tempo limite para preparar uma resposta ao host.
Campo de carga útil | Comprimento | Valor / Descrição | |
Número de bits válidos no último byte | 1 Byte | 0 | Todos os bits do último byte são transmitidos |
1 – 7 | Número de bits no último byte a ser transmitido. | ||
Configuração do RFExchange | 1 Byte | Configuração da função RFExchange. Detalhes veja abaixo |
Tabela 37. Valor do comando EXCHANGE_RF_DATA…continuação
Grave os dados TX no buffer interno de transmissão de RF e inicie a transmissão usando o comando transceive e aguarde até a recepção ou o tempo limite para preparar uma resposta ao host.
Campo de carga útil | Comprimento | Valor / Descrição |
Dados TX | n bytes | Dados TX que devem ser enviados via CLIF usando o comando transceive. n = 0 – 1024 bytes |
Tabela 38. Máscara de bits RFexchangeConfig
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição |
Bits 4 – 7 são RFU | ||||||||
X | Inclui dados RX na resposta com base em RX_STATUS, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro EVENT_STATUS na resposta, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro RX_STATUS_ERROR na resposta, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro RX_STATUS na resposta, se o bit estiver definido como 1b. |
4.5.3.1.3 Resposta
Tabela 39. Valor de resposta EXCHANGE_RF_DATA
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (Nenhum dado adicional está presente) PN5190_STATUS_TIMEOUT PN5190_STATUS_RX_TIMEOUT PN5190_STATUS_NO_RF_FIELD PN5190_STATUS_TIMEOUT_WITH_EMD_ERROR |
||
RX_STATUS | 4 Byte | Se RX_STATUS for solicitado (little-endian) |
RX_STATUS_ERROR | 4 Byte | Se RX_STATUS_ERROR for solicitado (little-endian) |
STATUS_DO_EVENTO | 4 Byte | Se EVENT_STATUS for solicitado (little-endian) |
Dados RX | 1 – 1024 bytes | Se forem solicitados dados RX. Dados RX recebidos durante a fase de recepção de RF da troca de RF. |
4.5.3.1.4 Evento
Não há eventos para este comando.
4.5.3.2 TRANSMITIR_RF_DADOS
Esta instrução é usada para gravar dados no buffer de transmissão CLIF interno e iniciar a transmissão usando o comando transceive internamente. O tamanho desse buffer é limitado a 1024 bytes. Após esta instrução ter sido executada, uma recepção de RF é iniciada automaticamente.
O comando retorna imediatamente após a conclusão da transmissão, sem aguardar a conclusão da recepção.
4.5.3.2.1 condições
O número de bytes no campo 'TX Data' deve estar no intervalo de 1 a 1024, inclusive.
O comando não deve ser chamado durante uma transmissão de RF em andamento.
4.5.3.2.2 Comando
Tabela 40. Valor do comando TRANSMIT_RF_DATA Grava dados TX no buffer de transmissão CLIF interno.
Campo de carga útil | Comprimento | Valor / Descrição |
Número de bits válidos no último byte | 1 Byte | 0 Todos os bits do último byte são transmitidos 1 – 7 Número de bits do último byte a serem transmitidos. |
RFUs | 1 Byte | Reservado |
Dados TX | 1 – 1024 bytes | Dados TX que serão usados durante a próxima transmissão de RF. |
4.5.3.2.3 Resposta
Tabela 41. Valor de resposta TRANSMIT_RF_DATA
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR PN5190_STATUS_SEM_CAMPO_RF PN5190_STATUS_SEM_CAMPO_RF_EXTERNO |
4.5.3.2.4 Evento
Não há eventos para este comando.
4.5.3.3 RECUPERAR_DADOS_RF
Esta instrução é usada para ler dados do buffer CLIF RX interno, que contém os dados de resposta de RF (se houver) postados nele da execução anterior da Seção 4.5.3.1 com opção de não incluir os dados recebidos na resposta ou Seção 4.5.3.2 .XNUMX comando.
4.5.3.3.1 Comando
Tabela 42. Valor do comando RETRIEVE_RF_DATA Lê dados RX do buffer de recepção de RF interno.
Campo de carga útil | Comprimento | Valor / Descrição |
Vazio | Vazio | Vazio |
4.5.3.3.2 Resposta
Tabela 43. Valor de resposta RETRIEVE_RF_DATA
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
Campo de carga útil | Comprimento | Valor / Descrição |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
||
Dados RX | 1 – 1024 bytes | Dados RX que foram recebidos durante a última recepção de RF bem-sucedida. |
4.5.3.3.3 Evento
Não há eventos para este comando.
4.5.3.4 RECEBER_DADOS_RF
Esta instrução aguarda os dados recebidos através da Interface RF do leitor.
No modo leitor, esta instrução retorna se houver uma recepção (errônea ou correta) ou se ocorreu um timeout do FWT. O cronômetro é iniciado com o FIM da TRANSMISSÃO e parado com o INÍCIO da RECEPÇÃO. O valor de timeout padrão pré-configurado na EEPROM deverá ser utilizado caso o timeout não seja configurado antes da execução do comando Exchange.
No modo alvo, esta instrução retorna em caso de recepção (errônea ou correta) ou erro de RF externo.
Observação:
Esta instrução deve ser utilizada com o comando TRANSMIT_RF_DATA para realizar operações TX e RX…
4.5.3.4.1 Comando
Tabela 44. Valor do comando RECEIVE_RF_DATA
Campo de carga útil | Comprimento | Valor / Descrição |
ReceberRFConfig | 1 Byte | Configuração da função ReceiveRFConfig. Ver Tabela 45 |
Tabela 45. Máscara de bits ReceiveRFConfig
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição |
Bits 4 – 7 são RFU | ||||||||
X | Inclui dados RX na resposta com base em RX_STATUS, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro EVENT_STATUS na resposta, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro RX_STATUS_ERROR na resposta, se o bit estiver definido como 1b. | |||||||
X | Inclui o registro RX_STATUS na resposta, se o bit estiver definido como 1b. |
4.5.3.4.2 Resposta
Tabela 46. Valor de resposta RECEIVE_RF_DATA
Campo de carga útil | Comprimento | Valor/descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) PN5190_STATUS_TEMPO LIMITE |
Campo de carga útil | Comprimento | Valor/descrição |
PN5190_STATUS_SEM_CAMPO_RF PN5190_STATUS_SEM_CAMPO_RF_EXTERNO |
||
RX_STATUS | 4 Byte | Se RX_STATUS for solicitado (little-endian) |
RX_STATUS_ERROR | 4 Byte | Se RX_STATUS_ERROR for solicitado (little-endian) |
STATUS_DO_EVENTO | 4 Byte | Se EVENT_STATUS for solicitado (little-endian) |
Dados RX | 1 – 1024 bytes | Se forem solicitados dados RX. Dados RX recebidos por RF. |
4.5.3.4.3 Evento
Não há eventos para este comando.
4.5.3.5 RETRIEVE_RF_FELICA_EMD_DATA (Configuração FeliCa EMD)
Esta instrução é usada para ler dados do buffer CLIF RX interno, que contém dados de resposta FeliCa EMD (se houver) postados nele da execução anterior do comando EXCHANGE_RF_DATA retornando com Status 'PN5190_STATUS_TIMEOUT_WITH_EMD_ERROR'.
Observação: Este comando está disponível a partir do PN5190 FW v02.03.
4.5.3.5.1 Comando
Leia dados RX do buffer interno de recepção de RF.
Tabela 47. Valor do comando RETRIEVE_RF_FELICA_EMD_DATA
Campo de carga útil | Comprimento | Valor / Descrição | |
Configuração FeliCaRFRetrieve | 1 Byte | 00 – FF | Configuração da função RETRIEVE_RF_FELICA_EMD_DATA |
descrição da configuração (máscara de bits) | bit 7..2: RFU bit 1: Inclui o registro RX_STATUS_ERROR na resposta, se o bit estiver definido como 1b. bit 0: Inclui o registro RX_STATUS na resposta, se o bit estiver definido como 1b. |
4.5.3.5.2 Resposta
Tabela 48. Valor de resposta RETRIEVE_RF_FELICA_EMD_DATA
Campo de carga útil | Comprimento | Valor/descrição | |||
Status | 1 Byte | Status da operação. Os valores esperados são os seguintes: PN5190_STATUS_INSTR_SUCCESS PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) | |||
RX_STATUS | 4 Byte | Se RX_STATUS for solicitado (little-endian) | |||
RX_STATUS_ERRO | 4 Byte | Se RX_STATUS_ERROR for solicitado (little-endian) |
Campo de carga útil | Comprimento | Valor/descrição | |||
Dados RX | 1…1024 bytes | Dados FeliCa EMD RX que foram recebidos durante a última recepção de RF malsucedida usando o Exchange Command. |
4.5.3.5.3 Evento
Não há eventos para este comando.
4.5.4 Alternando Modo de Operação
PN5190 suporta 4 modos de operação diferentes:
4.5.4.1 Normal
Este é o modo padrão, onde todas as instruções são permitidas.
4.5.4.2 Em espera
O PN5190 está no estado de espera/suspensão para economizar energia. As condições de despertar devem ser definidas para definir quando sair do modo de espera novamente.
4.5.4.3 CDLP
O PN5190 está no modo de detecção de cartão de baixo consumo de energia, onde tenta detectar um cartão que está entrando no volume operacional, com o menor consumo de energia possível.
4.5.4.4 Coleta automática
O PN5190 atua como ouvinte de RF, realizando a ativação do modo alvo de forma autônoma (para garantir restrições em tempo real)
4.5.4.5 MODO_DE_TROCA_NORMAL
O comando Switch Mode Normal tem três casos de uso.
4.5.4.5.1 UseCase1: Entre no modo de operação normal ao ligar (POR)
Use para redefinir para o estado inativo para receber/processar o próximo comando entrando no modo de operação normal.
4.5.4.5.2 UseCase2: Encerrando o comando já em execução para mudar para o modo de operação normal (comando de abortar)
Use para redefinir para o estado inativo para receber/processar o próximo comando, encerrando os comandos já em execução.
Comandos como standby, LPCD, Exchange, PRBS e Autocoll poderão ser finalizados usando este comando.
Este é o único comando especial que não tem resposta. Em vez disso, possui uma notificação de EVENTO.
Consulte a Seção 4.4.3 para obter mais informações sobre os tipos de eventos que ocorrem durante a execução de diferentes comandos subjacentes.
4.5.4.5.2.1 Caso de uso2.1:
Este comando deve redefinir todos os registros CLIF TX, RX e Field Control para o estado de inicialização. A emissão deste comando desligará qualquer campo RF existente.
4.5.4.5.2.2 Caso de uso2.2:
Disponível a partir do PN5190 FW v02.03:
Este comando não modificará os registros CLIF TX, RX e Field Control, mas apenas moverá o transceptor para o estado IDLE.
4.5.4.5.3 UseCase3: Modo de operação normal ao reiniciar/sair do modo de espera, LPCD Neste caso, o PN5190 entra diretamente no modo de operação normal, enviando o IDLE_EVENT para o host (Figura 12 ou Figura 13) e “ IDLE_EVENT” é definido na Tabela 11.
Não há nenhum requisito para enviar o comando SWITCH_MODE_NORMAL.
Observação:
Depois que o IC é alterado para o modo normal, todas as configurações de RF são modificadas para o estado padrão. É imperativo que a respectiva configuração de RF e outros registros relacionados sejam carregados com valores apropriados antes de executar uma operação RF ON ou RF Exchange.
4.5.4.5.4 Quadro de comando a ser enviado para diferentes casos de uso
4.5.4.5.4.1 UseCase1: Comando entra no modo de operação normal ao ligar (POR) 0x20 0x01 0x00
4.5.4.5.4.2 UseCase2: Comando para encerrar comandos já em execução para mudar para o modo de operação normal
Caso de uso 2.1:
0x20 0x00 0x00
Caso de uso 2.2: (do FW v02.02 em diante):
0x20 0x02 0x00
4.5.4.5.4.3 UseCase3: Comando para modo de operação normal após reinicialização suave/saída do modo de espera, LPCD, ULPCD
Nenhum. PN5190 entra diretamente no modo de operação normal.
4.5.4.5.5 Resposta
Nenhum
4.5.4.5.6 Evento
Um BOOT_EVENT (no registro EVENT_STATUS) é definido indicando que o modo normal foi inserido e enviado ao host. Consulte a Figura 12 e a Figura 13 para obter os dados do evento.
Um IDLE_EVENT (no registro EVENT_STATUS) é definido indicando que o modo normal foi inserido e enviado ao host. Consulte a Figura 12 e a Figura 13 para obter os dados do evento.
Um BOOT_EVENT (no registro EVENT_STATUS) é definido indicando que o modo normal foi inserido e enviado ao host. Consulte a Figura 12 e a Figura 13 para obter os dados do evento.
4.5.4.6 MODO_DE_TROCA_AUTOCOLL
O Switch Mode Autocoll executa automaticamente o procedimento de ativação do cartão no modo alvo.
O campo 'Autocoll Mode' deve estar no intervalo de 0 a 2, inclusive.
Caso o campo 'Autocoll Mode' esteja definido como 2 (Autocoll): O campo 'RF Technologies' (Tabela 50) deve conter uma máscara de bits indicando as tecnologias de RF a serem suportadas durante o Autocoll.
Nenhuma instrução deve ser enviada enquanto estiver neste modo.
A terminação é indicada por meio de uma interrupção.
4.5.4.6.1 Comando
Tabela 49. Valor do comando SWITCH_MODE_AUTOCOLL
Parâmetro | Comprimento | Valor / Descrição | |
Tecnologias de RF | 1 Byte | Bitmask indicando a tecnologia RF a ser escutada durante o Autocoll. | |
Modo de coleta automática | 1 Byte | 0 | Sem modo autônomo, ou seja, o Autocoll termina quando o campo RF externo não está presente. |
Rescisão em caso de | |||
• NENHUM CAMPO RF ou CAMPO RF desapareceu | |||
• PN5190 está ATIVADO no modo TARGET | |||
1 | Modo autônomo com standby. Quando nenhum campo RF estiver presente, o Autocoll entra automaticamente no modo Standby. Assim que o campo RF externo for detectado, o PN5190 entra novamente no modo Autocoll. | ||
Rescisão em caso de | |||
• PN5190 está ATIVADO no modo TARGET | |||
De PN5190 FW v02.03 em diante: Se o campo EEPROM “bCard ModeUltraLowPowerEnabled” no endereço '0xCDF' estiver definido como '1', então o PN5190 entra no modo de espera de ultra baixo consumo de energia. | |||
2 | Modo autônomo sem standby. Quando nenhum campo RF está presente, o PN5190 espera até que o campo RF esteja presente antes de iniciar o algoritmo Autocoll. O modo de espera não é usado neste caso. | ||
Rescisão em caso de • PN5190 está ATIVADO no modo TARGET |
Tabela 50. Máscara de bits de tecnologias de RF
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição |
0 | 0 | 0 | 0 | RFUs | ||||
X | Se definido como 1b, a escuta de NFC-F Active será habilitada. (Não disponível). | |||||||
X | Se definido como 1b, a escuta de NFC-A Active será habilitada. (Não disponível). | |||||||
X | Se definido como 1b, a escuta de NFC-F estará habilitada. | |||||||
X | Se definido como 1b, a escuta de NFC-A estará habilitada. |
4.5.4.6.2 Resposta
A resposta apenas sinaliza que o comando foi processado.
Tabela 51. Valor de resposta SWITCH_MODE_AUTOCOLL
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (o modo Switch não foi inserido devido a configurações erradas) |
4.5.4.6.3 Evento
A notificação de evento é enviada quando o comando é concluído e o modo normal é inserido. O host deve ler os bytes de resposta com base no valor do evento.
Observação:
Quando o status não for “PN5190_STATUS_INSTR_SUCCESS”, então outros bytes de dados “Protocol” e “Card_Activated” não estarão presentes.
As informações de tecnologia são recuperadas dos registros usando os comandos da Seção 4.5.1.5, Seção 4.5.1.6.
A tabela a seguir mostra os dados do evento que são enviados como parte da mensagem de evento Figura 12 e Figura 13.
Tabela 52. EVENT_SWITCH_MODE_AUTOCOLL – Dados AUTOCOLL_EVENT Alternar modo de operação Evento Autocoll
Campo de carga útil | Comprimento | Valor / Descrição | |
Status | 1 byte | Situação da operação | |
PN5190_STATUS_INSTR_SUCESSO | PN5190 está ATIVADO no modo TARGET. Outros dados neste evento são válidos. |
||
PN5190_STATUS_PREVENIR_ESPERA | Indica que o PN5190 está impedido de entrar no modo Standby. Este status é válido somente quando o modo Autocoll está selecionado como “Modo autônomo com standby”. |
PN5190_STATUS_NO_EXTERNAL_RF_FIELD | Indica que nenhum campo RF externo está presente durante a execução do Autocoll no modo Não Autônomo | ||
PN5190_STATUS_USUÁRIO_CANCELADO | Indica que o comando atual em andamento foi abortado pelo comando normal do modo de comutação | ||
Protocolo | 1 byte | 0x10 | Ativado como passivo TypeA |
0x11 | Ativado como Passivo TypeF 212 | ||
0x12 | Ativado como Passivo TypeF 424 | ||
0x20 | Ativado como ativo TypeA | ||
0x21 | Ativado como ativo TypeF 212 | ||
0x22 | Ativado como ativo TypeF 424 | ||
Outros valores | Inválido | ||
Cartão_Ativado | 1 byte | 0x00 | Nenhum processo de ativação de cartão conforme ISO 14443-3 |
0x01 | Indica que o dispositivo está ativado no modo Passivo |
Observação:
Após a leitura dos dados do evento, os dados recebidos do cartão/dispositivo que foi ativado (como 'n' bytes de ATR_REQ/RATS conforme ISO18092/ISO1443-4), devem ser lidos usando o comando da Seção 4.5.3.3.
4.5.4.6.4 Comunicação example
4.5.4.7 MODO_DE_TROCA_EM_ESPERA
O Switch Mode Standby coloca automaticamente o IC no modo Standby. O IC será ativado depois que as fontes de ativação configuradas atenderem às condições de ativação.
Observação:
A expiração do contador para ULP STANDBY e a interrupção HIF para STANDBY estão disponíveis por padrão para sair dos modos de espera.
4.5.4.7.1 Comando
Tabela 53. Valor do comando SWITCH_MODE_STANDBY
Parâmetro | Comprimento | Valor / Descrição |
Configuração | 1 Byte | Bitmask controlando a fonte de ativação a ser usada e o modo Standby para entrar. Referir-se Tabela 54 |
Valor do contador | 2 Byte | Valor usado para contador de ativação em milissegundos. O valor máximo suportado é 2690 para espera. O valor máximo suportado é 4095 para espera ULP. O valor a ser fornecido está no formato little-endian. O conteúdo deste parâmetro é válido somente se o “Config Bitmask” estiver habilitado para ativação no contador expirar. |
Tabela 54. Configuração de máscara de bits
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição |
X | Entre no modo de espera ULP se o bit estiver definido como 1b Entre no modo de espera se o bit estiver definido como 0b. | |||||||
0 | RFUs | |||||||
X | Ative no GPIO-3 quando estiver alto, se o bit estiver definido como 1b. (Não aplicável para espera ULP) | |||||||
X | Ative no GPIO-2 quando estiver alto, se o bit estiver definido como 1b. (Não aplicável para espera ULP) | |||||||
X | Ative no GPIO-1 quando estiver alto, se o bit estiver definido como 1b. (Não aplicável para espera ULP) | |||||||
X | Ative no GPIO-0 quando estiver alto, se o bit estiver definido como 1b. (Não aplicável para espera ULP) | |||||||
X | O contador de ativação expira, se o bit estiver definido como 1b. Para ULP-Standby, esta opção está habilitada por padrão. | |||||||
X | Ativação no campo RF externo, se o bit estiver definido como 1b. |
Observação: A partir do PN5190 FW v02.03, se o campo EEPROM “CardModeUltraLowPowerEnabled” no endereço '0xCDF' estiver definido como '1', a configuração de espera ULP não poderá ser usada com o comando SWITCH_MODE_STANDBY.
4.5.4.7.2 Resposta
A resposta apenas sinaliza que o comando foi processado e o estado de espera será inserido somente após a resposta ser totalmente lida pelo host.
Tabela 55. Valor de resposta SWITCH_MODE_STANDBY Alternar modo de operação em espera
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (o modo Switch não foi inserido – devido a configurações erradas) |
4.5.4.7.3 Evento
A notificação de evento é enviada quando o comando é concluído e o modo normal é inserido. Consulte o formato do evento que será enviado após a conclusão do comando conforme Figura 12 e Figura 13.
Caso o PN5190 seja impedido de entrar no modo Standby, então o bit do evento “STANDBY_PREV_EVENT” definido em EVENT_STATUS conforme mencionado na Tabela 11 é enviado ao host juntamente com o motivo da prevenção de standby conforme mencionado na Tabela 13.
4.5.4.7.4 Comunicação Example
4.5.4.8 MODO_DE_TROCA_LPCD
O Switch Mode LPCD realiza uma detecção de desafinação na antena devido às mudanças no ambiente ao redor da antena.
Existem 2 modos diferentes de LPCD. A solução baseada em HW (ULPCD) oferece um consumo de energia competitivo com sensibilidade reduzida. A solução baseada em FW (LPCD) oferece a melhor sensibilidade da categoria com maior consumo de energia.
No modo único baseado em FW (LPCD), não há evento de calibração enviado ao host.
Quando o modo Único é invocado, a calibração e as medições sucessivas são feitas após sair do modo de espera.
Para evento de calibração em modo único, primeiro emita modo único com comando de evento de calibração. Após a calibração, um evento de calibração LPCD é recebido, após o qual o comando de modo único deve ser enviado com o valor de referência obtido na etapa anterior como parâmetro de entrada.
A configuração do LPCD é feita nas configurações EEPROM/Flash Data antes do comando ser chamado.
Observação:
A interrupção GPIO3 para ULPCD e a interrupção HIF para LPCD estão disponíveis por padrão para sair dos modos de baixo consumo de energia.
O despertar devido à expiração do contador está sempre ativado.
Para ULPCD, a configuração DC-DC deve ser desabilitada nas configurações de EEPROM/Flash Data e deve fornecer alimentação VUP através de VBAT. As configurações de jumper necessárias devem ser feitas. Para configurações de dados EEPROM/Flash, consulte o documento [2].
Se o comando for para calibração LPCD/ULPCD, o host ainda terá que enviar o quadro completo.
4.5.4.8.1 Comando
Tabela 56. Valor do comando SWITCH_MODE_LPCD
Parâmetro | Comprimento | Valor/descrição | |
bControle | 1 Byte | 0x00 | Insira a calibração ULPCD. O comando para após a calibração e um evento com valor de referência é enviado ao host. |
0x01 | Digite ULPCD | ||
0x02 | Calibração LPCD. O comando para após a calibração e um evento com valor de referência é enviado ao host. | ||
0x03 | Entre no CDLP | ||
0x04 | Modo único | ||
0x0C | Modo único com evento de calibração | ||
Outros valores | RFUs | ||
Controle de despertar | 1 Byte | Bitmask controlando a fonte de ativação a ser usada para LPCD/ULPCD. O conteúdo deste campo não é considerado para calibração. Referir-se Tabela 57 | |
Valor de referência | 4 Byte | Valor de referência a ser utilizado durante ULPCD/LPCD. Para ULPCD, o byte 2 que contém o valor do atenuador de HF é usado durante a fase de calibração e medição. Para LPCD, o conteúdo deste campo não é considerado para calibração e modo Single. Referir-se Tabela 58 para obter as informações corretas sobre todos os 4 bytes. |
|
Valor do contador | 2 Byte | Valor do contador de ativação em milissegundos. O valor máximo suportado é 2690 para LPCD. O valor máximo suportado é 4095 para ULPCD. O valor a ser fornecido está no formato little-endian. O conteúdo deste campo não é considerado para calibração do LPCD. Para modo único e modo único com evento de calibração, a duração do standby antes da calibração pode ser configurada na configuração da EEPROM: LPCD_SETTINGS->wCheck Period. Para modo único com calibração, o valor WUC deve ser diferente de zero. |
Tabela 57. Máscara de bits de controle de ativação
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição |
0 | 0 | 0 | 0 | 0 | 0 | 0 | RFUs | |
X | Ativação no campo RF externo, se o bit estiver definido como 1b. |
Tabela 58. Informações de bytes do valor de referência
Bytes de valor de referência | ULPCD | CDLP |
bytes 0 | Byte de referência 0 | Canal 0 Byte de referência 0 |
bytes 1 | Byte de referência 1 | Canal 0 Byte de referência 1 |
bytes 2 | Valor do atenuador HF | Canal 1 Byte de referência 0 |
bytes 3 | NA | Canal 1 Byte de referência 1 |
4.5.4.8.2 Resposta
Tabela 59. Valor de resposta SWITCH_MODE_LPCD
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERROR (o modo Switch não foi inserido – devido a configurações erradas) |
4.5.4.8.3 Evento
A notificação de evento é enviada quando o comando é concluído e o modo normal é inserido com os seguintes dados como parte do evento mencionado na Figura 12 e Figura 13.
Tabela 60. EVT_SWITCH_MODE_LPCD
Campo de carga útil | Comprimento | Valor / Descrição |
Status do CDLP | Consulte a Tabela 15 | Consulte a Tabela 154.5.4.8.4 Comunicação Example |
4.5.4.9 MODO_DE_TROCA_DOWNLOAD
O comando Switch Mode Download entra no modo de download de firmware.
A única maneira de sair do modo de download é redefinir para PN5190.
4.5.4.9.1 Comando
Tabela 61. Valor do comando SWITCH_MODE_DOWNLOAD
Parâmetro | Comprimento | Valor / Descrição |
– | – | Sem valor |
4.5.4.9.2 Resposta
A resposta apenas sinaliza que o comando foi processado e o modo Download deverá ser inserido após a resposta ser lida pelo host.
Tabela 62. Valor de resposta SWITCH_MODE_DOWNLOAD
Alternar modo de operação Autocoll
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (o modo Switch não foi inserido) |
4.5.4.9.3 Evento
Nenhuma geração de eventos.
4.5.4.9.4 Comunicação Example
4.5.5 Autenticação Clássica MIFARE
4.5.5.1 MFC_AUTENTICAR
Esta instrução é usada para realizar uma autenticação MIFARE Classic em um cartão ativado. São necessários a chave, o UID do cartão e o tipo de chave para autenticar em determinado endereço de bloco. A resposta contém um byte que indica o status de autenticação.
4.5.5.1.1 condições
A chave do campo deve ter 6 bytes de comprimento. O campo Tipo de chave deve conter o valor 0x60 ou 0x61. O endereço do bloco pode conter qualquer endereço de 0x0 a 0xff, inclusive. O campo UID deve ter bytes e conter o UID de 4 bytes do cartão. Uma placa baseada em produto ISO14443-3 MIFARE Classic deve ser colocada no estado ATIVO ou ATIVO* antes da execução desta instrução.
No caso de um erro de tempo de execução relacionado à autenticação, este campo 'Status de Autenticação' é definido adequadamente.
4.5.5.1.2 Comando
Tabela 63. Comando MFC_AUTHENTICATE
Execute a autenticação em um cartão baseado em produto MIFARE Classic ativado.
Campo de carga útil | Comprimento | Valor / Descrição | |
Chave | 6 Byte | Chave de autenticação a ser usada. | |
Tipo de chave | 1 Byte | 0x60 | Chave Tipo A |
0x61 | Chave Tipo B | ||
Bloquear endereço | 1 Byte | O endereço do bloco para o qual a autenticação deve ser realizada. | |
ID único | 4 Byte | UID do cartão. |
4.5.5.1.3 Resposta
Tabela 64. Resposta MFC_AUTHENTICATE
Resposta a MFC_AUTHENTICATE.
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_INSTR_SUCESSO PN5190_STATUS_INSTR_ERRO PN5190_STATUS_TEMPO LIMITE PN5190_STATUS_ERRO_AUTH |
4.5.5.1.4 Evento
Não há evento para esta instrução.
4.5.6 Suporte ISO 18000-3M3 (EPC GEN2)
4.5.6.1 EPC_GEN2_INVENTÁRIO
Esta instrução é usada para realizar um inventário da ISO18000-3M3 tags. Implementa uma execução autónoma de vários comandos de acordo com a norma ISO18000-3M3 de forma a garantir as temporizações especificadas por aquela norma.
Se presente na carga útil da instrução, primeiro um comando Select é executado seguido por um comando BeginRound.
Se houver uma resposta válida no primeiro intervalo de tempo (sem timeout, sem colisão), a instrução envia um ACK e salva o PC/XPC/UII recebido. A instrução então executa uma ação de acordo com o campo 'Timeslot Processed Behavior':
- Se este campo for definido como 0, um comando NextSlot será emitido para tratar o próximo intervalo de tempo. Isso é repetido até que o buffer interno esteja cheio
- Se este campo for definido como 1, o algoritmo pausa
- Se este campo for definido como 2, um comando Req_Rn será emitido se, e somente se, houver um valor válido tag resposta neste timeslotCommand
O campo 'Select Command Length' deve conter o comprimento do campo 'Select Command', que deve estar no intervalo de 1 a 39, inclusive. Se 'Select Command Length' for 0, os campos 'Valid Bits in last Byte' e 'Select Command' não deverão estar presentes.
O campo Bits no último Byte deverá conter a quantidade de bits a serem transmitidos no último byte do campo 'Selecionar Comando'. O valor deve estar no intervalo de 1 a 7, inclusive. Se o valor for 0, todos os bits do último byte do campo 'Select Command' serão transmitidos.
O campo 'Select Command' deverá conter um comando Select conforme ISO18000-3M3 sem o final do CRC-16c e deverá ter o mesmo comprimento indicado no campo 'Select Command Length'.
O campo 'BeginRound Command' deve conter um comando BeginRound de acordo com ISO18000-3M3 sem seguir CRC-5. Os últimos 7 bits do último byte do 'Comando BeginRound' são ignorados porque o comando tem um comprimento real de 17 bits.
'Comportamento processado do intervalo de tempo' deve conter um valor de 0 a 2, inclusive.
Tabela 65. Valor do comando EPC_GEN2_INVENTORY Executar um inventário ISO 18000-3M3
Campo de carga útil | Comprimento | Valor/descrição | |
Retomar inventário | 1 Byte | 00 | GEN2_INVENTORY inicial |
01 | Retome o comando GEN2_INVENTORY – o restante
os campos abaixo estão vazios (qualquer carga útil é ignorada) |
||
Selecione o comprimento do comando | 1 Byte | 0 | Nenhum comando Select é definido antes do comando BeginRound. Os campos 'Valid Bits in last Byte' e 'Select command' não devem estar presentes. |
1 – 39 | Comprimento (n) do campo 'Selecionar comando'. | ||
Bits válidos no último byte | 1 Byte | 0 | Todos os bits do último byte do campo 'Select command' são transmitidos. |
1 – 7 | Número de bits a serem transmitidos no último byte do campo 'Selecionar comando'. | ||
Selecione o comando | n bytes | Se presente, este campo contém o comando Select (conforme ISO18000-3, Tabela 47) que é enviado antes do comando BeginRound. CRC-16c não deve ser incluído. | |
Comando BeginRound | 3 Byte | Este campo contém o comando BeginRound (conforme ISO18000-3, Tabela 49). CRC-5 não será incluído. | |
Comportamento processado de intervalo de tempo | 1 Byte | 0 | A resposta contém no máximo. Número de intervalos de tempo que podem caber no buffer de resposta. |
1 | A resposta contém apenas um intervalo de tempo. | ||
2 | A resposta contém apenas um intervalo de tempo. Se o intervalo de tempo contiver uma resposta de cartão válida, o identificador do cartão também será incluído. |
4.5.6.1.1 Resposta
O comprimento da Resposta pode ser “1” no caso de retomar o Inventário.
Tabela 66. Valor de resposta EPC_GEN2_INVENTORY
Campo de carga útil | Comprimento | Valor / Descrição | |||
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: | |||
PN5190_STATUS_SUCCESS (Lê o status do intervalo de tempo no próximo byte para Tag resposta) PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
|||||
Intervalo de tempo [1…n] | 3 – 69 bytes | Status do intervalo de tempo | 1 Byte | 0 | Tag resposta disponível. 'Tag Campo Comprimento da resposta', campo 'Bits válidos no último byte' e 'Tag campo de resposta' presente. |
1 | Tag resposta disponível. | ||||
2 | Não tag respondeu no intervalo de tempo. 'Tag Os campos Reply Length' e 'Valid bits in last byte' devem ser definidos como zero. 'Tag campo de resposta' não deve estar presente. | ||||
3 | Dois ou mais tags respondeu no intervalo de tempo. (Colisão). 'Tag Os campos Reply Length' e 'Valid bits in last byte' devem ser definidos como zero. 'Tag campo de resposta' não deve estar presente. |
Tag Comprimento da resposta | 1 Byte | 0-66 | Comprimento de 'Tag Campo 'Responder' (i). Se Tag O comprimento da resposta é 0, então o Tag O campo de resposta não está presente. | ||
Bits válidos no último byte | 1 Byte | 0 | Todos os bits do último byte de 'Tag campo de resposta' são válidos. | ||
1-7 | Número de bits válidos do último byte de 'Tag campo de resposta'. Se Tag O comprimento da resposta é zero, o valor deste byte deve ser ignorado. | ||||
Tag Responder | 'n' Bytes | Resposta do tag de acordo com ISO18000-3_2010, Tabela 56. | |||
Tag Lidar | 0 ou 2 bytes | Alça do tag, caso o campo ‘Timeslot Status’ esteja definido como ‘1’. Caso contrário, o campo não estará presente. |
4.5.6.1.2 Evento
Não há eventos para este comando.
4.5.7 Gerenciamento de configuração de RF
Consulte a Seção 6 para configuração de TX e RX para diferentes tecnologias de RF e taxas de dados suportadas pelo PN5190. Os valores que não estiverem presentes na faixa mencionada abaixo devem ser considerados como RFU.
4.5.7.1 LOAD_RF_CONFIGURAÇÃO
Esta instrução é usada para carregar a configuração de RF da EEPROM nos registradores CLIF internos. A configuração de RF refere-se a uma combinação exclusiva de tecnologia RF, modo (alvo/iniciador) e taxa de transmissão. A configuração de RF pode ser carregada separadamente para o caminho do receptor CLIF (configuração RX) e do transmissor (configuração TX). O valor 0xFF deve ser utilizado se a configuração correspondente para um caminho não deve ser alterada.
4.5.7.1.1 condições
O campo ‘Configuração TX’ deve estar no intervalo de 0x00 – 0x2B, inclusive. Se o valor for 0xFF, a configuração do TX não será alterada.
O campo ‘Configuração RX’ deve estar no intervalo de 0x80 – 0xAB, inclusive. Se o valor for 0xFF, a configuração RX não será alterada.
Uma configuração especial com Configuração TX = 0xFF e Configuração RX = 0xAC é usada para carregar os registros de inicialização uma vez.
Esta configuração especial é necessária para atualizar as configurações de registro (TX e RX) que são diferentes dos valores de redefinição do IC.
4.5.7.1.2 Comando
Tabela 67. Valor do comando LOAD_RF_CONFIGURATION
Carregue as configurações de RF TX e RX do E2PROM.
Campo de carga útil | Comprimento | Valor / Descrição | |
Configuração TX | 1 Byte | 0xFF | Configuração de RF TX não alterada. |
0x0 – 0x2B | Configuração TX RF correspondente carregada. | ||
Configuração RX | 1 Byte | 0xFF | Configuração RX RF não alterada. |
0x80 – 0xAB | Configuração RX RF correspondente carregada. |
4.5.7.1.3 Resposta
Tabela 68. Valor de resposta LOAD_RF_CONFIGURATION
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR |
4.5.7.1.4 Evento
Não há eventos para este comando.
4.5.7.2 ATUALIZAÇÃO_RF_CONFIGURAÇÃO
Esta instrução é utilizada para atualizar a configuração de RF (ver definição na Seção 4.5.7.1) dentro da E2PROM. A instrução permite a atualização no valor de granularidade do registrador, ou seja, não é necessário atualizar o conjunto completo (embora seja possível fazê-lo).
4.5.7.2.1 condições
O tamanho da configuração da matriz de campos deve estar no intervalo de 1 a 15, inclusive. A configuração do array de campos deve conter um conjunto de configuração de RF, endereço de registro e valor. O campo Configuração RF deve estar na faixa de 0x0 – 0x2B para Configuração TX e 0x80 – 0xAB para configuração RX, inclusive. O endereço dentro do campo Register Address deve existir dentro da respectiva configuração de RF. O campo Valor deve conter um valor que deve ser escrito no registro fornecido e deve ter 4 bytes de comprimento (formato little-endian).
4.5.7.2.2 Comando
Tabela 69. Valor do comando UPDATE_RF_CONFIGURATION
Atualizar a configuração de RF
Campo de carga útil | Comprimento | Valor / Descrição | ||
Configuração[1…n] | 6 Byte | Configuração de RF | 1 Byte | Configuração de RF para a qual o registro deve ser alterado. |
Endereço de registro | 1 Byte | Registre o endereço dentro da tecnologia RF fornecida. | ||
Valor | 4 Byte | Valor que deve ser escrito no registrador. (Pequeno endian) |
4.5.7.2.3 Resposta
Tabela 70. Valor de resposta UPDATE_RF_CONFIGURATION
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR PN5190_STATUS_MEMORY_ERROR |
4.5.7.2.4 Evento
Não há eventos para este comando.
4.5.7.3 GET_RF_CONFIGURATION
Esta instrução é usada para ler uma configuração de RF. Os pares endereço-valor do registro estão disponíveis na resposta. Para saber quantos pares são esperados, as informações do primeiro tamanho podem ser recuperadas do primeiro TLV, que indica o comprimento total da carga útil.
4.5.7.3.1 condições
A configuração de campo RF deve estar na faixa de 0x0 – 0x2B para configuração TX e 0x80 –0xAB para configuração RX, inclusive.
4.5.7.3.2 Comando
Tabela 71. Valor do comando GET_ RF_CONFIGURATION Recupera a configuração de RF.
Campo de carga útil | Comprimento | Valor / Descrição |
Configuração de RF | 1 Byte | Configuração RF para a qual o conjunto de pares de valores de registro deve ser recuperado. |
4.5.7.3.3 Resposta
Tabela 72. GET_ RF_CONFIGURATION Valor de resposta
Campo de carga útil | Comprimento | Valor / Descrição | ||
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: | ||
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
||||
Par[1…n] | 5 Byte | Endereço de registro | 1 Byte | Registre o endereço dentro da tecnologia RF fornecida. |
Valor | 4 Byte | Valor de registro de 32 bits. |
4.5.7.3.4 Evento
Não há evento para a instrução.
4.5.8 Tratamento de Campo RF
4.5.8.1 RF_ON
Esta instrução é usada para ativar o RF. A regulação DPC no FieldOn inicial deve ser tratada neste comando.
4.5.8.1.1 Comando
Tabela 73. Valor do comando RF_FIELD_ON
Configurar RF_FIELD_ON.
Campo de carga útil | Comprimento | Valor / Descrição | ||
RF_na_configuração | 1 Byte | Bit 0 | 0 | Utilize a prevenção de colisões |
1 | Desativar prevenção de colisão | |||
Bit 1 | 0 | Nenhum P2P ativo | ||
1 | P2P ativo |
4.5.8.1.2 Resposta
Tabela 74. Valor de resposta RF_FIELD_ON
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR PN5190_STATUS_RF_COLLISION_ERROR (o campo RF não está ativado devido à colisão de RF) PN5190_STATUS_TIMEOUT (campo RF não está ativado devido ao tempo limite) PN5190_STATUS_TXLDO_ERROR (erro TXLDO devido a VUP não está disponível) PN5190_STATUS_RFCFG_NOT_APPLIED (a configuração de RF não é aplicada antes deste comando) |
4.5.8.1.3 Evento
Não há evento para esta instrução.
4.5.8.2 RF_DESLIGADO
Esta instrução é usada para desabilitar o Campo RF.
4.5.8.2.1 Comando
Tabela 75. Valor do comando RF_FIELD_OFF
Campo de carga útil | Comprimento | Valor / Descrição |
Vazio | Vazio | vazio |
4.5.8.2.2 Resposta
Tabela 76. Valor de resposta RF_FIELD_OFF
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
4.5.8.2.3 Evento
Não há evento para esta instrução.
4.5.9 Configuração do barramento de teste
Os sinais de barramento de teste disponíveis nas configurações PAD selecionadas estão listados na Seção 7 para referência.
Eles devem ser consultados para fornecer as instruções de configuração do barramento de teste conforme mencionado abaixo.
4.5.9.1 CONFIGURAR _TESTBUS_DIGITAL
Esta instrução é usada para alternar o sinal do barramento de teste digital disponível nas configurações de bloco selecionadas.
4.5.9.1.1 Comando
Tabela 77. Valor do comando CONFIGURE_TESTBUS_DIGITAL
Campo de carga útil | Comprimento | Valor/descrição | |
TB_Índice de sinal | 1 Byte | Consulte Seção 7 | |
TB_BitIndex | 1 Byte | Consulte Seção 7 | |
Índice do TB_Pad | 1 Byte | O pad index, no qual o sinal digital será emitido | |
0x00 | Pino AUX1 | ||
0x01 | Pino AUX2 | ||
0x02 | Pino AUX3 | ||
0x03 | pino GPIO0 | ||
0x04 | pino GPIO1 | ||
0x05 | pino GPIO2 | ||
0x06 | pino GPIO3 | ||
0x07-0xFF | RFUs |
4.5.9.1.2 Resposta
Tabela 78. Valor de resposta CONFIGURE_TESTBUS_DIGITAL
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCCESS PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
4.5.9.1.3 Evento
Não há evento para esta instrução.
4.5.9.2 CONFIGURAR_TESTBUS_ANALOG
Esta instrução é usada para obter sinal de barramento de teste analógico disponível em configurações de bloco selecionadas.
O sinal no barramento de teste analógico pode ser obtido em diferentes modos. Eles são:
4.5.9.2.1 Modo RAW
Neste modo, o sinal escolhido por TB_SignalIndex0 é deslocado por Shift_Index0, mascarado com Mask0 e emitido em AUX1. Da mesma forma, o sinal escolhido por TB_SignalIndex1 é deslocado por Shift_Index1, mascarado com Mask1 e emitido em AUX2.
Este modo oferece flexibilidade para o cliente emitir qualquer sinal com largura de 8 bits ou menos e não requer conversão de sinal para saída nos blocos analógicos.
4.5.9.2.2 Modo COMBINADO
Neste modo, o sinal analógico será o valor ADCI/ADCQ/pcrm_if_rssi assinado de 10 bits convertido em um valor não assinado, reduzido para 8 bits e então emitido nos blocos AUX1 ou AUX2.
Apenas um dos valores convertidos ADCI/ADCQ (10 bits) pode ser enviado para AUX1/AUX2 a qualquer momento.
Se o valor do campo de carga útil do sinal Combined_Mode for 2 (Analógico e Digital Combinado), então o barramento de teste analógico e digital será roteado em AUX1 (Sinal Analógico) e GPIO0 (Sinal Digital).
Os sinais a serem roteados são configurados no endereço EEPROM mencionado abaixo:
0xCE9 – Índice de sinal TB
0xCEA – TB_BitIndex
0xCEB – TB_Index analógico
O índice do barramento de teste e o bit do barramento de teste devem ser configurados na EEPROM antes de emitirmos o modo combinado com a opção 2.
Observação:
O host deverá fornecer todos os campos, independentemente da aplicabilidade do campo no modo “bruto” ou “combinado”. O IC PN5190 considera apenas os valores dos campos aplicáveis.
4.5.9.2.3 Comando
Tabela 79. Valor do comando CONFIGURE_TESTBUS_ANALOG
Campo de carga útil | Comprimento | Valor/descrição | Aplicabilidade de campo para modo combinado | |
bConfig | 1 Byte | Bits configuráveis. Referir-se Tabela 80 | Sim | |
Sinal de modo_combinado | 1 Byte | 0 – ADCI/ADCQ 1 – pcrm_if_rssi |
Sim | |
2 – Analógico e Digital Combinados | ||||
3 – 0xFF –Reservado |
TB_Índice de sinal0 | 1 Byte | Índice de sinal do sinal analógico. Referir-se Seção 7 | Sim | |
TB_Índice de sinal1 | 1 Byte | Índice de sinal do sinal analógico. Referir-se Seção 7 | Sim | |
Índice_de_deslocamento0 | 1 Byte | Posições de mudança de entrada DAC0. A direção será decidida bit a bit em bConfig[1]. | Não | |
Índice_de_deslocamento1 | 1 Byte | Posições de mudança de entrada DAC1. A direção será decidida bit a bit em bConfig[2]. | Não | |
Máscara0 | 1 Byte | Máscara DAC0 | Não | |
Máscara1 | 1 Byte | Máscara DAC1 | Não |
Tabela 80. Configuração da máscara de bits
b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 | Descrição | Aplicável ao modo |
X | X | Faixa de mudança de saída DAC1 – 0, 1, 2 | Cru | ||||||
X | X | Faixa de mudança de saída DAC0 – 0, 1, 2 | Cru | ||||||
X | No modo combinado, sinal no pino AUX1/AUX2 0 ➜ Sinal em AUX1 1 ➜ Sinal em AUX2 |
Combinado | |||||||
X | Direção de mudança de entrada DAC1 0 ➜ Deslocar para a direita 1 ➜ Deslocar para a esquerda |
Cru | |||||||
X | Direção de mudança de entrada DAC0 0 ➜ Deslocar para a direita 1 ➜ Deslocar para a esquerda |
Cru | |||||||
X | Modo. 0 ➜ Modo bruto 1 ➜ Modo combinado |
Cru/Combinado |
4.5.9.2.4 Resposta
Tabela 81. Valor de resposta CONFIGURE_TESTBUS_ANALOG
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
4.5.9.2.5 Evento
Não há evento para esta instrução.
4.5.9.3 CONFIGURAR_VÁRIOS_TESTBUS_DIGITAL
Esta instrução é usada para alternar vários sinais de barramento de teste digital disponíveis em configurações de bloco selecionadas.
Observação: Se este comprimento for ZERO, então um barramento de teste digital é RESET.
4.5.9.3.1 Comando
Tabela 82. Valor do comando CONFIGURE_MULTIPLE_TESTBUS_DIGITAL
Campo de carga útil | Comprimento | Valor/descrição | |
TB_SignalIndex #1 | 1 Byte | Consulte 8 abaixo | |
TB_BitIndex #1 | 1 Byte | Consulte 8 abaixo | |
TB_PadÍndice #1 | 1 Byte | O pad index, no qual o sinal digital será emitido | |
0x00 | Pino AUX1 | ||
0x01 | Pino AUX2 | ||
0x02 | Pino AUX3 | ||
0x03 | pino GPIO0 | ||
0x04 | pino GPIO1 | ||
0x05 | pino GPIO2 | ||
0x06 | pino GPIO3 | ||
0x07-0xFF | RFUs | ||
TB_SignalIndex #2 | 1 Byte | Consulte 8 abaixo | |
TB_BitIndex #2 | 1 Byte | Consulte 8 abaixo | |
TB_PadÍndice #2 | 1 Byte | O pad index, no qual o sinal digital será emitido | |
0x00 | Pino AUX1 | ||
0x01 | Pino AUX2 | ||
0x02 | Pino AUX3 | ||
0x03 | pino GPIO0 | ||
0x04 | pino GPIO1 | ||
0x05 | pino GPIO2 | ||
0x06 | pino GPIO3 | ||
0x07-0xFF | RFUs |
4.5.9.3.2 Resposta
Tabela 83. Valor de resposta CONFIGURE_MULTIPLE_TESTBUS_DIGITAL
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 2]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
4.5.9.3.3 Evento
Não há evento para esta instrução.
4.5.10 Configuração CTS
4.5.10.1 CTS_ATIVAR
Esta instrução é usada para ativar/desativar o recurso de registro CTS.
4.5.10.1.1 Comando
Tabela 84. Valor do comando CTS_ENABLE
Campo de carga útil Comprimento Valor/Descrição | ||||
Habilitar/Desabilitar | 1 Byte | Bit 0 | 0 | Desative o recurso de registro CTS |
1 Habilite o recurso de registro CTS |
||||
Parte 1-7 | RFUs |
4.5.10.1.2 Resposta
Tabela 85. Valor de resposta CTS_ENABLE
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
4.5.10.1.3 Evento
A tabela a seguir mostra os dados do evento que serão enviados como parte da mensagem do evento, conforme mostrado na Figura 12 e Figura 13.
Tabela 86. Isso informa ao host que os dados foram recebidos. EVT_CTS_DONE
Campo de carga útil | Comprimento | Valor / Descrição |
Evento | 1 byte | 00… Ocorreu TRIGGER, os dados estão prontos para recepção. |
4.5.10.2 CTS_CONFIGURAÇÃO
Esta instrução é usada para configurar todos os registros CTS necessários, como triggers, registros de barramento de teste, sampconfiguração de ling etc.,
Observação:
[1] fornece uma melhor compreensão da configuração do CTS. Os dados capturados serão enviados como parte da resposta ao comando da Seção 4.5.10.3.
4.5.10.2.1 Comando
Tabela 87. Valor do comando CTS_CONFIGURE
Campo de carga útil | Comprimento | Valor / Descrição |
PRÉ_DESLOCAMENTO_DE_GATILHO | 1 Byte | Define o comprimento da sequência de aquisição pós-trigger em unidades de 256 bytes. 0 significa sem mudança; n significa deslocamento de bloco de n*256 bytes. Nota: Válido somente se TRIGGER_MODE for modo de disparo “PRE” ou “COMB” |
MODO_GATURADOR | 1 Byte | Especifica o modo de aquisição a ser usado. |
0x00 – modo POST | ||
0x01 – RFU | ||
0x02 – Modo PRÉ | ||
0x03 – 0xFF – Inválido | ||
LARGURA_DA_PÁGINA_RAM | 1 Byte | Especifica a quantidade de memória no chip coberta por uma aquisição. A granularidade é escolhida por design como 256 bytes (ou seja, 64 palavras de 32 bits). Os valores válidos são os seguintes: 0x00h – 256 bytes 0x02h – 768 bytes 0x01h – 512 bytes 0x03h – 1024 bytes 0x04h – 1280 bytes 0x05h – 1536 bytes 0x06h – 1792 bytes 0x07h – 2048 bytes 0x08h – 2304 bytes 0x09h – 2560 bytes 0x0Ah – 2816 bytes 0x0Bh – 3072 bytes 0x0Ch – 3328 bytes 0x0Dh – 3584 bytes 0x0Eh – 3840 bytes 0x0Fh – 4096 bytes 0x10h – 4352 bytes 0x11h – 4608 bytes 0x12h – 4864 bytes 0x13h – 5120 bytes 0x14h – 5376 bytes 0x15h – 5632 bytes 0x16h – 5888 bytes 0x17h – 6144 bytes 0x18h – 6400 bytes 0x19h – 6656 bytes 0x1Ah – 6912 bytes 0x1Bh – 7168 bytes 0x1Ch – 7424 bytes 0x1Dh – 7680 bytes 0x1Eh – 7936 bytes 0x1Fh – 8192 bytes |
SAMPLE_CLK_DIV | 1 Byte | O valor decimal deste campo especifica o fator de divisão da taxa de clock a ser usado durante a aquisição. Relógio CTS = 13.56 MHz / 2SAMPLE_CLK_DIV |
00 – 13560 kHz 01 – 6780 kHz 02 – 3390 kHz 03 – 1695 kHz 04 – 847.5 kHz 05 – 423.75 kHz 06 – 211.875 kHz 07 – 105.9375 kHz 08 – 52.96875 kHz 09 – 26.484375 kHz 10 – 13.2421875 kHz 11 – 6.62109375 kHz 12 – 3.310546875 kHz 13 – 1.6552734375 kHz 14 – 0.82763671875 kHz 15 – 0.413818359375 kHz |
||
SAMPLE_BYTE_SEL | 1 Byte | Esses bits são usados para especificar quais bytes dos dois barramentos de entrada de 16 bits contribuem para o mecanismo de intercalação que gera dados a serem transferidos para a memória no chip. O significado e o uso deles dependem do SAMPValores LE_MODE_SEL.
Nota: O valor fornecido é sempre mascarado com 0x0F e então o valor efetivo é considerado. |
SAMPLE_MODO_SEL | 1 Byte | Seleciona o sampmodo de intercalação conforme descrito pelas especificações de design do CTS. O valor decimal 3 é reservado e será tratado como 0. Nota: O valor fornecido é sempre mascarado com 0x03, e então o valor efetivo é considerado. |
TB0 | 1 Byte | Seleciona qual barramento de teste será conectado ao TB0. Referir-se Seção 7 (Valor TB_ Signal_Index) |
TB1 | 1 Byte | Seleciona qual barramento de teste será conectado ao TB1. Referir-se Seção 7 (Valor TB_ Signal_Index) |
TB2 | 1 Byte | Seleciona qual barramento de teste será conectado ao TB2. Referir-se Seção 7 (Valor TB_ Signal_Index) |
TB3 | 1 Byte | Seleciona qual barramento de teste será conectado ao TB3. Referir-se Seção 7 (Valor TB_ Signal_Index) |
TTB_SELECIONAR | 1 Byte | Seleciona qual TB será conectado às fontes de disparo. Referir-se Seção 7 (valor TB_Signal_Index) |
RFUs | 4 Byte | Enviar sempre 0x00000000 |
CONFIGURAÇÃO_MISC | 24 Byte | Ocorrências de disparo, polaridade, etc. Consulte [1] para compreensão da configuração do CTS a ser usada. |
4.5.10.2.2 Resposta
Tabela 88. Valor de resposta CTS_CONFIGURE
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR |
4.5.10.2.3 Evento
Não há evento para esta instrução.
4.5.10.3 CTS_RECUPERAR_LOG
Esta instrução recupera o registro de dados dos dados do barramento de teste capturadosamparquivos armazenados no buffer de memória.
4.5.10.3.1 Comando
Tabela 89. Valor do comando CTS_RETRIEVE_LOG
Campo de carga útil | Comprimento | Valor / Descrição | |
Tamanho do pedaço | 1 byte | 0x01-0xFF | Contém o número de bytes de dados esperados. |
4.5.10.3.2 Resposta
Tabela 90. Valor de resposta CTS_RETRIEVE_LOG
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) PN5190_STATUS_SUCESSO_ENCADEAMENTO |
||
Dados de registro [1…n] | Solicitação CTS | Capturado Sampo pedaço de dados |
Observação:
O tamanho máximo de ‘Log Data’ depende do ‘ChunkSize’ que foi fornecido como parte do comando.
O tamanho total do log deve estar disponível na resposta do cabeçalho TLV.
4.5.10.3.3 Evento
Não há evento para esta instrução.
4.5.11 Comandos TEST_MODE
4.5.11.1 AUTO_TESTE_ANTENA
Esta instrução é usada para verificar se a antena está conectada e se os componentes correspondentes estão preenchidos/montados.
Observação:
Este comando ainda não está disponível. Consulte as notas de lançamento para saber a disponibilidade.
4.5.11.2 PRBS_TESTE
Esta instrução é usada para gerar a sequência PRBS para as diferentes configurações dos protocolos e taxas de bits do modo Leitor. Assim que a instrução for executada, a sequência de teste PRBS estará disponível em RF.
Observação:
O host deve certificar-se de que a configuração da tecnologia RF apropriada seja carregada usando a Seção 4.5.7.1 e que o RF esteja LIGADO usando o comando da Seção 4.5.8.1 antes de enviar este comando.
4.5.11.2.1 Comando
Tabela 91. Valor do comando PRBS_TEST
Campo de carga útil | Comprimento | Valor / Descrição | |
tipo_prbs | 1 Byte | 00 | PRBS9 (padrão) |
01 | PRBS15 | ||
02-FF | RFUs |
4.5.11.2.2 Resposta
Tabela 92. Valor de resposta PRBS_TEST
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR PN5190_STATUS_NO_RF_FIELD |
4.5.11.2.3 Evento
Não há evento para esta instrução.
4.5.12 Comandos de informações do chip
4.5.12.1 OBTER_DIEID
Esta instrução é usada para ler o ID da matriz do chip PN5190.
4.5.12.1.1 Comando
Tabela 93. Valor do comando GET_DIEID
Campo de carga útil | Comprimento | Valor / Descrição |
– | – | Nenhum dado na carga útil |
4.5.12.1.2 Resposta
Tabela 94. Valor de resposta GET_DIEID
Campo de carga útil | Comprimento | Valor/descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
||
Valores | 16 Byte | 16 bytes morrem ID. |
4.5.12.1.3 Evento
Não há eventos para este comando.
4.5.12.2 OBTER_VERSÃO
Esta instrução é usada para ler a versão HW, versão ROM e versão FW do chip PN5190.
4.5.12.2.1 Comando
Tabela 95. Valor do comando GET_VERSION
Campo de carga útil | Comprimento | Valor / Descrição |
– | – | Nenhum dado na carga útil |
Existe um comando DL_GET_VERSION (Seção 3.4.4) disponível no modo download que pode ser usado para ler a versão HW, versão ROM e versão FW.
4.5.12.2.2 Resposta
Tabela 96. Valor de resposta GET_VERSION
Campo de carga útil | Comprimento | Valor / Descrição |
Status | 1 Byte | Status da operação [Tabela 9]. Os valores esperados são os seguintes: |
PN5190_STATUS_SUCESSO PN5190_STATUS_INSTR_ERROR (nenhum dado adicional está presente) |
||
HW_V | 1 byte | Versão do hardware |
RO_V | 1 byte | Código ROM |
FW_V | 2 bytes | Versão do firmware (usada para download) |
RFU1-RFU2 | 1-2 bytes | – |
A resposta esperada para diferentes versões do IC PN5190 é mencionada na (Seção 3.4.4)
4.5.12.2.3 Evento
Não há eventos para este comando.
Apêndice (Ex.ampa)
Este apêndice consiste no examparquivos para os comandos mencionados acima. O exampOs arquivos são apenas para fins ilustrativos para mostrar o conteúdo do comando.
5.1 Examparquivo para WRITE_REGISTER
Seguindo a sequência de dados enviados do host para escrever um valor 0x12345678 no registro 0x1F.
Quadro de comando enviado para PN5190: 0000051F78563412
Host para aguardar uma interrupção.
Quando o host lê o quadro de resposta recebido do PN5190 (indicando operação bem-sucedida): 00000100 5.2 Examparquivo para WRITE_REGISTER_OR_MASK
Seguindo a sequência de dados enviados do host para realizar a operação lógica OR no registro 0x1F com uma máscara como 0x12345678
Quadro de comando enviado para PN5190: 0100051F78563412
Host para aguardar uma interrupção.
Quando o host lê o quadro de resposta recebido do PN5190 (indicando operação bem-sucedida): 01000100
5.3 Examparquivo para WRITE_REGISTER_AND_MASK
Seguindo a sequência de dados enviados do host para realizar a operação lógica AND no registro 0x1F com uma máscara como 0x12345678
Quadro de comando enviado para PN5190: 0200051F78563412
Host para aguardar uma interrupção.
Quando o host lê o quadro de resposta recebido do PN5190 (indicando operação bem-sucedida): 02000100
5.4 Examparquivo para WRITE_REGISTER_MULTIPLE
Seguindo a sequência de dados enviados do host para realizar a operação lógica AND no registro 0x1F com uma máscara como 0x12345678, e na operação lógica OR no registro 0x20 com uma máscara como 0x11223344, e uma gravação no registro 0x21 com um valor como 0xAABBCCDD.
Quadro de comando enviado para PN5190: 0300121F03785634122002443322112101DDCCBBAA
Host para aguardar uma interrupção.
Quando o host lê o quadro de resposta recebido do PN5190 (indicando operação bem-sucedida): 03000100
5.5 Examparquivo para READ_REGISTER
Seguindo a sequência de dados enviados do host para ler o conteúdo do registrador 0x1F e assumindo que o registrador tem o valor 0x12345678
Quadro de comando enviado para PN5190: 0400011F
Host para aguardar uma interrupção.
Quando o host lê o quadro de resposta recebido do PN5190 (indicando operação bem-sucedida): 0400050078563412
5.6 Examparquivo para READ_REGISTER_MULTIPLE
Seguindo a sequência de dados enviados do host para ler o conteúdo dos registros 0x1F que contém o valor de 0x12345678 e do registro 0x25 que contém o valor de 0x11223344
Quadro de comando enviado para PN5190: 0500021F25
Host para aguardar uma interrupção.
Quando o host leu a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 050009007856341244332211
5.7 Examparquivo para WRITE_E2PROM
Seguindo a sequência de dados enviados do host para gravação nos locais E2PROM 0x0130 a 0x0134 com o conteúdo como 0x11, 0x22, 0x33, 0x44, 0x55
Quadro de comando enviado para PN5190: 06000730011122334455
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 06000100
5.8 Examparquivo para READ_E2PROM
Seguinte sequência de dados enviados do host para leitura dos locais E2PROM 0x0130 a 0x0134 onde os conteúdos armazenados são: 0x11, 0x22, 0x33, 0x44, 0x55
Quadro de comando enviado para PN5190: 07000430010500
Host para aguardar uma interrupção.
Quando o host leu a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 070006001122334455
5.9 Examparquivo para TRANSMIT_RF_DATA
Seguindo a sequência de dados enviados do host para enviar um comando REQA (0x26), com o número de bits a serem transmitidos como ‘0x07’, assumindo que os registros necessários sejam configurados antes e o RF esteja ligado.
Quadro de comando enviado para PN5190: 0800020726
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 08000100
5.10 Examparquivo para RETREIVE_RF_DATA
Seguindo a sequência de dados enviados do host para receber os dados recebidos/armazenados no buffer CLIF interno (assumindo que 0x05 foi recebido), assumindo que um TRANSMIT_RF_DATA já foi enviado após o RF ser ligado.
Quadro de comando enviado para PN5190: 090000
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 090003000400
5.11 Examparquivo para EXCHANGE_RF_DATA
Segue sequência de dados enviados do host para transmitir um REQA (0x26), com número de bits no último byte a enviar definido como 0x07, com todos os status a serem recebidos junto com os dados. A suposição é que os registros de RF necessários já estão configurados e o RF está ligado.
Quadro de comando enviado para PN5190: 0A0003070F26
Host para aguardar uma interrupção.
Quando o host leu a resposta, quadro recebido de PN5190 (indicando operação bem-sucedida): 0A000 F000200000000000200000000004400
5.12 Examparquivo para LOAD_RF_CONFIGURATION
Seguindo a sequência de dados enviados do host para definir a configuração de RF. Para TX, 0x00 e para RX, 0x80
Quadro de comando enviado para PN5190: 0D00020080
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 0D000100
5.13 Examparquivo para UPDATE_RF_CONFIGURATION
Seguindo a sequência de dados enviados do host para atualizar a configuração de RF. Para TX, 0x00, com endereço de registro para CLIF_CRC_TX_CONFIG e valor como 0x00000001
Quadro de comando enviado para PN5190: 0E0006001201000000
Host para aguardar uma interrupção.
Quando o host leu a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 0E000100
5.14 Examparquivo para RF_ON
Seguindo a sequência de dados enviados do host para ligar o campo RF usando prevenção de colisão e sem P2P ativo. Presume-se que a configuração RF TX e RX correspondente já esteja definida no PN5190.
Quadro de comando enviado para PN5190: 10000100
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 10000100
5.15 Examparquivo para RF_OFF
Seguindo a sequência de dados enviados do host para desligar o campo RF.
Quadro de comando enviado para PN5190: 110000
Host para aguardar uma interrupção.
Quando o host lê a resposta, quadro recebido do PN5190 (indicando operação bem-sucedida): 11000100
Apêndice (índices de configuração do protocolo RF)
Este apêndice consiste nos índices de configuração do protocolo RF suportados pelo PN5190.
As configurações de TX e RX devem ser usadas nos comandos da Seção 4.5.7.1, Seção 4.5.7.2, Seção 4.5.7.3.
Apêndice (sinais CTS e TESTBUS)
A tabela abaixo especifica os diferentes sinais disponíveis no PN5190 para captura usando instruções CTS (Seção 4.5.10) e instruções TESTBUS.
Eles devem ser usados para o comando da Seção 4.5.9.1, Seção 4.5.9.2, Seção 4.5.10.2.
Abreviações
Tabela 97. Abreviaturas
Abr. | Significado |
CLK | Relógio |
DWL_REQ | Pin de solicitação de download (também chamado de DL_REQ) |
EEPROM | Memória somente leitura programável apagável eletricamente |
FW | Firmware |
Terra | Chão |
GPIO | Entrada/Saída de Propósito Geral |
HW | Hardware |
I²C | Circuito Interintegrado (barramento de dados serial) |
IRQ | Pedido de interrupção |
ISO / IEC | Organização Internacional de Padrões/Comunidade Eletrotécnica Internacional |
NFC | Comunicação de campo próximo |
OS | Sistema operacional |
PCD | Dispositivo de acoplamento de proximidade (leitor sem contato) |
PICC | Placa de circuito integrado de proximidade (cartão sem contato) |
UGP | Unidade de gerenciamento de energia |
POR | Reinicialização de inicialização |
RF | Frequência de rádio |
RST | Reiniciar |
Universidade Federal do Espírito Santo | modo de download seguro de firmware |
SPI | Interface Periférica Serial |
VEN | V Habilitar pino |
Referências
[1] Configuração CTS parte do NFC Cockpit, https://www.nxp.com/products/:NFC-COCKPIT[2] folha de dados PN5190 IC, https://www.nxp.com/docs/en/data-sheet/PN5190.pdf
Informações legais
10.1 Definições
Rascunho — Um status de rascunho em um documento indica que o conteúdo ainda está sob revisão internaview e sujeito à aprovação formal, o que pode resultar em modificações ou adições. A NXP Semiconductors não fornece nenhuma representação ou garantia quanto à precisão ou integridade das informações incluídas em uma versão de rascunho de um documento e não terá nenhuma responsabilidade pelas consequências do uso de tais informações.
10.2 Isenção de responsabilidade
Garantia e responsabilidade limitadas — Acredita-se que as informações contidas neste documento sejam precisas e confiáveis. No entanto, a NXP Semiconductors não oferece nenhuma representação ou garantia, expressa ou implícita, quanto à precisão ou integridade de tais informações e não terá nenhuma responsabilidade pelas consequências do uso de tais informações. A NXP Semiconductors não se responsabiliza pelo conteúdo deste documento se fornecido por uma fonte de informação fora da NXP Semiconductors.
Em nenhum caso a NXP Semiconductors será responsável por quaisquer danos indiretos, incidentais, punitivos, especiais ou consequentes (incluindo - sem limitação lucros cessantes, economias perdidas, interrupção de negócios, custos relacionados à remoção ou substituição de quaisquer produtos ou cobranças de retrabalho) sejam ou tais danos não são baseados em delito (incluindo negligência), garantia, quebra de contrato ou qualquer outra teoria legal.
Não obstante quaisquer danos que o cliente possa incorrer por qualquer motivo, a responsabilidade agregada e cumulativa da NXP Semiconductors perante o cliente pelos produtos aqui descritos será limitada de acordo com o
Termos e condições de venda comercial da NXP Semiconductors.
Direito de fazer alterações — A NXP Semiconductors reserva-se o direito de fazer alterações nas informações publicadas neste documento, incluindo, sem limitação, especificações e descrições de produtos, a qualquer momento e sem aviso prévio. Este documento substitui e substitui todas as informações fornecidas antes da sua publicação.
Adequação para uso — Os produtos NXP Semiconductors não são projetados, autorizados ou garantidos para serem adequados para uso em sistemas ou equipamentos de suporte à vida, críticos para a vida ou para a segurança, nem em aplicações em que a falha ou mau funcionamento de um produto NXP Semiconductors possa ser razoavelmente esperado resultar em ferimentos pessoais, morte ou danos materiais ou ambientais graves. A NXP Semiconductors e seus fornecedores não aceitam qualquer responsabilidade pela inclusão e/ou uso de produtos NXP Semiconductors em tais equipamentos ou aplicações e, portanto, tal inclusão e/ou uso é por conta e risco do cliente.
Aplicações — Os aplicativos aqui descritos para qualquer um desses produtos são apenas para fins ilustrativos. A NXP Semiconductors não faz nenhuma declaração ou garantia de que tais aplicativos serão adequados para o uso especificado sem mais testes ou modificações.
Os clientes são responsáveis pelo projeto e operação de seus aplicativos e produtos usando produtos da NXP Semiconductors, e a NXP Semiconductors não se responsabiliza por qualquer assistência com aplicativos ou projeto de produtos do cliente. É responsabilidade exclusiva do cliente determinar se o produto NXP Semiconductors é adequado e adequado para as aplicações e produtos planejados do cliente, bem como para a aplicação planejada e uso de terceiros clientes do cliente. Os clientes devem fornecer proteções de projeto e operação apropriadas para minimizar os riscos associados a seus aplicativos e produtos.
A NXP Semiconductors não aceita qualquer responsabilidade relacionada a qualquer inadimplência, dano, custo ou problema que seja baseado em qualquer fraqueza ou inadimplência nos aplicativos ou produtos do cliente, ou no aplicativo ou uso por terceiros do cliente. O cliente é responsável por fazer todos os testes necessários para os aplicativos e produtos do cliente usando os produtos da NXP Semiconductors para evitar um padrão dos aplicativos e dos produtos ou do aplicativo ou uso por terceiros clientes do cliente. A NXP não aceita qualquer responsabilidade a este respeito.
NXP BV – A NXP BV não é uma empresa operacional e não distribui ou vende produtos.
Licenças 10.3
Compra de ICs NXP com tecnologia NFC — A compra de um IC NXP Semiconductors que esteja em conformidade com um dos padrões de Near Field Communication (NFC) ISO/IEC 18092 e ISO/IEC 21481 não confere uma licença implícita sob qualquer direito de patente infringido pela implementação de qualquer um desses padrões. A compra do IC da NXP Semiconductors não inclui uma licença para qualquer patente da NXP (ou outro direito de propriedade intelectual) cobrindo combinações desses produtos com outros produtos, seja hardware ou software.
Marcas Registradas 10.4
Aviso: Todas as marcas referenciadas, nomes de produtos, nomes de serviços e marcas registradas são de propriedade de seus respectivos proprietários.
NXP — marca nominativa e logotipo são marcas registradas da NXP BV
EdgeVerse — é uma marca comercial da NXP BV
FeliCa — é uma marca registrada da Sony Corporation.
MIFARE — é uma marca comercial da NXP BV
MIFARE Classic — é uma marca registrada da NXP BV
Esteja ciente de que avisos importantes relativos a este documento e aos produtos aqui descritos foram incluídos na seção "Informações legais".
© 2023 NXP BV
Para mais informações, visite: http://www.nxp.com
Todos os direitos reservados.
Data de lançamento: 25 de maio de 2023
Identificador do documento: UM11942
Documentos / Recursos
![]() |
Controlador de front-end NFC NXP PN5190 [pdf] Manual do Usuário PN5190, PN5190 Controlador Frontend NFC, Controlador Frontend NFC, Controlador, UM11942 |