Berbagi teknologi

Arsitektur Perangkat Lunak Desain Sistem Tertanam (2)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

12.4 Sistem jaringan tertanam

Jaringan tertanam adalah sistem jaringan yang digunakan untuk menghubungkan berbagai sistem tertanam sehingga dapat saling mentransfer informasi dan berbagi sumber daya. Sistem tertanam menggunakan teknologi koneksi yang berbeda dalam situasi yang berbeda, seperti jaringan informasi rumah di ruang keluarga, bus lapangan di bidang otomasi industri, dan jaringan komunikasi seluler dalam sistem tertanam seperti peralatan informasi seluler. Selain itu, terdapat beberapa teknologi Konektivitas khusus digunakan untuk menghubungkan sistem tertanam.

12.4.1 Jaringan Fieldbus

Fieldbus adalah teknologi kendali komputer yang dikembangkan pada pertengahan 1980-an setelah sistem kendali instrumen analog, sistem kendali digital terpusat, dan sistem kendali terdistribusi. Ini juga merupakan salah satu hot spot dalam perkembangan teknologi di bidang kendali otomasi saat ini sering disebut jaringan area lokal komputer di bidang otomasi industri.

Fieldbus merupakan jaringan yang menghubungkan perangkat lapangan seperti sensor digital, konverter, instrumen industri, dan aktuator kendali dengan unit kendali proses industri dan stasiun operasi lapangan. Memiliki ciri-ciri digitalisasi penuh, desentralisasi, transmisi dua arah dan multi-cabang. Ini merupakan produk pengembangan jaringan kendali industri hingga tingkat lapangan.

Fieldbus merupakan jaringan kendali dasar bandwidth rendah yang terletak di bagian bawah kendali produksi dan struktur jaringan, sehingga disebut juga jaringan pokok (Infranet). Hal ini terutama digunakan di lokasi produksi untuk mencapai komunikasi digital dua arah, serial, multi-simpul antara peralatan pengukuran dan kontrol.

Sistem Kontrol Lapangan (FCS) adalah sistem kontrol yang menggunakan bus lapangan untuk menghubungkan berbagai pengontrol dan peralatan instrumen. Sistem kontrol ini sepenuhnya mendesentralisasikan fungsi kontrol ke lokasi, sehingga mengurangi biaya pemasangan dan biaya pemeliharaan. Faktanya, FCS adalah sistem kontrol terdistribusi yang terbuka, dapat dioperasikan, dan sepenuhnya terdesentralisasi.

Sistem kontrol lapangan tertanam menanamkan mikroprosesor khusus ke dalam instrumen pengukuran dan kontrol tradisional, memungkinkannya memiliki kemampuan komputasi digital dan komunikasi digital. Ia menggunakan pasangan terpilin, saluran listrik atau serat optik sebagai bus untuk menghubungkan beberapa instrumen pengukuran dan kontrol ke dalam jaringan. Menurut protokol komunikasi standar, ia menghubungkan beberapa peralatan pengukuran dan kontrol terkomputerisasi yang terletak di lokasi dan antara instrumen di lokasi dan pemantauan jarak jauh. Transmisi data dan pertukaran informasi terjadi antar komputer, membentuk berbagai sistem kendali otomatis yang sesuai dengan kebutuhan sebenarnya. Singkatnya, sistem kontrol fieldbus mengubah perangkat pengukuran dan kontrol terdistribusi individual menjadi node jaringan, menggunakan fieldbus sebagai tautan untuk menjadikan perangkat terdistribusi ini menjadi sistem jaringan yang dapat berkomunikasi satu sama lain dan menyelesaikan tugas kontrol otomatis bersama-sama. Dengan bantuan teknologi fieldbus, peralatan kontrol terdistribusi tunggal tradisional telah menjadi satu kesatuan yang berkomunikasi satu sama lain dan bekerja secara kolaboratif.

12.4.2 Jaringan Informasi Keluarga

Jaringan informasi rumah adalah jaringan area lokal yang menghubungkan komputer pribadi, peralatan rumah tangga, air, listrik, meteran gas, peralatan penerangan, peralatan jaringan, dan peralatan keamanan di dalam rumah. Fungsi utamanya adalah untuk mengontrol secara terpusat perangkat-perangkat yang disebutkan di atas dan menghubungkannya ke Internet untuk berbagi sumber daya dan layanan jaringan. Selain itu, jaringan informasi rumah juga dapat diperluas ke seluruh rumah atau bahkan seluruh komunitas, menjadi basis komunitas smart housing dan smart society. Dalam sistem jaringan informasi rumah, semua perangkat rumah bersifat cerdas, termasuk peralatan rumah tangga, air, listrik, meteran gas, dan peralatan penerangan. Mereka dapat berkomunikasi satu sama lain dan mengakses Internet melalui gateway rumah. Perwujudan jaringan informasi rumah memberi masyarakat lingkungan rumah yang lebih aman, nyaman dan nyaman. Misalnya ketika pemilik keluar, pintu akan otomatis tertutup dan terkunci, sistem monitoring akan otomatis menyala, dan pemilik akan otomatis diberitahu jika ada kelainan di rumah waktu dan di mana saja, dan data instrumen dapat diunggah secara otomatis.

Jaringan informasi keluarga perlu memecahkan dua masalah dasar:
(1) Bagaimana menghubungkan peralatan rumah tangga, air, listrik, meteran gas, peralatan penerangan, dll satu sama lain.
(2) Bagaimana mewujudkan interoperabilitas antar perangkat yang terhubung, yaitu perangkat pada jaringan informasi rumah dapat secara otomatis meminta layanan bila diperlukan, dan perangkat terkait dapat memberikan layanan atau menerima permintaan dan memprosesnya. Jaringan informasi rumah dapat mengadopsi struktur topologi yang berbeda, seperti jenis bus, struktur bintang, dll. Jaringan informasi rumah dapat dibagi lagi menjadi beberapa subnet kontrol dan subnet data. Subnet kontrol mirip dengan bus lapangan, ini adalah jaringan dengan bandwidth rendah dan terutama digunakan untuk mengirim dan menerima informasi kontrol. Subnet data memiliki persyaratan bandwidth yang lebih tinggi, dan perangkat yang terhubung dengannya perlu mengirimkan informasi data dalam jumlah besar.

11.4.3 Jaringan komunikasi data nirkabel

Dalam beberapa tahun terakhir, dengan pesatnya perkembangan komunikasi telepon seluler dan pesatnya popularitas komputer pribadi, berbagai komputer portabel, seperti komputer laptop, komputer notebook, komputer genggam, dll., telah meningkat pesat tidak lagi memenuhi kebutuhan. Masyarakat berharap dapat mengirimkan dan bertukar informasi data kapanpun dan dimanapun, sehingga media transmisi komunikasi data mulai berkembang dari kabel ke nirkabel, dan muncullah komunikasi data seluler nirkabel. Jaringan komunikasi data nirkabel merupakan suatu sistem jaringan yang mentransmisikan data melalui gelombang radio. Ini dikembangkan berdasarkan komunikasi data kabel dan dapat mewujudkan komunikasi data dalam keadaan seluler.Melalui jaringan komunikasi data nirkabel, ponsel pintar, PDA dan
Komputer notebook dapat saling mentransfer informasi data dan mengakses Internet. Jaringan komunikasi data nirkabel dibagi menjadi jaringan nirkabel jarak pendek dan Internet nirkabel. Jaringan nirkabel jarak pendek terutama mencakup 802.11, Bluetooth, IrDA dan HomeRF. Internet nirkabel atau Internet seluler terutama menggunakan dua teknologi koneksi nirkabel: satu adalah teknologi akses nirkabel seluler, seperti GSM, GPRS, CDPD (Data Paket Digital Seluler), dll.; yang lainnya adalah teknologi akses nirkabel tetap, termasuk gelombang mikro, komunikasi spektrum tersebar , transmisi optik satelit dan nirkabel, dll.

12.4.4 Internet Tertanam

Dengan pesatnya perkembangan Internet dan teknologi tertanam, semakin banyak peralatan informasi, seperti telepon video Web, dekoder, dan peralatan informasi serta produk sistem tertanam lainnya, diharuskan terhubung ke Internet untuk berbagi kenyamanan, kecepatan, dan kenyamanan yang disediakan oleh Internet. Sumber daya dan layanan informasi yang ada di mana-mana, yaitu teknologi Internet yang tertanam. Teknologi Internet yang tertanam memiliki prospek penerapan yang luas di bidang transportasi cerdas, sistem rumah tangga, otomasi rumah, otomasi industri, POS dan e-commerce.

1.Metode akses Internet tertanam
Perangkat yang tertanam mengintegrasikan tumpukan protokol TCP/IP dan perangkat lunak terkait. Perangkat tersebut dapat digunakan sebagai node di Internet, diberi alamat IP, dan langsung terhubung dengan Internet. Ciri-ciri metode akses ini adalah:

  • Perangkat dapat terhubung langsung ke Internet dan menyediakan akses transparan ke Internet;
  • Tidak diperlukan peralatan akses khusus;
  • Standardisasi protokol peralatan;
  • Kinerja dan sumber daya prosesor yang dibutuhkan relatif tinggi;
  • Sumber daya IP perlu digunakan. Karena kekurangan sumber daya IPv4 saat ini, solusi ini mungkin lebih realistis di jaringan IPv6.
  • Akses Internet melalui gateway, yaitu solusi perangkat tipis yang diadopsi. Perangkat tidak mengakses Internet secara langsung dan tidak memerlukan kumpulan protokol TCP/IP yang rumit. Misalnya, Embedded Micro Internet-working Technology (EMIT) adalah teknologi yang menghubungkan perangkat tertanam ke Internet. Ciri-ciri metode akses ini adalah:
  • Persyaratan kinerja dan sumber daya yang lebih rendah untuk peralatan akses;
    -Overhead tumpukan protokol perangkat akses kecil;
  • Tidak perlu menetapkan alamat IP resmi;
  • Dapat mengurangi biaya keseluruhan sistem;
    -Peralatan dapat didiversifikasi dan diperkecil.

2.Tumpukan protokol TCP/IP tertanam
Fungsi yang diselesaikan oleh tumpukan protokol TCP/IP tertanam sama dengan tumpukan protokol TCP/IP lengkap. Namun, karena keterbatasan sumber daya sistem tertanam, beberapa indikator dan antarmuka tumpukan protokol tertanam mungkin berbeda dari biasanya tumpukan protokol.

(1) Antarmuka panggilan tumpukan protokol tertanam berbeda dari antarmuka panggilan tumpukan protokol biasa. Antarmuka soket tumpukan protokol biasa adalah standar, dan perangkat lunak aplikasi memiliki kompatibilitas yang baik. Namun, overhead kode, overhead pemrosesan, dan penyimpanan untuk mengimplementasikan antarmuka standar sangat besar. Oleh karena itu, ketika sebagian besar produsen mentransplantasikan antarmuka tumpukan protokol standar ke sistem tertanam, mereka melakukan berbagai tingkat modifikasi dan penyederhanaan, dan menetapkan tumpukan protokol khusus yang efisien. API yang mereka sediakan berbeda dari API tumpukan protokol umum .

(2) Kesesuaian tumpukan protokol tertanam. Sebagian besar tumpukan protokol yang tertanam bersifat modular. Jika ruang memori terbatas, tumpukan tersebut dapat diinstal secara dinamis bila diperlukan, dan menghilangkan beberapa bagian yang tidak penting untuk sistem tertanam seperti penerusan antarmuka dan seperangkat alat layanan Internet yang lengkap.

(3) Kompatibilitas platform tumpukan protokol tertanam. Umumnya, tumpukan protokol terintegrasi erat dengan sistem operasi, dan sebagian besar tumpukan protokol diimplementasikan di kernel sistem operasi. Implementasi tumpukan protokol bergantung pada layanan yang disediakan oleh sistem operasi dan memiliki portabilitas yang buruk. Implementasi tumpukan protokol tertanam umumnya memiliki sedikit ketergantungan pada sistem operasi dan mudah untuk ditransplantasikan. Banyak tumpukan protokol komersial yang tertanam mendukung berbagai platform sistem operasi.

(4) Efisiensi tinggi dari tumpukan protokol tertanam. Implementasi tumpukan protokol tertanam biasanya memakan lebih sedikit ruang, memerlukan memori data lebih kecil, dan kode efisien, sehingga mengurangi persyaratan kinerja prosesor.

12.5 Sistem manajemen basis data tertanam

Dengan berkembangnya teknologi tertanam, database tertanam secara bertahap bergerak menuju aplikasi. Intinya, database tertanam dikembangkan dari database umum dan dijalankan di berbagai perangkat tertanam atau perangkat seluler. Mereka menunjukkan keunggulannya dalam sistem tertanam karena dibatasi oleh lingkungan aplikasi dari sistem tertanam itu sendiri, database tertanam memiliki karakteristik yang berbeda dari database umum .

Biasanya, sistem manajemen basis data tertanam adalah sistem manajemen basis data yang digunakan pada perangkat tertanam. Karena sebagian besar sistem manajemen basis data tertanam adalah perangkat informasi seluler, seperti komputer genggam, PDA, perangkat yang dipasang di kendaraan, dan perangkat komunikasi seluler lainnya, perangkat tertanam dengan posisi tetap jarang digunakan. Oleh karena itu, basis data tertanam juga disebut basis data seluler atau seluler database seluler yang tertanam.Fungsi utamanya adalah untuk memecahkan masalah manajemen data dalam lingkungan komputasi seluler. Basis data seluler merupakan bagian penting dari lingkungan komputasi seluler.
Basis data terdistribusi.

Pengenalan teknologi database ke dalam sistem tertanam terutama disebabkan oleh kekurangan berikut dalam pengembangan aplikasi manajemen informasi langsung pada sistem operasi tertanam atau bare metal:
(1) Semua aplikasi memerlukan pekerjaan pengelolaan data yang berulang, yang meningkatkan kesulitan dan biaya pengembangan.
(2) Berbagi data antar aplikasi buruk.
(3) Perangkat lunak aplikasi memiliki independensi, portabilitas, dan penggunaan kembali yang rendah.
Memperkenalkan sistem manajemen basis data ke dalam sistem tertanam dapat memecahkan sebagian besar masalah di atas dan meningkatkan efisiensi pengembangan dan portabilitas sistem aplikasi.

12.5.1 Karakteristik lingkungan penggunaan

