Komunikasi Data Serial Multipoint menggunakan teknik RS485 Half

advertisement
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
ISSN : 1858-3709
KOMUNIKASI DATA SERIAL MULTIPOINT MENGGUNAKAN
TEKNIK RS485 HALF DUPLEX
Oleh :
Rikki Vitria
Jurusan Teknik Elektro Politeknik Negeri Padang
ABSTRACT
RS485 is serial data communications technique able to communicate between one unit with other units at
distance maximum 1,2 Km. Besides can be used for the Long distance, this technique also can be used to
connect 32 unit at the same time or recognized with multipoint only by using two cable and don’t require same
ground reference between one unit with others unit. Burden which connect with this network be implemented by
using a PC and two minimum systems use AT89C51 microcontroller.
Keywords: RS485, Multipoint, PC, Microcontroller
Komunikasi Data Serial Asinkron Menggunakan
1. PENDAHULUAN
Komunikasi
(serial
Standart RS485 ini merupakan pengembangan
communications) merupakan cara menghantar
dari komunikasi serial dengan standart RS232.
data
Dimana
yang
lebih
secara
mudah
serial
dibandingkan
pada
komunikasi
serial
standart
komunikasi paralel (parallel communications)
RS232, komunikasi yang bisa dilakukan adalah
disebabkan sistem komunikasi paralel terlalu
point to point dan jaraknya antara dua peralatan
mahal untuk kegunaan jarak jauh. Data yang
yang
bernilai 8 bit di simpan di shift register dan
maximum 15 meter [4].
dikirim
Melihat
secara satu bit demi satu bit ke
berkomunikasi
juga
keterbatasan
terbatas
inilah
yaitu
dikembangkan
tujuannya. Biasanya shift register tersebut
dengan menggunakan standart RS485. Seperti
berbentuk sebuah IC yang digunakan khas
ulasan diatas komunikasi dengan teknik RS485
untuk komunikasi serial yang disebut UART
bisa secara multipoint atau banyak item yang
(Universal
Receiver
bisa kita hubungkan untuk berkomunikasi . Item
Transmitter). Mode Komunikasi serial yang bisa
yang bisa terhubung kedalam jaringan ini
dilaksanakan seperti simplex, half duplex, dan
adalah maksimum 32 buah item dan memiliki
full duplex.
jarak maksimum komunikasi yang lebih jauh
Salah satu standart komunikasi serial yang
sekitar 1.2 Km [2].
dipakai adalah
Asynchronous
Teknik RS485, Teknik
ini
adalah teknik komunikasi data serial yang
2. KONSEP TEKNIK RS485
dapat dilakukan pada jarak yang cukup jauh
RS485 adalah teknik komunikasi data
yaitu 1,2 Km. Selain dapat digunakan untuk
serial yang dapat berkomunikasi antara satu
jarak yang jauh teknik ini juga dapat digunakan
unit dengan unit lainnya pada jarak yang cukup
untuk menghubungkan 32 unit beban sekaligus
jauh yaitu 1,2 Km [2]. Selain dapat digunakan
hanya dengan menggunakan dua buah kabel
untuk jarak yang jauh teknik ini juga dapat
saja tanpa memerlukan referensi ground yang
digunakan
sama antara unit yang satu dengan unit lainnya
beban sekaligus hanya dengan menggunakan
[2].
dua
buah
untuk
kabel
menghubungkan 32
saja
tanpa
unit
memerlukan
67
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
ISSN : 1858-3709
referensi ground yang sama antara unit yang
standart RS485 seperti yang terlihat pada
satu
gambar 2.1 [2].
dengan
unit
lainnya.
Beban
yang
terhubung kejaringan bisa berupa komputer,
mikrokontroler dan peralatan-peralatan lainnya
yang bisa dikoneksikan dengan menggunakan
Gambar 2.1. Jaringan Komputer dan Peralatan lainnya dengan teknik RS485
Untuk mewujudkan hal ini biasanya digunakan
sebuah IC SN75176, IC inilah yang menjadi
komponen utama Modul RS485 yang didisain
untuk komunikasi data secara bidirectional atau
multipoint dengan Standard ANSI EIA/TIA-422B dan ITU V11. Data yang ditransmisikan oleh
IC ini dikirim dalam bentuk perbedaan tegangan
Gambar 2.2. Susunan Pin IC SN75176
yang ada pada kaki A dan B dari SN75176.
SN75176 berfungsi sebagai pengirim data atau
Pada komunikasi RS485, semua peralatan
penerima data tergantung dari kondisi kaki-kaki
elektronik berada pada posisi penerima hingga
kontrolnya yaitu DE dan RE. Apabila kaki DE
salah satu memerlukan untuk mengirimkan
berlogika 0 dan RE berlogika 0, maka SN75176
data, maka peralatan tersebut akan berpindah
berfungsi sebagai penerima data sedangkan
ke mode pengirim, mengirimkan data dan
bila kaki DE berlogika 1 dan RE berlogika 1
kembali
maka SN75176 berfungsi sebagai pengirim.
peralatan
Adapun Gambar IC tersebut seperti yang
mengirimkan data, maka terlebih dahulu harus
terlihat pada gambar 2.2 [2].
diperiksa, apakah jalur yang akan digunakan
ke
mode
penerima.
elektronik
Setiap
tersebut
kali
hendak
sebagai media pengiriman data tersebut tidak
sibuk.
Apabila
jalur
masih
sibuk,
maka
peralatan tersebut harus menunggu hingga
jalur sepi. Hal ini seperti yang ditunjukkan
flowchart pada gambar 2.3 [2].
68
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
ISSN : 1858-3709
selanjutnya akan diambil untuk diproses lebih
lanjut. Proses ini seperti ditunjukkan flowchart
pada Gambar 2.4 [2].
Gambar 2.3 Flowchart Pengiriman Data
Gambar 2.4. Flowchart Penerimaan Data
Agar data yang dikirimkan hanya sampai ke
peralatan elektronik yang dituju, misalkan ke
salah
satu
Slave,
maka
terlebih
3. IMPLEMENTASI KOMUNIKASI SERIAL
RS485
dahulu
pengiriman tersebut diawali dengan Slave ID
Untuk Implementasi Proses komunikasi
dan dilanjutkan dengan data yang dikirimkan.
Serial ini kita bisam menggunakan sebuah
Peralatan-peralatan elektronik yang lain akan
komputer dan 2 buah sistem minimum yang
menerima data tersebut, namun bila data yang
menggunakan Mikrokontroler AT89C51, seperti
diterima tidak mempunyai ID yang sama
yang terlihat pada Gambar 5.1 dibawah ini
dengan
Slave
peralatan
ID
tersebut
yang
harus
dikirimkan,
maka
menolak
atau
mengabaikan data tersebut. Namun bila Slave
ID yang dikirimkan sesuai dengan ID dari
peralatan elektronik yang menerima, maka data
PC
Converter
Rs232/Rs485
Converter
TTL/Rs485
Sistim Minimum
(Mikrokontroler
AT89c51)
Converter
TTL/Rs485
Sistem Minimum
(Mikrokontroler
AT89c51)
Gambar 3.1. Blok Diagram Modul Komunikasi Data Serial dengan Teknik RS485
69
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
Disini terlihat ada 3 buah item (1 PC dan 2
Port[$3F8]:=kar;
Gotoxy(x,y);
TextColor(Yellow);
Case kar of
$0D : Begin
x:=2;
y:=y+1;
if y>12 then
Begin
ScrollUp1;
y:=12;
x:=2;
end;
end;
$08 : Begin
x:=x-1;
if x<2 then
Begin
y:=y-1;
x:=79;
End;
Gotoxy(x,y);Write(' ');
Gotoxy(x,y);
end;
00..07,
09..$0C,
$0E..$FF :
Begin
Write(Chr(kar));
x:=x+1;
if x>79 then
Begin
x:=2;
y:=y+1;
end;
if y>12 then
Begin
ScrollUp1;
y:=12;
x:=2;
end;
end;
end;
end;
Sistem minimum) yang dikomunikasikan, dan
kita
menganggap
ini
cukup
mewakili
komunikasi yang multipoint. Diagram di atas
merupakan
komunikasi
data
secara
keseluruhan komunikasi data serial multipoint
dengan
menggunakan
RS485.
Setiap
pengiriman data dari komputer selalu melewati
konverter RS232/485 kemudian berulah masuk
ke TTL485 yang merupakan modul yang
terhubung ke MC. Jika data yang dikirimkan
telah diterima oleh modul Mc maka akan
ditampilkan oleh LCD sebagai display untuk
menampilkan data. Pada saat pengiriman data
dari modul MC data tersebut data dimasukkan
dari keypad kemudian baru dikirimkan sesuai
dengan program ketujuan yang diinginkan.
Untuk
Pembuatan
berupa
Bahasa
Software
Komunikasi
pemograman
yang
,
akan
digunakan untuk bisa berkomunikasi antara
satu unit dengan unit lainnya. Untuk Bagian di
PC menggunakan Pascal dan menggunakan
Bahasa Assembly untuk Sistem minimumnya.
3.1. Program Pengiriman Data pada PC
Seandainya data yang akan dikirimkan
adalah
”Komunikasi
Data”
dan
alamat
tujuannya adalah MC3 maka kita harus menulis
”3Komunikasi Data” dimana ”3” adalah sebagai
alamat tujuan data dan data yang kirimkan
tersebut adalah ”Komunikasi Data”.
Pada
saat
diperhatikan
pengiriman
adalah
data
jangan
yang
perlu
menggunakan
karakter ”2” atau ”3” secara bersamaan. Sebab
jika ini terjadi maka akan menyebabkan data
yang dikirimkan oleh program pada PC ini akan
diterima oleh kedua MC.
Procedure Kirim_Data(Var kar : byte);
Begin
While(Port[Line_Stat_Reg] and $20)
= do;
ISSN : 1858-3709
3.2.
Program Pengiriman
Mikrokontroler
Data
pada
Kirimkan_Data:
Clr Ea
Setb p3.2
clr ti
mov a,r0
subb a,#40h
mov r1,a
mov r0,#Mulai_Data
Kirim_lagi:
mov a,@r0
Lcall Serial_Out1
inc r0
djnz r1,Kirim_Lagi
70
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
mov a,#0dh
Lcall Serial_Out1
setb Ea
CLR p3.2
Ljmp Kembali
Pada baris pertama potongan program diatas
dilakukan
Clr Ea yang menyatakan bahwa
semua interupsi dimatikan, kemudian dilakukan
Setb p3.2 yang menandakan bahwa RS485
dalam Mode Transmit dan flag TI harus diberi
logika 0 agar data dapat dikirimkan.
Mov
a,r0
merupakan
perintah
untuk
memindahkan alamat akhir data ditulis ke
dalam
Accumulator.
Subb
a,#40H
adalah
perintah untuk melakukan pengurangan alamat
akhir data dalam r0 dengan alamat awal data
40H. Hasil akhir dari pengurangan tersebut
dimasukkan ke dalam alamat r1 dan data
didalam alamat r1 inilah yang akan dikirimkan.
Sebelum data dikirimkan, terlebih dahulu harus
ditulis ID penerima agar data yang dikirim
hanya akan diterima oleh penerima yang
mempunyai ID yang sama dengan ID data yang
dikirim. Jika ID penerima tidak ditulis, maka
data
akan
diterima
oleh
semua
penerima/perangkat yang terhubung melalui
jaringan RS485 tersebut.
3.3. Program Penerimaan Data Pada PC
Program terima_Data ini akan bekerja
jika data pertama yang dikirimkan adalah 31H
atau “1” dalam bilangan ASCII. Jika bilangan
pertama yang diterima adalah “1” maka port
Rx_Buffer yang berada pada port serial akan
aktif dan telah siap untuk menerima data yang
telah dikirimkan baik itu oleh MC2 atau MC3.
Procedure Terima_Data;
Interrupt;
Begin
TextColor(White);
Data_masuk
:=Port[Rx_Buffer];
ISSN : 1858-3709
IF Data_Masuk = $31 then
Begin
While Data_Masuk <> $0D do
Begin
Data_Masuk
:=Port[RX_Buffer];
Gotoxy(l,m);
Case Data_Masuk of
$0D : Begin
l:=2;
m:=m+1;
if m>23 then
Begin
ScrollUp2;
m:=23;
l:=2;
end;
end;
$08 : Begin
l:=l-1;
if l<2 then
Begin
m:=m-1;
l:=79;
end;
Gotoxy(l,m);Write(' ');
gotoxy(l,m);
end;
$1B : Begin
SetIntVec($0C,Cs_IP_Lama);
Port[Int_Enb_Reg]:=$01;
Port[INTA00]:=$20;
Port[Mod_Ctrl_Reg]:=$00;
TextBackGround(Black);
TextColor(7);
halt;
End;
00..07,
09..$0C,
$0E..$1A,
$1C..$FF : Begin
Write(Chr(Data_masuk));
l:=l+1;
if l>79 then
Begin
m:=m+1;
l:=2;
end;
if m>23 then
Begin
ScrollUp2;
m:=23;
l:=2;
end;
end;
end;
end;
end;
71
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
ISSN : 1858-3709
Hasil
Port[Int_Enb_Reg]:=$01;
Port[INTA00]:=$20;
end;
akhir
komunikasi serial ini
dari
implementasi
adalah berupa modul-
modul yang bisa kita komunikasikan secara
multipoint satu
3.4. Program Terima Data Pada
dengan yang lainnya dengan
menggunakan teknik RS485.
Mikrokontroler
Pada komunikasi data yang dirancang ini
Terima_Data:
clr p3.2
Jnb ri,$
clr ri
mov r0,#Mulai_Data
mov a,sbuf
cjne a,#'3',keluar
menggunakan dua buah mikrokontroler dan
satu buah komputer yang dilengkapi dengan
program pengiriman data dan penerimaan data
yang dibuat dengan menggunakan bahasa
pemograman Turbo Pascal 7.0 di bagian
Berbeda
dengan
pengiriman
data,
pada
penerimaaan data interupsi harus diaktifkan,
karena jika tidak terjadi intrupsi, penerimaan
data
tidak
potongan
akan
program
pernah
dilakukan.
diatas
tidak
Pada
terdapat
perintah untuk mengaktifkan interupsi karena
diawal program telah dilakukan inisialisasi
terhadap interupsi serial. Interupsi ini akan aktif
setelah selesai menerima data. Pada proses
penerimaan data, penerima akan memeriksa ID
data yang dikirimkan oleh pengirim. Jika ID
data sama dengan ID penerima, maka data
akan dikirimkan ke LCD untuk ditampilkan,
tetapi jika ID data tidak sama dengan ID
penerima, maka data tersebut ditolak. Seperti
pada perintah cjne a,#'3',keluar, jika penerima
mempunyai ID sama dengan 3, maka data
yang
dikirimkan
tersebut
diterima
dan
ditampilkan pada LCD tetapi jika tidak maka
melompat ke label keluar yang menandakan
bahwa
data
tersebut
ditolak.
Data
yang
ditampilkan pada layar LCD hanya data yang
berada setelah no ID penerima. Misalnya data
yang dikirimkan “34567”, maka data yang akan
diterima dan ditampilkan pada layar LCD
penerima dengan no ID 3 adalah “4567”
Komputer dan menggunakan bahasa Assembly
MCS-51 di bagian mikrokontrolernya.
Sebelum melakukan pengiriman data semua
alat yang digunakan untuk komunikasi data ini
diset dalam posisi menerima. Maka alat akan
menerima data jika data yang pertama tersebut
sama dengan ID yang diset pada masing alat.
Pada
Mikrokontroler
data
yang
diterima
ditampilkan pada LCD (Liquid Cristal Display).
Sedangkan pada komputer, data yang diterima
ditampilkan pada kolom baris kedua. Penulisan
data
yang
dikirimkan
pada
Mikrokontroler
dengan menggunakan Keypad Matrik dan pada
Komputer
menggunakan
kayboard.
Mode
komunikasi yang bisa dilakukan adalah half
Duplex Atau mode komunikasi dua arah antara
pengirim
dan
penerima
tetapi
proses
pengiriman dan penerimaan data tersebut
harus secara bergantian dan tidak bisa secara
bersamaan. Semua Unit yang terhubung ke
jaringan bisa saling berkomunikasi satu dengan
yang lainnya. Jadi sistem yang menggunakan
teknik
RS485 ini merupakan pengembangan
dari keterbatasan yang ada pada teknik RS232,
yang hanya bisa melakukan komunikasi point to
point saja
4. HASIL DAN PEMBAHASAN
5. KESIMPULAN DAN SARAN
72
Jurnal Ilmiah Poli Rekayasa Volume 3, Nomor 2, Maret 2008
Labor Telekomunikasi, Penelitian Program
5.1. Kesimpulan
Dari uraian yang telah disampaikan
sebelumnya, maka kami menarik beberapa
kesimpulan yaitu:
RS485 ini merupakan pengembangan dari
keterbatasan yang ada pada komunikasi
Komunikasi Multipoint yang terjadi antara
modul
dengan
yang
lainnya
diibaratkan seperti forum diskusi, dimana
ketika
4. Interfacing the Serial / RS232 Port V5.0,
5. Mackenzie Scott, The Microcontroller 8051,
Prentice
sebuah
modul
Hall,
Englewood
Cliffs,
New
Jersey, Columbus, Ohio, 1992
6. Ibnu
Serial RS232
sebuah
Sp4 PSTT Politeknik Negeri Padang, 2004
www.senet.com.au/~cpeacock
1. Komunikasi Serial Multipoint dengan teknik
2.
ISSN : 1858-3709
Malik
Bereksperimen
Mohammad,
dengan
Anistardi,
mikrokontroler
8031, PT Elex Media Komputindo, Jakarta,
1997
mengirimkan
informasi, maka modul-modul yang lain
akan menerimainformasi tersebut
3.
Pengiriman informasi dari suatu modul ke
modul tertentu dapat diwujudkan dengan
cara memberi ID pada setiap modul modul
yang ada
5.2 Saran
Keterbatasan menggunakan teknik RS485 ini
adalah komunikasi yang terjadi tidak full duplex,
tetapi half duplex. Mungkin nanti komunikasi
serial ini bisa dikembangkan dengan teknik
yang lain yang bisa mengatasi keterbatasn
tersebut
DAFTAR PUSTAKA
1. Andi Nalwan Paulus, Panduan Praktis
Teknik
Antarmuka
Dan
Pemograman
Mikrokontroler AT89C51, PT Elex Media
Komputindo, Jakarta, 2003
2. Jan Axelson, Networks for Monitoring And
Control
Using
an
RS485
Interface,
Mikrocomputer Journal, August 1995
3. Septima Uzma, Rikki Vitria, Pembuatan
Modul Pengiriman Dan Penerimaan Data
Serial Asinkron Menggunakan Standart
Rs232 Untuk Praktek Komunikasi Data Di
73
Download