Membaca Kartu RFID Mifare 13.56MHz dengan CR-013F, ATMega128 dan Bascom (bag.1)

Smart Card atau kartu RFID Mifare yang bekerja pada frekuensi 13.56MHz memiliki protokol data sendiri baik dalam proses pembacaan (read) maupun penulisannya (write). Tidak seperti kartu RFID yang lain, ambil contoh RFID 150KHz yang prosesnya lebih sederhana, Mifare memiliki beberapa proses yang harus dilalui secara berurutan agar dapat diperoleh data ID yang tersimpan dalam kartu. Jika salah satu proses gagal (failed), maka ID kartu tidak dapat dibaca.
Modul yang digunakan untuk membaca kartu Mifare salah satunya adalah CR-013F, sebuah modul yang saya rasa jarang sekali para hobi memakainya. Modul buatan China berukuran 42*18mm ini bekerja dengan tegangan 4.5V-5.5V. Antarmuka yang digunakan adalah UART TTL232 dengan pemakaian daya sekitar 70-120 mA. Kesimpulannya modul ini cocok digunakan untuk aplikasi pembaca tag portabel dengan daya baterai. Kali ini akan kita bahas bagaimana menggunakan modul ini, mulai dari cara merakitnya hingga membuat program untuk membaca kartu/tag RFID Mifare 13.56MHz.
Yang perlu diketahui lebih lanjut tentang Modul CR-013F ini adalah modul terdiri dari dua bagian, modul utama dan antena. Modul utama tidak akan bekerja tanpa antena terpasang dengan benar, karena transmisi data dilakukan melewati media ini. Selain untuk menangkap sinyal, antena ini juga menyaring sinyal yang diterimanya hanya meloloskan sinyal dengan frekuensi 13.56MHz. Untuk memasang antena pada modul utama silakan ikuti diagram pin pada Gambar 1 berikut.
Gambar 1. Diagram Pin Modul CR-013F
Setelah antena terpasang, selanjutnya adalah menghubungkan modul ini dengan unit pemroses, pada kesempatan kali ini digunakan mikrokontroler ATMega128. Mikrokontroler jenis lain dapat digunakan selama memiliki port serial. PC juga dapat dihubungkan dengan modul ini. Hubungan dengan mikrokontroler dapat dilihat pada skematik rangkaian yang terdapat pada Gambar 2.
Gambar 2. Diagram Skematik Sistem Pembaca RFID
Prosedur membaca atau menulis kartu
Ada beberapa langkah yang harus dilakukan untuk dapat membaca atau menulis kartu, yaitu:
1. Memeriksa tipe kartu
2. Meminta nomor seri kartu
3. Memilih kartu berdasarkan nomor seri yang didapatkan pada langkah nomor 2.
4. Authentifikasi Mifare 2
5. Proses baca atau tulis kartu
Proses tersebut diatas dapat dilakukan ketika kartu masih berada pada area baca, namun ketika kartu keluar dari area baca maka langkah 1-4 harus diulang.
Protokol Data
Untuk dapat berkomunikasi, antara PC/Mikrokontroler dan reader menggunakan protokol berikut:
1. Protokol data dari PC/Mikrokontroler ke reader
Paket data diawali dengan Header (2byte) yang terdiri dari bilangan hex &HAA dan &HBB, kemudian diikuti panjang data (Data Length) yaitu dimulai dari ID node hingga checksum. Panjang data ini terdiri dari dua byte dimulai dari Low Byte kemudian baru High Byte. Selanjutnya adalah ID node, merupakan alamat tujuan (reader) diawali low byte dulu baru high byte. Untuk membaca seluruh reader yang terpasang bisa diisikan dengan &H00 dan &H00. Dua byte berikutnya adalah fungsi perintah (Function), isinya disesuaikan dengan perintah yang akan dikirim seperti pada Tabel 1. Yang terakhir adalah Checksum yang dihitung dengan menerapkan operator XOR semua data mulai dari ID node hingga sebelum checksum.
Gambar 3. Protokol Data dari PC/Mikrokontroler ke Reader
2. Protokol data dari reader ke PC/mikrokontroler
Paket data diawali dengan Header (2byte) yang terdiri dari bilangan hex &HAA dan &HBB, kemudian diikuti panjang data (Data Length) yaitu dimulai dari ID node hingga checksum. Panjang data ini terdiri dari dua byte dimulai dari Low Byte kemudian baru High Byte. Selanjutnya adalah ID node, merupakan alamat tujuan (reader) diawali low byte dulu baru high byte. Dua byte berikutnya adalah fungsi perintah (Function), isinya sesuai dengan perintah yang dikirimkan reader (lihat Tabel 1).
Gambar 4. Protokol Data dari PC/Mikrokontroler ke Reader
Berikut adalah perintah-perintah yang digunakan pada proses membaca atau menulis kartu Mifare.
Tabel 1. Daftar Fungsi Perintah
Pada kali ini diambil contoh proses membaca kartu Mifare dengan nomor seri 52 15 D3 EC dengan ID reader 11 12, langkah-langkahnya:
1. Mikrokontroler/PC mengirim perintah Card Type Request, AA BB 06 00 00 00 01 02 52 51. Reader akan membalas AA BB 08 00 11 12 01 02 00 04 00 04. Angka hex 04 (warna merah) menunjukkan bahwa tipe kartu yang terdapat pada area baca adalah Mifare 1 (S50). Untuk tipe kartu lain dapat dilihat pada kode berikut:
4400h = ultra light
0400h = Mifare 1 (S50)
0200h = Mifare 1 (S70)
4403h = Mifare Desfire
0800h = Mifare pro
0403h = Mifare Prox
2. Mikro kemudian mengirim perintah permintaan nomor seri kartu AA BB 06 00 00 00 02 02 04 04, reader membalas AA BB 0A 00 11 12 02 02 00 52 15 D3 EC D6 AD. Dari data balasan reader dapat diketahu bahwa serial numbernya adalah 52 15 D3 EC.
3. Serial Number yang didapat pada proses kedua digunakan mikro untuk memilih kartu tersebut dengan perintah AA BB 09 00 00 00 03 02 52 15 D3 EC D4. Reader akan membalas AA BB 07 00 11 12 03 02 00 08 0A sebagai tanda bahwa kartu dengan serial number tersebut telah dipilih.
4. Setelah kartu terpilih maka proses selanjutnya adalah autentifikasi kartu, dengan demikian mikro akan mengirim AA BB 0D 00 00 00 07 02 60 01 FF FF FF FF FF FF 64, dan jika berhasil reader akan membalas AA BB 06 00 11 12 07 02 00 06.
5. Langkah terakhir adalah perintah baca data yang tersimpan pada kartu yaitu dengan mengirim AA BB 06 00 00 00 08 02 01 0B, dan reader akan membalas AA BB 16 00 11 12 08 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09. Data kartu terhitung dari byte ke 10 sampai 25 (1 byte sebelum checksum). Pada kasus ini data yang tersimpan pada kartu berupa 00 sebanyak 16 buah.
Gambar berikut mengilustrasikan komunikasi antara master (PC/mikrokontroler) dengan modul CR-013F.
Selanjutnya baca Membaca Kartu RFID Mifare 13.56MHz dengan CR-013F, ATMega128 dan Bascom (bag.2)
jika menentukan kaki pertama ID reader 12 dari mana kemana mas?
Silakan cek gambar berikut http://medialappi.net/lab/wp-content/uploads/2010/06/id12-537×323.gif