Kamis, 07 Juni 2012

Alamat Perangkat Keras Port I/O

 1. Fungsi dan Jenis-Jenis Port Pada Komputer
Port merupakan colokan yang terpasang di bagian belakang case yang berfungsi sebagai penghubung antara komponen di dalam unit system dengan piranti diluar, sebagai contoh, port untuk menghubungkan camera digital, monitor, mouse dsb.
Port dikelompokkan menjadi beberapa bagian yaitu ; Port Serial, Port Parallel, Port USB, port SCSI, Port
Infra merah serta port-port yang lain.
a. Port Serial
Biasa digunakan untuk melakukan tranmisi data yang beroreintasi pada pengiriman sebuah bit per waktu, kareana sifatnya demikian pegiriman data berjalan agak lambat, biasanya digunakan untuk mengoneksi piranti seperti : printer, mouse, modem, PLC (programmable Logic controller), pembaca kartu maknetik dan pembaca barcode. Port ini sering dinyatakan dengan nama COM. Konektor yang digunakan adalah RS-232C dengan 9 pin atau 25 pin
b. Port Parallel
Port Parallel atau sering disebut port LPT bekerja atas dasar 8 bit perwaktu, cocok untuk pengiriman data dengan cepat, tetapi dengan kabel yang pendek (tidak lebih dari 15 kaki). Umumnya digunakan untuk printer parallel, hard disk eksternal dan zip drive. Konektor yang digunakan adalah DB-25 yang terdiri dari 25 pin
c. Port USB
Port USB merupakan port yang akhir-akhir ini sangat populer digunakan, yang dapat digunakan untuk menghubungkan berbagai piranti seperti camera digital, printer, scanner, zip drive dan sebagainya, port ini mempunyai kecepatan tinggi bila dibandingkan dengan port serial maupun port paralel
d. Port SCSI
Port SCSI adalah Small Compter System Interface yang merupakan jenis port yang memungkinkan koneksi antar piranti dalam bentuk sambung menyambung. Port mempunyai kecepatan tinggi, dengan kecepatan tranfernya 32 bit per waktu, biasa digunakan untuk menghubunkan hard drive, scanner, printer dan tape drive, konektor yang digunakan adalah DB-25 dan 50 pin Centronics SCSI.
e. Port Infra Merah
Port ini digunakan untuk mendukung hubungan tanpa kabel, misalnya untuk menghubungkan mouse yang menggunakan infra merah sebagai media tranmisi, mengirim data dari ponsel, dan sebagainya
f. Port-Port Lain
Banyak port lain yang tidak tergolong pada port-port diatas, misalnya port untuk monitor, port keyboard, port mouse, port speaker, port jaringan, port dll
 PORT USB

Universal Serial Bus (USB) : Sebuah bus I/O (input/output) yang dapat mentransfer data hingga 12 megabit per detik.
Selamat tinggal port paralel dan serial yang lamban, kini jamannya Universal Serial Bus (USB). Lebih cepat, lebih kuat dan lebih fleksibel serta benar-benar berazaskan Plug and Play (bukan lagi Plug and Pray). Bahkan USB versi 2.0 yang baru saja dikeluarkan mampu memberikan tingkat kinerja dan kecepatan yang sebanding dengan bus berkecepatan tinggi semacam IEEE 1394. Beberapa hal yang perlu Anda ketahui tentang USB:
Lebih cepat dibanding port paralel atau serial dengan kecepatan transfer hingga 12 mbps (bahkan untuk versi terbaru, bisa mencapai kecepatan 480 mbps!)
Dapat mengkoneksikan hingga 127 periferal
Diterima secara luas, baik dari sisi hardware, software (baca: sistem operasi), ataupun pengguna
Membutuhkan Windows 98 ke atas untuk kompatibilitas secara penuh
PORT PARALEL

Port paralel (DB-25) adalah salah satu jenis soket pada personal komputer untuk berkomunikasi dengan peralatan luar seperti printer model lama. Karena itu parallel port sering juga disebut printer port. Perusahaan yang memperkenalkan port ini adalah Centronic, maka port ini juga disebut dengan Centronics port. Kesederhanaan port ini dari sisi pemrograman dan antarmuka dengan hardware membuat port ini sering digunakan untuk percobaan-percobaan sederhana dalam perancangan peralatan elektronika.
PORT SERIAL

dalam komputasi,sebuah serial port adalah serial komunikasi melalui antart muka atau fisik yang transfer informasi atau memperkecil pada satu bit pada satu waktu atau kontras paralel port.
PORT PS/2
Ps 2 konektor di gunakan untuk menghubungkan beberapa keyboard dan mouse ke PC kompatibel dengan sistem komputer. Namanya berasal dari IBM Personal System / 2 rangkaian komputer pribadi, yang telah diperkenalkan pada tahun 1987. Yang PS / 2 mouse Konektor umumnya menggantikan tua DE-9 RS-232 “serial mouse” konektor, sementara keyboard konektor diganti dengan yang lebih besar 5-pin DIN yang digunakan dalam IBM PC / AT desain. Yang PS / 2 mouse dan keyboard antarmuka yang mirip elektrik dan mempekerjakan protokol komunikasi yang sama. Namun, suatu sistem keyboard dan mouse port mungkin tidak yg dpt sejak dua perangkat yang berbeda menggunakan sekumpulan perintah. Mengikuti rilis USB keyboard, PS / 2 keyboard dan mouse menjadi kurang populer.
PORT VGA

