Skip to content

joaovg0111/RFID_RC522

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

RFID RC522 API

Esta API foi desenvolvida como trabalho da disciplina de Programação de Sistemas Embarcados da UFMG –Prof. Ricardo de Oliveira Duarte –Departamento de Engenharia Eletrônica.

Autores: João Vitor Gomes Mapa da Silva | Tiago de Faria Oliveira


Requisitos de Hardware e Software

Essa API foi desenvolvida para realizar comunicação entre o módulo RFID-RC522 e o microcontrolador STM32F103RBTx. 

O módulo RFID-RC522 foi desenvolvido para criar um campo eletromagnético de 13,56 MHz e se comunicar com tags RFID (tags padrão ISO 14443A).

O sensor pode se comunicar com um microcontrolador através do padrão SPI (usado no projeto dessa API) de 4 pinos com uma taxa de dados máxima de 10 Mbps. Ele também suporta comunicação sobre os protocolos I2C e UART.

Mais detalhes sobre o hardware desse módulo podem ser encotrados no datasheet

As imagens abaixo representam o microcontrolador utilizado para desenvolver a API, e o esquema de ligação entre os componentes.

Para utilizar essa biblioteca é necessário existir uma variável do tipo SPI_HandleTypeDef inicializada como um barremento SPI. O barramento desejado pode ser selecionado com

void SET_HSPI(SPI_HandleTypeDef hspi)

Funções disponíveis

Verifica Cartão

O objetivo dessa função é identificar se há um cartão, com tag RFID, próximo ao sensor. Ela é uma função lógica que retorna verdadeiro caso houver cartão e falso, caso não haja contato de alguma tag com o sensor. 

retorna true caso sejam iguais e false caso não.

bool IsCardPresent(void)

Capturar UID do cartão

Essa função retorna o UID do cartão que estive em contato com o sensor RFID. Essa função é útil para situações em que a tag e sensor RFID são usadas para a autenticação de usuários. As catracas de controle de acesso dos prédios da Escola de Engenharia, são um exemplo de locais onde essa função tem aplicação. 

uid é o endereço do UID a ser comparado.

retorna true caso sejam iguais e false caso não.

bool getCardUID(uint8_t* uid)

Compara UID do cartão

Essa função recebe um ponteiro com endereço de memória de um UID ou de um array de UID's e verifica se algum deles é igual ao UID que está sendo lido através do sensor RFID.

uid é o endereço do cartao que se deseja comparar.

retorna true caso sejam iguais e false caso não.

bool verifyUID(uint8_t*uid)

Lê um bloco do cartão

Essa função lê um bloco do cartão. 

blockValue é onde os dados armazenados serão retornados.

blockAddr é o endereço do bloco que se deseja ler.

retorna true para sucesso e false para fracasso.

bool readMIFARE(uint8_t* blockValue,uint8_t blockAddr)

Escreve informações no cartão

Essa função é usada para escrever informações adicionais na etiqueta do cartão RFID.

data é o endereço onde o valor do bloco será escrito. 

blockAddr é o endereço do bloco que se deseja ler.

não tem  retorno.

void writeMIFARE(uint8_t* data,uint8_t blockAddr)

Referências

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages