Port Serial TRANSFER DATA SERIAL Di dalam komputer

  • Slides: 53
Download presentation
Port Serial

Port Serial

TRANSFER DATA SERIAL • Di dalam komputer, transfer data berlangsung secara paralel, karena cara

TRANSFER DATA SERIAL • Di dalam komputer, transfer data berlangsung secara paralel, karena cara tersebut adalah cara tercepat. Semakin lebar jalur data, semakin cepat transfer data. • Transfer data paralel tidak cocok digunakan pada transfer data jarak jauh karena akan sangat banyak kabel yang digunakan. Untuk transfer data jarak jauh digunakan transfer data serial.

Modul IO Serial • Oleh karena itu, data yang akan ditransfer dalam jarak yang

Modul IO Serial • Oleh karena itu, data yang akan ditransfer dalam jarak yang jauh terlebih dahulu harus dikonversi ke bentuk serial, dan pada saat diterima dikonversi kembali ke bentuk paralel. Proses tersebut akan dilakukan oleh modul I/O (port) serial.

Transfer data serial • Pada transfer data serial dikenal 3 istilah, yaitu : –

Transfer data serial • Pada transfer data serial dikenal 3 istilah, yaitu : – simplex – half-duplex – full duplex

Simplex • Pada transfer data simplex, transfer data hanya berlangsung satu arah. – Contoh

Simplex • Pada transfer data simplex, transfer data hanya berlangsung satu arah. – Contoh : Transfer data dari sensor, yang digunakan untuk memantau keadaan di gunung berapi

Half-duplex • Pada transfer data half-duplex, transfer data bisa berlangsung dua arah tetapi tidak

Half-duplex • Pada transfer data half-duplex, transfer data bisa berlangsung dua arah tetapi tidak bisa bersamaan. – Contoh : Transfer data dengan menggunakan HT.

Full-duplex • Pada transfer data ini, transfer data bisa berlangsung dua arah secara bersamaan.

Full-duplex • Pada transfer data ini, transfer data bisa berlangsung dua arah secara bersamaan. – Contoh : Transfer data dengan menggunakan telepon

Sinkron dan asinkron • Data serial dapat ditransfer secara sinkron dan asinkron

Sinkron dan asinkron • Data serial dapat ditransfer secara sinkron dan asinkron

Transfer data Asinkron • Pada metode transfer data ini, tiap data (karakter) disertai oleh

Transfer data Asinkron • Pada metode transfer data ini, tiap data (karakter) disertai oleh start bit dan stop bit.

Transfer data Asinkron • Setiap pengiriman data selalu ditambahkan start bit sebagai tanda awal

Transfer data Asinkron • Setiap pengiriman data selalu ditambahkan start bit sebagai tanda awal data dan stop bit sebagai tanda akhir data. Selain itu juga bisa ditambahkan sebuah parity bit untuk mengecek terjadinya kesalahan. • Karena setiap data selalu disertai dengan start bit dan stop bit, data dapat dikirimkan secara asinkron (pengirim dan penerima tidak perlu disinkronkan). • Ukuran data bisa 5, 6, 7 atau 8 bit. • Efisiensinya rendah karena untuk mengirim sebuah data harus juga dikirimkan bit-bit tambahan tersebut.

Transfer data Sinkron • Pada transfer data sinkron, data dikirimkan dalam bentuk blok dengan

Transfer data Sinkron • Pada transfer data sinkron, data dikirimkan dalam bentuk blok dengan kecepatan yang konstan. Awal dan akhir blok ditandai dengan adanya bit atau byte sinkronisasi berupa bit-bit unik. • Pada transfer data sinkron, pengirim dan penerima harus disinkronkan (harus bekerja dengan kecepatan clock yang sama).

Kecepatan transfer data • Satuan kecepatan transfer data ialah baud dan besarnya dihitung sbb

Kecepatan transfer data • Satuan kecepatan transfer data ialah baud dan besarnya dihitung sbb : Baud rate = 1 / waktu untuk satu bit. – Contoh : Jika waktu untuk 1 bit adalah 3, 33 mili detik, maka baud rate adalah 1/3, 33 ms = 300 baud.

Modul I/O atau port serial • Agar sebuah komputer bisa digunakan untuk transfer data

