Transcript part 6

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 inline 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
LSB
MSB
FIFO
EQU
EQU
EQU
EQU
0F3H
0F0H
0F1H
0F2H
START PROC NEAR
MOV AL,10001010B
OUT LINE,AL
MOV
OUT
MOV
OUT
AL,120
LSB,AL
AL,0
MSB,AL
; enable Baud Divisor
;program Baud rate
MOV AL,00001010B
OUT LINE,AL
;program 7-data,
;odd parity, 1 stop bit
MOV AL,00000111B
OUT FIFO,AL
;enable transmitter
;and receiver
RET
START 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
DATA
EQU
EQU
0F5H
0F0H
;line status port
;data port
SEND PROC NEAR
PUSH AX
IN AL,LSTAT
TEST AL,20H
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.
LSTAT
DATA
EQU
EQU
0F5H
0F0H
;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,0EH
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 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.