JAXA CCSDSで学ぶ通信規約の現状と課題

JAXAが体系的に公開している
CCSDS(Consultative Committee for Space Data Systems)
は、ISO OSI, IETF IPという硬い規格と柔らかい規格の両方を参照しており、
一部、ソースコード、状態遷移図、時系列図、刻時図などもあり、
とても勉強になる資料群である。

ブルーブック（CCSDSが推奨する技術仕様を記述した文書）：全69文書（2018年10月現在）
http://stage.tksc.jaxa.jp/ccsds/docs/doc_blue.html

全６９文書を拝見した記録をする。
なお、ISOの規格情報は１年ほど更新していない。
PDFはISO文書ではない最新文書になっている。
利用上差し支えない。
# ソースコードがついている文献
Spectral Preprocessing Transform for Multispectral and Hyperspectral Image Compression「マルチスペクトル＆ハイパースペクトル画像（3次元）圧縮のスペクトル前処理変換」 , CCSDS 122.1-B-1 ,	2017年9月 
https://public.ccsds.org/Pubs/122x1b1.pdf

```c
//F2 IWT
//For an image transformed with the IWT, the following weights should be employed, given asa function written in the C programming language (reference [C14]).

#include <stdint.h>
void iwtWeights(int32_t ntz, double weights[]) {
double L[] = {1.0, 1.5, 2.75, 5.375, 10.6875, 21.34375};
double H[] = {0.71875, 0.921875, 1.5859375,
3.04296875, 6.021484375};
int32_t N = ntz;
// Fill weights for high frequencies in each level
int currentLevel;
for (currentLevel = 0; currentLevel < 5; currentLevel++) {
int q = N / 2; // High-frequency coefficients in this level
if (q == 0) break;
N -= q;
for (int i = 0; i < q; i++) {
weights[N + i] = H[currentLevel];
}
}
// Fill weights for the low-frequency coefficients
for (int i = 0; i < N; i++) {
weights[i] = L[currentLevel];
}
}
```

```c:
//F3 POT
//For an image transformed with the POT, the following weights should be employed, given as a function written in the C programming language (reference [C14]).

#include <stdint.h>
#include <cmath.h>
void potWeights(int32_t ntz, double weights[]) {
   int32_t index = ntz - 1;
   // Calculate detail outputs for each level
   int16_t currentLevel = 0;
   int32_t bandsInThisLevel = ntz;
   int32_t bandsInThePreviousLevel = 0;
   // For each level with more than one band...
   while (bandsInThisLevel > 1) {
      int32_t operationsInThisLevel = bandsInThisLevel / 2;
      for (int32_t j = 0;  j < operationsInThisLevel;  j++) {
        // If there was an unpaired band and this is the
        // unbalanced operation that deals with it...
        if (bandsInThePreviousLevel % 2 == 1
          && ((j == 0 && currentLevel % 2 == 1)
          || (j == operationsInThisLevel - 1 && currentLevel % 2 === 0))) {
        // This is an unbalanced pairwise operation
        weights[index--] = pow(2, currentLevel - 2);
      } else {
        // This is a regular pairwise operation
        weights[index--] = pow(2, currentLevel - 1);
      }
}
// Set up next level
bandsInThePreviousLevel = bandsInThisLevel;
bandsInThisLevel = bandsInThisLevel / 2 + bandsInThisLevel % 2;
currentLevel++;
}
   // The principal output of the topmost operation
   weights[0] = pow(2, currentLevel);
}
```

# 状態遷移図、刻時図
TM Space Data Link Protocol
「TM宇宙データリンクプロトコル」, CCSDS 132.0-B-2,  2015年9月,  ISO 22645:2016 (CCSDS 132.0-B-2 September 2015) Space data and information transfer systems - TM (telemetry) space data link protocol 
http://public.ccsds.org/Pubs/132x0b2.pdf

