- Home >
- UART dan USART
Posted by : muhammadwahyu
Selasa, 01 Agustus 2017
Pengertian UART
UART merupakan kepanjangan dari
Universal Asynchronous Receiver I Trasmitter. Seri8250, yang mencakup
16450,16550,16650, dan 16750, merupakan jenis UART yang banyak digunakan, Ada kalanya UART ini terpadu dalam suatu chip bersama-sama dengan
kontrol kanal paralel, kanal game, hard disk dan floppy drive.
Struktur UART
Sebuah
clock generator, biasanya kelipatan dari bit rate untuk memungkinkan
pengambilan sampel di tengah bit.
-Input
dan Output pergeseran register
-Kontrol
mengirim / menerima
-Kontrol
logika untuk membaca / menulis
-Kirim
/ menerima buffer (opsional)
-Paralel
data bus buffer (opsional)
- Pertama –in, first –out (FIFO) memori (opsional)
Dalam mengirim dan menerima data Universal Asynchronous Receiver /
Transmitter (UART) dengan bit individu dan berurutan. UART berisi sebuah
register geser yang merupakan metode dasar konversi antara individu bentuk
serial dan paralel. UART biasanya tidak secara langsung menghasilkan atau
menerima sinyal eksternal digunakan antara item yang berbeda dari peralatan.
Sebuah perangkat interface yang terpisah digunakan untuk mengkonversi sinyal
tingkat logika dari UART dan level sinyal eksternal. Setiap karakter dikirim
sebagai sedikit logika mulai rendah, sejumlah bit dikonfigurasi data (biasanya
7 atau 8, kadang-kadang 5), sebuah bit paritas opsional, dan satu atau lebih
berhenti logika bit tinggi. Pada 5-8 bit berikutnya, tergantung pada kode set
digunakan, mewakili karakter. Setelah data bit mungkin sedikit paritas. Satu
atau dua bit berikutnya selalu dalam tanda (logika tinggi, yaitu, '1 ') negara
dan disebut stop bit (s). Penerima sinyal
karakter yang selesai. Sejak mulai sedikit
logika rendah (0) dan berhenti logika agak tinggi (1) selalu ada demarkasi yang
bit jelas antara katekter sebelumnya dan berikutnya.
# Mengirimkan dan menerima
data serial
Universal Asynchronous Transmitter
Receiver / (UART) mengambil byte data dan mengirimkan bit individual secara
berurutan. [1] Di tempat tujuan, sebuah UART kedua kembali merakit bit menjadi
byte lengkap. Setiap UART berisi sebuah register geser yang merupakan metode
dasar konversi antara bentuk serial dan paralel. Transmisi serial informasi
digital (bit) melalui kawat tunggal atau media lainnya adalah biaya yang jauh
lebih efektif daripada transmisi paralel melalui beberapa
kabel.
UART biasanya tidak secara langsung
menghasilkan atau menerima sinyal eksternal digunakan antara item yang berbeda
dari peralatan. Perangkat antarmuka yang terpisah digunakan untuk mengkonversi
sinyal tingkat logika dari UART dan dari tingkat sinyal eksternal. Sinyal
eksternal mungkin berbagai bentuk. Contoh standar untuk sinyal tegangan RS-232,
RS-422 dan RS-485 dari AMDAL. Secara historis, saat ini (dalam loop arus)
digunakan di sirkuit telegraf. Beberapa Serial Port Profile nya (SPP). Beberapa
skema sinyal menggunakan modulasi dari sinyal pembawa (dengan atau tanpa
kabel). Contohnya adalah modulasi sinyal audio dengan modem saluran telepon, RF
modulasi dengan radio data, dan DC-LIN untuk komunikasi
power line.
Komunikasi dapat "full
duplex" (keduanya mengirim dan menerima pada waktu yang sama) atau
"half duplex" (perangkat bergiliran transmisi dan menerima).
#Transmitter
Pada
posisi pemancar, transmisi berlangsung dalam
sebuah operasi sederhana, karena berada di bawah kontrol dari sistem transmisi.
Setelah data disimpan dalam register geser, hardware UART menghasilkan mulai
sedikit, menggeser jumlah yang diperlukan bit data ke dalam baris, menghasilkan
dan menambahkan bit paritas (jika digunakan), dan menambahkan sedikit berhenti.
Karena transmisi karakter tunggal dapat memakan waktu yang lama
relatif terhadap kecepatan CPU, UART akan mempertahankan bendera yang
menunjukkan status dari host sibuk, sehingga sistem tidak menyimpan karakter baru
untuk transmisi sampai sebelumnya telah selesai, dapat juga dilakukan dengan
interrupt.
Karena full-duplex operasi membutuhkan karakter
yang akan dikirim dan diterima pada saat yang sama, UART menggunakan dua shift
register yang berbeda untuk karakter karakter ditransmisikan dan diterima.
#RECEIVER
Semua hardware UART operasi dikendalikan oleh
sinyal clock yang berjalan pada beberapa data rate - setiap bit data untuk 16
jam pulsa. Receiver menguji kondisi sinyal yang masuk di setiap pulsa clock.
Jika bit tersebut terjadi, satu-setengah dari waktu, dianggap untuk bertemu dan
merupakan sinyal awal dari sebuah karakter baru. Setelah menunggu lama, tingkat
clock yang dihasilkan ke sebuah register geser. Setelah jumlah yang diperlukan
bit untuk jangka waktu yang lama karakter (5 sampai 8 bit, biasanya) telah
berlalu, isi dari register geser yang tersedia (dalam modus paralel) ke sistem
penerima. UART akan menetapkan bendera yang menunjukkan data baru tersedia, dan
juga dapat menghasilkan interupsi prosesor untuk meminta prosesor host transfer
data yang diterima .
Sebuah UART biasanya berisi komponen dari sebuah
clock generator, biasanya kelipatan dari bit rate untuk memungkinkan
pengambilan sampel dalam periode bit.Input tengah dan register keluaran
bergeser. Mengirim / menerima kontrol. Membaca / menulis kontrol logika.
Mengirim / menerima buffer (opsional). Paralel data bus buffer (opsional).
Pertama-in, first-out (FIFO) memori (opsional). UART mengambil byte data dan
mengirimkan bit individual secara berurutan. Setiap UART berisi sebuah register
geser yang merupakan metode dasar konversi antara bentuk serial dan paralel.
UART biasanya tidak secara langsung menghasilkan atau menerima sinyal eksternal
digunakan antara item yang berbeda dari peralatan. Setiap karakter dikirim
sebagai logika dengan pengiriman awal nilai rendah, jumlah bit data
dikonfigurasi (biasanya 7 atau 8, kadang-kadang 5), sebuah bit paritas
opsional, dan satu atau lebih berhenti logika bit tinggi. Bit pada penerima
sinyal dan kemudian dilanjutkan dengan bit 5-8 berikutnya, tergantung pada kode
set digunakan, mewakili karakter. Setelah itu, satu atau dua bit berikutnya
selalu dalam keadaan logika tinggi, yaitu, '1 'dan disebut stop bit (s).
Penerima sinyal selesai. Pada logika rendah (0) dan stop bit logika tinggi (1),
ada demarkasi yang jelas antara karakter sebelumnya dan berikutnya.
Keping 16550 merupakan kompatibelnya 8250 dan 16450, perbedaannya
terletak pada pin 24 dan 29:
Kaki 16550
8250/16450
24 TXRDY
CSOUT
29 RXRDY
Tidak diihubungkan
Pada 16550 terdapat sinyal TXRDY (Transmit
Ready) dan RXRDY (Receive Ready) yang dapat digunakan untuk implementasi DMA
(Direct Memory Access) dengan dua mode kerja (operasional).
1.
Mode 0 - Single Transfer
DMA: lebih dikenal juga dengan mode 16450,mode ini diaktifkan dengan cara
menon-aktifkanFIFO (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.
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.
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.
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
|
Pin 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 CPUmembaca 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
|
OUT2
|
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
|
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
|
Tipe-tipe UART
-
8250
UART pertama pada seri ini.Tidak memiliki register scratch, versi 8250A
meruoakan versi perbaikan dari 8250 yang mampu bekerja dengan lebih cepat;
-
8250A
UART ini labih cepat dibandingkan dengan 8250 pada sisi bus. Lebih mirip secara
perangkat lunak disbanding 16450
-
8250B Sangat mirip dengan 8250;
-
16540
Digunakan pada computer 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;
a. 16550A UART yang banyak
digunakan pada komunikasi kecepatan tinggi, misalnya 14,4 Kbps atau 28,8 Kbps;
b. 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!
PENGERTIAN USART
USART (Universal Synchronous-Asynchronous Receiver and Transmiter),
merupakansalahsatu mode komunikasi yang dimilikiolehMikrokontroler ATMega8535.
USART memiliki 2 pin (RxDdanTxD) untuk Asynchronous dan 3 bit TxD, RxD,
xCKuntuk Synchronous
USART (Universal Synchronous-Asynchronous Receiver and Transmitter)
USART
merupakankomunikasi yang memilikifleksibilitastinggi, yang
dapatdigunakanuntukmelakukan transfer data baikantarmikrokontrolermaupundenganmodul-moduleksternaltermasuk
PC yang memilikifitur UART.
USART
memungkinkantransmisi data baiksecarasyncrhronousmaupunasyncrhronous,
sehinggadenganmemiliki USART pastikompatibeldengan UART. Pada ATmega8535,
secaraumumpengaturan mode syncrhronousmaupunasyncrhronousadalahsama.
Perbedaannyahanyalahterletakpadasumber clock saja. Jikapada mode
asyncrhronousmasing-masing peripheral memilikisumber clock sendiri, makapada
mode syncrhronoushanyaadasatusumber clock yang digunakansecarabersama-sama.
Dengandemikian, secara hardware untuk mode asyncrhronoushanyamembutuhkan 2 pin
yaitu TXD dan RXD, sedangkanuntuk mode syncrhronousharus 3 pin yaitu TXD, RXD
dan XCK.
Komunikasi serial data antara master dan slave
pada SPI diaturmelalui 4 buah pin yang terdiridari SCLK, MOSI, MISO, dan SS.
SCLK dari master ke slave yang berfungsisebagai
clock
MOSI jalur data dari master danmasukkedalam
slave
MISO jalur data keluardari slave
danmasukkedalam master
SS
(slave select) merupakan pin yang berfungsiuntukmengaktifkan slave
USART Data Register
(UDR)
Register inimerupakan register paling pentingdalamkomunikasi serial ini.
Sebab data yang dikirimkeluarharusditempatkanpadareisterini. Register
iniberfungsisebagai buffer untukmenyimpan data, baik yang akandikirimmaupun
yang diterima.
USART Control and Status
Register A
Mempunyai 8bit yang memilikifungsimasing-masing:
Bit 7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
|||||
RXC
|
TXC
|
UDRE
|
FE
|
DOR
|
PE
|
U2X
|
MPCM
|
|||||
R
|
R/W
|
R
|
R
|
R
|
R
|
R/W
|
R/W
|
|||||
0
|
0
|
1
|
0
|
0
|
0
|
0
|
0
|
|||||
*) Bit-7 / RXC
:
|
(USART Receive Complete), digunakanuntukmengetahuipenerimaan
data, jikabernilai 1 makaada data baru yang diterima RXB danbelumterbaca,
danjikabernilai 0 makasebaliknya.
|
|||||||||||
*) Bit-6 /
TXC :
|
(USART Transmit Complete), digunakanuntukmengetahuipengiriman
data, jikabernilai 1 makaada data baru yang diterima TXB danbelumterbaca,
danjikabernilai 0 makasebaliknya.
|
|||||||||||
*) Bit-5 / UDRE :
|
(USART Data Register Empty), digunakanuntukmengetahuiisi UDR,
jikabernilai 1 maka register UDR kosong, danjikabernilai 0 makasebaliknya.
|
|||||||||||
*) Bit-4 /
FE :
|
(Frame Error), digunakanuntukmengetahuiterjadinya frame error
padapenerimaan data.
|
|||||||||||
*) Bit-3 / DOR
:
|
(Data Over Run), digunakanuntukmengetahuikondisi over run
dimana data yang masukterlalucepat.
|
|||||||||||
*) Bit-2 /
PE :
|
(Parity Error), digunakanuntukmengetahuiterjadinya parity
error.
|
|||||||||||
*) Bit-1 /
U2X :
|
(Double the Usart Transmission Speed),
digunakanuntukmembuatkecepatan transfer data menjadi 2x lipat.
|
|||||||||||
*) Bit-0 / MPCM :
|
(MultiProcessor Communication Mode), digunakanpadakomunikasi
multi prosesor.
|
|||||||||||