• ベストアンサー

通信の基礎

通信の基礎 メッセージを送信するさいに通信路が次のように設計されていと家庭します。 。 ひとつI:一次元の時間の矢が一定の有限の時間ごとに区切られています。 。 ひとつII:各区間は全区間において共通する離散二値の値をもてる。その値を今回は(フ、あ)の記号であらわす。 。 この場合に送るデータパターンは次のような形式が最適。 。 *じつは理解できてないまま質問なのでちょっと変な表現になってしまいますがご容赦ください。 。 フフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフフ 。 送信開始時には上記のように二値のうち片方の値だけを送ります。 。 送信終了時には次のように二値を交互に一回ごとに送ります。 。 フあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあフあ 。 これは手順として適当か不適当かを理由を含めて教えてください。 自分の感覚的には証明はできないけどこれでいいように思えます。

質問者が選んだベストアンサー

  • ベストアンサー
  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.2

通常、送受信データパケットフォーマットとして表されているものに対応しているとして考えてみました。 その場合に必要な条件として、次のような項目が上げられます。 a.送信開始が確実に捉えられること ....(送受信回路の動作立ち上がり、ノイズ等で数ビット欠けることも許容すること) b.有効データの伝送効率が良い事 ....(各種データ長について、テキスト、バイナリ両データ共) ....(送信ビット長は送信電力==バッテリー消費電力に直結) c.エラーチェック機能を有している事 例えば16ビットデータを送る場合等では伝送効率が悪いので問題です。 また、送信データ中に終了パターンと同じパターンがあった場合、 何処で終了と判定するのかわかりません。 別の情報で終了は判定済みであれば、終了パターンは単に不必要なだけです。 エラーチェック情報なども取決めておく必要があります。 実際にどのような取決めが使われているかは、例えば次のようにして調べてください。 "通信 基礎 送信パケットフォーマット 同期パターン" 或いは@ITのトップページで 次のようにサーチ下さい。 http://www.atmarkit.co.jp/ "通信 パケットフォーマット" 連載:詳説 TCP/IPプロトコル 第7回 イーサネット(その2 ... の記事が参考になると思います。 

yyliNISAN
質問者

お礼

リンクへのみちびきかたなど とても洗練された 回答をくださりありがとうございます。 リンク先はぱっと見でも とても深いせかい にかんじられましたが すこしだけ 現実を目の当たりにして めまいしそうです。 わかりやすさを実現するためにわかりにくくなることもあるのでしょうがおゆるしください。 これはわたくしのタイピングのうりょくが そういう解消すべき点を かかえているということとおもいます。  。 ・・・で再度 考えた結果です。 。 1。データの送信を開始するとき。  。 a.スタートマーク。 b.エンドマーク。 c.メッセージ本体。 。 これら三部分から構成される場合を今回の対象とする。 。 2:スタートマークの送り方は次の通り。  。 レレレレレレ・・・と同じ状態をn回繰り返す。 そして、 のののののの・・・という、レ、と異なる状態を同じくn回繰り返す。 。 3:メッセージ本体を送信する。 。  4:エンドマークは次のようなパターンを送出する。 。 レのレののレのののレののののレのののののレののののののレのの・・・というふうに一個の、レ、に挟むかたちで、の、を一個づつ増やしながら送信していく。そして、の、の個数がnに達したら送信は完了したとみなすと同時にできるだけ、の、は継続して送信しつづけておく。できるだけ。  。 素人丸出しで考えた結果ですが、最初の案よりは、よくなっていますでしょうか。よろしくおねがいします。

yyliNISAN
質問者

補足

拝読しました。朝八時日本。努力の結果をお礼します。

その他の回答 (3)

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.4

#3の一部訂正します。 ... c:a,bの一致チェック回路 (a to b, b countdouwn, 0-check etc.) なお回答の例は、無線通信等の場合ですが、もっと簡単にはテレックスのように有効文字と終了文字のみからなる(?)場合、文字バイト数と有効データ、チェックサムバイトからなる場合 等色々の形式があると思います。  

