Design and Implementation of OBCP Engine based on Lua VM for AT697F/VxWorks Platform

AT697F/VxWorks 플랫폼에서 Lua 가상머신 기반의 OBCP 엔진 설계 및 구현

  • 최종욱 (한국항공우주연구원 위성비행소프트웨어팀) ;
  • 박수현 (한국항공우주연구원 위성비행소프트웨어팀)
  • Received : 2017.09.21
  • Accepted : 2017.09.26
  • Published : 2017.09.30

Abstract

The OBCP called 'operator on board' is that of a procedure to be executed on-board, which can be easily be loaded, executed, and also replaced, without modifying the remainder of the FSW. The use of OBCP enhances the on-board autonomy capabilities and increases the robustness to ground stations outages. The OBCP engine which is the core module of OBCP component in the FSW interprets and executes of the procedures based on script language written using a high-level language, possibly compiled, and it is relying on a virtual machine of the OBCP engine. FSW team in KARI has studied OBCP since 2010 as FSW team's internal projects, and made some OBCP engines such as Java KVM, RTCS/C and KKOMA on ERC32 processor target only for study. Recently we have been studying ESA's OBCP standard and implementing Lua and MicroPython on LEON2-FT/AT697F processor target as the OBCP engine. This paper presents the design and implementation of Lua for the OBCP engine on AT697F processor with VxWorks RTOS, and describes the evaluation result and performance of the OBCP engine.

일반적으로 Operator on Board로 불리는 OBCP (On-Board Control Procedure)는 기존 탑재소프트웨어를 변경하지 않으면서 동적으로 지상 또는 온보드에서 명령과 로직이 포함된 특정 프로시저를 로딩, 언로딩 및 실행 할 수 있으며, OBCP를 통해 기존 위성의 제한된 자율성 및 강인성을 증대 시킬 수 있다. 탑재소프트웨어의 OBCP의 핵심은 OBCP 엔진이며, OBCP 엔진은 스크립트 기반의 프로시저를 해석 및 실행 할 수 있는 인터프리터 형태로 구현되어 있으며 내부적으로 가상머신을 가지고 있다. 탑재소프트웨어팀에서는 2010년부터 내부적으로 OBCP에 대해서 계속 연구를 수행하였으며 ERC32 프로세서 기반의 Java KVM, RTCS/C 및 KKOMA와 같은 자체 OBCP 엔진을 개발하였다. 최근에는 ESA OBCP 표준에 대한 연구를 계속 진행하고 있으며 LEON2-FT/AT697F 프로세서 기반에서 Lua와 MicroPython을 이용한 OBCP 엔진 연구를 진행하고 있다. 본 논문에서는 현재 가장 활발히 사용되고 있는 오픈소스 기반의 Lua를 탑재소프트웨어의 OBCP 엔진으로 사용하기 위하여 VxWorks 기반의 AT697F 프로세서에서의 설계 및 구현 방법에 대해서 기술하며, 시뮬레이터와 실제 하드웨어의 테스트 결과와 함께 성능 비교 분석을 수행한다.

Keywords

References

  1. Jean-Loup TERRAILLON, "SAVOIR Status/Reference Architecture", ESA Workshop in Avionics Data, Control and Software Systems (ADCSS), 2016.
  2. Jean-Loup TERAILLON, "SAVOIR-FAIRE Status and Perspective", ADCSS, 2010.
  3. Maria Hernek, "ESA - Execution Platform", DAta Systems In Aerospace (DASIA), 2011.
  4. M. Hiller, "Integrated Modular Avionics : SAVOIR-IMA status and progress", ADCSS, 2012.
  5. Andreas Jung, "Software Reference Architecture - Presentation of the OSRA Specification", ADCSS, 2014.
  6. ESA, "ECSS-E-ST-70-01C, Spacecraft On-Board Control Procedures", 2010.
  7. Lua, http://www.lua.org/
  8. G. M. Lautenschlager, "OBCPs - The Operator On-Board (The OBCP Concept used by ROSETTA)", DASIA, 2004.
  9. Massimo Ferraguto, "The On-Board Control Procedures Subsystem for the Herschel and Planck", Annual IEEE International Computer Software and Application Conference, 2009.
  10. Massimo Ferraguto, "Towards the Definition of ESA's Future OBCP Building Block", DASIA, 2012.
  11. A.I. Rodriiguez, "OBCP-BB GSTP Study - Requirements and Interface Definition for Future OBCP Building Block", ESTEC TEC-ED & SW Final Presentation Days, 2012.
  12. Damien G., David S., and Tiago J., "Porting of MicroPython to LEON Platforms", DASIA, 2016.
  13. M.S. Glsberg, Jim Bresler and Youngmin Cho, "The Lua Architecture", Advanced Topics in Software Engineering, 2006.
  14. R. Ierusalimschy, L. H. de Figueiredo, W. Celes, "The Implementation of Lua 5.0", 11#7, 2005, pp.1159-1176.