Anda di halaman 1dari 12

Serial Port Computer & Pemrogramannya Dengan VB6.

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.
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.

PENGIRIMAN HURUF “A” TANPA BIT PARITAS


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).
Karakteristik Sinyal Port Serial
Standar sinyal komunikasi serial yang banyak digunakan adalah Standar RS232 yang
dikembangkan oleh Electronic Industri Association (EIA/TIA) yang pertama kali dipublikasikan
pada tahun 1962.Ini terjadi jauh sebelum IC TTL populer sehingga sinyal ini tidak ada hubungan
sama sekali dengan level tegangan IC TTL. Standar ini hanya menyangkut komunikasi antara
(Data Terminal Equipment – DTE) dengan alat – alat pelengkap komputer (Data Circuit
Terminating Equipment – DCE).
Standar sinyal RS232 memiliki ketentuan level tegangan sebagai berikut :
• Logika 1 disebut ‘Mark’ terletak antara -3 Volt sampai -25 Volt
• Logika ‘0’ disebut ‘space’ terletak antara +3 Volt samapai +25 Volt.
• Daerah tegangan antara -3 Volt sampai +3 Volt adalah invalid level, yaitu daerah
tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga
level tegangan dibawah -25 Volt dan diatas +25 Volt juga harus dihindari karena bisa
merusak line driver pada saluran RS232
Gambar dibawah adalah contoh level tegangan RS232 pada pengiriman huruf “A” dalam format
ASCII tanpa bit paritas.

Level Tegangan RS232 pada pengiriman huruf “A” Tanpa Bit Paritas.
Flow Control
Jika kecepatan transfer data dari DTE ke DCE (misal dari komputer / modem) lebih cepat dari
pada transfer data dari DCE ke DCE (modem ke modem) maka cepat atau lambat kehilangan data
akan terjadi karena buffer pada DCE akan mengalami overflow. Untuk itu diperlukan sistem flow
control untuk mengatasi masalah tersebut.Ada 2 macam flow control yaitu secara hardware dan
secara software.
Flow control secara software atau yang sering disebut dengan Xon (karakter ASCII 17) dan Xoff
(karakter ASCII 19).DCE akan mengirimkan Xoff ke komputer untuk memberitahukan agar
komputer menghentikan pengiriman data jika buffer pada DCE telah penuh.Jika buffer telah
kembali siap menerima data DCE akan mengirimkan karakter Xon ke komputer dan komputer
akan melanjutkan pengiriman data sampai data terkirim semua.Keuntungan Flow Control ini
adalah hanya diperlukan kabel sedikit karena karakter kontrol dikirim lewat saluran TX RX.
Flow Control secara hardware atau sering disebut RTS / CTS menggunkan dua kabel untuk
melakukan pengontrolan.Komputer akan men-set saluran Request to Send (RTS) jika akan
mengirimkan data ke DCE. Jika buffer di DCE siap menerima data, maka DCE akan membalas
dengan men-set saluran Clear to Send (CTS) dan komputer akan mulai mengirimkan data.Jika
buffer telah penuh, maka saluran akan di reset dan komputer akan menghentikan pengiriman data
sampai saluran ini di-set kembali.

Konfigurasi Port Serial


Konektor DB-9 pada bagian belakang komputer adalah port serial RS232 yang biasa dinamai
dengan COM1 dan COM2.
Keterangan mengenai fungsi saluran RS232 pada konektor DB-9 adalah sebagai berikut :
1. Received Line Signal Detect, dengan saluran ini DCE memberitahukan ke DTE bahwa
pada terminal masukan ada data masuk.
2. Receive Data, digunakan DTE menerima data dari DCE.
3. Transmit Data, digunakan DTE mengirimkan data ke DCE.
4. Data Terminal Ready, pada saluran ini DTE memberitahukan kesiapan terminalnya.
5. Signal Ground, saluran ground
6. DCE ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
7. Request to Send, dengan saluran ini DCE diminta mengirim data oleh DTE.
8. Clear to Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mulai
mengirim data.
9. Ring Indicator, pada saluran ini DCE memberitahukan ke DTE bahwa sebuah stasiun
menghendaki hubungan dengannya.
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.
Berikut adalah nama – nama register yang digunakan beserta alamatnya.

Keterangan Register
• RX Buffer , digunakan untuk menampung dan menyimpan data dari DCE.
• TX Buffer , digunakan untuk menampung dan menyimpan data yang akan dikirim ke port
serial.
• Baud Rate Divisor Latch LSB , digunakan untuk menampung byte bobot rendah untuk
pembagi clock pada IC UART agar didapat baud rate yang tepat.
• Baud Rate Divisor Latch MSB , digunakan untuk menampung byte bobot tinggi untuk
pembagi clock pada IC UART sehingga total angka pembagi adalah 4 byte yang dapat
dipilih dari 0001h sampai FFFFh.

Berikut adalah tabel angka pembagi yang sering digunakan :

