KOMUNIKASI UART
Master
Slave
//MASTER
#define button 2 //Deklarasi pin 2 untuk button
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(button, INPUT_PULLUP);
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua kode dalam fungsi ini dieksekusi berulang
{
int nilai = digitalRead(button);
//Button ditekan
if (nilai == 0)
{
Serial.print("1");
}
else
{
Serial.print("2");
}
delay(200);
}
//SLAVE
#define led 12 //Deklarasi pin 12 untuk LED
void setup() //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(led, OUTPUT); //Deklarasi LED sebagai output
Serial.begin(9600); //Set baud rate 9600
}
void loop() //Semua program dalam fungsi ini dieksekusi berulang
{
if (Serial.available() > 0)
{
int data = Serial.read();
if (data == '1') //Jika data yang dikirimkan berlogika
{
digitalWrite(led, HIGH); //LED menyala
}
else
{
digitalWrite(led, LOW); //LED mati
}
}
}
1. Materi
tentang UART !
Jawab :
UART atau Universal Asynchronous Receiver-Transmitter adalah bagian perangkat keras komputer yang menerjemahkan antara bit-bit
paralel data dan bit-bit serial. UART biasanya berupa sirkuit terintegrasi yang
digunakan untuk komunikasi serial pada komputer atau port serial perangkat
periperal. UART sekarang ini termasuk di dalam beberapa mikrokontroler
(contohnya, PIC16F628).
UART atau Universal Asynchronous Receiver Transmitter
adalah protokol komunikasi yang umum digunakan dalam pengiriman data serial
antara device satu dengan yang lainnya. Serial ini dikerjakan
oleh UART (Universal Asynchronous Receiver Transmitter). IC UART dibuat khusus
untuk mengubah data parallel menjadi data serial dan menerima data serial yang
kemudian dirubah lagi menjadi data parallel.
Pada UART, kecepatan
pengiriman data ( atau yang sering disebut dengan Baud Rate ) dan fase clock
pada sisi transmitter dan sisi receiver harus sinkron. Untuk itu diperlukan
sinkronisasi antara Transmitter dan Receiver. Hal ini dilakukan oleh bit
“Start” dan bit “Stop”. Ketika saluran transmisi dalam keadaan idle, output
UART adalah dalam keadaan logika 1.Ketika Transmitter
ingin mengirimkan data, output UART akan diset dulu ke logika “0” untuk waktu
satu bit. Sinyal ini pada receiver akan dikenali sebagai sinyal “Start” yang
digunakan untuk menyinkronkan fase clocknya sehingga sinkron dengan fase clock
transmitter.Selanjutnya data akan
dikirimkan secara serial dari bit yang paling rendah (bit0) sampai bit
tertinggi. Selanjutnya akan dikirimkan sinyal “Stop” sebagai akhir dari
pengiriman data serial.
Sebagai contoh misalnya
akan dikirimkan data huruf “A” dalam format ASCII (atau sama dengan 41 heksa
atau 0100 0001.
Kecepatan transmisi
(baud rate) dapat dipilih bebas dalam rentang tertentu. Baud rate yang umum
dipakai adalah 110, 135, 150, 300, 600, 1200, 2400, dan 9600 (bit/perdertik).
Dalam komunikasi data serial, baud rate dari kedua alat yang berhubungan harus
diatur pada kecepatan yang sama. Selanjutnya harus ditentukan panjang data (6,7
atau 8 bit), paritas (genap, ganjil, atau tanpa paritas), dan jumlah bit “Stop”
(1, 1 ½ , atau 2 bit).
Sebagai contoh
komunikasi antara sesama mikrokontroler atau mikrokontroler ke PC. Dalam
pengiriman data, clock antara pengirim dan penerima harus sama karena paket
data dikirim tiap bit mengandalkan clock tersebut. Inilah salah satu keuntungan
model asynchronous dalam pengiriman data karena dengan hanya satu kabel
transmisi maka data dapat dikirimkan. Berbeda dengan model synchronous yang
terdapat pada protokol SPI (Serial Peripheral Interface) dan I2C (Inter-Integrated
Circuit) karena protokol membutuhkan minimal dua kabel dalam transmisi data,
yaitu transmisi clock dan data. Namun kelemahan model asynchronous adalah dalam
hal kecepatannya dan jarak transmisi. Karena semakin cepat dan jauhnya jarak
transmisi membuat paket-paket bit data menjadi terdistorsi sehingga data yang
dikirim atau diterima bisa mengalami error.Asynchronous memungkinkan transmisi
mengirim data tanpa sang pengirim harus mengirimkan sinyal detak ke penerima.
Sebaliknya, pengirim dan penerima harus mengatur parameter waktu di awal dan
bit khusus ditambahkan untuk setiap data yang digunakan untuk mensinkronkan
unit pengiriman dan penerimaan.
Tipe-tipe UART
a. 8250 UART pertama pada seri ini. Tidak memiliki register scratch, versi
8250A merupakan versi perbaikan dari 8250 yang mampu bekerja dengan lebih
cepat;
b. 8250A UART ini lebih cepat
dibandingkan dengan 8250 pada sisi bus. Lebih mirip secara perangkat lunak dibanding
16450;
c. 8250B Sangat mirip dengan 8250;
d. 16450 Digunakan pada komputer AT dengan kecepatan 38,4 Kbps, masih banyak
digunakan hingga sekarang;
e. 16550 Generasi pertama UART yang memiliki penyangga, dengan panjang 16-byte,
namun tidak bekerja (produk gagal) sehingga digantikan dengan 16550A;
f. 16550A UART yang banyak digunakan pada komunikasi kecepatan tinggi, misalnya
14,4 Kbps atau 28,8 Kbps;
g. 16650 UART baru, memiliki penyangga FIFO 32-byte, karakter Xon/Xoff
terprogram dan mendukung manajemen sumber daya;
h. 16750 Diproduksi oleh Texas Instrument, memiliki FIFO 64-byte;
Download Video disini
Download HTML disini
Tidak ada komentar:
Posting Komentar