衛星側 OBC(STM32)と地上局間で Space Packet と Transfer Frame を用いた TC/TM 通信を、Renode 上でエミュレートしてwebインターフェースから操作するおもちゃプロジェクトです。
🌐 API Server
/ \
/ \
/ \
/ \
💻 Operator PC 📡 Ground Station (STM32)
(Web で API にリクエスト) UART1↔UART2 中継
\
\ TCP 12346 ↔ bridge ↔ 12347()
\
🛰 Satellite (STM32)
- 目的: CCSDS 133.0-B(Space Packet)と 132.0-B(Transfer Frame)に沿った TC/TM の送受信を、STM32 同士で行う構成を再現する。
- 衛星側: STM32(OBC 役)が TC Frame を受信し、TC Packet を抽出してコマンド処理し、TM Packet/Frame を生成・送信する。
- 地上局側: STM32 が UART1↔UART2 でバイト中継のみ行い、TC/TM の組み立て・分解は行わない。
- オペレータ側: PC の Web ブラウザで APIサーバー にリクエストを送るだけ。APIサーバー が地上局へ TC を送り TM を受信し、結果を返す。
| 領域 | 技術 |
|---|---|
| プロトコル | CCSDS 133.0-B(Space Packet), 132.0-B(TM/TC Transfer Frame) |
| 衛星・地上局 | C, ARM Cortex-M4(STM32F4), Renode |
| ブリッジ | Rust(std TCP) |
| REST API | Rust(Axum, Tokio)+ C(ground_client.c を FFI で呼び出し) |
| フロント | HTML/CSS/JavaScript |
/
├── core/
│ └── ccsds.h # CCSDS ヘッダ pack/unpack 共通(133.0-B, 132.0-B)
├── satellite/ # 衛星 STM32
├── ground_station/ # 地上局 STM32
├── bridge/ # 地上局 UART2 ↔ 衛星 UART2 中継
├── api/ # REST API(Rust + C FFI)
└── web/ # Web クライアント
| 説明 | リンク |
|---|---|
| 宇宙システムのデータ構成 | https://www.meti.go.jp/shingikai/mono_info_service/sangyo_cyber/wg_seido/wg_uchu_sangyo/pdf/002_03_00.pdf |
| CCSDS Space Packet (133.0-B) | https://ccsds.org/Pubs/133x0b2e2.pdf |
| Source Packet 解説(EN Satellite) | https://ensatellite.com/ja/source-packet/ |
| Renode | https://renode.io/ |
