Jumat, 04 Mei 2012

DASAR-DASAR KOMUNIKASI SERIAL


Saat dimana komputer berkomunikasi dengan dunia luar, semua dilakukan dengan data berukuran byte. Dan hal sama, seperti printer, informasi data secara langsung dilakukan melalui BUS data 8-bit ke BUS data 8-bit milik printer. Hal ini dapat bekerja selama jarak tidak sangat jauh, mengingat jarak kabel yang panjang akan mengurangi (mengganggu) kualitas sinyal. Kabel yang buruk dan sangat panjang akan membuat logika palsu, dan data menjadi berubah tidak seperti semestinya. Disamping itu, hubungan data 8-bit menjadi sangat mahal, karena dibutuhkan kualitas kabel yang sangat baik dan jumlah lebih banyak. Untuk alasan ini, komunikasi serial digunakan untuk mentransfer data antara dua system dengan jarak yang sangat jauh mulai dari beberapa puluh meter sampai ribuan kilometer. Gambar dibawah menampilkan bagan dari transfer data serial dan parallel.
 
Gambar  Transfer Data Serial dan Parallel


Komunikasi Serial dapat digunakan untuk menggantikan Komunikasi Parallel jalur data 8-bit dengan baik. Tidak saja memakan biaya yang lebih murah, namun dapat digunakan untuk menghubungkan dua peralatan yang sangat jauh. Misalnya menumpang pada kabel telepon.
Agar komunikasi serial dapat bekerja dengan baik, data byte harus diubah ke dalam bit-bit serial menggunakan peralatan yang disebut shift register parallel-in serial-out, kemudian data dikirimkan hanya dengan satu jalur data saja. Hal yang serupa dikerjakan pada penerima, dimana penerima harus mengubah bit-bit serial yang diterimanya menjadi data byte yang persis seperti data semula pada pengirim, dengan menggunakan shift register serial-in parallel-out. Tentu saja jika data serial tersebut dikirim menumpang jalur telpon, maka dibutuhkan peralatan pengubah status digital 0s atau 1s menjadi sinyal suara audio. Peralatan seperti ini kemudian disebut modem (modulator/demudulator). Modulator sebagai pengubah sinyal digital menjadi sinyal audio, sebaliknya Demodulator adalah sebagai mengubah kembali sinyal audio menjadi sinyal digital.
Pada jarak yang sangat dekat, kita dapat menggunakan komunikasi serial sederhana dan tidak perlu modulasi. Seperti yang dapat kita lihat pada hubungan komputer kita dengan keyboard atau mouse.
Komunikasi data serial mengenal dua buah metode, yaitu synchronous dan asynchronous. Metode sychronous mengirimkan datanya beberapa byte atau karakter (atau disebut blok data) sebelum meminta konfirmasi apakah data sudah diterima dengan baik atau tidak. Sementara metode asynchronous data dikirim satu byte setiap pengiriman. Biasanya tidak dibutuhkan konfirmasi menerimaan data. Dari kedua jenis metode tersebut dapat dipilih dan dilakukan lewat program. Tentu saja dibutuhkan program yang baik dan teliti untuk melakukannya. Namun dewasa ini proses pengiriman data serial tersebut sudah dilakukan oleh sebuah chip tersendiri (Hardware). Salah satu chip disebut UART (Universal Asynchronous Reciever Transmiter) dan satunya lagi disebut USART (Universal Synchronous Asynchronous Reciever Transmiter). Dalam protokol berbeda, sychronous memerlukan sinyal tambahan yang digunakan untuk men-sychron-isasi setiap denyut dari proses transfer.

  
Gambar Transfer Data Simplex, Half-, dan Full-Duplex.

Komunikasi Half- dan Full-Duplex

Dalam trnasimisi data, jika data dapat dikirim dan diterima, ini dinamakan transmisi duplex. Sangat berbeda dengan transmisi simplex, misalnya pada printer, dimana printer hanya bisa menerima data. Tranmisi duplex dapat digolongkan menjadi half-duplex dan full-duplex, tergantung pada bisa tidaknya transfer data dua arah sekaligus. Jika data dikirmkan satu arah saja, maka dinamakan half-duplex. Jika data dapat menuju dua arah dalam waktu yang bersamaan, disebut full-duplex. Tentu saja, full-duplex membutuhkan penghubung dua kabel yang digunakan sebagai saluran datanya, satu kabel untuk mengirim data, satu kabel untuk menerima data, dan satu lagi untuk ground yang digunakan bersama.

Komunikasi serial Asynchronous dan Data Framing
Setiap data yang diterima pada komunikasi serial adalah memiliki sinyal 0s dan 1s. Hal ini akan sangat sulit untuk menentukan sebuah data kecuali antara pengirim dan penerima sepakat dengan protokol, yaitu bagaimana data dikemas (packet), berapa bit yang digunakan untuk satu karakter, dan kapan data tersebut mulai dan selesai dikirim.

Bit Start dan Bit Stop
Komunikasi data serial Asynchronous sekarang sudah digunakan demikian luas untuk transmisi yang berorientasi karakter, sementara metode Synchronous digunakan untuk transmisi yang berorientasi blok. Pada mode Asynchronous, setiap karakter ditempatkan berada diantara bit start dan bit stop. Bit start selalu satu bit, tapi stop bit bisa satu bit atau dua bit. Start bit selalu 0 (low) dan stop bit selalu 1 (high). Contohnya, lihat pada gambar dibawah ini yang dimana karakter A (01000001 biner) dikemudian dibingkai (dikurung) oleh start bit dan satu stop bit. Harap dicatat, LSB dikirim terlebih dahulu.

