Pengertian Mengenai Mikrokontroler

Dipublikasikan oleh Jovita Aurelia Sugihardja

23 April 2024, 09.02

Sumber: Wikipedia

Mikrokontroler(MC, UC, atau μC) atau unit mikrokontroler(MCU) adalah sebuah komputer kecil dalam sebuah sirkuit terpadu. Mikrokontroler berisi satu atau lebih CPU(inti prosesor) beserta memori dan periferal input/output yang dapat diprogram. Memori program dalam bentuk flash NOR, ROM OTP atau RAM feroelektrik juga sering disertakan pada chip, serta sejumlah kecil RAM. Mikrokontroler dirancang untuk aplikasi tertanam, berbeda dengan mikroprosesor yang digunakan di komputer pribadi atau aplikasi tujuan umum lainnya yang terdiri dari berbagai chip diskrit.

Dalam terminologi modern, mikrokontroler mirip dengan, tetapi kurang canggih dari, sistem pada chip (SoC). SoC dapat menyertakan mikrokontroler sebagai salah satu komponennya, tetapi biasanya mengintegrasikannya dengan periferal canggih seperti unit pemrosesan grafis (GPU), modul Wi-Fi, atau satu atau beberapa koprosesor.

Mikrokontroler digunakan dalam produk dan perangkat yang dikontrol secara otomatis, seperti sistem kontrol mesin mobil, perangkat medis implan, kendali jarak jauh, mesin kantor, peralatan, perkakas listrik, mainan, dan sistem tertanam lainnya. Dengan mengurangi ukuran dan biaya dibandingkan dengan desain yang menggunakan mikroprosesor, memori, dan perangkat input/output yang terpisah, mikrokontroler membuat kontrol digital untuk lebih banyak perangkat dan proses menjadi lebih praktis. Mikrokontroler sinyal campuran adalah hal yang umum, mengintegrasikan komponen analog yang diperlukan untuk mengontrol sistem elektronik non-digital. Dalam konteks internet of things, mikrokontroler adalah cara yang ekonomis dan populer untuk mengumpulkan data, merasakan, dan menggerakkan dunia fisik sebagai perangkat tepi.

Beberapa mikrokontroler dapat menggunakan kata empat-bit dan beroperasi pada frekuensi serendah 4 kHz untuk konsumsi daya yang rendah (satu digit miliwatt atau mikrowatt). Mereka umumnya memiliki kemampuan untuk mempertahankan fungsionalitas sambil menunggu peristiwa seperti penekanan tombol atau interupsi lainnya; konsumsi daya saat tidur (jam CPU dan sebagian besar periferal mati) mungkin hanya nanowatt, membuat banyak dari mereka sangat cocok untuk aplikasi baterai yang tahan lama. Mikrokontroler lain dapat melayani peran yang sangat penting dalam hal kinerja, di mana mereka mungkin perlu bertindak lebih seperti prosesor sinyal digital (DSP), dengan kecepatan clock dan konsumsi daya yang lebih tinggi.

Sejarah
Latar belakang

Mikroprosesor multi-chip pertama, Sistem Empat Fase AL1 pada tahun 1969 dan Garrett AiResearch MP944 pada tahun 1970, dikembangkan dengan beberapa chip MOS LSI. Mikroprosesor chip tunggal pertama adalah Intel 4004, yang dirilis dengan satu chip MOS LSI pada tahun 1971. Ini dikembangkan oleh Federico Faggin, menggunakan teknologi MOS gerbang silikon, bersama dengan insinyur Intel Marcian Hoff dan Stan Mazor, serta insinyur Busicom Masatoshi Shima. Diikuti oleh Intel 4040 4-bit, Intel 8008 8-bit, dan Intel 8080 8-bit. Semua prosesor ini membutuhkan beberapa chip eksternal untuk mengimplementasikan sistem kerja, termasuk memori dan chip antarmuka periferal. Akibatnya, total biaya sistem mencapai beberapa ratus dolar (1970-an AS), sehingga tidak memungkinkan untuk mengkomputerisasi peralatan kecil secara ekonomis.
MOS Technology memperkenalkan mikroprosesor di bawah 100 dolar pada tahun 1975, yaitu 6501 dan 6502. Tujuan utama mereka adalah untuk mengurangi hambatan biaya ini, tetapi mikroprosesor ini masih membutuhkan dukungan eksternal, memori, dan chip periferal yang membuat total biaya sistem mencapai ratusan dolar.

Pengembangan

Sebuah buku memberikan penghargaan kepada insinyur TI Gary Boone dan Michael Cochran atas keberhasilan pembuatan mikrokontroler pertama pada tahun 1971. Hasil karya mereka adalah TMS 1000, yang tersedia secara komersial pada tahun 1974. TMS 1000 menggabungkan memori hanya-baca, memori baca/tulis, prosesor, dan jam pada satu chip dan ditargetkan untuk sistem yang disematkan.

