Tuesday, April 8, 2008

Sistem Embedded

Pada dasarnya system komputer dapat dibagi menjadi dua tipe. Tipe yang pertama adalah desktop computer atau Pesonal Komputer (PC). Tipe ini sehari-hari biasa disebut “komputer”. Tipe yang kedua adalah embedded computer. Sistem Embedded adalah kombinasi antara perangkat keras (hardware) dan perangkat lunak (software) komputer - mungkin dengan tambahan sistem mekanik atau lainnya – yang didesain untuk melakukan fungsi yang spesifik. Contoh dari Sistem Embedded antara lain printer, pengatur lampu lalu lintas, robot, satelit, sistem autopilot dan lain sebagainya.

Hal yang membedakan Sistem Embedded dan PC antara lain :

  1. Sistem Embedded memiliki tujuan/fungsi yang spesifik, misalnya untuk mencetak, mengendalikan motor, mengatur lampu lalu lintas, dsb. Sedangkan PC memiliki fungsi/tujuan yang lebih luas.
  2. Dalam mengembangkan sebuah Sistem Embedded, seseorang memiliki begitu banyak pilihan mikroprosesor. Hal ini dikarenakan spesifikasi mikroprosesor yang dibutuhkan dalam Sistem Embedded tidak secanggih pada PC.
  3. Pada umumnya, Sistem Embedded sangat memperhatikan masalah lamanya waktu eksekusi, sehingga dibutuhkan system yang realtime. Bisa dibayangkan jika perintah untuk berbelok lambat direspons oleh ebuah robot. Robot tersebut tentunya dapat menabrak.
  4. Sistem operasi (OS) yang digunakan pada Sistem Embedded dikenal dengan RTOS (Real Time Operating Systems), sedangkan OS pada PC kita kenal Windows, Linux, Solaris, dsb.
  5. Karena tujuannya yang terbatas, maka Sistem Embedded memiliki keterbatasan sumber daya, seperti harga, ukuran, berat, energi, dsb sehingga dalam mendesain sebuah Sistem Embedded diperlukan pertimbangan keterbatasan tersebut.

Siklus design Sistem Embedded (Design Life Cycle) :

Langkah pertama yang perlu dilakukan dalam mendesain sebuah Sistem Embedded adalah menentukan spesifikasi yang diperlukan seperti kemampuan, waktu respons, berat, harga, ukuran, kekuatan, dan sebagainya tergantung dari jenis Sistem Embedded yang dibutuhkan. Langkah berikutnya adalah partisi atau memisahkan antara perangkat keras dan perangkat lunak. Kita perlu menentukan komponen atau bahan apa yang akan digunakan sebagai perangkat keras dan program apa yang digunakan sebagai perangkat lunak yang akan mengendalikan perangkat keras tersebut. Setelah perangkat keras dan perangkat lunak sudah ditentukan, maka saatnya mendesain secara detail perangkat keras dan perangkat lunak tersebut. Dalam mendesain perangkat keras, kita membutuhkan pengetahuan tentang apa yang kita buat. Misalnya, dalam membuat robot kita perlu mengetahui tentang elektronika dan mekanika. Dalam mendesain perangkat lunak, maka kita perlu sedikit mengetahui tentang bahasa pemrograman. Dalam tulisan ini, akan dijelaskan seluk beluk elektronika dan bahasa pemrograman yang sangat mudah dipahami bahkan bagi orang yang tidak memiliki dasar elektronika dan pemrograman.

Setelah perangkat keras dan lunak telah didesain, maka langkah selanjutnya adalah mengintegrasikan perangkat keras dan perangkat lunak, yaitu membuat perangkat keras sesuai desain dan memrogram perangkat keras tersebut dengan perangkat lunak yang telah kita buat. Setelah selesai, maka alat tersebut dites. Jika lulus tes, bukan berarti pekerjaan telah selesai. Kita perlu juga memikirkan bagaimana cara perawatan alat tersebut agar dapat digunakan kembali. Sebuah Sistem Embedded yang baik, tentulah bukan alat yang berumur sekali pakai, melainkan alat yang dapat bertahan lama. Kalau kita menginginkan, kita juga dapat melakukan pengembangan alat yang sudah ada.

Di lapangan, dalam membuat sebuah Sistem Embedded, ada kemungkinan langkah yang kita buat terhenti pada titik tertentu. Hal itu bukan merupakan masalah. Kita hanya perlu balik lagi ke langkah sebelumnya. Ingat, berapa kali Thomas Alfa Edison gagal dalam membuat bola lampu.

Perkiraan waktu yang dihabiskan dalam membuat sebuah Sistem Embedded :

Spesifikasi

Dan desain

(37%)

Hardware & Software debug

(20%)

Prototype debug

(31%)

System test

(12%)

Macam-macam aplikasi perangkat lunak :

  1. Information System, misalnya aplikasi untuk akunting atau administrasi.
  2. Desktop Application, misalnya MSOffice, homepage, dan sebagainya.
  3. Real time system

Pada sistem ini, waktu respons sangat kritis, keterlambatan respons akan berakibat fatal. Perhatikan contoh sistem autopilot di bawah ini :














Misalnya sistem autopilot menerima sinyal berupa seberapa gerakan Yauw yang diinginkan, maka respons dari sistem auto pilot untuk menggerakkan rudder haruslah cepat. Jika responsnya lambat, maka sangat beresiko bagi pesawat.

  1. Time-tiggered system, yaitu sistem yang berjalan berdasarkan jadwal waktu yang telah diatur.

Sebagai contoh, jam digital yang angka penunjuk detiknya selalu berubah setiap detik. Dalam hal ini sistem pengubah tampilan jam berjalan berdasarkan jadwal tertentu, yakni tiap detik.

  1. Event-triggered system, yaitu sistem yang berjalan berdasarkan momen tertentu.

Sebagai contoh, pada jam digital seluruh angka penunjuk jam, menit, dan detiknya akan bernilai nol ketika tombol RESET pada jam tersebut ditekan. Dalam hal ini sistem pereset tampilan jam berjalan berdasarkan momen tertentu, yakni ketika ditekannya tombol RESET.