port serial

53
Port Serial

Upload: audra-lyons

Post on 30-Dec-2015

105 views

Category:

Documents


2 download

DESCRIPTION

Port Serial. 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. - PowerPoint PPT Presentation

TRANSCRIPT

Port Serial

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 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 :

–simplex

–half-duplex

–full duplex

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 bisa bersamaan.

– Contoh : Transfer data dengan menggunakan HT.

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

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 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 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 :

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 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 232C

• RS 232C interface merupakan standar yang direkomendasikan dan 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 232C

• 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 232C

• 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 232C

• Definisi dan Notasi Sinyal– Ada 25 buah sinyal yang ditentukan pada standar RS

232C.

– Sebagian dari sinyal-sinyal tersebut dapat dilihat pada tabel berikut :

Serial Interface RS 232C

• 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 232C

Serial Interface RS 232C

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 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 :– 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 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. Biasanya digunakan untuk melakukan transfer data antara komputer desktop dan komputer portabel.

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 sinyal C / D high, dan Data Address, yang dipilih jika sinyal C / D low.

• TxD adalah saluran untuk mengirimkan data serial

• RxD adalah saluran untuk menerima data serial• TxRDY saluran untuk memberitahu CPU bahwa

transmitter siap menerima data.• RxRDY saluran untuk memberitahu CPU bahwa

receiver memiliki data untuk CPU.

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 kontrol = 501 H.

• Inisialisasi dilakukan dengan cara mengirimkan mode word dan command word pada alamat kontrol.

Contoh program inisialisasi USART 8251

Program inisialisasinya :

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 D2-D6 isinya tidak dibahas pada pertemuan ini.

• DSR : menunjukkan status modem• RxRDY : menunjukkan bahwa USART telah

menerima data serial dan siap untuk mengirimkannya ke CPU.

• TxRDY : menunjukkan bahwa USART siap untuk menerima data serial dari CPU.

Instruksi untuk pengiriman data dengan teknik programmed I/O

• Untuk pengiriman dengan teknik interrupt driven I/O, saluran TxRDY USART dihubungkan ke saluran interupsi CPU.

Instruksi untuk penerimaan data dengan teknik programmed I/O

• Untuk pengiriman dengan teknik interrupt driven I/O, saluran RxRDY USART dihubungkan ke saluran interupsi CPU.

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

• 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 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 A0, A1, A2 (memiliki 8 alamat).

• Register yang dipilih dari A0, A1, A2 adalah sebagai berikut:

Pemrograman UART 16550

• Pemrograman 16550 adalah sederhana, meskipun mungkin lebih rumit dibandingkan pemrograman interface lainnya.

• Dalam PC, alamat port I/O adalah 3F8 H sampai 3FF H untuk COM1 dan 2F8 H sampai 2FF H untuk COM2.

• Pemrograman 16550 terdiri dari dua bagian, yaitu: inisialisasi dan operasional.

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

Memprogram Baud Rate

• Baud rate divisor diprogram pada alamat 000 dan 001 (A2, A1, A0).

• Nilai yang digunakan untuk pembagi tergantung clock eksternal.

Contoh Inisialisasi

• Anggap suatu sistem asinkron membutuhkan 7 bit data, paritas ganjil, baud rate 9600, dan 1 stop bit.

• Dimisalkan alamat yang digunakan adalah F0 H sampai F7 H.

• Di sini port F3 H mengakses Line Control Register, dan F0 H dan F1 H mengakses register Baud Rate Divisor.

• Pada bagian akhir program disertakan juga program untuk register kontrol FIFO.

LINE EQU 0F3HLSB EQU 0F0HMSB EQU 0F1HFIFO EQU 0F2H

START PROC NEARMOV AL,10001010B ; enable Baud DivisorOUT LINE,AL

MOV AL,120 ;program Baud rateOUT LSB,ALMOV AL,0OUT MSB,AL

MOV AL,00001010B ;program 7-data,OUT LINE,AL ;odd parity, 1 stop bit

MOV AL,00000111B ;enable transmitter OUT FIFO,AL ;and receiver

RETSTART ENDP

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

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

• Contoh prosedur untuk mengirim isi AH ke 16550. Bit TH diperiksa untuk mengetahui apakah pengirim siap menerima data.

LSTAT EQU 0F5H ;line status portDATA EQU 0F0H ;data port

SEND PROC NEAR

PUSH AX ;save AXIN AL,LSTAT ;get line status registerTEST AL,20H ;test TH bitJZ SEND ;if transmitter not ready

MOV AL,AH ;get dataOUT DATA,AL ;transmit dataPOP AX ;restore AXRET

SEND ENDP

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

LSTAT EQU 0F5H ;line status portDATA EQU 0F0H ;data port

RECV PROC NEAR

IN AL,LSTAT ;get line status registerTEST AL,1 ;test DR bitJZ RECV ;if no data in receiver

TEST AL,0EH ;test all 3 error bitsJNZ ERR ;for an error

IN AL,DATA ;read data from 16550RET

ERR:MOV AL,’?’ ;get question markRET

RECV ENDP

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.