MCR02/04/05/08 Serileri Temassız Kart Okuyucular [ Protokol Dokümanı V1.22 ]
İÇİNDEKİLER Giriş 1 Özellikler 1 Blok Diyagram 1 Haberleşme Yapısı 2 Komutlar 3 Kart Uygulamaları 4
Giriş MCR02, mifare kartları okuma ve yazma işlevlerini yapar. Mifare 1K, Mifare Plus ve Mifare Ultralight kartlarını destekler. Özellikler USB 2.0 veya RS232 Dahili Anten Buzzer Okuma Mesafesi 40 ~ 50 mm (Kart tipine bağlı olarak değişmektedir) Desteklenen Kart Tipleri o Mifare Classic. Ör. Mifare 1K, Ultralight o Mifare Plus Blok Diyagram Haberleşme Yapısı MCR02 ile kart okuma ve yazma işlemleri bir paket protokol yapısı içerisinde gerçekleşir. Haberleşme Formatı: MCR02 bilgisayarın USB portu na bağlanır. Bilgisayar tarafından algılanan seri port (COM) üzerinde aşağıdaki ayarlar ile haberleşme kurulur; 115200 bps, 8N1 (8 Bit No Parity - 1 Stop Bit) Haberleşme Paketi Yapısı: Haberleşme paketi cihazdan bilgisayara ve bilgisayardan cihaza her iki yön içinde geçerlidir. Tüm veriler hexadecimal (Onaltılı) data formatında verilmiştir.
HEADER KOMUT DATA_LEN DATA BCC 0x55 (1 Byte) Komut (1 Byte) Data Uzunluğu (1 Byte) Data (Data_Len BCC (1 Byte) Byte) KOMUT : Komut (Bkz. Komutlar Tablosu) DATA_LEN : Data bloğunun uzunluğu (Byte) BCC : Blok Check Character ( BCC = HEADER xor KOMUT xor DATA_LEN xor DATA0 xor DATAN ) Komutlar KOMUT DATA DATA_LEN GERİ DÖNÜŞ AÇIKLAMA 0x01 Kart Tipi (1) Kart UID ISO14443_CARD: 0x40 ULTRALIGHT : 0x41 MIFARE_CARD: 0x42 0xAA N/A Değişken Cihazın Yazılım Versiyonu ve Seri No 0xAF N/A Değişken Kart Tipi ve UID Bilgisi Döner. 0xB0 Blok Numarası 1 16 Byte Blok veya NACK 0xB1 0xC0 0xC1 0xC2 0xC3 Blok Numarası <16 BYTE DATA> 12 Byte Key: Değişken UID Kart tipi ve kart UID si geri döner. Kart cihaza gösterildiğinde ilk gelen datadır. Sorgu gerektirmez. Kart Tipi: 1 Byte UID: Değişken 17 Yazma Başarılı ise: ACK Başarısız ise NACK 12 ACK veya NACK Anahtarları Yükle: Cihazın Yazılım Versiyonu ve Seri No Bilgileri gönderilir. Cihaz Anteni üzerinde eğer bir kart varsa UID si ile cevap verir. Blok Okuma: Blok Numarası olarak gönderilen Bloğu Okur. 16Byte lık Blok verisini gönderir. Blok Yazma: BlokNumarası olarak gönderilen Bloğa 16 Byte DATA yı yazar. KEYA(6) KEYB(6) İlgili sektör icin KeyA ve KeyB anahtarlarını cihaza yükler. 0xD0 Sektör Numarası 1 48 Byte Blok Data 48 Byte,Sector Trailer Hariç İlk 3 Blok Okunur. 0xD1 0xB2 SectorNumarası <48 BYTE DATA> BlokNumarası (Sector Trailer) <KEYA KEYB> 49 Yazma Başarılı ise: ACK Başarısız ise NACK 13 Format Başarılı ise: ACK Başarısız ise NACK Döner. Sektör Yaz: SectorNumarası olarak gönderilen Sektörün ilk 3 Bloğuna 48 Byte DATA yı yazar. (Sektör 0 icin ilk 16 byte değerlendirmeye alınmaz.) Kart Formatlama Transport Konfigrasyonu ilen kartı yeni anahtarlar kullanarak formatlar.blok Numarası Mifare kartın ilgili Sector Trailer numarasıdır. 0x04 N/A 1 N/A Kart alandan ayrıldığı zaman bu veri gelir. 0xF1 LCD Yazma* Değişken, ACK/NACK ( min. 4 Byte ) LCD Ekrana gönderilen veriyi yazar Formatı; Font Tipi Left Top Text Font Tipi: 0x00,0x01,0x02,0x03,0x04 Left: 0 127 Top: 0 64 0xF0 LCD Ekran 0 ACK/NACK LCD ekranı tamamen temizler Temizle* 0xFF Bilinmeyen Komut 0 N/A HATA Durumu; Hatalı Komut 0xDE Veri uzunluğu 0 N/A Veri uzunluğu hatalı Hatası 0xEB Boot Modu 0 N/A Yazılım güncelleme modu; Dikkat: Bu komutu gerekmediği durumda kullanılması cihaz yazılımının silinmesine yol açar! Firmware Güncellemesi için üreticiye başvurunuz! 0xF2 Röle1 ve Röle 2 2 ACK/NACK Her iki röleye enerji verir yada kapatır
Set/Clear Komutu BYTE 0: Röle-1 Kontrolü BYTE 1: Röle-2 Kontrolü 0x00: OFF 0x01:ON 0xF3 Röle1 Set/Clear 1 ACK/NACK Röle-1 Kontrolü 0x00: OFF 0x01:ON 0xF4 Röle2 Set/Clear 1 ACK/NACK Röle-2 Kontrolü 0xF5 Röle Durumlarını Verir 0xF6 Optik Giriş Durumlarını Verir 0 2 Byte Röle Durumunu Verir 0 4 Byte Veri Döner, her bir giriş için 0x00 veya 0x01 döner. 0x00: OFF 0x01:ON BYTE-0 : Röle-1 BYTE-1: Röle-2 0x00: OFF 0x01:ON BYTE-0 : Giriş-0 BYTE-1: Giriş-1 BYTE-2: Giriş-2 BYTE-3 : Giriş-3 0xF7 Buzzer Verilen 5 ACK/NACK İlk Byte : Buzzer ON/OFF Sayısı komut ile 4-Byte: ( Big Endian ) ms Cinsinden Buzzer enerjilendiri. Enerjilenme Süresidir. *Bu komutlar sadece MCR02 Ekranlı Kart okuyucularında desteklenir. Ultralight Komutları KOMUT DATA / Parametre DATA_LEN GERİ DÖNÜŞ AÇIKLAMA 0xB3 <Start Page> <Data Len> 2 Byte İstenen uzunluk kadar veri okunur READ_CARD Cihaza verilen DataLen uzunluğu kadar başlangıç adresinden ( StartPage) itibaren kartın hafızası okunur. 0xB4 <Page Number> 1 Byte 4 Byte Page Verisi Okunur / NACK 0xB5 0xB6 <Start Page Address> <Page Data> <Page Address> <Page Data> READ_PAGE Cihaza verilen PageNumber değeri ile ilgili adresteki 4- Byte page okunur. Değişken ACK/NACK WRITE_CARD Cihaza verilen Start Page Address verisi ile ilgili page adresinden itibaren verile (Page Data) yazılır. Veri 4 byte ve katları olmalıdır. 5 Byte ACK/NACK WRITE_PAGE Cihaza verilen Page Address ile verilen Page Data (4 Byte) karta yazılır. 0xB7 Yok 64 Byte ACK/NACK READ_ALL_PAGES Terminal Ulight kartın tüm page lerini okuyup gönderir. Örnek Komut: 55 B7 00 00 ( Kartın Tüm Page Verilerini Okur ) Page Numarası: 0 15 arasında değişir. Toplam Page Sayısı: 16 dir ( 16*4 = 64 Byte ) NOT: ACK ve NACK Cevapları Veri İçeriği Uzunluk Komut / Hata Kodu Açıklama ACK 3 BYTE ACK cevabı ile gönderilen komut tekrar gönderilir. Gönderilen komuta ilişkin cevap cümlesi veri içermiyor ise ve komut sonucu olumlu ise cihazdan cevap olarak ACK döner. NACK 4 BYTE Komut alanında olumsuz cevaba ilişkin komut yada hata kodu bulunur. Gönderilen komut sonucu olumsuz ise cihazdan cevap olarak NACK döner.
HATA Kodları UNKNOWN_COMMAND DATA_LEN_ERROR BCC_CHECK_ERROR 0xFF 0xDE 0xDD ÖRNEK: 55 B0 04 NACK BCC ( Blok Okuma Hatası ) 55 DE 04 NACK BCC ( Gönderilen komut ve veri uzunluğu hatalı ) 55 F0 03 ACK BCC ( LCD Temizleme komutuna ACK ) Kart Uygulamaları Kart ile iletişim 1. Kartın Cihaza Gösterilmesi (UID) ve Kartın Alandan Çıkması Sorgu gerektirmeyen, sadece cihazdan bilgisayara giden paket verilerdir. Temassız kart cihaza ilk gösterildiği ve/veya çıkarıldığı anda bu paketler gönderilir. Cihaz kartı alanda gördüğü anda karta ait ID numarasını içeren bir paket gönderir. Kart alandan çıkarıldığı anda 0x04 komutu ile de kartın alandan çıktığı bilgisi cihaz tarafından gönderilir. 2. Versiyon İsteği Cihazın yazılım versiyonu bilgisi alınır. 3. Mifare Anahtarlarının Yüklenmesi MCR02 kart programlayıcı ile Mifare kartları üzerinde işlem yapabilmek için karta ait anahtarların cihaza yüklenmesi gerekir. Mifare kartların her bir sektörüne ait keya ve keyb vardır. Kartı formatlama konfigürasyonuna göre keya ve KeyB ile okuma,yazma,sadece okuma, sadece yazma gibi işlemler yapılır. Aşağıdaki tabloda gönderilen komut türüne göre A ve B anahtarlarının kullanım durumuna göre okuma/yazma işlemleri sınıflandırılmıştır. Komut Oku Yaz C0 Key A Key A C1 Key A Key B C2 Key B Key A C3 Key B Key B 4. Blok Okuma Mifare kartların hafıza yapısında bir sektör 4 bloktan, her bir blok da 16 byte dan oluşur. İlk üç blok kullanıcı verilerini saklamak için kullanılır. 4. Blok da A ve B anahtarları ile konfigürasyon bilgileri bulunur. Blok numarası örneğin 1K Mifare Kart için 0 dan başlar ve 63 e kadar gider. 5. Blok Yaz Blok yaz komutu ile kartın belirlenen bloklarına yazma işlemi yapılır. NACK cevabı alınmış ise veri karta yazılamamış anlamına gelir.
6. Sektör Okuma Mifare 1k Classic kartlar 16 sektöre sahiptir. Her bir sektör 64 byte dır. Bu komut ile sektor trailer hariç 48 byte lık veri tek seferde okuyabilmeyi sağlar. Sektör numarası örneğin 1K Mifare Kart için 0 dan başlar ve 15 e kadar gider. 7. Sektör Yazma Mifare kartlar için 48 byte lık alana tek seferde yazabilmeyi sağlar. 8. Kart Formatlama İşlemi (Fabrika Çıkışlı Kartlar) Mifare kartlara yazma ve okuma işlemleri A ve B anahtarları ile gerçekleştirilir. Bu anahtarlar kullanıcı isteği doğrultusunda değiştirebilir. Fabrika çıkışlı kartlar keya ile okuma ve yazma yapılabilecek halde üretilirler. Bu kartlar keya kullanılarak istenilen konfigürasyona göre formatlama işlemleri yapılır. Kart Formatlama komutu ile mevcut konfigürasyonu değiştirmeden sadece keya yı değiştirerek formatlama işlemi yapılır. Yani okuma ve yazma işlemi eskisi gibi keya ile fakat farklı bir key değeri ile yapılabilir hale getirilir. Not-1: Kart formatlama işleminden sonra ilgili blok ve sektöre okuma ve yazma yapabilmek için yeni anahtar ile 3. maddeyi uygulayınız. Not-2: Formatlanmış kartın tekrar formatlanması Sektör Yazma veya ilgili sektörün trailer bloğuna blok yazma komutu ile gerçekleştirilir.
EK-1. Mifare Kart Hafıza Yapısı 1024 8 bit EEPROM memory. 16 sektör ve her sektör 4 bloktan oluşur. Herbir blok 16 byte tır. Daha fazla bilgi için ; http://www.nxp.com/documents/data_sheet/mf1s50yyx.pdf