# 時系列図
CCSDS File Delivery Protocol (CFDP) （時系列図あり）
「CCSDSファイル転送プロトコル(CFDP）」	 ,	 CCSDS 727.0-B-4	 ,
 	2007年1月, 　ISO 17355:2007 (CCSDS 727.0-B-3) 
Space data and information transfer systems -- CCSDS file delivery protocol
http://public.ccsds.org/Pubs/727x0b4.pdf

# 課題

個々の文書を体系的に解説している文書を検索中。



# 文書上の課題
## 1)SS 
Sub-State

Communications Operation Procedure-1 Issue 2
「COP-1（通信運用手順1）」, CCSDS 232.1-B-2,　2010年9月,　http://public.ccsds.org/Pubs/232x1b2.pdf
では

SS:Suspend_State

## 2)RFI
RFI: Radio Frequency Inductor, 

Radio Frequency and Modulation Systems－Part 1: Earth Stations and Spacecraft
「無線周波数・変調システム－Part 1：地上局と宇宙機」	 文書番号	 CCSDS 401.0-B-28	 
 発行年月日	2018年2月
Radio Frequency Interference

## 3) Time Code Formats
「タイムコードフォーマット」	 ,	 CCSDS 301.0-B-4	 ,
 	2010年11月, 
short name,短縮名一覧がない？　泣）


## 4)Attitude Data Messages
「姿勢データメッセージ（ADM）」	 ,	 CCSDS 504.0-B-1	 ,
 	2008年5月, 　ISO 13541:2010 (CCSDS 504.0-B-1) 
Space data and information transfer systems -- Attitude data messages
PageA-2
RTN, QSW　Radial, Transverse, Normal Orbital Frame
QSWは誤記？


## 5) CLTU
Communications Link Transmission Unit
Mission Operations Common Object Model
「ミッション運用共通オブジェクトモデル」	 文書番号	 CCSDS 521.1-B-1	 
 発行年月日	2014年2月
http://public.ccsds.org/Pubs/521x1b1.pdf

Command Link Transmission Unit

## 6) CDS
CCSDS Day Segmented Code
 文書名	Mission Operations－Message Abstraction Layer Binding to TCP/IP Transport And Split Binary Encoding
「ミッション運用－MALメッセージのTCP/IPへのバインド（対応付け）及び分割バイナリ符号化」	 文書番号	 CCSDS 524.2-B-1	 
 発行年月日	2017年11月
CCSDS Day Segmented Time Code

## 7)CA:
Certificate Authority, 

Standard Formatted Data Units－Structure and Construction Rules
「標準フォーマットデータユニット（SFDU）－構造と構成規則」	 ,	 CCSDS 620.0-B-2	 ,
 	1992年5月, ISO 12175:1994 (CCSDS 620.0-B-2:1992) 

Control Authority	

## 8)SANA
Space Assigned Numbers Authority 

 IP over CCSDS Space Links
「CCSDSスペースリンクを用いたインターネット（IP）」	 文書番号	 CCSDS 702.1-B-1	 
 発行年月日	2012年9月
Space Assigned Number Authority 

## 9) short name, 短縮名
文献によって見出しが２種類。
acronym
abbreviation

# 資料確認。正誤・新旧を記録。
DISがISとして発行されている更新は、ISOでそのままうまく繋がるため、ここには記録していない。リンクが切れていたり、古い文書へ繋がるものを一覧にしている。
古い文書にたどり着けば、新しい文書を示してくれるため、困ることはない。

## 1) ISO 15887:2013  Lossless Data Compression
URL誤
http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=70546

正
https://www.iso.org/standard/62314.html

## 2) TM Space Data Link Protocol 
「TM宇宙データリンクプロトコル」   文書番号  CCSDS 132.0-B-2  発行年月日  2015年9月

古
ISO文書化 発行済み　ISO 22645:2005 

新
ISO 22645:2016 (CCSDS 132.0-B-2 September 2015) 
Space data and information transfer systems - TM (telemetry) space data link protocol
https://www.iso.org/standard/70698.html

## 3) Space Packet Protocol 
「スペースパケットプロトコル」   文書番号 CCSDS 133.0-B-1   発行年月日  2003年9月 
http://public.ccsds.org/Pubs/133x0b1c2.pdf
ISO 22646:2005/Amd 1:2015 (CCSDS 133.0-B-1) 
https://www.iso.org/standard/68742.html



参考情報
133x0b1c2.pdfは、次の２つのcorrigendumを追加したもの。
文書の左側にcor1, cor2の記述あり。
それをamd1としてISOが発行している可能性あり。（未確認）

TECHNICAL CORRIGENDUM 1
https://public.ccsds.org/Pubs/133x0b1c2_tc1020.pdf

TECHNICAL CORRIGENDUM 2
https://public.ccsds.org/Pubs/133x0b1c2_tc1227.pdf

## 4)Encapsulation Service
「カプセル化サービス」	 文書番号	 CCSDS 133.1-B-2	
 発行年月日	2009年10月

Technical Corrigendum 2, dated April 2014

旧
ISO 10537:2010 (CCSDS 133.1-B-1)
Space data and information transfer systems -- Encapsulation service
https://www.iso.org/standard/45990.html

新
ISO 10537:2016 (CCSDS 133.1-B-2) 
Space data and information transfer systems -- Encapsulation service
https://www.iso.org/standard/71058.html

## 5) TC Synchronization and Channel Coding
「TC同期・チャネルコーディング（通信路符号化）」	 文書番号	 CCSDS 231.0-B-3	 
 発行年月日	2017年9月

旧
ISO 22642:2005 (CCSDS 231.0-B-1:2003)
Space data and information transfer systems -- TC (telecommand) synchronization and channel coding
新
ISO 22642:2015 
Space data and information transfer systems -- TC synchronization and channel coding

## 6)TC Space Data Link Protocol
「TC宇宙データリンクプロトコル」	 文書番号	 CCSDS 232.0-B-3 発行年月日	2015年9月

旧
ISO 22664:2013 (CCSDS 232.0-B-2)
Space data and information transfer systems -- TC (telecommand) space data link protocol
https://www.iso.org/standard/61746.html

新
ISO 22664:2016 (CCSDS 232.0-B-3 September 2015) 
Space data and information transfer systems -- TC (telecommand) space data link protocol
https://www.iso.org/standard/70699.html

## 7)AOS Space Data Link Protocol
「AOS（将来型宇宙機システム）宇宙データリンクプロトコル」	 文書番号	 CCSDS 732.0-B-3	
 発行年月日	2015年9月

旧
ISO 22666:2007 (CCSDS 732.0-B-2)
Space data and information transfer systems -- AOS (advanced orbiting systems) space data link protocol
https://www.iso.org/standard/44866.html

新
ISO 22666:2016 (CCSDS 732.0-B-3 September 2015) 
Space data and information transfer systems -- AOS (advanced orbiting systems) space data link protocol
https://www.iso.org/standard/70701.html


## 8)AOS Space Data Link Protocol
「AOS（将来型宇宙機システム）宇宙データリンクプロトコル」	 文書番号	 CCSDS 732.0-B-3	
 発行年月日	2015年9月

旧
ISO 22666:2007 (CCSDS 732.0-B-2)
Space data and information transfer systems -- AOS (advanced orbiting systems) space data link protocol
https://www.iso.org/standard/44866.html

新
ISO 22666:2016 (CCSDS 732.0-B-3 September 2015) 
Space data and information transfer systems -- AOS (advanced orbiting systems) space data link protocol
https://www.iso.org/standard/70701.html

## 9)SLE
旧
ISO 22670:2013 (CCSDS 911.2-B-2) 
Space data and information transfer systems -- Space link extension (SLE) -- Return-channel-frames service
https://www.iso.org/standard/61744.html

新
ISO/DIS 22670 (CCSDS 911.2-B-3) 
Space data and information transfer systems -- Space link extension (SLE) -- Return-channel-frames service specification
https://www.iso.org/standard/74555.html

# 参考資料(reference)
GitとDockerによる人，製品，作業の横顔「公開算譜は機敏だ」報告３
https://researchmap.jp/mu2ux1as4-45645/?action=multidatabase_action_main_filedownload&download_flag=1&upload_id=211247&metadata_id=25961
または
https://bit.ly/2S1xe1k

Ethernet 記事一覧　Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794

Wireshark 一覧 wireshark(0)、Ethernet(48) 
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0

線網（Wi-Fi）空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001

C++ Support(0)　
https://qiita.com/kaizen_nagoya/items/8720d26f762369a80514

Coding Rules(0) C Secure , MISRA and so on
https://qiita.com/kaizen_nagoya/items/400725644a8a0e90fbb0

Autosar Guidelines C++14 example code compile list(1-169)
https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76

Error一覧(C/C++, python, bash...) Error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8

なぜdockerで機械学習するか 書籍・ソース一覧作成中 (目標100)
https://qiita.com/kaizen_nagoya/items/ddd12477544bf5ba85e2

言語処理100本ノックをdockerで。python覚えるのに最適。:10+12
https://qiita.com/kaizen_nagoya/items/7e7eb7c543e0c18438c4

プログラムちょい替え（0）一覧:4件
https://qiita.com/kaizen_nagoya/items/296d87ef4bfd516bc394

一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39

プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945

小川清最終講義、小川清最終講義（再）計画, Ethernet(100) 英語(100) 安全(100)
https://qiita.com/kaizen_nagoya/items/e2df642e3951e35e6a53
# 文書履歴(document history)
ver. 0.10 初稿　20181117
ver. 0.11 2) 改定追記 20181118
ver. 0.12 3) 参考情報追記 20181119
ver. 0.13 4) 改定追記 20181120
ver. 0.14 5) 改定追記 20181121
ver. 0.15 6) ソースコード追記 20181122
ver. 0.16 コード種別追記。20181127
### 最後までおよみいただきありがとうございました。
いいね　💚、フォローをお願いします。
#### Thank you very much for reading to the last sentence.
Please press the like icon 💚　and follow me for your happy life.