TEKNIK ANTAR MUKA (INTERFACING) Mashoedah, MT
ANTARMUKA /INTERFACING ?
Satu sistem ke sistem yang lain computer to computer Computer to another
Dimana terjadi Antarmuka ? Komputer = Mikrokontroler = ……….
PORT ?
Port “Port” adalah “pintu” hubungan (konektor) antara komponen peripheral dengan mainboard Beberapa port langsung berhubungan dengan bus yang terkait (mis: USB, Firewire, AGP) Port-port tradisional yang biasanya ada di mainboard: Serial port : transmisi data secara serial (mis: modem) Parallel port: transmisi data secara parallel (mis: printer)
PORT PARALEL
Behind your PC (mburine komputermu)
Parallel port modes The IEEE 1284 Standard which has been published in 1994 defines five modes of data transfer for parallel port. They are, 1) Compatibility Mode 2) Nibble Mode 3) Byte Mode 4) EPP(Enhance Parallel Port) 5) ECP(Extended Capability Port)
Tujuan Standarisasi ini adalah untuk mendesain driver dan peralatan yang baru sehingga kompatibel dengan peralatan lainnya dan standard parallel port sebelumnya (SPP) yang diluncurkan pada tahun 1981.
Mode Kompatibilitas, Nible, dan Byte digunakan sebagai standard perangkat keras yang tersedia di port parallel original. Sedangkan untuk EPP dan ECP membutuhkan tambahan hardware sehingga mampu bekerja dengan kecepatan tinggi.
Mode Kompatibilitas atau sering disebut “Centronics” hanya dapat mengirimkan data pada arah maju (dari Host ke device external) dengan kecepatan 50 Kbyte sampai 150 Kbyte perdetik. Untuk menerima data harus diubah modenya menjadi mode Nibble atau Byte. Mode Nibble dapat menerima data 4 bit (Nibble) sedangkan mode Byte dapat menerima data 8 bit (1 byte).
Hardware The pin outs of DB25 connector is shown in the picture below
ALAMAT PORT PARALEL Alamat (dalam format Hexa) 3BC-3BF = Digunakan untuk Port Parallel yang terpadu dengan kartu – kartu Video, tidak mendukung – mendukung alamat alamat ECP Alamat (dalam format Hexa) 378-37F = Biasa digunakan untuk LPT1 Alamat (dalam format Hexa) 278-27F = Biasa digunakan untuk LPT2
Alamat dasar 3BCh pertama kali diperkenalkan sebagai alamat port parallel pada card – card video lama.LPT1 biasanya memiliki alamat dasar 378, sedangkan alamat LPT2 adalah 278. ini adalah alamat umum yang biasa dijumpai, namun alamat dasar ini bisa berlainan antara satu komputer dengan komputer lainnya.
Setelah diketahui alamat dari port parallel, maka dapat ditentukan alamat Data Register, Control Register dan Status Register. Alamat Data Register adalah base address dari port parallel tersebut, alamat Status Register adalah (base address + 1), sedangkan alamat Control Register adalah (base address +2).
List dibawah adalah tabel alamat untuk DP, PC dan PS dengan LPT mempunyai base address 378h LPT1 DP = Alamat Register &H378 / 888 LPT1 PS = Alamat Register &H379 / 889 LPT1 PC = Alamat Register &H37A / 890
Register - register Port Parallel Register Data Port Parallel ( 378h ) Register Status Port Parallel ( 379h ) Register Kontrol Port Parallel ( 37Ah ) Bit 7 (Data7) (Busy’) (Not Used) Bit 6 (Data 6) (Ack) Bit 5 (Data 5) (Paper Out) (Aktivasi Port Dwi Arah) Bit 4 (Data 4) (Select) (Aktivasi IRQ melalui jalur Ack) Bit 3 (Data 3) (Error) (Select In’) Bit 2 (Data 2) (IRQ’) (Reset / Inisialisasi) Bit 1 (Data 1) (Autofeed’) Bit 0 (Data 0) (Strobe’)
PENGAKSESAN PORT PARALEL Untuk komunikasi atau antarmuka antara PC dengan peralatan IO salah satu cara adalah dengan memanfaatkan File .DLL (dynamic Link Library)
File DLL untuk akses Port Ada dua jenis yang bisa kita pilih yaitu misalnya: Win95IO.DLL (hanya bisa dipakai pada OS win98 ke bawah,) inpout32.dll (bisa dipakai baik di win98 maupun win XP,) Untuk versi yang lainya, atau untuk keperluan lainya bisa dilihat di sini.. Khusus untuk inpout32.dll bisa berjalan di win 98, win xp, vb.6 dan VB.NET. File dll yang akan digunakan dicopykan ke directory windows/system
Deklarasi File .dll Win95IO.dll Private Declare Sub vbOut Lib “WIN95IO.DLL” (ByVal nPort As Integer, ByVal nData As Integer) Private Declare Function vbInp Lib “WIN95IO.DLL” (ByVal nPort As Integer) As Integer
inpout32. dll Private Declare Sub Out32 Lib “inpout32 inpout32.dll Private Declare Sub Out32 Lib “inpout32.dll” (ByVal nPort As Integer, ByVal nData As Integer) Private Declare Function Inp32 Lib “inpout32.dll” (ByVal nPort As Integer) As Integer
IO.dll dari buku Merah Private Declare sub Port_Out lib “Port_IO.dll” (ByVal nPort As Integer, By Val nData As Byte) Private Declare Function Port_In lib “Port_IO.dll” (ByVal nPort As Integer) As Byte
Perintah-perintah untuk Mengakses Port Win95IO.dll Masukan : X = vbInp(Port) contoh: X = vbInp(&H378) Keluaran : vbOut port, Nilai contoh: vbOut &H378, 20
inpout32.dll Masukan : X = Inp(Port) contoh: X = Inp(&H378) Keluaran : Out port, Nilai contoh: Out &H378, 20 Private Sub command1_click() text1.text =inp(&h379) End sub
Port_IO.dll dari buku merah Untuk perintah masukan: X=Port_In(Alamat_Port) Contoh : X=Port_In(888) X adalah variabel untuk data yang diambil dari alamat port.
Untuk mengeluarkan data di port: Port_Out (Alamat_Port), (Nilai) Contoh: Port_Out 888, 2 ‘Yang berarti mengeluarkan data 00000010b di port 888 atau &H378
Bagaimana, dimana deklarasi ? Buka VB 6.0 Sorot layar projects explorer Klik kanan Sorot add Klik modul Klik new modul, open Tulis list program deklarasi diatas selesai