Modul I/O atau port serial • Agar sebuah komputer bisa digunakan untuk transfer data serial, pada komputer tersebut harus ada modul I/O atau port serial. • Pada port serial terdapat sebuah IC yang mengatur berbagai hal pada saat transfer data serial berlangsung. • Contoh IC tersebut adalah UART (Universal Asynchronous Receiver Transmitter ) 16550 , yang bisa digunakan untuk komunikasi asinkron. IC ini biasanya digunakan pada port serial PC. • IC yang lain adalah USART (Universal Synchronous Asynchronous Receiver Transmitter) 8251, yang bisa digunakan untuk komunikasi asinkron dan sinkron.

Serial Interface RS 232 C • RS 232 C interface merupakan standar yang direkomendasikan

Serial Interface RS 232 C • RS 232 C interface merupakan standar yang direkomendasikan diupayakan oleh EIA (Electronic Industries Association) untuk menghubungkan DTE dengan DCE dan juga untuk menghubungkan 2 buah DTE. • DTE (Data Terminal Equipment) adalah perangkat yang dilengkapi UART atau USART yang dapat mengubah data paralel ke data serial atau sebaliknya. Contohnya komputer PC. • DCE (Data Communication Equipment) adalah perangkat yang dapat mengubah data serial menjadi sinyal analog yang dapat ditransmisikan pada saluran transmisi seperti saluran telepon atau pemancar radio.

Serial Interface RS 232 C • Ada 3 aspek yang didefinisikan pada standar ini

Serial Interface RS 232 C • Ada 3 aspek yang didefinisikan pada standar ini : – Kecepatan transfer data – Karakteristik Elektris – Definisi dan notasi saluran • Kecepatan transfer diukur dalam satuan bit per second (bps) dan dalam Baud. • Kecepatan yang sering digunakan 2400, 9600, 38400, 57600, 115200 bps.

Serial Interface RS 232 C • Karakteristik elektris untuk logic level : – Logic

Serial Interface RS 232 C • Karakteristik elektris untuk logic level : – Logic 1 disebut “mark” terletak antara -3 volt hingga 25 volt – Logic 0 disebut “space” terletak antara +3 volt hingga +25 volt.

Serial Interface RS 232 C • Definisi dan Notasi Sinyal – Ada 25 buah

Serial Interface RS 232 C • Definisi dan Notasi Sinyal – Ada 25 buah sinyal yang ditentukan pada standar RS 232 C. – Sebagian dari sinyal-sinyal tersebut dapat dilihat pada tabel berikut :

Serial Interface RS 232 C • Ada 2 jenis konektor yang biasa digunakan, yaitu

Serial Interface RS 232 C • Ada 2 jenis konektor yang biasa digunakan, yaitu DB-9 (konektor dengan 9 buah pin) dan DB-25 (konektor dengan 25 pin)

Serial Interface RS 232 C

Serial Interface RS 232 C

Serial Interface RS 232 C

Serial Interface RS 232 C

Modem • Transfer data jarak jauh biasanya menggunakan saluran telepon. Hal ini disebabkan jaringan

Modem • Transfer data jarak jauh biasanya menggunakan saluran telepon. Hal ini disebabkan jaringan telepon sudah sangat luas digunakan. Untuk keperluan khusus dapat juga digunakan saluran yang disewa khusus (leased line). • Saluran telepon diperuntukkan untuk menyalurkan sinyal suara (sinyal analog) yang memiliki frekuensi 300 - 3000 Hz. Oleh karena itu sinyal digital tidak dapat langsung dikirimkan melalui saluran telepon, tetapi terlebih dahulu harus dimodulasi ke sinyal analog. • Untuk itu digunakan suatu komponen yang disebut modem ( modulator-demodulator). • Modem biasanya disebut Data Communication Equipment (DCE) sedangkan komputer disebut Data Terminal Equipment (DTE).

Modem • Jika sebuah transfer data jarak jauh akan dilakukan, terlebih dahulu dilakukan proses

Modem • Jika sebuah transfer data jarak jauh akan dilakukan, terlebih dahulu dilakukan proses handshaking antara komputer dan modem dan juga antara modem dengan komputer jarak jauh.

 • Berikut ini adalah urutan sinyal yang dihasilkan pada saat transfer data berlangsung

