Categories
Mikrokontroler satelit

Real-time operating system implementation on OBC/OBDH for UGMSat-1 sequence

On-Board Computer or On-Board Data Handling (OBC/OBDH) has an important role as a manager for data housekeeping and communication handling between OBC/OBDH to its TTC (Telemetry and Telecommand) and EPS (Electronic Power System) subsystems in the satellite system. In order to operate according to the satellite sequence the RTOS (Real-Time Operating System) is implemented on the UGMSat-1. The CooCox CoOS is used as an RTOS which is has three tasks which are Condition-Check Housekeeping and Communication Task. The highest priority among the tasks on the system is Communication Task. The experiment proves that three tasks can run well with the time cycle of 2.034 30.047 and 1.017 seconds for Condition-Check Housekeeping and Communication task respectively. The result of overall experiments shows that the OBC/OBDH can manage data packets and sent them to Ground Station.

(click here for more information)

Categories
satelit

Error Detection and Correction System (EDAC) of On Board Data Handling (OBDH) in Real Time Operating System Behaviour

The satellite requires the support of a robust sub system. On Board Data Handling (OBDH) is the core function of the satellite subsystem and has to be error free in managing the operation of the satellite. It should withstand the harsh environmental conditions in space that has a lot of hazards caused by radiations. In view of these two conditions, the OBDH design should be able to manage the operation and overcome the hazards of radiation. In order to manage the operation Real Time Operating System (RTOS) was applied. RTOS was able to manage the task efficiently and effectively. In the aerospace domain, RTOS has become popular because of its strength in managing the operating system. Error Detection and Correction System (EDAC) system was applied to make OBDH more robust. This paper will discuss the implementation of the EDAC system in tandem with the RTOS behaviour to manage the operation and increase the robustness of the system. The findings show that OBDH can be programmed successfully using RTOS to handle critical and robust operations.

(the PDF is here)

Categories
Mikrokontroler

Perancangan Aplikasi Real Time (3): Sistem Preemptive Penuh

SINOPSIS

Melanjutkan artikel sebelumnya, apa yang akan dibahas kali ini adalah solusi preemptive multitasking murni atau tradisionil. Menggunakan layanan RTOS secara penuh, tidak peduli efek yang diakibatkan (memori yang rakus maupun beban kerja prosesor yg berat dan seterusnya). Ada partisi sederhana dari fungsi yang dibutuhkan untuk sejumlah tugas otonom.

APAKAH PREEMPTIVE MULTITASKING ITU?

Preemptive multitasking adalah suatu tugas atau task dimana sebuah sistem operasi menggunakan beberapa kriteria untuk menentukan berapa lama suatu tugas/task dijalankan atau mendapatkan alokasi CPU atau menggunakan sistem operasi tersebut, sebelum kemudian CPU mengerjakan tugas lain atau selanjutnya.

  • Aksi mengambil alih sistem operasi dari suatu tugas dan kemudian memberikan ke tugas yang lain disebut sebagai preempting.
  • Suatu kriteria umum dalam proses preempting menggunakan elapsed time sederhana (sistem semacam ini sering disebut menggunakan time sharing atau time slicing).
  • Dalam beberapa sistem operasi, beberapa aplikasi diberi prioritas lebih tinggi dari aplikasi lainnya, dengan demikian, program aplikasi atau tugas tersebut bisa mendapatkan potongan waktu yang lebih panjang.

IMPLEMENTASI

  • Tugas-tugas akan diblokir hingga ada suatu kejadian atau event yang membutuhkan tugas tersebut…
  • Even-even atau kejadian tersebut bisa ekternal (ada tombol yang ditekan dan lain sebagainya) atau internal (habis waktunya atau timeout dan lain sebagainya)…
  • Prioritas ditetapkan untuk masing-masing tugas tersebut, terkait dengan kebutuhan pewaktuannya…
  • Kebutuhan waktu yang ketat memiliki prioritas tertinggi!

Categories
Mikrokontroler

Perancangan Aplikasi Real Time (2): Solusi Tanpa RTOS

SINOPSIS

Melanjutkan artikel sebelumnya, perlu diketahui bahwa tidak setiap aplikasi membutuhkan sistem operasi atau tepatnya RTOS. Hmmm, jadi langsung saja, artikel ini memberikan gambaran tentang solusi tanpa menggunakan sistem operasi, yang nantinya kita evaluasi dan simpulkan baik buruknya, kelebihan kelemahannya.

