• ベストアンサー

RS232C 調歩同期のビットレート誤差について

kabasanの回答

  • kabasan
  • ベストアンサー率44% (264/588)
回答No.3

すいません。最後になぜ1%なのか書き損じました。SH4側が+1%、相手が-1%の誤差なら、相対的に2%程度の誤差です。 したがって1%程度が限度と考えるべきです。

関連するQ&A

  • RS232C 同期型通信

    RS232Cで調歩同期型通信のやり方は良くのっているのですが、同期型通信するためにはどうすれば良いのですか?? また通信方式によってメリット、デメリットはあるのですか? すみませんが教えてください

  • RS-232C ボーレートの許容誤差

    マイコンのシリアルポート(調歩同期)で、 クロック周波数の都合上、どうしても、38400とか57600といったボーレートを正確に作り出せず、なんとか近づけても39062.5とか、56818.2といった数値になってしまいます。 どのくらいの誤差までが許容範囲なのでしょうか?

  • 調歩同期式通信のストップビット

    調歩同期式通信でストップビットがなかった場合どのような問題があるでしょうか。 例えば、スタートビット0とビット長8のデータがあるとして、 1111111010110110 というデータを受信した場合にデータは10110110と分かると思います。 ビット長8と指定してあればストップビットはいらないのではないかと思ってしまうのですが、調歩同期式通信がどのような仕組みになっているのでしょうか。

  • 調歩同期式について

    たとえば,ネットワーク上のIPパケットを調歩同期式で同期を取るとしたら,スタートビットと言うのはネットワーク上のどの部分で付加するものなんでしょうか?

  • SH2マイコン・HCAN通信ビットレートの設定に…

    SH2マイコン・HCAN通信ビットレートの設定について いつもお世話になっております。 下記,御教示くださりますよう,宜しくお願いいたします。 CPU:SH7047 システムクロックφ:49.152MHz HCANのクロックfclk=φ/2:24.576MHz SH7047の取説の計算によると通信ビットレートbpsは, bps=fclk/((BRP+1)×(1+TSEG1+TSEG2)) と記載されています。 bpsを1Mにしたい(通信相手の機器が1Mに設定されているため)のですが,下記点が不明です。 ・fclk(24.576MHz)を25MHzとした場合は,BRP,TSEG1,TSEG2の設定値は,どのように設定すべきなのでしょうか? BRP+1=4+1,(1+TSEG1+TSEG2)=5の組み合わせしかないと思いますが,TSEG1~2の最小設定値から選択できません。

  • 調歩同期方式で、パリティビットなしの3単位符号の受信について

    ”100101001111”というビット列を左側から受け取ったとき、このビット列が表すデータを受信した順番に1文字ずつ2進数で表したものが、なぜ、「010,011」になるのかわかりません。 ここで1文字はパリティビットなしの3単位符号、調歩同期方式です。 スタートビットは”0”、ストップビットは”1”です。 パリティビットがないとあるので、送信のときつけられるのは、スタートビットとストップビットだけです。スタートビットが0なので、”100101001111”を左から見てみると、二個目に0があります。二個目がスタートビットなのでしょうか? すると3個目から5個目から、”010”になります。 次にくるのが、1と0ですから、それぞれストップビットとスタートビット。8個目から10個目が”011”。すると11個目がストップビットになるかと思うのですが、最後の12個目が1になるのが理解できません。 これは無視してもいいのか、パリティビットなどの何か意味がある1なのかどちらなのか分かりません。 もしパリティビットがあれば、ストップビットの前につきますが、パリティビットがないときは・・・・?? どなたかお教え願えませんでしょうか。 よろしくお願いいたします。

  • H8S 調歩同期通信のデータ送信ができない

    ルネサスのCPU H8S2378 を使用してプログラムを組んでいるのですが、 どうしても調歩同期式通信によるデータの送信が上手く行きません。 自分でマニュアル等を調べているのですが、原因が分からず困っています。 どなたか、アドバイス頂けないでしょうか。 以下に現状の動作とソースを記述致します。 プログラムがスタートすると、 ポート割り込みなどの初期設定を行い、 無限ループに入り、LEDの点滅とデータ'A'の送信を繰り返すことを 意図して記述しました。 しかし、実際にはLEDの点滅、データ送信は行われず、 SCI1.TDR = data; で送信するデータをセットして、 SCI1.SSR.BIT.TDRE = 0x00; で送信フラグのクリアをした後、 送信フラグ(TDRE)がセットされていないようで 2ループ目のwhile( SCI1.SSR.BIT.TDRE == 0x00 );のところで 止まっているようです。 送信動作の確認は、PCに接続してteratermで行ったのですが、 データが入ってきていないようで、オシロスコープでTXD1のポートを当たったのですが、データは全く出力されていないようです。 /*初期化部分*/ void h8_sciinit( void ){  SCI1.SCR.BYTE = 0x00;  /* 内部クロック/SCK*/  SCI1.SMR.BYTE = 0x00;  /* 調歩同期式モード*/              /* データ長:8ビット*/              /* バリティ:なし*/              /* ストップビット:1ビット*/              /* 内部クロック:Φクロック*/  SCI1.BRR = 0x6A;//106  /* ビットレート設定(9600bit/s)*/  for(i = 0;i < 0xFFFF; i++);/*待ち*/  SCI1.SCR.BYTE = 0x30; /* RE,TE->1送受信を許可*/  SCI1.SSR.BYTE; /* ダミーリード*/  SCI1.SSR.BYTE = 0x80; /* エラービットをクリア*/ } /* 送信部分 */ void SCI1_SendData( char data ) { while( SCI1.SSR.BIT.TDRE == 0x00 ); /*未送信データが送られるまで待つ */ SCI1.TDR = data; /* 送信データのセット*/ SCI1.SSR.BIT.TDRE = 0x00; /* 送信フラグのクリア*/ } /* Main関数 */ void Main(void) { GA_Port_init(); //各GAのポートを初期化 INT_INIT(); /* 割り込みの初期設定 */ ipr_register_set(); /* 割り込み優先順位レジスタ 設定 */ DEBUG_LED1 = 0x01; /* デバッグLED設定 */ DEBUG_LED2 = 0x01; /* デバッグLED設定 */ DEBUG_LED3 = 0x00; /* デバッグLED設定 */ DEBUG_LED4 = 0x00; /* デバッグLED設定 */ h8_sciinit(); /* SCI初期設定 */ while(1){  SCI1_SendData( 'A' );  wait();  DEBUG_LED2 = ~DEBUG_LED2 ;  } }

  • 調歩同期方式のパリティによる誤り検出方式について

    調歩同期方式のデータ転送において、偶数パリティによる誤り検出方式を用いて、文字T(JIS7単位符号1010100)が送出されたとき、これを正しく受信したときのビット列はどういう列になるのか分かりません。 送出は、  スタートビット(0)、  文字の低位ビットから高位ビット、  パリティビット、  ストップビット(1) の順です。 送るときは、 00010101X1 かと思いましたが、わかりません。 Xはパリティビットになります。これは0なのでしょうか?1なのでしょうか? 奇数個の誤りが生じている場合、誤りの有無を判定できるそうですがよく理解できません。 送信するときと受信するときはそれぞれどのようなビット列になっているのでしょうか? どなたか教えていただけませんでしょうか? よろしくお願いいたします。

  • RS-232Cが今も産業界でなぜ多く使われるの?

    調べごとをしていて困っていることがあります。 RS-232Cは、なぜ産業界では今日も現役で使われていることが多いのでしょうか? そこに何か大きなメリットがあるのでしょうか? たとえばUSBとかLANとか他の通信規格に変えても良い気がするのですが・・・・

  • H8/3069 SCIについて

    H8/3069のシリアル通信機能についての質問です。 SCI0を調歩同期式に設定して、パソコン上のハイパーターミナルと通信しています。SCI1とSCI2をクロック同期式に設定して、tx1とrx2,tx2とrx1,sck1とsck2を配線接続した状態です。 このとき、PC(ハイパーターミナル)からの送信データ⇒SCI0で受信⇒SCI1から送信⇒SCI2で受信⇒SCI0からパソコンに対してデータ送信したいと思っています。 ところが、SCI1のクロック同期式でのデータ送信がまずできません。データもクロックも出せていないです。 そこで、SCI0,SCI1,SCI2のすべてを調歩同期式に設定した場合は、上記のデータの送受信は成功しています。 H8/3069において、SCI0,SCI1,SCI2のシリアル通信方式の設定を上記のように、1つのH8に対してクロック同期と調歩同期を混在させた場合、何かうまく動作しない原因は考えられますでしょうか。 プログラムでのSCI0とSCI1,SCI2の初期設定の違いは、SCI1とSCI2は、SMRレジスタC/Aビットを1(SCI0は0)にして、SCI2については、SCRレジスタのCKE1ビットを1(SCI0,SCI1は0)にした状態にしています。 よろしくお願いいたします。