Pendahuluan
Pada dasarnya ada dua jenis komunikasi data serial, yaitu komunikasi data serial sinkron dimana pengiriman clock dilakukan secara bersamaan dengan data serial dan komunikasi data asinkron dimana pengiriman clock dilakukan secara dua tahap, yaitu saat data dikirimkan dan saat data diterima.
RS-232 pada computer mempunyai dua jenis konektor, yaitu konektor dengan 25 pin atau sering disebut dengan DB-25 connector dan konektor dengan 9 pin atau sering disebut dengan DB-9 connector. Pada dasarnya hanya 3 pin yang terpakai, yaitu pin pengirim, penerima, dan ground. Perlu diperhatikan bahwa dalam pengiriman data serial semakin jauh jarak kirim maka kemungkinan noise atau gangguan semakin besar.
Bentuk Gelombang RS-232
Pada komunikasi data RS-232 bersifat asinkron, artinya sinyal clock tidak dikirimkan bersamaan dengan data. Masing-masing word disinkronkan menggunakan bit start-nya dan clock internal pada masing-masing computer.
Gambar 1. Diagram struktur data 8N1 tingkat TTL
Pada gambar 1 ditunjukkan komposisi data RS-232 dalam tingkat TTL (dari UART) yang menggunakan format 8N1 (8 bit data, tidak ada paritas dan 1 bit stop). Jalur RS-232, saat diam (idle) dalam kondisi-kondisi “tertanda” – Mark State (logika 1). Suatu transmisi akan dimulai dengan sebuah bit start (logika 0), kemudian masing-masing bit dikirimkan berurutan diawali dengan LSB-nya dan diakhiri dengan bit stop (logika 1).
Pada gambar 1. Juga terlihat bahwa bit berikut setelah bit stop adalah logika 0. Ini artinya ada word lain yang dikirimkan dan ini merupakan bit start-nya. Jika tidak ada data lagi yang dikirimkan maka jalur transmisi akan tetap dalam kondisi diam (logika 1). Ada suatu sinyal disebut sinyal “break”, yang terjadi saat jalur data ditahan dalam kondisi 0 untuk jangka waktu yang lebih lama dari saat pengiriman seluruh word. Dengan demikian, jika tidak mengembalikan lagi jalur ini ke kondisi diam (idle), maka penerima akan mengartikan sebagai suatu sinyal “break”.
Pengiriman data semacam itu dinamakan sebagai pengiriman data dalam frame (kerangka), karena data ada dalam “kerangka” bit start dan stop. Jika bit stop yang diterima sebagai logika 0, maka terjadilah framing error dan hal ini biasa terjadi jika kedua computer atau piranti yang berkomunikasi dalam kecepatan yang tidak sama.
Karakteristik Sinyal Port Serial RS-232
Standar sinyal RS-232 memiliki ketentuan level tegangan sebagai berikut :
1. Logika ‘1’ disebut ‘mark’ terletak antara -3 Volt hingga 25 Volt.
2. Logika ‘0’ disebut ‘space’ terletak antara +3 Volt hingga +25 Volt.
3. Daerah tegangan antara -3 Volt hingga +3 Volt adalah invalid level, yaitu daerah tegangan yang tidak memiliki level logika pasti sehingga harus dihindari. Demikian juga level tegangan lebih negative dari -25 Volt atau lebih positif dari +25 Volt juga harus dihindari karena tegangan tersebut dapat merusak line driver pada saluran RS-232.
Konfigurasi Port Serial
Gambar 2. Adalah gambar konektor port serial DB-9 pada bagian belakang CPU. Pada computer IBM PC kompatibel biasanya kita dapat menemukan dua konektor port serial DB-9 yang biasa dinamai COM1 dan COM2.
Gambar 2. Konektor serial DB-9 pada bagian belakang CPU
Tabel 1. Konfigurasi pin dan nama sinyal konektor serial DB-9
| Nomor Pin | Nama Sinyal | Direction | Keterangan |
| 1 | DCD | In | Data Carrier Detect / Received Line Signal Detect |
| 2 | RxD | In | Receive Data |
| 3 | TxD | Out | Transmit Data |
| 4 | DTR | Out | Data Terminal Ready |
| 5 | GND | - | Ground |
| 6 | DSR | In | Data Set Ready |
| 7 | RST | Out | Request to Send |
| 8 | CTS | In | Clear To Send |
| 9 | RI | In | Ring Indicator |
Keterangan mengenai fungsi saluran RS-232 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. Ring Indicator, pada saluran ini DCE memberitahu ke DTE bahwa sebuah stasiun menghendaki hubungan dengannya.
7. Clear To Send, dengan saluran ini DCE memberitahukan bahwa DTE boleh mengirim data.
8. Request To Send, dengan saluran ini DCE diminta oleh DTE untuk mengirim data.
9. DCE Ready, sinyal aktif pada saluran ini menunjukkan bahwa DCE sudah siap.
Untuk dapat menggunakan port serial kita perlu mengetahui alamatnya. Biasanya tersedia dua port serial pada CPU, yaitu COM1 dan COM2. Base address COM1 biasanya adalah 1016 (3F8h) dan COM2 biasanya 760 (2F8h). alamat tersebut adalah alamat yang biasa digunakan, tergantung dari computer yang digunakan. Tepatnya kita dapat melihat pada peta memori tempat menyimpan alamat tersebut, yaitu memori 0000.0400h untuk base address COM1 dan memori 0000.0402h untuk base address COM2.
Setelah kita mengetahui base address-nya, maka kita dapat menentukan alamat register-register yang digunakan untuk komunikasi port serial ini. Berikut adalah tabel register-register tersebut beserta alamatnya.
Tabel 2. Nama register yang digunakan beserta alamatnya
| Nama Register | COM1 | COM2 |
| TX Buffer | 3F8h | 2F8h |
| RX Buffer | 3F8h | 2F8h |
| Baud rate Divisor Latch LSB | 3F8h | 2F8h |
| Baud rate Divisor Latch MSB | 3F9h | 2F9h |
| Interrupt Enable Register | 3F9h | 2F9h |
| Interrupt Identification Register | 3FAh | 2FAh |
| Line Control Register | 3FBh | 2FBh |
| Modem Control Register | 3FCh | 2FCh |
| Line Status Register | 3FDh | 2FDh |
| Modem Status Register | 3FEh | 2FEh |
Keterangan mengenai fungsi register-register tersebut adalah sebagai berikut :
1. RX Buffer, digunakan untuk menampung dan menyimpan data dari DCE.
2. TX buffer, digunakan untuk menampung dan menyimpan data yang akan dikirim ke port serial.
3. Baud rate Divisor Latch LSB, digunakan untuk menampung byte bobot rendah untuk pembagi clock pada IC UART agar didapat baud rate yang tepat.
4. Baud rate Divisor Latch MSB, digunakan untuk menampung byte bobot rendah untuk pembagi clock pada IC UART sehingga total angka pembagi adaah 4 byte yang dapat dipilih dari 0001h sampai FFFFh. Berikut adalah table angka pembagi yang sering digunakan.
Tabel 3. Angka pembagi clock pada IC UART
| Baud Rate (bit/detik) | Angka Pembagi |
| 300 | 0180h |
| 600 | 0C00h |
| 1200 | 0060h |
| 1800 | 0040h |
| 2400 | 0030h |
| 4800 | 0018h |
| 9600 | 000Ch |
Sebagai catatan, register Baud Rate Divisor Latch ini bisa diisi jika bit 7 pada register Line Control Register diisi 1.
5. Interrupt Enable Register, digunakan untuk menset interupsi apa saja yang akan dilayanai computer. Berikut adalah tabel rincian bit pada Interrupt Enable Register.
Tabel 4. Rincian bit pada Interrupt Enable Register
| Nomor bit | Keterangan |
| 0 | 1 : Interupsi akan diaktifkan jika menerima data |
| 1 | 1 : Interupsi akan diaktifkan jika register Tx kosong |
| 2 | 1 : Interupsi diaktifkan jika ada perubahan keadaan pada Line Status Register |
| 3 | 1 : Interupsi diaktifkan jika ada perubahan keadaan pada Modem Status Register |
| 4,5,6,7 | Diisi 0 |
6. Interrupt Identification Register, digunakan untuk menentukan urutan prioritas interupsi. Berikut adalah tabel rincian bit pada Interrupt Identification Register.
Tabel 5. Rincian bit pada Interrupt Identification Register
| Nomor bit | Keterangan |
| 0 | 0 : Interupsi menunggu 1 : No interrupt pending |
| 1 dan 2 | 00 : Prioritas tertinggi oleh Line Status Register 01 : Prioritas tertinggi oleh register Rx jika menerima data 10 : Prioritas tertinggi oleh register Tx jika telah kosong 11 : Prioritas tertinggi oleh Modem Status Register |
| 3,4,5,6,7 | Diisi 0 |
7. Line Control Register, digunakan untuk menentukan jumlah bit data, jumlah bit parity, jumlah bit stop, serta untuk menentukan apakah baud rate divisor dapat diubah atau tidak. Berikut adalah tabel rincian bit pada Line Control Register.
Tabel 6. Rincian bit pada Line Control Register
| Nomor bit | Keterangan |
| 0 dan 1 | Jumlah bit data 00 : Jumlah bit data adalah 5 01 : Jumlah bit data adalah 6 10 : Jumlah bit data adalah 7 11 : Jumlah bit data adalah 8 |
| 1 dan 2 | Bit Stop 0 : Jumlah bit data adalah 5 1 : Jumlah bit stop adalah 1,5 untuk 5 bit data dan 2 untuk 6 hingga 8 bit data |
| 3 | Bit Pariti 0 : Tanpa parity 1 : Dengan pariti |
| 4 | 0 : Pariti ganjil 1 : Pariti genap |
| 5 | 1 : Bit parity ikut dikirimkan (stick parity) |
| 6 | 0 : Set break control tidak diaktifkan 1 : Set break control diaktifkan |
| 7 | 0 : Baud rate divisor tidak dapat diakses 1 : Baud rate divisor dapat diakses |
8. Modem Control Register, digunakan untuk mengatur saluran pengatur modem terutama saluran DTR dan saluran RST. Berikut adalah tabel rincian bit pada Modem Control Register.
Tabel 7. Rincian bit pada Modem Control Register
| Nomor bit | Keterangan |
| 0 | Bit DTR 0 : Saluran DTR diaktifkan (aktif 0) 1 : Saluran DTR dibuat normal (tidak aktif) |
| 1 | Bit RST 0 : Saluran RST diaktifkan (aktif 0) 1 : Saluran RST dibuat normal (tidak aktif) |
| 2 | Bit OUT1, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low. Secara normal tidak digunakan |
| 3 | Bit OUT2, digunakan untuk penghubung ke perangkat lain, dapat dibuat logika high atau logika low |
| 4 | 0 : Loop back internal diaktifkan 1 : Loop back internal tidak diaktifkan |
| 5,6,7 | Diisi 0 |
9. Line Status Register, digunakan untuk menampung bit-bit yang menyatakan keadaan penerimaan atau pengiriman data dan status kesalahan operasi. Berikut adalah tabel rincian bit pada Line Status Register.
Tabel 8. Rincian bit pada Line Status Register
| Nomor bit | Keterangan |
| 0 | 1 : Menyatakan adanya data masuk pada buffer Rx |
| 1 | 1 : Data yang masuk mengalami overrum |
| 2 | 1 : Terjadi kesalahan pada bit pariti |
| 3 | 1 : Terjadi kesalahan framing |
| 4 | 1 : Terjadi Break Interrupt |
| 5 | 1 : Menyatakan bahwa register Tx telah kosong |
| 6 | 1 : Menyatakan bahwa Transmitter Shift Register telah kosong |
| 7 | Diisi 0 |
10. Modem Status Register, digunakan untuk menampung bit-bit yang menyatakan status dari saluran hubungan dengan modem. Berikut adalah tabel rincian bit pada Modem Status Register.
Tabel 7. Rincian bit pada Modem Status Register
| Nomor bit | Keterangan |
| 0 | 1 : Menyatakan adanya perubahan keadaan di saluran Clear To Send (CTS) |
| 1 | 1 : Menyatakan adanya perubahan keadaan di saluran Data Set Ready (DSR) |
| 2 | 1 : Menyatakan adanya perubahan keadaan di saluran Ring Indicator (RI) dari low ke high |
| 3 | 1 : Menyatakan adanya perubahan keadaan di saluran Receive Line Signal Detect (DCD) |
| 4 | 1 : Menyatakan saluran Clear To Send (CTS) sudah Dalam keadaan aktif |
| 5 | 1 : Menyatakan saluran Data Set Ready (DSR) sudah dalam keadaan aktif |
| 6 | 1 : Menyatakan bahwa saluran Ring Indicator (RI) sudah dalam keadaan aktif |
| 7 | 1 : Menyatakan bahwa saluran Receive Line Signal Detect (DCD) sudah dalam keadaan aktif |
Keuntungan Penggunaan Port Serial
1. Pada komunikasi dengan kabel yang panjang, masalah cable loss tidak akan menjadi masalah besar daripada menggunakan kabel paralel. Port serial mentransmisikan ‘1’ pada level tegangan -3 Volt sampai -25 Volt dan ‘0’ pada level tegangan +3 Volt sampai +25 Volt, sedangkan port paralel mentransmisikan ‘0’ pada level tegangan 0 Volt dan ‘1’ pada level tegangan 5 Volt.
2. Dibutuhkan jumlah kabel yang lebih sedikit, bisa hanya menggunakan tiga kabel, yaitu saluran Transmit Data, saluran Receive Data, dan saluran Ground (konfigurasi Null Modem).
3. Saat ini penggunaan mikrokontroller semakin popular. Kebanyakan mikrokontroller sudah dilengkapi dengan SCI (Serial Communication Interface) yang dapat digunakan untuk komunikasi dengan port serial computer.
Eko, Putra Agfianto. 2002. Teknik Antar Muka Komputer : Konsep dan
Aplikasi. Yogyakarta : Graha Ilmu.
Prasetia, Retna dan Catur Edi Widodo. 2004. Teori dan Praktek
Interfacing Port Paralel dan Port Serial Komputer Dengan Visual
Basic 6.0. Semarang : Andi Yogyakarta.
Suhata. 2004. VB Sebagai Pusat Kendali Peralatan Elektronik. Jakarta :
PT. Elex Media Komputindo.

