1st Indonesian Student Conference on Satellite, Surabaya, December 17, 2011.
Disain & Implementasi Command & Data Handling System (CDHS) Pada Satelit IiNUSAT-1 MS. Hendriyawan A.1, Thomas Sri Widodo2, Litasari3 1,2,3
1
Jurusan Teknik Elektro dan Teknologi Informasi, Universitas Gadjah Mada Jl. Grafika No 2, Jogjakarta 55281
[email protected] [email protected] [email protected]
Abstraksi—Pada wahana satelit nano terjadi banyak proses dalam bentuk tugas yang harus diselesaikan agar misi utama bisa tercapai. Semakin banyak proses yang terjadi yang melibatkan komunikasi antar sub-sistem penyusun, maka membutuhkan pengendalian proses oleh sebuah unit yang disebut sebagai command & data handling system (CDHS). Subsistem CDHS berperan dalam mengatur lalu-lintas komunikasi data antar sub-sistem penyusun baik berupa informasi hasil akuisisi maupun perintah yang harus dikerjakan ke/dari stasiun bumi sesuai misi yang diemban. Dengan menggunakan mikroprosesor ARM 32-bit yang memiliki kemampuan komputasi yang cepat sangat menentukan kehandalan kinerja CDHS. Untuk mendukung operasi penanganan tugas yang kritis, dibutuhkan rancangan arsitektur perangkat keras meliputi jenis mikroprosesor utama, jalur komunikasi antar sub-sistem dan redundansi. Secara perangkat lunak, yaitu menerapkan RTOS (real time operating system) untuk mengelola tugas yang kritis secara realtime dengan waktu latensi seminimal mungkin dan menerapkan algoritma deteksi kesalahan (error detection) untuk memastikan komunikasi data berlangsung dengan benar. Kata kunci: Mikroprosesor ARM 32-bit, Redundansi, Real Time Operating System (RTOS), Error Detection.
I. PENDAHULUAN Satelit IiNUSAT-1 merupakan subyek penelitian bersama yang dijalankan oleh 6 institusi pendidikan yaitu: UGM, UI, ITB, ITS, PENS, ITT TELKOM, dan 1 institusi pemerintah yaitu: LAPAN, dan tergabung dalam bentuk konsorsium bernama INSPIRE (Indonesian Nano-Satellite Platform Initiative for Research and Education) [1]. Satelit IiNUSAT-1 tersusun dari beberapa sub-sistem yang saling terintegrasi, salah satunya adalah CDHS (command data handling system). CDHS berfungsi sebagai pengendali keseluruhan proses pada satelit dengan cara berkomunikasi dengan sub-sistem lain. Setiap sub-sistem yang terhubung dengan CDHS merepresentasikan tugas yang harus selesaikan secara realtime, untuk itu CDHS harus menyelesaikan tugas berdasarkan jadwal (scheduler) maupun pelayanan interupsi (interrupt driven) secepat mungkin tanpa ada kesalahan. Sehingga dibutuhkan rancangan baik perangkat lunak maupun perangkat keras dalam membangun sub-sistem CDHS. Ada 2 aspek yang dibutuhkan dalam merancang CDHS, yaitu perangkat keras dan perangkat lunak. Pada rancangan perangkat keras terdapat beberapa pertimbangan dalam
merancang, pertama yaitu menentukan jenis mikroprosesor untuk pengendali utama [2] yang akan digunakan ditinjau dari jumlah tugas yang harus dilaksanakan secara realtime serta daya tahannya terhadap potensi gangguan radiasi angkasa [3] berdasarkan hasil pengujian maupun dari pengalaman yang sudah menggunakannya. Kedua yaitu metode komunikasi dengan sub-sistem yang lain (electronic power sub system [EPS], telemetry & telecommand [TTC], payload dan attitude determination & control system [ADCS]) apakah digunakan mode komunikasi bersama (shared bus) atau peer to peer [4]. Ketiga yaitu menyediakan pengendali cadangan jika pengendali utama gagal melakukan tugas, konsep redundansi ini bisa diterapkan dalam konfigurasi COLD Redundant maupun HOT redundant [4]. Pada perancangan perangkat lunak terdapat pertimbangan dalam merancang, pertama yaitu menerapkan sistem operasi pada pengendali utama yang bekerja secara real time dalam mengelola semua proses yang ada baik keluar maupun masuk untuk menyelesaikan tugas. Pemilihan jenis RTOS didasarkan pada kebutuhan sumber daya (resource) pada mikroprosesor yang digunakan, jenis preemptive maupun cooperative [5]. Kedua yaitu menerapkan algoritma deteksi kesalahan pada komunikasi data antara CDHS dengan sub-sistem yang lain. Deteksi kesalahan merupakan upaya untuk mencegah interpretasi yang salah oleh sebuah sistem dari data yang diterimanya, algoritma deteksi kesalahan yang umum digunakan adalah cyclic redundancy check (CRC) dengan menerapkan prinsip polynomial yang mudah diterapkan dan handal dalam mendeteksi kesalahan [6]. Dengan mengetahui adanya kesalahan pada paket data yang diterima, bisa dilakukan koordinasi 2 arah untuk mendapatkan kembali data yang benar, atau bahkan bisa dilakukan koreksi dengan algoritma yang lain. Pada paper ini, konsep CDHS menggunakan mikroprosesor jenis ARM 32-bit Cortex M3 sebagai pengendali utama yang harganya cukup murah jika dibandingkan dengan kemampuan yang dimiliki, baik dalam hal kecepatan maupun fasilitasnya. Dalam menyelesaikan semua tugas secara real time digunakan RTOS jenis preemptive untuk mengelola sumber daya/fasilitas dari mikroprosesor pengendali utama. Operasi yang dijalankan oleh RTOS pada dasarnya ada 2 hal yaitu polling berupa tugas-tugas yang sudah terjadwal seperti housekeeping, data logging dan heart beating, dan interrupt driven berupa permintaan layanan informasi kondisi satelit maupun kendali
1st Indonesian Student Conference on Satellite, Surabaya, December 17, 2011. sikap dari stasiun bumi. CDHS menggunakan 4 jalur komunikasi peer to peer jenis serial tak sinkron (UART) untuk berhubungan dengan 4 sub-sistem yang lain (EPS-TTCPAYLOAD-ADCS). Metode deteksi kesalahan CRC diterapkan pada setiap komunikasi data serial untuk menjamin tidak terjadinya eksekusi perintah yang salah atau interpretasi data akuisisi yang salah. Implementasi rancangan akan dibahas pada bagian 2. II. KONSEP RANCANGAN SISTEM Rancangan CDHS yang diajukan dapat dilihat pada gambar 1. Sistem tersusun dari beberapa bagian, yaitu satu pengendali utama berbasis mikrokontroler ARM 32-bit Cortex M3, driver komunikasi RS-232, sensor suhu, sensor arus, sensor tegangan dan external storage. A. Mikrokontroler pada CDHS Mikrokontroler yang digunakan adalah LPC1769 produksi NXP yang sudah melewati beberapa tahap pengujian standar militer sehingga sudah layak dijadikan sebagai pengendali utama CDHS pada satelit [7]. Terdapat banyak fasilitas yang bisa digunakan sesuai misi yang dijalankan, yaitu tersedia empat jalur komunikasi serial (USART) secara mandiri (bukan hasil multiplekser) yang mampu bekerja dengan kecepatan hingga 115200 bps, sehingga mampu melayani komunikasi data full duplex kecepatan tinggi dan akses empat jalur komunikasi bisa dilakukan secara real time tanpa terganggu adanya mutual exclusion (mutex) seperti pada jalur komunikasi bersama (I2C dan CAN) [8]. Selain itu, mikrokontroler tersebut juga menyediakan fasilitas ADC 12bit yang bisa digunakan untuk proses akuisisi data analog, seperti suhu, arus dan tegangan CDHS yang bisa digunakan untuk mengukur kondisi lingkungan dan kesehatan sistem.
penanganan komunikasi serial untuk setiap jalur komunikasi, hal ini bertujuan untuk menghindari terjadinya mutex pada jalur komunikasi serial, sehingga akan meningkatkan bandwith komunikasi antara CDHS dengan sub-sistem lain. Implementasi deteksi kesalahan berupa fungsi yang akan digunakan pada setiap proses komunikasi data serial untuk memeriksa kesalahan paket data yang masuk dan keluar. B. Real Time Operating System (RTOS) Skema kerja RTOS pada CDHS yang terjadwal secara garis besar dapat dilihat pada gambar 2. Terdapat beberapa tugas terjadwal yang dikerjakan oleh RTOS, setiap tugas memiliki waktu penyelesaian yang berbeda-beda tergantung pada banyaknya proses yang dikerjakan. Dapat dilihat bahwa tugas mengumpulkan data housekeeping dari sub-sistem selain CDHS (task2,3,4,5) bisa didapatkan tanpa saling menunggu karena bisa dilakukan secara serentak oleh RTOS. Untuk task6 dan task7 akan selesai jika task2,3,4,5 juga selesai. Untuk task8 berfungsi sebagai generator detak (heart beat) untuk mereset nilai watch dog timer (WDT) sebagai penanda untuk unit redundant bahwa kendali utama masih bekerja dengan baik.
Task-8 Heart Beating
Task-1 Housekeeping CDHS
Task-2 Housekeeping EPS
Task-7 Transmitting BEACON
RTOS
Task-3 Housekeeping TTC subsys.
Task-6 Housekeeping Data Logging
Task-5 Housekeeping ADCS
Task-4 Housekeeping Payload subsys.
Deteksi Error (CRC)
EPS
RS232
UART0
ADC0
Sensor V
TTC
RS232
UART1
ADC1
Sensor I
Gambar 2. Skema Kerja RTOS pada CDHS
RTOS PYL
RS232
ADCS
RS232
UART2
I2C
UART3
SPI
Sensor T
Storage
CDHS based on uC 32-bit ARM Cortex M3 LPC1769
Gambar 1. Skema Kerja CDHS
Seluruh proses yang dikerjakan oleh RTOS dijadwal dengan kecepatan yang ditentukan dari tick time yang digunakan [5]. Pada umumnya digunakan 10 mdetik untuk menjamin hasil eksekusi secara real time yang diperoleh dari timer internal mikrokontroler. Mikrokontroler berkomunikasi dengan subsistem lain menggunakan port serial UART secara terpisah. Sehingga dalam penerapan RTOS akan dibuat tugas
C. Konsep Redundansi CDHS memiliki fungsi yang sangat penting pada operasional satelit dan tidak boleh terjadi kegagalan sistem yang fatal, sehingga harus tersedia sistem cadangan yang bisa menggantikan pengendali utama dalam bekerja [9]. Pada gambar 3 dapat dilihat skema redundansi CDHS. sistem redundansinya menggunakan jenis COLD yang tidak menyediakan image memory dari proses yang berlangsung sebelumnya, dan ini merupakan kelemahan dari sistem ini. Namun dari sisi lain memiliki kemudahan implementasi pada satelit dengan misi sederhana. Sistem cadangan secara normal dalam kondisi sleep sehingga tidak menghabiskan daya yang besar dan akan terbangun jika sistem utama gagal melakukan prosedur standar. Kegagalan sistem utama dideteksi oleh
1st Indonesian Student Conference on Satellite, Surabaya, December 17, 2011. sistem cadangan dengan menggunakan output watch dog timer (WDT) yang nilainya selalu di reset oleh detak aktifitas (heart beat) dari sistem utama dengan periode konstan. Jika sistem utama berhenti mengeluarkan detak aktifitas maka WDT akan terpicu dan membangunkan sistem cadangan untuk menggantikan sistem utama.
Start
Initializing
Wakeup
Redundant Status: Inactive
Redundant Status: Active No
Sleep
Switch communication bus to redundant system
Heartbeat Detected ?
Running RTOS
Yes
No Switch communication bus to main system
Heartbeat Detected ?
Yes
Gambar 4. Diagram Alir Kerja Sistem Cadangan.
Gambar 3. Skema COLD Redundant pada CDHS
Alur kerja sistem cadangan bisa dilihat pada gambar 4. Secara normal, kondisi sistem cadangan adalah sleep dan akan terbangun jika mendapatkan signal wakeup dari WDT sebagai indikasi sistem utama yang gagal. Dalam konsep ini tidak ada image memory dari proses terakhir sistem utama yang digunakan oleh sistem cadangan karena memang tidak tersedia, hal ini akan mengakibatkan kehilangan informasi status proses terbaru maupun data terbaru yang diterima oleh sistem utama dan itu adalah kelemahan dari model ini. Namun kehilangan data dari proses yang belum selesai pada sistem utama karena gagal bekerja juga akan dialami oleh CDHS dengan sistem cadangan yang menggunakan image memory, dengan asumsi terjadi kegagalan yang fatal, misalkan terjadi shut down secara mendadak. Setelah bangun dari kondisi tidur, sistem cadangan akan mengeluarkan output bernilai HIGH pada pin acknowledge, hal ini bertujuan agar saat sistem utama kembali pulih akan menunggu sistem cadangan selesai mengerjakan semua tugas secara penuh dan bus komunikasi dikembalikan pada mode normal, hingga output acknowedge kembali bernilai LOW yang menandakan bahwa sistem utama sepenuhnya berhak mengendalikan operasi CDHS. Saat sistem cadangan aktif, seluruh komunikasi data serial dengan subsistem lain dialihkan menuju port komunikasi serial dari sistem cadangan menggunakan piranti saklar digital. Tidak ada perbedaan prosedur operasi komunikasi data antara sistem utama dengan sistem cadangan, akan tetapi identitas yang ditanam pada sistem yang akan membedakannya.
D. Deteksi Kesalahan Dengan kondisi ruang angkasa yang penuh dengan potensi gangguan berupa radiasi kosmis dan suhu, sangat mungkin mengganggu jalur komunikasi data serial antara CDHS dengan sub-sistem lain yang terhubung. Kerusakan data bisa menimbulkan interpretasi yang salah bagi unit yang menerimanya. Sehingga perlu rancangan perangkat lunak untuk mendeteksi adanya kerusakan data pada sebuah paket informasi. Pada penelitian ini menggunakan deteksi koresi dengan metode cyclic redundancy check (CRC) yang umumnya banyak digunakan pada komunikasi data karena sederhana dan handal [6]. CRC pada dasarnya menggunakan operasi pembagian polynomial dari byte data informasinya. Yang terpenting adalah antara dua sisi yang berkomunikasi memiliki kesepakatan penggunaan generator polynomial yang akan digunakan untuk mengetahui informasi aslinya agar diketahui apakah terjadi kerusakan data. Untuk menghitung polinomial dari bit data informasi ditunjukkan oleh rumus 1. Nilai pi adalah kosntanta berupa bit ke-i dari informasi [6].
u ( x ) = ∑i = 0 p i x i n
(1)
Nilai polinomial u(x) yang diperoleh selanjutnya diproses bersama polinomial generator g(x) untuk menghasilkan nilai CRC dari informasi yang akan dikirimkan s(x), bisa dilihat pada rumus 2 [6].
s ( x ) = u ( x ).x n −k + v( x )
(2)
Pada rumus 2, nilai v(x) adalah sisa dari pembagian 5 4 2 u ( x ).x n −k oleh g(x), Dalam kasus ini nilai g(x) = x + x + x + 1 yang sebelumnya sudah disepakati oleh pengirim dan
1st Indonesian Student Conference on Satellite, Surabaya, December 17, 2011. penerima [6]. Gambar 5 menunjukkan alur proses pengiriman paket informasi pada sisi pengirim yang disertai dengan CRC sebagai informasi pendukung untuk mendeteksi kesalahan oleh penerima.
III. IMPLEMENTASI SISTEM Eksperimen yang dilakukan fokus pada 2 hal, yaitu implementasi jalur komunikasi serial dengan format RS232 pada CDHS untuk berkomunikasi dua arah full duplex dengan sub-sistem yang lain (EPS-TTC-PAYLOAD-ADCS), dan implementasi RTOS dalam penanganan seluruh tugas yang harus diselesaikan oleh CDHS. A. Komunikasi Data Serial Gambar 7 menunjukkan purwarupa CDHS menggunakan mikrokontroler 32-bit ARM LPC1769 dengan clock sebesar 100MHz. Terdapat 4 jalur komunikasi serial yang bisa digunakan secara parallel. Dengan menggunakan konsep FIFO secara internal akan mecegah kehilangan data saat terjadi interupsi serial masuk pada beberapa port secara bersamaan. Dalam eksperimen ini kapasitas FIFO yang digunakan sebesar 16 karakter.
Gambar 5. Diagram Alir Pengiriman Paket Informasi
Pada sisi penerima, dengan menggunakan polinimial generator yang sama seperti pada sisi pengirim, dilakukan kalkulasi CRC dari paket data yang diterima dan kemudian membandingkannya dengan nilai CRC yang disertakan pada paket data terima. Gambar 6 menunjukkan alur proses penerimaan paket data.
Gambar 7. Purwarupa CDHS
Masing-masing port komunikasi serial menggunakan format komunikasi RS-232 tak sinkron dengan kecepatan hingga 115200 bps, 8-bit data, tidak menggunakan bit parity dan 1-bit stop. Tabel 1 menunjukkan hasil pengujian nilai error yang sudah dilakukan dengan beragam kecepatan dalam kondisi ideal tanpa ada gangguan lingkungan dengan mengirimkan data dengan lebar 100 karakter. TABEL I. UJI ERROR BAUDRATE No 1 2 3 4 5 6 7
Gambar 6. Diagram Alir Penerimaan Paket Informasi
Kecepatan (bps) 1200 2400 4800 9600 19200 38400 115200
Error (%) 0 0 0 0 0 0 0
1st Indonesian Student Conference on Satellite, Surabaya, December 17, 2011. B. Implementasi RTOS Pada eksperimen dilakukan pengamatan terhadap foot print pada memory RAM internal mikrokontroler, yang menunjukkan pemakaian memory untuk operasional. RTOS yang digunakan pada percobaan adalah CoOS dari CooCox dengan jenis preemptive. Pada tabel 2 menunjukkan penggunaan segmen memori RAM untuk operasional RTOS berdasarkan jumlah task yang dikerjakan. Pada eksperimen, setiap task hanya berisi fungsi tunda sebesar 50 * tick_time dan nilai tick time yang digunakan adalah sebesar 10mdetik. TABEL II. UJI MEMORY FOOTPRINT PADA RTOS No.
n-Task
1 2 3 4 5 6 7 8
1 Task 2 Task 3 Task 4 Task 5 Task 6 Task 7 Task 8 Task
Text Seg. (byte) 6400 6444 6488 6532 6576 6620 6664 6708
Data Seg. (byte) 12 12 12 12 12 12 12 12
BSS Seg. (byte) 2608 3120 3632 4144 4656 5168 5680 6192
TOTAL (byte) 9020 9576 10132 10688 11244 11800 12356 12912
Sesuai dengan tabel 2, setiap penambahan satu jumlah task nya mengakibatkan penambahan ruang RAM sebesar 556 byte. Jika dibandingkan dengan kapasitas RAM yang dimiliki oleh mikrokontroler LPC1769 sebesar 32Kbyte, nilai kenaikan tersebut masih sangat layak. Pada tabel 3 menunjukkan hubungan antara jumlah task yang dimiliki terhadap konsumsi daya yang dibutuhkan. Dan hasilnya menunjukkan bahwa kedua parameter tersebut tidak ada hubungan secara linier, artinya kenaikan jumlah task tidak mempengaruhi secara signifikan terhadap konsumsi daya yang digunakan. Hal ini karena dengan menggunakan metode penjadwalan oleh scheduler berdasar pada periode tick time untuk melakukan pengirisan terhadap semua task yang dikerjakan. Sehingga dalam 1 tick hanya ada 1 task.
yang bersifat modular yang membutuhkan solusi komunikasi saat terdapat jarak yang terlalu panjang dan cukup beresiko tinggi menimbulkan kerusakan data jika digunakan jenis komunikasi serial lain, misal I2C. Probabilitas terjadi kerusakan data pada komunikasi serial pasti ada, terlebih di ruang angkasa, sehingga disetiap komunikasi data serial digunakan metode deteksi kesalahan yang populer digunakan yaitu cyclic redundancy check (CRC). Semakin panjang polinomial yang digunakan maka semakin baik dalam mendeteksi kesalahan. Dengan konsep CRC yang disepakati antara pengirim dan penerima, maka kesalahan bit akan mudah dideteksi dan juga bisa diterapkan koreksi kesalahan. Dari sisi perangkat lunak digunakan real time operating system (RTOS) untuk mengelola seluruh aplikasi yang dijalankan oleh CDHS. Salah satu alasan pemilihan RTOS didasarkan pada seberapa besar ruang memory RAM yang digunakan. Dengan menggunakan RTOS, seluruh tugas dikerjakan mendekati waktu nyata sehingga tidak ada tugas maupun even masukan yang terlewatkan. REFERENCES [1]
[2] [3]
[4]
[5]
[6]
TABEL III. JUMLAH TASK VS DAYA No. 1 2 3 4 5 6 7 8
n-Task 1 2 3 4 5 6 7 8
Daya (mwatt) 384.556 402.844 384.048 388.112 383.032 403.352 393.192 385.064
IV. KESIMPULAN Pada penelitian ini, implementasi CDHS dititik beratkan pada rancangan komunikasi serial menggunakan non shared bus, yaitu konsep komunikasi parallel antara CDHS dengan 4 sub-sistem lain pada jalur yang terpisah untuk meningkatkan kinerja dan kemudahan dalam membangun komunikasi data. Dari percobaan yang dilakukan sudah berhasil dilakukan komunikasi data pada 4 port serial dengan berbagai tingkat kecepatan dan memiliki nilai error 0%. Dengan menggunakan format RS-232 sangat cocok digunakan pada wahana satelit
[7]
[8]
[9]
INSPIRE (Indonesian Nano-Satellite Platform Initiative for Research & Education). Available at: www.inspire.or.id. Last visited: November, 2011. Gerard Aalbers, Georgi N. Gaydadijev, Rouzbeh Amini, ”CDHS Design for a University Nano-Satellite”, IAC-06-B5.7.05, 2005. Jake A. Schaffner, “The Electronic System Design, Analysis, Integration, and Construction of the Cal Poly State University CP1 CubeSat”, 16th AIAA/USU Conference on Small Satellites, 2002. S. de Jong, G.T. Aalbers, J. Bouwmeester, “Improved Command And Data Handling System”, 59th International Astronautical Congress, Glasgow, Scotland, UK, 29 September - 3 October, 2008. S. Ramanarayana Reddy, “Selection of RTOS for an Efficient Design of Embedded Systems”, IJCSNS International Journal of Computer Science and Network Security, VOL.6 No.6, June 2006. P. Koopman, T. Chakravarty, “Cyclic Redundancy Code (CRC) Polynomial Selection For Embedded Networks”, The International Conference on Dependable Systems and Networks, DSN-2004. NXP Product Brochure - High performance aerospace and defense solutions. Available at: www.nxp.com/documents/.../75017008.pdf. Last visited: November, 2011. NXP Semiconductors. UM10360 - LPC17xx user manual. Available: http://ics.nxp.com/support/documents/microcontrollers/pdf/user.manual. lpc17xx.pdf. Last visited: November, 2011. David D. Stott. et.al. “The NEAR Command and Data Handling System”, Johns Hopkins Apl Technical Digest, Volume 19, Number 2. 1998.