Sistem basis data tertanam adalah sistem komprehensif yang mencakup sistem manajemen basis data tertanam dan mencakup perangkat komunikasi seluler, stasiun kerja atau komputer desktop, dan server data. Fitur sistem dan lingkungan penggunaan sistem ini memiliki pengaruh besar pada sistem manajemen basis data tertanam Dampak yang lebih besar secara langsung mempengaruhi struktur sistem manajemen basis data tertanam. Ciri-ciri lingkungan penggunaannya secara sederhana dapat diringkas sebagai berikut:
(1) Perangkat bersifat seluler kapan saja. Basis data tertanam terutama digunakan pada perangkat informasi seluler.

(2) Jaringan sering terputus, dan lokasi perangkat seluler atau terminal seluler sering berubah selama penggunaan. Hal ini juga dipengaruhi oleh faktor-faktor seperti metode penggunaan, catu daya, komunikasi nirkabel, dan kondisi jaringan. Oleh karena itu, koneksi jaringan umumnya tidak dipertahankan secara terus-menerus, tetapi sering kali terputus secara aktif atau pasif dan tersambung secara terputus-putus.

(3) Kondisi jaringan beragam. Karena seringnya perubahan lokasi perangkat informasi seluler, perangkat informasi seluler dan server data dapat dihubungkan melalui sistem jaringan yang berbeda pada waktu yang berbeda. Jaringan-jaringan ini mungkin berbeda dalam bandwidth jaringan, biaya komunikasi, penundaan jaringan, kualitas layanan, dll.

(4) Kemampuan komunikasi asimetris. Karena keterbatasan sumber daya perangkat seluler, kemampuan komunikasi jaringan antara perangkat seluler dan server menjadi asimetris. Kemampuan pengiriman perangkat seluler sangat terbatas, sehingga bandwidth komunikasi downlink dari server data ke perangkat seluler dan bandwidth uplink dari perangkat seluler ke server data sangat berbeda.

12.5.2 Komposisi sistem dan teknologi utama

Sistem manajemen basis data tertanam yang lengkap terdiri dari beberapa subsistem, antara lain sistem manajemen basis data utama, server sinkronisasi, sistem manajemen basis data tertanam, jaringan koneksi dan subsistem lainnya, seperti ditunjukkan pada Gambar 12-6.
Masukkan deskripsi gambar di sini
(1) Sistem manajemen basis data tertanam. Sistem manajemen basis data tertanam adalah sistem manajemen basis data pengguna tunggal yang independen secara fungsional. Itu dapat berjalan secara independen dari server sinkronisasi dan sistem manajemen basis data utama untuk mengelola data dalam sistem tertanam. Itu juga dapat dihubungkan ke server utama melalui server sinkronisasi untuk mengoperasikan data dalam basis data utama berbagai cara sinkronisasi data.

(2) Server sinkronisasi. Server sinkronisasi adalah hub koneksi antara database tertanam dan database utama, memastikan konsistensi data dalam database tertanam dan database utama.

(3) Server data. Basis data utama dan sistem manajemen basis data dari server data dapat menggunakan sistem basis data tujuan umum berskala besar seperti Oracle atau Sybase.

(4) Hubungkan ke jaringan. Server database utama dan server sinkronisasi umumnya terhubung melalui jaringan tetap dengan bandwidth tinggi dan latensi rendah. Koneksi antara perangkat seluler dan server sinkronisasi dapat berupa LAN nirkabel, koneksi inframerah, jalur serial universal, atau jaringan publik sesuai dengan kondisi spesifik perangkat.

1.Kunci untuk menyematkan database seluler dalam aplikasi
Dalam aplikasi praktis, database seluler yang tertanam harus memecahkan masalah seperti konsistensi data (replikasi), pemrosesan transaksi yang efisien, dan keamanan data.

(1) Konsistensi data. Fitur penting dari database seluler yang tertanam adalah bahwa koneksi antara terminal data seluler dan server sinkronisasi adalah koneksi yang lemah, yaitu bandwidth rendah, penundaan lama, ketidakstabilan, dan seringnya pemutusan sambungan. Untuk mendukung operasi pengguna pada database di lingkungan yang lemah, metode replikasi optimis (Replikasi Optimis atau Replikasi Malas) sekarang umum digunakan untuk memungkinkan pengguna mengoperasikan salinan data pada cache lokal. Setelah jaringan tersambung kembali, informasi modifikasi data dipertukarkan dengan server database atau terminal data seluler lainnya, dan konsistensi data dipulihkan melalui deteksi konflik dan koordinasi.

(2) Pemrosesan transaksi yang efisien. Transaksi seluler dilakukan di lingkungan seluler dengan pemutusan koneksi yang sering dan dapat diprediksi. Untuk memastikan kelancaran penyelesaian transaksi aktif, strategi dan algoritma manajemen transaksi baru harus dirancang dan diterapkan. Menentukan prioritas pemrosesan transaksi berdasarkan kondisi koneksi jaringan, dan permintaan transaksi dengan kecepatan koneksi jaringan tinggi akan diproses terlebih dahulu;
Tentukan apakah transaksi dimigrasikan berdasarkan waktu operasi, yaitu semua operasi transaksi jangka panjang akan dimigrasikan ke server untuk dieksekusi, dan tidak perlu memastikan bahwa jaringan selalu lancar untuk menentukan apakah transaksi diunggah untuk eksekusi atau pengunduhan setelah penyalinan data dijalankan berdasarkan ukuran data; Peningkatan strategi Logging selama pemrosesan transaksi, apakah akan menggunakan mekanisme penemuan server atau mekanisme deklarasi klien saat pemrosesan pemutusan jaringan secara real-time; pergerakan transaksi (seperti kueri terkait lokasi).

(3) Keamanan data. Perangkat yang tertanam di banyak bidang aplikasi merupakan perangkat kunci untuk pengelolaan atau pemrosesan data dalam sistem, sehingga sistem database pada perangkat yang tertanam memiliki kontrol yang lebih ketat terhadap izin akses. Pada saat yang sama, banyak perangkat tertanam memiliki mobilitas tinggi, portabilitas, dan lingkungan kerja yang tidak tetap, yang juga membawa potensi faktor-faktor yang tidak aman. Selain itu, beberapa data memiliki privasi pribadi yang tinggi, sehingga keamanan data pribadi perlu terjamin sepenuhnya dalam hal mencegah benturan, gangguan medan magnet, kehilangan, dan pencurian. Langkah-langkah utama untuk memastikan keamanan data adalah: mengautentikasi terminal seluler untuk mencegah akses palsu oleh terminal ilegal; mengenkripsi komunikasi nirkabel untuk mencegah kebocoran informasi data; mengenkripsi dan menyimpan salinan data yang diunduh untuk mencegah hilangnya terminal seluler secara fisik.

2.Fitur sistem manajemen basis data seluler
Lingkungan komputasi DBMS seluler merupakan perpanjangan dari DBMS terdistribusi tradisional. Ini dapat dianggap sebagai sistem terdistribusi di mana klien dan node server tetap terhubung secara dinamis. Oleh karena itu, sistem manajemen basis data dalam lingkungan komputasi seluler adalah sistem manajemen basis data terdistribusi yang dinamis. Karena sistem manajemen basis data seluler tertanam diterapkan pada sistem operasi tertanam dalam lingkungan komputasi seluler, sistem ini memiliki karakteristik dan persyaratan fungsionalnya sendiri:

(1) Struktur mikrokernel memfasilitasi realisasi fungsi yang tertanam. Mengingat terbatasnya sumber daya perangkat tertanam, DBMS seluler tertanam harus diimplementasikan menggunakan teknologi miniaturisasi dan memadatkan struktur sistemnya untuk memenuhi kebutuhan aplikasi tertanam.

(2) Dukungan untuk SQL standar. DBMS seluler yang tertanam harus menyediakan dukungan untuk SQL standar. Mendukung subset dari standar SQL92, mendukung kueri data (menggabungkan kueri, subkueri, pengurutan, pengelompokan, dll.), menyisipkan, memperbarui, menghapus beberapa pernyataan SQL standar, sepenuhnya memenuhi kebutuhan pengembangan aplikasi tertanam.

(3) Fungsi pengelolaan transaksi. DBMS seluler yang tertanam harus memiliki fungsi pemrosesan transaksi, secara otomatis menjaga integritas transaksi, atomisitas, dan karakteristik lainnya; mendukung integritas entitas dan integritas referensial.

(4) Mekanisme sinkronisasi data lengkap. Sinkronisasi data adalah fitur terpenting dari database tertanam. Melalui replikasi data, perubahan pada database tertanam atau database utama dapat diterapkan satu sama lain untuk memastikan konsistensi data. Mekanisme sinkronisasi data dari sistem manajemen basis data seluler tertanam harus memiliki karakteristik berikut:

  • Menyediakan berbagai metode sinkronisasi data, dengan tiga metode sinkronisasi: sinkronisasi unggahan, sinkronisasi unduhan, dan sinkronisasi penuh;
  • Ia memiliki mekanisme deteksi konflik yang lengkap dan resolusi konflik yang fleksibel, serta memiliki fungsi pencatatan konflik;
  • Mendukung sinkronisasi cepat. Saat sistem melakukan sinkronisasi, hanya data yang diubah yang dikirimkan, menghemat banyak waktu sinkronisasi;
  • Mendukung replikasi tabel pemisahan horizontal dan pemisahan vertikal, meminimalkan ukuran database yang tertanam;
  • Mendukung sinkronisasi koneksi sumber data heterogen, dan dapat menggunakan sumber data heterogen yang mendukung ODBC sebagai database utama dan database pada perangkat tertanam untuk sinkronisasi data;
  • Ini memiliki fungsi sinkronisasi aktif, memungkinkan pengguna untuk menyesuaikan proses peristiwa sinkronisasi yang disediakan oleh sistem, memberikan proses sinkronisasi dengan fleksibilitas maksimum.

(5) Mendukung beberapa protokol koneksi. DBMS seluler yang tertanam harus mendukung beberapa protokol koneksi komunikasi. Koneksi ke perangkat tertanam dan server database dapat dicapai melalui berbagai metode koneksi seperti komunikasi serial, TCP/IP, transmisi inframerah, dan Bluetooth.

(6) Menyelesaikan fungsi manajemen basis data tertanam. DBMS seluler tertanam harus memiliki fungsi pemulihan otomatis, yang pada dasarnya tidak memerlukan intervensi manual untuk manajemen basis data tertanam dan dapat menyediakan cadangan dan pemulihan data untuk menjamin keamanan dan keandalan data pengguna.

(7) Independensi platform dan dukungan untuk beberapa sistem operasi tertanam. DBMS seluler yang tertanam harus mampu mendukung berbagai sistem operasi tertanam yang populer saat ini seperti Windows CE dan Palm OS, sehingga sistem manajemen basis data seluler yang tertanam tidak dibatasi oleh terminal seluler.

(8) Fitur manajemen nol. Basis data tertanam memiliki fungsi pemulihan otomatis. Ia dapat mengelola basis data tertanam tanpa intervensi manual dan menyediakan cadangan dan sinkronisasi data.

Selain itu, kondisi idealnya adalah pengguna dapat melakukan operasi dan pengelolaan data pada semua database seluler yang terkait dengannya hanya dengan menggunakan satu terminal seluler (seperti ponsel). Hal ini memerlukan sistem front-end yang bersifat universal dan antarmuka database seluler yang memiliki standar terpadu dan terstandarisasi. Sistem manajemen front-end secara otomatis menghasilkan perintah pemrosesan transaksi terpadu selama pemrosesan data dan mengirimkannya ke server data yang saat ini terhubung untuk dieksekusi. Hal ini secara efektif meningkatkan keserbagunaan sistem manajemen basis data seluler tertanam dan memperluas prospek penerapan basis data seluler tertanam.

Singkatnya, dalam sistem manajemen basis data seluler tertanam, banyak masalah yang tidak perlu dipertimbangkan dalam lingkungan komputasi tradisional perlu dipertimbangkan, seperti dukungan untuk operasi pemutusan sambungan, dukungan untuk transaksi panjang lintas wilayah, dukungan untuk kueri terkait lokasi , dan optimalisasi kueri. Pertimbangan dan pertimbangan khusus untuk meningkatkan pemanfaatan sumber daya yang terbatas dan efisiensi sistem. Untuk mengatasi masalah di atas secara efektif, teknologi seperti teknologi replikasi dan caching, pemrosesan transaksi seluler, teknologi penyiaran data, pemrosesan kueri seluler dan optimalisasi kueri, pemrosesan data terkait lokasi dan teknologi kueri, teknologi penerbitan informasi seluler, Agen seluler dan lainnya teknologi masih terus dikembangkan. Pengembangan dan peningkatan akan lebih mendorong pengembangan sistem manajemen basis data seluler tertanam.

12.6 Sistem real-time dan sistem operasi tertanam

Sederhananya, sistem real-time dapat dipandang sebagai sistem yang dapat merespons peristiwa eksternal secara tepat waktu. Fitur terpenting dari sistem semacam ini adalah ketepatan waktu, yaitu ketepatan waktu nyata. Kebenaran sistem waktu nyata tidak hanya bergantung pada hasil logika perhitungan sistem, tetapi juga bergantung pada waktu ketika hasil tersebut dihasilkan.

Saat ini, sebagian besar sistem real-time tertanam, dan sistem tertanam yang berjalan sebenarnya juga memiliki persyaratan real-time. Oleh karena itu, di antara banyak jenis sistem operasi tertanam, sistem operasi tertanam real-time adalah yang paling mewakili karakteristiknya semua jenis sistem operasi tertanam. Oleh karena itu, bagian ini terutama berfokus pada karakteristik dan konsep sistem operasi tertanam waktu nyata, dan memperkenalkan konsep dan karakteristik dasar, arsitektur dasar, dan kernel sistem operasi tertanam seperti layanan, objek kernel, dan layanan kernel.

12.6.1 Konsep sistem tertanam secara real-time