Okey, take a deep breath, ambil napas yang dalem,…. Tahan…. dan jangan dikeluarkan… what?! he he he just kidding… ya silahkan dilepaskan pelan-pelan… (maksudnya supaya santai dulu relaks)

IMPLEMENTASI

Solusi yang dibahas kali ini menggunakan pendekatan kalang (loop approach), dimana setiap komponen aplikasi dinyatakan dalam bentuk fungsi yang harus dijalankan hingga selesai.

Idealnya digunakan pewaktu perangkat keras untuk melakukan penjadwalan fungsi-fungsi kontrol yang kritis. Namun, menunggu datangnya data dan perhitungan data yang begitu kompleks menyebabkan fungsi kontrol tidak cocok untuk dijalankan dalam batasan rutin layanan interupsi.

Seberapa banyak dan urutan komponen mana yang dikerjakan dalam kalang tak-hingga dapat diatur dengan memasukkan unsur prioritas, silahkan perhatikan pembahasan dalam contoh nantinya.

FUNGSI KONTROL PROSES (PLANT)

Perhatikan kode pseudo berikut…

void PlantControlCycle( void )
{
  TransmitRequest();
  WaitForFirstSensorResponse();
  if( terima data dari sensor pertama )
  {
    WaitForSecondSensorResponse();
    if( terima data dari sensor kedua )
    {
      PerformControlAlgorithm();
      TransmitResults();
    }
  }

FUNGSI ANTARMUKA PENGGUNA

Fungsi ini meliputi antarmuka keypad, LCD, komunikasi RS232 dan server WEB tertanam. Perhatikan kode pseudo berikut…

int main( void )
{
  Initialise();
  for( ;; )
  {
    ScanKeypad();
    UpdateLCD();
    ProcessRS232Characters();
    ProcessHTTPRequests();
  }
// seharusnya tidak pernah sampai disini
  return 0;
}

Ada dua asumsi: Pertama, masukan/luaran komunikasi di-buffer melalui rutin layanan interupsi, sehingga periferal yang terkait tidak perlu melakukan polling (proses menunggu terus menerus). Kedua, fungsi pemanggilan fungsi dalam kalang dikerjakan secepat mungkin sehingga semua syarat pewaktuan dipenuhi.

Categories
Mikrokontroler

Perancangan Aplikasi Real Time (1): Pendahuluan

PENDAHULUAN

Apa yang akan kita bicarakan atau bahas kali ini adalah tentang Real Time Operating System. Apaan? Real Time Operating System? Apa tuch? Oke, sabar dulu sebentar. Real Time Operating System, yang selanjutnya kita singkat saja menjadi RTOS, merupakan sistem operasi untuk aplikasi-aplikasi waktu nyata atau istilah kerennya Real Time Applications, contohnya apa saja? Ya sebagaimana kita jumpai di sekitar kita, seperti handphone (tidak harus smartphone) – bukankah tanpa sistem operasi ketika di-ON-kan tidak akan terjadi apa-apa, padahal kenyataannya HP langsung melakukan ‘booting’ (istilah dalam sistem operasi) beberapa saat, kemudian baru siap kita gunakan – ditandai dengan visualisasi pada LCD-nya, antara lain, kekuatan sinyal, sisa daya baterei, nama provider, jam, tanggal dan lain sebagainya.

Oke, untuk memulai membahas tentang perancangan aplikasi real time dengan sistem operasi, kita mulai dengan kasusnya dulu yang akan dicari solusinya…

STUDI KASUS ATAU APLIKASI

Perhatikan gambar 1 berikut ini..

Gambar 1

Aplikasi akan berjalan pada sebuah sistem (single board) yang berisikan mikrokontroler atau mikroprosesor yang harus melakukan kontrol terhadap suatu proses dan pada waktu bersamaan melakukan akuisisi dan pemantauan/pengontrolan baik secara lokal maupun jarak jauh. Sistem tersebut terdiri dari:

  • Sebuah sistem benam (embedded system) dengan kekuatan suatu mikrokontroler/mikroprosesor;
  • Dua sensor yang terhubung dengan jaringan fieldbus;
  • Sesuatu yang dikontrol (bisa apa saja, motor, pemanas dll), serta dihubungkan pada jaringan fieldbus yang sama;
  • Keypad matriks yang dibaca melalui luaran/masukan;
  • Dua buah indikator LED;
  • Sebuah penampil LCD;
  • Sebuah server web tertanam agar dapat dilakukan pengontrolan jarak jauh (melalui web atau internet);
  • Sebuah antarmuka RS232 agar dapat dihubungkan dengan suatu PDA.