Komunikasi Seri Asinkron
Komunikasi seri asinkron ikut populer seiring dengan makin maraknya Internet, modem yang dipakai menghubungkan komputer rumah ke Internet lewat saluran telepon menyalurkan data secara Komunikasi Seri Asinkron.
Komunikasi Seri Asinkron Pada Mikrokontroler
Microprocessor dalam komputer bekerja atas dasar prinsip data paralel, mula-mula banyak dipakai microprocessor dengan data paralel 8 bit dan kini sudah dipakai data pararel 32 bit, tapi dalam hal komunikasi data yang dipakai adalah teknik pengiriman data secara seri.
Alasan utama pemakaian teknik pengiriman seri karena saluran komunikasi data pararel yang panjang harganya sangat mahal dan tidak praktis. Sinyal digital dari IC TTL (Transistor Transistor Logic) paling-paling bisa dikirimkan sejauh 1 sampai 2 meter tergantung kecepatan pengiriman data. Agar bisa dikirimkan lebih jauh, sinyal TTL tadi harus di-buffer dengan rangkaian buffer khusus, beaya pengolahan sinyal ini cukup mahal. Untuk mengirim data secara paralel diperlukan satu saluran untuk setiap bit data, dengan demikian pengiriman data paralel 8 bit, membutuhkan beaya 8 kali lebih mahal dibandingkan dengan komunikasi data secara seri yang hanya perlu satu saluran saja.
Dengan demikian, meskipun kecepatan transmisi data dengan teknik komunikasi data secara paralel lebih cepat, teknik komunikasi data seri tetap dipilih untuk transmisi data jarak jauh.
Ada 3 hal yang harus diperhatikan dalam transmisi data seri. Pertama, cara merubah data paralel jadi seri dan mengembalikan data seri ke paralel. Kedua, jenis-jenis sinyal dan rangkaian yang dipakai untuk transmisi sinyal jarak jauh. Ketiga, bagaimana mengendalikan transmisi data tersebut agar data bisa transmisikan utuh tanpa cacat.
Perubahan data paralel/seri
Karena microprocessor mengolah data secara paralel, maka proses transfer data secara seri harus diawali dan diakhiri dengan bentuk data paralel. Artinya data dari microprocessor yang bentuknya paralel diubah menjadi data seri, dikirimkan, setelah diterima diubah kembali menjadi paralel.
Perubahan data paralel ke seri bisa dilakukan secara mudah dengan bantuan Shift Register, Gambar 1 memperlihatkan proses perubahan ini. Shift Register yang dipakai adalah jenis Shift Register input paralel/output seri, misalnya IC CMOS type MC14021, data paralel 8 bit diumpankan ke input paralel shift register, kemudian di bangkitkan 8 pulsa clock untuk mendorong keluar data di dalam shift register, data akan terdorong keluar dari shift register bit demi bit, 1 pulsa clock akan mendorong data 1 bit.
Dengan demikian pada satu saluran bisa dipakai menampung data 8 bit, saat pulsa clock yang pertama bit D0 berada di saluran selama 1 periode clock, saat pulsa clock kedua bit D1 yang berada di saluran dan seterusnya sama pulsa clock kedelapan.
Menerima data seri dan mengubahnya kembali ke bentuk paralel, merupakan proses kebalikan dari proses di atas. Shift Register yang dipakai adalah jenis Shift Register input seri/output paralel, misalnya IC CMOS type MC14094, data seri diumpankan ke input seri dan didorong masuk ke shift register, setelah 8 pulsa clock data kembali menjadi bentuk paralel di 8 output shift register.
Transmisi data seri dibedakan menjadi 2 macam, yakini komunikasi data seri sinkron dan komunikasi data asinkron, perbedaan ini tergantung pada clock pendorong data. Dalam komunikasi data seri sinkron, clock untuk shift register ikut dikirimkan bersama dengan data seri, seperti yang dijumpai di Keyboard Komputer PC, teknik I2C yang dikembangkan Philips dan juga pengiriman data dalam Ethernet. Sebaliknya dalam komunikasi data seri asinkron, clock pendorong shift register tidak ikut dikirim, rangkaian penerima data harus dilengkapi dengan rangkaian yang mampu membangkitkan clock yang diperlukan.
Ada IC khusus yang dibuat untuk mengubah data paralel dan menjadi data seri, dan menerima data seri yang kemudian dirubah kembali menjadi data paralel, IC tersebut dinamakan IC Universal Asynchronous Receiver/Transmitter (UART). Selain berbentuk sebagai IC mandiri, pada berbagai macam microcontroler ada yang dilengkapi UART, misalnya keluarga microcontroler MCS51 (termasuk AT89C2051), microcontroler MC68HC11 buatan Motorola dan lain sebagainya.
Bagian yang terpenting dari komunikasi seri asinkron adalah upaya agar penerima data bisa membangkitkan clock yang bisa dipakai untuk mendorong shift register penerima. Unuk keperluan tersebut terlebih dulu ditentukan bahwa saat tidak ada pengiriman data, keadaan saluran adalah ‘1’, saat akan mulai mengirim data 1 byte saluran dibuat menjadi ‘0’ dulu selama 1 periode clock pendorong, dalam 8 periode clock berikutnya dikirim data bit 0, bit 1 dan seterusnya sampai bit 8, dan pada periode clock yang ke 10 saluran dikembalikan menjadi ‘1’.
Dengan demikian data 8 bit yang dikirim di-awal-i dengan bit START yang bernilai ‘0’ dan di-akhir-i dengan bit STOP yang bernilai ‘1’, seperti terlihat dalam Gambar 2. Kemasan data ini dimaksud agar rangkaian penerima bisa membangkitkan clock yang frekuesinya sama dengan clock pengirim dan fasanya di-sinkron-kan pada awal penerimaan data 1 byte!
Catatan : Gambar 2 merupakan bentuk gambar yang umum dipakai menggambarkan format data seri dalam banyak buku, meskipun sebetulnya cara penggambaran ini terbalik, bit START yang pertama-tama dikirimkan malah digambarkan dibagian kiri dan bit STOP yang munculnya terakhir digambarkan dibagian kanan.
Saluran komunikasi data seri
Seperti yang dibicarakan di atas, sinyal digital dari IC TTL paling-paling hanya bisa ditransmisikan sejauh satu-dua meter, untuk pengiriman yang lebih jauh sinyal harus diolah dan disalurkan dengan cara khusus. Pada umumnya dikenal 3 macam saluran untuk transmisi data seri, yakni saluran yang memenuhi ketentuan standard EIA RS232, saluran yang memeuhi ketentuan standard EIA RS422/485 atau saluran arus 20 mA (20 mA current loop).
Standard EIA RS232 pertama kali di dipublikasikan pada tahun 1962, merupakan sebuah standard yang ‘tua’, sudah ada jauh sebelum IC TTL populer. Saluran RS232 banyak dipakai untuk menghubungkan komputer dengan alat pendukungnya, misalnya komputer dengan printer (sekarang hampir tidak ada printer seri), komputer dengan modem, pokoknya adalah hubungan antara alat yang tidak lebih jauh dari 50 feet (sekitar 15 meter).
Dalam ketentuan RS232, level logika ‘0’ dinyatakan dengan tegangan antara –3 sampai –15 Volt, dan level logika ‘1’ dinyatakan dengan tegangan antara +3 sampai +15 Volt. Mengingat komponen digital pada umumnya bekerja dengan sumber tegangan +5 Volt, dan level logika ‘0’ dinyatakan dengan tegangan antara 0,8 sampai 0 Volt dan level logika ‘1’ dinyatakan dengan tegangan 3,5 sampai 5 Volt, maka antara rangkaian digital dan saluran RS232 biasanya disisipkan IC ‘RS232-TTL Voltage Translator’, dulu yang banyak dipakai adalah IC MC1488 dan MC1489, kedua IC ini memerlukan sumber tegangan +12 Volt dan –12 Volt, kini ornag lebih senang memakai IC MAX232 yang hanya perlu catu daya +5 Volt saja.
Dalam saluran RS232 level logika ditransmisikan sebagai perbedaan tegangan antara saluran dan Ground, cara semacam ini dikatakan sebagai unbalanced transmission (transmisi tidak imbang), dalam perjalanan jika sinyal menerima gangguan derau listrik (electrical noise), bisa berakibat fatal pada penerima karena derau yang diterima bisa disalah tafsirkan sebagai sinyal digital.
Standard lain yang dikenalkan EIA adalah RS422, saluran ini menggunakan cara transmisi berimbang (balance transmission), sinyal TTL disalurkan lewat IC Line Driver yang mengeluarkan sinyal diffrential pada outputnya, level logika tidak dinyatakan dengan perbedaan tegangan dengan ground, tapi dinyatakan dengan perbedaan tegangan antara kedua sinyal output itu, selanjutnya sinyal ini akan diterima oleh IC Line Receiver yang mempunyai input diffrential yang akan merubah sinyal diffrential tapi ke sinyal TTL.
Dengan cara semacam ini, jika dalam perjalanan sinyal menerima derau listrik, kedua utas dalam saluran akan mendapat sinyal derau yang sama besarnya, sinyal derau yang sama besar ini bagi input diffrential di IC Line Receiver tidak akan dirasakan sebagai sinyal digital, sehingga saluran ini lebih kebal gangguan dibanding dengan saluran RS232.
Untuk meningkatkan kekebalannya terhadap ganguan, kabel yang dipakai untuk saluran RS422 biasanya dipakai dua kabel yang dililit jadi satu, dengan maksud jika sampai mendapat gangguan maka gangguan yang diterima kedua kabel yang dililit itu benar-benar sama besarnya, sehingga selisih tegangannya derau antara dua kabel benar-benar nol dan tidak dirasakan sebagai gangguan.
Dengan cara balance transmission ini, RS422 bisa dipakai untuk menyalurkan informasi dengan kecepatan yang lebih tinggi, dan jarak yang bisa dijangkau pun mencapai 4000 feet! Bandingkan dengan RS232 yang hanya bisa dipakai sampai 50 feet!
Jenis saluran ketiga adalah 20 mA Current Loop (saluran arus 20 mA), saluran ini termasuk dikenal sebagai saluran kuno, kini tidak lagi banyak dipakai. Meskipun demikian karena sifat saluran ini yang sangat kebal terhadap gangguan, pada lingkungan pabrik yang mengandung sumber gaangguan derau listrik yang sangat besar, saluran ini tetap digunakan.
20 mA Current Loop berbeda prinsip dengan saluran RS232 dan RS422/485, karena informasi disalurkan sebagai ada tidaknya arus. Gambar 3(c) merupakan rangkaian saluran current loop, sinyal TTL dipakai untuk mengatur transistor, jika transistor on maka arus akan mengalir dari V+ melalui resistor dan membuat LED di dalam Opto Coupler yang ada di bagian penerima menyala, yang pada gilirannya membuat transistor on. Bisa dibayangkan, sebesar-besarnya tegangan derau yang diterima saluran, hampir tidak mungkin menimbulkan arus yang cukup besar sampai LED bisa menyala, dengan demikian menjadikan saluran ini sangat kebal terhadap gangguan.
Tidak ada standard yang mengatur saluran arus ini, makin besar tegangan V+ makin besar pula arus yang mengalir (idealnya sampai 20 mA) maka saluran makin kebal terhadap gangguan. Kecepatan saluran sangat tergantung pada mutu opto coupler yang dipakai, meskipun demikian pada umumnya saluran arus ini bisa dipakai dengan aman paling tidak sampai sejauh 1000 feet.
Pengendalian saluran komunikasi
Setelah 2 aspek yang menyangkut perangkat keras di atas, aspek berikutnya yang menentukan berhasilnya komunikasi data seri adalah pengendalian saluran komunikasi, apek ini lebih banyak mengarah ke perangkat lunak.