A. Komunikasi Serial (RS232)

advertisement
LAPORAN PRAKTIKUM KOMUNIKASI DATA
KOMUNIKASI SERIAL ANTARA PC KE PC
oleh:
ARIF FATHONI .A
2B-05-0931130030
PROGRAM STUDI TEKNIK TELEKOMUNIKASI
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI MALANG
2011
I.
Tujuan Khusus
Mampu menghubungkan 2 PC untuk melakukan komunikasi lewat serial RS
232.
Memahami sistem pengkabelan untuk menghubungkan 2 PC melalui port serial.
Mengetahui adanya pulsa startbit, data bit(word), stopbit, evenparity, dan
oddparity.
Mengetahui setting-setting untuk melakukan komunikasi serial antara PC to PC
(Boutrate, Data Bit, Parity, Flowcontrol).
II.
Tujuan Umum
Memahami komponen Delphi lebih lanjut.
Dapat melakukan instalasi komponen tambahan yang tidak terdapat pada Delphi
(Cport).
Mampu membuat program untuk komunikasi antara PC ke PC.
III. Alat dan Bahan
Program Delphi versi 6 keatas
Komponen komunikasi serial (CPORT)
Konektor DB9 female 2 buah
Kabel (secukupnya)
Komputer 2 unit
IV. Teori Penunjang
A. Komunikasi Serial (RS232)
Komunikasi serial merupakan komunikasi yang pengiriman datanya
dikirimkan perelemen. Dengan transmisi serial pengiriman data jarak jauh menjadi
lebih efektif dibandingkan dengan transmisi paralel. Data paralel internal komputer
dimasukkan ke pengubah paralel ke serial. Saluran serial mengirimkan setiap karakter
per elemen sehingga hanya diperlukan satu atau dua penghantar,yaitu kirim data (TX)
dan terima data (RX). Contoh transmisi serial ditunjukkan pada Gambar 1.
Paralel/serial
konverter
S
E
N
D
E
R
.
.
0
0
.
Paralel/serial konverter
8 bit dikirim satu
per elemen
1 1 0 1 0 0 1 0
Dibutuhkan 1 line mengirimkan 8 bit
.
.
0
0
.
R
E
C
E
I
V
E
R
Gambar 1. Transmisi Serial
Sumber : Donny Arius & Rum Andy K. R. , 2008
Pada Gambar 2 ditampilkan bahwa transmisi serial membutuhkan waktu yang
relatif lebih lama dibandingkan dengan transmisi paralel, hal ini dikarenakan untuk
komunikasi serial hanya menggunakan satu saluran. Berikut ini gambar arah transmisi
dari komunikasi serial.
Arah transmisi
Bit-bit yang ditransmisikan
Panjang karakter 8 bit
Start
Stop
MARK
1
1
0
1
0
0
1
0
SPACE
Gambar 2. Arah transmisi komunikasi serial
Sumber : Donny Arius & Rum Andy K. R. , 2008
Sebagai contoh, jika akan dikirim data serial 10011010, maka agar data
tersebut dapat dikirim dan diterima dengan baik, selang waktu yang digunakan oleh
pengirim dari penerima satu dengan yang lain harus sama. Jika penerima telah
menerima penyesuaian bit, maka seharusnya juga harus segera menerima penyesuaian
karakter, dan penerima juga harus mengetahui awal dan akhir blok data yang dikirim.
Penyesuaian yang diperlukan dapat diperoleh secara sinkron maupun asinkron, data
yang dikirim oleh terminal komputer lewat jalur RX dimasukan ke pengubah seri ke
paralel sebelum diteruskan ke komputer.
B. Parameter Komunikasi Serial
Pada komunikasi serial data yang dikirimkan berupa bit ‘1’ (high) atau bit ‘0’
(low), untuk bit ‘1’ diwakili sebagai tegangan +3 s/d +15 volt dan bit ’0’ diwakili
sebagai tegangan -3 s/d -15 volt dengan demikian tegangan dalam komunikasi serial
memiliki ayunan tegangan maksimal sebesar 30 volt.
Suatu karakter yang akan ditransfer harus didahului oleh kondisi (high) ke
rendah (low) yang dinamakan start bit, yang digunakan untuk mensikronkan antara
pengirim dan penerima. Setelah start bit, selanjutnya berisi karakter yang diikuti
dengan parity bit dan terakhir adalah stop bit. Berikut ini contoh sinyal informasi
komunikasi serial RS232 pada pengiriman huruf ”A” dalam format ASCII tanpa bit
paritas.
+15 Volt
Logic ‘0’
Start
0 Volt
1
0
0
0
0
0
1
0
Stop
Logic ‘1’
Gambar 3. Gelombang informasi komunikasi serial
Sumber : Forum Komunitas Teknisi Ponsel Indonesia
-15 Volt
Gambar 3 menunjukan bentuk gelombang komunikasi serial dengan format
8N1, yaitu 8 bit-data, tanpa parity dan 1 stop bit. Pada keadaan idle atau menganggur,
jalur RS232 ditandai dengan mark state atau logika high. Pengiriman data diawali
dengan start bit yang berlogika nol ‘0’ atau low, berikutnya data dikirimkan bit demi
bit mulai dari LSB (Least Significant Bit) atau bit ke-0 (nol). Pengiriman setiap byte
diakhiri dengan stop bit yang berlogika high. Gambar 3 memperlihatkan kondisi low
setiap stop bit, ini adalah start bit yang menandakan data berikutnya akan dikirimkan.
Jika tidak ada lagi data yang ingin dikirim, maka jalur transmisi ini akan dibiarkan
dalam keadaan high. Ada yang disebut break sinyal, yaitu keadaan low yang lamanya
cukup untuk mengirimkan 8-bit data. Jika pengirim menyebabkan jalur komunikasi
dalam keadaan seperti ini, penerima akan menganggap ini adalah break sinyal atau
sinyal rusak.
Data yang dikirimkan dengan cara seperti gambar 2.11 ini disebut data yang
terbingkai (to be framed) oleh start dan stop bit. Jika stop bit dalam keadaan low,
berarti telah terjadi framing error. Biasanya hal ini terjadi karena perbedaan kecepatan
komunikasi (baudrate) antara pengirim dan penerima. Berikut ini beberapa parameter
dari komunikasi serial :
 Data Bits
