2 bab 2 landasan teori 2.1 programmable logic...
Post on 30-Jan-2018
216 Views
Preview:
TRANSCRIPT
7
2 BAB 2
LANDASAN TEORI
2.1 Programmable Logic Controller ( PLC )
Kemajuan teknologi yang berkembang pesat dewasa ini mengakibatkan
industri sebagai produsen/penghasil barang menggunakan cara-cara otomasi untuk
meningkatkan jumlah barang yang diproduksinya secara efektif dan efisien. Dan
sebagai peralatan kontrol otomatis adalah PLC yang sekarang banyak digunakan.
Nama PLC diberikan oleh sebuah asosiasi yang bernama National Electrical
Manufacture Association (NEMA) pada tahun 1978. PLC adalah sebuah relay
elektronik yang dioperasikan secara digital menggunakan memory yang dapat
diprogram sebagai tempat penyimpanan instruksi-instruksi untuk
mengimplementasikan fungsi-fungsi seperti operasi logika, operasi sekuensial,
pewaktuan (timing), pencacah (counter) sampai pengendali aritmatika. (Willhelm,
1992, p.7-8).
PLC pertama kali digunakan sekitar tahun 1960-an untuk menggantikan
peralatan konvensional yang begitu banyak. Perkembangan PLC saat ini sangat
pesat sehingga bentuk dan ukurannya semakin kecil.
8
2.1.1 Arsitektur PLC
PLC biasanya terdiri dari 4 bagian utama yaitu pusat pemrosesan data (data
process center), modul masukan/keluaran (input/output module), pemrograman
(programmer), dan catu daya (power supply), seperti yang ditunjukkan pada
Gambar 2.1.
Gambar 2.1 Elemen-elemen dasar PLC
2.1.2 Komponen Internal PLC
PLC biasanya terdiri dari sebuah CPU, area memori, dan rangkaian untuk
menerima data masukan/keluaran (input/output). Gambar 2.2 menggambarkan PLC
sebagai sebuah kotak, yang terdiri dari ratusan atau ribuan relay yang terpisah ,
pencacah (counter), timer dan tempat penyimpanan data. Relay-relay ini
disimulasikan melalui lokasi bit dalam register.
9
Gambar 2.2 Komponen PLC
Fungsi masing-masing bagian tersebut adalah :
1. Relay Masukan (Input Relay)
Bagian ini terhubung langsung dengan dunia luar. Relay masukan ada
secara fisik dan menerima sinyal dari saklar ( switch ), sensor, dan lain-lain.
Sebenarnya relay masukkan bukanlah relay dalam arti sebenarnya, melainkan
transistor yang difungsikan sebagai relay.
2. Internal Utility Relay
Bagian ini secara fisik tidak ada dan tidak menerima sinyal dari dunia luar.
Bagian ini merupakan simulasi dari fungsi sebuah relay dengan tujuan untuk
mengurangi relay eksternal.
10
3. Pencacah (Counter)
Bagian ini tidak memiliki bentuk fisik karena merupakan sebuah simulasi.
Pencacah diprogram untuk menghitung pulsa (clock) yang masuk . Dikarenakan
bagian ini hanya sebuah simulasi, kecepatan berhitungnya terbatas.
4. Timer
Bagian ini tidak memiliki bentuk fisik karena merupakan sebuah simulasi.
Timer memiliki banyak jenis dan increment. Jenis timer yang paling sering
dijumpai adalah jenis ON-delay, selain itu jenis lainnya adalah OFF-delay. Jenis
increment-nya bervariasi dari 1 milidetik sampai 1 detik.
5. Relay Keluaran (Output Relay)
Bagian ini memiliki bentuk fisik dan terhubung dengan dunia luar relay
keluaran mengirim sinyal aktif/non-aktif (ON/OFF) ke beban seperti lampu,
solenoid, dan lain-lain. Relay keluaran dapat berupa transistor, relay, ataupun triac,
tergantung dari model yang dipilih.
6. Penyimpan Data
Bagian ini mempunyai register yang berfungsi untuk mempermudah
penyimpan data. Penyimpan data digunakan sebagai tempat penyimpanan
sementara dari hasil perhitungan atau manipulasi data. Selain itu, juga dapat
digunakan untuk menyimpan data ketika cattu daya (power) PLC dimatikan.
11
2.1.3 Operasi PLC
PLC bekerja dengan cara menelusuri (scanning) program yang sudah
dimasukkan sebelumnya. Siklus penelusuran biasanya lebih dari 3 tahap, tetapi
difokuskan pada bagian yang penting saja. Bagian-bagian lainnya hanya memeriksa
sistem dan memperbaharui pencacah internal (updating internal counter) dan nilai
timer. Berikut adalah 3 tahap penting dari siklus penelusuran PLC seperti yang
dapat dilihat pada gambar 2.3.
Gambar 2.3 Siklus penelusuran PLC
Proses operasi PLC adalah sebagai berikut:
1. Periksa status masukan (Check Input Status)
Pada langkah ini, PLC melihat keadaan setiap masukan yang ada untuk
menentukan kondisi setiap masukan tersebut apakah pada keadaan aktif atau non-
aktif. Dengan kata lain, apakah sensor yang terhubung dengan masukan pertama
12
aktif/tidak aktif, masukan kedua aktif/tidak aktif, dan seterusnya. PLC akan
menyimpan data masukan tersebut ke memori untuk dapat digunakan pada
langkah berikutnya.
2. Eksekusi program (Execute Program)
Pada langkah kedua, PLC akan mengeksekusi program yang tersimpan di
dalam memori per instruksi. Misalkan program menginginkan jika masukan
pertama aktif, maka program tersebut harus mengaktifkan keluaran pertama.
Dikarenakan program yang ada telah mengetahui masukan-masukan mana saja
yang aktif/tidak aktif dari langkah sebelumnya, maka program tersebut akan
menentukan apakah keluaran pertama harus diaktifkan atau dinon-aktifkan
berdasarkan kondisi dari masukan pertama yang diterimanya. Setelah itu, program
akan menyimpan hasil eksekusi tersebut dengan tujuan untuk dapat digunakan
pada langkah selanjutnya.
3. Pembaharuan status keluaran (Update Output Status)
Pada langkah terakhir ini, PLC memperbaharui kondisi keluaran
berdasarkan masukan mana yang aktif pada langkah pertama dan hasil eksekusi
program yang dimasukkan pada langkah kedua. Berdasarkan contoh pada langkah
kedua, PLC akan mengaktifkan keluaran pertama karena masukan pertama sudah
aktif dan program menginstruksikan agar keluaran pertama diaktifkan pada saat
kondisi ini benar. Setelah langkah ini dilalui, PLC akan kembali ke langkah
pertama dan menelusuri ulang langkah-langkah tersebut secara terus menerus.
13
Satu kali penelusuran dapat diartikan sebagai waktu yang diperlukan untuk
mengeksekusi 3 langkah diatas.
2.1.4 Pemanfaatan PLC
Dari analisis yang dilakukan diperoleh bahwa berdasarkan survey terhadap
1500 responden yang dilakukan oleh majalah Control Engineering pada gambar
2.4 diketahui bahwa mayoritas reponden dari pemakaian dari PLC dikhususkan
untuk pengontrolan mesin kemudian untuk pengontrolan proses.
Gambar 2.4 Hasil survey mengenai penggunaan PLC saat ini
Kemudian berdasarkan hasil survey yang lain terhadap 1500 responden
yang juga dilakukan oleh majalah Control Engineering yang pada gambar 2.5
diketahui bahwa mayoritas responden meramalkan untuk di masa depan PLC
akan lebih condong untuk dapat memberikan pengaturan I/O secara jarak jauh dan
14
dapat diberikan I/O dari luar PLC. secara umum terkait dengan perkembangan
PLC untuk jaringan.
(McBride, 2001. http://www.manufacturing.net/ctl/article/CA190203)
Gambar 2.5 Hasil survey mengenai masa depan PLC
2.1.5 Perkembangan PLC
Berdasarkan artikel “PLC’s Alive, Healthy, Competing” dan artikel
lainnya perkembangan-perkembangan PLC yang telah dilakukan sampai saat ini
antara lain:
Mosaic Industries telah mengeluarkan PLC dengan GUI menggunakan touch-
screen dengan resolusi 320 x 240 pixel electroluminescent graphic display.
(Fusaro, 2003. http://www.controldesign.com/articles/2003/139.html)
Modul komunikasi ethernet H0-ECOM dari AutomationDirect memberikan
10 Mbit Ethernet link untuk sistem-sistem PLC. Dapat digunakan untuk
15
komunikasi peer-to-peer antara dua atau lebih PLC DirectLogic DL05/DL06
PLCs dengan komputer.
(Fusaro, 2003. http://www.controldesign.com/articles/2003/139.html)
Sixnet mengeluarkan SixTrax IPm Open DCS Controller yang dibuat
menggunakan platform linux dan memiliki server web yang dibuat oleh
perangkat pengembangan HTML standar.
(Fusaro, 2003. http://www.controldesign.com/articles/2003/139.html)
Rockwell Automation ControlLogix 1756-L61 dan L62 memiliki
kemampuan memori dan prosesor yang cepat untuk aplikasi drive-system,
kemudian juga memiliki co-prosesor matematis floating-point sehingga
kemampuan eksekusi logika diskrit-nya menjadi dua kali lebih cepat dari seri
1756-L55.
(Kuehn,2003. http://www.controldesign.com/articles/2003/293.html)
OpenNet Controller dari IDEC mengeluarkan modul CPU yang memiliki slot
untuk memori flash eksternal.
(Kuehn, 2003. http://www.controldesign.com/articles/2003/293.html)
Omege Engineering memperkenalkan OM-LMPLC sebagai PLC yang
digunakan untuk uji coba laboratorium, dimana desainnya ditujukan untuk
percobaan uji durabilitas atau ketahanan.
(McBride, 2001. http://www.manufacturing.net/ctl/article/CA190203)
16
2.2 FPGA ( Field Programmable Gate Array)
Arsitektur FPGA spartan 3 family terdiri dari 5 “fundamental programmable
functional elements” yaitu :
Configurable Logic Block (CLB) mengandung suatu look-up table yang
berbasiskan RAM untuk mengimplementasikan logika dan penyimpanan (flip-
flop atau latch) yang bisa diprogram.
Input Output Block (IOB) mengatur aliran data antara pin I/O dan alat yang
digunakan. Setiap IOB mendukung aliran data dua arah dan 3-state operation.
Block Ram menyediakan tempat penyimpanan data dalam bentuk 18-Kbit dual-
port block.
Multiplier block dapat menerima dua data 18-bit biner sebagai input dan
menghitung hasil perkaliannya.
Digital Clock Manager block (DCM) berfungsi untuk mengatur distribusi,
delay, perkalian, pembagian, dan penggeseran fase dari sinyal clock.
Gambar 2.6 Arsitektur keluarga Spartan-3 FPGA
17
2.2.1 IOB
IOB menyediakan antar-muka dua arah yang dapat di program antara pin-
pin I/O dengan internal logic FPGA. Pada IOB terdapat tiga path sinyal utama
yakni output path, input path, dan three-state path. Setiap path memiliki pasangan
elemen penyimpannya sendiri yang dapat diatur sebagai register atau latch. Semua
path memiliki inverter yang bisa dipakai kalau dibutuhkan.
2.2.1.1 Input Path
Input path membawa data dari pad yang terikat pada pin paket, melalui
elemen pilihan delay yang dapat diprogram langsung menuju ke internal logic.
Setelah elemen delay, ada juga rute alternatif melalui pasangan elemen penyimpan
menuju ke internal logic FPGA.
2.2.1.2 Output Path
Output path membawa data dari internal logic FPGA melalui sebuah
multiplexer dan kemudian sebuah three-state driver ke pad IOB. Sebagai tambahan,
multiplexer juga menyediakan sepasang elemen penyimpan.
2.2.1.3 Three-State Path
Menentukan kapan output driver ber-impendansi tinggi. Three-state path
membawa data dari internal logic FPGA melalui sebuah multiplexer menuju ke
output driver. Sebagai tambahan, multiplexer juga menyediakan sepasang elemen
penyimpan.
18
2.2.1.4 Fungsi Elemen Penyimpan (Storage Element)
Pada setiap IOB terdapat tiga pasang elemen penyimpan, masing-masing
sepasang untuk ketiga path yang ada. Setiap elemen penyimpan tersebut dapat
dikonfigurasi sebagai edge-trigered D flip-flop (FD) atau sebagai level-sensitive
latch (LD).
Pasangan elemen penyimpan baik pada output path (OFF1 dan OFF2)
ataupun three-state path (TFF1 dan TFF2) dapat dipakai secara bersamaan
menggunakan sebuah multiplexer khusus untuk menghasilkan Double-Data-Rate
(DDR) Transmission. Hal tersebut dilakukan dengan mengambil data yang sinkron
terhadap sinyal clock rising edge kemudian di konversi menjadi bit-bit yang sinkron
baik pada rising maupun falling edge. Kombinasi dari dua buah register dan sebuah
multiplexer biasa disebut juga sebagai Double-Data-Rate D flip-flop (FDDR),
disebut begitu dikarenakan kombinasi dari register dan multiplexer tersebut
digunakan untuk melakukan transmisi Double-Data-Rate.
19
Gambar 2.7 Struktur IOB
20
Tabel 2.1 Penjelasan Sinyal Pada IOB
Sinyal Elemen
Penyimpan
Deskripsi Fungsi
D Data Input Data pada input ini disimpan pada saat CK active edge
dan CE enable. Untuk operasi Latch ketika input enable,
data dipindah langsung ke output Q
Q Data
Output
Data pada output ini mencerminkan status keadaan
elemen penyimpan. Untuk operasi sebagai Latch dalam
mode transparan Q merupakan cerminan data D.
CK Clock Input Sebuah sinyal active edge dengan CE enable, memasukan
data ke dalam elemen penyimpan.
CE Clock
Enable
Input
Berfungsi membuat enable CK ketika di aktifkan.
SR Set/Reset Menjadikan elemen penyimpan pada kondisi yang
ditentukan oleh atribut SRHIGH/SRLOW. Atribut
SYNC/ASYNC menentukan input SR ter-sinkron
terhadap clock atau tidak.
REV Reverse Digunakan bersama dengan SR. Menjadikan elemen
penyimpan pada kondisi yang berlawanan dari yang
ditentukan SR.
21
2.2.1.5 Transmisi Double Data Rate
Transmisi Double-Data-Rate dilakukan dengan menggunakan sebuah teknik
untuk mensinkronisasi sinyal untuk sinyal clock baik rising atau falling edge dan
menggunakan seluruh pasangan register yang ada pada IOB path. Pasangan elemen
penyimpan pada output path IOB (OFF1 dan OFF2) dan three-state path IOB (TFF1
dan TFF2) digunakan sebagai register digabungkan dengan multiplexer khusus akan
membentuk DDR D flip flop (FDDR).
Pasangan elemen penyimpan pada input path IOB (IFF1 dan IFF2)
digunakan oleh sebuah I/O untuk menerima sinyal DDR. Sebuah sinyal DDR yang
datang memicu satu register dan sinyal clock inverted memicu register yang
lainnya. Dengan cara ini register mengambil giliran dalam menangkap bit-bit dari
sinyal DDR yang datang.
Disamping dari tingginya bandwidth dalam transfer data, DDR juga dapat
digunakan untuk menghasilkan ulang sinyal clock pada output. Pendekatan
semacam ini digunakan untuk mengirim sinyal clock dan data secara bersamaan.
Pendekatan serupa juga digunakan untuk menghasilkan ulang sebuah sinyal clock
pada banyak output.
2.2.1.6 Resistor Pull-Up dan Pull-Down
Pull-up digunakan untuk menetapkan level high, dan pull-down untuk low
pada I/O. Resistor pull-up menghubungkan setiap pad IOB ke Vcco. Resistor pull-
down menghubungkan setiap pad IOB ke GND.
22
2.2.1.7 Keeper Circuit
Setiap I/O memiliki sebuah sirkuit keeper yang dapat dipilih yang berfungsi
menjaga level logika terakhir pada sebuah jalur ketika semua driver telah mati. Hal
ini berguna untuk menjaga jalur bus agar tidak mengambang ketika semua driver
yang terhubung berada dalam keadaan impedansi tinggi. Resistor pull-up dan pull-
down yang mengendalikan sirkuit keeper.
2.2.1.8 Proteksi ESD
Setiap I/O memiliki dua buah diode clamp. Diode-diode clamp digunakan
untuk mencegah terjadinya kerusakan akibat electro static discharge. Namun
kerugiannya adalah terbatasnya kemampuan perangkat untuk mentoleransi sinyal
dengan tegangan lebih tinggi.
2.2.1.9 Kontrol Slew Rate
Ada dua buah pilihan untuk mengontrol keluaran slew rate yaitu FAST dan
SLOW. Pilihan FAST mendukung switching berkecepatan tinggi. Sementara
pilihan SLOW mengurangi transien bus
2.2.1.10 Digitaly Controlled Impedance (DCI)
Berfungsi sebagai pengganti resistor terminasi yang berfungsi untuk
menjaga agar round-trip delay pada sinyal output tidak melebihi waktu rise dan fall.
Pada DCI terdapat dua buah on-chip termination: terminasi paralel memanfaatkan
23
jaringan resistor yang terintegrasi. Sementara pengontrolan impendansi dari driver
output menghasilkan terminasi seri. DCI secara aktif menyesuaikan baik terminasi
paralel maupun seri secara akurat menyamakan dengan karakteristik impedansi dari
jalur transmisi. Proses penyesuaian ini menggantikan perbedaan pada impednasi I/O
yang dapat dihasilkan dari variasi normal dari suhu lingkungan, supply tegangan,
dan proses manufaktur. Ketika driver output mati, terminasi seri mendekati
impedansi tinggi, sementara resistor-resistor terminasi paralel tetap pada nilai yang
ditentukan.
2.2.1.11 Organisasi IOB
IOB dialokasikan menjadi delapan bank. Masing-masing sisi dari chip
FPGA terdapat dua bank.
Gambar 2.8 Organisasi Bank IOB
24
2.2.2 CLB
CLB mendasari logic resource utama untuk mengimplementasikan baik
logika sinkronus ataupun kombinasional. Setiap CLB terdiri atas slice-slice yang
saling terhubung. Slice-slice tersebut tergabung dalam pasang-pasangan. Setiap
pasangan terorganisasikan sebagai kolom dengan carry chain yang saling bebas.
Gambar 2.9 Pengaturan Slice-slice dalam CLB
Gambar diatas merupakan contoh CLB yang terletak pada bagian kiri bawah
sebuah chip. Ke-empat slice-nya pada umumnya memiliki elemen-elemen berikut:
dua buah logic function generator, dua buah elemen penyimpan, multiplexer
multifungsi, carry logic, dan gerbang aritmatika. Kedua pasangan slice pada kolom
kiri maupun kanan menggunakan elemen-elemen tersebut untuk memberikan fungsi
logika, aritmatika, dan ROM. Selain itu pasangan slice kolom kiri mendukung dua
buah fungsi tambahan yakni: penyimpanan data menggunakan RAM yang
terdistribusi serta shifting data dengan register 16-bit.
25
Gambar 2.10 Skematik sebuah Slice
Gambar diatas merupakan skematik dari slice kolom kiri yang juga dapat
merepresentasikan seluruh elemen dan koneksi yang dijumpai pada seluruh slice.
Function Generator yang berbasiskan RAM atau dikenal sebagai look-up table
LUT, merupakan sumber utama dalam mengimplementasikan fungsi-fungsi logika.
26
Lebih jauh lagi. LUT pada setiap pasangan slice kolom kiri dapat dikonfigurasikan
sebagai RAM yang terdistribusi atau shift register 16-bit.
Elemen penyimpanan, yang dapat di program baik sebagai D flip-flop atau
level-sensitive latch mampu mensinkronisasi data dengan sinyal clock. Multiplexer
multifungsi secara efektif menggabungkan LUT sehingga dapat melakukan operasi
logika yang lebih kompleks. Carry Chain, bersama-sama dengan berbagai macam
gerbang aritmatik, mendukung implementasi operasi matematis yang cepat dan
efisien.
2.2.2.1 Function Generator
Seperti pada gambar diatas setiap LUT (F dan G) memiliki empat buah logic
input (A1 sampai A4) dan sebuah output (D). Dengan demikian empat buah
variable operasi boolean logic dapat di program ke dalamnya. Lebih jauh lagi
multiplexer multifungsi digunakan untuk menggabungkan LUT yang terdapat
dalam CLB yang sama atau antar CLB yang berbeda. Selain itu LUT juga dapat di
fungsikan sebagai ROM yang di inisialisasi dengan data pada saat di konfigurasi.
Fungsi tambahan LUT kolom kiri seperti yang telah disebutkan sebelumnya
yakni dapat berfungsi sebagai RAM terdistribusi. Memori semacam ini dapat
berperan sebagai penyangga data sepanjang data-path. Setiap pasangan LUT kolom
kiri mampu menampung data 16-bit. Sebuah pilihan dual-port menggabungkan dua
buah LUT sehingga akses memori dari jalur data yang saling bebas dapat tersedia.
Fungsi lainnya adalah sebagai 16-bit Shift Register. Setiap LUT dapat
melakukan delay terhadap data serial dari satu sampai 16 siklus clock. Empat buah
27
LUT kolom kiri dalam sebuah CLB dapaat dikombinasikan untuk menghasilkan
delay sampai dengan 64 siklus clock.
2.2.3 Block RAM
Block RAM terorganisasi kedalam 18 Kbit blok-blok sinkron yang dapat
dikonfigurasi. Apabila dibandingkan dengan RAM yang terdistribusi, Block RAM
dapat menyimpan data dengan jumlah yang lebih banyak dan lebih efisien. Selain
itu sejumlah Block RAM dapat di gandeng untuk membentuk sebuah memori yang
memiliki kemampuan lebih besar. Block RAM dan multipliers mempunyai
interkoneksi didalamnya sehingga dapat dilakukan operasi simultan antara
keduanya. Struktur internal Block RAM secara umum terdiri atas dua port; port A
dan port B. Dua buah data port yang identik tersebut mempunyai akses bebas ke
sebuah blok RAM dengan kapasitas maksimum18,432 bit atau 16,384 ketika baris
paritas tidak digunakan. Setiap port memiliki set jalur data, control, dan clock
masing-masing untuk operasi-operasi read dan write yang sinkron.
2.2.4 Dedicated Multipliers
Semua alat Spartan 3 menyediakan embedded multipliers yang menerima
dua word 18 bit sebagai input untuk mendapatkan hasil 36 bit. Bus input ke
multiplier menerima data dalam bentuk two’s complement (bisa signed 18 bit atau
unsigned 17 bit). Multiplier yang bersangkutan dicocokan ke tiap Block RAM.
Jarak fisik yang dekat antara kedua modul menjamin data handling yang efisien.
Meng-cascade multiplier memungkinkan pengalian lebih dari tiga angka dan lebih
besar dari 18 bit. Multiplier diletakkan dalam disain menggunakan salah satu dari
28
dua primitive: sebuah versi asynchronous disebut MULT18X18 dan sebuah versi
dengan sebuah register pada output yang disebut MULT18X18S.
Sistem CORE generator menghasilkan multiplier berdasarkan primitive ini
yang dapat dikonfigurasi untuk memenuhi berbagai macam syarat.
2.2.5 Digital Clock Manager (DCM)
Spartan-3 menyediakan control penuh dan fleksibel terhadap frekuensi
clock, phase shift dan skew menggunakan fitur Digital Clock Manager (DCM).
Untuk melakukan ini, DCM menggunakan Delay Lock Loop (DLL), sebuah system
kontrol digital yang menggunakan feedback untuk mempertahankan karakteristik
sinyal clock dengan presisi tinggi walaupun dengan variasi temperature dan voltase
pada saat operasi.
Tiap jenis dari Spartan-3 memiliki empat DCM, kecuali yang terkecil, yaitu
XC3S50, yang memiliki dua DCM. DCM terletak di ujung dari kolom Block RAM
terluar. Digital Clock Manager diletakkan dalam disain sebagai primitive DCM.
DCM bisa melakukan tiga fungsi utama:
Clock-skew Elimination: Clock-skew adalah lamanya signal clock, pada
keadaan normal, berdeviasi dari batas zero-phase.Hal ini terjadi pada saat
perbedaan kecil dalam path delay menyebabkan sinyal clock tiba pada point
berbeda dan pada waktu berbeda. Clock skew ini bisa menaikkan waktu set-up
dan hold begitu juga waktu clock-to-out, yang mungkin tidak diinginkan dalam
aplikasi yang bekerja pada frekuensi tinggi, dimana timing adalah penting.
DCM menghilangkan clock skew dengan cara menjajarkan sinyal clock output
yang dihasilkan dengan versi lain dari sinyal clock yang di feed back. Sebagai
29
hasilnya, kedua sinyal clock membentuk hubungan zero-phase. Hal ini secara
efektif menghilangkan delay distribusi clock yang mungkin terdapat pada jalur
sinyal yang menuju dari output clock DCM ke feedback inputnya.
Frequency Synthesis : Bila diberikan sinyal clock input, DCM dapat
membangkitkan frekuensi clock output yang beragam. Hal ini dicapai dengan
cara mengalikan dan atau membagi frekuensi dari sinyal clock input dengan
beberapa macam factor.
Phase Shifting : DCM memberikan kemampuan untuk men-shift fase dari
semua sinyal clock outputnya berdasarkan sinyal clock inputnya.
DCM memiliki empat komponen fungsional: Delay-Locked Loop (DLL),
Digital Frequency Synthesizer (DFS), Phase Shifter (PS), dan Status Logic.
Gambar 2.11 Blok fungsi DCM
30
2.2.5.1 Delay-Locked Loop (DLL)
Fungsi paling sederhana dari DLL adalah untuk menghilangkan clock skew.
Path sinyal utama dari DLL terdiri dari tahap input, diikuti serangkaian elemen
delay diskrit atau taps, yang akan menuju ke tahap output.
DLL memiliki dua input clock, CLKIN dan CLKFB, begitu juga dengan
tujuh clock output, CLK0, CLK90, CLK180, CLK270, CLK2X, CLK2x180, dan
CLKDV.
Sinyal clock yang diberikan pada input CLKIN berfungsi sebagai waveform
acuan, yang digunakan DLL untuk mensejajarkan sinyal feedback pada input
CLKFB. Pada saat menghilangkan clock skew, pendekatan umum untuk
menggunakan DLL adalah sebagai berikut, sinyal CLK0 dikirim melalui jaringan
distribusi clock ke semua register yang disinkronisasi. Register ini bisa internal atau
eksternal pada FPGA. Setelah melalui jaringan distribusi clock, sinyal clock
kembali ke DLL melalui line feedback CLKFB. Control block yang terdapat di
dalam DLL mengukur error fase antara CLKFB dan CLKIN. Error fase adalah
ukuran clock skew yang dihasilkan jaringan distribusi clock. Control block
mengaktifkan elemen delay yang dibutuhkan untuk menghilangkan clock skew.
Setelah DLL membuat sinyal CLK0 sefase dengan sinyal CLKIN, DLL
memasukkan ouput LOCKED, menandakan penguncian pada sinyal CLKIN.
31
Gambar 2.12 Diagram fungsional DLL
Tabel 2.2 Penjelasan Sinyal Pada DLL
Signal Deskripsi
CLKIN Menerima sinyal clock asli
CLKFB Menerima CLK0 atau CLK2X sebagai sinyal feedback
CLK0 Membangkitkan sinyal clock dengan frekuensi dan fase seperti
CLKIN
CLK90 Membangkitkan sinyal clock dengan frekuensi seperti CLKIN tapi
fasenya digeser 90o
CLK180 Membangkitkan sinyal clock dengan frekuensi seperti CLKIN tapi
fasenya digeser 180 o
CLK270 Membangkitkan sinyal clock dengan frekuensi seperti CLKIN tapi
fasenya digeser 270 o
32
Tabel 2.2 Penjelasan Sinyal Pada DLL (Lanjutan)
Signal Deskripsi
CLK2X Membangkitkan sinyal clock dengan fase seperti CLKIN, tapi
frekuensi lebih besar dua kalinya.
CLK2X180 Membangkitkan sinyal clock dengan frekuensi dua kali CLKIN dan
fasenya digeser 180 o
CLKDV Membagi frekuensi CLKIN dengan nilai CLKDV_DIVIDE untuk
menghasilkan sinyal clock dengan frekuensi lebih rendah dan sefase
dengan CLKIN
2.2.5.2 Digital Frequncy Synthesizer (DFS)
DFS menghasilkan signal clock dengan frekuensi yang berupa hasil dari
frekuensi clock pada input CLKIN dan rasio dari dua integer yang dimasukkan user.
Output dari DFS adalah CLKFX dan CLKFX180.
Sinyal yang ada pada output CLKFX180 adalah invers dari sinyal CLKFX.
Kedua output DFS ini di-drive bersamaan sama seperti output clock DLL.
Pengali dari rasio adalah nilai yang dimasukkan dalam atribut
CLKFX_MULTIPLY dan pembagi dari rasio adalah nilai yang dimasukkan dalam
atribut CLKFX_DIVIDE.
Hubungan antara frekuensi output (fCLKFX) dan frekuensi input (fCLKIN)
adalah sebagai berikut:
fCLKFX = fCLKIN*(CLKFX_MULTIPLY/CLKFX_DIVIDE)
33
Bila nilai CLKFX_MULTIPLY = 5 dan nilai CLKFX_DIVIDE = 3, maka
frekuensi outputnya adalah 5/3 frekuensi input.
2.2.5.3 Phase Shifter (PS)
DCM menyediakan dua metode untuk mengontrol fase dari sinyal clock
output DCM berdasarkan sinyal CLKIN:
Pertama, ada sembilan clock output yang membuat DLL memiliki hubungan
fase yang diinginkan: CLK0, CLK90, CLK180, CLK270, CLK2X, CLK2X180,
CLKDV, CLKFX, dan CLKFX180.
Kedua, menggunakan komponen PS yang memungkinkan kontrol yang
lebih baik. PS melakukan ini dengan cara memberi “fine phase shift” (TPS) antara
sinyal CLKFB dan CLKIN dalam DLL. Saat digunakan, PS menggeser fase dari
kesembilan sinyal clock output DCM secara bersamaan.
2.2.5.4 PS Component Enabling and Mode Selection
Atribut CLKOUT_PHASE_SHIFT mengaktifkan komponen PS dan juga
untuk memilih mode operasi. Atribut ini memiliki tiga nilai: NONE, FIXED,
VARIABLE. Bila diset ke NONE maka PS tidak digunakan dan inputnya harus
dihubungkan ke GND. Bila diset ke FIXED atau VARIABLE, maka PS diaktifkan.
User mengontrol pergeseran fase dengan cara memasukkan nilai pada
persamaan berikut:
TPS = (PHASE_SHIFT/256)*TCLKIN
Nilai PHASE_SHIFT berkisar dari -255 - +255.
34
2.2.5.5 Fixed Phase Mode
Mode ini menghasilkan nilai TPS sesuai dengan persamaan diatas, dimana
user memasukkan nilai PHASE_SHIFT. Dalam Fixed Phase Mode, input PSEN,
PSCLK, dan PSINCDEC tidak digunakan dan harus dihubungkan ke GND.
2.2.5.6 Variable Phase Mode
Mode ini secara dinamis menyesuaikan nilai TPS menggunakan tiga input:
PSEN, PSCLK, dan PSINCDEC. PSINCDEC disinkronisasi dengan sinyal clock
PSCLK. Penyesuaian fase terjadi pada saat sebagai berikut: Pada setiap siklus
PSCLK dimana nilai PSINCDEC high, maka PS menambahkan 1/256 ke nilai
PHASE_SHIFT. Pada setiap siklus PSCLK dimana nilai PSINCDEC low, maka PS
mengurangkan 1/256 dari nilai PHASE_SHIFT.
2.2.5.7 Status Logic Component
Komponen Status Logic tidak hanya melaporkan keadaan dari DCM tapi
juga menyediakan cara untuk mereset DCM ke keadaan awal ketika pertama kali
dinyalakan.
2.3 Serial Port
Serial port adalah salah satu bentuk alat koneksi ke komputer yang paling
dasar, serial port telah menjadi bagian penting dari komputer selama lebih dari 20
tahun. Disebut serial karena serial port men-serial-kan data. Jadi serial port
mengambil data sebesar 1 byte lalu mengirim 8 bit yang ada didalamnya satu per
satu, bit demi bit. Keuntungan dari serial port adalah hanya memerlukan satu kabel
35
untuk mengirim 8 bit sehingga menurunkan biaya kabel dan membuat kabel lebih
kecil. Kerugiannya adalah waktu yang diperlukan untuk mengirim 8 bit lebih lama
daripada menggunakan parallel karena bit dikirim satu per satu. Serial port bekerja
secara bi-directional berarti serial port dapat mengirim dan juga menerima data.
Serial port dapat mengirim dan menerima data secara bersamaan (full duplex)
karena serial port menggunakan pin yang berbeda untuk mengirim dan menerima.
Bila menggunakan pin yang sama maka komunikasi terbatas menjadi half duplex
yaitu harus bergantian antara mengirim dan menerima. Serial port pada komputer
lama memiliki 25 pin, tapi karena yang terpakai hanya 9 pin maka serial port
sekarang hanya memiliki 9 pin.
Gambar 2.13 Pin pada serial port
36
Sebenarnya fungsi utama serial port adalah untuk menghubungkan modem
dengan komputer sehingga fungsi dari masing-masing pin disesuaikan dengan
modem, tetapi pada dasarnya sama bila digunakan untuk komunikasi lainnya.
Fungsi dari masing-masing pin adalah (9pin) :
Carrier Detect memberitahukan apakah modem tersambung dengan saluran
telpon yang bekerja.
Receive Data komputer menerima data dari modem.
Transmit data komputer mengirim data ke modem.
Data Terminal Ready komputer memberitahu telah siap menerima data.
Signal Ground pin di-ground-kan.
Data Set Ready modem memberitahu telah siap menerima data.
Request To Send komputer meminta modem untik mengirim data.
Clear To Send modem memberitahu komputer bahwa komputer boleh
mengirim data.
Ring Indicator Setelah konenksi telpon telah terjadi, komputer menerima
sinyal dari modem dering telah terdeteksi.
Serial port bergantung pada chip controller khusus yaitu UART (Universal
Asynchronous Receiver/Transmitter) untuk dapat bekerja dengan benar. Fungsi
utama dari UART adalah mengubah byte dari bus parallel PC ke bentuk serial yang
nantinya akan dikirim dari serial port. Begitu juga dengan data serial yang diterima
dari luar akan diubah ke bentuk parallel yang dapat dimengerti oleh komputer.
Selain itu UART juga berfungsi untuk menambahkan start bit dan stop bit pada
setiap byte sebelum dikirim. Terdapat dua jenis UART yaitu dumb UART dan
37
FIFO UART. Untuk mengetahui perbedaan antara dumb UART dan FIFO UART
kita lihat dulu apa yang terjadi pada saat UART telah menerima atau mengirim
byte. UART sendiri tidak melakukan apa-apa terhadap data yang lewat, UART
hanya menerima dan mengirimnya. Pada dumb UART, CPU menerima interrupt
dari UART setiap kali sebuah byte telah diterima atau dikirim. CPU akan
memindahkan byte yang diterima dari buffer UART dan menaruhnya ke memori
atau memberi UART sebuah byte lagi untuk dikirim. Pada UART lama biasanya
hanya memiliki buffer sebesar 1 byte yang berarti setiap kali UART menerima atau
mengirim 1 byte maka CPU akan mendapat interrupt. Bila transfer ratenya lambat
maka hal ini tidak menjadi masalah. Tapi bila transfer ratenya cepat maka CPU
akan terlalu sibuk menangani interrupt dari UART sehingga tidak sempat untuk
melakukan tugas lain. Dalam beberapa kasus, CPU tidak sempat untuk menangani
interrupt dari UART sehingga ada byte yang di-overwritten. Hal ini disebut
“overrun” atau “overflow”. Untuk mengatasi hal ini maka dibuatlah FIFO UART.
Pada FIFO UART terdapat buffer sebesar 16 byte atau lebih. Dengan begitu maka
UART dapat mengirim dan menerima byte lebih banyak sebelum melakukan
interrupt ke CPU. Hal ini akan mengurangi kerja CPU sehingga CPU bisa
melakukan tugas lain.
top related