KOMUNIKASI SERIAL
(KOMUNIKASI KOMPUTER DENGAN KOMPUTER)
I. Tujuan Khusus
Mampu melakukan komunikasi antara dua komputer menggunakan interface serial
RS 232
Memahami sistem pengkabelan untuk menghubungkan dua komputer melalui port
serial
Memahami standarisasi komunikasi serial RS 232
Memahami prosedur untuk melakukan komunikasi serial RS 232
konverte dikirim
r satu per
elemen
R
S E
E C
. .
N E
D . . I
E
0 1 1 0 1 0 0 1 0 0 V
0 0
R E
. . R
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
Start
MARK
1 1 0 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.
0 Volt
Logic -15
Gambar 3. Gelombang informasi komunikasi serial Volt
‘1’
Sumber : Forum Komunitas Teknisi Ponsel Indonesia
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).
Untuk konfigurasi pin out antara DB9 (female) dengan DB9 (female) yang lain
ditunjukan pada gambar berikut :
Pada gambar 4 diatas merupakan konfigurasi untuk komunikasi antara dua komputer
yang menggunakan koneksi point-to-point, artinya hanya komunikasi dalam mode half
duplex.
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
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
12. Buka DsgnCport7 pada folder file cport uncrompress ditempatkan, disini
ditempatkan pada C:\Program Files\Borland\Delphi7\comserial
13. Cek di program delphi apakah komponen sudah terinstall, jika proses install
sukses akan tampak seperti gambar dibawah.
Buat program untuk mengirimkan serta menerima pesan (teks) secara serial dari PC
ke PC.
Berikut ini langkah-langkah untuk membuat program untuk mengirimkan dan
menerima pesan (teks) dengan program delphi :
1. Bukalah program delphi dan buat aplikasi baru.
2. Tambahkan pada form tiga buah komponen button, dua buah komponen label,
dua buah komponen memo, satu buah komponen comport dan satu buah
komponen edit. Selanjutnya atur tata letak komponen-komponen tersebut seperti
gambar dibawah ini.
4. ketikkan kode program dibawah ini untuk membuat procedure penerimaan pesan
Double klik pada event-OnRxChar.
procedure frmpctopc.ComserialRxChar(Sender: TObject; Count:
Integer);
var
diterima
begin
Comserial.ReadStr(Str, Count);
meterima.Text:=meterima.Text + str;
end;
*Note
Count merupakan fungsi dari delphi yang menunjukkan jumlah karakter yang
diterima
5. Ketikkan kode program dibawah ini untuk membuka port serial dengan cara
melakukan double klik pada form untuk membuat prosedur formcreate, jika tidak
komunikasi serial tidak dapat dilakukan.
procedure frmpctopc.FormCreate(Sender: TObject); begin
Comserial.Open;
end;
6. Ketikkan kode program dibawah ini untuk mengirimkan pesan dengan cara
melakukan double klik pada btsend sebagai event on click.
procedure frmpctopc.btsendClick(Sender: TObject); var
i,n:integer;
str:string;
begin
Str := edinputteks.Text;
Comserial.WriteStr(Str);
mekirim.Lines.Add('Pengirim :' +
edinputteks.Text );
end;
*note
7. Ketikkan kode program dibawah ini untuk mengubah setting dari parameter
koneksi dengan cara melakukan double klik pada btsetup sebagai event on click.
procedure frmpctopc.btsetupClick(Sender: TObject); begin
Comserial.ShowSetupDialog; end;
8. Ketikkan program dibawah ini untuk menutup program dan menutup port serial
(com) dengan cara melakukan double klik pada btexit sebagai event on click.
procedure frmpctopc.btexitClick(Sender: TObject); begin
comserial.close; //menutup port com
application.terminate; //keluar dari program
end;
Ubahlah teks yang diterima ke dalam bentuk heksadesimal dan biner, amati pesan yang
dikirim dan diterima serta jawablah pertanyaan berikut ini :
1. Atur boudrate TX sama dengan boudrate RX, lakukan pengiriman karakter atau
teks!
2. Ubah boud rate TX dan RX sehingga memiliki nilai yang berbeda, kirimkan
pesan karakter ‘f’ , amati apa yang terjadi dan jawablah pertanyaan dibawah ini!
a. Data yang dikirim……, Data yang diterima……
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, CPort, StdCtrls;
type
Tfrmpctopc = class(TForm)
Mengirim: TMemo;
Menerima: TMemo;
Label1: TLabel;
Label2: TLabel;
btsend: TButton;
btsetup: TButton;
btexit: TButton;
Edinputteks: TEdit;
comserial: TComPort;
procedure FormCreate(Sender: TObject);
procedure btsendClick(Sender: TObject);
procedure btsetupClick(Sender: TObject);
procedure btexitClick(Sender: TObject);
procedure comserialRxChar(Sender: TObject; Count: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmpctopc: Tfrmpctopc;
hexa,biner,ascii:string;
implementation
{$R *.dfm}
procedure heksakebiner (heksa:string);
var
data:string;
begin
data:=heksa;
if data = '0' then data :='0000';
if data = '1' then data :='0001';
if data = '2' then data :='0010';
if data = '3' then data :='0011';
if data = '4' then data :='0100';
if data = '5' then data :='0101';
if data = '6' then data :='0110';
if data = '7' then data :='0111';
if data = '8' then data :='1000';
if data = '9' then data :='1001';
if data = 'A' then data :='1010';
if data = 'B' then data :='1011';
if data = 'C' then data :='1100';
if data = 'D' then data :='1101';
if data = 'E' then data :='1110';
if data = 'F' then data :='1111';
biner := biner+''+data;
end;
procedure koreksi2(eye:string);
var
m:integer;
z:integer;
//huruf:string;
begin
for m:=1 to length (eye) do
begin
ascii:=IntToStr(ord(eye[m]));
hexa:=IntToHex(ord(eye[m]),1);
for z:=1 to length(hexa) do
begin
heksakebiner(hexa[z]);
end;
frmpctopc.Mengirim.Lines.Add(eye[m]+'-->'+ascii+'-->'+hexa+'-->'+biner);
biner:='';
end;
end;
procedure Tfrmpctopc.FormCreate(Sender: TObject);
begin
comserial.Open;
end;
end.
VIII. TAMPILAN
Tampilan saat baudrate bernilai pada penerima 19200 pengirim 57600
Tampilan saat baudrate bernilai pada penerima1200 pengirim 14400
IX. FLOWCHART
Flowchart Program
Flowchat program penerimaan Flowchart Program Tombol Setup
pesan
Tfrmpctopc.btsendClick
str:=edinputteks.Text;
comserial.writestr(str); Flowchart Program Tombol Exit
X. Kesimpulan
1. Untuk menghubungkan dua komputer melalui port serial yaitu dengan menggunakan
konektor 2 buah DB9 (female) yang dihubung silang antara pin TX dan RX nya. Sedangkan
pin 1 di hubung singkat dengan pin 4 dan 6, serta pin 7 dihubung singkat dengan pin 8.
2. Jika nilai baudrate berbeda pada pengirim dan penerim maka data yang dikirim dan diterima
berbeda (error).
3. Jika baudrate pada pengirim lebih kecil daripada penerima atau sebaliknya maka data yang
dikirim tidak dapat diterima.