Mikrokontroler: Pengertian, Struktur dan Jenis-Jenisnya
Pengertian Mikrokontroler
Mikrokontroler adalah sistem mikroprosesor lengkap yang terkandung di dalam sebuah chip. Mikrokontroler berbeda dari mikroprosesor serba guna yang digunakan dalam sebuah PC, karena di dalam sebuah mikrokontroler umumnya juga telah berisi komponen pendukung sistem minimal mikroprosesor, yakni memori dan antarmuka I/O, sedangkan di dalam mikroprosesor umumnya hanya berisi CPU saja.
Struktur Mikrokontroler
Di dalam sebuah mikrokontroler terdapat beberapa bagian penyusun penting, berikut rincinya.
CPU
CPU adalah otak mikrokontroler. CPU bertanggung jawab untuk mengambil instruksi (fetch), menerjemahkannya (decode), lalu akhirnya dieksekusi (execute). CPU menghubungkan setiap bagian dari mikrokontroler ke dalam satu sistem. Fungsi utama CPU adalah mengambil dan mendekode instruksi. Instruksi yang diambil dari memori program harus diterjemahkan atau melakukan decode oleh CPU tersebut.
Memori (Penyimpanan)
Fungsi memori dalam mikrokontroler sama dengan mikroprosesor. Memori Ini digunakan untuk menyimpan data dan program. Sebuah mikrokontroler biasanya memiliki sejumlah RAM dan ROM (EEPROM, EPROM dan lain-lainnya) atau memori flash untuk menyimpan kode sumber program (source code program).
Port INPUT / OUTPUT paralel
Port Input / Output paralel digunakan untuk mendorong atau menghubungkan berbagai perangkat seperti LCD, LED, printer, memori dan perangkat INPUT/OUTPUT lainnya ke mikrokontroler.
Port Serial (Serial Port)
Port serial menyediakan berbagai antarmuka serial antara mikrokontroler dan periferal lain seperti port paralel.
Pengatur Waktu dan Penghitung (Timer dan Counter)
Timer dan Counter adalah salah satu fungsi yang sangat berguna dari Mikrokontroler. Mikrokontroler mungkin memiliki lebih dari satu timer dan counter. Pengatur waktu (Timer) dan Penghitung (Counter) menyediakan semua fungsi pengaturan waktu dan penghitungan di dalam mikrokontroler. Operasi utama yang dilakukan di bagian ini adalah fungsi jam, modulasi, pembangkitan pulsa, pengukuran frekuensi, osilasi, dan lain sebagainya. Bagian ini juga dapat digunakan untuk menghitung pulsa eksternal.
Analog to Digital Converter atau Pengonversi Analog ke Digital (ADC)
Konverter ADC digunakan untuk mengubah sinyal analog ke bentuk digital. Sinyal input dalam konverter ini harus dalam bentuk analog (misalnya Output dari Sensor) sedangkan Output-nya dalam bentuk digital. Output digital dapat digunakan untuk berbagai aplikasi digital seperti layar digital pada Perangkat pengukuran.
Digital to Analog Converter atau Pengonversi Digital ke Analog (DAC)
DAC melakukan operasi pembalikan konversi ADC. DAC mengubah sinyal digital menjadi format analog. Ini biasanya digunakan untuk mengendalikan perangkat analog seperti motor DC dan lain sebagainya.
Kontrol Interupsi (Interrupt Control)
Kontrol interupsi atau Interrupt Control digunakan untuk menyediakan interupsi (penundaan) untuk program kerja. Interrupt dapat berupa eksternal (diaktifkan dengan menggunakan pin interrupt) atau internal (dengan menggunakan instruksi interupsi selama pemrograman).
Blok Fungsi Khusus (Special Functioning Block)
Beberapa Mikrokontroler yang hanya dapat digunakan untuk beberapa aplikasi khusus (misalnya sistem Robotika), pengontrol ini memiliki beberapa port tambahan untuk melakukan operasi khusus tersebut yang umumnya dinamakan dengan Blok Fungsi Khusus.
Mikrokontroler AVR
Mikrokonktroler Alv and Vegard’s Risc processor atau sering disingkat AVR merupakan mikrokontroler RISC 8 bit. Karena RISC inilah sebagian besar kode instruksinya dikemas dalam satu siklus clock.
Mikrokontroler AVR merupakan salah satu jenis arsitektur mikrokontroler yang menjadi andalan Atmel. Arsitektur ini dirancang memiliki berbagai kelebihan dan merupakan penyempurnaan dari arsitektur mikrokontroler-mikrokontroler yang sudah ada.
Berbagai seri mikrokontroler AVR telah diproduksi oleh Atmel dan digunakan di dunia sebagai mikrokontroler yang bersifat low cost dan high performance. Di Indonesia, mikrokontroler AVR banyak dipakai karena fiturnya yang cukup lengkap, mudah untuk didapatkan, dan harganya yang relatif terjangkau.
Varian Mikrokontroler AVR
Antar seri mikrokontroler AVR memiliki beragam tipe dan fasilitas, namun semuanya memiliki arsitektur yang sama, dan juga set instruksi yang relatif tidak berbeda. Gambar di bawah ini membandingkan beberapa seri mikrokontroler AVR buatan Atmel.
Keterangan:
- Flash dalah suatu jenis Read Only Memory yang biasanya diisi dengan program hasil buatan manusia yang harus dijalankan oleh mikrokontroler.
- RAM (Random Acces Memory) merupakan memori yang membantu CPU untuk penyimpanan data sementara dan pengolahan data ketika program sedang running.
- EEPROM (Electrically Erasable Programmable Read Only Memory) adalah memori untuk penyimpanan data secara permanen oleh program yang sedang running.
- Port I/O adalah kaki untuk jalur keluar atau masuk sinyal sebagai hasil keluaran ataupun masukan bagi program.
- Timer adalah modul dalam hardware yang bekerja untuk menghitung waktu/pulsa.
- UART (Universal Asynchronous Receive Transmit) adalah jalur komunikasi data khusus secara serial asynchronous.
- PWM (Pulse Width Modulation) adalah fasilitas untuk membuat modulasi pulsa.
- ADC (Analog to Digital Converter) adalah fasilitas untuk dapat menerima sinyal analog dalam range tertentu untuk kemudian dikonversi menjadi suatu nilai digital dalam range tertentu.
- SPI (Serial Peripheral Interface) adalah jalur komunikasi data khusus secara serial secara serial synchronous.
- ISP (In System Programming) adalah kemampuan khusus mikrokontroler untuk dapat diprogram langsung dalam sistem rangkaiannya dengan membutuhkan jumlah pin yang minimal.
Arsitektur Mikrokontroler AVR
Mikrokontroler AVR sudah menggunakan konsep arsitektur Harvard yang memisahkan memori dan bus untuk data dan program, serta sudah menerapkan single level pipelining. Selain itu mikrokontroler AVR juga mengimplementasikan RISC (Reduced Instruction Set Computing) sehingga eksekusi instruksi dapat berlangsung sangat cepat dan efisien. Blok sistem mikrokontroler AVR dapat dilihat dalam gambar di bawah.
Salah satu seri mikrokontroler AVR yang banyak menjadi andalan saat ini adalah tipe ATtiny2313 dan ATmega8535. Seri ATtiny2313 banyak digunakan untuk sistem yang relatif sederhana dan berukuran kecil. Berikut adalah feature-feature mikrokontroler seri ATtiny2313.
- Kapasitas memori Flash 2 Kbytes untuk program
- Kapasitas memori EEPROM 128 bytes untuk data
- Maksimal 18 pin I/O
- 8 interrupt
- 8-bit timer
- Analog komparator
- On-chip oscillator
- Fasilitas In System Programming (ISP)
Sedangkan ATmega8535 banyak digunakan untuk sistem yang kompleks, memiliki input sinyal analog, dan membutuhkan memori yang relatif lebih besar. Berikut adalah fitur-fitur mikrokontroler seri ATmega8535.
- Memori Flash 8 Kbytes untuk program.
- Memori EEPROM 512 bytes untuk data.
- Memori SRAM 512 bytes untuk data.
- Maksimal 32 pin I/O.
- 20 interrupt.
- Satu 16-bit timer dan dua 8-bit timer.
- 8 channel ADC 10 bit.
- Komunikasi serial melalui SPI dan USART.
- Analog komparator.
- 4 I/O PWM.
- Fasilitas In System Programming (ISP).
Mikrokontroler MCS-51
Mikrokontroler ini termasuk dalam keluarga mikrokontroler CISC (Complex Instruction Set Computer). Sebagian besar instruksinya dieksekusi dalam 12 siklus clock.
Mikrokontroler MCS51 buatan Atmel terdiri dari dua versi, yaitu versi 20 kaki dan versi 40 kaki. Semua mikrokontroler ini dilengkapi dengan Flash PEROM (Programmable Eraseable Read Only Memory) sebagai media memori-program, dan susunan kaki IC-IC tersebut sama pada tiap versinya.
Perbedaan dari mikrokontroler-mikrokontroler tersebut terutama terletak pada kapasitas memori-program, memori-data dan jumlah pewaktu 16-bit. Perbedaan mikrokontroler Atmel MCS51 tersebut ditunjukkan pada gambar berikut.
Mikrokontroler MCS51 Atmel versi mini (20 pin) dan versi 40 pin secara garis besar memiliki struktur dasar penyusun arsitektur mikrokontroler yang sama. Bagian-bagian tersebut secara lebih lengkap (detil) ditunjukkan dalam diagram blok berikut.
Mikrokontroler MCS51 Atmel versi 40 kaki mempunyai 32 kaki sebagai port paralel dan 8 pin yang lain untuk konfigurasi kerja mikrokontroler. Satu port paralel terdiri dari 8 kaki, dengan demikian 32 kaki tersebut membentuk 4 buah port paralel yang masing-masing dikenal sebagai port 0, port 1, port 2, port 3. Nomor dari masing-masing jalur (kaki) dari port paralel mikrokontroler MCS51 Atmel mulai dari 0 sampai 7, jalur (kaki) pertama dari port 0 disebut sebagai P0.0 dan jalur terakhir untuk port 3 adalah P3.7.
Mikrokontroler MCS51 Atmel versi mini mempunyai 20 kaki, 15 kaki diantara-nya adalah kaki port 1 dan port 3. 5 kaki yang lain untuk konfigurasi kerja mikrokontroler. Port 1 terdiri dari 8 jalur yaitu P1.0 sampai P1.7 dan port 3 terdiri dari 7 jalur yaitu P3.0 sampai P3.5 dan P3.7. Susunan kaki mikrokontroler MCS51 Atmel versi 40 kaki dapat dilihat pada Gambar berikut.
Fungsi-Fungsi PIN:
- VCC : Kaki VCC digunakan untuk masukan suplai tegangan.
- GND : Kaki (pin) GND fungsinya sebagai saluran ground atau pertanahan.
- RST : Kaki RST fungsinya sebagai masukan reset. Kondisi “1” selama 2 siklus mesin pada saat oscillator bekerja akan me-reset mikrokontroler yang bersangkutan.
- ALE : Kaki ALE digunakan sebagai keluaran ALE atau Adreess Latch Enable yang akan menghasilkan pulsa-pulsa untuk menahan byte rendah (low byte) alamat selama mengakses memori eksternal. Kaki ini juga berfungsi sebagai masukan pulsa program (the program pulse input) atau selama pemrograman flash. Pada operasi normal, ALE akan berpulsa dengan laju 1/6 dari frekuensi kristal dan dapat digunakan sebagai pewaktuan (timing) atau pendekatan (clocking) rangkaian eksternal.
- PSEN: Kaki (Program Store Enable) merupakan sinyal baca untuk memori program eksternal. Saat mikrokontroler MCS51 menjalankan program dari memori eksternal, akan diaktifkan dua kali per-siklus mesin, kecuali dua aktivasi dilompati (diabaikan) saat mengakses memori data eksternal.
- VPP : Kaki /VPP (Exkternal Access Enable) fungsinya sebagai kontrol untuk mengakses memori. harus dihubungkan ke ground, jika mikrokontroler akan mengeksekusi program dari memori eksternal. Selain itu harus dihubungkan ke VCC jika akan mengakses program secara internal. Kaki ini juga berfungsi untuk menerima tegangan 12V (VPP) selama pemrograman flash, khususnya untuk tipe mikrokontroler 12V.
- XTAL1 : Kaki XTAL1 merupakan masukan untuk penguat inverting oscillator dan masukan untuk clock internal pada rangkaian operasi mikrokontroler.
- XTAL2 : Kaki XTAL2 merupakan keluaran dari rangkaian penguat inverting oscilator.
Mikrokontroler PIC
Pada awalnya, PIC merupakan kependekan dari Programmable Interface Controller. PIC termasuk keluarga mikrokontroler berarsitektur Harvard yang dibuat oleh Microchip Technology. Awalnya dikembangkan oleh Divisi Mikro elektronik General Instrument dengan nama PIC1640.
PIC memungkinkan Anda untuk mengontrol perangkat output ketika mereka dipicu oleh sensor dan switch. Program dapat dihasilkan dengan menggunakan diagram alur dalam perangkat lunak komputer, yang kemudian dapat di download ke dalam chip PIC. Mereka dapat ditulis ulang sebanyak yang Anda inginkan. Memori jenis ini disebut memori flash.
Sebuah mikrokontroler PIC adalah sirkuit terpadu tunggal cukup kecil untuk muat di telapak tangan dan berisi memori pengolahan unit, Jam dan sirkuit Input / Output dalam satu unit. Sebuah mikrokontroler PIC, oleh karena itu, sering digambarkan sebagai komputer dalam sirkuit terpadu.
Mikrokontroler PIC dapat dibeli kosong dan kemudian diprogram dengan program kontrol tertentu. Mikrokontroler PIC juga dapat dibeli dengan pra–diprogram seperangkat perintah yang memungkinkan download langsung dari kabel komputer dan mengurangi biaya peralatan pemrograman. Berikut adalah diagram blok dari mikrokontroler PCI.
Mikrokontroler ARM
ARM adalah prosesor dengan arsitektur set instruksi 32bit RISC (Reduced Instruction Set Computer) yang dikembangkan oleh ARM Holdings. ARM merupakan singkatan dari Advanced RISC Machine (sebelumnya lebih dikenal dengan kepanjangan Acorn RISC Machine). Pada awalnya ARM prosesor dikembangkan untuk PC (Personal Computer) oleh Acorn Computers, sebelum dominasi Intel x86 prosesor Microsoft di IBM PC kompatibel menyebabkan Acorn Computers bangkrut.
Melalui izin dari seluruh dunia, arsitektur ARM adalah yang paling umum dilaksanakan 32-bit set instruksi arsitektur. Arsitektur ARM diimplementasikan pada Windows, Unix, dan sistem operasi mirip Unix, termasuk Apple iOS, Android, BSD, Inferno, Solaris, WebOS, Plan 9 dan GNU / Linux. Advanced RISC Machine awalnya dikenal sebagai Mesin Acorn RISC.