Gambar internal dari ADSL modem / router . Contoh modern dari sistem embedded. Bagian Dicap termasuk mikroprosesor (4), RAM (6), dan memori flash (7). Sebuah sistem tertanam (embedded system) adalah sebuah sistem komputer yang dirancang untuk melakukan satu atau beberapa berdedikasi dan / atau spesifik fungsi [1] [2] sering dengan komputasi real-time kendala. Hal ini tertanam sebagai bagian dari perangkat lengkap sering termasuk hardware dan bagian mekanik. Sebaliknya, komputer keperluan umum, seperti komputer pribadi (PC), dirancang untuk menjadi fleksibel dan untuk memenuhi berbagai macam kebutuhan pengguna akhir. Embedded system kontrol banyak perangkat umum digunakan saat ini. [3] Embedded sistem termasuk pengolahan core yang mengandung biasanya baik mikrokontroler atau prosesor sinyal digital (DSP). [4] Karakteristik kunci, bagaimanapun, adalah yang didedikasikan untuk menangani tugas tertentu. Mereka mungkin memerlukan prosesor yang sangat kuat dan komunikasi yang luas, misalnya kontrol lalu lintas udara sistem berguna dapat dilihat sebagai tertanam, meskipun mereka melibatkan komputer mainframe dan jaringan regional dan nasional yang didedikasikan antara bandar udara dan situs radar (radar masing-masing mungkin mencakup satu atau lebih sistem tertanam sendiri). Karena sistem tertanam didedikasikan untuk tugas-tugas tertentu, insinyur desain dapat mengoptimalkan itu untuk mengurangi ukuran dan biaya produk dan meningkatkan kehandalan dan kinerja. Beberapa sistem tertanam diproduksi secara massal, manfaat dari skala ekonomi . Secara fisik, embedded system berkisar dari perangkat portable seperti jam digital dan MP3 player , untuk instalasi stasioner besar seperti lampu lalu lintas , pengontrol pabrik , atau mengontrol sistem pembangkit listrik tenaga nuklir Kompleksitas bervariasi dari rendah, dengan satu mikrokontroler chip, untuk yang sangat tinggi dengan beberapa unit, peripheral dan jaringan dipasang di dalam besar chassis atau kandang. Secara umum, "sistem tertanam" bukanlah istilah didefinisikan secara ketat, sebagai sistem yang paling memiliki beberapa unsur diperpanjang atau programabilitas. Sebagai contoh, komputer genggam berbagi beberapa elemen dengan embedded system seperti sistem operasi dan mikroprosesor bahwa kekuasaan mereka, tapi mereka memungkinkan aplikasi yang berbeda untuk dimuat dan peripheral dihubungkan. Selain itu, bahkan sistem yang tidak mengekspos programabilitas sebagai fitur utama umumnya perlu untuk mendukung pembaruan perangkat lunak. Pada kontinum dari "tujuan umum" menjadi "tertanam", sistem aplikasi besar akan memiliki subkomponen di titik-titik paling bahkan jika sistem secara keseluruhan adalah "dirancang untuk melakukan satu atau beberapa fungsi khusus", dan dengan demikian layak untuk memanggil "tertanam ".
Tertanam RouterBoard 112 dengan U. FL - RSMA kucir dan R52 miniPCI Wi-Fi banyak digunakan oleh kartu nirkabel internet penyedia layanan ( gumpalan ) di Republik Ceko . Embedded system span semua aspek kehidupan modern dan ada banyak contoh penggunaannya. Sistem telekomunikasi menggunakan sistem tertanam banyak dari switch telepon untuk jaringan untuk telepon selular pada pengguna akhir. Jaringan komputer menggunakan berdedikasi router dan bridge jaringan untuk rute data. Elektronik konsumen termasuk asisten pribadi digital (PDA), mp3 player , ponsel, konsol videogame , kamera digital , pemutar DVD , GPS receiver, dan printer . Banyak peralatan rumah tangga, seperti oven microwave , mesin cuci dan mesin pencuci piring , yang termasuk sistem tertanam untuk memberikan fleksibilitas, efisiensi dan fitur. Lanjutan HVAC sistem menggunakan jaringan termostat untuk lebih akurat dan efisien mengontrol temperatur yang dapat berubah dengan waktu dan musim . Home otomatisasi menggunakan kabel dan nirkabel-jaringan yang dapat digunakan untuk mengontrol lampu, iklim, keamanan, audio / visual, pengawasan, dll, semua yang menggunakan perangkat embedded untuk merasakan dan mengontrol. Sistem transportasi dari penerbangan untuk mobil semakin menggunakan sistem tertanam. Pesawat baru mengandung canggih avionik seperti sistem bimbingan inersia dan GPS receiver yang juga memiliki persyaratan keselamatan yang cukup. Berbagai motor listrik - DC brushless motor , motor induksi dan motor DC menggunakan listrik / elektronik motor controller . Mobil , kendaraan listrik , dan kendaraan hibrida semakin menggunakan sistem tertanam untuk memaksimalkan efisiensi dan mengurangi polusi. Sistem keselamatan otomotif lainnya termasuk anti-lock sistem pengereman (ABS), Electronic Stability Control (ESC / ESP), kontrol traksi (TCS) dan otomatis empat-wheel drive . Peralatan medis terus maju dengan sistem yang lebih tertanam untuk tanda-tanda vital pemantauan, stetoskop elektronik untuk memperkuat suara, dan berbagai pencitraan medis ( PET , SPECT , CT , MRI ) untuk non-invasif inspeksi internal. Embedded system adalah sangat cocok untuk digunakan dalam transportasi, kebakaran, aplikasi keamanan, keselamatan dan keamanan medis dan sistem kehidupan penting karena sistem ini dapat diisolasi dari hacking dan dengan demikian akan lebih handal. Untuk keselamatan kebakaran, sistem dapat dirancang untuk memiliki kemampuan lebih besar untuk menangani suhu yang lebih tinggi dan terus beroperasi. Dalam berurusan dengan keamanan, sistem tertanam dapat mandiri dan mampu menangani sistem listrik dan komunikasi terputus. Selain embedded system biasanya digambarkan berdasarkan komputer kecil, kelas baru perangkat nirkabel miniatur disebut motes dengan cepat mendapatkan popularitas sebagai bidang jaringan sensor nirkabel meningkat. Sensor jaringan nirkabel, WSN , memanfaatkan miniaturisasi dimungkinkan oleh desain IC canggih untuk subsistem nirkabel pasangan penuh untuk sensor yang canggih, memungkinkan orang dan perusahaan untuk mengukur berbagai hal dalam dunia fisik dan bertindak berdasarkan informasi ini melalui TI pemantauan dan pengendalian sistem . Motes ini benar-benar mandiri, dan biasanya akan lari sumber baterai untuk bertahun-tahun sebelum baterai perlu diubah atau dibebankan.
Sejarah
Salah satu sistem yang pertama tertanam dikenali modern adalah Bimbingan Apollo Komputer , yang dikembangkan oleh Charles Stark Draper di Laboratorium Instrumentasi MIT. Pada awal proyek, komputer bimbingan Apollo dianggap item yang paling berisiko dalam proyek Apollo karena dipekerjakan kemudian baru dikembangkan sirkuit terpadu monolitik untuk mengurangi ukuran dan berat. Sebuah diproduksi secara massal awal sistem tertanam adalah Autonetics D-17 panduan komputer untuk rudal Minuteman , dirilis pada tahun 1961. Itu dibangun dari transistor logika dan memiliki hard disk untuk memori utama. Ketika Minuteman II masuk ke produksi pada tahun 1966, D-17 diganti dengan komputer baru yang menggunakan volume tinggi pertama sirkuit terpadu. Program ini mengurangi harga pada quad gerbang nand ICS dari $ 1000/each sampai $ 3/each memungkinkan penggunaannya dalam produk komersial. Karena aplikasi ini di awal 1960-an, embedded system telah turun harga dan ada telah terjadi peningkatan dramatis dalam kekuatan pemrosesan dan fungsionalitas. Yang pertama mikroprosesor misalnya, Intel 4004 , dirancang untuk kalkulator dan sistem kecil lainnya tetapi masih diperlukan memori eksternal banyak dan dukungan chip. Pada tahun 1978 Asosiasi Produsen Nasional Rekayasa merilis sebuah "standar" untuk mikrokontroler diprogram, termasuk hampir semua pengendali berbasis komputer, seperti komputer papan tunggal, numerik, dan eventberbasis pengendali. Sebagai biaya mikroprosesor dan mikrokontroler jatuh menjadi layak untuk menggantikan tombol mahal berbasis analog komponen seperti potensiometer dan kapasitor variabel dengan atas / tombol bawah atau tombol dibacakan oleh mikroprosesor bahkan dalam beberapa produk konsumen. Pada pertengahan 1980-an, sebagian besar komponen sistem umum sebelumnya eksternal telah diintegrasikan ke dalam chip yang sama sebagai prosesor dan ini bentuk modern dari mikrokontroler memungkinkan penggunaan yang lebih luas, yang pada akhir dekade itu adalah norma dan bukan pengecualian untuk hampir semua perangkat elektronik. Integrasi mikrokontroler telah semakin meningkatkan aplikasi yang embedded system digunakan ke daerah dimana biasanya komputer tidak akan dipertimbangkan. Tujuan umum dan relatif murah seringkali mikrokontroler dapat diprogram untuk memenuhi peran yang sama sebagai sejumlah besar komponen terpisah. Meskipun dalam konteks ini sistem embedded biasanya lebih kompleks daripada solusi tradisional, sebagian besar kompleksitas yang terkandung dalam mikrokontroler itu sendiri. Sangat sedikit komponen tambahan mungkin diperlukan dan sebagian besar usaha desain adalah dalam perangkat lunak. Sifat tak berwujud perangkat lunak membuatnya lebih mudah untuk prototipe dan menguji revisi baru dibandingkan dengan desain dan konstruksi sirkuit baru tidak menggunakan prosesor tertanam.
Karakteristik
Gumstix Overo COM, a tiny, OMAP -based embedded computer-on-module with Wifi and Bluetooth . 1. 1 Embedded system yang dirancang untuk melakukan beberapa tugas tertentu, bukan menjadi komputer tujuan umum untuk berbagai keperluan. Beberapa juga memiliki real-time kendala kinerja yang harus dipenuhi, dengan alasan seperti keamanan dan kegunaan; yang lain mungkin memiliki persyaratan kinerja rendah atau tidak ada, memungkinkan perangkat keras sistem harus disederhanakan untuk mengurangi biaya. 2. 2. Embedded sistem tidak selalu perangkat mandiri. Banyak embedded system terdiri dari kecil, bagian komputerisasi dalam perangkat yang lebih besar yang melayani tujuan yang lebih umum. Sebagai contoh, Gitar Gibson Robot dilengkapi dengan sistem tertanam untuk tuning string, tetapi tujuan keseluruhan dari Gitar Robot,
tentu saja, untuk memutar musik. [5] Demikian pula, sebuah sistem tertanam dalam sebuah mobil menyediakan fungsi spesifik sebagai subsistem dari mobil itu sendiri.
e-con Systems eSOM270 & eSOM300 Computer on Modules e-con 3. 3. Instruksi-instruksi program yang ditulis untuk embedded system disebut sebagai firmware , dan disimpan dalam memori hanya-baca atau Flash memori chip. Mereka berjalan dengan sumber daya perangkat keras komputer yang terbatas: memori kecil, keyboard kecil atau tidak ada dan / atau layar.
User interface
Embedded system text user interface using MicroVGA. Embedded system berkisar dari tidak ada user interface sama sekali - yang didedikasikan hanya untuk satu tugas untuk kompleks antarmuka pengguna grafis yang menyerupai sistem operasi modern desktop komputer. Perangkat embedded sederhana menggunakan tombol , LED , grafik atau karakter LCD (misalnya populer HD44780 LCD ) dengan sederhana sistem menu . Perangkat yang lebih canggih menggunakan layar grafis dengan sentuh penginderaan atau layar-tepi tombol memberikan fleksibilitas sementara ruang meminimalkan digunakan: arti dari tombol dapat berubah dengan layar, dan seleksi melibatkan perilaku alami menunjuk pada apa yang diinginkan. sistem Genggam sering memiliki layar dengan "tombol joystick" untuk perangkat penunjuk. Beberapa sistem menyediakan antarmuka pengguna jarak jauh dengan bantuan serial (misalnya RS-232 , USB , I C , dll) atau jaringan (misalnya Ethernet koneksi). Terlepas dari perangkat lunak klien potensial yang diperlukan kepemilikan dan / atau spesialis kabel yang diperlukan, pendekatan ini biasanya memberikan banyak keuntungan: memperluas kemampuan sistem embedded, menghindari biaya menampilkan, menyederhanakan BSP , memungkinkan untuk membangun user interface yang kaya pada PC. Sebuah contoh yang baik dari hal ini adalah kombinasi dari server web tertanam berjalan pada perangkat tertanam (seperti kamera IP ) atau router jaringan . User interface yang ditampilkan dalam browser web pada PC yang terhubung ke perangkat, oleh karena itu perlu ada software dipesan lebih dahulu yang akan diinstal.
Peripherals
Komunikasi Serial Interface (SCI): RS-232 , RS-422 , RS-485 dll Synchronous Serial Communication Interface: I2C , SPI , SSC and ESSI (Enhanced Synchronous Serial Interface) Universal Serial Bus (USB) Multi Media Cards (SD Cards, Compact Flash etc.) Networks: Ethernet , LonWorks , etc. Fieldbuses : CAN-Bus , LIN-Bus , PROFIBUS , etc. Timers: PLL (s), Capture/Compare and Time Processing Units Discrete IO: aka General Purpose Input/Output (GPIO) Analog to Digital/Digital to Analog ( ADC / DAC ) Debugging: JTAG , ISP , ICSP , BDM Port, BITP, and DP9 ports.
Peralatan
Seperti perangkat lunak lain, desainer sistem embedded menggunakan kompiler , perakit , dan debugger untuk mengembangkan sistem perangkat lunak tertanam. Namun, mereka juga dapat menggunakan beberapa alat yang lebih spesifik:
Dalam debugger sirkuit atau emulator (lihat bagian berikutnya). Utilitas untuk menambahkan checksum atau CRC ke program, sehingga sistem tertanam dapat memeriksa apakah program ini berlaku. Untuk sistem yang menggunakan pemrosesan sinyal digital , pengembang dapat menggunakan meja kerja matematika seperti Scilab / Scicos , MATLAB / Simulink , EICASLAB , Mathcad , Mathematica , atau Flowstone DSP untuk mensimulasikan matematika. Mereka mungkin juga menggunakan perpustakaan untuk kedua host dan target yang menghilangkan mengembangkan rutinitas DSP seperti yang dilakukan di DSPnano RTOS dan Sistem Operasi Unison . Custom dan linker compiler dapat digunakan untuk meningkatkan optimasi untuk hardware tertentu. Sebuah sistem tertanam mungkin memiliki bahasa tersendiri atau alat desain, atau menambahkan perangkat tambahan untuk bahasa yang ada seperti Forth atau Dasar . Alternatif lain adalah dengan menambahkan real-time sistem operasi atau sistem operasi tertanam , yang mungkin memiliki kemampuan DSP seperti DSPnano RTOS . Pemodelan dan kode menghasilkan alat sering didasarkan pada mesin negara
Perusahaan perangkat lunak yang mengkhususkan diri di pasar embedded Porting dari GNU alat pengembangan perangkat lunak Kadang-kadang, alat pengembangan untuk komputer pribadi dapat digunakan jika prosesor tertanam adalah relatif dekat dengan prosesor PC umum
Sebagai kompleksitas sistem tertanam tumbuh, alat tingkat tinggi dan sistem operasi yang bermigrasi ke mesin di mana itu masuk akal. Sebagai contoh, ponsel , asisten pribadi digital dan komputer konsumen lainnya sering membutuhkan software yang signifikan yang dibeli atau disediakan oleh orang lain dari produsen elektronik. Dalam sistem ini, sebuah lingkungan pemrograman terbuka seperti Linux , NetBSD , OSGi atau Embedded Java diperlukan sehingga penyedia perangkat lunak pihak ketiga dapat menjual ke pasar yang besar.
Debugging
Embedded debugging dapat dilakukan pada tingkat yang berbeda, tergantung pada fasilitas yang tersedia. Dari yang paling sederhana untuk paling canggih mereka secara kasar dapat dikelompokkan ke dalam bidang-bidang berikut:
interaktif resident debugging, menggunakan shell sederhana yang disediakan oleh sistem operasi tertanam (misalnya Forth dan Dasar) Debugging eksternal menggunakan penebangan atau output port serial untuk melacak operasi menggunakan monitor baik di flash atau menggunakan server men-debug seperti Debugger Remedy yang bahkan bekerja untuk heterogen multicore sistem. Sebuah di-sirkuit debugger (ICD), sebuah perangkat keras yang terhubung ke mikroprosesor melalui JTAG atau Nexus antarmuka. Hal ini memungkinkan pengoperasian mikroprosesor harus dikendalikan secara eksternal, tetapi biasanya terbatas pada kemampuan debugging tertentu dalam prosesor. Sebuah emulator di-sirkuit (ICE) menggantikan mikroprosesor dengan setara simulasi, memberikan kontrol penuh atas semua aspek mikroprosesor. Sebuah lengkap emulator memberikan simulasi dari semua aspek perangkat keras, yang memungkinkan semua itu harus dikendalikan dan dimodifikasi, dan memungkinkan debugging pada PC biasa.
Kecuali dibatasi untuk debugging eksternal, programmer biasanya dapat memuat dan menjalankan perangkat lunak melalui alat, melihat kode berjalan di prosesor, dan memulai atau menghentikan operasi. Pandangan kode mungkin sebagai HLL kode sumber , kode perakitan atau campuran keduanya. Karena sistem embedded sering terdiri dari berbagai elemen, strategi debugging dapat bervariasi. Misalnya, debugging software-(dan mikroprosesor-) sistem tertanam sentris berbeda dari sistem embedded debugging di mana sebagian besar pengolahan dilakukan oleh periferal (DSP, FPGA, co-prosesor). Peningkatan jumlah sistem tertanam saat ini menggunakan lebih dari satu inti prosesor tunggal. Masalah yang umum dengan multi-inti pembangunan adalah sinkronisasi yang tepat dari eksekusi perangkat lunak. Dalam kasus seperti itu, desain sistem tertanam mungkin ingin memeriksa lalu lintas data pada bus antara core prosesor, yang membutuhkan debugging yang sangat rendah tingkat, pada sinyal / bus tingkat, dengan analisa logika , misalnya. Tracing sistem operasi real-time ( RTOS ) sering mendukung pelacakan peristiwa sistem operasi. Sebuah tampilan grafis yang disajikan oleh alat PC host, berdasarkan rekaman dari perilaku sistem. Rekaman jejak dapat dilakukan dalam perangkat lunak, oleh RTOS, atau oleh perangkat keras pelacakan khusus. RTOS menelusuri memungkinkan pengembang untuk memahami waktu dan masalah kinerja dari sistem perangkat lunak dan memberikan pemahaman yang baik tentang perilaku sistem tingkat tinggi. Sebuah contoh yang baik adalah RTXCview , untuk Quadros RTXC oleh Quadros Systems, Inc .
Keandalan (Reliability)
Embedded system sering berada di mesin yang diharapkan untuk terus berjalan selama bertahun-tahun tanpa kesalahan, dan dalam beberapa kasus pulih dengan sendirinya jika kesalahan terjadi. Oleh karena itu software ini biasanya dikembangkan dan diuji lebih cermat dari itu untuk komputer pribadi, dan tidak dapat diandalkan bagian yang bergerak mekanis seperti disk drive, switch atau tombol dihindari. Masalah keandalan tertentu mungkin mencakup: 1. Sistem tidak dapat dengan aman ditutup untuk perbaikan, atau terlalu tidak dapat diakses untuk memperbaiki. Contoh termasuk sistem ruang, kabel bawah laut, beacon navigasi, bore-lubang sistem, dan mobil. 2. "Bizkit mode" kurang ditoleransi. Often backups are selected by an operator. Seringkali backup dipilih oleh operator. Contohnya termasuk pesawat navigasi, sistem reaktor kontrol, kontrol keamanan-kritis kimia pabrik, sinyal kereta. 3. Sistem akan kehilangan sejumlah besar uang ketika ditutup: Telepon switch, kontrol pabrik, kontrol jembatan dan lift, transfer dana dan pasar pembuatan, penjualan dan layanan otomatis. Berbagai teknik yang digunakan, kadang-kadang dalam kombinasi, untuk memulihkan dari kesalahan-baik bug software seperti kebocoran memori, dan juga kesalahan lunak dalam perangkat keras:
pengawas waktu yang ulang komputer kecuali perangkat lunak secara berkala memberitahukan pengawas subsistem dengan suku cadang berlebihan yang dapat beralih software "limp modes" that provide partial function Merancang dengan Basis Trusted Computing (TCB) arsitektur [6] menjamin lingkungan sistem yang sangat aman & terpercaya Sebuah Tertanam Hypervisor mampu menyediakan enkapsulasi aman bagi setiap komponen subsistem, sehingga komponen perangkat lunak dikompromikan tidak dapat mengganggu subsistem lainnya, atau hak istimewa tingkat perangkat lunak sistem. Enkapsulasi ini membuat kesalahan dari menyebarkan dari satu subsistem ke yang lain, meningkatkan kehandalan. Hal ini juga mungkin mengizinkan subsistem untuk secara otomatis menutup dan restart pada deteksi kesalahan. Immunity Aware Programming Imunitas Sadar Pemrograman
Koperasi multitasking
Sebuah nonpreemptive multitasking sistem sangat mirip dengan skema kontrol loop sederhana, kecuali bahwa loop tersembunyi dalam API . Programmer mendefinisikan serangkaian tugas, dan tugas masing-masing mendapat lingkungan sendiri untuk "menjalankan" in Ketika tugas idle, itu panggilan rutin menganggur, biasanya disebut "jeda", "menunggu", "hasil", "nop" (singkatan untuk operasi tidak), dll
Keuntungan dan kerugian yang sangat mirip dengan kontrol loop, kecuali bahwa menambahkan perangkat lunak baru lebih mudah, dengan hanya menulis tugas baru, atau menambah antrian-interpreter.
kernel Monolitik
Dalam kasus ini, sebuah kernel yang relatif besar dengan kemampuan canggih adalah disesuaikan dengan lingkungan tertanam. Hal ini memberikan programmer lingkungan yang mirip dengan sistem operasi desktop seperti Linux atau Microsoft Windows , dan karena itu sangat produktif untuk pengembangan, di sisi negatifnya, itu membutuhkan sumber daya perangkat keras yang lebih besar, sering lebih mahal, dan karena kompleksitas kernel ini dapat kurang dapat diprediksi dan dapat diandalkan. Contoh umum dari kernel monolitik tertanam Embedded Linux dan Windows CE . Meskipun biaya yang meningkat dalam perangkat keras, jenis sistem tertanam meningkat popularitasnya, terutama pada perangkat embedded yang lebih kuat seperti Router Wireless dan Sistem Navigasi GPS . Berikut adalah beberapa alasan:
Port untuk umum tertanam chip set yang tersedia. Mereka mengizinkan penggunaan kembali kode yang tersedia untuk publik Device Drivers , Web Server , Firewall , dan kode lain. Pengembangan sistem dapat mulai dengan fitur-set yang luas, dan kemudian distribusi dapat dikonfigurasi untuk mengecualikan fungsionalitas yang tidak dibutuhkan, dan menghemat biaya dari memori yang akan mengkonsumsi. Banyak teknisi yang percaya bahwa menjalankan kode aplikasi dalam mode pengguna lebih dapat diandalkan, lebih mudah untuk debug dan oleh karena itu proses pembangunan lebih mudah dan kode lebih portabel. Banyak embedded system kurangnya persyaratan waktu yang ketat nyata dari sebuah sistem kontrol. Meskipun sistem seperti Linux Embedded mungkin cukup cepat untuk merespon ke aplikasi lainnya. Fitur yang memerlukan respon lebih cepat daripada yang dapat dijamin sering dapat ditempatkan dalam perangkat keras . Banyak sistem RTOS memiliki biaya per unit. Ketika digunakan pada produk yang atau akan menjadi komoditas, biaya yang signifikan.