Selama awal hingga pertengahan 1970-an, produsen elektronik Jepang mulai memproduksi mikrokontroler untuk mobil, termasuk MCU 4-bit untuk hiburan di dalam mobil, wiper otomatis, kunci elektronik, dan dasbor, serta MCU 8-bit untuk kontrol mesin.

Sebagian sebagai tanggapan atas keberadaan chip tunggal TMS 1000, Intel mengembangkan sistem komputer pada chip yang dioptimalkan untuk aplikasi kontrol, Intel 8048, dengan suku cadang komersial yang pertama kali dikirim pada tahun 1977. Ini menggabungkan RAM dan ROM pada chip yang sama dengan mikroprosesor. Di antara berbagai aplikasi, chip ini pada akhirnya akan digunakan di lebih dari satu miliar keyboard PC. Pada saat itu Presiden Intel, Luke J. Valenter, menyatakan bahwa mikrokontroler merupakan salah satu produk paling sukses dalam sejarah perusahaan, dan dia meningkatkan anggaran divisi mikrokontroler lebih dari 25%.

Sebagian besar mikrokontroler pada waktu itu memiliki varian yang bersamaan. Salah satunya memiliki memori program EPROM, dengan jendela kuarsa transparan di tutup kemasan untuk memungkinkannya terhapus oleh paparan sinar ultraviolet. Chip yang dapat dihapus ini sering digunakan untuk pembuatan prototipe. Varian lainnya adalah ROM yang diprogram dengan topeng atau varian PROM yang hanya dapat diprogram satu kali. Untuk yang terakhir, kadang-kadang digunakan sebutan OTP, singkatan dari "dapat diprogram sekali". Dalam mikrokontroler OTP, PROM biasanya memiliki tipe yang identik dengan EPROM, tetapi paket chip tidak memiliki jendela kuarsa; karena tidak ada cara untuk mengekspos 

EPROM ke sinar ultraviolet, maka EPROM tidak dapat dihapus. Karena versi yang dapat dihapus memerlukan paket keramik dengan jendela kuarsa, maka harganya jauh lebih mahal daripada versi OTP, yang dapat dibuat dalam paket plastik buram yang lebih murah. Untuk varian yang dapat dihapus, kuarsa diperlukan, alih-alih kaca yang lebih murah, untuk transparansi terhadap sinar ultraviolet - yang sebagian besar kaca tidak tembus cahaya - tetapi pembeda biaya utama adalah paket keramik itu sendiri.
Pada tahun 1993, pengenalan memori EEPROM memungkinkan mikrokontroler (dimulai dengan Microchip PIC16C84) dihapus secara elektrik dengan cepat tanpa paket yang mahal seperti yang diperlukan untuk EPROM, memungkinkan pembuatan prototipe yang cepat dan pemrograman dalam sistem. (Teknologi EEPROM telah tersedia sebelum waktu ini, tetapi EEPROM sebelumnya lebih mahal dan kurang tahan lama, sehingga tidak cocok untuk mikrokontroler yang diproduksi secara massal dan berbiaya rendah). Pada tahun yang sama, Atmel memperkenalkan mikrokontroler pertama yang menggunakan memori Flash, sebuah tipe khusus dari EEPROM. Perusahaan-perusahaan lain dengan cepat mengikutinya, dengan kedua tipe memori tersebut.
Saat ini mikrokontroler sudah murah dan tersedia bagi para penghobi, dengan komunitas online yang besar di sekitar prosesor tertentu.

Volume dan biaya

Pada tahun 2002, sekitar 55% dari semua CPU yang terjual di dunia adalah mikrokontroler 8-bit dan mikroprosesor.
Lebih dari dua miliar mikrokontroler 8-bit terjual pada tahun 1997, dan menurut Semico, lebih dari empat miliar mikrokontroler 8-bit terjual pada tahun 2006. Baru-baru ini, Semico mengklaim pasar MCU tumbuh 36,5% pada tahun 2010 dan 12% pada tahun 2011.
Sebuah rumah di negara maju mungkin hanya memiliki empat mikroprosesor tujuan umum, namun memiliki sekitar tiga lusin mikrokontroler. Sebuah mobil kelas menengah memiliki sekitar 30 mikrokontroler. Mereka juga dapat ditemukan di banyak perangkat listrik seperti mesin cuci, oven microwave, dan telepon.

