Apa itu pemrograman sistem tertanam?
Pemrograman sistem tertanam, juga dikenal sebagai pemrograman tertanam, memfasilitasi pengembangan perangkat yang tidak menggunakan sistem operasi konvensional seperti yang digunakan oleh komputer desktop dan perangkat mobile.
Mikroprosesor dan mikrokontroler dibangun ke dalam perangkat tertanam ini untuk membantu dalam menjalankan satu fungsi atau serangkaian fungsi terkait. Contoh umum sistem tertanam termasuk microwave, kulkas pintar, robot industri, konsol video, dan satelit.
Banyak sistem tertanam mungkin tidak memiliki antarmuka pengguna (UI) jika mereka diprogram untuk melaksanakan tugas tertentu di dalam perangkat, seperti komputer yang mengontrol sistem pemantauan tekanan ban atau sistem rem anti-lock pada mobil. Karena tidak adanya antarmuka manusia, sistem tertanam ini menggunakan sensor untuk memantau fitur tertentu dan dapat memulai tindakan otomatis sebagai respons terhadap data yang diterima dari sensor.
Namun, sistem tertanam lainnya, seperti yang terlihat pada perangkat mobile, akan memiliki UI grafis yang rumit menggunakan teknologi layar sentuh, LED, dan tombol.
Sistem operasi terbaik untuk sistem tertanam
Sebagian besar aplikasi tertanam beroperasi secara real-time, artinya mereka merespons peristiwa eksternal dengan cara yang dapat diprediksi. Oleh karena itu, sistem tertanam sering menggunakan sistem operasi real-time (RTOS) untuk memastikan bahwa aplikasi dapat menangani data dengan cepat. Banyak sistem tertanam juga memerlukan pemrosesan data dalam periode waktu tertentu. RTOS mengukur penundaan pemrosesan dalam sepersepuluh detik karena penundaan sekecil apa pun dapat menyebabkan kegagalan sistem.
Dua konsep OS populer untuk sistem real-time dikenal sebagai berbasis peristiwa dan berbagi waktu. Jika tugas baru memiliki prioritas lebih tinggi daripada yang lama, sebuah sistem operasi berbasis peristiwa (OS) akan beralih ke tugas baru tersebut. Dalam sistem berbasis peristiwa, OS mengontrol fungsi berdasarkan tingkat kepentingannya. Sebuah OS berbagi waktu sering mengubah fungsi menggunakan interupsi jam. Tidak ada tingkat prioritas yang diberikan pada tugas-tugas tersebut dan untuk memastikan bahwa setiap tugas selesai, perangkat lunak tertanam sering beralih di antara mereka.
Meskipun banyak sistem operasi tertanam cocok untuk berbagai perangkat, pilihan OS untuk sistem tertanam dapat sangat dipengaruhi oleh tata letak perangkat keras dan preferensi pribadi dari pemrogram. Dua cara umum untuk mengkategorikan sistem operasi tertanam adalah apakah mereka berjalan pada mikroprosesor atau mikrokontroler dan apakah insinyur perangkat lunak menggunakannya, terutama untuk industri atau perangkat tertentu.
Bahasa pemrograman, seperti C tertanam, Python, dan JavaScript termasuk di antara banyak bahasa yang dapat digunakan untuk pengembangan perangkat lunak tertanam. Biasanya, sebuah program komputer yang dikenal sebagai kompiler digunakan untuk mengubah kode sumber yang ditulis dalam bahasa pemrograman menjadi bahasa komputer lain, seperti format biner. Kompiler juga membuat kode tersebut dapat dieksekusi.
Sistem operasi tertanam berikut paling sering digunakan dalam industri tertentu, perangkat elektronik, dan pemrograman perangkat lunak tertanam:
- Otomotif. Embedded Linux, QNX, Integrity, dan Android OS.
- Elektronik konsumen. Embedded Linux, Android, dan WebOS. Televisi dan set-top box kabel adalah beberapa contoh elektronik konsumen.
- Industri. Desktop Windows, Linux, embedded Linux, dan bare metal untuk kontrol mesin.
- Pertanian dan konstruksi. RTOS untuk unit kontrol elektronik dan embedded Linux untuk terminal operator.
- Perangkat medis. Embedded Linux, QNX, VxWorks, bare metal, dan FreeRTOS.
- Penerbangan. VxWorks, Embedded Linux.
Apa itu perangkat keras tertanam?
Sebuah sistem tertanam adalah gabungan dari lapisan perangkat keras dan perangkat lunak komputer. Unit pemrosesan pusat (CPU), yang berfungsi sebagai pengontrol utama sistem, adalah dasar dari lapisan perangkat keras.
Komponen perangkat keras berikut biasanya ditemukan dalam CPU sistem tertanam:
- Mikroprosesor. Ini hanya berisi CPU dan memiliki daya minimal untuk melakukan satu operasi sederhana.
- Mikrokontroler. Chip multitasking ini mengintegrasikan CPU, port I/O, dan memori RAM/ROM untuk melakukan beberapa tugas.
- Memori. Ini mencakup perangkat untuk penyimpanan data.
- I/O. Ini adalah perangkat untuk melakukan operasi input dan output.
- Bus. Sebuah bus komputer digunakan untuk mentransfer data antara komponen perangkat keras.
- Sensor. Ini digunakan untuk mengubah data fisik menjadi sinyal listrik analog.
- Konverter Analog-ke-Digital (ADC). Ini mengubah sinyal listrik analog seperti suara atau cahaya menjadi sinyal digital yang dapat dibaca oleh prosesor.
- Konverter Digital-ke-Analog (DAC). Ini dapat mengubah sinyal digital dari prosesor menjadi sinyal listrik.
- Aktuator. Aktuator memungkinkan berfungsinya mekanisme berdasarkan sinyal dari prosesor; contohnya, menggerakkan motor.
- Periferal. Ini mencakup perangkat periferal seperti kamera, printer, pemindai, dan keyboard.
Elemen perangkat keras tertanam dapat diintegrasikan dalam satu papan sirkuit yang disebut system-on-chip (SoC). Papan yang lebih kompleks seperti system-on-module (SoM) juga dapat digunakan, yang merupakan integrasi dari banyak chip.
Apa itu perangkat lunak tertanam?
Bergantung pada kompleksitas dan penggunaan perangkat, lapisan perangkat lunak mungkin mencakup berbagai komponen.
Empat komponen berikut biasanya menyusun keseluruhan paket perangkat lunak tertanam:
- Firmware. Ini adalah program bawaan yang ditulis untuk perangkat keras tertentu.
- Sistem operasi. Perangkat lunak ini digunakan untuk menetapkan aturan dan mengontrol sumber daya sistem. Ini mencakup driver perangkat yang menyediakan antarmuka pemrograman aplikasi (API) bagi komponen perangkat lunak tingkat atas dan memungkinkan mereka berkomunikasi dengan bagian perangkat keras. Sistem operasi dapat bersifat umum atau real-time.
- Middleware. Ini adalah perantara yang memungkinkan komunikasi antara tingkat perangkat lunak atas dan bawah. Middleware dibuat untuk sistem operasi tertentu dan terletak di antara OS dan perangkat lunak aplikasi.
- Perangkat lunak aplikasi. Ini adalah perangkat lunak yang secara langsung menjalankan fungsi sistem dan berinteraksi dengan pengguna akhir.
Semua komponen ini termasuk dalam sistem tertanam yang besar dan kompleks, meskipun perangkat tertanam mungkin tidak memiliki beberapa elemen perangkat lunak, seperti sistem operasi.