まさのり)Tweet通信の同期シリアル伝送では、毎秒何ビット送るかという伝送速度(bps)、データの1単位のビット長など、通信の方式について送信側と受信側が互いに合意している必要があります。受信側は、送信側がデータを送るタイミングに合わせてデータを受信しなければなりません。このタイミングがずれたら、データを正しく受信できません。受信側は、送信側が送り出した最初の1ビットから最後の1ビットまでを、最初の1ビットから最後の1ビットとして正しく受信する必要があります。最初の何ビットかを読みこぼし、途中のビットから受信を始めたら、受信データは数ビットずれてしまいます。このようなことが起こらないように、送信側と受信側が正しくタイミングを合わせることを「同期」といいます。同期を取るための一番簡単な方法は、データの信号と並行して、タイミングを合わせるための信号を送ることです。この方法は配線が増えるという問題があるため、距離が離れている通信には実用的ではありません。そこで伝送データを表す電気信号をうまく利用して、受信用のタイミング信号を受信側で生成します(図1)。これなら、余計な配線は必要ありません。調歩同期式シリアルポートを使った通信では、調歩同期式というという方法が使われています。これは送信される各データ単位(ここでは8ビットとします)ごとに、タイミングを合わせるための信号を埋め込むという方法です。調歩同期式では、データに先行して、これからデータを送るということを示すスタートビットというビットが送られます。スタートビットには0という値が使われます。スタートビット以前は、1というデータが送られ続けているということです。通信路の1の状態が0に変化したことにより、受信側はこれからデータが送られてくるということを認識します。スタートビットの後のビット列を実際のデータビットとして受信します。通信速度などが正しく設定されていれば、これでデータを正しく受信できます。データビットの後には、1ビット以上のストップビットが送られます。受信側はデータビットに続けて1のビットを受信することで、8ビットデータの受信が完了したと判断します。続けてデータがある場合は、このストップビット(1)に続けて次のデータのスタートビット(0)が送られます。受信側は、このスタートビットで再度同期を取り、次のデータを受信します。後続データがない場合は、ストップビットの1がずっと続きます。0が送られると、なんらかのデータとして受信処理が始まってしまうためです。調歩同期式では、1がずっと続いていることでデータ送信が行われていないということを示すのです(図2)。実際のデータビットのほかに、スタートビットとストップビットとして最低でも2ビットの冗長なビットを送る必要があります。8ビットデータに、スタートビットが1ビット、ストップビットが1ビットとすると、10ビット分の信号を送らなければなりません。この場合、実際の通信路の速度(bps)に対し、実際のデータ伝送レートは8割に減少してしまいます。調歩同期式は、しばしば非同期式とも呼ばれます。各データの前後にスタートビットやストップビットは置きません。その代わり、一群のデータの送信に先立って、タイミングを合わせるための特定のパターン(同期信号か同期用データ)が送信されます。受信側はこのパターンを検出すると、これからデータが送信されると想定し、この信号のタイミングに合わせてデータを受信します(図3)。図3:同期式データは先頭の同期信号のタイミングに合わせて連続的に送られてくることが保証されているので、データ中にはスタートビットやストップビットは必要ありません。1111といったデータとして受信してしまいます。データをやり取りするためには、事前に何バイトのデータを送るといったことを指示しておくか、あるいは送信すべきデータがないことを示す情報あるいは信号を送り続ける必要があります。具体的には、データがないことを示すために同期用の信号を送り続けるという方法があります。このようにしておけば、送信側と受信側は常にタイミングがあっており、同期をとるために時間をかけることなく、いつでもデータ伝送を開始できます。前に説明したマンチェスタ符号化のような、データが送られていないという状態が識別できる伝送路であれば、この問題はありません。未送信状態になったら、データ伝送が終了したと判断できるからです。同期式の伝送では、データブロックの先頭に同期用ビットがあるだけで、以後のデータビットはすべてデータを表すものとなります。そのため、ある程度以上の量のデータを送るのであれば、調歩同期式より効率がよくなります。16ビットの同期データを先行させ、続けて1024バイト(8192ビット)のデータを送るのであれば、伝送されるビット数は8208ビットになります。これが調歩同期式中だと、1024バイトを送るために10240ビットの伝送が必要になります。イーサネットなどのネットワークでは、同期式のシリアル伝送を行っています。ネットワークが使うケーブル上を流れる信号は、データがない状態がわかる方式になっています。データに先行してプリアンブルという同期信号があり、受信回路はプリアンブルを読み込んでタイミングを合わせ、続くデータを読み込みます。世の中で広く知られているイーサネットとTCP/IP、つまりインターネットや社内LANなどで、標準的に使われているネットワーク方式とプロトコルについて詳しく解説。各項目については初歩的なレベルから解説し、中級レベルまで掘り下げています。その過程で、仕組みや原理についてなるべく詳しく、そしてなぜそのような仕組みになっているのか、といったことを説明しています。20%オフでご提供します!本連載の掲載に合わせて、本書籍の電子版を特別に20%オフでご提供します。興味のある方は是非ご検討ください。クーポンコード:get3gerc※クリックすると購入ページに移動します。クーポンコードをお控えください。Impress会員の登録(無料)が必要です。※リンク先で注文内容を確認後、「レジに進む」をクリックするとクーポン入力欄が表示されます。※クーポンの利用期限は2015/04/30までです。プログラミング、システム管理などの仕事のあと、フリーランスで原稿翻訳、執筆などを行う。5』(いずれも旧アスキー発行)、『Pthreadsプログラミング』(オライリー・ジャパン)などがある。ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。VeloCloudが選ばれる理由2019/12/26システム運用技術解説CloudサービスとRPAの連携2019/12/20ネットワークPRSD-WANとはなにか。VeloCloudが選ばれる理由SD-WANとはなにか。Linuxエンジニア育成への思いF5とNGINXの組み合わせで、サービス公開をよりセキュアに。ITがお届けするポッドキャストです。