yyliNISAN
質問者

お礼

ありがとうございます。

  • ninoue
  • ベストアンサー率52% (1288/2437)
回答No.3

あまり良くなっていないようです。 1. 終了パターンの一部ビットが誤った時、終了判定が出来なくなってしまう。 2. 終了チェックのために、2個のカウンタ等が必要になる。 ... a:現在の の カウンタ(の:あるべきカウント数)  ... b:のが入力される毎にカウントアップ(又はカウントダウン)されるカウンタ ... c:a,bの一致チェック回路 (a to b, a countdouwn, 0-check etc.) 3. バイナリデータの中には終了パターンのシーケンスと同一のものがあるかもしれないので この判定方式は問題あり 4. の は出来るだけ継続して送信し続ける...は無意味でバッテリの消費電力が無駄だと思われる   他の送信したい携帯電話等の送信機会を奪う事になる   送信が終わったら、出来るだけ早く送信パワーをオフにすること。 通常受信側では無信号区間(受信パワー:0)を監視しており、無信号から信号検出開始した事により同期信号判定シーケンスに入り、特定同期パターン(1010の繰り返し等)の一定回数以上繰り返し後、別のパケット開始信号判定に進みます("10011011"等4-8ビット程度) 有線信号回路等ノイズを気にしないで良い場合は、同期パターンを使わない事もあります。 その後にヘッダ情報:パケットタイプ、データバイト数等、ヘッダ部チェックサム、     データ情報、チェックサム、或いはCRCチェックコードが続く形になると思います。 以上を参考に、検討を続けて下さい。

yyliNISAN
質問者

お礼

丁寧にご回答をくださりいつもありがとうございます。  ※  今現在の自分の能力で通信の基礎がそもそも理解可能なのかどうかも含めて自分自身でもよくわかりません。  ※  !ここでリセット!脳みそ再起動!  ※  せっかく教えてくださった様々なことがらがまだ理解できていないのですが次のような思考結果が今現在の状態です。  ※  1。スタートマークは次のような形式をとる。 1.1。離散二値の符号をそれぞれ、&、%、とする。 1.2。送信装置はパワーオンにしたとき、%をn回出力しつづける。このときのカウンタをjとする。 1.3。n=jとなったら直後に今度はカウンタjを減算しながら先に送出した%と同じ個数だけ&を送信する。 1.4。ここまでの符号は、%%%%・・・・・%%%%%&&&&&・・・・・&&&&&、という形式をとる。 1.5。続けて次のようなパターンを送る。連続する同一符号の個を増やしながらそれぞれがnになるまで送信する。 1.6。%&%%&&%%%&&&%%%%&&&&%%%%%&&&&&%%%%%%&&&&&&%%%%%%%&&&&&&&%%%%%%%%・・・のように送信する。つまり末尾はn個の&で終わる。 1.7。ここまでがスタートマーク。  ※  2。メッセージ本文はスタートマーク及びエンドマークと一致しないようにエンコードして送信する。 2.1。エンコードの具体的な方法は次のとおり。今回はとても初歩的な方法。 2.2。メッセージ本体を離散二値に符号化し、先頭から順にn/4のデータサイズに均等に切り分ける。この切り分けたものを1チャンクと呼ぶ。 2.3。送信する際には次のようなパターンにして送る。 2.4。 (1)生の1チャンク。 (2)各ビットごとに符号反転した形式で1チャンク。 (3)n/4個の連続する%。 (4)n/4個の連続する&。  ※  3。エンドマークはスタートマークと同じ。送信終了したら装置をパワーオフ。  ※  すべて理解してからお礼だといつになるかわからないのでいったんお礼です。  ※  もし失礼がありましたらおわびします。よろしくおねがいします。

  • chie65535
  • ベストアンサー率43% (8514/19356)
回答No.1

