アプリ版:「スタンプのみでお礼する」機能のリリースについて

同期方式について勉強していて疑問に感じたことがあるのですが、stop bitって必要あるのですか?友人が言うには、「8bitを1ブロックとして、2ブロックのデータを続けて送信する時に、1ブロック目の8bit目のデータを 0 とする」を考えれば分かりやすいと言われたのですが、いまいち分かりません。どういう意味か分かる人、解答お願いします。

A 回答 (3件)

送り手と受け手が完全に同一タイミングでずれる事が無いという前提であれば、ストップビットは必要ありません。


しかし、調歩同期の場合にはクロック信号を送ったりクロックで変調をかけた信号を送って受信側でクロックを再生する・・といったようなことをやっているわけでもないので、だんだんずれてきます。

調歩同期の受信側がやっている基本的な処理は、
1)スタートビットを待つ(データが'1'から'0'になる変化点を待つ)
2)スタートビットを見つけたら、そこから1/2ビット分経過するまで待つ(ちょうどビットの真ん中にあたるところになるように・・)
3)以後1ビット分の時間が経過するたびにデータを取り込む

ということをするわけですが、このとき受信側の「1ビット分の時間」というのがぴったり送信側と合っているということは稀で、どうしても多少なりとも誤差があるわけです。
もし、そのままいくと、最初はビットの中央を取り込んでいたのがだんだんずれていって、最後には隣のビットを取り込んでしまうことになります。
これではまずいので、調歩同期では1文字分(8ビットなり、7ビットなり)送ったらいったん「お休み」を入れて、再びスタートビットの検出からやり直す・・ということにしているんですね。
この「お休み期間」がストップビットです。

>1ブロック目の8bit目のデータを 0 とする」
多分、ストップビットが無いと'0'、'0'と続いてしまうので、上の1)のステップのスタートビットの開始位置が分からなくなるという意味じゃないかと思います。
    • good
    • 0

調歩同期は次のように説明できます。



・通信していないとき,回線の信号レベルはずっとマーク(1)状態
・文字を送信する際には,まずスタートビットを送信(=スペース(0)状態)
・その後,文字を構成するビット列を送信(0と1の組合せ)
・文字を送信し終えたら,通信していないマーク(1)状態に信号レベルを戻す(※)

ストップビットというのは実はビットじゃなく,最後に登場する(※)の長さの最小値のことです。

回答ANo.1の参考URLでも紹介されていますが,ストップビット=1.5bit,という規格もあるんですね。ビットなのになぜ1.5bitなんて半端な数が登場するのかというと,実はそれはビットではなく,
「一文字分の送信と次の一文字分の送信の間には,最低でも1.5bit長に相当する時間の未通信(マーク)状態を維持せよ」
というのがストップビットの意味だからです。

最低でも1.5bit長に相当する時間,ですから,文字と文字の間に,1分間の未通信状態があってもいいし,1時間のマーク状態があってもいいのです。このように,常に同期をとっているわけではないので,調歩同期は「非同期」とも呼ばれます。
    • good
    • 0

必要です。

これを検出しないとフレーミングエラーになりますし、次のスタートビットを認識出来ませんので(ストップビットからスタートビットの変化で通信開始)。

参考URL:http://www.fukufukudenshi.com/LineMonitor/RS-232 …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!