Sebagai catatan, register Baud Rate Divisor Latch ini bisa diisi jika bit 7 pada register Line
Control Register diisi 1.
Alasan Penggunaan Port Serial
Dibandingkan dengan menggunakan port parallel penggunaan port serial terkesan lebih rumit.
Berikut adalah keuntungan penggunaan port serial dibandingkan penggunaan port parallel.
1. Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak akan menjadi
masalah besar daripada menggunakan kabel parallel. Port serial mentransmisikan “1”
pada level tegangan -3 Volt sampai -25 Volt dan “0” pada level tegangan +3 Volt sampai
+25 Volt, sedangkan port parallel mentransmisikan “0” pada level tegangan 0 Volt dan
“1” pada level tegangan 5 Volt.
2. Dubutuhkan jumlah kabel yang sedikit, bisa hanya menggunakan 3 kabel yaitu saluran
Transmit Data, saluran Receive Data, dan saluran Ground (Konfigurasi Null Modem)
3. Saat ini penggunaan mikrokontroller semakin populer. Kebanyakan mikrokontroller sudah
dilengkapi dengan SCI (Serial Communication Interface) yang dapat digunakan untuk
komunikasi dengan port serial komputer.

Pengaksesan Port Serial Pada Visual Basic


Untuk pengaksesan port serial kita dapat mengaksesnya secara langsung menggunakan kontrol
MSComm yang telah disediakan Visual basic.Kontrol MSComm menyediakan fisilitas
komunikasi antara program aplikasi yang kita buat dengan port serial untuk mengirim atau
menerima data melalui port serial.Setiap MSComm hanya menangani satu port serial sehingga
jika kita ingin menggunakan lebih dari satu port serial harus digunakan MSComm lain.

Properti MSComm
Jumlah properti pada MSComm sangat banyak, dan hanya beberapa properti yang perlu
kitaketahui. Properti yang sering digunakan adalah :
CommPortDigunakan untuk menentukan nomor port serial yang akan dipakai.
Setting Digunakan untuk menset nilai baud rate, pariti, jumlah bit data, dan jumlah bit stop.
PortOpen Digunakan untuk membuka ataupun menutup port serial yang dihubungkan dengan
MSComm ini.
Input Digunakan untuk mengambil data string yang ada pada buffer penerima.
Output Digunakan untuk menulis data string pada buffer kirim.
Berikut adalah contoh penggunaan properti tersebut
'==============================================
Private Sub Form_Load ()
MSComm1.ComPort = 1
MSComm1.Setting = “9600,N,8,1”
MSComm1.InputLen = 0
MSComm1.PortOpen = True
MSComm1.Output = “ATV1Q0” & Chr$(13)
Do
DoEvents
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr (Buffer$, “OK”
& vbCLRF)
MSComm1.PortOpen = False
End Sub
'==============================================
Kode – kode program pada prosedur diatas akan melakukan aksi sebagai berikut :
• Port serial yang digunakan adalah COM1
• Setting MSComm adalah : Baud rate 9600, tanpa paritas, jumlah data 8 bit, dan jumlah bit
stop adalah 1 bit
• Memerintahkan kontrol MSComm membaca seluruh isi buffer ketika menggunakan
perintah input (MSComm1.InputLen = 0)
• Membaca port serial
• Mengirim perintah “ATV1Q0” diikuti ASCII 13 (enter) ke modem
• Menunggu modem mengirimkan jawaban “OK” ke komputer
• Menutup port serial

Even Pada MSComm


MSComm hanya mempunyai satu even saja, yaitu even OnComm. Even OnComm dibangkitkan
jika nilai properti dari CommEvent berubah yang mengindikasikan telah terjadi even pada port
serial baik even komunikasi maupun even error.
Tabel berikut adalah tabel mengenai nilai – nilai dari properti CommEvent, nilai properti ini tidak
tersedia pada saat design time, tetapi hanya dapat dibaca pada saat run time.
Berikut adalah contoh penggunaan even OnComm untuk komunikasi menggunakan
mikrokontroller. Akan dibaca hanya even comEvReceive saja

'==============================================
Private Static Sub MSComm1_OnComm ()
Dim Buffer As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
If MSComm1.InVufferCount >= 3
then
buffer = CStr (MSComm1.Input)
If Mid (Buffer,1,1) = “0”
then
if Mid (Buffer,2,1)= “K”
then
StatusBar1.Panels
(“Value”).Text = “Value : “ &
Asc(Mid(Buffer,3,1))
StatusBar1.Panels
(“Status”).Text = “Status :
Connect”
End If
End If
End If
End Select
End Sub
'==============================================
Kode – kode program pada prosedur diatas akan melakukan aksi sebagai berikut :
• Mendeteksi even comEvenReceive, kemudian menentukan apakah sudah diterima tiga
buah karakter pada buffer penerima .
• Menentukan apakah karakter yang diterima adalah karakter “OK”. Jika karakter yang
diterima adalah “OK” maka akan diubah nilai “Value” dan nilai “Status” pada properti
panel kontrol StatusBar1.