Di dunia nyata, tidak semua sistem tertanam mempunyai karakteristik real-time, dan semua sistem real-time belum tentu tertanam. Namun, kedua sistem ini tidak saling eksklusif, dan sistem yang memiliki karakteristik kedua sistem disebut sistem tertanam waktu nyata (real-time embedded system). Hubungan antara keduanya ditunjukkan pada Gambar 12-7.
Masukkan deskripsi gambar di sini
(1) Logika (atau fungsi) yang benar berarti sistem dapat menghasilkan hasil yang benar ketika memproses kejadian eksternal.
(2) Waktu yang tepat berarti pemrosesan peristiwa eksternal oleh sistem harus diselesaikan dalam jangka waktu yang telah ditentukan.
(3) Batas waktu atau batas waktu, batas mati, tenggat waktu mengacu pada batas waktu terakhir dimana sistem harus memproses peristiwa eksternal. Biasanya penghitungan harus diselesaikan sebelum batas waktu tercapai.
(4) Sistem waktu nyata mengacu pada sistem yang memenuhi fungsi yang benar dan waktu yang tepat. Keduanya sama pentingnya. Dengan kata lain, sistem real-time mempunyai batasan waktu dan tenggat waktu. Namun, dalam beberapa sistem, ketepatan waktu mungkin dikorbankan untuk memastikan kebenaran fungsional.
Untuk pembagian sistem real-time, sistem real-time biasanya dapat dibagi menjadi:
(1) Sistem waktu nyata yang kuat, waktu respons sistem sangat singkat, biasanya dalam tingkat milidetik atau mikrodetik.
(2) Untuk sistem real-time umum, waktu respons sistem lebih rendah dibandingkan sistem real-time kuat, biasanya pada tingkat kedua.
(3) Untuk sistem real-time yang lemah, waktu respons sistem bisa lebih lama dan juga bisa berubah seiring dengan tingkat keparahan beban sistem.

Sistem real-time dapat dibagi menjadi sistem soft real-time dan sistem hard real-time berdasarkan toleransi terhadap tenggat waktu yang terlewat atau tingkat keparahan konsekuensinya.
(1) Sistem hard real-time mengacu pada sistem real-time yang fleksibilitasnya mendekati batas waktu nol.Batas waktu harus dipenuhi
Jika tidak, konsekuensi bencana akan terjadi, dan hasil pemrosesan yang diperoleh setelah batas waktu akan menjadi tidak berguna atau sangat terdevaluasi.
(2) Sistem soft real-time mengacu pada sistem real-time yang harus memenuhi persyaratan batas waktu tetapi memiliki tingkat fleksibilitas tertentu. Tenggat waktu dapat mencakup tingkat toleransi yang bervariasi, tenggat waktu rata-rata, atau bahkan distribusi statistik dengan berbagai tingkat penerimaan waktu respons. Dalam sistem soft real-time, tenggat waktu yang terlewat biasanya tidak menimbulkan konsekuensi serius seperti kegagalan sistem. Tabel 12-2 adalah perbandingan sistem soft real-time dan hard real-time.
Masukkan deskripsi gambar di sini
Sebagai perbandingan, dapat dilihat bahwa karena tenggat waktu yang terlewat tidak memiliki dampak yang menentukan pada pengoperasian sistem soft real-time, sistem soft real-time tidak perlu memprediksi apakah mungkin ada tenggat waktu yang tertunda. Sebaliknya, sistem soft real-time dapat memulai proses pemulihan setelah mendeteksi tenggat waktu yang terlewat.

Dalam sistem real-time, waktu mulai suatu tugas sama pentingnya dengan tenggat waktu atau waktu penyelesaian. Karena tugas tersebut kekurangan sumber daya yang diperlukan, seperti CPU dan memori, hal ini dapat menghambat dimulainya pelaksanaan tugas dan secara langsung menyebabkan hilangnya tugas. tenggat waktu penyelesaian tugas, sehingga masalah tenggat waktu berkembang menjadi masalah penjadwalan sumber daya.
Hal ini memiliki dampak penting pada algoritma penjadwalan dan desain tugas.

12.6.2 Ikhtisar sistem operasi tertanam

Yang disebut sistem operasi tertanam mengacu pada sistem operasi yang berjalan pada sistem komputer tertanam untuk mendukung aplikasi tertanam. Ini adalah kumpulan perangkat lunak yang digunakan untuk mengontrol dan mengelola sumber daya perangkat keras dan perangkat lunak dalam sistem tertanam dan menyediakan layanan sistem. Sistem operasi tertanam adalah bagian penting dari perangkat lunak tertanam. Kemunculannya telah meningkatkan efisiensi pengembangan perangkat lunak tertanam, meningkatkan portabilitas perangkat lunak aplikasi, dan secara efektif mendorong pengembangan sistem tertanam.

1.Karakteristik sistem operasi tertanam
Dibandingkan dengan sistem operasi tujuan umum, sistem operasi tertanam umumnya memiliki karakteristik berikut:

(1) Miniaturisasi: Platform yang menjalankan sistem operasi tertanam bukanlah komputer serba guna, melainkan sistem komputer tertanam. Sistem jenis ini umumnya tidak memiliki memori berkapasitas besar dan hampir tidak memiliki memori eksternal. Oleh karena itu, sistem operasi yang tertanam harus dibuat kompak untuk menggunakan sumber daya sistem sesedikit mungkin. Untuk meningkatkan kecepatan eksekusi dan keandalan sistem, perangkat lunak dalam sistem tertanam umumnya disimpan dalam chip memori alih-alih disimpan dalam media seperti disk.

(2) Kualitas kode tinggi: Di ​​sebagian besar aplikasi, ruang penyimpanan masih merupakan sumber daya yang berharga, sehingga kode program harus berkualitas tinggi dan kode harus dibuat seefisien mungkin.

(3) Spesialisasi: Ada berbagai platform perangkat keras untuk sistem tertanam, dan prosesor diperbarui dengan cepat. Masing-masing platform dirancang khusus untuk bidang aplikasi yang berbeda. Oleh karena itu, sistem operasi yang tertanam harus memiliki kemampuan adaptasi dan portabilitas yang baik, dan juga harus mendukung berbagai platform pengembangan.

(4) Kinerja waktu nyata yang kuat: Sistem tertanam banyak digunakan dalam pengendalian proses, pengumpulan data, komunikasi, pemrosesan informasi multimedia, dan situasi lain yang memerlukan respons waktu nyata. Oleh karena itu, kinerja waktu nyata telah menjadi fitur lain dari sistem operasi tertanam .

(5) Dapat dipotong dan dikonfigurasi: Keragaman aplikasi mengharuskan sistem operasi tertanam memiliki kemampuan beradaptasi yang kuat dan dapat dikonfigurasi secara fleksibel serta dipotong secara wajar sesuai dengan karakteristik dan persyaratan spesifik aplikasi untuk beradaptasi dengan persyaratan miniaturisasi dan spesialisasi.

2.Klasifikasi sistem operasi tertanam
Ada banyak jenis sistem operasi tertanam, yang dapat diklasifikasikan dari berbagai sudut pandang. Dari bentuk perolehan sistem operasi tertanam, dapat dibagi menjadi dua kategori: tipe komersial dan tipe gratis:

(1) Tipe komersial. Sistem operasi tertanam komersial umumnya memiliki fungsi yang stabil dan andal, dukungan teknis yang lengkap, alat pengembangan yang lengkap, dan layanan purna jual. Seperti VxWorks WindRiver, pSOS dan Palm OS Palm, dll. Namun, biayanya mahal dan pengguna biasanya tidak bisa mendapatkan kode sumber sistem.

(2) Tipe bebas. Keuntungan dari sistem operasi tertanam gratis terletak pada harganya. Selain itu, pengembang sistem aplikasi dapat memperoleh kode sumber sistem, yang memberikan kemudahan dalam pengembangan. Namun, sistem operasi gratis memiliki fungsi yang sederhana, dukungan teknis yang buruk, dan stabilitas sistem yang buruk. Sistem perwakilan yang umum mencakup Linux tertanam, uC/OS, dll. Berdasarkan sifat real-time dari sistem operasi tertanam, mereka dapat dibagi menjadi dua kategori: sistem operasi tertanam real-time dan sistem operasi tertanam non-real-time.

(1) OS Tersemat Waktu Nyata (RTEOS). Sistem operasi tertanam waktu nyata mendukung kerja sistem waktu nyata. Tugas utamanya adalah menjadwalkan semua sumber daya yang tersedia untuk memenuhi batas waktu waktu nyata untuk merespons peristiwa eksternal. Sistem operasi tertanam waktu nyata terutama digunakan dalam kontrol, komunikasi, dan bidang lainnya. Saat ini, sebagian besar sistem operasi tertanam komersial adalah sistem operasi real-time.

(2) Sistem operasi tertanam non-real-time. Sistem operasi jenis ini tidak memberikan perhatian khusus pada waktu respons suatu tugas. Performa rata-rata, efisiensi sistem, dan pemanfaatan sumber dayanya umumnya tinggi, dan cocok untuk produk elektronik konsumen yang tidak memiliki persyaratan waktu nyata yang ketat. seperti asisten digital pribadi, dekoder, dll.

12.6.3 Sistem operasi tertanam waktu nyata

Secara keseluruhan, kinerja real-time dari sistem tertanam ditentukan oleh perangkat keras, sistem operasi real-time, dan aplikasi. Diantaranya, kinerja inti sistem operasi real-time yang tertanam memainkan peran penting. Secara umum, ada dua jenis sistem operasi tertanam waktu nyata: RTEOS berbasis kernel waktu nyata dan RTEOS tujuan umum.

RTEOS tipe kernel real-time: Sistem operasi jenis ini, driver secara tradisional tertanam di kernel, dan aplikasi serta middleware diimplementasikan pada antarmuka pemrograman aplikasi standar (API, Antarmuka Pemrograman Aplikasi).

RTEOS tujuan umum waktu nyata: Dalam sistem operasi jenis ini, driver tidak tertanam secara mendalam di kernel, tetapi diimplementasikan di atas kernel, dan hanya berisi beberapa driver yang diperlukan. Aplikasi dan middleware dapat diimplementasikan secara langsung atas driver. , daripada harus diimplementasikan dalam API standar. Perbedaannya ditunjukkan pada Gambar 12-8.
Ada banyak kesamaan fungsional antara sistem operasi tertanam waktu nyata dan sistem operasi tujuan umum. Misalnya, keduanya mendukung multitasking, mendukung manajemen sumber daya perangkat lunak dan perangkat keras, dan keduanya menyediakan layanan sistem operasi dasar untuk aplikasi.
Masukkan deskripsi gambar di sini
1.Fitur Utama Sistem Operasi Real-Time Tertanam
Dibandingkan dengan sistem operasi tujuan umum, sistem operasi tertanam waktu nyata memiliki banyak fitur dalam fungsionalitas. Fitur utama yang unik pada sistem operasi tertanam real-time yang berbeda dari sistem operasi tujuan umum meliputi:

  • Memenuhi keandalan yang tinggi dari aplikasi tertanam;
  • Kemampuan yang dibuat khusus untuk memenuhi kebutuhan aplikasi;
  • Persyaratan memori rendah;
  • Prediktabilitas operasi;
  • Mengadopsi strategi penjadwalan waktu nyata;
  • Sistem ini berukuran kompak;
  • Mendukung booting dan menjalankan dari ROM atau RAM;
  • Ini memiliki portabilitas yang lebih baik ke berbagai platform perangkat keras.

2.Indikator kinerja waktu nyata dari sistem operasi waktu nyata yang tertanam Saat mengevaluasi kinerja desain sistem operasi waktu nyata, indikator kinerja waktu
Indikator tersebut merupakan indikator kinerja yang paling penting. Indikator kinerja waktu yang umum digunakan terutama mencakup hal-hal berikut:

(1) Waktu peralihan tugas: mengacu pada waktu yang diperlukan untuk mentransfer kontrol CPU dari tugas yang sedang berjalan ke tugas lain yang siap, termasuk waktu yang dihabiskan untuk menyimpan dan memulihkan konteks tugas dan memilih tugas berikutnya untuk dijalankan saat melakukan peralihan tugas kali, indikator ini berkaitan dengan jumlah register dan struktur sistem mikroprosesor. Sistem operasi yang sama mungkin memerlukan waktu yang berbeda ketika dijalankan pada mikroprosesor yang berbeda. Diagram waktu yang sesuai dengan waktu peralihan tugas ditunjukkan pada Gambar 12-9.
Masukkan deskripsi gambar di sini
(2) Indikator waktu yang terkait dengan pemrosesan interupsi, diagram waktu interupsi yang sesuai ditunjukkan pada Gambar 12-10
Masukkan deskripsi gambar di sini
Waktu tunda interupsi mengacu pada waktu dari terjadinya interupsi hingga pembelajaran sistem dari interupsi. Hal ini terutama dipengaruhi oleh waktu non-interupsi maksimum sistem.

Semakin lama waktu interupsi maka semakin lama pula penundaan interupsinya;
Waktu pelaksanaan pemrosesan interupsi, yang ditentukan oleh aplikasi spesifik;
Waktu respons interupsi mengacu pada waktu sejak terjadinya interupsi hingga dimulainya pelaksanaan rutinitas layanan interupsi pengguna;
Waktu pemulihan interupsi mengacu pada waktu antara berakhirnya rutinitas layanan interupsi pengguna dan kembali ke kode yang terputus;

Waktu interupsi maksimum mencakup dua aspek: satu adalah waktu interupsi maksimum kernel, yaitu, kernel mematikan interupsi ketika mengeksekusi kode bagian penting; yang lainnya adalah waktu interupsi maksimum aplikasi, dan interupsi maksimum waktu adalah waktu maksimum dari dua waktu penghentian ini. ;Waktu respons tugas mengacu pada waktu sejak interupsi yang terkait dengan tugas dihasilkan hingga saat tugas benar-benar mulai berjalan;
Untuk penjadwalan yang dapat diakhiri, waktu pemulihan interupsi juga ditambahkan ke waktu peralihan tugas dan pemulihan konteks tugas baru.
di antara.

(3) Waktu respons sistem: mengacu pada waktu dari saat sistem mengeluarkan permintaan pemrosesan hingga saat sistem merespons, yaitu penundaan penjadwalan. Besarnya waktu ini terutama ditentukan oleh algoritma penjadwalan tugas kernel. Sebagai ringkasan, metode perhitungan indeks kinerja tipikal dari kernel real-time yang dapat diakhiri ditunjukkan pada Tabel 12-3.
Masukkan deskripsi gambar di sini

12.6.4 Pengenalan sistem operasi tertanam arus utama

Sejauh ini, menurut statistik yang tidak lengkap, jumlah sistem operasi tertanam yang ada di dunia mencapai ratusan. Ada lebih dari selusin sistem operasi yang paling umum digunakan. Sistem operasi ini memiliki popularitas tinggi dan basis pengguna yang besar di bidang aplikasinya masing-masing. Tabel 12-4 memilih beberapa sistem operasi tertanam yang umum di industri untuk perbandingan.
Masukkan deskripsi gambar di sini
Masukkan deskripsi gambar di sini

