通信(?)のプロトコルついての質問です。

概念や言葉をよくわかっておらず、旗の上げ下げで説明します。

(前提)
・AさんからBさんに、10ビット(1024通り)の情報を伝えます。
・声は届かず、Aさんは、一定周期で旗を上げ下げして、情報をBさんに伝えます。
 二人は「旗の上げ下げルール」を申し合わせています。
 ※ 下下下下下上上上上上=32 というように、二進数で伝えます。
・但し、BさんがいつAさんの旗を見はじめるか(データ開始)タイミングが分からず、Aさんは同じパターンで繰り返し旗を動かします。
・Aさんは、旗を上げるか、下げるかどちらかしかできません。
 (「これから信号送るよ」というデータの始まりも、旗の上げ下げで表現しなくてはいけません)
・また、先の「一定周期」より短いタイミングで旗を上げたり下げたりすることもできません。

(質問)
・AさんとBさんとの間で、どんなルールを申し合わせると、一番効率よく(=短い上げ下げの回数で)情報を伝えられるでしょうか?

…伝わりにくい質問ですみません。
答えが難しい場合検索キーワードでも助かります。
よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2017/08/11 00:40:05
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:tea_cup No.1

回答回数1071ベストアンサー獲得回数194

ポイント250pt

4B/5B符号化変換を応用すると19bitの繰り返しで10bitが送れます。

下下下下に続けて、10bitを2bit,4bit,4bitに分けて4B5B符号化変換した19bitの繰り返しを送付すれば、下が4つ続かないように5bitのテーブルはできているので先頭が区別できます。

4ビット5ビット
0000上上上上下
0001下上下下上
0010上下上下下
0011上下上下上
0100下上下上下
0101下上下上上
0110下上上上下
0111下上上上上
1000上下下上下
1001上下下上上
1010上下上上下
1011上下上上上
1100上上下上下
1101上上下上上
1110上上上下下
1111上上上下上

例:
0:下下下下上上上上下上上上上下上上上上下
494:下下下下下上下下上上上上下下上上上下下
1023:下下下下上下上下上上上上下上上上上下上

id:m_sasaki0810

お礼が遅くなってしまい、失礼しました。
ありがとうございます。4B/5B符号化変換、目からウロコでした。
まさに求めていた回答です。

二点、頂いた回答をもとに少し考えたのですが・・・

・2bit部分の圧縮
データ部分で4つ以上「下」を連続させないことが条件だとすると、
伝送データが10bitの場合、データ部分の頭の2bitは4B/5B符号化変換が不要で、
4bit(ヘッダ)+2bit(データ)+5bit(4B/5B符号化変換)+5bit(4B/5B符号化変換)
と、16bitに圧縮できるかもしれない、、、ですかね?

・先頭パターンの前後連結判定
先頭(下下下下)の前後が「下」になる場合、信号部分の判定が前後にずれて読めてしまうので、
例えば「上下下下下」みたいに、1bit足すと間違いなくなる感じかなと思いました。

ありがとうございました!

2017/08/17 11:24:40
id:tea_cup

・先頭パターンの前後連結判定
 例の494を先頭が下下下下になる範囲でずらしてみると、ずれたものは、すべて変換不能になります。これは、変換テーブルが、下下???や上上下下下を使わないようにできているためです。

2017/08/18 02:52:17

その他の回答1件)

id:tea_cup No.1

回答回数1071ベストアンサー獲得回数194ここでベストアンサー

ポイント250pt

4B/5B符号化変換を応用すると19bitの繰り返しで10bitが送れます。

下下下下に続けて、10bitを2bit,4bit,4bitに分けて4B5B符号化変換した19bitの繰り返しを送付すれば、下が4つ続かないように5bitのテーブルはできているので先頭が区別できます。

4ビット5ビット
0000上上上上下
0001下上下下上
0010上下上下下
0011上下上下上
0100下上下上下
0101下上下上上
0110下上上上下
0111下上上上上
1000上下下上下
1001上下下上上
1010上下上上下
1011上下上上上
1100上上下上下
1101上上下上上
1110上上上下下
1111上上上下上

例:
0:下下下下上上上上下上上上上下上上上上下
494:下下下下下上下下上上上上下下上上上下下
1023:下下下下上下上下上上上上下上上上上下上

id:m_sasaki0810

お礼が遅くなってしまい、失礼しました。
ありがとうございます。4B/5B符号化変換、目からウロコでした。
まさに求めていた回答です。

二点、頂いた回答をもとに少し考えたのですが・・・

・2bit部分の圧縮
データ部分で4つ以上「下」を連続させないことが条件だとすると、
伝送データが10bitの場合、データ部分の頭の2bitは4B/5B符号化変換が不要で、
4bit(ヘッダ)+2bit(データ)+5bit(4B/5B符号化変換)+5bit(4B/5B符号化変換)
と、16bitに圧縮できるかもしれない、、、ですかね?

・先頭パターンの前後連結判定
先頭(下下下下)の前後が「下」になる場合、信号部分の判定が前後にずれて読めてしまうので、
例えば「上下下下下」みたいに、1bit足すと間違いなくなる感じかなと思いました。

ありがとうございました!

2017/08/17 11:24:40
id:tea_cup

・先頭パターンの前後連結判定
 例の494を先頭が下下下下になる範囲でずらしてみると、ずれたものは、すべて変換不能になります。これは、変換テーブルが、下下???や上上下下下を使わないようにできているためです。

2017/08/18 02:52:17
id:cdaotg No.2

回答回数123ベストアンサー獲得回数35

ポイント250pt

「128b/130b符号化」という方式がPCI-Express 3.0で使用されていますが、私が知る限りこれが最も効率の良い方式です。
旗の上げ下げをデータの0/1に対応させるイメージですね。
詳細は下記URLをご参照下さい。

http://www.ni.com/white-paper/52915/ja/

これですと、通信開始の為のオーバーヘッドが2/130(≒2%弱)で済みますので、非常に効率が良いです。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません