Crate c2a_core

source ·
Expand description

§Core of Command Centric Architecture

§C2A

  • Command Centric Architecture
  • OBC 搭載フライトソフトウェアフレームワーク
  • 本リポジトリは, ArkEdge Space Inc. による C2A の先行開発のため,ut-issl/c2a-core v3.10.0 から fork したもの
  • v3 系列の開発は ut-issl/c2a-core で引き続き行われる

§C2A core

  • 各 C2A で共通利用される C2A の中核部のコード
  • 基本的には,各々の C2A user repository (サンプル: TBW) にて, git submodule で参照される.
  • core 開発のための最小限の user 部は examples にあり,これを用いてビルドし,検証する.

§ドキュメント

  • ドキュメント: https://github.com/arkedge/c2a-core/tree/main/docs
  • リファレンス (TBD): https://github.com/ut-issl/c2a-reference
  • Requirements
  • CHANGELOG

§開発

§セットアップ

  1. clone 後, setup.bat or setup.sh を実行

§Kanban (開発マイルストーンなど)

  • https://github.com/orgs/arkedge/projects/43/views/1

§SILS (Software-In-the-Loop-Simulation) 環境

  • C2A は,フライトソフトウェアがそのまま実行できる SILS 環境を構築できる.
  • つまり,ターゲットの OBC 上で動くソフトウェアが, PC などの上で,そのままエミュレートできる.
  • C2A の SILS runtime として,以下のような実装が存在する.
    • c2a-dev-runtime
      • 開発用の SILS runtime.これが導入済みの C2A user は基本的に cargo run すれば動作する.
      • ドキュメント: docs/sils/c2a_dev_runtime.md
    • S2E
      • 宇宙環境シミュレータ.元々の SILS runtime 実装であり,姿勢制御モジュールなど,宇宙環境模擬が必要な C2A user についてはこちらを用いて検証を行う.
      • 最小限の SILS-S2E は S2E User for C2A Core で実行可能.
  • examples の C2A user は c2a-dev-runtimeS2E User for C2A Core での模擬に対応.
  • examples/mobc(MOBC: Main OBC) と examples/subobc(非 MOBC)を SILS 環境で動作させて接続させることで,C2A 間通信の模擬・検証も行うことができる.

§テスト

  • 特定の user を仮定しないと,各種パラメタが確定しないため, examples/mobc でテストする.
  • C2A 間通信に関連する部分のテストのみは examples/subobc を用いる.
  • 詳細は test 参照.

§ブランチ

  • main: リリース版(詳細
  • feature/* : 開発ブランチ
  • hotfix/* : 重大バグ修正用ブランチ

§採用実績・動作実績

C2A Core の採用実績のある衛星 OBC や動作実績のあるボードの情報をまとめる.

NameSatellite   Lead Institution   Launch / DeployCPU   Clock             ROM                    RAM                  NVRAM                Storage                  Interface          Reference
OBC (2U)MAGNARO (Tigris)Inamori Lab. at Nagoya University2022/10/12STMicroelectronics STM32F490 MHz2 MiB internal ROM384 KiB internal RAM, 500 KiB external SRAM524 KiB MRAM, 131 KiB EEPROM16 GB SD cardUART, SPI, I2C, GPIO, ADC, DCMI1
OBC (1U)MAGNARO (Piscis)Inamori Lab. at Nagoya University2022/10/12STMicroelectronics STM32F445 MHz2 MiB internal ROM384 KiB internal RAM, 500 KiB external SRAM524 KiB MRAM, 131 KiB EEPROM16 GB SD cardUART, SPI, I2C, GPIO, ADC, DCMI1
MOBCSPHERE-1 EYESony Group Corporation, ISSL at the University of Tokyo2023/01/03Renesas Electronics SH-2A200 MHz2.5 MiB internal ROM128 KiB internal RAM, 8 MiB external SRAM2 MiB MRAM2 GiB NAND flash memoryUART (RS422, LVTTL), CCSDS (LVTTL), GPIO (LVTTL), ADC
AOBCSPHERE-1 EYESony Group Corporation, ISSL at the University of Tokyo2023/01/03Microchip Technology PIC32MX780 MHz512 KiB internal ROM128 KiB internal RAM512 KiB FRAMNoneUART (RS422, RS485, LVTTL), SPI, I2C, GPIO (LVTTL), ADC
TOBCSPHERE-1 EYESony Group Corporation, ISSL at the University of Tokyo2023/01/03Microchip Technology PIC32MX730 MHz512 KiB internal ROM128 KiB internal RAMNoneNoneUART (LVTTL), I2C, GPIO (LVTTL), ADC
AOBCOPTIMAL-1ArkEdge Space Inc.2023/01/06
MOBCONGLAISATISSL at the University of Tokyo-Renesas Electronics SH-2A200 MHz2.5 MiB internal ROM128 KiB internal RAM, 8 MiB external SRAM2 MiB MRAM2 GiB NAND flash memoryUART (RS422, LVTTL), CCSDS (LVTTL), GPIO (LVTTL), ADC1
AOBCONGLAISATISSL at the University of Tokyo-Microchip Technology PIC32MX780 MHz512 KiB internal ROM128 KiB internal RAM512 KiB FRAMNoneUART (RS422, RS485, LVTTL), SPI, I2C, GPIO (LVTTL), ADC1
TOBCONGLAISATISSL at the University of Tokyo-Microchip Technology PIC32MX730 MHz512 KiB internal ROM128 KiB internal RAMNoneNoneUART (LVTTL), I2C, GPIO (LVTTL), ADC1

§関連リンク

§C2A 関連ツール

  • https://github.com/ut-issl/tlm-cmd-db
  • https://github.com/ut-issl/python-wings-interface
  • https://github.com/ut-issl/s2e-user-for-c2a-core
  • https://github.com/arkedge/c2a-tlmcmddb
  • https://github.com/arkedge/c2a-devtools
  • https://github.com/arkedge/workflows-c2a
  • https://github.com/arkedge/gaia
  • https://github.com/arkedge/c2a-pytest-gaia
  • https://github.com/arkedge/kble

§User 実装例

  • https://github.com/arkedge/c2a-user-for-raspi

§関連 crate

  • https://crates.io/crates/c2a-core (本リポジトリを crate 化したもの)
  • https://crates.io/crates/tlmcmddb
  • https://crates.io/crates/tlmcmddb-cli
  • https://crates.io/crates/tlmcmddb-csv

  1. Ryo Suzumoto, et al. Improvement of C2A (Command-Centric Architecture) Reusability for Multiple Types of OBCs and Development of Continuous Integration Environment for Reliability of Flight Software. 33rd International Symposium on Space Technology and Science, 2022-f-58, 2022. 

Modules§

Constants§

Functions§