Secara historis, segmen 8-bit telah mendominasi pasar MCU [.] Mikrokontroler 16-bit menjadi kategori MCU dengan volume terbesar pada tahun 2011, menyalip perangkat 8-bit untuk pertama kalinya pada tahun tersebut [.] IC Insights percaya bahwa komposisi pasar MCU akan mengalami perubahan substansial dalam lima tahun ke depan dengan perangkat 32-bit yang secara mantap meraih pangsa penjualan dan volume unit yang lebih besar. Pada tahun 2017, MCU 32-bit diperkirakan akan mencapai 55% dari penjualan mikrokontroler [.] Dalam hal volume unit, MCU 32-bit diperkirakan akan mencapai 38% dari pengiriman mikrokontroler pada tahun 2017, sementara perangkat 16-bit akan mewakili 34% dari total, dan desain 4- / 8-bit diperkirakan akan mencapai 28% dari unit yang terjual pada tahun itu. Pasar MCU 32-bit diperkirakan akan tumbuh dengan cepat karena meningkatnya permintaan akan tingkat presisi yang lebih tinggi dalam sistem pemrosesan tertanam dan pertumbuhan konektivitas menggunakan Internet. [Dalam beberapa tahun ke depan, MCU 32-bit yang kompleks diperkirakan akan mencapai lebih dari 25% dari kekuatan pemrosesan dalam kendaraan.
-IC Insights, Pasar MCU di Jalur Migrasi ke Perangkat Berbasis 32-bit dan ARM

Biaya produksi bisa di bawah US$0,10 per unit.

Biaya telah menurun dari waktu ke waktu, dengan mikrokontroler 8-bit termurah tersedia dengan harga di bawah US $ 0,03 pada tahun 2018, dan beberapa mikrokontroler 32-bit sekitar US $ 1 untuk jumlah yang sama.

Pada tahun 2012, setelah krisis global - penurunan dan pemulihan penjualan tahunan terburuk yang pernah ada dan harga penjualan rata-rata dari tahun ke tahun anjlok 17% - penurunan terbesar sejak tahun 1980-an - harga rata-rata untuk mikrokontroler adalah US $ 0,88 (US $ 0,69 untuk 4 - 8-bit, US $ 0,59 untuk 16-bit, US $ 1,76 untuk 32-bit).

Pada tahun 2012, penjualan mikrokontroler 8-bit di seluruh dunia adalah sekitar US $ 4 miliar, sementara mikrokontroler 4-bit juga mengalami penjualan yang signifikan.

Pada tahun 2015, mikrokontroler 8-bit dapat dibeli dengan harga US$0,311 (1.000 unit), 16-bit dengan harga US$0,385 (1.000 unit), dan 32-bit dengan harga US$0,378 (1.000 unit, tetapi dengan harga US$0,35 untuk 5.000 unit).

Pada tahun 2018, mikrokontroler 8-bit dapat dibeli dengan harga US$0,03, 16-bit seharga US$0,393 (1.000 unit, tetapi dengan harga US$0,563 untuk 100 unit atau US$0,349 untuk 2.000 unit), dan 32-bit seharga US$0,503 (1.000 unit, tetapi dengan harga US$0,466 untuk 5.000 unit).

Pada tahun 2018, mikrokontroler dengan harga murah di atas dari tahun 2015 semuanya lebih mahal (dengan inflasi yang dihitung antara harga tahun 2018 dan 2015 untuk unit-unit tertentu) di: mikrokontroler 8-bit dapat dibeli dengan harga US $ 0,319 (1.000 unit) atau 2,6% lebih tinggi, mikrokontroler 16-bit dengan harga US $ 0,464 (1.000 unit) atau 21% lebih tinggi, dan mikrokontroler 32-bit dengan harga US $ 0,503 (1.000 unit, tetapi dengan harga US $ 0,466 untuk 5.000 unit) atau 33% lebih tinggi.

Komputer terkecil

Pada tanggal 21 Juni 2018, "komputer terkecil di dunia" diumumkan oleh Universitas Michigan. Perangkat ini adalah "sistem sensor nirkabel dan tanpa baterai 0,04 mm3 16 nW dengan prosesor Cortex-M0+ terintegrasi dan komunikasi optik untuk pengukuran suhu seluler." Alat ini "hanya berukuran 0,3 mm atau lebih kecil dari sebutir beras. [Selain RAM dan fotovoltaik, perangkat komputasi baru ini memiliki prosesor serta pemancar dan penerima nirkabel. Karena ukurannya yang terlalu kecil untuk memiliki antena radio konvensional, perangkat ini menerima dan mengirimkan data dengan cahaya tampak. Sebuah stasiun pangkalan menyediakan cahaya untuk daya dan pemrograman, dan menerima data." Perangkat ini berukuran 1⁄10 ukuran komputer berukuran dunia yang diklaim sebelumnya oleh IBM pada bulan Maret 2018, yang "lebih kecil dari sebutir garam", memiliki sejuta transistor, biaya pembuatannya kurang dari $ 0,10, dan, dikombinasikan dengan teknologi blockchain, dimaksudkan untuk logistik dan aplikasi sidik jari digital "kripto-jangkar".

Desain tertanam

Mikrokontroler dapat dianggap sebagai sistem mandiri dengan prosesor, memori, dan periferal dan dapat digunakan sebagai sistem tertanam. Mayoritas mikrokontroler yang digunakan saat ini tertanam di mesin lain, seperti mobil, telepon, peralatan, dan periferal untuk sistem komputer.

Meskipun beberapa sistem tertanam sangat canggih, banyak yang memiliki persyaratan minimal untuk memori dan panjang program, tanpa sistem operasi, dan kompleksitas perangkat lunak yang rendah. Perangkat input dan output yang umum termasuk sakelar, relay, solenoida, LED, layar kristal cair kecil atau khusus, perangkat frekuensi radio, dan sensor untuk data seperti suhu, kelembapan, tingkat cahaya, dll. Sistem tertanam biasanya tidak memiliki keyboard, layar, disk, printer, atau perangkat I/O lain yang dapat dikenali dari komputer pribadi, dan mungkin tidak memiliki perangkat interaksi manusia dalam bentuk apa pun.

Interupsi

Mikrokontroler harus memberikan respons waktu nyata (dapat diprediksi, meskipun tidak harus cepat) terhadap peristiwa dalam sistem tertanam yang mereka kendalikan. Ketika peristiwa tertentu terjadi, sistem interupsi dapat memberi sinyal kepada prosesor untuk menghentikan pemrosesan urutan instruksi saat ini dan memulai rutinitas layanan inter upsi (ISR, atau "penangan interupsi") yang akan melakukan pemrosesan apa pun yang diperlukan berdasarkan sumber interupsi, sebelum kembali ke urutan instruksi asli. Sumber interupsi yang mungkin terjadi bergantung pada perangkat dan sering kali mencakup peristiwa seperti timer internal yang meluap, menyelesaikan konversi analog ke digital, perubahan level logika pada input seperti dari tombol yang ditekan, dan data yang diterima pada tautan komunikasi. Jika konsumsi daya penting seperti pada perangkat baterai, interupsi juga dapat membangunkan mikrokontroler dari kondisi tidur berdaya rendah di mana prosesor dihentikan hingga diminta untuk melakukan sesuatu oleh peristiwa periferal.

Program 

Biasanya program mikrokontroler harus sesuai dengan memori on-chip yang tersedia, karena akan mahal untuk menyediakan sistem dengan memori eksternal yang dapat diupgrade. Kompiler dan perakit digunakan untuk mengubah kode bahasa tingkat tinggi dan bahasa rakitan menjadi kode mesin yang ringkas untuk disimpan dalam memori mikrokontroler. Tergantung pada perangkatnya, memori program dapat berupa memori permanen dan hanya-baca yang hanya dapat diprogram di pabrik, atau dapat berupa flash yang dapat diubah di lapangan atau memori hanya-baca yang dapat dihapus.

Produsen sering kali memproduksi versi khusus mikrokontroler mereka untuk membantu pengembangan perangkat keras dan perangkat lunak sistem target. Awalnya, ini termasuk versi EPROM yang memiliki "jendela" di bagian atas perangkat di mana memori program dapat dihapus oleh sinar ultraviolet, siap untuk diprogram ulang setelah pemrograman ("bakar") dan siklus pengujian. Sejak tahun 1998, versi EPROM sudah jarang digunakan dan telah digantikan oleh EEPROM dan flash, yang lebih mudah digunakan (dapat dihapus secara elektronik) dan lebih murah untuk diproduksi. Versi lain mungkin tersedia di mana ROM diakses sebagai perangkat eksternal dan bukan sebagai memori internal, namun hal ini menjadi langka karena ketersediaan pemrogram mikrokontroler yang murah.

Penggunaan perangkat yang dapat diprogram di lapangan pada pengontrol mikro memungkinkan pembaruan firmware di lapangan atau mengizinkan revisi pabrik yang terlambat untuk produk yang telah dirakit tetapi belum dikirim. Memori yang dapat diprogram juga mengurangi waktu tunggu yang diperlukan untuk penyebaran produk baru.

Di mana ratusan ribu perangkat identik diperlukan, menggunakan suku cadang yang diprogram pada saat pembuatan dapat menjadi ekonomis. Bagian-bagian "yangdiprogram dengan topeng" ini memiliki program yang ditetapkan dengan cara yang sama seperti logika chip, pada saat yang sama. Mikrokontroler yang disesuaikan menggabungkan blok logika digital yang dapat dipersonalisasi untuk kemampuan pemrosesan tambahan, periferal dan antarmuka yang disesuaikan dengan persyaratan aplikasi. Salah satu contohnya adalah AT91CAP dari Atmel.

Fitur mikrokontroler lainnya

Mikrokontroler biasanya memiliki beberapa hingga puluhan pin input/output(GPIO) untuk keperluan umum. Pin GPIO adalah perangkat lunak yang dapat dikonfigurasi ke status input atau output. Ketika pin GPIO dikonfigurasikan ke status input, pin tersebut sering digunakan untuk membaca sensor atau sinyal eksternal. Dikonfigurasi ke status output, pin GPIO dapat menggerakkan perangkat eksternal seperti LED atau motor, sering kali secara tidak langsung, melalui elektronika daya eksternal.
Banyak sistem tertanam perlu membaca sensor yang menghasilkan sinyal analog. Ini adalah tujuan dari konverter analog-ke-digital (ADC). Karena prosesor dibuat untuk menafsirkan dan memproses data digital, yaitu 1 dan 0, prosesor tidak dapat melakukan apa pun dengan sinyal analog yang mungkin dikirim ke prosesor oleh perangkat. Jadi, konverter analog-ke-digital digunakan untuk mengubah data yang masuk ke dalam bentuk yang dapat dikenali oleh prosesor. Fitur yang kurang umum pada beberapa mikrokontroler adalah konverter digital-ke-analog (DAC) yang memungkinkan prosesor mengeluarkan sinyal analog atau level tegangan.

Selain konverter, banyak mikroprosesor tertanam yang menyertakan berbagai pengatur waktu. Salah satu jenis pengatur waktu yang paling umum adalah pengatur waktu interval yang dapat diprogram (PIT). PIT dapat menghitung mundur dari suatu nilai ke nol, atau hingga kapasitas register penghitungan, meluap ke nol. Setelah mencapai nol, PIT akan mengirimkan interupsi ke prosesor yang mengindikasikan bahwa ia telah selesai menghitung. Hal ini berguna untuk perangkat seperti termostat, yang secara berkala menguji suhu di sekitar mereka untuk melihat apakah mereka perlu menyalakan/mematikan AC, pemanas, dll.
Blok modulasi lebar pulsa (PWM) khusus memungkinkan CPU untuk mengontrol konverter daya, beban resistif, motor, dll., tanpa menggunakan banyak sumber daya CPU dalam putaran pengatur waktu yang ketat.

Blok penerima/pemancar asinkron universal (UART) memungkinkan untuk menerima dan mengirim data melalui jalur serial dengan beban yang sangat kecil pada CPU. Perangkat keras on-chip khusus juga sering kali menyertakan kemampuan untuk berkomunikasi dengan perangkat lain (chip) dalam format digital seperti Inter-Integrated Circuit(I²C), Serial Peripheral Interface(SPI), Universal Serial Bus(USB), dan Ethernet.

Integrasi yang lebih tinggi

Mikrokontroler mungkin tidak mengimplementasikan alamat eksternal atau bus data karena mereka mengintegrasikan RAM dan memori non-volatile pada chip yang sama dengan CPU. Dengan menggunakan lebih sedikit pin, chip dapat ditempatkan dalam paket yang jauh lebih kecil dan lebih murah.

Mengintegrasikan memori dan periferal lain pada satu chip dan mengujinya sebagai satu unit akan meningkatkan biaya chip tersebut, tetapi sering kali menghasilkan penurunan biaya bersih sistem tertanam secara keseluruhan. Meskipun biaya CPU yang memiliki periferal terintegrasi sedikit lebih mahal daripada biaya CPU dan periferal eksternal, memiliki lebih sedikit chip biasanya memungkinkan papan sirkuit yang lebih kecil dan lebih murah, serta mengurangi tenaga kerja yang dibutuhkan untuk merakit dan menguji papan sirkuit, selain cenderung mengurangi tingkat cacat pada perakitan yang telah selesai.
Mikrokontroler adalah sirkuit terintegrasi tunggal, biasanya dengan fitur-fitur berikut:

  • unit pemrosesan pusat - mulai dari prosesor 4-bit yang kecil dan sederhana hingga prosesor 32-bit atau 64-bit yang kompleks

  • memori yang mudah menguap(RAM) untuk penyimpanan data

  • ROM, EPROM, EEPROM, atau memori Flash untuk penyimpanan program dan parameter operasi

  • bit input dan output diskrit, memungkinkan kontrol atau deteksi status logika dari masing-masing pin paket

  • input / output serial seperti port serial(UART)

  • antarmuka komunikasi serial lainnya seperti I²C, Antarmuka Periferal Serial, dan Jaringan Area Pengontrol untuk interkoneksi sistem

  • periferal seperti pengatur waktu, penghitung peristiwa, generator PWM, dan pengawas

  • generator jam - sering kali merupakan osilator untuk kristal waktu kuarsa, resonator, atau sirkuit RC

  • banyak yang menyertakan konverter analog-ke-digital, beberapa menyertakan konverter digital-ke-analog

  • pemrograman dalam sirkuit dan dukungan debugging dalam sirkuit    

Integrasi ini secara drastis mengurangi jumlah chip dan jumlah kabel serta ruang papan sirkuit yang diperlukan untuk menghasilkan sistem yang setara dengan menggunakan chip terpisah. Selain itu, pada perangkat dengan jumlah pin yang rendah khususnya, setiap pin dapat dihubungkan ke beberapa periferal internal, dengan fungsi pin yang dipilih oleh perangkat lunak. Hal ini memungkinkan suatu bagian untuk digunakan dalam berbagai aplikasi yang lebih luas daripada jika pin memiliki fungsi khusus.
Mikrokontroler telah terbukti sangat populer dalam sistem tertanam sejak diperkenalkan pada tahun 1970-an.

Beberapa mikrokontroler menggunakan arsitektur Harvard: bus memori terpisah untuk instruksi dan data, yang memungkinkan akses dilakukan secara bersamaan. Ketika arsitektur Harvard digunakan, kata instruksi untuk prosesor mungkin memiliki ukuran bit yang berbeda dari panjang memori internal dan register; sebagai contoh: instruksi 12-bit yang digunakan dengan register data 8-bit.
Keputusan tentang periferal mana yang akan diintegrasikan sering kali sulit. Vendor mikrokontroler sering kali memperdagangkan frekuensi operasi dan fleksibilitas desain sistem terhadap persyaratan waktu ke pasar dari pelanggan mereka dan biaya sistem yang lebih rendah secara keseluruhan. Produsen harus menyeimbangkan kebutuhan untuk meminimalkan ukuran chip dengan fungsionalitas tambahan.

Arsitektur mikrokontroler sangat bervariasi. Beberapa desain mencakup inti mikroprosesor tujuan umum, dengan satu atau lebih fungsi ROM, RAM, atau I/O yang terintegrasi ke dalam paket. Desain lainnya dibuat khusus untuk aplikasi kontrol. Set instruksi mikrokontroler biasanya memiliki banyak instruksi yang ditujukan untuk manipulasi bit (operasi bit-bijaksana) untuk membuat program kontrol lebih ringkas. Sebagai contoh, prosesor tujuan umum mungkin memerlukan beberapa instruksi untuk menguji bit dalam sebuah register dan bercabang jika bit tersebut di-set, di mana mikrokontroler dapat memiliki satu instruksi untuk menyediakan fungsi yang biasanya diperlukan.

Mikrokontroler secara historis tidak memiliki koprosesor matematika, sehingga aritmatika floating-point dilakukan oleh perangkat lunak. Namun, beberapa desain terbaru menyertakan FPU dan fitur yang dioptimalkan untuk DSP. Contohnya adalah lini berbasis PIC32 MIPS dari Microchip.

Lingkungan pemrograman

Mikrokontroler pada awalnya diprogram hanya dalam bahasa rakitan, tetapi berbagai bahasa pemrograman tingkat tinggi, seperti C, Python, dan JavaScript, sekarang juga digunakan secara umum untuk menargetkan mikrokontroler dan sistem tertanam. Kompiler untuk bahasa tujuan umum biasanya memiliki beberapa batasan serta peningkatan untuk lebih mendukung karakteristik unik mikrokontroler. Beberapa mikrokontroler memiliki lingkungan untuk membantu mengembangkan jenis aplikasi tertentu. Vendor mikrokontroler sering kali menyediakan alat yang tersedia secara bebas untuk mempermudah penggunaan perangkat keras mereka.

Mikrokontroler dengan perangkat keras khusus mungkin memerlukan dialek C non-standar mereka sendiri, seperti SDCC untuk 8051, yang mencegah penggunaan alat standar (seperti perpustakaan kode atau alat analisis statis) bahkan untuk kode yang tidak terkait dengan fitur perangkat keras. Interpreter juga dapat berisi fitur-fitur yang tidak standar, seperti MicroPython, meskipun sebuah fork, CircuitPython, telah berupaya memindahkan ketergantungan perangkat keras ke pustaka dan membuat bahasa tersebut mengikuti standar CPython yang lebih tinggi.

Firmware penerjemah juga tersedia untuk beberapa mikrokontroler. Sebagai contoh, BASIC pada mikrokontroler awal Intel 8052; BASIC dan FORTH pada Zilog Z8 serta beberapa perangkat modern. Biasanya penerjemah ini mendukung pemrograman interaktif.
Simulator tersedia untuk beberapa mikrokontroler. Simulator ini memungkinkan pengembang untuk menganalisa perilaku mikrokontroler dan program mereka jika mereka menggunakan bagian yang sebenarnya. Simulator akan menunjukkan status prosesor internal dan juga output, serta memungkinkan sinyal input dihasilkan. Meskipun di satu sisi sebagian besar simulator akan dibatasi karena tidak dapat mensimulasikan banyak perangkat keras lain dalam suatu sistem, simulator dapat melatih kondisi yang mungkin sulit direproduksi sesuka hati dalam implementasi fisik, dan dapat menjadi cara tercepat untuk men-debug dan menganalisis masalah.

Mikrokontroler terbaru sering diintegrasikan dengan sirkuit debug on-chip yang ketika diakses oleh emulator dalam sirkuit (ICE) melalui JTAG, memungkinkan debugging firmware dengan debugger. ICE waktu nyata dapat memungkinkan melihat dan/atau memanipulasi status internal saat berjalan. ICE penelusuran dapat merekam program yang dieksekusi dan status MCU sebelum/sesudah titik pemicu.

Jenis

Pada tahun 2008, ada beberapa lusin arsitektur dan vendor mikrokontroler termasuk:

  • Prosesor inti ARM (banyak vendor)

    • Inti ARM Cortex-M secara khusus ditargetkan untuk aplikasi mikrokontroler

  • Teknologi Microchip Atmel AVR (8-bit), AVR32 (32-bit), dan AT91SAM (32-bit)

  • Inti M8C dari Cypress Semiconductor yang digunakan dalam Cypress PSoC mereka

  • Freescale ColdFire (32-bit) dan S08 (8-bit)

  • Freescale 68HC11 (8-bit), dan yang lainnya yang berbasis pada keluarga Motorola 6800

  • Intel 8051, juga diproduksi oleh NXP Semiconductors, Infineon, dan banyak lainnya

  • Infineon: 8-bit XC800, 16-bit XE166, 32-bit XMC4000 (Cortex M4F berbasis ARM), 32-bit TriCore dan, mikrokontroler Aurix Tricore Bit 32-bit

  • Maxim Integrated MAX32600, MAX32620, MAX32625, MAX32630, MAX32650, MAX32640

  • MIPS

  • Teknologi Microchip PIC, (PIC16 8-bit, PIC18, dsPIC33 / PIC24 16-bit), (PIC32 32-bit)

  • Semikonduktor NXP LPC1000, LPC2000, LPC3000, LPC4000 (32-bit), LPC900, LPC700 (8-bit)

  • Baling-baling Paralaks

  • PowerPC ISE

  • Kelinci 2000 (8-bit)

  • Renesas Electronics: RL78 16-bit MCU; RX 32-bit MCU; SuperH; V850 32-bit MCU; H8; R8C 16-bit MCU

  • Laboratorium Silikon Mikrokontroler 8051 8-bit dan mikrokontroler 32-bit berbasis ARM dengan sinyal campuran

  • STMicroelectronics STM8 (8-bit), ST10 (16-bit), STM32 (32-bit), SPC5 (32-bit otomotif)

  • Texas Instruments TI MSP430 (16-bit), MSP432 (32-bit), C2000 (32-bit)

  • Toshiba TLCS-870 (8-bit/16-bit)

Masih banyak lagi yang lainnya, beberapa di antaranya digunakan dalam rentang aplikasi yang sangat sempit atau lebih mirip prosesor aplikasi daripada mikrokontroler. Pasar mikrokontroler sangat terfragmentasi, dengan banyak vendor, teknologi, dan pasar. Perhatikan bahwa banyak vendor menjual atau telah menjual beberapa arsitektur.

Latensi interupsi

Berbeda dengan komputer serba guna, mikrokontroler yang digunakan dalam sistem tertanam sering kali berusaha mengoptimalkan latensi interupsi dibandingkan throughput instruksi. Masalahnya termasuk mengurangi latensi, dan membuatnya lebih dapat diprediksi (untuk mendukung kontrol waktu nyata).

Ketika sebuah perangkat elektronik menyebabkan interupsi, selama peralihan konteks, hasil peralihan (register) harus disimpan sebelum perangkat lunak yang bertanggung jawab untuk menangani interupsi dapat berjalan. Register tersebut juga harus dipulihkan setelah penangan interupsi selesai. Jika ada lebih banyak register prosesor, proses penyimpanan dan pemulihan ini mungkin membutuhkan lebih banyak waktu, meningkatkan latensi. (Jika ISR tidak memerlukan penggunaan beberapa register, ISR dapat membiarkannya daripada menyimpan dan mengembalikannya, sehingga dalam hal ini register-register tersebut tidak terlibat dengan latensi). Cara untuk mengurangi latensi konteks/pengembalian tersebut termasuk memiliki register yang relatif sedikit di unit pemrosesan pusat mereka (tidak diinginkan karena memperlambat sebagian besar pemrosesan non-interupsi secara substansial), atau setidaknya memiliki perangkat keras yang tidak menyimpan semuanya (ini gagal jika perangkat lunak kemudian perlu mengimbangi dengan menyimpan sisanya "secara manual"). Teknik lain adalah dengan menggunakan gerbang silikon pada "register bayangan": Satu atau lebih register duplikat yang hanya digunakan oleh perangkat lunak interupsi, mungkin mendukung tumpukan khusus. Faktor-faktor lain yang mempengaruhi latensi interupsi meliputi:

  • Siklus yang dibutuhkan untuk menyelesaikan aktivitas CPU saat ini. Untuk meminimalkan biaya tersebut, mikrokontroler cenderung memiliki jalur pipa pendek (sering kali tiga instruksi atau kurang), buffer tulis kecil, dan memastikan bahwa instruksi yang lebih panjang dapat diteruskan atau dimulai ulang. Prinsip-prinsip desain RISC memastikan bahwa sebagian besar instruksi membutuhkan jumlah siklus yang sama, membantu menghindari kebutuhan akan sebagian besar logika kelanjutan/ulang.

  • Panjang bagian kritis yang perlu diinterupsi. Masuk ke bagian kritis membatasi akses struktur data secara bersamaan. Ketika sebuah struktur data harus diakses oleh penangan interupsi, bagian kritis harus memblokir interupsi tersebut. Karenanya, latensi interupsi bertambah selama interupsi tersebut diblokir. Ketika ada batasan eksternal yang keras pada latensi sistem, pengembang sering membutuhkan alat untuk mengukur latensi interupsi dan melacak bagian kritis mana yang menyebabkan perlambatan.

    • Salah satu teknik yang umum digunakan adalah memblokir semua interupsi selama durasi bagian kritis tersebut. Hal ini mudah diimplementasikan, tetapi terkadang bagian kritis menjadi sangat lama.

    • Teknik yang lebih kompleks hanya memblokir interupsi yang mungkin memicu akses ke struktur data tersebut. Hal ini sering kali didasarkan pada prioritas interupsi, yang cenderung tidak sesuai dengan struktur data sistem yang relevan. Oleh karena itu, teknik ini banyak digunakan di lingkungan yang sangat terbatas.

    • Prosesor mungkin memiliki dukungan perangkat keras untuk beberapa bagian penting. Contohnya termasuk mendukung akses atomik ke bit atau byte dalam sebuah kata, atau primitif akses atomik lainnya seperti primitif akses eksklusif LDREX / STREX yang diperkenalkan dalam arsitektur ARMv6.

  • Interupsi bersarang. Beberapa mikrokontroler mengizinkan interupsi dengan prioritas lebih tinggi untuk menginterupsi interupsi dengan prioritas lebih rendah. Hal ini memungkinkan perangkat lunak untuk mengelola latensi dengan memberikan interupsi yang sangat penting pada prioritas yang lebih tinggi (dan dengan demikian latensi yang lebih rendah dan lebih dapat diprediksi) daripada yang kurang penting.

  • Tingkat pemicu. Ketika interupsi terjadi secara berurutan, mikrokontroler dapat menghindari siklus penyimpanan/pemulihan konteks ekstra dengan suatu bentuk optimasi tail call.

Mikrokontroler kelas bawah cenderung mendukung kontrol latensi interupsi yang lebih sedikit daripada mikrokontroler kelas atas.

Teknologi memori

Dua jenis memori yang berbeda biasanya digunakan dengan mikrokontroler, memori non-volatile untuk menyimpan firmware dan memori baca-tulis untuk data sementara.

Data

Dari mikrokontroler paling awal hingga saat ini, SRAM enam transistor hampir selalu digunakan sebagai memori baca/tulis, dengan beberapa transistor per bit yang digunakan dalam file register.

Selain SRAM, beberapa mikrokontroler juga memiliki EEPROM dan/atau NVRAM internal untuk penyimpanan data; dan mikrokontroler yang tidak memilikinya (seperti BASIC Stamp), atau di mana memori internal tidak mencukupi, sering kali dihubungkan ke EEPROM eksternal atau chip memori flash.

Beberapa mikrokontroler mulai tahun 2003 memiliki memori flash yang dapat diprogram sendiri.

Firmware 

Mikrokontroler paling awal menggunakan ROM topeng untuk menyimpan firmware. Mikrokontroler yang lebih baru (seperti versi awal Freescale 68HC11 dan mikrokontroler PIC awal) memiliki memori EPROM, yang menggunakan jendela tembus pandang untuk memungkinkan penghapusan melalui sinar UV, sementara versi produksi tidak memiliki jendela seperti itu, karena OTP (dapat diprogram sekali pakai). Pembaruan firmware setara dengan mengganti mikrokontroler itu sendiri, sehingga banyak produk yang tidak dapat diupgrade.

Motorola MC68HC805 adalah mikrokontroler pertama yang menggunakan EEPROM untuk menyimpan firmware. Mikrokontroler EEPROM menjadi lebih populer pada tahun 1993 ketika Microchip memperkenalkan PIC16C84 dan Atmel memperkenalkan mikrokontroler 8051-core yang merupakan mikrokontroler pertama yang menggunakan memori Flash NOR untuk menyimpan firmware. Mikrokontroler saat ini hampir semuanya menggunakan memori flash, dengan beberapa model yang menggunakan FRAM dan beberapa komponen yang sangat murah yang masih menggunakan OTP atau Mask ROM.

Disadur dari: en.wikipedia.org