Saya sedang mempelajari tentang seluk-beluk mikroprosesor, dengan ini mohon diterang-jelaskan tentang contact bounce pada push-button switch dari keyboard, dan tentang pengertian handshaking.
Puji Santoso, Surabaya
Jawab:
Contact bounce merupakan gejala yang terjadi ketika switch mekanik menutup, atau membuka, yang menghubungkan antara tegangan catu logik 1 dengan masukan dari suatu gerbang logika. Secara teoritis rangkaian switching seperti ini tidak keliru. Tapi, dalam prakteknya pada saat switch mekanik itu menutup, jarang terjadi penutupan kontak yang mulus. Karena permukaan kontak itu selalu bergetar (bounce) beberapa kali satu sama lain sebelum kontak-kontak itu dapat menutup dengan rapat.
Contact bounce seperti itu tidak diinginkan dalam semua macam sambungan yang menggunakan, misalnya, push-button switch, kontak relai, limit switch. Contohnya, bila push-button switch dari keyboard ditekan, maka berarti ada sinyal masukan digital yang diterima oleh CPU komputer. Bila ada gejala contact bounce, CPU akan menerima sinyal masukan yang tidak benar lagi.
Contact bounce dapat dihindari dengan dua cara. Yaitu secara perangkat keras dan secara perangkat lunak. Secara perangkat keras ada dua cara. Yang pertama antara switch dan port masukan dipasang yang dinamakan capacitive switch filter. Filter itu harus mampu menerima masukan yang bergetar sehingga menhasilkan keluaran yang mulus. Kemudian cara yang kedua dengan memasang bounce eliminator yang terdiri dari multivibrator monostabil di antara switch dan port masukan itu.
Tapi bagaimana pun, untuk menghindari contact bounce itu akan lebih mudah dan murah bila diatasi secara perangkat lunak. Untuk mengatasi bounce contact itu diperlukan pemilihan kecepatan yang tepat, dimana perangkat lunak itu sekilas dapat membaca switch. Katakan misalnya push-button switch dari keyboard itu terbaca sekilas oleh perangkat lunak setiap 100 milidetik, atau kurang, maka berarti tidak lebih dari satu getaran yang dapat terdeteksi.
Sekarang mengenai handshaking. Handshaking adalah metoda pengaturan arus informasi, misalnya, di antara mikroprosesor dengan piranti I/O (input/output) yang sedang berkomunikasi. Kebanyakan piranti I/O menerima atau mengirim informasi dengan kecepatan yang jauh lebih lambat dibandingkan dengan mikroprosesor. Misalnya, sebuah printer mampu mencetak hanya 100 karakter per detik (character per second), maka perangkat lunak untuk mencetak informasi harus memperlambat kecepatan mikroprosesor disesuaikan dengan kecepatan printer. Jadi, metoda handshaking itu bertujuan untuk mensinkronkan kecepatan piranti I/O dengan mikroprosesor.
Misalkan sebuah komputer akan mengirim informasi untuk dicetak ke printer. Maka komputer mengirim permintaan izin mengirim informasi (request to send), untuk memastikan bahwa printer telah menyelesaikan pencetakan informasi yang dikirim sebelumnya. Kemudian menunggu sampai ada jawaban dari printer untuk mengizinkan mengirim data (ready to send). Baru komputer itu mengirim informasi yang akan dicetak. Setelah informasi diterima seluruhnya, printer akan mengirimkan sinyal acknowledgement sebagai pernyataan bahwa informasi telah diterima dengan baik. Dengan diterimanya sinyal acknowledgement oleh komputer, maka selesailah sudah protokol komunikasi antara komputer dengan printer. Protokol komunikasi ini mirip seperti orang berjabat tangan untuk menyatakan persetujuannya dalam suatu transaksi. Dari sinilah istilah handshaking itu berasal.