• Berikut ini adalah urutan sinyal yang dihasilkan pada saat transfer data berlangsung : – Komputer mengirimkan sinyal DTR (data-terminal ready) ke modem sebagai tanda bahwa terminal siap. – Jika modem juga siap, modem akan membalas dengan sinyal DSR (data-set-ready). – Modem selanjutnya mendial remote computer. – Jika remote computer siap, dia akan mengirimkan sinyal tertentu. – Jika komputer memiliki data yang akan dikirim, ia akan mengirimkan sinyal request-to-send (RTS) ke modem.

 • Modem akan membalas dengan mengirim sinyal carrier-detect (CD) sebagai tanda bahwa ia

• Modem akan membalas dengan mengirim sinyal carrier-detect (CD) sebagai tanda bahwa ia telah membangun koneksi dengan remote computer. Dan jika modem benar-benar siap, ia mengirimkan sinyal clear-to-send (CTS). • Selanjutnya komputer mengirimkan data serial ke modem. • Jika semua data telah dikirim, komputer akan mengubah level sinyal RTS menjadi high. Hal ini mengakibatkan modem juga mengubah level sinyal CTS menjadi high dan berhenti mengirimkan data.

Null Modem Connection • Digunakan untuk menghubungkan dua buah komputer (DTE) tanpa melalui modem.

Null Modem Connection • Digunakan untuk menghubungkan dua buah komputer (DTE) tanpa melalui modem. Biasanya digunakan untuk melakukan transfer data antara komputer desktop dan komputer portabel.

USART 8251 • USART 8251 bisa digunakan sebagai port serial. • Berikut ini adalah

USART 8251 • USART 8251 bisa digunakan sebagai port serial. • Berikut ini adalah blok diagram dari USART 8251

USART 8251 • USART memiliki 2 alamat, yaitu : Control Address, yang dipilih jika

USART 8251 • USART memiliki 2 alamat, yaitu : Control Address, yang dipilih jika sinyal C / D high, dan Data Address, yang dipilih jika sinyal C / D low. • Tx. D adalah saluran untuk mengirimkan data serial • Rx. D adalah saluran untuk menerima data serial • Tx. RDY saluran untuk memberitahu CPU bahwa transmitter siap menerima data. • Rx. RDY saluran untuk memberitahu CPU bahwa receiver memiliki data untuk CPU.

USART 8251 • Seperti halnya PPI, sebelum menggunakan USART 8251 terlebih dahulu harus dilakukan

USART 8251 • Seperti halnya PPI, sebelum menggunakan USART 8251 terlebih dahulu harus dilakukan proses inisialisasi dengan mengirimkan mode word dan command word pada alamat control USART. • Ada beberapa hal yang harus ditentukan seperti : – – baud rate factor panjang bit data bit parity (ganjil atau genap) metode transfernya asinkron atau sinkron • Informasi-informasi tersebut akan dikodekan dalam mode word.

Contoh program inisialisasi USART 8251 • Misalkan alamat data = 500 H, dan alamat

Contoh program inisialisasi USART 8251 • Misalkan alamat data = 500 H, dan alamat kontrol = 501 H. • Inisialisasi dilakukan dengan cara mengirimkan mode word dan command word pada alamat kontrol.

Contoh program inisialisasi USART 8251

Contoh program inisialisasi USART 8251

Program inisialisasinya :

Program inisialisasinya :

Contoh instruksi untuk mengirimkan dan menerima data menggunakan USART : • Misalkan alamat data

Contoh instruksi untuk mengirimkan dan menerima data menggunakan USART : • Misalkan alamat data = 500 H, dan alamat control = 501 H. • Sebelum melakukan pengiriman/penerimaan data, terlebih dahulu harus dilakukan pemeriksaan status USART dengan membaca status registernya.

 • Pada tersebut isi bit D 2 -D 6 isinya tidak dibahas pada

• Pada tersebut isi bit D 2 -D 6 isinya tidak dibahas pada pertemuan ini. • DSR : menunjukkan status modem • Rx. RDY : menunjukkan bahwa USART telah menerima data serial dan siap untuk mengirimkannya ke CPU. • Tx. RDY : menunjukkan bahwa USART siap untuk menerima data serial dari CPU.

