- ベストアンサー
RS232C 調歩同期のビットレート誤差について
RS232C 調歩同期のビットレート誤差は何%程度まで許容できるのでしょうか? また、目安とその理由について教えて下さい。 SH4のプログラムを組んでいます。 例えば、パソコンとRS232C(調歩同期)通信を行う際のビットレートの設定で、SH4側のビットレート誤差は何%以内にするべきでしょうか? クロック同期の場合は、「なるべく1%以内になるように」とマニュアルに記載があるのですが。。。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まずは データ長8ビット パリティなし ストップビット1 だとすると、シリアルデータは全部で10ビットです。 スタートビットから同期し、各ビットの中央でデータをサンプリングするなら、10番目のビットが50%以上ずれるとアウトです。つまり5%誤差ですね。 しかし世の中そううまくいきません。コントロールICによって違いますが、ビットレートの8倍や16倍で各データをサンプリングします。1ビットを8回や16回チェックしてるんですね。 ビットがHかLかを判断するのもいろいろですが、中央部数回分(8回サンプルなら3~4回程度)を多数決原理で判断するのが多いようです。とすると、せいぜい2.5%となります。 これに、クロック源の誤差も加味すると2%くらいが限度です。 CPUクロックからビットレートを生成する場合、ビットレートにあわせた変な周波数のクロック源でなければ0%なんて無理ですよね。実際は1%以内なら気にしませんし、大丈夫ですよ。
その他の回答 (3)
- kabasan
- ベストアンサー率44% (264/588)
>1%以内にしておけば殆どのケースで問題にならないということでしょうか。 まさしく「ほとんど」問題になりません。 と、言うのは、調歩同期は通信する2個の機器が別々にクロックを生成していますから、相手がどのくらい正確かわかりませんし、仕様にもクロック精度は定義されていません。信用するしかないって事です。 しかし、232C通信程度で同期がずれるようでは、もはや「商品」クオリティではありません。個人的考えですが、「商品」か「アマチュア作品」かのボーダーラインは1%未満の領域にあると思います。 No2の方がおっしゃるように、「1%」というのは232Cにおいて「相当大きな誤差」だと思います。 SH4は、ボーレートジェネレータかCTC出力をクロック源として使えるはずですし、それを使用すれば0.2%くらいの精度にするのは造作も無いはずです。それで同期がずれたら悪いのは相手側ですよ。
お礼
色々と経験的なところを教えてもらいありがとうございます。 非常に役に立ちました。 また、別の質問をした際も宜しくお願いします。
- kabasan
- ベストアンサー率44% (264/588)
すいません。最後になぜ1%なのか書き損じました。SH4側が+1%、相手が-1%の誤差なら、相対的に2%程度の誤差です。 したがって1%程度が限度と考えるべきです。
- ymmasayan
- ベストアンサー率30% (2593/8599)
具体的な値は知りませんが、調歩同期では問題にしなくていいと思います。 調歩同期では10ビット(程度)ごとに同期を取りますのでビットレートの 誤差は相当大きくても問題になりません。
お礼
なるほど、参考になります。ありがとうございます。 データサンプリングの回数や位置、データの判断方法で異なってくると言うことですね。送り側と受け側の誤差の蓄積を考慮しても、1%以内にしておけば殆どのケースで問題にならないということでしょうか。 確認の意味を含めまして、お礼申し上げます。