12.7 Pengembangan dan desain sistem tertanam

Tugas utama perancangan sistem tertanam adalah mendefinisikan fungsi-fungsi sistem, menentukan arsitektur sistem, dan memetakan fungsi-fungsi tersebut ke arsitektur implementasi sistem. Di sini, arsitektur sistem mencakup arsitektur sistem perangkat lunak dan arsitektur sistem perangkat keras. Sebuah arsitektur dapat dipetakan ke berbagai implementasi fisik yang berbeda, masing-masing mewakili trade-off yang berbeda sekaligus memenuhi kriteria desain tertentu dan mengoptimalkan kriteria lainnya.

Metode perancangan sistem tertanam berbeda dengan metode perancangan perangkat keras dan pengembangan perangkat lunak pada umumnya, metode ini mengadopsi metode desain bersama perangkat keras dan perangkat lunak. Proses pengembangan tidak hanya melibatkan pengetahuan di bidang perangkat lunak, tetapi juga melibatkan pengetahuan yang komprehensif di bidang perangkat keras lapangan, dan bahkan melibatkan mesin, dll aspek pengetahuan. Perancang dituntut untuk mengenal dan mampu secara leluasa menggunakan berbagai teknologi di bidang tersebut guna mengoptimalkan sistem yang dirancang.

Meskipun solusi desain perangkat lunak aplikasi sistem tertanam bervariasi dengan bidang aplikasi yang berbeda, metode analisis dan desain sistem tertanam juga mengikuti prinsip umum rekayasa perangkat lunak. Banyak metode analisis dan desain yang matang dapat diterapkan di bidang tertanam. Proses pengembangan sistem tertanam juga mencakup beberapa tahapan dasar: analisis persyaratan, desain sistem, implementasi dan pengujian, dan setiap tahapan memiliki karakteristik dan fokus uniknya sendiri.

Bagian ini terutama memperkenalkan teknologi dan metode pengembangan dan desain sistem tertanam, dan menganalisis metode desain perangkat lunak aplikasi dan masalah utama yang dihadapi dalam proses desain dari perspektif aplikasi sistem tertanam dan model komputasi. Terakhir, isu-isu terkait dengan transplantasi perangkat lunak di bidang tertanam dibahas.

12.7.1 Ikhtisar Perancangan Sistem Tertanam

Sebelum merancang sistem tertanam, karakteristik dari desain sistem tertanam itu sendiri dan beberapa indikator teknis utama untuk mengukur desain sistem tertanam harus diklarifikasi.

1.Karakteristik desain sistem tertanam
Dibandingkan dengan desain sistem biasa, desain sistem tertanam memiliki karakteristik sebagai berikut:

  • Pengembangan perangkat lunak dan perangkat keras secara kolaboratif dan paralel;
  • Ada banyak jenis mikroprosesor;
    -Sistem operasi tertanam waktu nyata beragam;
  • Dibandingkan dengan pengembangan sistem secara umum, sumber daya sistem yang tersedia hanya sedikit;
  • Sedikit dukungan aplikasi;
  • Memerlukan alat pengembangan khusus;
  • Baik perangkat lunak maupun perangkat keras harus kuat;
  • Men-debug itu sulit.

2.Indikator teknis sistem tertanam
Indikator yang umum digunakan untuk desain sistem tertanam meliputi:
(1) Biaya EBT (biaya rekayasa tidak berulang): biaya moneter satu kali yang perlu dibayarkan untuk merancang sistem. Artinya, setelah desain selesai, sejumlah produk dapat diproduksi tanpa membayar biaya desain tambahan .

(2) Biaya satuan: biaya moneter yang diperlukan untuk memproduksi suatu produk, tidak termasuk biaya EBT.

(3) Ukuran: mengacu pada ruang yang ditempati oleh sistem. Untuk perangkat lunak, umumnya diukur dengan jumlah byte; untuk perangkat keras, diukur dengan jumlah gerbang logika atau transistor.

(4) Kinerja: Waktu yang dibutuhkan sistem untuk menyelesaikan tugas tertentu adalah indikator desain yang paling umum digunakan selama desain. Ada dua metode pengukuran utama. Salah satunya adalah waktu respons, yaitu waktu antara awal pelaksanaan dan akhir tugas. Yang kedua adalah jumlah penyelesaian, yaitu jumlah tugas yang diselesaikan per satuan waktu.

(5) Daya: Daya yang dikonsumsi oleh sistem, yang menentukan masa pakai baterai atau persyaratan pembuangan panas sirkuit.

(6) Fleksibilitas: Kemampuan untuk mengubah fungsi sistem tanpa meningkatkan biaya EBT.

(7) Waktu pembuatan prototipe: Waktu yang diperlukan untuk membuat versi sistem yang dapat dijalankan. Prototipe sistem mungkin lebih besar dan lebih mahal daripada produk akhir, namun dapat memverifikasi tujuan dan kebenaran sistem serta meningkatkan fungsi sistem.

(8) Waktu ke pasar: Waktu dari pengembangan sistem hingga waktu sistem dapat dijual ke konsumen. Faktor pengaruh yang paling penting meliputi waktu desain, waktu produksi, dan waktu pengujian.

(9) Pemeliharaan: Kemudahan suatu sistem dapat dimodifikasi setelah diluncurkan atau dipasarkan, terutama oleh pengembang non-asli.

(10) Kebenaran: Jika fungsi sistem diterapkan dengan benar, fungsi sistem dapat diperiksa selama keseluruhan proses desain, dan rangkaian uji juga dapat dimasukkan untuk memeriksa apakah sudah benar.

(11) Keamanan: kemungkinan bahwa sistem tidak akan menimbulkan bahaya. Berbagai indikator desain umumnya bersaing satu sama lain. Peningkatan satu indikator sering kali menyebabkan penurunan indikator lainnya. Untuk memenuhi persyaratan optimalisasi desain, desainer harus memahami berbagai teknologi implementasi perangkat lunak dan perangkat keras dan dapat belajar darinya teknologi ditransfer ke teknologi lain untuk menemukan solusi terbaik dalam batasan tertentu.

3.Tantangan desain sistem tertanam
Tantangan yang dihadapi dalam perancangan sistem tertanam meliputi aspek-aspek berikut.
(1) Berapa banyak perangkat keras yang dibutuhkan: Desainer memiliki kendali yang kuat atas daya komputasi yang digunakan untuk menyelesaikan masalah. Mereka tidak hanya dapat memilih prosesor mana yang akan digunakan, tetapi juga jumlah memori, periferal yang digunakan, dll., karena desain tidak hanya membutuhkan desain. Untuk memenuhi persyaratan kinerja, hal ini juga bergantung pada batasan biaya produksi. Pemilihan perangkat keras sangat penting. Perangkat keras yang terlalu sedikit akan gagal memenuhi persyaratan fungsional dan kinerja, dan terlalu banyak perangkat keras akan membuat produk menjadi terlalu mahal.

(2) Cara memenuhi batas waktu: Tidak disarankan menggunakan metode peningkatan kecepatan prosesor agar program berjalan lebih cepat untuk mengatasi kendala waktu, karena hal ini akan menaikkan harga sistem. Pada saat yang sama, meningkatkan frekuensi clock prosesor terkadang tidak meningkatkan kecepatan eksekusi, karena kecepatan program mungkin dibatasi oleh sistem penyimpanan.

(3) Cara mengurangi konsumsi daya sistem: Untuk sistem bertenaga baterai, konsumsi daya merupakan masalah yang sangat sensitif. Untuk sistem yang tidak menggunakan baterai, daya yang tinggi berarti pembuangan panas yang tinggi. Salah satu cara untuk mengurangi konsumsi daya sistem adalah dengan mengurangi kecepatan komputasinya, namun mengurangi kecepatan komputasi saja jelas akan menghasilkan kinerja yang tidak memuaskan. Oleh karena itu, desain yang cermat harus dilakukan untuk mengurangi konsumsi daya sekaligus memenuhi batasan kinerja.

(4) Cara memastikan skalabilitas sistem: Platform perangkat keras sistem mungkin menggunakan beberapa generasi, atau menggunakan tingkat produk berbeda dari generasi yang sama. Ini hanya memerlukan beberapa perubahan sederhana dengan mengubah perangkat lunak. Merancang mesin yang dapat memberikan kemampuan kinerja yang belum tersedia pada perangkat lunak.

(5) Bagaimana memastikan keandalan sistem: Keandalan merupakan indikator penting saat menjual produk. Merupakan persyaratan yang masuk akal bagi konsumen bahwa produk dapat bekerja dengan baik. Keandalan sangat penting dalam beberapa sistem, seperti sistem kendali keselamatan.

(6) Kompleksitas pengujian: Menguji sistem tertanam jauh lebih sulit daripada hanya memasukkan beberapa data, sehingga seluruh mesin harus dijalankan untuk menghasilkan data yang benar tinggalkan sistem tertanam. Bekerja dengan seluruh lingkungan untuk menguji sistem tertanam.

(7) Visibilitas dan pengendalian yang terbatas: Sistem tertanam biasanya tidak memiliki perangkat tampilan dan keyboard, sehingga menyulitkan pengembang untuk memahami apa yang terjadi di dalam sistem dan tidak dapat merespons tindakan sistem. Terkadang mereka harus mengamati pengontrol mikro sinyal untuk dipahami. Dalam sistem real-time, umumnya tidak mungkin mematikan sistem untuk observasi.

(8) Lingkungan pengembangan terbatas: Lingkungan pengembangan sistem tertanam, seperti perangkat lunak pengembangan dan perangkat keras, biasanya lebih terbatas daripada lingkungan yang tersedia pada komputer atau stasiun kerja untuk keperluan umum. Oleh karena itu, pengembangan silang hanya dapat digunakan, yang sangat banyak mempengaruhi kemajuan pembangunan.

12.7.2 Model pengembangan dan proses desain

Mirip dengan pengembangan sistem umum, pengembangan sistem tertanam juga dapat mengadopsi model pengembangan umum dalam rekayasa perangkat lunak, terutama mencakup model air terjun, model spiral, model penyempurnaan bertahap, dan model hierarki.

1.Model pembangunan umum
Proses perancangan adalah serangkaian langkah yang harus diikuti selama perancangan suatu sistem, beberapa di antaranya dapat dilakukan dengan alat otomatis, sementara yang lain hanya dapat dilakukan secara manual. Di bidang sistem tertanam, ada model proses pengembangan yang umum digunakan berikut ini.

(1) Model air terjun. Model air terjun terdiri dari lima tahap utama: tahap analisis persyaratan menentukan karakteristik dasar sistem target; tahap desain struktur sistem menguraikan fungsi-fungsi sistem menjadi struktur utama; tahap pengkodean terutama menulis dan men-debug program; dan yang terakhir Ini adalah fase pemeliharaan, yang terutama bertanggung jawab untuk memodifikasi kode agar beradaptasi dengan perubahan lingkungan, memperbaiki kesalahan, dan meningkatkan. Pekerjaan dan informasi pada setiap tahapan selalu mengalir dalam satu arah dari abstraksi tingkat tinggi ke langkah desain yang lebih detail, yang merupakan model desain top-down yang ideal.

(2) Model spiral. Model spiral mengasumsikan bahwa beberapa versi sistem akan dibangun. Versi awal adalah model eksperimental sederhana untuk membantu perancang membangun intuisi tentang sistem dan mengumpulkan pengalaman dalam mengembangkan sistem ini. Seiring dengan kemajuan desain, versi yang lebih kompleks akan dibuat dibuat. Di setiap lapisan desain, desainer akan melalui tiga tahap: analisis permintaan, desain struktural, dan pengujian. Pada tahap selanjutnya, ketika versi sistem yang lebih kompleks dibangun, lebih banyak pekerjaan yang harus dilakukan pada setiap tahap dan spiral desain perlu diperluas. Pendekatan penyempurnaan selangkah demi selangkah ini memungkinkan perancang untuk memperdalam pemahamannya dari sistem yang dikembangkan melalui serangkaian siklus desain. Lingkaran pertama di bagian atas spiral sangat kecil dan pendek, sedangkan putaran terakhir di bagian bawah spiral menambahkan detail pada putaran awal model spiral, yang lebih realistis daripada model air terjun.

(3) Penyempurnaan model selangkah demi selangkah. Model penyempurnaan bertahap merupakan sistem yang dibangun berkali-kali, sistem pertama dijadikan prototipe, kemudian sistem disempurnakan lebih lanjut satu per satu. Pendekatan ini masuk akal ketika perancang tidak terlalu paham dengan domain aplikasi dari sistem yang sedang dibangun. Menyempurnakan sistem dengan membangun beberapa sistem dengan kompleksitas yang semakin meningkat memungkinkan para desainer untuk menguji arsitektur dan teknik desain. Selain itu, berbagai teknik berulang mungkin hanya diselesaikan sebagian hingga sistem akhirnya selesai.

(4) Model hierarki. Banyak sistem tertanam sendiri terdiri dari desain yang lebih kecil, dan sistem yang lengkap mungkin memerlukan berbagai komponen perangkat lunak dan komponen perangkat keras. Bagian-bagian ini mungkin terdiri dari bagian-bagian lebih kecil yang belum dirancang, sehingga proses desain berubah seiring dengan tingkat abstraksi sistem, dari desain awal sistem yang lengkap hingga desain bagian-bagian individual, dari desain keseluruhan pada tahap awal. tingkat abstraksi tertinggi hingga menengah Desain terperinci pada tingkat abstrak dan kemudian desain setiap modul spesifik dibuka lapis demi lapis. Setiap proses dapat dilakukan oleh satu desainer atau tim desain , dan masing-masing kelompok belajar dari atasannya. Kelompok memperoleh persyaratan sementara kelompok induk mengandalkan kualitas dan kinerja desain kelompok individu. Apalagi setiap tahapan proses implementasi merupakan proses yang lengkap mulai dari spesifikasi hingga pengujian.

2.Metode desain sistem tertanam
Metode perancangan sistem tertanam yang baik sangat penting karena:
(1) Metode desain yang baik memungkinkan desainer untuk memahami dengan jelas kemajuan pekerjaan yang dilakukannya, sehingga dapat dipastikan tidak ada satupun yang terlewatkan.
(2) Izinkan penggunaan alat bantu komputer untuk membantu desainer bekerja dan membagi seluruh proses menjadi beberapa langkah yang dapat dikontrol.
(3) Metode desain yang baik memudahkan komunikasi antar anggota tim desain. Dengan mendefinisikan proses desain yang komprehensif, setiap anggota tim dapat memiliki pemahaman yang baik tentang pekerjaan yang harus mereka lakukan dan langkah-langkah yang diperlukan untuk menyelesaikan tugas yang diberikan kepada mereka. .tujuan tercapai.

