RFID는 무선 주파수 식별을 나타냅니다. RFID 모듈은 Passive RFID 태그에 소량의 데이터를 읽거나 쓸 수있어 출석 시스템, 보안 시스템, 투표 시스템 등과 같은 다양한 시스템에서 식별 프로세스에 사용할 수 있습니다. RFID는 매우 편리하고 쉬운 기술입니다.
패시브 RFID 카드와 태그를 읽으려면 UART 하드웨어가있는 마이크로 컨트롤러가 필요합니다. UART가없는 마이크로 컨트롤러를 선택하면 소프트웨어 UART를 구현해야합니다. 여기 에서는 RFID 인터페이스를 위해 PIC 마이크로 컨트롤러 PIC16F877A를 사용하고 있습니다. 우리는 단순히 고유 식별 번호를 읽을 것입니다. RFID 태그를 16x2 LCD에 표시합니다.
RFID 모듈과 그 작동
이 프로젝트에서 우리는 소형, 저비용, 전력 효율적인 모듈 인 EM-18 RFID 모듈을 선택했습니다. EM-18 RFID 모듈은 125KHz RF 주파수를 사용하여 수동 125KHz RFID 태그를 읽습니다. EM-18 모듈은 오실레이터, 복조기 및 데이터 디코더를 사용하여 패시브 카드에서 데이터를 읽습니다.
RFID 태그
사용 가능한 RFID 태그에는 수동, 능동 또는 배터리 지원 수동의 세 가지 유형이 있습니다. 다양한 종류의 모양과 크기를 가진 다양한 종류의 RFID 태그가 시장에 나와 있습니다. 그들 중 일부는 통신 목적으로 다른 주파수를 사용합니다. 고유 한 ID 데이터를 보유한 125Khz Passive RFID 카드를 사용합니다. 이 프로젝트에 사용하는 RFID 카드와 태그는 다음과 같습니다.
RFID 작업
EM-18 모듈의 데이터 시트 (http://www.alselectro.com/files/rfid-ttl-em18.pdf)를 보면 모듈의 뒷면과 애플리케이션 회로를 볼 수 있습니다.
모듈은 9600 Baud rate의 UART 통신 프로토콜을 사용합니다. 유효한 주파수 태그가 EM-18 리더의 자기장에 들어가면 BC557 트랜지스터가 켜지고 부저가 울리며 LED도 켜집니다. 우리는 시장에서 쉽게 구할 수 있고 부저, LED 및 추가 RS232 포트가있는 완전한 회로를 갖춘 모듈을 사용하고 있습니다.
다음은 핀 이름으로 사용 중인 RFID 보드 모듈 입니다. 이 모듈에는 추가 전원 옵션도 있습니다.
EM-18 리더 의 출력 은 5V 로직 레벨을 사용 한다는 점을 명심해야합니다. 더 낮은 로직 레벨을 사용하는 다른 마이크로 컨트롤러를 사용할 수 있지만이 경우 추가 로직 레벨 변환기가 필요합니다. 경우 에 따라 3.3V 마이크로 컨트롤러 의 UART 핀은 종종 5V를 허용 합니다.
UART 출력은 12 비트 ASCII 데이터를 제공합니다. 처음 10 비트는 고유 ID 인 RFID 태그 번호이고 마지막 두 자리는 오류 테스트에 사용됩니다. 마지막 두 자리는 태그 번호의 XOR입니다. EM-18 모듈은 125KHz 수동형 RFID 태그 또는 카드 에서 데이터를 읽습니다.
이러한 태그 또는 ID에는 고유 한 ID 번호를 저장하는 공장에서 프로그래밍 된 메모리 어레이가 있습니다. 이들은 수동적이므로 카드 또는 태그에 배터리가 없으므로 RF 트랜시버 모듈의 자기장에 의해 전원이 공급됩니다. 이 RFID 태그는 자기장에 의해 클럭킹되는 EM4102 CMOS IC 를 사용하여 만들어집니다.
필요한 재료
이 프로젝트를 만들려면 다음 항목이 필요합니다.
- PIC16F877A
- 20Mhz 크리스탈
- 2pcs 33pF 세라믹 디스크 커패시터
- 16x2 문자 LCD
- 브레드 보드
- 10k 프리셋 포트
- 4.7k 저항
- 연결할 단일 가닥 와이어
- 5V 어댑터
- RF 모듈 EM-18
- 5V 부저
- 100uF 및.1uF 12V 커패시터
- BC557 트랜지스터
- LED
- 2.2k 및 470R 저항.
우리는 부저와 LED가 미리 구성된 EM-18 모듈 보드를 사용하고 있습니다. 따라서 11에서 15까지 나열된 구성 요소는 필요하지 않습니다.
회로도
회로도는 간단합니다. 우리는 포트 RB를 통해 LCD를 연결하고 UART Rx 핀을 통해 EM-18 모듈을 연결했습니다.
회로도에 따라 브레드 보드에 연결했습니다.
코드 설명
항상 그렇듯이 먼저 pic 마이크로 컨트롤러에서 구성 비트를 설정하고 라이브러리 및 크리스탈 주파수를 포함한 일부 매크로를 정의해야합니다. 마지막에 주어진 전체 코드 에서 모든 코드를 확인할 수 있습니다.
// PIC16F877A 구성 비트 설정 // 'C'소스 라인 구성 문 // CONFIG #pragma config FOSC = HS // 오실레이터 선택 비트 (HS 오실레이터) #pragma config WDTE = OFF // 워치 독 타이머 활성화 비트 (WDT 비활성화) # pragma config PWRTE = OFF // 전원 켜기 타이머 활성화 비트 (PWRT 비활성화 됨) #pragma config BOREN = ON // 저전압 리셋 활성화 비트 (BOR 활성화 됨) #pragma config LVP = OFF // 저전압 (단일 공급) 인-서킷 직렬 프로그래밍 활성화 비트 (RB3 / PGM 핀에는 PGM 기능이 있음, 저전압 프로그래밍 활성화 됨) #pragma config CPD = OFF // 데이터 EEPROM 메모리 코드 보호 비트 (데이터 EEPROM 코드 보호 꺼짐) #pragma config WRT = OFF // 플래시 프로그램 메모리 쓰기 활성화 비트 (쓰기 방지 해제, 모든 프로그램 메모리는 EECON 제어에 의해 기록 될 수 있음) #pragma config CP = OFF // 플래시 프로그램 메모리 코드 보호 비트 (코드 보호 해제) # include "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
우리가 볼 경우 주요 기능을 우리는 시스템을 초기화하는 함수를 호출. 이 기능에서 LCD와 UART를 초기화합니다.
/ * 이 기능은 시스템 초기화를위한 것입니다. * / 무효 system_init (무효) { TRISB = 0x00; // PORT B를 출력 핀으로 설정 lcd_init (); // LCD를 초기화합니다 . EUSART1_Initialize (); // 이것은 Eusart를 초기화합니다 }
이제 주요 기능에서는 RFID 번호 인 13 비트 어레이를 사용했습니다. 우리는 RFID 번호의 각 비트를받습니다. 사용 ) (EUSART1_Read 단계; 함수는 UART 라이브러리 내부에서 선언됩니다. 12 비트를 수신 한 후 배열을 LCD에 문자열로 인쇄합니다.
void main (void) { unsigned char count; 서명되지 않은 문자 RF_ID; system_init (); lcd_com (0x80); lcd_puts ("회로 다이제스트"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // 시작하는 두 번째 줄의 커서를 설정합니다. lcd_puts ("ID:"); lcd_puts (RF_ID); } }
데모 비디오 가 포함 된 완전한 코드 는 다음과 같습니다.
또한 다른 마이크로 컨트롤러와의 인터페이스 RFID를 확인하십시오.
MSP430 런치 패드와 RFID 인터페이스
8051 마이크로 컨트롤러와 RFID 인터페이스
Arduino와의 RFID 인터페이스