Senin, 07 September 2015

cara mudah menggunakan RFID untuk sistem pengaman pintu otomatis

Cara termudah dalam menggunakan RFID adalah dengan melihat sistem paket data yang dikirim dari modul RDM630 ke PC melalui port serial. Paket data yang digunakan normalnya antara 13 byte data yaitu :


Byte pertama berupa header paket data yang menandakan dimulainya pengiriman nomor kartu, biasanya header hanya 1 byte saja. Byte ke 2 sampai byte ke 11 berupa data nomor kartu dalam bentuk ASCII yang dikirim setelah header. Kode nomor dalam format ASCII diawali dengan bilangan 3 hexadesimal, misalnya
bilangan ASCII '8' maka bilangan hexadesimalnya '38'. Byte ke 12 adalah data checksum, data ini digunakan untuk mengkonfirmasi kebenaran nomor kartu  yang dikirim dalam paket tersebut. Checksum diperoleh dari penjumlahan semua data nomor kartu. Cara mendapatkan nomor checksum adalah dengan menjumlahkan byte pertama dengan byte kedua dan seterusnya, misalnya nomor kartu '3456782109' maka perhitungannya sebagai berukut :

unsigned char temp= 33+34+35+36+37+38+32+31+30+39

Byte ke 13 digunakan sebagai kode penutup atau akhiran sebuah paket data. Semua perangkat yang menerapkan sistem komunikasi asynchronous selalu menggunakan kode akhiran paket data dan kadang-kadang disertakan juga CR atau LF. Bilangan CR jika dalam bentuk desimal adalah '13' dan 0D dalam heksadesimal, sedangkan LF yaitu '10' dalam desimal dan '0A' dalam heksadesimal. Apabila jumlah byte paket data sudah diketahui, maka tinggal dibuat program pengambilan data sebanyak 11 byte dengan cara sbagai berikut :
  • cek data masuk pada port serial, jika data masuk sama dengan header maka mulai menyimpan byte berikutnya.
  • jika byte ke-n sama dengan 03 heksa (kode penutup) , maka pengambilan data dihentikan dan byte terakhir jangan disimpan.
  • setelah semua paket data diterima, langsung panggil subrutin pengolahan data.
contoh programnya sebagai berikut :

void baca_kartu()
{ unsigned char k,a=0,data;
lop_ag:
    buzzer=0;
    while ( !(UCSRA & (1<<RXC)) );
    k=UDR;
    if(k==0x02)
    {
        buzzer=1;
        goto lop_k;
    }
    else goto lop_ag;

lop_k:
    k=UCSRA;
    k &=0x80;
    if(k==0x80){
        data = UDR;
        if(data==0x03)goto ext;
        else
        {
            tempkar[a]=data;
            a++;
        }}
    goto lop_k;
ext:
    buzzer = 0;
}

kesimpulan : paket data yang menggunakan komunikasi asynchronous mengirim paket data per byte.

Tidak ada komentar:

Posting Komentar