Implementasi Prototipe Sistem Kontrol Elevator Berbasis FPGA Menggunakan VHDL Agfianto Eko Putra1, Heru Arif Yuliadi 2 1,2
Elektronika dan Instrumentasi (ELINS), FMIPA Universitas Gadjah Mada, Bulaksumur, Yogyakarta 1
[email protected] , 2
[email protected] Abstract Currently, most common elevator control system based on microcontroller or PLC (Programmable Logic Controller). In this research, it has been designed elevator control system based on FPGA Altera EPF10K10 using VHDL (VHSIC Hardware Description Language). The design is split the control system into modules, each modules and integration for each modules using VHDL description. The system consist five modules: input decoder, output decoder, memory, core elevator and control unit module. The synthesize process, design optimation and implementation on chip done automatically using MAXplus+II software from Altera. The implementation of control system needs 494 logic elements and 128 flip-flops. Keywords : elevator, control system, FPGA, VHDL
1. Pendahuluan Pada perkembangan saat ini elevator memiliki sistem kontrol yang canggih. Fasilitas yang ada semakin kompleks dan sistem kontrolnya menjadi semakin rumit. Elevator saat ini sudah dilengkapi sistem kontrol yang menggunakan PLC, mikrokontroler maupun mikroprosesor. Sedangkan FPGA merupakan media alternatif yang dapat digunakan implementasi sistem kontrol elevator tersebut. Dalam penelitian ini dibuat prototipe rangkaian sistem kontrol elevator sederhana, yang rancangannya dibuat dengan deskripsi VHDL dan diimplementasikan pada FPGA Altera keluarga FLEX-10K seri EPF10K10. Perangkat lunak yang digunakan adalah MAXplus+II. Sistem kontrol elevator ini digunakan untuk mengendalikan elevator 12 lantai. 2. Tinjauan Pustaka 2.1. Field Programmable Gate Array (FPGA) Field Programmable Gate Array (FPGA) adalah integrated circuit (IC) digital yang berisi sekumpulan blok-blok logika yang dapat dikonfigurasi. FPGA memiliki tiga sumber daya yaitu blok logika, blok I/O, dan blok interkoneksi, sebagaimana ditunjukkan pada Gambar 1 [3]. Blok-blok logika, I/O dan interkoneksi maupun hubungan antar blok dapat dikonfigurasi, sehingga FPGA dapat digunakan untuk berbagai macam aplikasi digital. Masing-masing blok logika dalam FPGA memiliki ciri mempunyai sejumlah kecil masukan dan keluaran. FPGA antara lain dapat digunakan sebagai Application Specific Integrated Circuit (ASIC), sebagai Digital Signal Processor, Embedded Microcontroller, serta dipakai pada layer fisik jaringan komunikasi dan lain sebagainya.
26
Seminar Nasional Sains dan Teknologi 2007
Gambar 1. Struktur umum FPGA [3]. Dalam penelitian ini digunakan FPGA dari Altera keluarga FLEX-10K, seri EPF10K10. Sedangkan untuk implementasi dan pengembangannya menggunakan Wizard FLEX-A01 Experiment Board. 2.2. VHDL VHDL atau VHSIC Hardware Description Language digunakan untuk mendeskripsikan sifat atau perilaku rangkaian atau sistem digital. VHSIC sendiri adalah singkatan dari Very High Speed Integrated Circuits. Versi pertamanya adalah VHDL-87, kemudian diperbaharui dan diberi nama VHDL-93. VHDL merupakan hardware description language pertama yang mendapat standarisasi dari Institute of Electrical and Electronic Engineers (IEEE) melalui IEEE 1076. Sebagai tambahan standar, IEEE 1164, kemudian ditambahkan untuk memperkenalkan sistem logika multi-valued. VHDL dimaksudkan untuk sintesis rangkaian sebagaimana halnya simulasi rangkaian. Bagaimanapun, walau VHDL dapat disimulasikan, tidak semua konstruksi dapat disintesis. Dua aplikasi utama VHDL adalah pada bidang Programmable Logic Device (CPLD dan FPGA) dan pada bidang ASIC. Sekali kode VHDL ditulis, kode tersebut dapat digunakan untuk implementasi rangkaian pada Programmable Device, baik itu dari Xilinx, Altera, Atmel dan lain-lain, serta digunakan dalam fabrikasi chip ASIC. Berbeda dengan program komputer biasa yang sekuensial, statement dalam VHDL adalah concurrent atau paralel. Karena alasan tersebut VHDL lebih sering disebut kode daripada program. Dalam VHDL hanya statement yang ditempatkan pada sebuah PROCESS, FUNCTION atau PROCEDURE yang dieksekusi secara sekuensial [2]. Dalam VHDL, sebuah rancangan terdiri atas minimum sebuah entitas (entity) yang mendeskripsikan antarmuka rancangan dan sebuah arsitektur (architecture) yang berisi implementasi sebenarnya. Kebanyakan rancangan menggunakan modul pustaka (library). Beberapa rancangan juga terdiri dari lebih dari satu arsitektur dan konfigurasi. 2.3. Sistem Kontrol Elevator Elevator adalah sebuah alat transportasi yang digunakan untuk memindahkan orang atau barang secara vertikal. Elevator sering juga disebut sebagai lift. Sebuah elevator terdiri atas: sangkar, lorong elevator, beban penyeimbang, peralatan penggantung, mesin pengangkat dan sistem kontrol. Tampak dari luar elevator adalah sistem yang sederhana,
27
Seminar Nasional Sains dan Teknologi 2007
tetapi secara mekanik, kelistrikan dan sistem mikro-elektroniknya sangatlah komplek dan rumit. Pada setiap sistem yang terdiri atas beberapa sub-sistem, sistem kontrol untuk mengendalikan beberapa sub-sistem tersebut sangatlah penting. Sistem kontrol haruslah memiliki kecepatan dan tingkat akurasi yang tinggi agar kinerja sistem secara menyeluruh akan baik dan handal. Apalagi pada elevator yang berhubungan dengan keselamatan dan kenyamanan penumpang, sistem kontrol haruslah yang terbaik [5]. 2.4. Perancangan Sistem Kontrol Elevator Sistem kontrol elevator yang dibuat dapat mengendalikan 12 lantai. Masukan kontrol berupa sinyal yang mewakili posisi tiap lantai dan sinyal keluaran berupa lantai tujuan. Sistem kontrol bekerja sebagai berikut: elevator akan bergerak pada satu arah selama masih ada permintaan lantai pada arah yang sama dan jika tidak ada permintaan lantai pada arah yang sama, elevator akan berhenti dan menjadi idle, atau berubah arah jika ada permintaan lantai dengan arah yang berlawanan. Secara umum arsitektur VHDL dari sistem kontrol elevator mengarah pada penggunaan sistem memori. Masukan dari luar sistem akan diidentifikasikan sebagai masukan yang mengisi alamat memori dengan sinyal bit satu dan kemudian akan diakses oleh sistem kontrol. Untuk memudahkan perancangan sistem kontrol dibagi dalam beberapa blok, sebagaimana ditunjukkan pada Gambar 2, yang komunikasi antar blok-nya digunakan beberapa sinyal.
Gambar 2. Blok modul sistem dan sinyal Sistem kontrol elevator terdiri atas modul dekoder masukan, memori, unit kontrol, inti elevator dan modul dekoder keluaran. Komponen yang paling penting dari rancangan tersebut adalah modul utama, kontrol modul dan modul memori. Untuk modul yang lain, rancangannya mengikuti ketiga modul tersebut dan arsitekturnya seperti dekoder pada umumnya. Sedangkan untuk modul utama, kontrol modul dan modul memori memiliki arsitektur tersendiri. Modul dekoder masukan digunakan untuk mengubah masukan sistem yang berupa data 4 bit biner menjadi data biner 24 bit yang merupakan masukan bagi 24 alamat yang ada pada Modul memori. Masukan sistem kontrol elevator berasal dari dua tempat yaitu di dalam dan di luar sangkar. Modul dekoder keluaran digunakan untuk mengubah data keluaran dari modul inti elevator yang berupa sinyal kontrol yang terdiri atas sinyal index, down dan up. Data yang dikeluarkan berupa data empat bit yang menunjukkan keadaan lantai dimana elevator berada.
28
Seminar Nasional Sains dan Teknologi 2007
Modul memori digunakan untuk menyimpan data masukan sistem yang kemudian akan dibaca oleh modul inti elevator. Modul memori oleh modul inti dikenai dua proses yaitu membaca dan menghapus masukan setelah masukan tersebut selesai diproses, sehingga dibutuhkan komponen untuk mengontrol pembacaan dan penghapusan isi alamat memori. Fungsi tersebut diberikan pada modul kontrol register. Untuk memudahkan dalam perancangan modul memori hanya mengatur tiga lantai saja, sehingga untuk mendapatkan memori 12 lantai, dibutuhkan empat buah modul memori tiga lantai yang dirancang secara struktural. Modul memori tiga lantai berfungsi untuk menyimpan data masukan untuk permintaan tiga buah lantai. Data yang tersimpan pada memori akan dibaca dan kemudian dihapus oleh modul inti. Modul memori tiga lantai membutuhkan delapan buah alamat memori dari nol hingga tujuh. Alamat nol digunakan untuk menggabungkannya dengan modul dibawahnya dan alamat memori empat untuk modul berikutnya, sedangkan sisanya untuk masing-masing permintaan lantai. Alamat satu sampai tiga untuk perintah naik dan alamat lima hingga tujuh untuk perintah turun. Sebagaimana ditunjukkan pada Tabel 1. Tabel 1. Memori untuk 3 lantai (a) (b) 4 3 2 1
3 2 1
7 6 5 0
Jumlah lantai yang dibuat merupakan kelipatan bilangan tiga, karena modul inti elevator dan modul memori yang dibuat adalah untuk tiap tiga lantai. Untuk mendapatkan memori untuk 12 lantai, dibutuhkan empat buah modul memori tiga lantai yang disusun secara struktural dan setiap modul memiliki delapan alamat memori. Enam alamat memori menunjukkan keadaan lantai dan satu alamat memori menunjukkan isi memori dari modul memori di atasnya serta satu alamat memori menunjukkan isi memori dari modul dibawahnya, begitu seterusnya setiap modul sampai tersusun empat modul memori yang memiliki total 32 alamat memori (8 alamat x 4 modul). Modul inti elevator merupakan modul utama dalam sistem ini. Modul ini berfungsi membaca masukan permintaan lantai yang ada di modul memori dan mengerjakan masukan permintaan tersebut melalui proses aksi berupa mesin keadaan dan setelah selesai dikerjakan, modul ini akan memberikan sinyal reset untuk modul memori. Modul inti elevator terdiri atas komponen inti proses dan kontrol proses. Komponen inti proses berfungsi sebagai modul utama yang mengakses masukan sistem yang ada pada modul memori untuk mengatur pergerakan elevator dan menghapus isi alamat memori setelah selesai dibaca. Komponen ini merupakan mesin keadaan dengan mode Mealy, yang berarti keluaran ditentukan oleh masukan sekarang dan keluaran sebelumnya. Mesin keadaan terdiri atas tujuh state / keadaan, sebagaimana ditunjukkan pada Gambar 3.
29
Seminar Nasional Sains dan Teknologi 2007
Gambar 3. Diagram mesin keadaan komponen inti proses Saat perubahan dari stateN ke state0 terjadi proses aksi adanya masukan dari memori. Perubahan dari stateN ke state0 menghasilkan sinyal kontrol (index, down dan up), sinyal reset dan posisi elevator sekarang. Keluaran sinyal posisi elevator inilah yang menentukan perubahan state0 ke stateN, dimana tiap masukan pada perubahan dari stateN ke state0 menghasilkan posisi elevator yang berbeda. State0 dibutuhkan untuk membedakan waktu terjadinya proses baca dan proses hapus yang tidak boleh bersamaan, agar proses aksi akan merespon data yang valid. Komponen kontrol proses digunakan untuk mengatur modul inti elevator dalam menjalankan proses membaca masukan, proses aksi berupa mesin keadaan dan proses memberi sinyal reset. Modul unit kontrol digunakan untuk memilih bagian mana dari blok alamat memori yang dapat diakses oleh modul inti elevator. Unit kontrol strukturnya berupa selektor atau pemilih, sedangkan modul inti elevator akan mengirim sinyal kontrol sebagai selektor bagi multiplekser untuk memilih blok mana yang akan digunakan oleh modul inti, baik proses pembacaan masukan ataupun penghapusan isi memori. Blok diagram dari unit kontrol ditunjukkan pada Gambar 4.
Gambar 4. Blok modul unit kontrol
30
Seminar Nasional Sains dan Teknologi 2007
Semua entity modul perancangan digabung dalam sebuah paket (package), sehingga saat akan digunakan tidak perlu dibuat lagi, tinggal dipanggil package yang telah dibuat sebelumnya. Tiap modul digabungkan secara struktural menggunakan deskripsi VHDL, dengan susunan sebagaimana ditunjukkan pada Gambar 2. 3. Hasil dan Pembahasan Perangkat lunak Max+plus II digunakan sebagai kompailer dan simulator [1]. Seluruh modul sistem kontrol elevator dikompail dan disimulasikan terlebih dahulu. Setelah simulasi berjalan sesuai hasil yang diharapkan, rancangan sistem kontrol dalam bentuk arsitektur VHDL [2] [3] [5] tersebut diimplementasikan pada FPGA [4]. Selain modul-modul yang ditunjukkan pada Gambar 2, implementasi pada papan pengembang FPGA harus ditambahi dengan modul untuk membagi detak internal FPGA, modul tombol matriks sebagai masukan posisi lantai dan modul dekoder tujuh segmen untuk keluaran sistem. Optimasi kecepatan yang dilakukan mengakibatkan periode detak dan tundaan rambatan akan lebih kecil atau lebih cepat dari sebelumnya. Pada Tabel 2 ditunjukkan hasil analisis pewaktuan tiap modul dan juga sistem kontrol elevator setelah mendapat optimasi, data diperoleh dari hasil simulasi timing analyzer. Terlihat bahwa sistem kontrol elevator memiliki periode detak sebesar 68,4 ns dan memiliki frekuensi 14,61 Mhz. Sedangkan tundaan antara masukan dan keluaran sebesar 17,2 ns. Tundaan tersebut merupakan tundaan terpanjang dari rangkaian. Kesulitan dari pembuatan sistem kontrol elevator ini terletak pada bagian penggunaan detak terutama untuk modul-modul yang sekuensial. Detak yang dipilih antara modul utama, kontrol modul dan modul memori haruslah tepat agar data yang dikeluarkan merupakan data valid untuk waktu itu. Modul utama dan modul memori harus pada detak yang sama yaitu data keluar saat detak naik dan kontrol modul sebaliknya yaitu data keluar pada saat detak turun. Selain itu juga panjangnya detak perlu diperhatikan karena tundaan tiap modul akan berbeda untuk tiap masukan yang berbeda. Tabel 2. Hasil analisis pewaktuan Modul Dekoder masukan Memori Unit kontrol Inti elevator Dekoder keluaran Siatem kontrol elevator Implementasi
Periode detak(ns)
Frekuensi (MHz)
Tundaan rambatan(ns)
8,8 8,0 8,0 30,6 36,0 68,4
113,63 125,00 125,00 32,67 26,31 14,61
14,2 20,8 19,6 13,9 13,2 17,2
72,2
13,85
27,5
Masukan menggunakan tombol matriks dan tombol geser, Sedangkan keluaran menggunakan tampilan tujuh segmen dan LED. Sistem kontrol elevator ini, sebagaimana ditunjukkan pada Tabel 3, membutuhkan 494 logik elemen atau 89 % dari logik elemen yang tersedia pada perangkat FPGA Altera FLEX-10K [3]. Jenis rangkaian juga mempengaruhi kebutuhan akan sumber daya, rangkaian multiplekser yang terdapat pada unit kontrol dalam kondisi setelah dioptimasi atau belum hasilnya sama. Arsitektur dengan struktural ataupun behavioral juga sama. Hal ini karena arsitektur elemen logika pada FPGA salah satunya adalah multiplekser. Pada modul-modul dekoder termasuk rancangan yang membutuhkan banyak sumber daya walaupun lebar 31
Seminar Nasional Sains dan Teknologi 2007
datanya sedikit, hal ini karena perancangan dekoder dalam FPGA menggunakan multiplekser, sehingga membutuhkan elemen logika yang lebih banyak. Total untuk perancangan sistem kontrol elevator setelah dilakukan optimasi membutuhkan 395 elemen logika dan 128 buah flip-flop. Tabel 3. Sumber daya FPGA yang digunakan Modul
Logik Elemen/FF
Dekoder masukan Memori Unit kontrol Inti elevator Dekoder keluaran Sistem kontrol elevator Implementasi
75/24 36/24 52/2 156/38 76/8 395/128 494/170
Sistem kontrol ini masih memiliki kelemahan yaitu hanya mampu mengerjakan satu instruksi masukan pada saat bersamaan dan ketika mendapat lebih dari satu masukan maka masukan-masukan tersebut akan dikerjakan secara sekuensial. 4. Kesimpulan Rangkaian prototipe sistem kontrol elevator dan rangkaian digital ini telah diimplementasikan dalam sebuah FPGA Altera keluarga FLEX-10K seri EPF10K10. Hasil implementasi rangkaian sistem kontrol elevator pada FPGA membutuhkan 494 logik elemen atau 89 % dari kapasitas logik elemen FPGA Altera FLEX-10K. Daftar Pustaka: [1] Altera, 1997, MAXplus+II Getting Started, Altera Corp., U.S [2] Ashenden, Peter, 1990, The VHDL Cookbook, Dept. Computer Science University of Adelaide, South Australia. [3] Chen, Sze-Tang, 1998, Altera Training Manual - For PC Users, Altera Corporation, San Jose. [4] Hwang, Enoch O., 2004, Microprocessor Design Principles and Practice with VHDL, Brook, Cole. [5] Strakosch, George, 1983, Vertical Transportation : Elevator and Escalator, John Wiley & Sons Inc, Canada.
32