AKROMA ARDI
0910633028
Interface serial RS232
DEFINISI :
RS-232 adalah
standar komunikasi serial yang
didefinisikan sebagai antarmuka antara perangkat
terminal data (data terminal equipment atau DTE) dan perangkat
komunikasi data (data communications equipment atau DCE)
menggunakan pertukaran data biner secara
serial. Di dalam definisi tersebut, DTE adalah perangkat komputer dan DCE
sebagai modem walaupun
pada kenyataannya tidak semua produk antarmuka adalah DCE yang
sesungguhnya. Komunikasi RS-232 diperkenalkan pada 1962 dan pada tahun 1997, Electronic
Industries Association mempublikasikan tiga modifikasi pada standar RS-232
dan menamainya menjadi EIA-232.[1] Pada
saat itu RS-232 lahir karena muncul dari ide-ide pada sebuah komite (Electronic Industries Association-EIA) yang
mengembangkan sebuah interface untuk pertukaran data digital antara komputer
mainframe yang sebagai pusatnya dengan komputer lain, tetapi perangkat ini
dihubungkan dengan jaringan telepon sehingga dibutuhkan modem untuk
menerjemahkan sinyal tersebut. Dan muncul RS-232 yang dianggap dapat diandalkan
dalam melakukan komunikasi data (pertukaran data). [3]
Standar RS-232 mendefinisikan kecepatan 256
kbps atau lebih rendah dengan jarak kurang dari 15 meter, namun belakangan ini
sering ditemukan jalur kecepatan tinggi pada komputer pribadi dan dengan
kabel berkualitas tinggi, jarak maksimum juga ditingkatkan secara signifikan.
Dengan susunan pin khusus yang disebut null modem cable, standar RS-232
dapat juga digunakan untuk komunikasi data antara dua komputer secara langsung.[1]
Gambar 1. Kabel serial RS-232
Sebuah port RS-232 pernah menjadi fitur
standar dari komputer pribadi untuk koneksi ke modem, printer, mouse, penyimpanan
data, un-interruptible daya listrik, dan perangkat periferal lainnya. Namun,
kecepatan transmisinya terbatas, ayunan tegangan yang relatif besar, dan
konektor standar yang besar, sehingga termotivasi untuk pengembangan universal
serial bus (USB) untuk menggantikan RS-232. Banyak komputer pribadi modern tidak
memiliki port RS-232 dan harus menggunakan konverter eksternal untuk terhubung
ke peripheral yang lebih tua. Beberapa perangkat RS-232 masih ditemukan terutama
di mesin-mesin industri atau instrumen ilmiah.[2]
KONEKTOR
:
Gambar
2. Skema Komunikasi Data
RS-232 perangkat
dapat diklasifikasikan sebagai Data
Terminal Equipment (DTE) atau Data Communication Equipment (DCE),
yang arti pada setiap perangkat yang
kabelnya akan mengirim
dan menerima sinyalnya masing-masing.
Biasanya pada kabel tersebut terdapat 25 pin konektor (ada juga
yang 9 pin konektor). Sesuai dengan standar, terminal dan komputer
memiliki konektor laki-laki dengan
fungsi pin DTE, dan modem memiliki konektor perempuan dengan fungsi pin DCE.[2]
Konektor port
serial terdiri dari 2 jenis, yaitu konektor 25 pin (DB25 dan 9 pin (DB9) yang
berpasangan (jantan dan betina). Bentuk dari konektor DB-25 sama persis dengan
port paralel. Umumnya COM1 berada dialamat 3F8H, sedangkan COM2 dialamat 2F8H.[7]
Pada komputer IBM PC Compatibel biasanya kita dapat menemukan dua konektor DB 9
yang bisanya dinamakan COM1 dan COM2.
MALE
|
FEMALE
|
RS232 DB9 pinout
|
|
DEC
MMJ pinout
|
DEC
MMJ pinout
|
Gambar 4. Konektor DB25 dan DB9 [8]
Tabel dari fungsi pin dan sinyal pada RS-232 dengan konektor DB25. [2]
Keterangan
mengenai fungsi saluran RS232 pada konektor DB9 adalah sebagai berikut:
o
Receive Line signal detect, dengan
saluran ini DCE memberitahukan ke DTE bahwa pada terminal masukkan ada data
masuk.
o
Receive Data, digunakan DTE
menerima data dari DCE.
o
Transmit Data, digunakan DTE
mengirimkan data ke DCE.
o
Data Terminal Ready, pada saluran
ini DTE memberitahukan kesiapan terminalnya.
o
Signal Ground, saluran
ground.-Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah
stasiun menghendaki berhubungan dengannya.
o
Clear To Send, dengan saluran ini
DCE memberitahukan bahwa DTE boleh mulai mengirim data.
o
Request To Send, dengan saluran
ini DCE diminta mengirim data oleh DTE.
o
DCE Ready, sinyal aktif pada
saluran ini menunjukkan bahwa DCE sudah siap [6]
CONTOH
PENGGUNAAN RS-232 :
Antarmuka Kanal serial lebih kompleks/sulit dibandingkan dengan
antarmuka melalui kanal paralel, hal ini disebabkan karena:
1.
Dari Segi perangkat keras:
adanya proses konversi data
pararel menjadi serial atau sebaliknya menggunakan piranti tambahan yang
disebut UART (Universal Asynchronous Receiver/Transmitter)
2.
Dari Segi perangkat lunak: lebih
banyak register yang digunakan atau terlibat;
Namun di sisi lain antarmuka kanal serial menawarkan berapa kelebihan
dibandingkan secara paralel, antara lain:
1.
Kabel untuk komunikasi serial bisa
lebih panjang dibandingkan dengan paralel; data-data dalam komunikasi
serial dikirim-kan untuk logika ’1′ sebagai tegangan -3 s/d -25 volt dan untuk logika
’0′ sebagai tegangan +3 s/d +25 volt, dengan demikian tegangan dalam komunikasi
serial memiliki ayunan tegangan maksimum 50 volt, sedangkan pada komunikasi
paralel hanya 5 volt. Hal ini menyebabkan gangguan pada kabel-kabel panjang
lebih mudah diatasi dibandingkan pada paralel
2. Jumlah kabel serial lebih sedikit; Anda
bisa menghubungkan dua perangkat komputer yang berjauhan dengan hanya 3 kabel
untuk konfigurasi null modem, yaitu TXD (saluran kirim), RXD(saluran
terima) dan Ground, bayangkan jika digunakan teknik paralel akan terdapat 20 –
25 kabel! Namun pada masing-masing komputer dengan komunikasi serial harus dibayar
“biaya” antarmuka serial yang agak lebih mahal
3. Banyaknya piranti saat ini (palmtop,
organizer, hand-phone dan lainlain)
menggunakan teknologi infra merah untuk komunikasi data; dalam hal ini pengiriman datanya dilakukan secara serial. IrDA-1 (spesifikasi infra merah pertama)
mampu mengirimkan data dengan laju 115,2 kbps dan dibantu dengan piranti UART,
hanya panjang pulsa berkurang menjadi 3/16 dari standar RS-232 untuk
menghemat daya
4. Untuk teknologi embedded system, banyak mikrokontroler yang dilengkapi dengan komunikasi serial (baik
seri RISC maupun CISC) atau Serial Communication
Interface (SCI); dengan adanya SCI yang terpadu
pada 1C mikrokontroler akan mengurangi jumlah pin keluaran, sehingga
hanya dibutuhkan 2 pin utama TxD dan RxD (di luar acuan ground).[5]
Dari kelebihan di atas banyak perangkat yang menggunakan port RS-232,
contohnya saja monitor, GP balances, printer, scanner dll.
modem wavecom dengan port RS-232 monitor LCD dengan port RS-232
Gambar
5. Contoh
penggunaan RS-232
METODE PENGIRIMAN :
Komunikasi Data UART
Ada 2 macam cara komunikasi data serial yaitu Sinkron dan Asinkron.
Pada komunikasi data serial sinkron, clock dikirimkan bersama sama dengan data
serial, tetapi clock tersebut dibangkitkan sendiri – sendiri baik pada
sisi pengirim maupun penerima. Sedangkan pada komunikasi serial asinkron
tidak diperlukan clock karena data dikirimkan dengan kecepatan tertentu
yang sama baik pada pengirim / penerima. RS232 metode komunikasi asinkron seri. Kata seri berarti,
bahwa informasi yang dikirim satu bit pada suatu waktu.
Pada IBM PC kompatibel port serialnya termasuk jenis asinkron.
Komunikasi data 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.IC UART 8250 merupakan salah satunya. Selain berbentuk IC mandiri
berbagai macam mikrokontroller juga ada yang dilengkapi dengan UART, misalnya
AT89S51/52/53 atau PIC16F877.
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).
Untuk dapat menggunakan port serial harus diketahui dahulu alamat dari
port serial tersebut. Biasanya tersedia dua port serial pada CPU, yaitu COM1
dan COM2. Base Address COM1 biasanya 1016 (3F8h) dan COM2 biasanya 760 (2F8h).
Alamat tersebut adalah alamat yang biasa digunakan, tergantung komputer yang
digunakan.Tepatnya kita bisa melihat pada peta memori tempat menyimpan alamat
tersebut, yaitu memori 0000.0400h untuk COM1 dan 0000.0402h untuk COM2.[7]
LEVEL TEGANGAN :
Gambar 6. Grafik level tegangan [4]
Spesifikasi elektronik dari serial port RS232 merujuk pada
Electronic Industry Association (EIA) :
1. “Space” (logika 0) ialah tegangan antara + 3 hingga +25 V.
2. “Mark” (logika 1) ialah tegangan antara –3 hingga –25 V.
3. Daerah antara + 3V hingga –3V tidak didefinisikan /tidak terpakai
4. Tegangan open circuit tidak boleh melebihi 25 V.
5. Arus hubungan singkat tidak boleh melebihi 500 mA.[7]
Gambar 7. Diagram level
tegangan RS-232 pada osiloskop [2]
MODE HANDSHAKING :
Hardware PC biasa mungkin bisa bekerja hanya dengan Tx (Transmitter), Rx (Receiver) dan pentanahan yang terhubung. Driver pada software akan
menunggu untuk sebuah handshaking agar
berada pada level yang benar. Tergantung pada keadaan sinyalnya sendiri mungkin
bisa bekerja atau juga tidak. Solusi yang dapat dilakukan adalah menyimpul
balik jalur handshake bila tidak digunakan.
Ketika jalur handshake disimpul, RTS output dari PC langsung mengaktifkan CTS
input, sehingga PC dengan efektif mengendalikan handshaking nya sendiri.[8]
Gambar 9. Contoh penyimpulan pada RS-232 DB9 dan DB25
Menghubungkan
2 perangkat serial secara bersamaan melibatkan penghubungan Rx pada satu
perangkat dan Tx pada perangkat lainnya. Diagram di bawah ini menunjukkan
bagaimana cara menghubungkan 2 PC secara bersamaan tanpa handshaking.
Gambar
10. Menghubungkan 2 PC tanpa handshaking
dengan RS-232
Ketika diperlukan
handshaking,
umumnya RTS
dari
satu
perangkat terhubung ke CTS yang lain, dan
sebaliknya, dan juga DSR dari satu
perangkat terhubung ke DTR perangkat
lain,
dan
sebaliknya. Persyaratan khusus
untuk
peralatan
yang berbeda mungkin berbeda.[8]
Gambar
11. Menghubungkan 2 PC dengan handshaking
pada RS-232
CONTOH
PROGRAM DALAM BAHASA C/C++ :
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using System.Data;
using
System.Drawing;
using
System.Text;
using
System.Windows.Forms;
namespace
SerialPort{
public partial class Form1 : Form {
// Add this variable
string RxString;
public Form1()
{
InitializeComponent();
}
private void buttonStart_Click(object
sender, EventArgs e)
{
serialPort1.PortName =
"COM1";
serialPort1.BaudRate = 9600;
serialPort1.Open();
if (serialPort1.IsOpen)
{
buttonStart.Enabled = false;
buttonStop.Enabled = true;
textBox1.ReadOnly = false;
}
}
private void buttonStop_Click(object
sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
buttonStart.Enabled = true;
buttonStop.Enabled = false;
textBox1.ReadOnly = true;
}
}
private void Form1_FormClosing(object
sender, FormClosingEventArgs e)
{
if (serialPort1.IsOpen)
serialPort1.Close();
}
private void DisplayText(object sender,
EventArgs e)
{ textBox1.AppendText(RxString); }
private void
serialPort1_DataReceived(object sender,
System.IO.Ports.SerialDataReceivedEventArgs e)
{
RxString =
serialPort1.ReadExisting();
this.Invoke(new
EventHandler(DisplayText));
}
private void buttonSend_Click(object
sender, EventArgs e)
{
// If the port is closed, don't try
to send a character.
if (!serialPort1.IsOpen)
{
textBox1.Text = "port
closed";
return;
}
serialPort1.Write(textBox2.Text);
textBox1.Text =
"terkirim";
}
}
}
Referensi :
Tidak ada komentar:
Posting Komentar