Interfacing kalau diartikan secara harfiah berarti ‘antarmuka’, sedangkan parallel port adalah port yang biasanya dipakai sebagai port printer dengan pinout berjumlah 25 pin (dalam istilah pasar disebut DB25 untuk konektornya). Sesuai namanya, parallel port ini sekali mentransfer data langsung ditransfer selebar 8 bit dalam satu periode. 8 Bit ini diwujudkan dalam 8 buah kabel dalam konektor DB25. Beda halnya dengan serial port yang hanya memiliki 3 kabel utama, yakni Tx (transmit), Rx (Receive) dan GND (Ground).
Sedangkan pengertian ‘interfacing parallel port’ secara teknik adalah menghubungkan dunia luar (analog) dengan dunia digital yang bekerja pada tegangan digital (0 dan +5V) melalui parallel port. Biasanya pemrograman interfacing ini digunakan untuk sistem kendali otomatis atau semi otomatis yang dikendalikan oleh sistem digital dalam hal ini adalah computer (PC/laptop/netbook/tablet) atau mikrokontroller. Contoh sederhananya adalah bagaimana kita menyalakan LED dari computer. Tentunya kita harus ‘mengeluarkan’ tegangan dari computer untuk menyalakan LED, bukan?
Seiring perkembangan parallel port/printer port secara fisik sudah mulai digantikan dengan virtual printer port via USB. Hal ini dikarenakan bentuk fisiknya yang cukup besar sehingga tidak cocok untuk laptop/netbook, dan juga karena kecepatan transfer datanya yang terbatas. Jika generasi awal parallel port data transfer rate-nya berkisar 50 – 150 kbps, sekarang dengan emulasi port USB, data transfer rate parallel port (virtual) bisa mencapai 12 Mbps. Ini tentunya merupakan perkembangan teknologi yang cukup signifikan. Jika dilihat dari perkembangan teknologinya, mode parallel port dapat diklasifikasikan sebagai berikut:
1) Compatibility Mode
2) Nibble Mode (mode transfer dengan lebar data 4 bit)
3) Byte Mode (mode transfer dengan lebar data 8 bit)
4) EPP (Enhance (Enhance Parallel Port)
5) ECP (Extended Capabilities Parallel Port)
Untuk keterangan masing-masing mode parallel port di atas bisa dicari di internet sendiri ya, saya juga pusing soalnya 🙂
Keterangan Pinout Parallel Port
Hal yang penting saat kita ingin memprogram parallel port untuk mengeluarkan data melalui parallel port adalah mengetahui fungsi/keterangan dari tiap pinout yang ada di konektor parallel port (DB25). Ibaratnya kita mau menggerakkan lengan robot ke kanan, tapi gara-gara salah pin, lengan robot jadi bergerak ke kiri. Jadi, masalah koneksi pinout adalah sangat penting dalam pemrograman ‘low level’ ini. Berikut ini adalah keterangan dari pinout parallel port dalam konektor DB25
Ada tiga buah ‘register’ dalam parallel port yang dinamakan
1) Data lines (data bus) register
2) Control lines register
3) Status lines register
Data lines register digunakan sebagai data bus dan bersifat sebagai data output, Control lines register digunakan sebagai control handshaking dengan device printer dan bersifat sebagai port output, dan terakhir Status lines register berfungsi untuk mengetahui info status yang dikirim sensor printer dan bersifat sebagai port input. Pada register Control Lines dan Status Lines ada pin yang bersifat inverter atau berkebalikan. Jadi jika Anda mengeluarkan data logic ‘0’ maka level tegangan yang keluar akan bernilai +5V atau logic ‘1’. Berikut adalah keterangan masing-masing pinout.
Pin No (DB25) | Signal name | Direction | Register – bit | Inverted |
1 | nStrobe | Out | Control-0 | Yes |
2 | Data0 | In/Out | Data-0 | No |
3 | Data1 | In/Out | Data-1 | No |
4 | Data2 | In/Out | Data-2 | No |
5 | Data3 | In/Out | Data-3 | No |
6 | Data4 | In/Out | Data-4 | No |
7 | Data5 | In/Out | Data-5 | No |
8 | Data6 | In/Out | Data-6 | No |
9 | Data7 | In/Out | Data-7 | No |
10 | nAck | In | Status-6 | No |
11 | Busy | In | Status-7 | Yes |
12 | Paper-Out | In | Status-5 | No |
13 | Select | In | Status-4 | No |
14 | Linefeed | Out | Control-1 | Yes |
15 | nError | In | Status-3 | No |
16 | nInitialize | Out | Control-2 | No |
17 | nSelect-Printer | Out | Control-3 | Yes |
18-25 | Ground | – | – | – |
Lalu, bagaimana cara ‘menghubungi’ tiap-tiap register? Secara fisik, tiap register sudah diberi alokasi port address sendiri-sendiri. Jadi jika kita berbicara mengenai ‘parallel port’, maka sebenarnya akan ada 3 port fisik di sana, yakni
Register | Port address (LPT1) |
Data lines | 378 H (heksa) |
Status lines | 379 H |
Control lines | 37A H |
Jadi misalnya jika Anda ingin ‘mengeluarkan’ data di parallel port untuk menghidupkan/menggerakkan beban maka Anda harus tentukan di port mana data akan dikeluarkan (misal di port 378H), di pin nomor berapa data tersebut akan keluar (misal di pin no 2), dan terakhir bagaimana data tersebut menggerakkan beban (perlu driver atau tidak).
Apa dan bagaimana implementasi pemrograman interfacing parallel port dengan bahasa Delphi bisa Anda pelajari pada artikel berikutnya. Happy programming 🙂
bersambung…….
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
mana mas lanjutannya…
menarik tuh…
tunggu tanggal mainnya mas
*susah cari PC yg ada paralel port-nya
Ditunggu mas