Gambar Pembingkaian ASCII "A" (41h)
 
 
Ingat pada gambar Diatas saat tidak transfer, sinyal (jalur kabel) selalu dalam keadaaan 1 (high), yang disebut mark (tanda). Sedang 0 (rendah) diartikan space. Bahwa transmisi pertama dimulai dengan start bit, yang kemudian diikuti oleh D0, LSB, dan diikuti oleh bit-bit yang lain, sampai MSB(D7), dan akhirnya bit stop yang menanndakan akhir dari karakter "A".

Pada komunikasi serial Asynchronous, peralatan dan modem dapat diprogram untuk menggunakan lebar data 7 atau 8-bit. Tentu saja ditambah dengan Stop bit. Dahulu, system karakter ASCII masih terbatas pada data 7-bit, namun sekarang ASCII extended sudah lazim menggunakan lebar data 8-bit. Pada peralatan kuno, dengan komponen-komponen yang lambat pula, dibutuhkan stop bit yang agak panjang, hal ini dimaksudkan untuk memeberi kesempatan peralatan untuk menangani data yang telah diterimanya, dan untuk mempersiapkan diri untuk menerima byte berikutnya. Namun sekarang modem PC kita dewasa ini biasanya hanya menggunakan satu bit stop. Jika kita hitung, dengan menggunakan satu bit stop total kita memiliki 10-bit untuk setiap karakter 8-bit. Dengan kata lain setiap karakter 8-bit dikirim bersama-sama start dan stop bit sehingga total menjadi 10-bit, yang artinya ada proses transfer lebih panjang 20% setiap karakternya.

Pada system yang sangat mementingkan integritas data yang disimpan, maka ditambahkanlah bit paritas kepada bingkai data tersebut. Maksudnya untuk setiap karakter 8-bit kita masih menambahkan bit paritas disamping bit start dan bit stop. Sehingga total adalah 11-bit. Adapun bit paritas adalah bit yang menunjukkan bahwa data yang dimaksud adalah memiliki jumlah bit 1s (high) ganjil atau genap. Bit paritas adalah bit di luar data yang bersangkutan atau merupakan tambahan. Chip UART khusus biasanya sudah dilengkapi dengan keperluan paritas tersebut secara hardware. Bahkan ada beberapa pilihan untuk penanganan paritas ini, misalnya odd-, even- dan no-parity.


Data tranfer rate 

Kecepatan tranfer data pada komunikasi data serial diukur dalam satuan BPS (bits per second). Sebutan terkenal lainnya adalah baud rate. Namun Baud dan bps tidak serta merta adalah sama. Hal ini mengacu kepada fakta bahwa baud rate adalah terminology modem dan diartikan sebagai perubahan signal dalam satuan bit signal setiap detik. Sedang data tranfer rate penamaannya mengacu pada jumlah bit dari byte data yang ditransfer setiap detik.

Sementara itu kecepatan transfer data (data transfer rate) pada komputer tergantung pada jenis komunikasi yang diberlakukan atasnya. Seperti contoh, komputer PC-IBM model kuno dapat mentransfer data mulai dari 100 s/d 9600 bps. Namun pada saat sekarang kecepatan komunikasi serial menjadi sangat pesat. 56.000 bps kemudian menjadi standar kecepatan pada modem. Namun para perancang komputer sepakat untuk membatasi kecepatan pada komunikasi serial Asynchronous hanya setinggi 100.000 bps. Untuk kecepatan yang lebih tinggi mode Synchronous kemudian menjadi pilihan.
Pada 8051 kita hanya membahas tentang masalah komunikasi serial dengan mode Asynchronous yang sudah ada pada chip tersebut.

Standar RS232

Untuk mendapatkan keserba-cocokan (compatibility) dari beberapa peralatan komunikasi data dari berbagai pabrik, diciptakanlah standar tatap-muka (interfacing) yang dinamakan RS232. Standar ini dipublikasikan oleh EIA (Electronics Industries Association) pada 1960. Dan pada 1963 standar itu dimodifikasi dengan nama RS232A. RS232B dan RS232C ditetapkan pada tahun masing-masing 1965 dan 1969. Pada buku ini kita akan mengacu pada standar RS232 paling dasar. Sekarang Standar RS232 masih menjadi standar dunia mengenai standar tatap-muka I/O komunikasi serial. Bahkan standar ini masih dipakai dan digunakan pada komputer PC kita.
Karena standar ini sudah dupublikasikan jauh lebih lama dari standar TLL, standar yang diciptakan saat komputer masih dibuat dari tansistor, relay dan tabung hampa, sehingga standar ini sama sekali tidak kompatibel dengan standar keluarga logika TTL yang diciptakan belakangan. Pada RS232, 1s (high) direpresentasikan dengan tegangan -3 s/d -25V, dan 0s (low) direpresentasikan sebagai +3 s/d +25V. Sedang diantara -3 dan +3V dianggap sebagai status mengambang dan tidak dianggap. Atas alasan ini, untuk menghubungkan 8051 yang ber-standar TTL dengan komputer (atau alat lain) yang menggunakan RS232, kita harus menggunakan peralatan tambahan misalnya dengan chip MAX232 untuk mengkonversi level TTL ke RS232 dan level RS232 ke level TTL.
Walaupun RS232 sudah mulai ditinggalkan, kita masih bisa berbangga bahwa standar ini masih dijadikan standar dasar bagi standar-standar yang lebih maju, misalnya USB, SATA, Packet Data dll. Sehingga sangat bermanfaat mempelajari standar RS232 ini sebelum mempelajari standar yang lainnya.
 

0 komentar:

Posting Komentar