Interfacing Parallel Port Dengan Delphi (Bagian 1)

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?

Parallel Port

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

pinout parallel port

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…….

2 Comments

Add a Comment

Your email address will not be published. Required fields are marked *