RFID là từ viết tắt của Radio Frequency Identification. Mô-đun RFID có thể đọc hoặc ghi một lượng nhỏ dữ liệu vào thẻ RFID thụ động, có thể được sử dụng trong quá trình nhận dạng trong các hệ thống khác nhau như hệ thống chấm công, hệ thống an ninh, hệ thống bỏ phiếu, v.v. RFID là công nghệ rất tiện lợi và dễ dàng.
Để đọc thẻ và thẻ RFID thụ động, chúng ta cần một bộ vi điều khiển với phần cứng UART. Nếu chúng ta chọn một bộ vi điều khiển không có UART, chúng ta cần triển khai UART phần mềm. Ở đây chúng tôi đang sử dụng Vi điều khiển PIC PIC16F877A để giao tiếp RFID. Chúng tôi chỉ cần đọc số nhận dạng duy nhất. thẻ RFID và hiển thị trên màn hình LCD 16x2.
Mô-đun RFID và hoạt động của nó
Trong dự án này, chúng tôi đã chọn mô-đun RFID EM-18, đây là mô-đun có kích thước nhỏ, chi phí thấp và tiết kiệm điện. Mô-đun RFID EM-18 sử dụng tần số RF 125 KHz để đọc các thẻ RFID 125 KHz thụ động. Mô-đun EM-18 sử dụng Bộ tạo dao động, bộ giải điều chế và bộ giải mã dữ liệu để đọc dữ liệu từ thẻ thụ động.
Thẻ RFID
Có ba loại thẻ RFID có sẵn, Thụ động, Hoạt động hoặc Thụ động hỗ trợ pin. Các loại thẻ RFID khác nhau với hình dạng và kích thước khác nhau có sẵn trên thị trường. Một số ít sử dụng tần số khác nhau cho mục đích giao tiếp. Chúng tôi sẽ sử dụng thẻ RFID thụ động 125Khz chứa dữ liệu ID duy nhất. Đây là thẻ RFID và các thẻ mà chúng tôi đang sử dụng cho dự án này.
Hoạt động của RFID
Nếu chúng tôi thấy biểu dữ liệu (http://www.alselectro.com/files/rfid-ttl-em18.pdf) của Mô-đun EM-18, chúng tôi có thể thấy mặt sau của mô-đun và mạch ứng dụng:
Mô-đun sử dụng giao thức truyền thông UART với tốc độ 9600 Baud. Khi thẻ tần số Hợp lệ được đưa vào từ trường của đầu đọc EM-18, bóng bán dẫn BC557 sẽ bật và còi sẽ bắt đầu phát ra tiếng bíp, nó cũng phát sáng đèn LED. Chúng tôi đang sử dụng một mô-đun dễ dàng có sẵn trên thị trường và có mạch điện hoàn chỉnh với bộ rung, đèn LED và một cổng RS232 bổ sung.
Đây là mô-đun bảng RFID mà chúng tôi đang sử dụng với các tên pin. Mô-đun này cũng có tùy chọn nguồn bổ sung.
Một điều cần lưu ý là đầu ra của đầu đọc EM-18 sử dụng mức logic 5V. Chúng ta có thể sử dụng một bộ vi điều khiển khác sử dụng mức logic thấp hơn, nhưng trong những trường hợp như vậy, bộ chuyển đổi mức logic bổ sung là bắt buộc. Trong một vài trường hợp, chân UART của vi điều khiển 3.3V thường có khả năng chịu được 5V.
Đầu ra UART cung cấp dữ liệu ASCII 12 bit. 10 bit đầu tiên là số thẻ RFID, là ID duy nhất và hai chữ số cuối cùng được sử dụng để kiểm tra lỗi. Hai chữ số cuối cùng là XOR của số thẻ. Mô-đun EM-18 sẽ đọc dữ liệu từ thẻ hoặc thẻ RFID thụ động 125 KHz.
Các thẻ hoặc ID đó có một mảng bộ nhớ được lập trình ban đầu để lưu trữ số ID duy nhất. Vì chúng thụ động nên không có pin trong thẻ hoặc các thẻ, chúng được cung cấp năng lượng bởi từ trường của mô-đun Bộ thu phát RF. Các thẻ RFID này được tạo ra bằng cách sử dụng IC EM4102 CMOS cũng được tạo xung nhịp bằng từ trường.
Vật liệu cần thiết
Để thực hiện dự án này, chúng tôi cần các hạng mục sau-
- PIC16F877A
- Tinh thể 20Mhz
- 2 cái 33pF đĩa gốm tụ điện
- Màn hình LCD ký tự 16x2
- Một breadboard
- Nồi đặt trước 10k
- Điện trở 4,7k
- Dây sợi đơn để kết nối
- Bộ chuyển đổi 5V
- Mô-đun RF EM-18
- Bộ rung 5V
- Tụ 100uF &.1uF 12V
- Bóng bán dẫn BC557
- Đèn LED
- 2.2k và điện trở 470R.
Chúng tôi đang sử dụng bảng mô-đun EM-18 với bộ rung và đèn led được cấu hình sẵn. Vì vậy, các thành phần được liệt kê từ 11 đến 15 là không cần thiết.
Sơ đồ mạch
Giản đồ rất đơn giản; chúng tôi đã kết nối LCD qua cổng RB và kết nối mô-đun EM-18 qua chân UART Rx.
Chúng tôi đã thực hiện kết nối trên breadboard theo sơ đồ.
Giải thích mã
Như mọi khi, trước tiên chúng ta cần thiết lập các bit cấu hình trong vi điều khiển pic, xác định một số macro, bao gồm cả thư viện và tần số tinh thể. Bạn có thể kiểm tra mã cho tất cả những người trong mã hoàn chỉnh được cung cấp ở cuối.
// Cài đặt bit cấu hình PIC16F877A // Câu lệnh cấu hình dòng nguồn 'C' // CONFIG #pragma config FOSC = HS // Các bit lựa chọn bộ tạo dao động (Bộ tạo dao động HS) #pragma config WDTE = OFF // Bit Enable Watchdog Timer (WDT bị vô hiệu hóa) # pragma config PWRTE = OFF // Kích hoạt bộ hẹn giờ bật nguồn (PWRT bị vô hiệu hóa) #pragma config BOREN = ON // Brown-out Reset bit Enable (bật BOR) #pragma config LVP = OFF // Low-Voltage (Single-Supply) Bit Bật lập trình nối tiếp trong mạch (chân RB3 / PGM có chức năng PGM; bật lập trình điện áp thấp) #pragma config CPD = OFF // Bit bảo vệ mã bộ nhớ dữ liệu EEPROM (Tắt bảo vệ mã EEPROM dữ liệu) #pragma config WRT = OFF // Các bit cho phép ghi chương trình Flash (Tắt bảo vệ ghi; tất cả bộ nhớ chương trình có thể được ghi vào bởi điều khiển EECON) #pragma config CP = OFF // Bit bảo vệ mã chương trình Flash (tắt bảo vệ mã) # bao gồm "supporing_cfile \ lcd.h" #include "supporing_cfile \ eusart1.h"
Nếu chúng ta thấy hàm chính, chúng ta gọi là hàm khởi tạo hệ thống. Chúng tôi khởi tạo LCD và UART trong chức năng này.
/ * Chức năng này dành cho khởi tạo hệ thống. * / void system_init (void) { TRISB = 0x00; // CỔNG B đặt làm chân đầu ra lcd_init (); // Thao tác này sẽ khởi tạo lcd EUSART1_Initialize (); // Thao tác này sẽ khởi tạo Eusart }
Bây giờ, trong hàm chính , chúng ta đã sử dụng một mảng 13 bit là Số RFID. Chúng tôi nhận từng bit của số RFID. sử dụng EUSART1_Read (); , được khai báo bên trong thư viện UART. Sau khi nhận được 12bits, chúng tôi in Mảng dưới dạng chuỗi trên màn hình LCD.
void main (void) { unsigned char count; char không dấu RF_ID; system_init (); lcd_com (0x80); lcd_puts ("Thông báo mạch"); while (1) { for (count = 0; count <12; count ++) { RF_ID = 0; RF_ID = EUSART1_Read (); } lcd_com (0xC0); // Đặt con trỏ cho dòng thứ hai bắt đầu lcd_puts ("ID:"); lcd_puts (RF_ID); } }
Mã hoàn chỉnh với Video trình diễn được đưa ra bên dưới.
Cũng kiểm tra giao tiếp RFID với Vi điều khiển khác:
Giao diện RFID với Bàn di chuột MSP430
Giao diện RFID với Vi điều khiển 8051
Giao diện RFID với Arduino