1. Apakah Yang Disebut Dengan Mikrokontroler?
Suatu
kontroler digunakan untuk mengontrol suatu proses atau aspek-aspek dari
lingkungan. Satu contoh aplikasi dari mikrokontroler adalah untuk memonitor
rumah kita. Ketika suhu naik kontroler membuka jendela dan sebaliknya.
Pada masanya, kontroler dibangun dari komponen-komponen
logika secara keseluruhan, sehingga menjadikannya besar dan berat. Setelah itu
barulah dipergunakan mikrokprosesor sehingga keseluruhan kontroler masuk
kedalam PCB yang cukup kecil. Hingga saat ini masih sering kita lihat kontroler
yang dikendalikan oleh mikroprosesor biasa (Zilog Z80, Intel 8088, Motorola
6809, dsb).
Proses
pengecilan komponen terus berlangsung, semua komponen yang diperlukan guna
membangun suatu kontroler dapat dikemas dalam satu keping. Maka lahirlah
komputer keping tunggal (one chip microcomputer) atau disebut juga
mikrokontroler. Mikrokontrolere adalah suatu IC dengan kepadatan yang sangat tinggi,
dimana semua bagian yang diperlukan untuk suatu kontroler sudah dikemas dalam
satu keping, biasanya terdiri dari:
1.
CPU (Central Processing Unit)
2.
RAM (Random Access Memory)
3.
EEPROM/EPROM/PROM/ROM
4.
I/O, Serial & Parallel
5.
Timer
6.
Interupt Controller
Rata-rata mikrokontroler memiliki
instruksi manipulasi bit, akses ke I/O secara langsung dan mudah, dan proses
interupt yang cepat dan efisien. Dengan kata lain mikrokontroler adalah
" Solusi satu Chip" yang secara drastis mengurangi jumlah komponen
dan biaya disain (harga relatif rendah).
2. Aplikasi Yang Dapat Dilakukan
Selain sebagai
sistem monitor rumah seperti diatas, mikrokontroler sering dijumpai pada
peralatan rumah tangga (microwave oven, TV, stereo set dll), komputer dan
perlengkapannya, mobil dan lain sebagainya. Pada beberapa penggunaan bisa
ditemukan lebih dari satu prosesor didalamnya.
Mikrokontroler
biasanya digunakan untuk peralatan yang tidak terlalu membutuhkan kecepatan
pemrosesan yang tinggi. Walaupun mungkin ada diantara kita yang membayangkan
untuk mengontrol oven microwave dengan menggunakan sistem berbasis Unix,
mengendalikan oven microwave dapat dengan mudah menggunakan mikrokontroler yang
paling kecil. Dilain pihak jika kita ingin mengendalikan rudal guna mengejar
anjing tetangga yang selalu menyalak ditengah malam, kita akan memerlukan
prosesor dengan kecepatan yang lebih tinggi.
Sifat spesial dari mikrokontroler adalah
kecil dalam ukuran, hemat daya listrik
serta flexibilitasnya menyebabkan mikrokontroler sangat cocok untuk dipakai
sebagai pencatat/perekam data pada aplikasi yang tidak memerlukan kehadiran
operator.
3. Jenis Yang Dapat Dipilih
Mikrokontroler
tersedia dalam beberapa pilihan, tergantung dari keperluan dan kemampuan yang
diinginkan. Kita dapat memilih mikrokontroler 4, 8, 16 atau 32 bit. Disamping
itu terdapat pula mikrokontroler dengan kemampuan komunikasi serial, penanganan
keyboard, pemroses sinyal, pemroses video dll.
4. Pasar Bagi Mikrokontroler
WorldWide Microcontroller Shipments (in millions of dollars)
|
90
|
91
|
92
|
93
|
94
|
95
|
96
|
97
|
98
|
99
|
00
|
4 bit
|
1,393
|
1,597
|
1,596
|
1,698
|
1,761
|
1,826
|
1,849
|
1,881
|
1,856
|
1,816
|
1,757
|
8 bit
|
2,077
|
2,615
|
2,862
|
3,703
|
4,689
|
5,634
|
6,553
|
7,529
|
8,423
|
9,219
|
9,715
|
16 bit
|
192
|
303
|
340
|
484
|
810
|
1,170
|
1,628
|
2,191
|
2,969
|
3,678
|
4,405
|
WorldWide Microcontroller Shipments (in Millions)
|
90
|
91
|
92
|
93
|
94
|
95
|
96
|
97
|
98
|
99
|
00
|
4 bit
|
778
|
906
|
979
|
1,036
|
1,063
|
1110
|
1110
|
1096
|
1,064
|
1,025
|
970
|
8 bit
|
588
|
753
|
843
|
1,073
|
1,449
|
1,803
|
2,123
|
2,374
|
2,556
|
2,681
|
2,700
|
16 bit
|
22
|
38
|
45
|
59
|
106
|
157
|
227
|
313
|
419
|
501
|
585
|
Source: WSTS & ICE - 1994
Jika kita bertanya apa perlunya
kita mempelajari mikrokontroler, tabel diatas akan sedikit banyak memberikan
gambaran tentang bisnis mikrokontroler yang akan menghasilkan banyak tumpukan
rupiah dimeja kita. Suatu survey di
Amerika menyatakan bahwa rata-rata terdapat 35 buah mikrokontroler yang
digunakan pada satu rumah di Amerika, dan diperkirakan akan menjadi 240 pada
tahun 2000.
5. Pertimbangan Pemilihan Mikrokontroler
Terdapat
beberapa hal yang perlu dipertimbangkan dalam menentukan jenis mana yang akan
dipergunakan dalam disain kita yaitu seperti berikut: v Ketersediaan
dan harga dari suatu development tools (Programmer, Emulator dan Simulator)
v
Ketersediaan dokumentasi (Ref. Manual,
Application notes, dan buku lainnya).
v
Ketersediaan tempat bertanya. v Ketersediaan komponen OTP, Mask, dan Programmable.
6. Produsen Mikrokontroler
Dibawah ini
adalah daftar produsen besar dari mikrokontroler dan unit yang terjual (dalam
ribuan).
Company (Units x 1000) Motorola (358,894)
Mitsubishi(71,674)
NEC (70,180)
Hitachi (67,873)
Philips (56,680)
Intel (46,876)
SGS-Thomson (37,350)
Microchip (35,477)
Matsushitta (34,200)
Toshiba (32,205)
National Semiconductor (31,634)
Zilog (31,000)
Texas Instruments (29,725)
Siemens (20,874) Sharp(17,505)
SOURCE: DataQuest June 1994.
7. Hal-Hal Mengenai
Mikrokontroler v Tehnik
fabrikasi
CMOS - Complementary Metal
Oxide Semiconductor
Ini adalah tehnik yang biasa dilakukan untuk
memproduksi hampir semua mikrokontroler terbaru. Mikrokontroler CMOS memerlukan
daya yang lebih rendah dibanding mikrokontroler yang dibuat dengan tehnik sebelumnya, sehingga memungkinkan untuk dioperasikan menggunakan batere. Chip CMOS juga
memungkinkan dioperasikan pada fully atau mendekati fully static, yang berarti
bahwa clock dapat diperlambat bahkan diberhentikan sehingga chip berada dalam
kondisi (mode) sleep. CMOS juga lebih tahan terhadap noise dibandingkan cara
fabrikasi sebelumnya.
v
Arsitektur
Von-Neuman Architecure
Mikrokontroler yang di disain berdasarkan arsitektur
ini memilik sebuah data bus yang dipergunakan untuk "fetch" instruksi
dan data. Program (instruksi) dan data disimpan pada memori utama secara
bersama-sama. Ketika kontroler mengalamati suatu alamat di memori utama, hal
pertama yang dilakukan dalah mengambil instruksi untuk dilaksanakan dan
kemudian mengambil data pendukung dari instruksi tsb. Cara ini memperlambat
operasi mikrokontroler.
Harvard Architecture
Arsitektur ini memilik bus data dan instruksi yang
terpisah, sehingga memungkinkan eksekusi dilakukan secara bersamaan. Secara
teoritis hal ini memungkinak eksekusi yang lebih cepat tetapi dilain fihak
memerlukan disain yang lebih kompleks.
v
Instruksi
CISC
Saat ini hampir semua
mikrokontroler adalah mikrokontroler CISC (Complete Instruction Set Computer).
Biasanya memiliki lebih dari 80 instruksi. Keunggulan dari CISC ini adalah
adanya instruksi yang bekerja seperti sebua makro, sehingga memungkinkan
programmer untuk menggunakan sebuah instruksi menggantikan beberapa instruksi
sedarhana lainnya.
RISC
Saat ini kecenderungan industri untuk menggunakan disain
mikroprosesor RISC ( Reduced Instruction Set Computer). Dengan menggunakan
jumlah instruksi yang lebih sedikit, memungkinkan lahan pada chip (silicon
realestate) digunakan untuk meningkatkan kemampuan chip. Keuntungan dari RIS
adalah kesederhanaan disain, chip yang lebih kecil, jumlah pin sedikit dan
sangat sedikit mengkonsumsi daya.
Dibawah ini adalah fature yang biasa dimiliki oleh RISC
Processor:
Harvard Architecture,
memungkinkan akses yang program dan data yang bersamaan . Instruction
Pipelining meningkatkan kecepatan eksekusi.
Orthogonal instruktion set untuk kemudahan dalam
programming, memungkinkan tiap instruksi untuk dioperasikan pada register atau
digunakan pada beberapa mode pengalamatan, instruksi-instruksi tidak mempunyai
kombinasi tertentu dan juga tanpa perkecualian.
8. Pilihan Memori
EEPROM -
Electrically Erasable Programmable Read Only Memory
Beberapa mikrokontroler memiliki EEPROM yang
terintegrasi pada chipnya. EEPROM ini dugunakan untuk menyimpan sejumlah kecil
parameter yang dapat berubah dari waktu ke waktu. Jenis memori ini bekerja
relatif pelan, dan kemampuan untuk dihapus/tulis nya juga terbatas.
FLASH
(EPROM)
FLASH meberikan pemecahan yang lebih baik dari EEPROM
ketika dibutuhkan sejumlah besar memori non-volatile untuk program. FLASH ini
bekerja lebih cepat dan dapat dihapus/tulis lebih sering dibanding EEPROM.
Battery
backed-up static RAM
Memori ini sangat berguna ketika dibutuhkan memori
yang besar untuk menyimpan data dan program. Keunggulan utama dari RAM statis
adalah sangat cepat dibanding memori non-volatile, dan juga tidak terdapat
keterbatasan kemampuan hapus/tulis sehingga sangat cocok untuk aplikasi untuk
menyimpan dan manipulasi data secara lokal.
Field
programming/reprogramming
Dengan menggunakan memori non-volatile untuk
menyimpan program akan memungkinkan mikrokontroler tersebut untuk diprogram
ditempat, tanpa melepaskan dari sistem yang dikontrolnya. Dengan kata lain
mikrokontroler tersebut dapat diprogram setelah dirakit diPCBnya.
OTP - One
Time Programmable
Mikrokontroler OTP adalah mikrokontroler yang hanya
dapat diprogram satu kali saja dan tidak dapat dihapus atau dimodifikasi.
Biasanya digunakan untuk produksi dengan jumlah terbatas. OTP menggunakan EPROM
standard tetapi tidak memiliki jendela untuk menghapus programnya.
Software
protection
Dengan
"encryption" atau proteksi fuse, software yang telah diprogramkan
akan terlindungi dari pembajakan, modifikasi atau rekayasa ulang. Kemampuan ini
hanya dipunyai oleh komponen OTP atau komponen yang dapat diprogram ulang. Pada
komponen jenis Mask ROM tidak diperlukan proteksi, hal ini dikarenakan untuk
membajak isi programnya seseorang harus membacanya (visual) dari chip nya
dengan menggunakan mikroskop elektron.
Walaupun
demikian pabrik mikrokontroler masih dapat membaca isi program guna memastikan
bahwa mikrokontroler diprogram dengan tepat, atau biasa disebut
"test mode". TEST MODE MEMUNGKINKAN KITA MEMBACA
KESELURUHAN ISI ROM , tetapi hal ini tidak perlu
dibesar-besarkan karena test mode ini bersifat SANGAT-SANGAT- SANGAT
DIRAHASIAKAN dan hanya diketahui oleh pabrikan yang memproduksi mikrokontroler
tersebut. Test mode hanya dapat dilakukan pada komponen Mask ROM.
9. Input/Output
UART (Universal Asynchronous Receiver Transmitter) adalah adapter
serial port adapter untuk komunikasi serial asinkron.
USART (Universal Synchronous/Asynchronous Receiver Transmitter) merupakan
adapter serial port untuk komunikasi serial sinkron dan asinkron. Komunikasi
serial sinkron tidak memerlukan start/stop bit dan dapat beroperasi pada click
yang lebih tinggi dibanding asinkron.
SPI (serial peripheral interface) merupakan port komunikasi serial
sinkron.
SCI (serial
communications interface) merupakan enhanced UART (asynchronous
serial port)
I2C bus (Inter-Integrated Circuit bus) merupakan antarmuka serial 2
kawat yang dikembangkan oleh Philips. Dikembangkan untuk aplikasi 8 bit dan
banyak digunakan pada consumer electronics, automotive dan indistri. I2C bus
ini berfungsi sebagai antarmuka jaringan multi-master, multi-slave dengan
deteksi tabrakan data. Jaringan dapat dipasangkan hingga 128 titik dalam jarak
10 meter. Setiap titik dalam jaringan dapat mengirim dan menerima data. Setiap
titik dalam jaringan harus memiliki alamat yang unik.
Analog to Digital
Conversion (A/D). Fungsi ADC adalah merubah besaran analog (biasanya
tegangan) ke bilangan digital. Mikrokontroler dengan fasilitas ini dapat
digunakan untuk aplikasi-aplikasi yang memerlukan informasi analog ( misalnya
voltmeter, pengukur suhu dll).
Terdapat beberapa tipe dari ADC sbb:
-
Succesive Approximation A/D converters.
-
Single Slope A/D converters.
-
Delta-Sigma A/Ds converters. - Flash A/D.
D/A (Digital to Analog) Converters.
Kebalikan dar ADC seperti diatas.
Comparator. Mikrokontroler tertentu memiliki ssebuah atau lebih
komparator. Komparator ini bekerja seperti IC komparator biasa tetapi sinyal
input/outputnya terpasang pada bus mikrokontroler.
10. Interupsi
Interupt
merupakan metode yang efisien bagi mikrokontroler untuk memproses periperalnya,
mikrokontroler hanya bekerja memproses periperal tsb hanya pada saat terdapat
data diperiperal tsb. Pada saat terjadi interupt, mikrokontroler menunda
operasi yang sedang dilakukan kemudian mengidentifikasi interupsi yang datang
dan menjalankan rutin pelayanan interupsi.
Rata-rata mikrokontroler memiliki setidak-tidaknya sebuah
interupsi eksternal, interupsi yang dimiliki bisa dipicu oleh "edge"
atau "level". Edge triggered interupt bekerja tidak tergantung pada
pada waktu terjadinya interupsi, tetapi interupsi bisa terjadi karena glitch.
Sedangkan Level triggered interupt harus tetap pada logika high atau low
sepanjang waktu tertentu agar dapat terjadi interupsi, interupsi ini tahan
terhadap glitch.
Maskable Interrupts
Dengan maskable interupt kita dapat bebas memilih untuk
menggunakan satu atau lebih interupsi. Keuntungan maskable interupt inin adalah
kita dapat mematikan interupsi pada saat mikrokontroler sedang melakukan proses
yang kritis sehingga interupsi yang datang akan diabaikan.
Vectored Interrupts
Pada saat terjadi interupsi, interupt handler secara
otomatis akan memindahkan program pada alamat tertentu yang telah ditentukan
sesuai dengan jenis interupsi yang terjadi.
11. Mikrokontroler Populer
Dibawah ini
dijelaskan beberapa mikrokontroler yang cukup populer. Untuk menggunakan salah
satu mikrokontroler ini pilihan yang paling tepat adalah mikrokontroler yang
memiliki dokumentasi yang baik serta development tools dengan harga yang
terjangkau. Untuk pemula atau hobyst, Intel 8051, Motorola 68hc11 atau
Microchip PIC adalah pilihan yang cukup baik.
v
8051 ( Intel dan lainnya )
Arsitektur Harvard modified dengan alamat terpisah
untuk memori program dan data. Memori untuk program bisa dialamati hingga 64 K.
Memori bawah (4 K, 8K atau 16K tergantung tipe) bisa terletak di chipnya.
Mikrokontroler ini memiliki 128 byte memori internal ditambah beberapa register
(SFR), juga bisa mengalamati hingga 64K memori eksternal untuk data.
Cukup banyak software baik software komersil maupin
gratis untuk mikrokontroler 8051 ini. Mikrokontroler ini memiliki banyak varian
sehingga mampu memenuhi keperluan yang bebeda. Diproduksi tidak hanya oleh
Intel tetapi beberapa pabrikan lainnya juga ikut memproduksi jenis
mikrokontroler ini.
v
6805 ( Motorola )
Memiliki arsitektur Von Neuman
dimana instruksi, data, I/O, dan timer terdapat pada satu daerah memori. Stack
pointer yang dimiliki adalah 5 bit sehingga kedalaman stack terbatas hingga 32
byte. Beberapa mikrokontroler dari keluarga ini memiliki ADC, PLL, Frq. Synthesizer,
serial I/O dan software security. v PIC
(MicroChip)
Mikrokontroler PIC merupakan mikrokontroler RISC yang
pertama. Pada umumnya RISC mengakibatkan kesederhanaan rancangan dan
memungkinkan untuk menambah kemampuanya dengan biaya yang rendah. Walaupun
hanya memiliki sedikit instruksi (33 instruksi untuk 16C5x), keluarga PIC
memiliki banyak keunggulan yang sudah merupakan bagian dari chip. Dengan bus
instruksi dan bus data yang terpisah (arsitektur Harvard), PIC memungkinkan
akses data dan program secara bersamaan sehingga menaikan kinerja
pemrosesannya. Keuntungan dari kesederhanaan rancangan ini adalah chip yang
sangat kecil, sedikit pin dan pemakaian daya yang sangat kecil. Popularitas
mikrokontroler PIC ini meningkat sangat cepat. Dengan harga yang murah, ukuran
kecil dan hemat pemakaian daya, pada saat ini mikrokontroler ini digunakan juga
pada pemakaian lain seperti sebagai rangkaian logika. Terdapat tiga keluarga
PIC pada saat ini yaitu PIC16C5x, PIC16Cxx dan PIC17Cxx.
v
Z8 (Zilog)
Z8 merupakan turunan dari Zilog Z80. Memiliki
arsitektur unik merupakan arsitektur gabungan dengan tiga daerah memori yaitu:
program memori, data memori dan CPU register file. Mikrokontroler ini memiliki
UART, timer, DMA, I/O hingga 40 buah pada chipnya. Versi lainnya memiliki
sync/async serial channel.
Keseluruhan mikrokontroler ini
memiliki Stack RAM yang dapat dikonfigurasikan dan sistem interupsi, dua timer
programmable dengan interupt, proteksi ROM, dua analog komparator
12. Software
Software untuk menggunakan
mikrokontroler dapat didapatkan secara gratis dengan mencari di WWW, tetapi
software gratis biasanya tidak dilengkapi dengan dokumentasinya. Software ini
diantaranya adalah software untuk simulasi dan software untuk pemrograman. Jika
ingin lebih serius mendalami mikrokontroler mungkin lebih baik untuk membeli
software lengkap dengan dokumentasinya. Jika PIC merupakan mikrokontroler yang
dipilih, kita dapat mendownload software yang diperlukan secara gratis di web
microchip yaitu MPSIM (simulator), MPASM ( assembler ).
13. Bahasa Pemrograman Bagi Mikrokontroler
BAHASA MESIN DAN ASSEMBLER
Bahasa mesin
adalah satu-satunya bahasa yang dimengerti oleh mikrokontroler. Bahasa ini
tidak mudah untuk dimengerti oleh manusia. Sedangkan bahasa assembly adalah
suatu bentuk bahasa mesin yang bisa dimengerti oleh manusia. Setiap pernyataan
dari bahasa assembly menggambarkan satu pernyataan bahasa mesin. Sebagai contoh
instruksi JMP (asal kata JUMP) akan lebih mudah dimengerti dibandingkan
instruksi B3H.
Pemrograman
dengan menggunakan bahasa assembly/mesin menghasilkan program yang kecil dan
cepat. Hal ini dikarenakan kita sepenuhnya mengontrol kerja dari program,
tetapi tentu saja jika kita membuat program yang bertele-tele dan berbelit akan
menyebabkan program berjalan lambat.
Untuk orang yang pertama kali mempelajari mikrokontroler,
akan lebih baik jika mempelajari assembler terlebih dahulu sebelum mempelajari
bahasa pemrograman lainnya (mis: C). Dengan membuat program dengan assembler
akan membimbing kita memahami arsitektur dari mikrokontroler tsb.
KOMPILER
Compiler
adalah penerjemah untuk bahasa pemrograman tingkat tinggi. Bekerja dengan cara
menterjemahkan (mis pada PC) langsung ke bahasa mesin yang dimengerti oleh
mikrokontroler.
Salah satu compiler yang banyak dipergunakan saat ini adalah
"C". "C" digunakan pada mikrokontroler kecil hingga
supercomputer. Walaupun program dengan C sedikit sulit untuk dipahami
(diakibatkan oleh gaya penulisan program yang berbeda untuk tiap programer), C
merupakan alat yang sangat flexible dan sangat membantu pengembangan program.
Bahasa ini adalah bahasa tingkat tinggi tetapi masih memungkinkan kita akses
langsung ke mesin. Saat ini terdapat beberapa compiler C yang cukup murah dan
bagus untuk pemrograman mikrokntroler terkenal. Kode ( bahasa mesin) yang
dihasilkan oleh compiler ini cukup efisien (cepat dan kompak ).
14. Alat Bantu Pengembangan
Memiliki
software pemrograman belum mencukupi untuk mengembangkan program bagi suatu
mikrokontroler. Diperlukan pula software untuk mencari kesalahan dalam
pemrograman sbb:
SIMULATOR
Fungsi simulator adalah
mensimulasikan atau menirukan kerja mikrokontroler pada PC. Langkah-langkah
yang dikerjakan serta apa yang terjadi ketika program dijalankan dapat diamati
dilayar PC. Disamping itu juga isi dari register atau variabel dapat diisi atau
diubah ketika program djalankan. Simulator tidak dapat mensimulasi kehadiran
interupsi secara baik, dan biasanya program yang dijalankan jauh lebih lambat
dibandingkan pada keadaan sebenarnya.
DEBUGER RESIDEN
Debuger residen menjalankan
program di mikrokontroler itu sendiri, dan pada saat bersamaan menampilkan
hasilnya pada komputer induknya (PC). Alat bantu ini memiliki beberapa
keunggulan seperti pada simulator dengan kelebihan lain yaitu kita dapat
melihat bagaimana program tersebut bekerja pada target yang sebenarnya. Namun
disisi lain, alat bantu ini memakai sebagian sumber daya yang dimiliki oleh
mikrokontroler seperti port komunikasi (untuk komunikasi dgn PC), interupsi
untuk untuk menjalankan program perlangkah (single step) dan sejumlah memori
untuk menyimpan program dari debugger (bagian residen yang ditempatkan di
target).
EMULATOR
Emulator adalah peralatan yang bekerja dengan berpura-pura
sebagai mikrokontroler dan pada saat bersamaan dia mengambil informasi untuk
ditampilkan. Emulator memberikan kontrol penuh pada target. Emulator ini bisa
berupa perangkat dengan display tersendiri atau merupakan pengantar muka PC.
Jika cukup banyak dana yang dimiliki, emulator ini adalah
alat yang benar-benar diperlukan dalam mengembangkan suatu sistem.
0 komentar:
Posting Komentar