相変わらず、私鉄の空線のデコードを続けています。その後、デコード精度を上げてみたところ、西武線以外の空線もデコードできるようになり、フレームのフォーマット(プロトコル)がなんとなく見えてきました。
ただ、まだデータの収集は十分ではないので、正しいかはわかりません。
かつては、フレームは可変長ではないかということをいっていたのですが、どうやら基本的には固定長であるようです。ただし、解釈によっては1ビット増えたり減ったりしているとも思えます。
フレームの後にいわゆる空線パターンの「10」の連続があるのですが、それが固定長なのかどうかはよくわからないといった感じです。
現段階で想像されるフォーマットは以下のような感じになっています。
同期パターン | データ | データ終了 | チェック |
---|---|---|---|
16bit | Xbit | 16bit | 13bit |
このうち、「データ」の長さは鉄道会社によって違うようですが、もしかしたら複数の長さのパターンがあるかもしれません。あと、いずれの場合も長さは4の倍数になっているようです。
「データ終了」のパターンも会社によって異なるように思えます。
あと、チェックだと思われるビット列ですが12bitかもしれません。よくはわからないのですが、パリティで1bit付加されるような仕様なのかもしれません。ここだけ奇数なのはやはりあやしいので、パリティではないかという予想も含まれていますが。
12bitが何かのチェックではないかというのは、以前も書いたのですがここだけがかなりランダムのようなビット配列になります。ただ、12bitのチェックアルゴリズムというと、CRCぐらしか思いつかないのですが、生成多項式がわからないので確認はしていません。
ちなみにネットで調べたところによると12bitのCRCというがあるらしいです。ただし、どこが規定したものかはわかりませんでした。12bitなら、総当りで計算してもたいしたことはないので、最悪それで見つけてみようかとは思っています。
1 件のコメント:
この内容を修正して、解析による仕様をこちらの記事にまとめました。
コメントを投稿