Proses pengembangan perangkat lunak sistem tertanam dapat dibagi menjadi beberapa tahapan seperti perencanaan proyek, analisis kelayakan, analisis kebutuhan, desain garis besar, desain detail, pembuatan program, pengunduhan, debugging, solidifikasi, pengujian dan pengoperasian.

Tahapan perencanaan proyek, analisis kelayakan, analisis kebutuhan, desain garis besar, dan desain detail pada dasarnya sama dengan proses pengembangan perangkat lunak pada umumnya, dan semuanya dapat dilakukan sesuai dengan metode rekayasa perangkat lunak, seperti metode pembuatan prototipe, metode terstruktur, dll. .

Karena lingkungan pengoperasian dan pengembangan perangkat lunak tertanam berbeda, pekerjaan pengembangan dilakukan secara lintas-bijaksana, jadi hal ini harus dipertimbangkan di setiap langkah. Pekerjaan pada tahap pembuatan program didasarkan pada dokumen yang dihasilkan selama tahap desain rinci. Pekerjaan pada tahap ini terutama mencakup beberapa sub-proses seperti penulisan kode sumber, kompilasi, dan penautan. Semua tugas ini dilakukan pada mesin host dan tidak memerlukan penggunaan mesin target. Setelah membuat file aplikasi yang dapat dieksekusi, Anda perlu menggunakan lingkungan lintas pengembangan untuk debugging. Anda dapat memilih sesuai dengan situasi aktual.
Lakukan ini menggunakan salah satu dari beberapa metode debugging yang tersedia, atau kombinasi valid dari keduanya. Desain sistem tertanam berbeda dari desain perangkat lunak tradisional, seperti yang ditunjukkan pada Gambar 12-11. Seringkali melibatkan desain perangkat keras dan desain perangkat lunak, di mana aktivitas front-end, seperti spesifikasi dan arsitektur sistem, memerlukan pertimbangan aspek perangkat keras dan perangkat lunak.
Masukkan deskripsi gambar di sini
Demikian pula, desain back-end seperti integrasi sistem dan pengujian mempertimbangkan keseluruhan sistem. Pada tahap peralihan, komponen perangkat lunak dan perangkat keras dikembangkan secara independen satu sama lain, dan sebagian besar pekerjaan perangkat keras dan perangkat lunak dapat dilakukan secara relatif independen. Terakhir, program yang dapat dijalankan dengan benar setelah debugging harus dipadatkan pada mesin target.Tergantung pada konfigurasi perangkat keras sistem tertanam, ada beberapa metode penyembuhan. Hal ini dapat disembuhkan dalam memori seperti EPROM dan FLASH, atau di perangkat elektronik seperti DOC dan DOM.
sub piring. Biasanya hal ini dilakukan dengan bantuan beberapa programmer khusus.

Karena sistem tertanam memiliki persyaratan keamanan dan keandalan yang lebih tinggi dibandingkan sistem komputer tujuan umum, cakupan kode yang lebih tinggi diperlukan saat melakukan pengujian white-box pada sistem tertanam. Pada setiap tahap proses pengembangan sistem, konfirmasi sistem dan penilaian kinerja, penilaian keamanan dan penilaian risiko harus dilakukan, dan implementasi sistem harus diuji dan diverifikasi.

12.7.3 Teknologi inti desain sistem tertanam

Pengembangan sistem tertanam merupakan pengembangan perangkat lunak dan perangkat keras secara menyeluruh, yang sangat berbeda dengan pengembangan sistem pada umumnya. Di satu sisi, setiap sistem tertanam merupakan kombinasi perangkat lunak dan perangkat keras; dikembangkan, Perangkat lunak dipadatkan ke dalam produk bersama dengan perangkat keras dan memiliki kekhususan yang kuat. Di bawah pengaruh karakteristik ini, harus ada metodologi rekayasa yang berbeda dari proses pengembangan perangkat lunak pada umumnya untuk mendukung proses pengembangan sistem tertanam. Pada saat yang sama, karakteristik ini juga menentukan teknologi inti unik yang digunakan dalam pengembangan sistem tertanam.

Secara umum, dalam bidang pengembangan tertanam, ada tiga teknologi inti utama: teknologi prosesor, teknologi IC, dan teknologi desain/verifikasi.

1. Teknologi prosesor
Teknologi prosesor berkaitan dengan struktur mesin komputasi yang mengimplementasikan fungsi sistem. Banyak sistem digital yang tidak dapat diprogram juga dapat dianggap sebagai prosesor. Perbedaan antara prosesor ini adalah tingkat spesialisasinya untuk fungsi tertentu, sehingga menghasilkan spesifikasi desain yang berbeda dari prosesor lainnya. .

(1) Pemroses tujuan umum. Prosesor jenis ini dapat digunakan untuk berbagai jenis aplikasi. Fitur penting adalah kemampuan untuk menyimpan program. Karena perancang tidak mengetahui operasi apa yang akan dilakukan prosesor, tidak mungkin membuat program menggunakan sirkuit digital. Fitur lainnya adalah jalur data universal. Untuk menangani berbagai perhitungan, jalur data bersifat universal. Jalur data umumnya memiliki sejumlah besar register dan satu atau lebih unit logika aritmatika untuk tujuan umum. Perancang hanya perlu memprogram memori prosesor untuk menjalankan fungsi yang diperlukan, yaitu perangkat lunak terkait desain.

Menggunakan prosesor tujuan umum dalam sistem tertanam memiliki beberapa keunggulan dalam hal metrik desain. Waktu pemasaran dan biaya EBT rendah karena perancang hanya perlu menulis program tanpa melakukan desain digital apa pun. Perubahan fungsional dapat dilakukan dengan memodifikasi program. Dibandingkan dengan merancang prosesor sendiri, biaya unit akan lebih rendah jika jumlahnya sedikit.

Tentu saja cara ini juga memiliki beberapa kekurangan pada indikator desain. Bila kuantitasnya banyak maka biaya per unitnya relatif tinggi, karena bila kuantitasnya banyak maka biaya EBT yang dirancang sendiri akan diamortisasi sehingga dapat menurunkan biaya per unitnya. Pada saat yang sama, untuk beberapa aplikasi, kinerjanya mungkin buruk. Ukuran sistem dan konsumsi daya dapat meningkat karena dimasukkannya perangkat keras prosesor yang tidak diperlukan.

(2) Prosesor tujuan tunggal. Prosesor tujuan tunggal adalah sirkuit digital yang dirancang untuk menjalankan program tertentu. Ini juga mengacu pada co-prosesor, akselerator, periferal, dll. Codec seperti JPEG menjalankan satu proses untuk mengompresi atau mendekompresi informasi video. Perancang sistem tertanam dapat membuat prosesor tujuan tunggal dengan merancang sirkuit digital tertentu. Desainer juga dapat menggunakan prosesor tujuan tunggal komersial yang telah dirancang sebelumnya.

Menggunakan prosesor tujuan tunggal dalam sistem tertanam memiliki beberapa kelebihan dan kekurangan dalam hal metrik. Kelebihan dan kekurangan ini pada dasarnya berlawanan dengan prosesor tujuan umum. Kinerjanya mungkin lebih baik, ukuran dan dayanya mungkin lebih kecil, biaya unitnya mungkin lebih rendah jika jumlahnya besar, dan waktu desain serta biaya EBT mungkin tinggi. fleksibilitasnya buruk, dan biaya unit per jam lebih tinggi, untuk beberapa aplikasi, kinerjanya tidak sebaik prosesor tujuan umum.

(3) Prosesor khusus. Prosesor set instruksi tujuan khusus adalah prosesor yang dapat diprogram yang dioptimalkan untuk jenis aplikasi tertentu. Aplikasi spesifik tersebut memiliki karakteristik yang sama, seperti kontrol tertanam, pemrosesan sinyal digital, dll. Penggunaan prosesor khusus dalam sistem tertanam dapat memberikan fleksibilitas yang lebih besar sekaligus memastikan kinerja, daya, dan ukuran yang baik, namun prosesor tersebut masih memerlukan biaya yang mahal untuk membangun prosesor itu sendiri dan kompilernya. Mikrokontroler dan pemroses sinyal digital adalah dua jenis prosesor khusus yang banyak digunakan. Pemroses sinyal digital adalah mikroprosesor yang melakukan operasi umum pada sinyal digital, sedangkan mikrokontroler adalah mikroprosesor yang dioptimalkan untuk aplikasi kontrol tertanam.

2. teknologi IC
Teknologi implementasi yang memperoleh proses pemetaan fisik chip sebenarnya dari deskripsi desain sirkuit terpadu sistem adalah teknologi IC (Integrated Circuits, sirkuit terpadu). Saat ini terdapat tiga jenis teknologi implementasi di bidang semikonduktor, yaitu kustomisasi penuh , teknologi semi-kustomisasi dan dapat diprogram. Dapat diterapkan pada desain perangkat keras sistem tertanam.

(1) Sepenuhnya disesuaikan/VLSI (Sirkuit Terpadu Skala Sangat Besar, sirkuit terpadu skala sangat besar). Dalam teknologi IC yang sepenuhnya disesuaikan, perancang di setiap lapisan perlu mengoptimalkan implementasi digital dari sistem tertanam tertentu. Perancang mulai dari ukuran tata letak, posisi, dan pengkabelan transistor untuk mencapai pemanfaatan area chip yang tinggi, kecepatan cepat, dan konsumsi daya yang rendah. . Optimalkan kinerja. Menggunakan masker untuk memproduksi chip sebenarnya di pabrik, desain IC yang sepenuhnya disesuaikan, juga sering disebut VLSI, memiliki biaya NRE yang tinggi, waktu produksi yang lama, dan cocok untuk aplikasi bervolume tinggi atau kinerja kritis.

(2) Semi-custom/ASIC (Sirkuit Terpadu Khusus Aplikasi, sirkuit terpadu khusus aplikasi). ASIC semi-kustom adalah metode desain terbatas, termasuk metode desain susunan gerbang dan metode desain sel standar. Ini adalah perangkat keras setengah jadi dengan beberapa komponen unit universal dan kelompok komponen yang dibuat pada chip. Perancang hanya perlu mempertimbangkan fungsi logis dari rangkaian dan hubungan yang wajar antara modul fungsional. Metode desain ini fleksibel, nyaman dan hemat biaya, memperpendek siklus desain dan meningkatkan hasil.

(3) Dapat Diprogram/ASIC. Semua lapisan dalam perangkat yang dapat diprogram sudah ada. Setelah desain selesai, chip yang dirancang dapat ditembakkan di laboratorium tanpa keterlibatan produsen IC, dan siklus pengembangan dipersingkat secara signifikan. ASIC yang dapat diprogram memiliki biaya EBT yang lebih rendah, biaya unit yang lebih tinggi, konsumsi daya yang lebih tinggi, dan kecepatan yang lebih lambat.

3.Teknologi Desain/Verifikasi
Teknologi desain sistem tertanam terutama mencakup dua kategori: teknologi desain perangkat keras dan teknologi desain perangkat lunak. Diantaranya, teknologi di bidang desain perangkat keras terutama mencakup teknologi desain tingkat chip dan teknologi desain tingkat papan sirkuit.

Inti dari teknologi desain tingkat chip adalah kompilasi/sintesis, perpustakaan/IP (Kekayaan Intelektual, kekayaan intelektual), dan pengujian/verifikasi. Teknologi kompilasi/sintesis memungkinkan desainer untuk mendeskripsikan fungsionalitas yang diperlukan secara abstrak dan secara otomatis menganalisis dan memasukkan detail implementasi. Teknologi perpustakaan/IP menggunakan implementasi abstraksi tingkat rendah yang telah dirancang sebelumnya untuk abstraksi tingkat tinggi. Teknologi pengujian/verifikasi memastikan bahwa setiap level berfungsi dengan benar, sehingga mengurangi biaya desain berulang antar level.

Inti dari teknologi desain perangkat lunak adalah bahasa perangkat lunak. Bahasa perangkat lunak telah mengalami proses pengembangan dari bahasa tingkat rendah (bahasa mesin, bahasa rakitan) ke bahasa tingkat tinggi (misalnya bahasa desain terstruktur, bahasa desain berorientasi objek). teknologi perakitan, teknologi analisis, teknologi kompilasi/interpretasi, dll. banyak teknologi terkait. Tingkat bahasa perangkat lunak juga secara bertahap bertransisi dari tingkat implementasi, tingkat desain, dan tingkat fungsional ke pengembangan bahasa tingkat permintaan.

Pada masa-masa awal, dengan terbentuknya konsep prosesor serba guna secara bertahap, teknologi perangkat lunak berkembang pesat, kompleksitas perangkat lunak juga mulai meningkat, dan teknologi serta bidang desain perangkat lunak dan desain perangkat keras sepenuhnya terpisah. Teknik dan alat desain telah berkembang secara bersamaan di kedua bidang ini, memungkinkan deskripsi perilaku dilakukan pada tingkat yang semakin abstrak untuk beradaptasi dengan kebutuhan kompleksitas desain yang semakin meningkat. Perkembangan simultan ini kini membuat kedua bidang tersebut menggunakan model waktu yang sama untuk mendeskripsikan perilaku, sehingga tidak menutup kemungkinan kedua bidang tersebut akan disatukan kembali menjadi satu bidang.

Mengingat fakta bahwa sebagian besar sistem tertanam adalah sistem reaktif waktu nyata, sistem reaktif memiliki karakteristik konkurensi multi-tugas, batasan waktu yang ketat, dan keandalan yang tinggi. Untuk desain dan deskripsi sistem reaktif, orang-orang secara berturut-turut mengusulkan berbagai macam bahasa deskripsi dan metodologi Validasi. Misalnya, logika sekuensial digunakan untuk menggambarkan sifat sistem reaktif dan alasan tentang perilaku sistem reaktif, dan teknologi pengecekan model digunakan untuk memverifikasi kebenaran desain sistem reaktif. Teknologi ini secara bertahap memainkan peran penting dalam pengembangan tertanam proses. .

12.7.4 Lingkungan pengembangan dan desain tertanam

Ada banyak jenis lingkungan pengembangan untuk sistem tertanam, yang secara umum dapat dibagi ke dalam kategori berikut:
(1) Lingkungan pengembangan yang mendukung sistem operasi tertanam. Ada banyak lingkungan pengembangan dalam kategori ini, seperti PalmOS, THOS, VxWorks, Windows CE dan sistem operasi tertanam komersial lainnya yang memiliki lingkungan pengembangan yang berfungsi penuh yang mendukungnya.