Instruksi untuk pengiriman data dengan teknik programmed I/O • Untuk pengiriman dengan teknik interrupt

Instruksi untuk pengiriman data dengan teknik programmed I/O • Untuk pengiriman dengan teknik interrupt driven I/O, saluran Tx. RDY USART dihubungkan ke saluran interupsi CPU.

Instruksi untuk penerimaan data dengan teknik programmed I/O • Untuk pengiriman dengan teknik interrupt

Instruksi untuk penerimaan data dengan teknik programmed I/O • Untuk pengiriman dengan teknik interrupt driven I/O, saluran Rx. RDY USART dihubungkan ke saluran interupsi CPU.

UART (Universal Asynchronous Receiver Transmitter) • UART digunakan untuk transfer data serial asinkron •

UART (Universal Asynchronous Receiver Transmitter) • UART digunakan untuk transfer data serial asinkron • Sama seperti USART, UART antara lain berfungsi mengubah sinyal paralel menjadi serial pada saat pengiriman dari serial menjadi paralel pada saat penerimaan data. • Contoh UART: – UART 8250 dan UART 16450 yang digunakan pada PC yang lama (sebelum generasi Pentium). – UART 16550 dan UART 16650 yang digunakan pada PC yang ada saat ini.

UART (Universal Asynchronous Receiver Transmitter) • UART yang muncul belakangan mampu mendukung kecepatan transfer

UART (Universal Asynchronous Receiver Transmitter) • UART yang muncul belakangan mampu mendukung kecepatan transfer data yang lebih tinggi dan juga memiliki ukuran buffer yang lebih besar. • UART 8250 dan 16450 memiliki buffer yang dapat menampung satu karakter ( 1 byte ). Jika ada data baru datang pada saat data yang lama masih belum diambil oleh prosesor, maka akan terjadi overrun error. • UART 16550 memiliki buffer FIFO yang mampu menampung 16 karakter dan bisa melakukan flow control, yaitu bisa meminta pengirim menunda pengiriman apabila buffer telah penuh.

UART 16550 • Peranti ini tersedia sebagai suatu DIP (dual in-line package) 40 -pin.

UART 16550 • Peranti ini tersedia sebagai suatu DIP (dual in-line package) 40 -pin. • Dua bagian terpisah bertanggung jawab untuk komunikasi data: penerima (receiver) dan pengirim (transmitter). • Karena bagian-bagian ini independent satu dengan yang lain, 16550 mampu berfungsi dalam mode simplex, half-duplex, atau full duplex.

