BAB 2 LANDASAN TEORI 2.1. Radio Frequency Identification (RFID) 2.1.1. Pengenalan RFID adalah proses identifikasi seseorang atau objek dengan menggunakan frekuensi transmisi radio. RFID menggunakan frekuensi radio untuk membaca informasi dari sebuah devais kecil yang disebut tag atau transponder (Transmitter + Responder). Tag RFID akan mengenalkan dirinya sendiri ketika mendeteksi sinyal dari alat yang kompatibel, yaitu pembaca RFID (RFID Reader). RFID adalah teknologi identifikasi yang fleksibel, mudah digunakan, dan sangat cocok untuk sistem keamanan. RFID mengkombinasikan keunggulan yang tidak tersedia pada teknologi identifikasi yang lain. RFID dapat disediakan dalam alat yang hanya dapat dibaca saja (Read Only) atau dapat dibaca dan ditulis (Read/Write), tidak memerlukan kontak langsung maupun jalur cahaya untuk dapat beroperasi, dapat berfungsi pada berbagai variasi kondisi lingkungan, dan menyediakan tingkat integritas data yang tinggi. Sebagai tambahan, karena teknologi ini sulit untuk dipalsukan, maka RFID dapat menyediakan tingkat keamanan yang tinggi. Pada sistem RFID umumnya, tag atau transponder ditempelkan pada suatu objek. Setiap tag membawa informasi yang unik, di antaranya: serial number, model, warna, tempat perakitan, dan data lain dari objek tersebut. Ketika tag ini melalui medan yang dihasilkan oleh pembaca RFID yang kompatibel, tag akan mentransmisikan informasi yang ada pada tag kepada pembaca RFID, sehingga proses identifikasi objek dapat dilakukan.
5
6 Sistem RFID terdiri dari empat komponen, di antaranya seperti dapat dilihat pada Gambar 2.1: • Tag: Ini adalah devais yang menyimpan informasi untuk identifikasi objek. Tag RFID sering juga disebut sebagai transponder. • Antena: untuk mentransmisikan sinyal frekuensi radio antara pembaca RFID dengan tag RFID. • Pembaca RFID: adalah alat yang kompatibel dengan tag RFID yang akan berkomunikasi secara wireless dengan tag. • Software Aplikasi: adalah aplikasi pada sebuah workstation atau PC yang dapat membaca data dari tag melalui pembaca RFID. Baik tag dan pembaca RFID diperlengkapi dengan antena sehingga dapat menerima dan memancarkan gelombang elektromagnetik.
Gambar 2.1 Sistem RFID
7 2.1.2. Pembaca RFID Sebuah pembaca RFID harus menyelesaikan dua buah tugas, yaitu: • Menerima perintah dari software aplikasi • Berkomunikasi dengan tag RFID Pembaca RFID adalah penghubung antara software aplikasi dengan antena yang akan meradiasikan gelombang radio ke tag RFID. Gelombang radio yang diemisikan oleh antena berpropagasi pada ruangan di sekitarnya. Akibatnya data dapat berpindah secara wireless ke tag RFID yang berada berdekatan dengan antena.
2.1.3
Tag RFID
Tag RFID adalah alat yang dibuat dari rangkaian elektronika dan antena yang terintegrasi di dalam rangkaian tersebut. Rangkaian elektronik dari tag RFID umumnya memiliki memori sehingga tag ini mempunyai kemampuan untuk menyimpan data. Memori pada tag dibagi menjadi sel-sel. Beberapa sel menyimpan data Read Only, misalnya serial number yang unik yang disimpan pada saat tag tersebut diproduksi. Sel lain pada RFID mungkin juga dapat ditulis dan dibaca secara berulang. Berdasarkan catu daya tag, tag RFID dapat digolongkan menjadi: • Tag Aktif yaitu tag yang catu dayanya diperoleh dari batere, sehingga akan mengurangi daya yang diperlukan oleh pembaca RFID dan tag dapat mengirimkan informasi dalam jarak yang lebih jauh. Kelemahan dari tipe tag ini adalah harganya yang mahal dan ukurannya yang lebih besar karena lebih komplek. Semakin banyak fungsi yang
8 dapat dilakukan oleh tag RFID maka rangkaiannya akan semakin komplek dan ukurannya akan semakin besar. • Tag Pasif yaitu tag yang catu dayanya diperoleh dari medan yang dihasilkan oleh pembaca RFID. Rangkaiannya lebih sederhana, harganya jauh lebih murah, ukurannya kecil, dan lebih ringan. Kelemahannya adalah tag hanya dapat mengirimkan informasi dalam jarak yang dekat dan pembaca RFID harus menyediakan daya tambahan untuk tag RFID.Tag RFID telah sering dipertimbangkan untuk digunakan sebagai barcode pada masa yang akan datang. Pembacaan informasi pada tag RFID tidak memerlukan kontak sama sekali. Karena kemampuan rangkaian terintegrasi yang modern, maka tag RFID dapat menyimpan jauh lebih banyak informasi dibandingkan dengan barcode.
Pada Tabel 2.1 diilustrasikan perbedaan utama antara teknologi barcode dengan RFID.
Tabel 2.1 Perbandingan Teknologi Barcode dengan RFID Sistem
Barcode
RFID
Transmisi Data
Optik
Elektromagnet
Ukuran Data
1 - 100 byte
128 – 8096 byte
Modifikasi Data
Tidak bisa
Bisa
Posisi pembata data
Kontak cahaya
Tanpa kontak
Jarak komunikasi
Beberapa meter
Dari cm sampai meter
Supseptibilitas lingkungan
Debu
Dapat diabaikan
Pembacaan jamak
Tidak bisa
Bisa
9 2.1.4
Frekuensi Kerja RFID
Faktor penting yang harus diperhatikan dalam RFID adalah frekuensi kerja dari sistem RFID. Ini adalah frekuensi yang digunakan untuk komunikasi wireless antara pembaca RFID dengan tag RFID. Ada beberapa band frekuensi yang digunakan untuk sistem RFID. Pemilihan dari frekuensi kerja sistem RFID akan mempengaruhi jarak komunikasi, interferensi dengan frekuensi sistem radio lain, kecepatan komunikasi data, dan ukuran antena. Untuk frekuensi yang rendah umumnya digunakan tag pasif, dan untuk frekuensi tinggi digunakan tag aktif. Pada frekuensi rendah, tag pasif tidak dapat mentransmisikan data dengan jarak yang jauh, karena keterbatasan daya yang diperoleh dari medan elektromagnetik. Akan tetapi komunikasi tetap dapat dilakukan tanpa kontak langsung. Pada kasus ini hal yang perlu mendapatkan perhatian adalah tag pasif harus terletak jauh dari objek logam, karena logam secara signifikan mengurangi fluks dari medan magnet. Akibatnya tag RFID tidak bekerja dengan baik, karena tag tidak menerima daya minimum untuk dapat bekerja. Pada frekuensi tinggi, jarak komunikasi antara tag aktif dengan pembaca RFID dapat lebih jauh, tetapi masih terbatas oleh daya yang ada. Sinyal elektromagnetik pada frekuensi tinggi juga mendapatkan pelemahan (atenuasi) ketika tag tertutupi oleh es atau air. Pada kondisi terburuk, tag yang tertutup oleh logam tidak terdeteksi oleh pembaca RFID. Ukuran antena yang harus digunakan untuk transmisi data bergantung dari panjang gelombang elektromagnetik. Untuk frekuensi yang rendah, maka antena harus dibuat dengan ukuran yang lebih besar dibandingkan dengan RFID dengan frekuensi tinggi.
10 2.1.5
Arsitektur RFID Untuk Keamanan
Untuk penggunaan RFID untuk aplikasi sistem keamanan, terdapat beberapa macam arsitektur yang dapat digunakan yaitu: A Sistem Fixed Code Sistem ini merupakan sistem paling sederhana yang paling sering digunakan. Kode tetap yang tersimpan di tag RFID dibaca dan dibandingkan dengan kode yang tersimpan database. Untuk keperluan ini dapat digunakan tag RFID yang hanya dapat ditulis satu kali saja dan belum diprogram sama sekali. User dapat memprogram sendiri tag tersebut. Kelemahannya adalah user dapat membuat copy dari tag RFID yang tidak dapat dibedakan oleh sistem keamanan. Tersedia pula tag RFID yang hanya dapat dibaca, dan telah diprogram pada proses produksi dengan nomor identifikasi yang unik. Sistem ini tidak memungkinkan pembuatan copy dari tag RFID. Sistem yang sederhana ini tingkat keamanannya paling rendah. B. Sistem Rolling Code Beroperasi dengan cara sama dengan sistem Fixed Code, akan tetapi kode rahasia pada tag RFID hanya berlaku pada periode waktu tertentu. Pembaca RFID pada sistem ini harus mempunyai kemampuan untuk menulis tag RFID. Tag RFID yang digunakan harus dapat diprogram berkali-kali. Jadinya setiap terjadi proses identifikasi maka sistem keamanan akan mengubah kode rahasia yang ada pada tag RFID, dan akan menggunakan kode rahasia tersebut untuk proses identifikasi selanjutnya. Sistem ini memberikan tingkat keamanan yang lebih baik, tetapi yang harus dipertimbangkan adalah proses sinkronikasi kode rahasia.
11 C. Sistem Proteksi dengan Nomor Pin Sistem autentifikasi mutual yang sederhana dapat disediakan oleh sistem RFID dengan proteksi nomor pin. Data rahasia pada tag RFID hanya akan ditransmisikan setelah Pembaca RFID mengirimkan data berupa nomor pin yang sesuai untuk dapat membuktikan keabsahan pembaca RFID. Panjang dari nomor pin dapat bervariasi disesuaikan dengan kebutuhan tingkat keamanan. Waktu untuk menduga nomor pin bervariasi antara beberapa menit sampai beberapa tahun bergantung dari panjang dari nomor pin. Untuk sistem keamanan dengan banyak pengguna dengan nomor pin berbeda, memiliki keterbatasan yaitu total waktu komunikasi yang sangat lama, karena pembaca RFID harus menduga nomor pin dari database yang tersedia. D. Sistem Kombinasi Rolling Code dan Nomor Pin Merupakan sistem gabungan dengan fasilitas kode rahasia berubah-ubah dan nomor pin untuk melindungi kode rahasia yang tersimpan dalam tag RFID. Isu yang kritis dari sistem ini adalah waktu komunikasi dan sinkronisasi nomor pin. Dengan sistem ini akan memberikan tingkat keamanan yang tinggi dan sulit untuk ditembus.
12 2.2
Modul Display LCD
2.2.1
Konfigurasi pin LCD yang digunakan pada penelitian ini adalah sebuah modul LCD Hitachi H2004A yang memiliki display 20 x 4 karakter. Dimana LCD ini mempunyai konfigurasi pin sebagai berikut, yang diambil dari sumber H2004A LCD MODULE USER MANUAL : Tabel 2.2 Konfigurasi Pin LCD
Pin no
•
Symbol
Level
Penjelasan
1
Vss
0 volt
Ground
2
Vdd
5 volt
Vcc
3
V0
Variable
Brightness
4
RS
H/L
H: DATA : L : Instruction code
5
R/W
H/L
H: Read L: Write
6
E
HÆL
Enable signal
7
DB0
H/L
Data bit 0
8
DB1
H/L
Data bit 1
9
DB2
H/L
Data bit 2
10
DB3
H/L
Data bit 3
11
DB4
H/L
Data bit 4
12
DB5
H/L
Data bit 5
13
DB6
H/L
Data bit 6
14
DB7
H/L
Data bit 7
15
A
4,2V – 4,6 V
LED +
16
K
0
LED -
Pin 1 dan 2 pada modul LCD terhubung dengan PSU (power supply unit) yang menghasilkan tegangan sebesar 5 volt.
13 •
Pin 3 adalah V0 yang dihubungkan dengan sebuah resistor variabel untuk mengatur intensitas cahaya pada modul LCD.
•
Pin 4 adalah RS (register selector) yang dihubungkan ke mikrokontroler, yang berfungsi untuk memilih mode register yang akan digunakan. Apabila pin ini diberi nilai logik high maka mode register yang digunakan adalah DR (data register), sebaliknya bila pin ini diberi nilai logik low maka mode register yang digunakan adalah IR (instruction register).
•
Pin 5 adalah R/W (read/write) yang digunakan untuk membaca dan menulis pada register LCD. Apabila pin ini diberi nilai logik high maka LCD akan melakukan operasi baca, sebaliknya bila pin ini diberi nilai logik low maka LCD akan melakukan operasi tulis.
•
Pin 6 adalah E (enable) yang merupakan sebuah pin yang diberi sinyal high to low (falling edge) setiap mengirim instruksi ke LCD.
•
Pin 7 – 14 adalah DB0 – DB8 yang merupakan jalur data antara LCD dengan interface.
•
2.2.2
Pin 14 dan 15 berfungsi untuk menyalakan LED di belakang LCD (backlight).
Register – register Di dalam modul LCD terdapat sebuah LSI controller yang memiliki dua buah 8 bit register yaitu instruksi register (IR) dan data register (DR). IR berfungsi untuk menyimpan setiap instruksi yang diberikan oleh mikrokontroler baik berupa inisial maupun data seperti display clear, cursor shift, dan informasi
14 mengenai alamat untuk menampilkan data RAM dan pembangkit karakter (CGRAM). DR merupakan tempat untuk menampung data yang akan di baca atau ditulis dari DDRAM atau CGRAM. RS (register selector) merupakan sebuah register yang akan menentukan kapan informasi alamat (addressing) di di tuliskan ke IR dan kemudian data di tulis dari DR dari DDRAM atau CGRAM. Dibawah ini adalah kombinasi bit yang akan menentukan setiap penulisan instruksi. : Tabel 2.3 Mode Operasi Register LCD RS
R/W
Operasi
0
0
IR write as an internal operation (display clear etc).
0
1
Read busy flag (DB 7) and address counter
1
0
Write data to DDRAM or CGRAM (DR to DDRAM or CGRAM)
1
1
Read data from DDRAM or CGRAM (DDRAM or CGRAM to DR) (H2004A LCD MODULE USER MANUAL)
2.2.3
Busy Flag Busy
flag
berfungsi
sebagai
penanda
yang
menginformasikan
mikrokontroler bahwa LCD siap untuk menerima data selanjutnya. Ketika busy flag sama dengan 1 maka LCD belum dapat menerima instruksi selanjutnya maka mikrokontroler harus menahan instruksi tersebut sampai busy flag sama dengan 0. Untuk membaca busy flag ini maka mikrokontroler harus memberi logika 0 untuk RS dan 1 untuk RW dan kondisi dari busy flag tersebut dapat di baca pada pin 14 (DB 7) pada modul LCD.
15 2.2.4
Membaca busy flag Untuk membaca busy flag dari modul LCD tersebut beberapa hal yang
harus dilakukan yaitu : •
Pin RS diberi logika low.
•
Pin RW diberi logika high.
•
Pin data diberi instruksi 0x80.
•
Pin Enable signal diberi logika high.
•
Perubahan bit pada pin 14 atau DB7 menjadi low (0) merupakan tanda bahwa LCD siap untuk menerima instruksi baru. Sebelum mikrokontroler memberikan instruksi baru ke LCD, maka pin R/W diberi nilai logika low (0) sehingga LCD dapat untuk menerima instruksi selanjutnya.
2.2.5
Memberi instruksi dan data pada LCD (write to DDRAM) Ketika hendak memberi instruksi ke LCD maka ada beberapa hal yang harus dilakukan yaitu : •
Pin RS dan RW harus diberi logika low.
•
Pin Enable signal (E) diberi logika high.
•
Instruksi diberikan pada pin DB0 – DB7.
•
Pin Enable signal (E) diberi logika high.
•
Membaca busy flag dan menunggu hingga busy flag sama dengan 0 untuk mengambil instruksi selanjutnya.
16 2.2.6
Display Data RAM (DDRAM) DDRAM merupakan tempat untuk menyimpan data yang akan ditampilkan yang berupa 8 bit karakter. Dibawah ini adalah alamat posisi pada display LCD : Tabel 2.4 Alamat Posisi Display LCD
2.3
Digit
1
2
3
4
5
6
7
8
9
…
20
Line 1
00
01
02
03
04
05
06
07
08
…
13
Line 2
40
41
42
43
44
45
46
47
48
…
53
Line 3
14
15
16
17
18
19
1A
1B
1C
…
27
Line 4
54
55
56
57
58
59
5A
5B
5C
…
67
Komunikasi Serial Mikroprosesor dalam komputer bekerja atas dasar prinsip data paralel, mula-mula
banyak dipakai mikroprosesor dengan data paralel 8-bit dan kini sudah dipakai data paralel 32-bit, tapi dalam hal komunikasi data yang dipakai adalah teknik pengiriman data secara serial. Alasan utama pemakaian teknik pengiriman serial karena saluran komunikasi data paralel yang panjang harganya sangat mahal dan tidak praktis. Ini disebabkan komunikasi secara paralel menggunakan jalur data lebih banyak daripada serial serta jangkauannya yang terbatas. Dengan demikian, meskipun kecepatan transmisi data dengan teknik komunikasi data secara paralel lebih cepat, teknik komunikasi data serial tetap dipilih untuk transmisi data jarak jauh.
17 Berdasarkan Douglas (1999, p488) data serial dapat dikirimkan secara sinkron (synchronous communication) dan asinkron (asynchronous communication). Pada pengiriman data secara asinkron, data dikirimkan satu karakter setiap kali, dimana interval waktu antara karakter yang satu dengan yang berikutnya tidak tetap. Jenis pengiriman data ini sering disebut start-stop transmission (transmisi awal-akhir), artinya tiap karakter hanya mengalami sinkronisasi pada start bit (bit awal) dan stop bit (bit akhir). Karena lebih mudah prosedur dan pemrogramannya, maka transmisi jenis ini lebih sering digunakan PC. Sedangkan, pengiriman data secara sinkron lazim digunakan pada data rate yang tinggi, karena yang dikirimkan langsung per satu blok data dengan kecepatan konstan. Jenis pengiriman data ini, transmitter maupun receiver sama-sama bertanggung jawab untuk melakukan sinkronisasi setiap sekian bit data. Pengiriman data secara asinkron memiliki efisiensi lebih rendah untuk data yang banyak dan lebih rentan terhadap distorsi, sementara transmisi sinkron lebih cocok untuk transfer data yang besar tetapi memerlukan media yang berkualitas bagus. Format protokol dari komunikasi asinkron adalah bit awal (start bit), data bit, bit pemisah, dan bit akhir (stop bit). Kecepatan transfer data dinyatakan dalam satuan baud atau bps (bit per detik). Baud rate yang biasanya digunakan adalah sebesar 1200, 2400, 4800, 9600, 19200, dan 57600 bps. Kecepatan transmisi yang paling baik digunakan adalah 9600 bps (Douglas, 1991, p488). Metoda hubungan dalam komunikasi data ditinjau dari arah penyampaian. Ada tiga metode, yaitu: a. Simplex : data ditransmisikan dalam satu arah saja. Satu node berfungsi tetap sebagai pengirim, sedangkan node lainnya sebagai penerima.
18 b. Half Duplex : komunikasi data dua arah, tetapi harus secara bergantian. c. Full Duplex : komunikasi data dua arah secara simultan atau bersamaan Pada komunikasi serial biasanya digunakan DB 9 dengan konfigurasi pin sebagai berikut:
Gambar 2.2 Pin DB-9
Tabel 2.5 Konfigurasi Pin DB9 No.Pin
Nama Pin
Keterangan
Pin 1
CD
Carrier Detect
Pin 2
RD
Receive Data
Pin 3
TD
Transmit Data
Pin 4
DTR
Data Transmit Data
Pin 5
SG
Signal Ground
Pin 6
DSR
Data Set Ready
Pin 7
RTS
Request To Sent
Pin 8
CTS
Clear To Sent
Pin 9
RI
Ring Indicator
2.4 Motor stepper Motor stepper adalah alat yang dapat merubah pulsa – pulsa elektrik menjadi pergerakan mekanik, motor stepper dapat berputar secara diskrit menurut derajat perubahan tertentu. Setiap resolusi dari batang motor stepper merupakan akibat dari serangkaian sinyal diskrit elektris. Setiap pulsa elektris akan menghasilkan satu langkah
19 putaran pada Shaft tersebut. Motor stepper dapat berotasi searah jarum jam (clock wise) atau berlawanan arah jarum jam (counter clock wise) tergantung dari sinyal yang diberikan. Motor stepper digunakan untuk mengontrol dan menentukan posisi yang akurat dari suatu aplikasi tanpa membutuhkan sistem umpan balik yang rumit (lebih mengarah ke sistem lup terbuka). Oleh karena itu motor stepper sangat lazim digunakan dalam aplikasi robotika, otomatisasi, dan positioning control. Motor DC dan motor stepper memiliki perbedaan mendasar dalam perputarannya. Bila motor DC dapat berputar secara bebas maka motor stepper berputar dalam langkah dalam waktu tertentu. Perbedaan lainnya ialah motor DC menghasilkan torsi yang kecil pada kecepatan rendah sementara motor stepper menghasilkan torsi yang besar pada kecepatan rendah. Perbedaan yang terakhir ialah motor stepper memiliki karakteristik holding torque (torsi menahan) yang tidak dimiliki oleh motor DC. Kegunaan dari holding torque ialah motor stepper dapat mempertahankan posisinya secara kuat pada saat berhenti. Pada umumnya, motor stepper dibagi menjadi dua jenis yaitu permanent magnet dan variable Reluctance. Motor stepper bergerak perlangkah, setiap langkah mempunyai derajat pergerakan yang sama tergantung dari resolusi dari motor tersebut. Motor stepper yang mempunyai resolusi pergerakan yang kecil, pergerakannya lebih baik dibandingkan resolusi yang besar, karena dengan pergerakan yang besar, seakan – akan motor tersebut bergerak tidak stabil. Motor stepper dapat dikendalikan secara full step dan half step. Pengendalian secara half step lebih baik daripada pengendalian secara full step, karena dengan pengendalian half step pergerakan dari motor lebih halus daripada menggunakan pengendalian dengan
20 pengendalian full step. Half Step adalah cara mengendalikan motor stepper sehingga menghasilkan pergerakan motor yang lebih halus. Pergerakan yang dihasilkan lebih halus karena pergerakan rotor dalam motor stepper yang bergerak dengan sudut sebesar ½ derajat dari besar sudut antara 2 buah kutub (coil) yang berdekatan. Tabel 2.6 Contoh Pergerakan Full Step Step
Coil 4
Coil 3
Coil 2
Coil 1
I
1
0
0
0
II
0
1
0
0
III
0
0
1
0
IV
0
0
0
1
Pergerakan Motor
Sinyal dari pergerakan Full Step dapat diliat pada timing diagram berikut :
21
Gambar 2.3 Sinyal pergerakan Full Step Full step adalah cara mengendalikan motor stepper sehingga dihasilkan pergerakan motor namun tidak sehalus pergerakan Half Step. Hal ini disebabkan karena pergerakan rotor dalam motor stepper yang bergerak per 1 buah kutub (coil). Tabel 2.7 Contoh Pergerakan Half Step Step
Coil 4
Coil 3
Coil 2
Coil 1
I
1
0
0
0
II
1
1
0
0
Pergerakan Motor
22 III
0
1
0
0
IV
0
1
1
0
V
0
0
1
0
VI
0
0
1
1
VII
0
0
0
1
VIII
1
0
0
1
23 2.5 Buffer Fungsi dari buffer adalah Arus yang dihasilkan oleh mikrokontroler sangat kecil sehingga tidak cukup kuat untuk mengaktifkan driver motor. Maka dibutuhkan IC buffer 74HC541 untuk penguatan arus sehingga mikrokontroler mampu mengontrol driver motor. Konfigurasi buffer 74HC541 adalah sebagai berikut :
Gambar 2.4 IC 74HC541 Pin A1 sampai dengan A8 digunakan sebagai input dari mikrokontroler, kemudian Pin Y1 sampai Y8 bertindak sebagai output ke driver motor stepper. Berikut adalah Diagram logika dan tabel kebenaran untuk IC 74HC541 :
Gambar 2.5 Diagram Logika 74HC541
24
Tabel 2.8 Tabel Kebenaran IC 74HC541 Input OE1
OE2
A
Output Y
L
L
L
L
L
L
H
H
H
X
X
Z
X
H
X
Z
Sesuai dengan tabel kebenaran diatas, agar keluaran dari buffer 74HC541 sama dengan masukan nya, maka pin OE1 dan OE2 harus dihubungkan dengan ground.
2.6 Mikrokontroler AT89S52 AT89S52 adalah mikrokontroler 8 bit CMOS yang mempunyai memori 8 kb system memori flash yang bisa di program ulang. AT89S52 ini juga kompatibel dengan segala produk dari MCS-51 karena AT89S52 merupakan bagian dari keluarga MCS-51. Dimana pada mikrokontroler ini memiliki kapasitas ROM dan RAM yang lebih besar daripada AT89S51 2.6.1 Spesifikasi Mikrokontroler AT89S52 Berdasarkan datasheet yang didapatkan tentang IC ATMEL AT89C52 spesifikasi tentang IC ini antara lain: •
8 Kb Sistem Reprogrammable Flash Memory
•
Single Bit Logic
25 •
Pengalamatan Program memory (ROM) sebesar 64K
•
Pengalamatan Data memory (RAM) sebesar 64K
•
32 bi-directional I/O port
•
3 buah 16 bit Timer / Counter
•
6 buah sumber interrupt
•
256 bytes RAM memory
•
Full duplex serial port
2.6.2 Organisasi Memory AT89S52 Mikrokontroler AT89S52 memiliki ruang alamat memori data dan program yang terpisah. Pemisahan memori program dan data tersebut membolehkan memori data diakses dengan alamat 8-bit. Sehingga dapat dengan cepat dan mudah disimpan dan dimanipulasi oleh CPU 8-bit. 2.6.2.1 Memory Program Memory program merupakan memory dimana instruksi-instruksi yang akan dikerjakan oleh mikrokontroler ditempatkan. Pada mikrokontroler yang digunakan terdapat 16 bit jalur untuk alamat dan 8 bit jalur untuk data sehingga kapasitas maksimum memory program ialah sebesar 216 x 28 bit atau 64 Kbyte. 2.6.2.2 Memory Data Memory data adalah memory dimana data-data yang diperlukan dan digunakan oleh program akan ditempatkan. Memory data dapat ditempatkan pada memory internal maupun memory eksternal. Untuk pemetaan (mapping) memory internal dibagi menjadi tiga blok, yaitu 128 bawah (lower 128), 128 atas (upper 128) dan
26 Register Fungsi Khusus (Special Function Register = SFR). SFR dan 128 bytes bagian atas menempati ruang dengan alamat yang sama namun secara fisik dibedakan. SFR dapat diakses dengan menggunakan pengalamatan secara langsung sedangkan 128 bytes bagian atas dapat diakses dengan menggunakan pengalamatan secara tidak langsung. Selain itu juga terdapat 128 bytes bagian bawah yang dapat diakses dengan menggunakan salah satu dari kedua cara tersebut. Internal RAM dapat digambarkan sebagai berikut :
Gambar 2.6 Blok pada internal RAM Bagian RAM 128 byte bawah dikelompokkan menjadi 3 bagian, yaitu 4 register bank, area bit addressable, area scratch pad. Setiap register bank berisi 8 buah register (R0 – R7) dimana setiap register tersebut terdiri dari 1 byte data. Dalam pemakaiannya hanya satu bank saja yang dapat dipakai dalam satu saat. Pemilihan bank yang akan dipakai diatur oleh dua bit PSW (Program Status Word). 16 byte berikutnya, diatas bank-bank register terdapat area bit addressable. Dimana pada area ini data dapat diakses per-bit sehingga area memory ini banyak untuk digunakan untuk perhitungan program. Selain itu area memory ini dapat diakses per-byte juga. Pada area scratch pad banyak digunakan sebagai tempat penyimpanan isi dari
27 register-register pada intruksi push dan pop (stack), selain itu juga sebagai tempat penyimpanan data-data variabel yang bersifat sementara sehingga tidak terjadi kerancuan pada program.
2.6.3 Mode Operasi MCS51 MCS-51 memiliki 4 mode komunikasi serial. Mode 0 berupa synchronous serial (shift register), sedangkan tiga mode yang lain berupa asynchronous serial (UART). Pada semua mode, pengiriman dilakukan jika ada instruksi yang mengisi nilai register SBUF. Sedangkan pada saat penerimaan, data yang diterima akan disimpan pada register SBUF. Secara ringkas keempat mode kerja tersebut bisa dibedakan sebagai berikut : •
Mode 0 Mode ini bekerja secara sinkron, data seri dikirim dan diterima melalui kaki P3.0 (RxD), dan kaki P3.1 (TxD) dipakai untuk menyalurkan clock pendorong data serial yang dibangkitkan MCS51. Data dikirim/diterima 8 bit sekaligus, dimulai dari bit yang bobotnya paling kecil (bit 0) dan diakhiri dengan bit yang bobotnya paling besar (bit 7). Kecepatan pengiriman data (baud rate) adalah 1/12 frekuensi osilator kristal.
•
Mode 1 Mode ini dan mode-mode berikutnya bekerja secara asinkron, data dikirim melalui kaki P3.1 (TxD) dan diterima melalui kaki P3.0 (RxD). Pada Mode 1 data dikirim/diterima 10 bit sekaligus, diawali dengan 1 bit start, disusul dengan 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), diakhiri dengan 1 bit
28 stop. Pada MCS51 yang berfungsi sebagai penerima bit stop ditampung pada RB8 dalam register SCON. Kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan. Mode inilah yang umum dikenal sebagai UART (Universal Asynchronous Receiver/Transmitter). •
Mode 2 Data dikirim/diterima 11 bit sekaligus, diawali dengan 1 bit start, disusul 8 bit data yang dimulai dari bit yang bobotnya paling kecil (bit 0), kemudian bit ke 9 yang bisa diatur lebih lanjut, diakhiri dengan 1 bit stop. Pada MCS51 yang berfungsi sebagai pengirim, bit 9 tersebut berasal dari bit TB8 dalam register SCON. Pada MCS52 yang berfungsi sebagai penerima, bit 9 ditampung pada bit RB8 dalam register SCON, sedangkan bit stop diabaikan tidak ditampung. Kecepatan pengiriman data (baud rate) bisa dipilih antara 1/32 atau 1/64 frekuensi osilator kristal.
•
Mode 3 Mode ini sama dengan Mode 2, hanya saja kecepatan pengiriman data (baud rate) bisa diatur sesuai dengan keperluan, seperti halnya Mode 1. Pada mode asinkron (Mode 1, Mode 2 dan Mode 3), port serial MCS51 bekerja secara full duplex, artinya pada saat yang sama port serial ini bisa mengirim data sekaligus menerima data.Register SBUF merupakan register penghubung port serial. Dalam keempat mode di atas, semua instruksi yang mengakibatkan perubahan isi SBUF akan mengakibatkan port serial mengirimkan data keluar dari MCS51. Agar port serial bisa menerima data, bit REN dalam register SCON harus bernilai ‘1’. Pada mode 0, proses penerimaan data dimulai dengan instruksi CLR RI, sedangkan dalam mode
29 lainnya proses penerimaan data diawali oleh bit start yang bernilai ‘0’. Data yang diterima port seri darial luar MCS51 diambil dengan instruksi MOV A,SBUF. Mengambil data dari SBUF dan menyimpan data ke SBUF sesungguhnya bekerja pada dua register yang berlainan, meskipun nama registernya sama-sama SBUF.
2.6.4 Konfigurasi Pin AT89S52 Keterangan fungsi pin-pin yang ada pada mikrokontroler adalah : •
VCC Tegangan catu daya positif yang digunakan sebesar 5 volt DC.
•
GND Berfungsi sebagai ground
•
Port 0 Port 0 merupakan port keluaran / masukan (I/O) bertipe open drain bidirectional. Sebagai port keluaran, masing-masing pin dapat menangani 8 input TTL. Ketika logika 1 dituliskan pada pin port 0, pin dapat digunakan sebagai masukan hambatan tinggi. Port 0 dapat juga dikonfigurasikan sebagai bus alamat / data bagian rendah (low byte) selama proses pengaksesan memory data dan program eksternal. Jika digunakan dalam mode ini Port 0 memiliki pull up internal. Port 0 juga menerima kode-kode selama proses pemrograman dan mengeluarkan kode-kode selama proses verifikasi program yang telah tersimpan dalam flash. Dalam hal ini pull up eksternal dibutuhkan selama proses verifikasi.
30 •
Port 1 Port 1 merupakan port I/O bidirectional yang dilengkapi pull up internal. Buffer keluaran port 1 dapat menangani 4 masukan TTL. Ketika logika 1 dituliskan pada pin port 1, maka masing-masing pin akan di-pulled high dengan pull up internal dan dapat digunakan sebagai masukan. Sebagai masukan, ketika pin port 1 dihubungkan ke ground, maka masing-masing pin akan memberikan arus karena di-pulled high secara internal. Port 1 juga menerima alamat bagian rendah (low byte) selama pemrograman dan verifikasi flash. Pin P1.0 dan P1.1 dapat dikonfigurasikan sebagai timer / counter 2
•
Port 2 Port 2 merupakan port I/O bidirectional yang dilengkapi pull up internal. Buffer keluaran port 1 dapat menangani 4 masukan TTL. Ketika logika 1 dituliskan pada pin port 2, maka masing-masing pin akan di-pulled high dengan pull up internal dan dapat digunakan sebagai masukan. Sebagai masukan, ketika pin port 1 dihubungkan ke ground, maka masing-masing pin akan memberikan arus karena di-pulled high secara internal. Port 2 akan mengeluarkan alamat byte high order selama pengambilan dari memory program eksternal dan selama akses ke memory data ekternal yang menggunakan alamat 16 bit. Port 2 juga menerima bit alamat high order dan beberapa sinyal kontrol selama pemrograman flash dan verifikasi
•
Port 3 Port 3 merupakan port I/O bidirectional dengan dilengkapi pull up internal, Buffer keluaran pada port 3 dapat menangani 4 input TTL. Ketika logika 1 dituliskan pada pin port 2, maka masing-masing pin akan di-pulled high dengan pull up internal dan
31 dapat digunakan sebagai masukan. Sebagai masukan, ketika pin port 1 dihubungkan ke ground, maka masing-masing pin akan memberikan arus karena di-pulled high secara internal. Port 3 juga menyediakan fungsi alternatef yang dapat dilihat dari tabel dibawah ini : Tabel 2.9 Fungsi Alternatif Port 3 Pin
•
Fungsi alternatif
P3.0
RXD (port masukan serial)
P3.1
TXD (port keluaran serial)
P3.2
INT 0 (interrupt eksternal 0)
P3.3
INT 1 (interrupt eksternal 1)
P3.4
T0 (timer 0 masukan eksternal)
P3.5
T1 (timer 1 masukan eksternal)
P3.6
WR (memory data eksternal strobe tulis)
P3.7
RD (memory data eksternal strobe baca)
RST Pin reset ini berfungsi untuk mereset mikrokontroler jika di beri logika 1 (high). Pada saaat mereset, mikrokontroler akan memberikan instruksi lompat (JUMP) ke alamat awal program, yaitu 0000h. Selain itu pin reset ini juga diperlukan untuk melakukan proses inisialisasi internal, seperti register-register dengan nilai tertentu.
•
ALE (Address Latch Enable) / PROG ALE (Address Latch Enable) ini berfungsi untuk menghasilkan pulsa output yang menahan (latch) alamat byte rendah selama mengakses memory eksternal. Pada pin
32 ini juga terdapat input pulsa program (PROG) selama pemrograman memory flash yang berada di dalam mikrokontroler. •
PSEN PSEN (Program Store Enable) berfungsi untuk mengeluarkan sinyal pada saat melakukan pembacaan dengan memory program eksternal.
•
EA (Eksternal Access Enable) / VPP EA ini harus dihubungkan ke ground atau berlogika 0 (low) agar mikokontroller dapat mengambil kode (fetch) dari lokasi program eksternal mulai dari 0000h sampai FFFFh. Bila dihubungkan ke VCC maka akan mengeksekusi program internal. Pin ini juga menerima tegangan enable pemrograman 12 volt (VPP) selama pemrograman flash ketika pemrograman 12 volt dipilih.
•
XTAL1 Digunakan sebagai input ke penguat osilator pembalik (inverting) dan input ke rangkaian pengoperasian clock internal.
•
XTAL2 Output dari penguat osilator pembalik internal.