(2) Lingkungan pengembangan yang mendukung chip prosesor. Lingkungan pengembangan jenis ini umumnya disediakan oleh produsen prosesor. Misalnya, tool kit yang diluncurkan oleh EPSON khusus untuk pengembangan sistem tertanam berdasarkan chip mikrokontroler seri S1C33 adalah jenis lingkungan pengembangan ini.

(3) Lingkungan pengembangan yang cocok dengan platform aplikasi tertentu. Jenis lingkungan pengembangan ini sangat bertarget, seperti Brew SDK Qualcomm.

(4) Jenis lingkungan pengembangan lainnya. Jenis lingkungan pengembangan ini terutama mengacu pada lingkungan pengembangan yang lebih umum yang dikembangkan atau disesuaikan oleh beberapa vendor sistem tertanam berdasarkan alat sumber terbuka GNU. Alat jenis ini tersedia secara gratis, mendukung berbagai jenis prosesor, dan memiliki fungsi yang lengkap, namun dukungan teknisnya sedikit kalah dengan alat komersial profesional.

12.7.5 Model desain perangkat lunak tertanam

Ketika fungsi sistem tertanam menjadi semakin kompleks, semakin sulit untuk menggambarkan perilaku sistem yang kompleks secara fungsional ini. Praktek telah membuktikan bahwa mendeskripsikan dan menganalisis sistem dengan menggunakan model komputasi adalah metode yang memiliki nilai rekayasa.

Bagian ini memperkenalkan beberapa model komputasi yang umum digunakan di bidang tertanam, dan menganalisis serta menjelaskan isu-isu terkait desain dan pengembangan aplikasi tertanam dari perspektif model komputasi. Model komputasi menyediakan serangkaian metode untuk menggabungkan perilaku kompleks dengan objek sederhana, yang dapat membantu desainer memahami dan mendeskripsikan perilaku sistem. Model komputasi yang umum digunakan dalam sistem tertanam meliputi: model komputasi sekuensial, model proses komunikasi, model mesin keadaan, model aliran data, model berorientasi objek, dan model proses bersamaan. Model-model ini digunakan dalam bidang aplikasi yang berbeda. Misalnya, model mesin negara sangat cocok untuk menggambarkan sistem berorientasi kontrol, dan model aliran data dapat dengan baik menggambarkan masalah pemrosesan dan konversi data. Saat ini yang paling banyak digunakan adalah model proses konkuren.

1.Model mesin negara
Finite-State Machine (FSM) adalah model keadaan dasar yang dapat menggunakan sekumpulan keadaan yang mungkin untuk menggambarkan perilaku sistem. Sistem hanya dapat berada di salah satu keadaan pada suatu waktu, atau dapat juga menggambarkan keadaan yang ditentukan oleh masukan. Transisi, akhirnya, dapat menggambarkan operasi yang mungkin terjadi dalam keadaan tertentu atau selama transisi keadaan.
Mesin keadaan terbatas FSM adalah F enam tupel<S,I,O,F,H,S0> , dimana S adalah himpunan keadaan {s0, s1,…,sl}, I adalah himpunan masukan {I0, I1,…,Im}, O adalah himpunan keluaran {o0, o1,…,on}, dan F adalah fungsi substate. Atau fungsi transisi, yang memetakan keadaan dan masukan ke keadaan (S×I→S), H adalah fungsi keluaran, yang memetakan keadaan ke keluaran (S→O), dan S0 adalah keadaan awal .

Gambar 12-12 adalah deskripsi mesin keadaan dari unit kendali elevator. Pada keadaan awal "idle", atur naik dan turun ke 0 dan buka ke 1. Mesin negara tetap dalam keadaan "idle" sampai lantai yang diminta berbeda dari lantai saat ini. Jika lantai yang diminta lebih besar dari lantai saat ini, mesin status akan berpindah ke status "naik" dan menyetel ke 1. Jika lantai yang diminta lebih kecil dari lantai saat ini, mesin status berpindah ke status "turun" dan turun diatur ke 1. Mesin negara tetap dalam keadaan "turun" atau "naik" sampai lantai saat ini sama dengan lantai yang diminta, dan kemudian keadaan bertransisi ke keadaan "terbuka" dengan set terbuka ke 1. Biasanya, sistem memiliki pengatur waktu. Oleh karena itu, ketika mesin keadaan berpindah ke keadaan "pintu terbuka", pengatur waktu juga dimulai. Mesin keadaan tetap dalam keadaan "pintu terbuka" sampai pengatur waktu habis, dan akhirnya berpindah ke keadaan "menganggur".
Masukkan deskripsi gambar di sini
Ketika FSM digunakan dalam desain sistem tertanam, tipe data input dan outputnya adalah tipe Boolean, dan fungsinya mewakili fungsi Boolean yang berisi operasi Boolean. Model ini telah digunakan untuk banyak sistem kontrol murni tanpa input atau output data yang cukup . Jika Anda ingin memproses data, perluas FSM ke mesin status dengan datapath (FSM dengan Datapath, FSMD). Selain itu, model mesin negara dapat diperluas lebih lanjut untuk mendukung hierarki dan konkurensi. Model ini disebut model FSM hierarkis/bersamaan (HCFSM).

2.model aliran data
Model aliran data merupakan model yang diturunkan dari model multi-tugas konkuren. Model ini menggambarkan perilaku sistem sebagai sekumpulan node dan edge, dimana node mewakili transformasi dan edge mewakili aliran data dari satu node ke node lainnya. . Setiap node menggunakan data dari tepi masukannya, melakukan transformasi, dan menghasilkan data pada tepi keluarannya.

Setiap edge mungkin memiliki atau tidak memiliki data. Data yang muncul di edge disebut token. Ketika semua edge input dari sebuah node memiliki setidaknya satu token, node tersebut dapat dipicu. Setelah node dipicu, token dari setiap tepi masukan akan digunakan, transformasi data akan dilakukan pada semua token yang digunakan, dan token akan dihasilkan pada tepi keluaran. Pemicuan node hanya bergantung pada kemunculan token .

Gambar 12-13 menunjukkan model aliran data untuk menghitung z=(a+b)×(cd). Saat ini, terdapat beberapa alat komersial yang mendukung ekspresi model aliran data dalam bahasa grafis. Alat ini dapat secara otomatis mengubah model aliran data menjadi model multi-tugas secara bersamaan untuk diimplementasikan pada mikroprosesor. Metode konversinya adalah dengan mengubah setiap node menjadi tugas dan setiap tepi menjadi saluran. Metode implementasi model multi-tugas konkuren adalah dengan menggunakan sistem operasi waktu nyata untuk memetakan tugas-tugas bersamaan.

Gambar 12-14 adalah model aliran data sinkron. Dalam model ini, setiap tepi masukan dan tepi keluaran dari node ditandai dengan jumlah token yang digunakan dan dihasilkan untuk setiap pemicu. Keuntungan dari model ini adalah tidak perlu diubah menjadi model multi-tugas secara bersamaan selama implementasi. Sebaliknya, node dijadwalkan secara statis untuk menghasilkan model program yang berurutan. Model dapat diekspresikan menggunakan bahasa pemrograman sekuensial (seperti bahasa C) dan dapat dieksekusi tanpa sistem operasi real-time, sehingga efisiensi eksekusinya lebih tinggi.
Masukkan deskripsi gambar di sini
3. Model proses bersamaan
Model proses konkuren terdiri dari sekelompok proses. Setiap proses adalah proses eksekusi berurutan, dan setiap proses dapat dieksekusi secara bersamaan. Model proses konkuren menyediakan operasi untuk membuat, mengakhiri, menangguhkan, melanjutkan, dan menghubungkan proses. Proses dapat berkomunikasi satu sama lain dan bertukar data selama eksekusi. Komunikasi antar-proses dapat mengambil dua bentuk: variabel bersama dan penyampaian pesan. Semaphore, bagian kritis, tabung, ekspresi jalur, dll. digunakan untuk menyinkronkan operasi proses yang bersamaan.

Secara umum, sistem real-time dapat dipandang sebagai suatu sistem yang terdiri dari banyak proses yang dijalankan secara bersamaan, yang masing-masing memiliki persyaratan waktu. Dengan cara ini, banyak sistem tertanam lebih mudah dijelaskan dengan serangkaian tugas yang dijalankan secara bersamaan, karena sistem ini sendiri adalah sistem multi-tasking, dan model proses bersamaan secara alami dapat diimplementasikan dengan multi-tasking pada sistem operasi waktu nyata.

4.model berorientasi objek
Model proses konkuren tradisional dirancang berdasarkan konsep proses. Proses adalah konsep tingkat implementasi. Ini merupakan simulasi tidak langsung dari aktivitas di dunia objektif. Oleh karena itu, sangat sulit untuk menggunakan model proses untuk menyelesaikan masalah konkurensi dunia objektif. Ini tidak wajar, dan juga membuat program yang berjalan bersamaan menjadi sulit untuk dirancang dan dipahami.

Model berorientasi objek mendeskripsikan aktivitas di dunia objektif dengan cara yang lebih langsung, dan terdapat potensi kemampuan eksekusi bersamaan dalam model tersebut. Setelah satu objek mengirimkan pesan ke objek lain, jika hasil pemrosesan pesan tersebut tidak diperlukan atau tidak diperlukan segera, objek pertama tidak harus menunggu objek terakhir memproses pesan tersebut, dan pengirim pesan serta penerima pesan dapat mengeksekusi. secara bersamaan.Objek tidak semuanya dalam keadaan penyediaan layanan pasif. Selain menyediakan layanan dengan menerima pesan, beberapa di antaranya juga dapat memiliki pemrosesan transaksinya sendiri.
alasan. Sebuah objek sering kali dapat menangani banyak pesan secara bersamaan.

Objek adalah enkapsulasi data dan operasi. Data disimpan dalam variabel lokal objek. Keadaan objek diwakili oleh nilai semua variabel lokal objek pada saat tertentu. Dalam lingkungan konkuren, deskripsi keadaan objek secara bersamaan juga harus diperhatikan, karena kontrol konkurensi objek didasarkan pada keadaan objek secara bersamaan. Menggabungkan konkurensi dan berorientasi objek dapat diringkas menjadi dua cara:
(1) Memperkenalkan mekanisme konkurensi ke dalam model berorientasi objek, memanfaatkan sepenuhnya teknologi berorientasi objek untuk menggambarkan kemampuan model yang baik dari dunia objektif dan berbagai karakteristik penting dari berorientasi objek, dan pada saat yang sama menggambarkan potensi kemampuan konkurensinya, membuatnya cocok untuk menggambarkan komputasi bersamaan.

(2) Memperkenalkan pemikiran berorientasi objek ke dalam model konkurensi tradisional. Model konkurensi berorientasi objek dapat dibagi menjadi dua jenis: model konkurensi implisit dan model konkurensi eksplisit.

(1) Model konkurensi implisit. Model ini dicirikan dengan menunda desain bersamaan dan menggunakan pemodelan objek sebagai dasar pemodelan. Sebelum memasuki fase berjalan, perlakukan objek sebagai unit otonom dan aktivitas berbagai objek sebagai tugas spesifik yang diselesaikan secara bersamaan. Sama seperti setiap objek yang memiliki prosesornya sendiri, prosesor ini dapat menyediakan thread eksekusi untuk objek tersebut. Peristiwa eksternal yang memasuki sistem dianggap sebagai permintaan pemrosesan dan disiarkan ke beberapa objek. Objek ini kemudian membuat permintaan pemrosesan lebih lanjut ke objek lain. Secara teoritis, sesuai dengan permintaan, sejumlah objek dapat melakukan pemrosesan yang sesuai. Selama implementasi, penjadwal pada akhirnya menentukan urutan operasi pada objeknya, seperti yang ditunjukkan pada Gambar 12-15.

(2) Model konkurensi eksplisit. Ciri-ciri model ini adalah konkurensi harus diperhatikan terlebih dahulu, dan konsep konkurensi serta konsep objek harus dipisahkan terlebih dahulu. Setelah objek ditetapkan, konsep proses yang didukung oleh sistem operasi waktu nyata digunakan untuk merepresentasikan konkurensi, membentuk dua level abstrak objek dan proses, yaitu, pertama mendekomposisi sistem menjadi proses kuasi-konkuren sebagai titik awal, dan menggunakan teknologi berorientasi objek dalam setiap proses. Interaksi antar objek dinyatakan sebagai pemanggilan fungsi bersarang, dan mekanisme sinkronisasi eksplisit seperti kunci, monitor, dan semaphore ditambahkan untuk memastikan integritas objek. Model ini menempatkan proses di atas objek, dan tidak perlu mempertimbangkan konkurensi atau serialisasi objek dalam objek, seperti yang ditunjukkan pada Gambar 12-16.
Masukkan deskripsi gambar di sini
Pada masa-masa awal, metode desain sistem real-time sebagian besar adalah metode desain terstruktur. Sistem yang menggunakan metode terstruktur memiliki keterbatasan besar dalam hal penggunaan kembali dan modifikasi. Metode desain sistem real-time berorientasi objek jelas memiliki keuntungan nyata dalam permasalahan ini. Metode desain berorientasi objek yang lebih praktis adalah metode OCTOPUS Nokia. Metode ini didasarkan pada Metode OMT dan Fusion, dan mengusulkan metode untuk memproses waktu respons sistem waktu nyata, domain waktu dan konkurensi, dan secara khusus mengusulkan metode untuk menangani waktu nyata. waktu respons sistem, domain waktu, dan konkurensi. Menangani aspek konkurensi, sinkronisasi, komunikasi, penanganan interupsi, ASIC, antarmuka perangkat keras, waktu respons ujung ke ujung, dll. Pendekatan OCTOPUS menggabungkan fase-fase utama pengembangan perangkat lunak dengan baik, memberikan transisi yang ketat dan alami dari spesifikasi ke model yang sedang berjalan, dan mendukung pengembangan bertahap. Metode OCTOPUS adalah metode desain khas yang menggabungkan teknologi berorientasi objek terkini dan sistem waktu nyata. Selain itu, teknik pengembangan berorientasi objek formal dan bahasa pemodelan secara bertahap diterapkan pada tahap awal pemodelan sistem waktu nyata.

12.7.6 Analisis kebutuhan