UART 16550 • Satu fitur utama dari 16550 adalah memori FIFO (First In First

UART 16550 • Satu fitur utama dari 16550 adalah memori FIFO (First In First Out) penerima dan pengirim internal. • Karena masing-masing berukuran 16 byte, UART hanya membutuhkan perhatian dari mikroprosesor setelah menerima 16 byte data.

Register-register UART 16550 • UART 16550 memiliki tiga saluran alamat A 0, A 1,

Register-register UART 16550 • UART 16550 memiliki tiga saluran alamat A 0, A 1, A 2 (memiliki 8 alamat). • Register yang dipilih dari A 0, A 1, A 2 adalah sebagai berikut:

Pemrograman UART 16550 • Pemrograman 16550 adalah sederhana, meskipun mungkin lebih rumit dibandingkan pemrograman

Pemrograman UART 16550 • Pemrograman 16550 adalah sederhana, meskipun mungkin lebih rumit dibandingkan pemrograman interface lainnya. • Dalam PC, alamat port I/O adalah 3 F 8 H sampai 3 FF H untuk COM 1 dan 2 F 8 H sampai 2 FF H untuk COM 2. • Pemrograman 16550 terdiri dari dua bagian, yaitu: inisialisasi dan operasional.

Inisialisasi • Inisialisasi terdiri dari dua bagian, yaitu pemrograman Line Control Register dan Baud

Inisialisasi • Inisialisasi terdiri dari dua bagian, yaitu pemrograman Line Control Register dan Baud rate divisor. • Line Control Register digunakan untuk memilih jumlah bit data, stop bit, dan paritas. • Baud rate divisor diprogram dengan suatu pembagi untuk menetapkan Baud rate pengirim.

Line Control Register

Line Control Register

Memprogram Baud Rate • Baud rate divisor diprogram pada alamat 000 dan 001 (A

Memprogram Baud Rate • Baud rate divisor diprogram pada alamat 000 dan 001 (A 2, A 1, A 0). • Nilai yang digunakan untuk pembagi tergantung clock eksternal.

Contoh Inisialisasi • Anggap suatu sistem asinkron membutuhkan 7 bit data, paritas ganjil, baud

Contoh Inisialisasi • Anggap suatu sistem asinkron membutuhkan 7 bit data, paritas ganjil, baud rate 9600, dan 1 stop bit. • Dimisalkan alamat yang digunakan adalah F 0 H sampai F 7 H. • Di sini port F 3 H mengakses Line Control Register, dan F 0 H dan F 1 H mengakses register Baud Rate Divisor. • Pada bagian akhir program disertakan juga program untuk register kontrol FIFO.

LINE LSB MSB FIFO EQU EQU 0 F 3 H 0 F 0 H

LINE LSB MSB FIFO EQU EQU 0 F 3 H 0 F 0 H 0 F 1 H 0 F 2 H START PROC NEAR MOV AL, 10001010 B OUT LINE, AL MOV OUT AL, 120 LSB, AL AL, 0 MSB, AL ; enable Baud Divisor ; program Baud rate MOV AL, 00001010 B OUT LINE, AL ; program 7 -data, ; odd parity, 1 stop bit MOV AL, 00000111 B OUT FIFO, AL ; enable transmitter ; and receiver RET START ENDP

Register Kontrol FIFO • Pada saat setelah line control register dan baud rate divisor

Register Kontrol FIFO • Pada saat setelah line control register dan baud rate divisor diprogram register kontrol FIFO belum siap difungsikan. • Register FIFO harus terlebih dahulu diprogram.

Register Kontrol FIFO

Register Kontrol FIFO

Line Status Register • Sebelum data serial dapat dikirim atau diterima, terlebih dahulu perlu

Line Status Register • Sebelum data serial dapat dikirim atau diterima, terlebih dahulu perlu diketahui isi Line Status Register. • Line Status Register berisi informasi tentang keadaan kesalahan serta kondisi pengirim dan penerima. • Register ini dites sebelum suatu byte dikirim atau dapat diterima.

Line Status Register

Line Status Register

 • Contoh prosedur untuk mengirim isi AH ke 16550. Bit TH diperiksa untuk

• Contoh prosedur untuk mengirim isi AH ke 16550. Bit TH diperiksa untuk mengetahui apakah pengirim siap menerima data. LSTAT DATA EQU 0 F 5 H 0 F 0 H ; line status port ; data port SEND PROC NEAR PUSH AX IN AL, LSTAT TEST AL, 20 H JZ SEND ; save AX ; get line status register ; test TH bit ; if transmitter not ready MOV AL, AH OUT DATA, AL POP AX RET ; get data ; transmit data ; restore AX SEND ENDP

 • Untuk membaca informasi yang diterima dari 16550, sebelumnya bit DR harus diperiksa.

• Untuk membaca informasi yang diterima dari 16550, sebelumnya bit DR harus diperiksa. LSTAT DATA EQU 0 F 5 H 0 F 0 H ; line status port ; data port RECV PROC NEAR IN AL, LSTAT TEST AL, 1 JZ RECV ; get line status register ; test DR bit ; if no data in receiver TEST AL, 0 EH JNZ ERR ; test all 3 error bits ; for an error IN AL, DATA RET ; read data from 16550 ERR: MOV AL, ’? ’ RET RECV ENDP ; get question mark

Kesalahan UART • Tipe kesalahan yang dideteksi oleh 16550 adalah: – Kesalahan paritas –

Kesalahan UART • Tipe kesalahan yang dideteksi oleh 16550 adalah: – Kesalahan paritas – Kesalahan frame – Kesalahan overrun • Kesalahan paritas mengindikasikan data yang diterima berisi paritas yang salah. • Kesalahan framing mengindikasikan bit-bit start dan stop tidak berada pada tempat yang seharusnya. • Kesalahan overrun mengindikasikan data telah melakukan overrun terhadap penyangga FIFO penerima internal.