手順として不適切です。 例えば「フフフフフあフあ」を伝送する場合、送り側が フフフフフフフフフフフフ フフフフフあフあ フあフあフあフあフあフあフあフあ (判り易いように空白を挿入してありますが、実際は連続しています) を送信したとします。この時、スタートマークである フフフフフフフフフフフフ が伝送エラーにより「フが1つ欠落した」とします。 受け側は フフフフフフフフフフフフフフフフあフあフあフあフあフあフあフあフあフあ を受信するので、先頭の フフフフフフフフフフフフ までをスタートマークとして伝送データから削除し、末尾の フあフあフあフあフあフあフあフあ をエンドマークとして伝送データから削除します。 結果、得られる有効受信データは 「フフフフあフあ」 になり、データが正しく伝送されません。

yyliNISAN
質問者

お礼

一見正しそうなご回答にも見えるのですが。 私がそう判断する理由は何でありどういう仕組なのでしょう。 またこの御礼兼補足分自体の矛盾や誤謬もありますでしょうか。

関連するQ&A

  • ArduinoとXbee、通信によるラグ、遅延

    ArduinoとXbeeによる無線通信を利用して複数の散水ポンプを遠隔操作でON/OFFしようとしていますがラグ(遅延時間)が生じて困っています。 構成としてArduinoとXbee間でシリアル通信を行い、それを二つ使って無線通信をしています。 ([Arduino←シリアル通信→Xbee]←無線通信→[Xbee←シリアル通信→Arduino]) 使用機器等 AVRマイコンはATmega168Pを使用し、互換性のある回路で動作させています。 XbeeRFモジュールはProではありません。 現状として思い通りに通信できているのは 送信側:シリアル通信で「h」,「j」を3秒経つ毎に繰り返し送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力 この時はLEDが交互にラグもなく光ってくれます。 しかし、 送信側:デジタル入力でタクトスイッチのON/OFFを検出し、タクトスイッチを押した時にシリアル通信で「h」を、それ以外の場合(押していない時)は「j」を送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力(変更なし) とした時、タクトスイッチを押したり離したりしてLEDで確認をするのですが、3回程押すと通信が途切れてしまうのかLEDが光っていたなら光ったまま数秒から十秒程固まってしまいます。 上記の送信側スケッチ例(プログラム) int button = 13; void setup() { Serial.begin(9600); pinMode(button, INPUT); } void loop() { if (digitalRead(button) == HIGH) { Serial.print('h'); } else { Serial.print('j'); } delay(1000); } 規則的な値を送信し、受信できているといった症状から問題は送信側のスケッチ(プログラム)だと思い、ダメもとでif else文ではなくswitch case文で書きましたが症状は変わりませんでした。 反応速度を上げて使用したいと考えておりdelay(100)等にするとラグが大きくなりました。 また、Xbeeの送信側をパソコンに繋ぎ 送信側:パソコンにXbeeを接続してXbeeの設定ソフトX-CTUのterminalから 「h」,「j」を交互に適当な間隔で送信 受信側:「h」の時赤色LED出力、「j」の時黄色LED出力(変更なし) とした時も同様にラグが発生しています さらに、 送信側:[ArduinoとXbee]アナログ入力に可変抵抗を繋ぎその値をシリアル通信で1秒毎に送信 受信側:パソコンにXbeeを接続してX-CTUのterminalでシリアル通信をモニタリング とした場合 シリアル通信で送ってきた値を1秒毎に表示→数秒後に値の表示が停止→数秒後、止まっていた間の値がまとめて表示→シリアル通信で送ってきた値を1秒毎に表示 の繰り返しです。 検索サイトで調べましたが、同様の症状が出でいる方が居られますが解決にまで至っていませんでした。また、同じような構成でラジコンを製作している方の動画ではラグも無く、ボタンやセンサーにすばやく反応している様でしたので何か設定などがあるのかと思い試していますがうまくいきません 何か解決策はないのでしょうか? お願いします。

  • 通信の基礎技術について

    こんにちは 只今、技術士1次試験 電気電子部門 専門科目 過去問題について勉強中です。 下記問題について、教えてください。 通信の基礎技術に関する記述で、誤っているものは次のうちどれか。(H17-35) (1)受信機の熱雑音は、相加性の白いガウス雑音である。 (2)ウイーナ・ヒンチンの定理は、電力スペクトルと相互相関関数がフーリエ変換により関係づけられていることを示している。 (3)フィルタのインパルス応答とは、フィルタの周波数特性をフーリエ逆変換したものである。 (4)ある有限幅のパルスを考えた場合、パーセバルの法則は、時間領域のエネルギーが、周波数領域のエネルギーと等しいことを示している。 (5)ナイキストの無歪み伝送とは、一連の伝送波形が標本タイミングで互いに干渉しない条件である。 答えは2で、その他は正しいです。 (3)から(5)の意味を教えて下さい。

  • 通信の基礎技術について教えてください

    こんにちは 只今、技術士1次試験 電気電子部門 専門科目 過去問題について勉強中です。 下記問題について、教えてください。 通信の基礎技術に関する記述で、誤っているものは次のうちどれか。(H17-35) (1)受信機の熱雑音は、相加性の白いガウス雑音である。 (2)ウイーナ・ヒンチンの定理は、電力スペクトルと相互相関関数がフーリエ変換により関係づけられていることを示している。 (3)フィルタのインパルス応答とは、フィルタの周波数特性をフーリエ逆変換したものである。 (4)ある有限幅のパルスを考えた場合、パーセバルの法則は、時間領域のエネルギーが、周波数領域のエネルギーと等しいことを示している。 (5)ナイキストの無歪み伝送とは、一連の伝送波形が標本タイミングで互いに干渉しない条件である。 下記用語の意味を教えてください。 ・フィルタの周波数特性 ・時間領域のエネルギー ・周波数領域のエネルギー ・標本タイミング

  • パソコンを使ってマイコンとシリアル通信

    マイコンでソフトを開発してる組み込み系の技術者です。 例えば、PCからマイコンへ  UART, 9600bps, StopBit=1, LSBファースト、バイナリ通信 で送受信したいです。 PCから送信してマイコンからデータが返信されるのを確認したいです。 単純に送信して受信してだけでなく、 例えば、0x00を受信したら、次の送信を行い、 0x00以外なら再び同じ送信を行うなどのようなことがしたいです。 また、受信してから所定時間後に次の送信を行うなどです。 要するに、受信条件で次の送信をきりわけたいです。 例えば、VB2010だとある特定の数字を受信すると、停止コマンドとみなし、 通信が終了してしまうと聞いたことがあります。 また、VBだともろにソフトを組むことになり、そのソフト作成が大変そうです。 できるだけ簡単な記述で実現させたいです。 説明がうまくできなくてすいません。 ご存知の方、教えてください。

  • この意味解る方いらっしゃいますか?(Jフォンの通信レポート)

    Jフォン同士のロングメールで送信した3日後(72時間後)次のような通信レポートが来ました。『サーバーに保存しましたが受信通知が送信できませんでした。』この後に送信した2通のスカイメールの通信レポートは同じく3日後『お届けできませんでした。』というのでした。その後のロングも『お届けできませんでした。』ときました。電話は「電波の届かない・・・か、電源が入って・・・」ということです。ということは1通目は受信だけはして、すぐに電源を切ったということでしょうか?お分かりになる方いらっしゃいましたらよろしくお願い致します。

  • パソコンの3G通信

    次のようなプログラムを組むことになりました。 海に浮いている船舶から陸地にリアルタイムでデータを自動送信したいです。 データ量は多くありませんが、一時間おきにずーっと送ることになります。 まず浮かぶのは、船上、陸上パソコンを各一台で3G通信が考えられますが、 可能でしょうか。 似たような経験がある方、参考にできる資料、アドバイスをお願いします。

  • イオンのポテンシャルエネルギーの問題について

    以下の問題が皆目分からなかったのでどなたか解説していただけないでしょうか。 3時間ほどテキスト等参照しながら考えてみたのですが糸口すらつかめませんでした・・・ 一直線上に正負の一価のイオンが間隔aで交互に並んでいる一次元格子がある。任意の一つのイオンのポテンシャルエネルギーを計算せよ。ここで、a=2.8×10^(-10)mとすると、その値は何程となるか。 どなたか、よろしくお願いします。

  • UDPを使って通信速度測定プログラムを作成

    java eclipse3.5を使って通信のプログラムを作っています。 TCPの通信速度計測プログラムはWebサイトのソースを参考にして、自分で作りました。 次は、UDPの通信速度計測プログラムを作りたいのです。 TCPでは、送信側で送信データを作成して、受信側で時間を測ります。 データの作成方法と、時間の計測方法は次のようにしています。 送信側: for (int i = 0; i < data - 2; i++) { out.write('X'); } out.write('\\'); out.write('s'); out.flush(); int recvMicroSecond = Integer.parseInt(in.readLine()); System.out.println(data + "バイトを送信するのに" + recvMicroSecond + "マイクロ秒かかる。"); System.out.println(); 送信側で作成したデータ:XXXX…XX\\s 受信側では、最初のXを読み込んだ時点で時間の計測を開始し、sを読み込んだら計測時間をストップして、計測時間を測っています。 UDPでも送信側でこのようなデータをバッファに格納して、 受信側でバッファ内の文字を読み込んで時間の計測を行いたいのですが、 どのクラスの、どのメソッドを使ったらよいか分かりません。 どなたか、よい方法を知りませんか?

    • ベストアンサー
    • Java
  • 一次元のランダムウォーク

    下の問が解けなくて困っています。解説をして頂けると非常にありがたいです。お願いしますm(__)m (問)一次元のランダムウォークする粒子を考える。離散的な時間(t=0,1,2,...)を考え、時刻t=0では原点にいるとする。この粒子の各時刻での変位は確率pで1、確率p-1で-1とする。時刻tでの粒子の位置x(t)の期待値、分散の値を一般のpで計算しなさい。

  • 情報通信の問題なのですが・・・

    情報通信の問題なのですが・・・ 回線速度C(ビット/秒)の専用全2重回線を用いて、ホストAからホストBへ固定長LD(ビット)のパケットを stop-and-wait ARQプロトコルと呼ばれる以下の手順に従い伝送することを考える。 ホストAはパケットを一つ送信した後、ホストBからのACKを持つ。 もし、送信後、タイムアウト時間T(秒)以前にACKを受信すれば、直ちに次のパケットの送信を行う。 一方、送信後、タイムアウト時間TまでにACKを受信しなければ、送信は失敗したとみなし、再送する。 ホストAは先行するパケットに対するACKを受信するまで後続のパケットの送信を開始しないことに注意する。 他方、ホストBはパケットを正しく受信した場合、直ちにホストAへ固定長LA(ビット)のACKを送信する。 また、受信したパケットに誤りがある場合はそれを破棄する(NAKは送信しない) なお、誤り検査に必要な時間は無視できると仮定する。 ホストAとホストBの間の往復伝播遅延をR(秒)とする。 ホストAから送信された任意のパケットに対するACKをホストAが受信する確率を1-p(0<p<1)として、以下の問いに答えよ。 (i)ホストAがパケット送信後、タイムアウトが起こる前に、送信したパケットに対するACKを受信したとする。 このとき、ホストAがこのパケットの最初のビットを送信してからACKの最後のビットを受信するまでの時間S(秒)を求めよ。 T>Sと仮定する。 (ii)ホストAが一つのパケットの送信を開始してから最終的にACKを受け取るまでに必要な時間の平均H(秒)を、 S、pならびに以下で求められるFを用いて表せ。 F=LD/C+T (iii)ホストAには常に送信待ちパケットがあると仮定する。 このとき達成される最大スループットθをHを用いて表せ。 ただし、スループットとは1秒当たりの平均送信成功パケット数を指す。 どなたかご解答をよろしくお願いします