私鉄の空線のデコードですが、大まかな仕様がわかってきたので、まとめてみます。ただ、独自に解析した結果であって、正式な仕様とは違っている可能性は十分あります。あくまでも参考ということでお願いします。
前回の記事でチェック方式は、CRC12ではなかろうかということでしたが、予告通りを総当りしたところ、生成多項式が見つかったので、CRC12で確定とします。なお、パリティはありませんでした。
あと、変調方式ですがMSKといってましたが、おそらく正しくはCPFSK(位相連続のFSK)ではなかろうかと思ったので、そう書いておきます。
変調方式 | 変調速度 | マーク周波数 | スペース周波数 |
---|---|---|---|
CPFSK | 1200ボー | 1800Hz | 1200Hz |
初期信号、いわゆる空線時の信号は「マーク・スペース」の連続となります。空線間に送出される信号(アップリンクで一回に送られるものも同様)をとりあえずパケットということにします。
初期信号 | フレーム | 初期信号 | フレーム | … | 初期信号 | フレーム | 初期信号 |
要するにパケットは、同じ内容のフレームが複数個存在しているということです。含まれるフレームの数は、可変で鉄道会社によって変わるようですし、フレームの内容によって数が増えることもあるようです。
フレーム間の信号は、基本的には8個のマーク・スペースの連続(16シンボル)となります。
同期パターン | データ | 終了文字 | CRC |
---|---|---|---|
16ビット | 可変長 | 8ビット | 12ビット |
データは、鉄道会社によって長さが異なるようですが、会社毎に長さは一定で4の倍数ビットとなるようです。終了文字も鉄道会社毎に異なりますが、データの長さによって決まっているかもしれません。いまのところ、異なる鉄道会社において同じデータ長を使用しているところがあるかはわかりません。
予想としては、データ長と終了文字で鉄道会社を識別できるのではないかと思っています。そういった意味では、終了文字というよりは会社識別用ビット列なのかもしれません。
データ内の仕様ですが、2つに分けられると思われます。そのうち前半は、おそらく識別符号として使われていて、この部分が全て「1」のパターンが存在しており、これは一斉呼び出しなどの相手を特定しない場合に送られると考えられます。そのため、ダウンリンクのみに存在するのではないかと思います。
データの後半は、なんだかの制御用に使用されているものだと思われます。少なくともダウンリンクとアップリンクでは、この部分のビットの立ち方が異なります。また、同じ識別符号を持つパケットが2回連続で送られているようですが、そのときに2回目には1つだけビットが増えていて、再送フラグではないかと思われます。