Sebelum mendesain, desainer harus mengetahui apa yang akan didesain. Persyaratan dan spesifikasi sering digunakan untuk menggambarkan dua langkah proses desain yang terkait namun berbeda. Persyaratan adalah deskripsi informal tentang apa yang diinginkan pengguna, sedangkan spesifikasi adalah deskripsi yang lebih rinci, tepat, dan konsisten yang dapat digunakan untuk membuat arsitektur sistem. Tentu saja, persyaratan dan spesifikasi merupakan representasi eksternal dari sistem panduan, bukan representasi internal. Ada dua jenis persyaratan: persyaratan fungsional dan persyaratan non-fungsional. Persyaratan fungsional menggambarkan apa yang harus dilakukan sistem, sedangkan persyaratan non-fungsional menjelaskan atribut lain dari sistem, seperti ukuran fisik, harga, konsumsi daya, waktu desain, keandalan. Tunggu.

Analisis persyaratan untuk sistem yang besar adalah tugas yang kompleks dan memakan waktu, namun memperoleh sejumlah kecil informasi dalam format yang jelas dan sederhana adalah awal yang baik dalam memahami persyaratan sistem. Tabel 12-5 adalah formulir persyaratan yang diisi pada awal proyek dan dapat digunakan sebagai daftar periksa ketika mempertimbangkan karakteristik dasar sistem.

Masukkan deskripsi gambar di sini
Isi formulir persyaratan ini disusun dengan menggunakan contoh GPS (Global Position System, sistem peta seluler). Sistem peta seluler adalah perangkat genggam yang dirancang untuk pengguna yang berkendara di jalan raya atau pengguna serupa. Perangkat tersebut dapat memperoleh informasi lokasi dari GPS dan menampilkan lokasi saat ini dan peta medan sekitarnya untuk pengguna. Perubahan tergantung pada lokasi pengguna dan perangkat.

Keluaran dokumen terpenting selama tahap analisis kebutuhan adalah spesifikasi sistem.
Spesifikasi adalah dokumen teknis yang secara akurat mencerminkan kebutuhan pelanggan dan berfungsi sebagai persyaratan yang harus diikuti selama desain. Dalam proses pengembangan perangkat lunak, spesifikasi sangatlah penting. Analis sistem menerima kebutuhan pengguna dan menghasilkan spesifikasi untuk sistem perangkat lunak target. Perancang dan pembuat kode merancang modul sesuai dengan spesifikasi dan akhirnya menghasilkan kode program. Spesifikasi harus jelas dan tidak ambigu, jika tidak, sistem yang dibangun berdasarkan spesifikasi mungkin tidak memenuhi persyaratan sebenarnya.

Saat ini, metode yang lebih populer di industri adalah dengan menggunakan UML untuk mendeskripsikan spesifikasi. UML adalah bahasa pemodelan standar universal yang dapat memodelkan sistem apa pun dengan struktur statis dan perilaku dinamis. UML cocok untuk berbagai tahapan dalam proses pengembangan sistem mulai dari spesifikasi kebutuhan hingga pengujian setelah sistem selesai. Gambar 12-17 adalah contoh spesifikasi mesin keadaan yang menunjukkan operasi. Awal dan akhir adalah keadaan khusus, dan keadaan dalam mesin keadaan mewakili operasi konseptual yang berbeda.
Masukkan deskripsi gambar di sini
Pada tahap analisis kebutuhan, kebutuhan pengguna ditangkap melalui kasus penggunaan. Melalui pemodelan use case, jelaskan aktor eksternal yang tertarik pada sistem dan persyaratan fungsional mereka untuk sistem (use case). Fase analisis terutama berkaitan dengan konsep-konsep utama (seperti abstraksi, kelas dan objek, dll.) dan mekanisme dalam domain masalah. Hal ini diperlukan untuk mengidentifikasi kelas-kelas ini dan hubungannya dan menggambarkannya dengan diagram kelas UML. Selama tahap analisis, hanya objek dari domain masalah (konsep dunia nyata) yang dimodelkan, tanpa mempertimbangkan kelas-kelas yang mendefinisikan rincian teknis dalam sistem perangkat lunak (seperti kelas yang menangani masalah seperti antarmuka pengguna, database, komunikasi, dan paralelisme).

12.7.7 Desain sistem

Saat ini, alat desain sistem tertanam dapat dibagi menjadi dua kategori: alat sintesis kolaboratif dan alat simulasi kolaboratif.
(1) Alat sintesis kolaboratif. Saat ini, alat sintesis kolaboratif utama yang digunakan untuk pengembangan tertanam meliputi POLIS, COSYMA, dan Chinook.

POLIS: POLIS adalah kerangka desain bersama perangkat lunak dan perangkat keras untuk sistem tertanam interaktif yang dikembangkan oleh UC-Berkeley. Sangat cocok untuk desain sistem kontrol kecil. Deskripsi sistem mendukung bahasa berbasis FSM (Finite State Machine). Karena perangkat lunak dan perangkat keras dapat diperoleh secara transparan dari deskripsi CFSM yang sama, fleksibilitas ruang desain juga meningkat. Simulasi kolaboratif menggunakan PTOLEMY didukung. Verifikasi formal didukung pada lapisan deskripsi dan implementasi terbatas, yaitu CFSM perangkat keras hanya dikelilingi oleh satu prosesor dan tidak mendukung memori bersama.

COSYMA: COSYMA adalah platform yang dikembangkan oleh perusahaan IDA Jerman untuk mengeksplorasi proses sintesis desain bersama perangkat keras dan perangkat lunak. Ia memiliki deskripsi yang relatif sederhana untuk sistem perangkat lunak, mendukung segmentasi otomatis dan sintesis ko-prosesor, dan dapat menjelajahi ruang desain selama periode sintesis., Sintesis sistem bergantung pada batasan perangkat keras dan tidak mendukung modul konkurensi, yaitu, hanya satu thread yang dapat dijalankan pada satu waktu. Arsitekturnya juga terbatas dan tidak mendukung verifikasi formal tergantung pada partisi, dan teknik estimasi biaya.

Chinook: Chinook dirancang untuk sistem kontrol. Deskripsi keseluruhan sistem diberikan kepada Chinook sebagai masukan. Model internalnya didasarkan pada model seperti keadaan hierarki. Ini tidak menyediakan lingkungan simulasi tunggal keseluruhan desain. Chinook Mendukung berbagai arsitektur sistem, terutama arsitektur multi-prosesor. Ini juga mendukung deskripsi batasan waktu. Ia dapat mensintesis berbagai antarmuka, termasuk antarmuka perangkat lunak dan perangkat keras antar sistem. Ia dapat mensintesis driver perangkat langsung dari grafik waktu dan mengontrol komunikasi antar prosesor.

(2) Alat simulasi kolaboratif. Simulasi kolaboratif merupakan aspek penting dalam desain sistem tertanam. Setelah keseluruhan desain sistem selesai, perlu dilakukan simulasi berbagai jenis komponen dalam kerangka terpadu. Simulasi kolaboratif tidak hanya menyediakan verifikasi, tetapi juga memberikan informasi kinerja setiap sistem kepada pengguna . , yang membantu mengusulkan perubahan pada tahap awal sistem tanpa menimbulkan kerugian besar. Saat ini, ada dua alat simulasi kolaboratif utama:

PTOLEMY: Ide utama PTOLEMY adalah menggabungkan model komputasi dengan kernel berorientasi objek. Ini dapat digunakan untuk mensimulasikan berbagai sistem dan banyak digunakan dalam berbagai aplikasi, tetapi tidak cocok untuk sintesis sistem juga salah satu fungsinya. TSS: TSS (Alat untuk Simulasi Sistem) adalah alat untuk mensimulasikan perangkat keras yang kompleks. Ini ditulis dalam bahasa C. Ekstraksi modul individual dapat dikontrol oleh pengguna, dan modul dapat dengan mudah ditambahkan dan dihapus. Namun, modul hierarki tidak didukung, dan tidak ada mekanisme untuk menyinkronkan akses ke struktur data bersama oleh masing-masing prosesor. Komunikasi antar modul dilakukan melalui port dan bus. Selain itu, TSS mendukung simulasi sistem multi-core.

1.Desain arsitektur sistem
Menjelaskan bagaimana sistem mengimplementasikan fungsi-fungsi yang ditentukan dalam spesifikasi adalah tujuan utama desain arsitektur sistem. Namun, ketika merancang struktur sistem dari sistem tertanam, sulit untuk benar-benar memisahkan perangkat lunak dan perangkat keras. Pendekatan yang biasa dilakukan adalah dengan mempertimbangkan arsitektur perangkat lunak dari sistem terlebih dahulu dan kemudian mempertimbangkan implementasi perangkat kerasnya. Gambaran arsitektur sistem harus memenuhi persyaratan fungsional dan non-fungsional. Tidak hanya fungsionalitas yang diperlukan yang harus diterapkan, tetapi batasan non-fungsional seperti biaya, kecepatan, konsumsi daya, dll juga harus dipenuhi. Ini adalah metode praktis untuk mempertimbangkan dan menyempurnakan elemen fungsional dalam diagram blok asli sistem satu per satu, dan mengubah diagram blok asli menjadi struktur sistem perangkat lunak dan perangkat keras dengan tetap mempertimbangkan batasan non-fungsional. Berikut ini contoh desain arsitektur sistem peta seluler GPS.

(1) Diagram blok asli. Seperti yang ditunjukkan pada Gambar 12-18, diagram blok asli ini adalah operasi utama dan aliran data dari sistem peta seluler.
Masukkan deskripsi gambar di sini
(2) Arsitektur sistem perangkat lunak. Seperti yang ditunjukkan pada Gambar 12-19, sistem perangkat lunak terutama terdiri dari antarmuka pengguna, mesin pencari basis data, dan konverter data.
Masukkan deskripsi gambar di sini
(3) Arsitektur sistem perangkat keras. Seperti yang ditunjukkan pada Gambar 12-20, sistem perangkat keras terdiri dari mikroprosesor tujuan umum, memori dan perangkat I/O. Sistem ini memilih dua jenis memori: data umum, memori program, dan memori buffer bingkai untuk tampilan piksel.
Masukkan deskripsi gambar di sini
2.Desain subsistem perangkat keras
Lingkungan pengembangan sistem tertanam terdiri dari 4 bagian: platform perangkat keras target, sistem operasi tertanam, bahasa pemrograman dan alat pengembangan. Diantaranya, pemilihan prosesor dan sistem operasi harus mempertimbangkan lebih banyak faktor untuk menghindari keputusan yang salah yang mempengaruhi kemajuan proyek .

(1) Pilih teknologi prosesor. Tantangan utama dalam desain sistem tertanam adalah bagaimana mengoptimalkan spesifikasi desain yang bersaing secara bersamaan. Perancang harus melakukan trade-off antara berbagai teknologi prosesor dan teknologi IC. Secara umum, teknologi prosesor tidak ada hubungannya dengan teknologi IC, artinya, teknologi prosesor apa pun dapat diimplementasikan menggunakan teknologi IC apa pun, namun kinerja, biaya EBT, konsumsi daya, ukuran, dan indikator lain dari perangkat akhir akan sangat berpengaruh. berbeda. , seperti yang ditunjukkan pada Gambar 12-21.
Masukkan deskripsi gambar di sini
Teknologi terprogram yang lebih serbaguna memberikan fleksibilitas lebih besar, mengurangi biaya EBT, dan memungkinkan prototipe produk serta waktu peluncuran lebih cepat. Teknologi yang disesuaikan dapat memberikan konsumsi daya yang lebih rendah, kinerja yang lebih baik, ukuran yang lebih kecil, dan biaya yang lebih rendah untuk produksi volume tinggi.

Biasanya, ketika sebuah perusahaan ingin meluncurkan suatu produk, seperti set-top box, router rumah, atau prosesor serba guna, pertama-tama perusahaan tersebut dapat meluncurkan produk semi-kustomisasi untuk menangkap pasar secepat mungkin, dan kemudian meluncurkan produk. produk yang sepenuhnya disesuaikan. Anda juga dapat terlebih dahulu menggunakan teknologi lama yang lebih andal untuk mengimplementasikan prosesor, lalu menggunakan teknologi proses baru untuk mengimplementasikan generasi berikutnya. Demikian pula, perancang sistem tertanam dapat menggunakan perangkat yang dapat diprogram untuk membuat prototipe guna mempercepat waktu pemasaran dan kemudian menggunakan perangkat khusus untuk produksi massal. Berdasarkan prinsip-prinsip ini, desainer dapat membuat pilihan yang masuk akal mengenai teknologi prosesor dan prosesor yang digunakan. Secara umum, "perangkat lunak prosesor universal" yang sepenuhnya dapat disesuaikan dan tersedia secara komersial adalah pilihan yang cocok untuk sebagian besar situasi.

(2) Pemilihan prosesor tertanam umum. Pilih prosesor tertanam untuk tujuan umum yang sesuai berdasarkan kebutuhan pengguna dan proyek. Indikator berikut perlu dipertimbangkan saat memilih.
Kecepatan prosesor. Performa prosesor bergantung pada banyak faktor: frekuensi clock, ukuran register internal, apakah instruksi memproses semua register secara merata, dll. Untuk banyak desain sistem tertanam yang memerlukan prosesor, tujuannya bukan untuk memilih prosesor tercepat, namun untuk memilih prosesor dan subsistem I/O yang dapat menyelesaikan pekerjaannya. Performa prosesor memenuhi kebutuhan sistem dan memiliki margin tertentu, namun tidak perlu memilihnya terlalu tinggi. Indikator teknis. Saat ini, banyak prosesor tertanam mengintegrasikan fungsi perangkat periferal, sehingga mengurangi jumlah chip dan mengurangi biaya pengembangan keseluruhan sistem. Hal pertama yang dipertimbangkan pengembang adalah apakah beberapa perangkat keras yang dibutuhkan sistem dapat dihubungkan ke prosesor tanpa logika kombinatorial yang berlebihan. Kedua, pertimbangkan beberapa chip pendukung prosesor, seperti pengontrol DMA, manajer memori, pengontrol interupsi, perangkat serial, jam, dll. Keakraban pengembang dengan prosesor berarti bahwa pengembang proyek perlu melakukan trade-off antara biaya prosesor itu sendiri dan biaya pengembangan.

Apakah fungsi I/O prosesor memenuhi kebutuhan sistem, yaitu banyak prosesor menyediakan perangkat eksternal internal untuk mengurangi jumlah chip dan mengurangi biaya. Alat pendukung perangkat lunak yang relevan untuk prosesor, yaitu apakah prosesor tersebut memiliki dukungan lengkap untuk sistem operasi tertanam, bahasa pemrograman dan alat pengembangan, dll.

