KONSEP KOMUNIKASI SERIAL
3.1 Pendahuluan
Antarmuka
Kanal serial lebih kompleks/sulit dibandingkan dengan
antarmuka
melalui kanal paralel (akan dibahas pada bab berikutnya), hal ini
discbabkan
karcna:
1.
Dari Segi perangkat keras: adanya proses konversi data pararel menjadi
serial
atau sebaliknya menggunakan piranti tambahan yang disebut UART
(Universal Asynchronous Receiver/Transmitter); dan
2.
Dari Segi perangkat lunak: lebih banyak register yang digunakan atau
terlibat;
Namun
di sisi lain antarmuka kanal serial menawarkan berapa kelebihan
dibandingkan
secara paralel, antara lain:
1.
Kabel untuk komunikasi serial bisa
lebih panjang dibandingkan dengan
paralel;
data-data dalam komunikasi serial dikirim-kan untuk logika '1' sebagai
tegangan
-3 s/d -25 volt dan untuk logika '0' sebagai tegangan +3 s/d +25 volt, dengan
demikian
tegangan dalam komunikasi serial memiliki ayunan tegangan
maksimum
50 volt, sedangkan pada komunikasi paralel hanya 5 volt. Hal ini
menyebabkan
gangguan pada kabel-kabel panjang lebih mudah diatasi
dibandingkan
pada paralel;
2.
Jumlah kabel serial lebih sedikit; Anda bisa menghubungkan dua
perangkat
komputer yang berjauhan dengan hanya 3 kabel untuk
konfigurasi
null modem, yaitu TXD (saluran kirim), RXD(saluran terima)
dan
Ground, bayangkan jika digunakan teknik paralel akan terdapat 20 - 25
kabel!
Namun pada masing-masing komputer dengan komunikasi serial harus
dibayar
"biaya" antarmuka serial yang agak lebih mahal;
3.
Banyaknya piranti saat ini (palmtop, organizer,
hand-phone dan lainlain)
menggunakan teknologi infra merah untuk komunikasi data;
dalam
hal ini pengiriman datanya dilakukan secara serial. IrDA-1 (spesifikasi
infra
merah pertama) mampu mengirimkan data dengan laju 115,2 kbps dan
Konsep Komunikasi Serial 2
dibantu
dengan piranti UART, hanya panjang pulsa berkurang menjadi 3/16
dari
standar RS-232 untuk menghemat daya;
4.
Untuk teknologi embedded system, banyak mikrokontroler yang
dilengkapi dengan komunikasi serial (baik seri RISC
maupun CISC)
atau Serial
Communication Interface (SCI);
dengan adanya SCI yang
terpadu
pada 1C mikrokontroler akan mengurangi jumlah pin keluaran,
sehingga
hanya dibutuhkan 2 pin utama TxD dan RxD (di luar acuan ground).
3.2 TINJAUAN PERANGKAT KERAS
3.2.1.
Spesifikasi Perangkat Keras
Piranti-piranti
yang menggunakan komunikasi serial meliputi:
• DTE = Data Terminal Equipment, yaitu komputer itu sendiri;
• DCE = Data Communication Equipment, misalnya modem, plotter
dan
lain-lain;
Beberapa
parameter yang ditetapkan EIA (Electronics
Industry Association)
antara
lain:
• Sebuah 'spasi' (logika 0) antara tegangan +3 s/d +25 volt;
• Sebuah 'tanda' (logika 1) antara tegangan -3 s/d -25 volt;
• Daerah tegangan antara +3 s/d -3 volt tidak didefinisikan (undefined);
• Tegangan rangkaian terbuka tidak boleh lebih dari 25 volt
(dengan acuan
ground)',
• Arus hubung-singkat rangkaian tidak boleh lebih dari 500 mA.
Sebuah
penggerak
(driver) harus mampu menangani arus ini tanpa mengalami
kerusakan.
Konsep Komunikasi Serial 3
Tabel
3.1. Perbedaan Pinout Untuk DB-9 Dan DB-25 (Male)
Pin DB25 Pin DB9 Singkatan Keterangan
Pin
2 Pin 3 TD Transmit Data
Pin
3 Pin 2 RD Receive Data
Pin
4 Pin 7 RTS Reguest To Send
Pin
5 Pin 8 CTS Clear To Send
Pin
6 Pin 6 DSR Data Set Ready
Pin
7 Pin 5 SG Signal Ground
Pin
8 Pin 1 CD Carrier Derect
Pin
20 Pin 4 DTR Data Terminal Ready
Pin
22 Pin 9 RI Ring Indukator
Tabel
3.2. Fungsi-fungsi Kaki (pena/pin)
Singkatan Keterangan Fungsi
TD
Tranmisit
Data
Untuk
pengiriman data serial (TDX)
RD
Receuve Data Untuk penerimaan data serial (RDX)
CTS
Clear To Send
Digunakan
untuk memberitahukan
bahwa
Modem siap untuk melakukan
pertukaran
data
DCD
Data Carrier
Detect
Saat
modem mendeteksi suatu`Carieer`
Dari
Modem lain (dari tempat lain)
maka
signal ini akan diaktifkan
DSR
Data Set
Ready
Memberitahuakan
UART bahwa
Modem
siap untuk melakukan
komunikasi
(Link)
DTR
Data Terminal
Ready
Kebalikan
dari DSR, untuk
memberitahukan
bahwa UAT siap
melakukan
hubungan komunikasi
RTS
Regues To
Send
Signal
untuk menginformasikan
modem
Bahwa UART siap melakukan
pertukaran
data
RI
Ring
Indikator
Akan
aktif jika modem mendeteksi
adanya
signal dering dari saluran
telepon
3.2.2. Konfigurasi Null Modem
Konfigurasi
Null Modem digunakan untuk menghubungkan dua DTE,
dengan
diagram pengkabelan yang dapat dilihat pada gambar 3.1. Dalam
hal
ini hanya dibutuhkan tiga kabel antar DTE, yaitu untuk TxD, RxD dan
Gnd. Cara
kerjanya cukup mudah: yaitu bagaimana membuat komputer agar
Konsep Komunikasi Serial 4
mengira
dia berkomunikasi dengan modem (DCE) bukan dengan komputer
lainnya.
Gambar
3.1. Diagram Pengkabelan Konfigurasi Null Modem
Pada
gambar 3.1 terlihat bahwa kaki DTR (Data
Terminal Ready)
dihubungkan
ke DSR (Data Set Ready) dan juga ke CD (Carrier
Detect) pada
masing-masing
komputer, sehingga pada saat sinyal DTR diaktifkan maka
sinyal
DSR dan CD juga ikut aktif (konsep Modem Semu atau Virtual Modem).
Karena
komputer dalam hal ini melakukan pengiriman data dengan kecepatan
yang
sama, maka kontrol aliran (flow
control) belum dibutuhkan sehingga RTS
(Request To Send) dan
CTS (Clear To Send) pada masing-masing komputer
saling
dihubungkan. Sedangkan untuk pengujian port serial bisa digunakan
konfigurasi
Loopback Plug sebagaimana ditunjukkan pada gambar 3.2.
LoopBack Plug
Gambar
3.2. Pengkabelan pada Konfiurasi Loopback
Jika
anda memasang plug ini pada komputer dengan perangkat lunak terminal
(misalnya
Hyperterminal pada Sistem Operasi Windows), maka apa yang Anda
ketikkan
akan dimunculkan lagi (echoing).
Konsep Komunikasi Serial 5
3.2.3. Laju Kecepatan DTE/DCE
Laju
kecepatan pengiriman data yang sering dibicarakan adalah Iaju kecepatan DTE
ke
DCE (antara PC dan modem atau disebut juga sebagai Iaju kecepatan terminal
(terminal speed)) dan
Iaju kecepatan DCE ke DCE (antar modem yang
berkomunikasi
atau disebut juga sebagai Iaju kecepatan jalur (line speed)).
Jika
Anda menggunakan modem 28,8K atau 36,6K, maka artinya kecepatan ini
mengacu
pada Iaju kecepatan DCE ke DCE. Jika digunakan UART 16550a, maka
Iaju
kecepatan maksimumnya adalah 115.200 bps, sedangkan kebanyakan
perangkat
lunak yang digunakan saat ini digunakan untuk mengatur Iaju
kecepatan
DTE kc DCE.
Interupsiin
itu banyak modem saat ini beredar di pasaran dilengkapi dengan
fasilitas
kompresi-dekompresi (pemampatan-penguraian) data. Biasanya rasionya
sekitar
1:4 (untuk berkas teks), dengan demikian jika dilakukan transfer data
dengan
Iaju 28,8K (DCE ke DCE), dengan modem yang berfasilitas kompresi
data,
maka artinya Anda sebenarnya mengirimkan data tersebut dengan Iaju
115,2Kbps
(DTE ke DCE). Hal ini yang menyebabkan Iaju DTE ke DCE bisa
lebih
besar dari DCE ke DCE. Namun ada juga modem yang bisa melakukan
kompresi
hingga rasionya mencapai 1:8, sehingga kecepatan Iaju DTE ke DCE bisa
mencapai
168.800 bps (modem <--> UART). Jika digunakan 16550a, yang
kecepatannya
maksimum hanya 115.200 bps, akan sia-saia saja, sehingga sebaiknya
digunakan
UART 16550c yang kecepatan pengiriman datanya bisa mencapai
230.400
bps. Angka-angka yang disebutkan adalah angka-angka maksimum,
kenyataannya
bisa lebih rendah/kecil.
3.2.4. Kontrol Aliran (Flow Control)
Jika
Iaju kecepatan DTE ke DCE lebih cepat dibandingkan dengan DCE ke
DCE,
lambat-laun akan menyebabkan kehilangan data atau isitilahnya terjadi
buffer overflow, dengan
demikian dibutuhkan kontrol aliran baik secara
perangkat
lunak maupun perangkat keras.
Konsep Komunikasi Serial 6
Jika
anda memasang plug ini pada komputer dengan perangkat lunak terminal
(misalnya
Hyperterminal pada Sistem Operasi Windows), maka apa yang Anda
ketikkan
akan dimunculkan lagi (echoing)'.
3.2.3. Laju Kecepatan DTE/DCE
Laju
kecepatan pengiriman data yang sering dibicarakan adalah Iaju kecepatan
DTE
ke DCE (antara PC dan modem atau disebut juga sebagai Iaju kecepatan
terminal
(terminal speed)) dan Iaju kecepatan DCE ke DCE (antar modem yang
berkomunikasi
atau disebut juga sebagai Iaju kecepatan jalur (line speed)).
Jika
Anda menggunakan modem 28,8K atau 36,6K, maka artinya kecepatan ini
mengacu
pada Iaju kecepatan DCE ke DCE. Jika digunakan UART 16550a, maka
Iaju
kecepatan maksimumnya adalah 115.200 bps, sedangkan kebanyakan
perangkat
lunak yang digunakan saat ini digunakan untuk mengatur Iaju
kecepatan
DTE kc DCE.
Interupsiin
itu banyak modem saat ini beredar di pasaran dilengkapi dengan
fasilitas
kompresi-dekompresi (pemampatan-penguraian) data. Biasanya rasionya
sekitar
1:4 (untuk berkas teks), dengan demikian jika dilakukan transfer data
dengan
Iaju 28,8K (DCE ke DCE), dengan modem yang berfasilitas kompresi
data,
maka artinya Anda sebenarnya mengirimkan data tersebut dengan Iaju
115,2Kbps
(DTE ke DCE). Hal ini yang menyebabkan Iaju DTE ke DCE bisa
lebih
besar dari DCE ke DCE. Namun ada juga modem yang bisa melakukan
kompresi
hingga rasionya mencapai 1:8, sehingga kecepatan Iaju DTE ke DCE bisa
mencapai
168.800 bps (modem <--> UART). Jika digunakan 16550a, yang
kecepatannya
maksimum hanya 115.200 bps, akan sia-saia saja, sehingga sebaiknya
digunakan
UART 16550c yang kecepatan pengiriman datanya bisa mencapai
230.400
bps. Angka-angka yang disebutkan adalah angka-angka maksimum,
kenyataannya
bisa lebih rendah/kecil.
3.2.4. Kontrol Aliran (Flow Control)
Jika
Iaju kecepatan DTE ke DCE lebih cepat dibandingkan dengan DCE ke
DCE,
lambat-laun akan menyebabkan kehilangan data atau isitilahnya terjadi
Konsep Komunikasi Serial 7
buffer overflow, dengan
demikian dibutuhkan kontrol aliran baik secara
perangkat
lunak maupun perangkat keras.
Kontrol
aliran melalui perangkat lunak yang biasa digunakan adalah
Xon/Xoff, yaitu
dengan cara mengirimkan karakter Xon (ascii 17) dan Xoff (ascii
19)
yang masing-masing membutuhkan panjang data terkirim total 10 bit,
sehingga
akibatnya akan memperlambat laju kecepatan, namun dari sisi
perangkat
keras tidak menambah jumlah kabel serial. Karakter Xon digunakan
sebagai
tanda bahwa modem siap untuk menerima data berikutnya, sedangkan
karakter
Xoff digunakan sebagai sinyal untuk menghentikan pengiriman data dari
komputer.
Sedangkan
kontrol aliran melalui perangkat keras menggunakan sinyal RTS
(Request To Send) dan
CTS (Clear To Send), sehingga dalam hal ini perlu ditambahkan
dua
kabel lagi namun dari sisi perangkat lunak tidak dibutuhkan tambahan bit,
sehingga
tidak akan menurunkan laju kecepatan. Pada saat komputer ingin
mengirimkan
data maka akan diaktifkan sinyal RTS, jika modem masih memiliki
ruang
penyimpan sementara (buffer), maka modem akan mengirimkan jawaban
berupa
sinyal CTS.
3.2.5. UART (8250 dan Kompatibelnya)
UART
merupakan kepanjangan dari Universal
Aysnchronous Receiver I
Trasmitter. Seri8250,
yang mencakup 16450, 16550, 16650 dan 16750, merupakan
jenis
UART yang banyak digunakan, pada gambar II.3 ditunjukkan diagram pin
dari
jenis UART ini.Ada kalanya UART ini terpadu dalam suatu chip bersamasama
dengan
kontrol kanal paralel, kanal game, hard disk dan floppy drive.
Keping
16550 merupakan kompatibelnya 8250 dan 16450, perbedaannya
terletak
pada pin 24 dan 29:
Kaki 16550 8250/16450
24
TXRDY CSOUT
29
RXRDY Tidak dihubungkan
Pada
16550 terdapat sinyalTXRDY (Transmit Ready) dan RXRDY (Receive Ready)
yang
dapat digunakan untuk implementasi DMA (Direct
Memory Access) dengan dua
mode
kerja (operasional):
Konsep Komunikasi Serial 8
1. Mode 0 - Single Transfer DMA: lebih dikenal juga dengan mode 16450,
mode
ini diaktifkan dengan cara menon-aktifkan
FIFO
(bit-0 FCR = 0) atau dengan mengaktifkan FIFO dan pemilih mode
DMA
(bit-3 FCR = 1). Sinyal RXRDY
akan aktif (rendah) jika ada (minimal)
sebuah
karakter pada penyangga penerima dan akan kembali non-aktif
(tinggi)
jika tidak ada satupun karakter pada penyangga penerima,
sedangkan
sinyal TXRDY akan aktif jika penyangga pengirim kosong sama
sekali
dan akan kembali non-aktif (tinggi) setelah karakter 1 byte pertama
diisikan
ke penyangga pengirim.
2. Mode 1 - Multi Transfer DMA: dipilih dengan syarat FCR bit-0 = 1 dan
FCR
bit-3 - 1. Pada mode ini, sinyal RXRDY
akan aktif (rendah) jika telah
tercapai
tingkat picuan (trigger level} atau saat munculnya time-out
16550
dan
akan kembali non-aktif jika sudah tidak ada satupun karakter yang
tersimpan
dalam FIFO. Sinyal TXRDY akan aktif (rendah) jika tidak ada
karakterpun
pada penyangga pengirim dan akan non-aktif jika penyangga
pengirim
FIFO sudah betul-betul penuh.
Gambar
3.3. Diagram pin UART 16550 dan 8250/16450
Semua
chip UART kompatibel dengan TTL (termasuk sinyal TxD, RxD, RI, DCD,
DTS,
CTS, DTR dan RTS), dengan demikian diperlukan konverter tingkat RS232
(RS232 level converter) yang berfungsi untuk mengkonversi sinyal TTL menjadi
logika
tingkat RS232. Interupsiin itu UART juga membutuhkan clock untuk
operasionalnya,
biasanya dibutuhkan kristal eksternal dengan frekuensi 1,8432
MHz
atau 18,432 MHz.
Konsep Komunikasi Serial 9
Tabel
3.3. Fungsi PinOut UART 16550 dan 8250/16450
Pin Nama Keterangan
Pin
1:8 D0:D7 Bus Data
Pin
9 RCLK Masukan Clock penerima.
Frekuensinya
harus sama dengan
baud-rate
x26
Pin
10 RD Terima Data
Pin
11 TD Kirim Data
0Pin
12 CS0 Chip select 0 – Aktif Tinggi
Pin
13 CS1 Chip select 1 – Aktif Rendah
Pin
14 CS2 Chip select 2 – Aktif Rendah
Pin
15 BOUDOUT
Keluaran
Baud – Keluaran dari
Pembangkit
Baud Rate Terprogram.
Frekuensi
= (baud rate x 16)
Pin
16 XIN Masukan kristal eksternal –Digunakan
untuk
osilator pembangkit Boud Rate
Pin
17 XOUT Keluran Kristal Eksternal
Pin
18 WR Jalur Tulis – Aktif Rendah
Pin
19 WR Jalur Tulis – Aktif Tinggi
Pin
20 VSS Dihubungkan ke ground
Pin
21 RD Jalur Baca– Aktif Tinggi
Pin
22 RD Jalur Baca – Aktif Rendah
Pin
23 DDIS Drive disable. Pin ini akan rendah saat
CPU
membaca dari UART. Dapat
dihubungkan
bus data kapasitas tinggi
Pin
24 TXRDY Transmit Ready – Siap kirim
Pin
25 ADS Address Store. Digunakan jika sinyal
tidak
stabil interupsima siklus baca
atau
tulis
Pin
26 A2 Bit alamat 2
Pin
27 A1 Bit alamat 1
Pin
28 A0 Bit alamat 0
Pin
29 RXRDY Receive Ready (siap terima data)
Pin
30 INTR Intrrupt Output (keluaran interupsi)
Pin
31 OUT 2 User Output 2 (keluaran
pengguna2)
Pin
32 RTS Reguest to Send (permintaan
pengiriman)
Pin
33 DTR Dat Terminal Ready (Terminal data
siap)
Pin
34 OUT1 User Output 1
Pin
35 MR Master Riset
Konsep Komunikasi Serial 10
Pin
36 CTS Clear To Send
Pin
37 DSR Data Set Ready
Pin
38 DCD Data Carrier Detect
Pin
39 RI Ring Indikator (indicator dering)
Pin
40 VDD + 5 Volt
3.2.6. Tipe-tipe UART
8250
UART pertama pada seri ini. Tidak memiliki register scratch, versi
8250A
merupakan
versi perbaikan dari 8250 yang mampu bekerja dengan lebih
cepat;
8250A
UART ini lebih cepat dibandingkan dengan 8250 pada sisi bus. Lebih
mirip
secara perangkat lunak dibanding 16450;
8250B
Sangat mirip dengan 8250;
16450
Digunakan pada komputer AT dengan kecepatan 38,4 Kbps, masih banyak
digunakan
hingga sekarang;
16550
Generasi pertama UART yang memiliki penyangga, dengan panjang 16-
byte,
namun tidak bekerja (produk gagal) sehingga digantikan dengan
16550A;
16550A
UART yang banyak digunakan pada komunikasi kecepatan tinggi,
misalnya
14,4 Kbps atau 28,8 Kbps;
16650
UART baru, memiliki penyangga FIFO 32-byte, karakter Xon/Xoff terprogram
dan
mendukung manajemen sumber daya;
16750
Diproduksi oleh Texas Instrument, memiliki FIFO 64-byte!
2.3. TINJAUAN PERANGKAT LUNAK
2.3.1. Alamat-alamat Kanal dan IRQ
Tabel
3.4. Alamat Port serial dan nomor IRQ-nya
Nama
Alamat (Heksa) IRQ
COM1 3F8 4
COM2 2F8 3
COM3 3E8 4
COM4 2E8 3
Konsep Komunikasi Serial 11
Tabel
3.5. Informasi pada memori berkaitan dengan Port serial
Alamat
Awal (Heksa) Fungsi
0000:0400 Alamat Dasar COM 1
0000:0402 Alamat Dasar COM 2
0000:0404 Alamat Dasar COM 3
0000:0406 Alamat Dasar COM 4
UART
menyediakan pencacah pembagi 16 (divide
by 16) yang akan membagi
frekuensi
masukan dengan 16. Dengan demikian, jika frekuensi kristalnya 1,8432
MHz,
maka frekuensi kerjanya adalah 115.200 Hz (mampu mengirim dan menerima
dengan
laju kecepatan 115.200 bps). Laju kecepatan ini tidak interupsilu cocok untuk
berbagai
macam alat, dengan demikian digunakan Pembangkit Baud Rate terprogram
(terdiri
dari 2 register).
Misalnya
diinginkan kecepatan 2.400 bps maka 115.200 harus dibagi 48 supaya
menghasilkan
nilai 2.400 Hz. Angka 48 dianggap sebagai "Pembagi" atau "Divisor"
dan
disimpan dalam dua register yang dikontrol oleh bit DLAB (lihat tabel II.6
untuk
DLAB=1),
karena menggunakan register (total) 16-bit maka angkanya antara 0 s/d
65.535.
Gunakan tabel II.6 untuk frekuensi kristal 1,8432 MHz, DLL merupakan
Divisor Latch Low Byte dan DLH merupakan Divisor
Latch High Byte.
Tabel
3.6. Daftar Pembagi (divisor) untuk berbagai kecepatan pengiriman data.
Laju (bps) Pembagian (Desimal) DLH - Heksa DLL – Heksa
50
2304 09h 00h
300
384 01h 80h
600
192 00h C0h
2400
48 00h 30h
4800
24 00h 18h
9600
12 00h 0Ch
19200
6 00h 06h
38400
3 00h 03h
57600
2 00h 02h
115200
1 00h 01h
Konsep Komunikasi Serial 12
Tabel
3.7. Daftar REGISTER-REGISTER
Alamat
Dasar DLAB Baca/Tulis Simbol Nama Register
=0 Tulis -
Transmitter Holding
Buffer
+0 =0 Baca -
Receiver Buffer
=1 Baca/Tulis -
Divisor Latch Low Byte
+1 =0 Baca/Tulis
IER Interrupt Enable Register =1 Baca/Tulis - Divisor Latch High Byte
- Baca IIR
Interrupt Indification
+2 Register
- Tulis FCR FIFO
Control Register
+3 - Baca/Tulis LCR
Line Control Register
+4 - Baca/Tulis MCR
Modem Control Register
+5 - Baca LSR Line
Status Register
+6 - Baca MSR Modem
Status Register
+7 - Baca/Tulis -
Scratch register
IER = INTERRUPT ENABLE REGISTER
Bit Keterangan
Bit
7 Tercadang
Bit
6 Tercadang
Bit
5 Aktifasi Mode Daya Rendah (16750)
Bit
4 Aktifasi Mode Tidur/Sleep (16750)
Bit
3 Aktifasi Interupsi Modem Status (MS), Prioritas -3
Bit
2 Aktifasi Interupsi Receiver Line Status (rls), Prioritas -0
Bit
1 Aktifasi Interupsi Transmitter Holding Register Empty
(THRE),
PRIORITAS-2
Bit
0 Aktifasi Interupsi Received Data Available (RDA),
prioritas-1
Register
IER mungkin satu-satunya register yang mudah dipahami dan simpel.
Interupsi
RDA terjadi jika register penerima (FIFO) berisi data yang akan dibaca
CPU.
Interupsi THRE terjadi saat penyangga pengirim kosong, sedangkan interupsi
RLS
terjadi jika ada perubahan pada status jalur penerimaan (receiver line status),
demikian
juga untuk interupsi MS akan diaktifkan jika ada perubahan pada status
modem.
Konsep Komunikasi Serial 13
IIR = INTERRUPT IDENTIFICATION REGISTER
Bit
Keterangan
Bit 6 Bit 7
0 0 Tidak Pakai
FIFO (8250/16450)
0 1 FIFO aktif tapi
Tak-dapat digunakan (16550)
Bit 6 dan
7
1 1 FIFO aktif
Bit 5 FIFO 64 Byte
aktif (hanya untuk 16750)
Bit 4 Tercadang
Bit 3 0 Tercadang
pada 8250,16450 1 Pada 16550 untuk Time-out Interrupt Pending
Bit 2 Bit 1
0 0 Interupsi Modem
Status
0 1 Interupsi
Transmitter Holding Register Empty
1 0 Interupsi
Received Data Available
Bit 1 dan
2
1 1 Interupsi
Receiver Line Status
Bit 0 0 Penantian
Interupsi (Interrupt Pending) 1
Tidak Ada Penantian Interrupsi (No Interrupt Pending)
Register
IIR merupakan register hanya-baca (read
only). Bit 6 dan 7
menginformasikan
jenis penyangga FIFO, jika keduanya berisi 0, maka UART
yang
bersangkutan tidak memiliki penyangga FIFO. Ini adalah satu-satunya basil,
jika
menggunakan UART seri 8250 atau 16450. Jika Bit-7=l dan bit-6=0, maka
UART
memiliki penyangga FIFO tetapi tdak dapat digunakan dan ini sebagai
'bug' pada
seri 16550. Sedangkan jika kedua bit tersebut berisi 1, maka
penyangga
FIFO berhasil diaktifkan dan berfungsi penuh. Bit-0 digunakan untuk
memberitahukan
ada atau tidaknya interupsi, jika ada interupsi statusnya ditunjuk
can
pada bit 1 dan 2. Interupsi-interupsi ini bekerja berdasar prioritas,
perhatikan
tabel
IER
FCR = FIFO CONTROL REGISTER
Bit Keterangan
Bit
7 Bit 6 Tingkat Pemicu Interupsi
0
0 1 Byte
0
1 4Byte
1
0 8Byte
Bit
6 dan
7
1
1 14Byte
Bit
5 Aktifasi FIFO 64 Byte (Hanya Seri16750)
Bit
4 Tercadang
Bit
3 Pemilihan Mode DMA.Mengubah Status Pin
RXRDY
& TXRDY dari mode 0 ke mode 1
Bit
2 Kosongkan FIFO Pengirim
Bit
1 Kosongkan FIFO Penerima
Bit
0 Aktifasi fifo
Konsep Komunikasi Serial 14
Register
FIFO ini merupakan register tulis-saja (write
only). Register ini
digunakan
untuk mengontrol penyangga FIFO yang dapat ditemukan pada chip
UART
16550 dan yang lebih tinggi. Bit-0 digunakan untuk mengaktifkan FIFO, jika
Anda
menon-aktifkan FIFO tersebut maka data yang tersimpan dalam FIFO juga
akan
hilang.
Bit-1
dan 2 mengontrol penghapusan FIFO pengirim atau pe-nerima. Dengan
men-set
1, isi FIFO akan dibersihkan tanpa mem-pengaruhi register geser. Dua bit ini
juga
bersifat self-resetting, artinya Anda tidak perlu membuat bit ini kenbali 0,
karena
akan dilakukan secara otomatis jika proses selesai dikcrjakan. Bit 3 digunakan
untuk
mengaktifkan pemilihan mode DMA yang dapat ditemukan pada UART 16550
dan
yang lebih tinggi. Sedangkan bit 6 dan 7 digunakan untuk menset tingkat
pemicuan
pada FIFO penerima.
LCR = LINE CONTROL REGISTER
Bit Keterangan
1
Divisor Latch Access Bit (DLAB)
Bit
7 0 Akseske Penyangga Penerima (RX), Pengirim
(TX)
& register Aktivasi Interupsi (IER)
Bit
6 Aktifasi Set Break
Bit
5 Bit 4 Bit 3 Pemilihan Paritas
X
X 0 Tidak Pakai Paritas
0
0 1 Paritas Ganjil
0
1 1 Paritas Genap
1
0 1 Paritas tnggi (Sticky),
Paritas
interupsilu 1
Bit
3,4
dan
5
1
1 1 Paritas tnggi (Sticky),
Paritas
interupsilu 0
Length
of Stop Bit
Bit
2 0 Sati Bit Stop 1 2 bit stop untuk panjang word 6, 7 atau 8 bit
atau
1, 5 bit stop untuk panjang Word 5 bit
Bit
1 Panjang Word
0
5 Bit
0
6 Bit
1
7 Bit
Bit
0 dan
1
1
Bit
0
0
1
0
1
8 Bit
Register
ini digunakan untuk men-set parameter-parameter dasar. Bit-7
sebagai
Divisor Latch Buffer atau DLAB. Bit-6 digunakan untuk mengaktifkan
break, jika
diaktifkan, jalur TxD akan berkondisi "Penspasian" (Spacing) yang
mengakibatkan
pemutusan (break) hubungan dengan UART penerima. Sedangkan
bit
3, 4 dan 5 digunakan untuk pemilihan paritas:
Konsep Komunikasi Serial 15
•
Bit-3 digunakan untuk menentukan dipakai atau tidaknya bit paritas (jika 0
tidak
ada bit paritas);
•
Bit-5 menentukan penggunaan paritas sticky,
yaitu jika bit-5 diaktifkan (=1)
(menggunakan
paritas sticky) dan jika bit-4=0 maka bit paritas akan
interupsilu
dikirim dalam logika 1 dan atau dikirim 0 jika bit-4=l. Jika bit-5
ini
tidak diaktifkan berarti menggunakan mode paritas normal.
Pemeriksaan
kesalahan menggunakan bit paritas memang baik tetapi tidak sempurna: jika ada
salah
satu bit yang terbalik (dari 1 menjadi 0 misalnya) maka tetap akan terdeteksi
terjadinya
kesalahan
paritas (parity error} tetapi jika ada dua bit yang berlawanan (1 dan 0) yang saling
bertukar-tempat,
maka tidak dapat dideteksi adanya kesalahan! Perhatikan ilustrasi pada
gambar
II.4. Sehingga banyak perangkat lunak yang kemudian menggunakan algoritma CRC-
32.
Gambar
3.4. Logika 1 dan 0 yang bertukar tempat tidak menyebabkan error.
Bit-2
digunakan untuk menset panjang atau jumlah bit stop (tergantung dari
panjang
word) sedangkan bit 0 dan 1 digunakan untuk menentukan panjang word apakah
5,
6, 7 atau 8 byte.
MCR = MODEM CONTROL REGISTER
Bit Keterangan
Bit
7 Tercadang
Bit
6 Tercadang
Bit
5 Aktifasi Auto flow Control (hanya seri16750)
Bit
4 Mode Loopback
Bit
3 Keluaran AUX 2
Bit
2 Keluaran AUX 1
Bit
1 Force Reguest to Send
Bit
0 Force Data Terminal Ready
Register
ini bersifat Baca/Tulis. Bit-4 digunakan untuk meng-aktifkan mode loopback.
Dalam
mode ini keluaran serial (pengiriman) dalam kondisi ditandai (marked). Masukan
serial
penerima
diputus-kan. Keluaran pengirim dikirim-kembali (loopbacked) ke
masukar penerima.
Konsep Komunikasi Serial 16
Sinyal-sinyal
DSR, CTS, RI dan BCD diputuskan. DTR, RTS, OUT1 dan OUT2 dihubungkan
ke
masukan kontrol modem. Pin-pin
keluaran
kontrol modem kemudian dinon-aktifkan. Dalam mode ini data apa saja yang
ditempatkan
pada register pengirim untuk keluaran akan diterima oleh rangkaian penerima
dalam
satu chip yang sama sehingga data tersebut akan siap dibaca melalui penyangga
penerima.
Keluaran
AUX 2 dapat dihubungkan dengan rangkaian eks-ternal yang digunakan untuk
mengontrol
proses interupsi UAKT dan CPU. Keluaran AUX 1 normalnya tak terhubungkan,
namun
untuk beberapa kartu digunakan untuk men-swicth
antara penggunaan kristal 1,8432
MHz
dan 4 MHz yang dijumpai pada peralatan MIDI (Music
Instrument Device Interface).
LSR = LINE STATUS REGISTER
Bit Keterangan
Bit
7 Ada Kesalahan Dalam FIFO Penerima
Bit
6 Data Holding Register kosong
Bit
5 Transmitter Holding Register kosong
Bit
4 Break Interrupt
Bit
3 Framing Error
Bit
2 Parity Error
Bit
1 Overrun Error
Bit
0 Data Siap (dibaca)
Register
ini bersifat hanya-baca. Jika bit-6=l, baik register Transmitter Holding
(THR)
dan register geser kosong. Register pe-nahan (holding)
UART menyimpan data
byte
berikutnya yang akan dikirim dengan cara paralel. Register geser digunakan
untuk
meng-ubah
data byte, yang paralel tersebut, menjadi serial sehingga dapat dikirim
melalui
jalur serial. Sedangkan jika bit-5=l hanya THR yang kosong. Lantas apa
perbedaan
keduanya? Jika bit-6=l, THR dan register geser kosong, maka tidak ada
proses
konversi serial, artinya tidak ada aktivitas sama sekali pada jalur pengiriman
data.
Sedangkan
jika bit-5=l, hanya THR saja yang kosong, jadi data byte berikutnya dapat
dikirim
ke kanal data dan register geser masih tetap be-kerja.
Interupsi
break (bit-4) muncul saat jalur penerimaan data ditahan pada ttondisi
logika '0*
atau
spasi interupsima lebih dari waktu yang dibutuhkan untuk mengirimkan satu word
penuh.
Beberapa kesalahan lain bisa muncul sesuai kondisi berikut:
•
Framing error (bit-3) terjadi jika saat bit terakhir yang terkirim bukan suatu
bit
stop
hal ini bisa disebabkan karena kesalahan pewaktuan (timing error};
Konsep Komunikasi Serial 17
• Overrun error (bit-1)
terjadi saat program Anda (komputer) tidak cukup cepat
untuk
membaca dari kanal serial;
Sedangkan
Data ready (bit-0) akan sama dengan 1 jika ada sebuah byte yang
diterima
oleh UART dan penyangga penerima siap untuk dibaca.
MSR = MODEM STATUS REGISTER
Bit Keterangan
Bit
7 Karrier Detect (deteksi Carrier)
Bit
6 Ring Indicator (indicator dering)
Bit
5 Data Set Ready (Set data siap)
Bit
4 Clear To Send (siap untuk mengirim)
Bit
3 Delta Data Carrier Detect
Bit
2 Trailing Edge Ring Indicator
Bit
1 Delta Data Set Ready
Bit
0 Delta Clear to Send
Bit-0
pada register ini menunjukkan delta
clear to send, delta artinya adanya
perubahan
dalam, dengan demikian artinya ada perubahan dalam jalur clear to
send, sejak
pembacaan terakhir dari register ini.
SCRATCH REGISTER
Register
ini tidak digunakan untuk komunikasi namun sebagai tempat untuk
meninggalkan
sebuah byte data. Kenyataannya digunakan untuk menentukan
apakah
UART-nya seri 8250/8250B atau 8250A/16450 dan saat ini tidak
digunakan
karena 8250/8250B tidak pernah dibuat untuk AT serta dapat
mengacaukan
kecepatan bus!
Tidak ada komentar:
Posting Komentar