Kartu VGA adalah komponen yang tugasnya menghasilkan tampilan secara visual dari komputer. Hampir semua program menghasilkan keluaran visual, kartu VGA adalah hardware yang memberikan perintah kepada monitor untuk menampilkan keluaran visual yang dapat kita lihat.

referensi port I/O perangkat keras


Keyboard atau Mouse, adalah perangkat yang sudah umum dipakai didalam menggunakan komputer. Perangkat tersebut tersambung ke dalam komputer melalui sambungan (port) yang biasa disebut I/O Port hardware. Penjelasan ini akan menjadi penjelasan yang bersifat teknis dan praktis untuk panduan bagi anda untuk menggunakan interface dari keyboard dan mouse.

Keyboard.
Secara singkat, untuk memudahkan anda mendeteksi perubahan yang terjadi pada keyboard, anda bisa memeriksa port, memeriksa hapalan(memory) komputer atau dengan menggunakan interupt. Jika menggunakan port atau dengan menggunakan unit hapalan, maka sistem yang harus digunakan adalah dengan sistem polling. Dimana program secara berulang ulang memeriksa port yang dimaksud apakah sudah terisi data atau belum. Adapula interupt, adalah sistem komputer yang akan membuat komputer terhenti supaya menangani suatu keadaan tertentu, itu sebabnya teknik ini disebut sebagai interupt(selaan). Untuk menggunakan interupt pada mode 16-bit biasanya cukup mudah, anda cukup mengganti, misalkan, untuk mouse, alamat IRQ(Interupt Request) 12 dengan alamat program anda. Sehingga setiap mouse bergerak, maka program anda akan dipanggil dan dikirimi data. Akan tetap di mode 32-bit, IRQ ini tidak berfungsi, karena perbedaan pengalamatan data, dan perbedaan jumlah rentang instruksi, dimana seperti dari namanya, mode 16-bit hanya mempunyai panjang 16-bit, dan mode 32-bit mempunyai panjang 32-bit. Mengubah alamat IRQ pada mode 32-bit biasanya sangat sukar, sehingga penggunaan polling port lebih disukai.

Port Keyboard dan Mouse mempunyai saluran data yang sama yaitu di alamat 60h, angka 60 ini dalam hexa yang kalau didesimalkan berarti alamat port 96(d). Port keyboard dan mouse ini ditangani oleh mikrontroler khusus yang bernama 2352(BSJS/CMIIW). Setiap port, mempunyai panjang 8-bit, dimana terkadang tiap tiap bit mempunyai makna tertentu, misalkan bit 0, bit pertama paling kiri, jika bernilai satu, maka keyboard aktif, dan jika bernilai nol maka keyboard tidak aktif. Keyboard dan Mouse, dikontrol melalui port 64h, atau port, 100 desimal. Port tersebut adalah port 2 arah, selain bisa menjadi input, bisa juga dijadikan sebagai output. Sebagai input, tiap tiap bit di port 64h mempunyai definisi sebagai berikut

;   Bit     Function
;    7      1 = Parity error
;    6      1 = General Time Out
;    5      1 = Auxiliary output buffer full
;    4      1 = Inhibit switch
;    3      1 = Command/data
;    2      1 = System flag
;    1      1 = Input buffer full
;    0      1 = Output buffer full

Setiap kali anda hendak mengirimkan data ke port 64h ini, anda harus menunggu bit ke 1 yang tidak lain adalah "input buffer" bit sampai mempunyai nilai 0. Karena jika bernilai 1, berarti input penuh dan data akan diabaikan. Algoritma untuk mengirimkan data bagi port ini adalah sebagai berikut:

1. Ambil data dari port 64h
2. Tes, apakah bit bernilai 0
3. Jika tidak kembali ke langkah satu.

Atau dalam bahasa mesin sebagai berikut

mov dx,64h   ; Pindahkan nilai 64h ke register dx
penanda_1:
in al,dx   ; Ambil data dari port yang ditunjuk DX
      ; Simpan ke register al
bt al,1      ; Test bit ke 1 dengan cara mennyalin bit
      ; ke-1 dari al ke penanda prosesor Carry
jc penanda_1   ; Jika penanda prosesor carry di set atau
      ; Bernilai 1, maka lompat ke "penanda_1"
out dx,data   ; Kirimkan data

Program akan terus melompat ke penanda selama angka yang dimaksud tidak didapat. Jika terjadi kerusakan di saluran 064h bukan tidak mungkin komputer anda akan "hang" dan tidak bisa digunakan, karena seluruh proses menunggu sampai bisa mengirimkan data ke perangkat keras.
Di komputer IBM, Port untuk input biasanya berada di port 060h. Seharusnya port 60h ini hanya untuk input saja, akan tetapi di komputer modern ini, selain sebagai input, bisa juga dijadikan sebagai output, terutama untuk mouse. Karena menggunakan mouse lebih rumit daripada keyboard.