Jumlah bit yang akan ditransmisikan mempunyai nilai adalah 5 sampai 8 bit.
 Parity Bit
Untuk mendeteksi kesalahan (error) yang berbentuk odd (ganjil), even (genap)
atau tanpa parity (no parity).
 Start bit dan Stop bit.
Start Bit digunakan untuk singkronisasi penerima, start bit berukuran 1 bit. Stop
Bit menandakan akhir dari data yang dikirimkan, stop bit berukuran 1 bit, 1.5 bit
atau 2 bit.
 Baud rate atau kecepatan data (bps).
Merupakan kecepatan transmisi data dari transmitter ke receiver, mempunyai
nilai antara (50 s/d 19,2 kbps).
C. Konfigurasi Pengkabelan Komunikasi Serial antara 2 komputer
Untuk dapat melakukan komunikasi serial antara dua komputer maka di
butuhkan media kabel untuk mengirimkan informasi. Dalam komunikasi serial antara
dua komputer dibutuhkan media kabel serta konektor yang berupa DB9 (female). DB9
(female) memiliki 9 pin out yang tiap-tiap pin out memiliki fungsi masing-masing.
Pada Tabel 1. dibawah ini, menunjukan konfigurasi pin out beserta fungsi dari masingmasing pin.
Fungsi Pin Out
TX
RX
CTS
CD
Tabel 1. fungsi dari masing-masing pin keluaran
Keterangan
Fungsi
Transmit
Untuk pengiriman data serial
Data
Receive
Untuk penerimaan data serial
Data
Clear To
Digunakan untuk memberitahukan bahwa
Send
modem siap untuk melakukan pertukaran
data
Carrier
Saat modem mendeteksi suatu ‘carrier’
Detect
dari modem lain (dari tempat lain) maka
DSR
DTR
RTS
RI
Data Set
Ready
Data
Terminal
Ready
Request To
Send
Ring
Induktor
sinyal ini akan diaktifkan
Memberitahukan UART bahwa modem
siap untuk melakukan komunikasi (Link)
Kebalikan
dari
DSR,
untuk
memberitahukan bahwa UAT siap untuk
melakukan hubungan komunikasi
Sinyal untuk menginformasikan modem
bahwa UART siap untuk melakukan
pertukaran data
Akan aktif jika modem mendeteksi
adanya sinyal dering dari saluran telepon
Untuk konfigurasi pin out antara DB9 (female) dengan DB9 (male) yang lain
ditunjukan pada gambar berikut :
TX
PIN 1 : CD
RX
PIN 1 : CD
PIN 2 : RX
PIN 2 : RX
PIN 3 : TX
PIN 3 : TX
PIN 4 : DTR
PIN 4 : DTR
PIN 5 : SG
PIN 5 : SG
PIN 6 : DSR
PIN 6 : DSR
PIN 7 : RTS
PIN 7 : RTS
PIN 8 : CTS
PIN 8 : CTS
PIN 9 : RI
PIN 9 : RI
Gambar 4. Konfigurasi pin out DB9
Pada gambar 4 diatas merupakan konfigurasi untuk komunikasi antara dua
komputer yang menggunakan koneksi point-to-point, artinya hanya komunikasi dalam
mode half duplex.
D. Installasi Komponen Cport pada delphi
Untuk melakukan komunikasi serial komputer ke komputer menggunakan
program Delphi dibutuhkan komponen serial, terdapat banyak sekali komponen
komunikasi serial yang dapat digunakan, salah satunya adalah cport. Untuk
mendapatkannya, dapat diunduh di alamat www.progdigy.com. File yang diperoleh
masih dalam format terkompresi, sehingga unuk menggunakannya dan melakukan
instalasi ke program delphi diperlukan tahapan sebagai berikut :
Cara menginstall Komponen Serial
1. Unkompres file cport yang telah di download.
2. Copy file cport hasil unkompres ke folder dimana program delphi diinstall,
biasanya terdapat di C:\Program Files\Borland\Delphi7
3. Ubah nama folder menjadi comserial (optional), sehingga menjadi C:\Program
Files\Borland\Delphi7\comserial
4. Jalankan program delphi. Setelah itu klik ke sub menu tools → Environment
Options
Gambar 5. Tampilan Environment Options
5. Pada environment window klik ke library
Gambar 6. Tampilan Environment Windows Library
6. Pada tab library pilih tanda
(browse) pada library path
Gambar 7. Tampilan Library path
7. Klik tanda
(browse) pada Directories
Gambar 8. Tampilan Directories
8. Arahkan ke file cport (sesuai dengan penempatan file cport uncompress)
9. Setelah itu tekan tombol ADD
Gambar 9. Tampilan tombol ADD pada Directories
10. Buka file CportLib7 pada folder file cport uncrompress ditempatkan, disini
ditempatkan pada C:\Program Files\Borland\Delphi7\comserial
11. Setelah itu tekan tombol install
Gambar 10. Tampilan tombol Install
12. Buka DsgnCport7 pada folder file cport uncrompress ditempatkan, disini
ditempatkan pada C:\Program Files\Borland\Delphi7\comserial
Gambar 11. Tampilan tombol Install
13. Cek di program delphi apakah komponen sudah terinstall, jika proses install
sukses akan tampak seperti gambar dibawah.
Gambar 12. Tampilan komponen Cport pada Delphi
Gambar 13. Tata letak komponen
Ubah beberapa property form dan komponen menurut tabel berikut:
Tabel 1. Setting properti komponen dan form Komunikasi PC to PC
Komponen
Property
Setting
Form
Caption
Komunikasi PC to PC
Name
Frmpctopc
Label1
Caption
Kirim
Label2
Caption
Terima
Memo1
Lines
(kosongkan string list editor)
Name
Mekirim
Memo2
Lines
(kosongkan string list editor)
Name
Meterima
Button1
Caption
&Send
Name
Btsend
Button2
Caption
Se&tup
Name
Btsetup
Button3
Caption
E&xit
Name
Btexit
Edit1
Caption
(kosongkan)
Name
Edinputteks
Comport1
Name
Comserial
FLOWCHART
PROGRAM PC to PC
start
var
str:string;
//variabel menyimpan data
yang diterima
begin
Comserial.ReadStr(str, count);
menerima.Text:=menerima.Text + str;
end;
start
var
str:string;
begin
str := Edinputteks.Text;
Comserial.WriteStr(str);
mengirim.Lines.Add('pengirim : '+ Edinputteks.Text);
end;
PROGRAM PC to PC ASCII
start
var
i,n:integer;
str:string;
begin
Str:=input.Text;
com.WriteStr(Str);
snd.Lines.Add('ILA : "' + input.Text + '"');
input.Clear;
end;
start
var
str:string;
i, n:integer;
asc:byte;
begin
com.ReadStr(Str, Count);
rcv.Text:=rcv.Text + str;
rcv.Lines.Add('');
n:=length(str);
for i:=1 to n do
begin
asc:=Ord(str[i]);
ascii.Text:=ascii.Text + inttostr(asc) + '; ';
end;
end;
Listing Program PC to PC
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CPort, StdCtrls;
type
TFrmpctopc = class(TForm)
mengirim: TMemo;
menerima: TMemo;
Label2: TLabel;
btsend: TButton;
btsetup: TButton;
btexit: TButton;
Edinputteks: TEdit;
procedure ComserialRxChar(Sender: TObject; Count: Integer);
procedure FormCreate(Sender: TObject);
procedure btsendClick(Sender: TObject);
procedure btsetupClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frmpctopc: TFrmpctopc;
implementation
{$R *.dfm}
procedure TFrmpctopc.ComserialRxChar(Sender: TObject; Count: Integer);
var
str:string; //variabel menyimpan data yang diterima
begin
Comserial.ReadStr(str, count);
menerima.Text:=menerima.Text + str;
end;
procedure TFrmpctopc.FormCreate(Sender: TObject);
begin
Comserial.Open;
end;
procedure TFrmpctopc.btsendClick(Sender: TObject);
var
str:string;
begin
str := Edinputteks.Text;
Comserial.WriteStr(str);
mengirim.Lines.Add('pengirim : '+ Edinputteks.Text);
end;
procedure TFrmpctopc.btsetupClick(Sender: TObject);
begin
comserial.ShowSetupDialog;
end;
procedure TFrmpctopc.btexitClick(Sender: TObject);
begin
Comserial.Close;
//menutup port com
application.Terminate; //keluar dari program end; end.
Listing Program PC to PC dengan kode ASCII
unit communication;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMan, StdCtrls, CPort;
type
Tfrmpctopc = class(TForm)
comserial: TComPort;
Kirim: TLabel;
Terima: TLabel;
mekirim: TMemo;
meterima: TMemo;
btsend: TButton;
btsetup: TButton;
btexit: TButton;
edinputteks: TEdit;
XPManifest1: TXPManifest;
procedure comserialRxChar(Sender: TObject; Count: Integer);
procedure FormCreate(Sender: TObject);
procedure btsendClick(Sender: TObject);
procedure btsetupClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmpctopc: Tfrmpctopc;
implementation
{$R *.dfm}
procedure Tfrmpctopc.comserialRxChar(Sender: TObject; Count: Integer);
var
str:string;
//Variabel menyimpanan data yang diterima
i,n:integer;
asc:byte;
begin
Comserial.ReadStr(Str, Count);
// meterima.Text:=meterima.Text + str;
n:=length(str);
meterima.lines.Add(str);
for i:=1 to n do
begin
asc:=Ord(str[i]);
meterima.Lines.Add(str[i] + ' = '+inttostr(asc));
end
end;
procedure Tfrmpctopc.FormCreate(Sender: TObject);
begin
Comserial.Open;
end;
procedure Tfrmpctopc.btsendClick(Sender: TObject);
var
i,n:integer;
str:string;
begin
Str := edinputteks.Text;
Comserial.WriteStr(Str);
mekirim.Lines.Add('You : '+edinputteks.Text );
edinputteks.Text:='';
end;
procedure Tfrmpctopc.btsetupClick(Sender: TObject);
begin
Comserial.ShowSetupDialog;
end;
procedure Tfrmpctopc.btexitClick(Sender: TObject);
begin
comserial.close;
//menutup port com
application.terminate;
//keluar dari program
end;
procedure Tfrmpctopc.FormClose(Sender: TObject; var Action: TCloseAction);
begin
comserial.close;
//menutup port com
application.terminate;
//keluar dari program
end;
end.
V. Penjelasan Jalannya Program
Program pertama adalah komunikasi antara PC to PC menggunakan kabel
RS 232 yang berfungsi untuk menghubungkan kedua PC. Dengan program
PC to PC yang telah dijalankan akan Nampak hasil seperti dibawah :
Tampilan hasil program setelah di inputkan data karakter :
Program setelah di inputkan diproses lebih lanjut dengan meng-klik button
send kemudian di pihak penerima akan muncul data seperti yang di
masukkan pada pengirim. Seperti tampilan di atas.
Program kedua yaitu Komunikasi PC ke PC dengan kode ASCII. Program
yang ditampilakn pada program kedua ini terdapat sedikit perbedaan ,
yaitu pada data yang diterima yaitu disertai kode ascii selain dari data
aslinya.
Setelah di run hasilnya seperti di bawah :
Tampilan program setelah diketikkan suatu karakter :
KESIMPULAN
Penggunaan program Delphi lebih lanjut adalah dengan menggunakan
komunikasi serial antara PC to PC dan dengan aplikasi menggunakan ASCII
di penerima.
Penggunaan Cport disini untuk pengaplikasian jalannya program PC to PC.
Kabel RS 232 digunakan sebagai konektor dalam komunikasi serial yang
dilakukan.
Download
Study collections