Proses debug prosesor mengacu pada apakah prosesor mengintegrasikan fungsi debugging, seperti apakah prosesor tersebut mendukung JTAG, BDM, dan metode debugging lainnya. Pabrikan prosesor mendukung kredibilitas. Saat memilih prosesor tertentu selama siklus hidup produk, perancang harus memastikan bahwa prosesor tersebut memiliki persediaan yang cukup, dukungan teknis, dll., dan konsumsi daya prosesor yang rendah.

Pasar mikroprosesor tertanam terbesar dan paling cepat berkembang adalah produk elektronik konsumen seperti perangkat genggam, buku catatan elektronik, PDA, ponsel, navigator GPS, dan peralatan rumah pintar. Mikroprosesor yang dibeli dalam produk ini biasanya memiliki persyaratan kinerja yang tinggi. konsumsi daya rendah. Banyak produsen CPU telah memasuki bidang ini.

(3) Tindakan pencegahan untuk desain perangkat keras. Pertama, bagi perangkat keras menjadi beberapa komponen atau modul dan gambar diagram blok koneksi komponen atau modul tersebut. Kedua, menyempurnakan setiap modul dan membagi sistem menjadi bagian-bagian yang lebih mudah dikelola dan dapat diimplementasikan secara mandiri. Biasanya, beberapa fungsi sistem dapat diimplementasikan baik dalam perangkat lunak maupun perangkat keras. Tidak ada metode terpadu yang memandu perancang dalam menentukan alokasi fungsi perangkat lunak dan perangkat keras, namun trade-off antara kinerja dan biaya dapat dilakukan berdasarkan daftar tersebut. kendala. Saat merancang antarmuka antara perangkat lunak dan perangkat keras, perancang perangkat keras dan perancang perangkat lunak perlu bekerja sama untuk menyelesaikannya. Desain antarmuka yang baik dapat memastikan bahwa perangkat keras tersebut sederhana dan mudah diprogram. Hal-hal berikut perlu diperhatikan saat mendesain.

  • Port I/O: Daftar semua port perangkat keras, alamat port, atribut port, arti perintah dan urutan yang digunakan, port
    status dan makna.
  • Register perangkat keras: Untuk setiap register, rancang alamat register, alamat bit register dan arti setiap bit, dan
  • Deskripsi pembacaan dan penulisan register, persyaratan dan petunjuk waktu penggunaan register ini.
  • Pemetaan memori: Alamat memori bersama dan I/O yang dipetakan memori. Untuk setiap pemetaan memori, urutan baca/tulis dan alokasi alamat setiap operasi I/O dijelaskan.
  • Interupsi Perangkat Keras: Cara menggunakan interupsi perangkat keras, mencantumkan nomor interupsi perangkat keras yang digunakan dan peristiwa perangkat keras yang ditetapkan.
  • Alokasi ruang memori: Daftar ukuran ruang dan lokasi yang ditempati oleh program dan data dalam sistem, serta jenis memori dan metode akses, dll.

Singkatnya, perancang perangkat keras harus memberikan informasi lebih banyak dan lebih rinci kepada perancang perangkat lunak untuk memfasilitasi desain dan pengembangan perangkat lunak.

3.Desain subsistem perangkat lunak
Menurut dokumen spesifikasi pada tahap analisis persyaratan, tentukan model perhitungan sistem dan lakukan desain yang masuk akal pada bagian perangkat lunak.
(1) Pemilihan sistem operasi. Saat memilih sistem operasi tertanam, Anda perlu mempertimbangkan banyak aspek:
Fungsi sistem operasi. Pilih produk sistem operasi berdasarkan fungsi sistem operasi yang diperlukan oleh proyek. Pertimbangkan apakah sistem mendukung semua atau sebagian fungsi sistem operasi, apakah mendukung sistem file, antarmuka manusia-mesin, apakah itu sistem waktu nyata. atau sistem pembagian waktu, dan apakah sistem tersebut dapat dipotong.

Pemilihan alat pendukung pengembangan. Beberapa sistem operasi real-time (rtos) hanya mendukung alat pengembangan vendor sistem. Dengan kata lain, Anda juga harus mendapatkan compiler, debugger, dll dari vendor sistem operasi. Beberapa sistem operasi banyak digunakan dan alat pihak ketiga tersedia, sehingga pilihannya lebih luas. Betapa mudahnya melakukan porting sistem operasi. Porting sistem operasi hingga perangkat keras merupakan masalah penting. Ini merupakan faktor kunci terkait apakah keseluruhan sistem dapat diselesaikan sesuai jadwal. Oleh karena itu, sistem operasi dengan tingkat portabilitas yang tinggi harus dipilih untuk menghindari berbagai kesulitan yang disebabkan oleh sulitnya porting sistem operasi ke perangkat keras dan mempercepat kemajuan pengembangan. dari sistem. Apa saja kebutuhan memori sistem operasi. Pertimbangkan apakah ram atau eeprom tambahan diperlukan untuk memenuhi kebutuhan memori sistem operasi yang lebih besar. Beberapa sistem operasi memiliki persyaratan memori spesifik target. Seperti tornado/vxworks, pengembang dapat mengalokasikan sumber daya yang dibutuhkan sesuai dengan kebutuhan aplikasi daripada mengalokasikan sumber daya untuk sistem operasi. Pengembang dapat memilih hingga 80 konfigurasi berbeda, mulai dari desain tertanam yang memerlukan memori beberapa kilobyte hingga aplikasi real-time kelas atas yang kompleks yang memerlukan lebih banyak fungsionalitas sistem operasi.

Paket tambahan sistem operasi. Apakah itu berisi komponen perangkat lunak yang diperlukan, seperti tumpukan protokol jaringan, sistem file, driver untuk berbagai periferal yang umum digunakan, dll. Seberapa real-time sistem operasinya? Real-time dibagi menjadi soft real-time dan hard real-time. Beberapa sistem operasi tertanam hanya dapat memberikan kinerja real-time yang lembut. Misalnya, Microsoft Windows CE 2.0 adalah sistem operasi real-time 32-bit, kompatibel dengan Windows, mikrokernel, dan dapat diskalakan yang dapat memenuhi kebutuhan sebagian besar sistem operasi tertanam dan non-tertanam. aplikasi.Namun, kinerja real-time tidak cukup kuat dan ini merupakan operasi tertanam real-time yang lunak.
sistem operasi. Seberapa fleksibel sistem operasinya? Apakah sistem operasi dapat disesuaikan, yaitu apakah fungsi sistem dapat disesuaikan dengan kebutuhan sebenarnya. Beberapa sistem operasi memiliki kemampuan penyesuaian yang kuat, seperti linux tertanam, tornado/vxworks, dll.

(2) Pilihan bahasa pemrograman. Saat memilih bahasa pemrograman, Anda juga perlu mempertimbangkan banyak aspek:

Keserbagunaan. Dengan terus berkembangnya teknologi mikroprosesor, fungsinya menjadi semakin terspesialisasi dan jenisnya semakin banyak. Namun, berbagai jenis mikroprosesor memiliki bahasa rakitan khusus. Hal ini menimbulkan hambatan besar bagi pengembang sistem, membuat pemrograman sistem menjadi lebih sulit dan penggunaan kembali perangkat lunak tidak mungkin dicapai. Bahasa tingkat tinggi umumnya memiliki lebih sedikit kontak dengan struktur perangkat keras mesin tertentu ​tersedia untuk sebagian besar mikroprosesor. Dukungan yang baik dan fleksibilitas yang baik.

portabilitas. Karena bahasa assembly berkaitan erat dengan mikroprosesor tertentu, program yang dirancang untuk mikroprosesor tertentu tidak dapat langsung ditransplantasikan ke mikroprosesor lain dengan tipe berbeda. Oleh karena itu, portabilitasnya buruk. Bahasa tingkat tinggi umum untuk semua mikroprosesor, sehingga program dapat berjalan pada mikroprosesor yang berbeda dan lebih portabel. Ini adalah dasar untuk penggunaan kembali perangkat lunak. efektivitas. Secara umum, semakin tinggi tingkat bahasanya, semakin besar kompiler dan overhead, serta semakin besar dan lambat aplikasinya. Namun, hanya mengandalkan bahasa tingkat rendah, seperti bahasa assembly, untuk mengembangkan aplikasi akan menimbulkan masalah seperti pemrograman yang rumit dan siklus pengembangan yang panjang. Oleh karena itu, ada trade-off antara waktu pengembangan dan kinerja runtime.

Pemeliharaan. Bahasa tingkat rendah seperti bahasa assembly tidak dapat dipertahankan. Program bahasa tingkat tinggi seringkali memiliki desain modular, dan antarmuka antara setiap modul bersifat tetap. Oleh karena itu, ketika terjadi masalah pada sistem, masalah tersebut dapat dengan cepat ditemukan pada modul tertentu dan diselesaikan secepatnya. Selain itu, desain modular juga memfasilitasi perluasan dan peningkatan fungsi sistem.
Kinerja dasar. Ada banyak jenis bahasa yang digunakan dalam proses pengembangan sistem tertanam. Bahasa tingkat tinggi yang lebih banyak digunakan antara lain Ada, C/C++, Modula-2 dan Java, dll. Bahasa Ada didefinisikan secara ketat, mudah dibaca dan dipahami, serta memiliki dukungan program perpustakaan yang kaya. Saat ini, bahasa Ada banyak digunakan di bidang pertahanan, penerbangan, dirgantara, dan bidang terkait lainnya, dan masih akan menempati posisi penting dalam bidang ini di masa depan. . Bahasa C memiliki dukungan program perpustakaan yang luas dan merupakan bahasa pemrograman yang paling banyak digunakan dalam sistem tertanam. Bahasa ini akan tetap menempati posisi penting dalam bidang aplikasi sistem tertanam untuk waktu yang lama. C++ merupakan bahasa pemrograman berorientasi objek yang juga banyak digunakan dalam desain sistem tertanam, seperti GNU C++. Visual C++ adalah lingkungan pengembangan terintegrasi yang mendukung pemrograman visual dan banyak digunakan dalam pengembangan program GUI. Namun, dibandingkan dengan C++, kode target C++ seringkali lebih besar dan lebih kompleks. Faktor ini harus dipertimbangkan sepenuhnya dalam aplikasi sistem tertanam.

(3) Proses pengembangan perangkat lunak. Proses pengembangan perangkat lunak tertanam berbeda dengan proses pengembangan perangkat lunak umum pada umumnya. Proses ini terutama mencakup langkah-langkah berikut:

  • Pilih bahasa pengembangan dan bangun lingkungan lintas pengembangan;
  • Tulis kode sumber sesuai dengan instruksi desain terperinci, kompilasi silang dan tautan;
  • Relokasi dan pengunduhan kode objek;
  • Men-debug dan memverifikasi fungsi perangkat lunak pada host atau mesin target;
  • Lakukan optimasi kode.

(4) Dokumen pengembangan perangkat lunak. Dalam proses pengembangan dan desain produk tertanam, tahap pengembangan menyelesaikan implementasi produk sistem. Tahap ini juga memerlukan penyelesaian serangkaian dokumen. Dokumen-dokumen ini sangat penting untuk menyelesaikan desain dan pemeliharaan produk , tugas teknis, dll. dokumen, laporan rencana teknis, spesifikasi produk, kondisi teknis, instruksi desain, laporan pengujian, laporan ringkasan, dll.

12.7.8 Integrasi dan pengujian sistem

Biasanya pengujian sistem tertanam terutama mencakup tiga bagian: pengujian perangkat lunak, pengujian perangkat keras, dan pengujian unit. Pengujian perangkat keras sistem umum mencakup pengujian keandalan dan pengujian kompatibilitas elektromagnetik. Saat ini terdapat standar wajib domestik dan internasional untuk kompatibilitas elektromagnetik.

Metode dan prinsip pengujian perangkat lunak sistem tertanam pada dasarnya sama dengan pengujian perangkat lunak umum. Saat menguji perangkat lunak, contoh pengujian atau urutan pengujian umumnya diperlukan. Ada dua sumber urutan: satu dirancang oleh pengguna, dan yang lainnya adalah urutan tes standar. Apa pun jenis instance pengujiannya, instance tersebut harus dapat menemukan lebih banyak kesalahan dengan probabilitas tinggi, namun terdapat beberapa perbedaan dalam konten pengujian:
(1) Perangkat lunak tertanam harus berjalan stabil untuk waktu yang lama.
(2) Perangkat lunak yang tertanam umumnya tidak sering mengalami peningkatan versi.
(3) Perangkat lunak tertanam biasanya digunakan dalam aplikasi penting.
(4) Perangkat lunak yang tertanam harus bertanggung jawab atas kegagalan dan keandalan produk bersama dengan perangkat keras yang tertanam.
(5) Kondisi dunia nyata tidak sinkron dan tidak dapat diprediksi, membuat pengujian simulasi menjadi sangat sulit.
Karena perbedaan ini, pengujian perangkat lunak sistem tertanam terutama berfokus pada empat aspek berbeda berikut:
(1) Karena waktu nyata dan simultanitas sulit dipenuhi pada saat yang sama, sebagian besar pengujian berfokus pada pengujian waktu nyata.
(2) Kebanyakan sistem real-time memiliki keterbatasan sumber daya dan oleh karena itu memerlukan lebih banyak pengujian kinerja dan kegunaan.
(3) Cakupan kode dapat diuji menggunakan alat pelacakan waktu nyata khusus.
(4) Tingkat pengujian keandalan jauh lebih tinggi dibandingkan perangkat lunak umum.
Selain itu, pengujian kinerja juga merupakan salah satu aktivitas pengujian terpenting yang perlu diselesaikan dalam merancang sistem tertanam, dan memiliki dampak yang menentukan pada sistem tertanam.
Karena sifat khusus dari sistem tertanam, sistem memiliki berbagai platform perangkat keras dan platform perangkat lunak, yang masing-masing dirancang khusus untuk aplikasi yang berbeda. Oleh karena itu, perangkat lunak aplikasi jarang bersifat universal di antara berbagai platform, dan sistem tertanam Kecepatan pembaruannya relatif cepat. Untuk melindungi investasi yang ada, memanfaatkan sepenuhnya sumber daya perangkat lunak yang ada, dan mempercepat pengembangan produk, transplantasi perangkat lunak menjadi sangat sering dilakukan di bidang tertanam.