Sebagai Output Port 064h Mempunyai perintah perintah sebagai berikut:

20   Transmit keyboard controller's command byte to system as a scan code at port 60h.
60   The next byte written to port 60h will be stored in the keyboard controller's command byte.
A4   Test if a password is installed (PS/2 only). Result comes back in port 60h. 0FAh means a password is installed, 0F1h means no password.
A5   Transmit password (PS/2 only). Starts receipt of password. The next sequence of scan codes written to port 60h, ending with a zero byte, are the new password.
A6   Password match. Characters from the keyboard are compared to password until a match occurs.
A7   Disable mouse device (PS/2 only). Identical to setting bit five of the command byte.
A8   Enable mouse device (PS/2 only). Identical to clearing bit five of the command byte.
A9   Test mouse device. Returns 0 if okay, 1 or 2 if there is a stuck clock, 3 or 4 if there is a stuck data line. Results come back in port 60h.
AA   Initiates self-test. Returns 55h in port 60h if successful.
AB   Keyboard interface test. Tests the keyboard interface. Returns 0 if okay, 1 or 2 if there is a stuck clock, 3 or 4 if there is a stuck data line. Results come back in port 60h.
AC   Diagnostic. Returns 16 bytes from the keyboard's microcontroller chip. Not available on PS/2 systems.
AD   Disable keyboard. Same operation as setting bit four of the command register.
AE   Enable keyboard. Same operation as clearing bit four of the command register.
C0   Read keyboard input port to port 60h. This input port contains the following values:

bit 7: Keyboard inhibit keyswitch (0 = inhibit, 1 = enabled).

bit 6: Display switch (0=color, 1=mono).

bit 5: Manufacturing jumper.

bit 4: System board RAM (always 1).

bits 0-3: undefined.
C1   Copy input port (above) bits 0-3 to status bits 4-7. (PS/2 only)
C2   Copy input pot (above) bits 4-7 to status port bits 4-7. (PS/2 only).
D0   Copy microcontroller output port value to port 60h (see definition below).
D1   Write the next data byte written to port 60h to the microcontroller output port. This port has the following definition:

bit 7: Keyboard data.

bit 6: Keyboard clock.

bit 5: Input buffer empty flag.

bit 4: Output buffer full flag.

bit 3: Undefined.

bit 2: Undefined.

bit 1: Gate A20 line.

bit 0: System reset (if zero).



Note: writing a zero to bit zero will reset the machine.

Writing a one to bit one combines address lines 19 and 20 on the PC's address bus.
D2   Write keyboard buffer. The keyboard controller returns the next value sent to port 60h as though a keypress produced that value. (PS/2 only).
D3   Write mouse buffer. The keyboard controller returns the next value sent to port 60h as though a mouse operation produced that value. (PS/2 only).
D4   Writes the next data byte (60h) to the mouse (auxiliary) device. (PS/2 only).
E0   Read test inputs. Returns in port 60h the status of the keyboard serial lines. Bit zero contains the keyboard clock input, bit one contains the keyboard data input.
Fx   Pulse output port (see definition for D1). Bits 0-3 of the keyboard controller command byte are pulsed onto the output port. Resets the system if bit zero is a zero.

Untuk keyboard, perintah yang akan kita gunakan adal perintah D2, yang tidak lain untuk menyuruh prosesor mengirimkan tombol terakhir yang ditekan oleh pengguna. Setiap pengiriman data untuk beberapa perangkat keras, seringkali mempunyai nilai balik yang telah didefinisikan, akan tetapi untuk hal ini yaitu keyboard, hal tersebut tidak diperlukan. Saat anda mengirimkan data, maka data yang berikutnya akan anda ambil, maka itu adalah data yang terakhir anda tekan, biarpun anda terakhir menekan misalkan 10 menit yang lalu karena komputer anda ngehang.
Untuk memberi perintah kepada prosesor untuk mengambil data, anda harus menggunakan perintah "in". Yang berarti input. Langkah langkah tersebut adalah sebagai berikut.

mov dx,64h   ; Pindahkan nilai 64h ke register dx
penanda_1:
in al,dx   ; Ambil data dari port yang ditunjuk DX
      ; Simpan ke register al
bt al,1      ; Test bit ke 1 dengan cara mennyalin bit
      ; ke-1 dari al ke penanda prosesor Carry
jc penanda_1   ; Jika penanda prosesor carry di set atau
      ; Bernilai 1, maka lompat ke "penanda_1"
out dx,0D2h   ; "Berikan saya data keyboard komputer"
mov dx,60h   ; Ingat port 60 untuk input
in dx,al   ; Data disimpan di al

Reverensi :
http://fujhyzhu.wordpress.com/2010/01/17/macam-macam-port-pc
http://iwansoenarya.blogspot.com/2012/05/referensi-port-io-perangkat-keras.html
http://tiksmadangawi.blogspot.com/2010/05/port-pada-komputer.html