データ伝送web講座

1. データやり取りの方法

line

1.4. 同   期

1.4.(1) 同期とは

◆ 図.13 に示したように、時間的に逐次データ を送る場合には、たとえば送信側からビットの区切り情報を送り、 受信側は、このビット区区切り情報を利用して、データを読み取ります。 ビットの区切り情報などの制御情報を利用して、データを やり取りすることを、同期 を取るといいます。
同期の取り方は、並列伝送と直列伝送とでは異なります。

1.4.(2) 並列伝送における同期

◆ 並列伝送においては、非同期確認方式と、同期非確認方式という、 代表的な 2 つの方式があります。

1.4.(2-A) 非同期確認方式

◆ 同期の取り方の方式の第 1 は、非同期確認方式 と呼ばれる方式です。ハンドシェイク方式 とも言います。 非同期確認方式には、幾つかの制御方式があります。最も典型的な、 レディ/ノットレディ方式 を、図.17 に示します。

[図.17] 非同期確認方式の信号

非同期確認方式の信号

◆ 図に示すように、データ信号の他に、制御のために 2 つの信号 (レディ) があります。A から B と、B から A とがありますから、 区別するために、仮に「レディ A」、「レディ B」と 呼ぶことにします。このレディ信号を使用した、 ハンドシェイク制御のタイムチャートを図.18 に示します。

[図.18] ハンドシェイクの制御

ハンドシェイクの制御

◆ タイムチャート は、信号波形の時間的変化を示す図です。 図.13 もタイムチャートです。
レディ(信号のハイ)の意味は、相手に対して、「動作しても宜しい」 ということです。したがって、ノットレディ(信号のロー)は、 相手に対して、「(今、自分が動作中であるから)動作しないで欲しい」 という意味です。
◆ このタイムチャートは、既にデータを送りつつある状態を示しています。 動作のシーケンスは、下記の通りです (見出し番号は、図.18 の中の番号に対応します)。
(1) A は、B が旧データの読み込みを 完了したので、次の新データを送る準備に入ります。 レディ A をノットレディにすることによって、相手が動作するのを 禁止します。
(2) A は、データ線に載っている 旧データを、新データに切り換えます。切り換えを終わったら、 レディ A をノットレディからレディに切り換えます。
(3) B は、レディ A を監視していて、 それがノットレディからレディに切り換わったことを知ります。 そこで、データを読み込む準備をします。まず、レディ B を レディからノットレディに切り換えて、A が動作するのを禁止します。
(4) B は、データ線の新データを 読み込みます(リードイン)。
(5) B は、読み込みが終わったので、 A に対して、次の動作に入って差し支えないことを通知するために、 レディ B をノットレディからレディにします。
(1) A は、レディ B を監視しており、 レディ B が、ノットレディからレディに変化したことを検出します。 A は、さらに次データがある場合には、次の送信に入ります。

◆ 非同期確認方式は、上記のように、互いに相手の動作完了を 確認してから、自分の動作に入ります。したがって、 安全確実な方式です。その代わり、相手がサボルと、 動作を継続することができません。

1.4.(2-B) 同期非確認方式

◆ 同期非確認方式 の信号を図.19 に示します。

[図.19] 同期非確認方式の信号

同期非確認方式の信号(1) 同期非確認方式の信号(2)

◆ 同期非確認方式は、一方が主となり、他方が従となってデータの やり取りを行います。このとき、図に示すように、送り側主 の方式と、受け側主 となる方式とがあります。 制御のシーケンスを図.20 に示します。

[図.20] 同期非確認方式のシーケンス

同期非確認方式のシーケンス(1) 同期非確認方式のシーケンス(2)

◆ 送信側が主になることが多いので、送信側主を例に説明します。
制御信号は、A(送信側)からB(受信側)へのレディ信号だけです。 レディの意味は、非同期確認方式と同じです。
(1) A は、旧データを新データに 切り換えるために、レディをノットレディに変えます。
(2) A は、旧データを新データに 切り換えたら、ノットレディをレディに変えます。
(3) B は、レディ信号を監視しており、 ノットレディがレディに変化したら、データを読み込みます (リードイン)。この読み込みは、ノットレディがレディに変化した 時点から、ある一定時間以内に行わなければなりません。
(4) A は、上記の一定時間を 超えたときは、B の動作に関係なく、レディをノットレディに 変化させます。そして、新データを次データに切り換えます。

◆ 以上のシーケンスから分かるように、A は、ある一定時間を保証すれば、 B の動作に関係なく、どんどん仕事を進めることができます。 そして、B は、一定時間内に仕事を終えなければなりません。
すなわち、B は A に同期して仕事を行います。その結果として 確認動作は行いません。同期非確認の言葉は、 このことことから出ています 。
◆ 非同期確認方式は、互いに同期しあって仕事を進めます。 その結果として、どちらも他方に一方的に同期し続けることは ありません。この意味で、非同期ということです。

1.4.(2-C) セントロニクス インターフェース

◆ プリンタ インターフェース で、 セントロニクス インターフェース と呼ばれるものがあります。 最近は、プリンタインターフェースも、 直列伝送が多くなっています。
その中で、このセントロニクスインターフェースは、 まだ使われています。これは、 非同期確認方式の 1 種です(図.21)。

[図.21] セントロニクス インターフェース

セントロニクス インターフェース

◆ プリンからコンピュータに対しては、ビジーとアックノウリッジの 2 つの信号があります。これは、2 つ必要なのでは無く、 コンピュータは、どちらか 1 つを利用すればよいということです。
コンピュータは、ビジーの立下り、またはアックノウリッジを 検出するまでは、次のデータを出すことはできません。 すなわち、確認信号です。
◆ コンピュータは、データと共に、ストローブ信号を出します。 プリンタは、ストローブ信号がオン(ロー)の間に、 データを取り込まなければなりません。
このような意味とタイミングを持った信号のことを、 一般にストローブ信号 と呼んでいます。 コンピュータからデータを受け取ることに関しては、確認方式にはなっていません。

◆ 昔の機械式のプリンタは別ですが、最近のプリンタは、 印字自体は機械式であっても、コンピュータとの インターフェース部分は、電子回路です。コンピュータからの データは、高速で受け取ることができます。非確認でも 問題はありません。
しかし、受け取ったデータを印字したり、紙送りをしたりするには、 時間がかかり、しかもその時間は一定ではなく、大きくばらつきます。 したがって、動作が完了するまで、ビジー/アックノウリッジの 確認信号で、コンピュータに待ってもらうのです。

◆ セントロニクスインターフェースは、以上のように、非確認の部分を 含んでいます。しかし全体としては、確認を取っていますから、 非同期確認方式に属します。
この例からも分かるように、非同期確認方式は、処理時間が 大きくばらつくときに、効率よく伝送を行うことができます。 このようなところに、同期非確認方式を使用すると、最も遅いものに 合わせて、速いものまで無駄に時間を空費してしまいます。
これに対して、処理時間が、ほぼ一定のシステムには、 同期非確認方式が向いています。

[コラム.1.2] 信号のアクティブと非アクティブ

★ 図.21 を見ると、信号名の ACKNLG と STROBE には、アッパーライン (上線) が付いています。この意味について 説明しておきます。
★ ディジタル信号は、電圧のハイ/ローなどで、1 と 0 とが 区別されます。このとき、1 をハイ/ローのどちらに割り当てること も可能です。1 と 0 が、2 進の数字を意味する場合には、 2 つの数の掛け算であれば、
   1×1 = 1   1×0 = 0   0×0 = 0
ですから、1 は積極的な性質があり、0 は消極的な性質を 持っています。このことから、1 のことをアクティブ 、 0 のことを非アクティブ といいます。
★ これは、原理的に、1 が全てアクティブということではありません。 もし、1 と 0 とに、数字ではない別の意味をもたせて、そのとき、0 の方が 積極的な働きを持つとしたら、0 がアクティブです。

★ 図.21 では、信号名称が付いています。 信号名称が付いているときは、その信号名称の働きをするのが アクティブ、信号名称と逆の働きをするのが非アクティブです。 たとえば、BUSY 信号は、ビジーがアクティブで、 その反対の状態 レディが非アクティブです。
逆に、信号名称をレディにすれば、レディがアクティブです。 このように、アクティブ/非アクティブは、定義の仕方でどちらにも なります。この意味で、紛らわしいので注意して下さい。
★ さて、数字であっても信号名称であっても、そのどちらを ハイに割り付け、他方をローに割り付けます。 BUSY 信号の場合には、BUSY がハイに 割り付けられています。これをハイアクティブ といいます。 ACKNLG 信号では、ACKNLG がローに 割り付けられています。これをローアクティブ といいます。

★ タイムチャートを見れば、ハイアクティブであるかローアクティブ であるかは、一目でわかりますが、信号名称を見ただけで、 その信号の極性 (アクティブ/非アクティブの区別) が分かると、 便利です。
★ ローアクティブの信号は、名称にアッパーラインをつけることによって、 これを識別します。図.21 で、ローアクティブの ACKNLG と SOROBE にアッパーラインが入っているのはこの理由です。
★ 図面や手書き文書にアッパーラインを入れることは簡単です。 しかし、コンピュータで作る通常の文書では、アッパーラインを 入れることができません。このような場合には,アッパーライン の代わりに、信号名称の先頭に、"/"をつけます。すなわち、
   /ACKNLG
   /STROBE
のように書きます。



1.4.(3) 直列伝送における同期

◆ 直列伝送における同期方式は、同期式 非同期式 の 2 種類があります。
同期式は、並列伝送における同期非確認方式と、基本的には同じ ものです。これに対して非同期式は、並列伝送の非同期確認方式とは、 全く異なるものです。
本格的な長距離伝送は、直列伝送ですが、インターフェースと呼ばれる 短距離の伝送でも、最近は直列伝送が主体になっています。 そして、これらの多くは、同期式です。

1.4.(3-A) 同 期 式

◆ 直列伝送 は、元々は、長距離伝送のために考えられた 方式です。長距離伝送では、信号線の本数が多いと高価になりますから、 信号線の本数が問題です。また、効率よく使用するためには、伝送速度 を保証する必要があります。
この両方の意味で、非同期確認方式 は落第です。同期非確認方式の方が 適しています。なお、直列伝送では、呼び名は、単に 同期式 です。並列伝送と基本的には同じですが、 若干の違いがあるので、名前も別になっています。
◆ 並列伝送では、同期非確認方式は、伝送速度が一定とは限りませんが、 一定またはこれに準じるものが多くなっています。直列伝送では、 伝送速度は、一定です(図.22)。

[図.22] 直列伝送の同期式

直列伝送の同期式

◆ 伝送速度が一定ですから、制御信号は、クロック と 呼んでいます。
送信側は、クロックの立ち下がりのタイミングで、データを 切り換えます。受信側は、送られてきたデータを、クロックの 立ち上がりで読み込みます (ハイアクティブ の場合)。
このように、ビット毎に同期を取る方式のことを、 ビット同期 といいます。同期式では、ビット同期を 取ることによって、受信側は、送られてきたデータの各ビットの 0/1 を読み取ることができます。
◆ しかし、実際にデータを利用するためには、ビット同期を取った だけでは不十分です。一般には、もっと大きなデータの塊の開始を 識別する必要があります。このデータの一塊のことを フレーム といいます。そして、フレームの始まりを 識別することをフレーム同期 といいます(図.23)。

[図.23] フレーム同期を取る

フレーム同期を取る

◆ 図の SYN は、フレームの開始を識別するために送信側から送り出す、 フレーム同期信号 (特定のビットパターン) です。 ビット同期が取られていることが前提ですから、受信側では、 このビットパターンを検出することができます。これによって、 フレーム同期を取ります。
◆ フレームの形式や、フレーム同期の取り方は、各種ありますから、 ここでは概念だけを示しました。さらに具体的なことは、 個別の各方式のところで説明する予定です。
汎用されている方式は、マイクロプロセッサに内蔵、または IC 化 さています。ユーザーは、単にネットデータを IC 等と、 やり取りすれば良いようになっています。

1.4.(3-B) 非同期式

◆ 線の本数が少ない方がよいという立場から言えば、最低の 1 回線で 伝送できれば、それが最良です。この条件を満足するのが、 非同期式 です。非同期式は、パソコン インターフェース として、広く使用されています。
◆ 非同期式は、キャラクタ (文字)を単位としています。 1 キャラクタは、先頭に 1 ビットのスタートビット 、 後尾に 1 ビット (または 2 ビット) のストップビット を有し、その間にデータ(文字)が入っています(図.24)。

[図.24] 非同期式

非同期式

◆ キャラクタを送っていない状態をアイドル といいます。 アイドルは、1 (ハイ) です。
キャラクタの先頭は、スタートビットで、スタートビットは 0 (ロー) です。 したがって、1 から 0 への変化があります。この変化が、 キャラクタの開始を示す同期情報です。すなわち、スタートビットは、 ローアクティブです。
◆ 伝送速度は決まっていますから、受信側は、スタートビットを 検出すれば、あとは、自分でタイミングを取ることによって、 データの各ビットの位置を割り出して、そのビットのデータを読みとる ことができます。

◆ キャラクタの最後はストップビットで、ストップビットは 1 です。 したがって、次のキャラクタが引き続いて送られてきても、 次のキャラクタのスタートビットでの、1 から 0 への変化 がありますから、スタートビットを検出することができます。
◆ 次のキャラクタが、任意の時間を置いて送られてきたときも、 ストップビットに引き続くのはアイドルの 1 です。したがって、 次のキャラクタを検出できます。
非同期式では、以上のように、キャラクタ単位で同期を取ります。 このような同期の取り方を、キャラクタ同期 と呼んでいます。

◆ 非同期式は、スタートビットとストップビットがありますから、 ネットデータで考えた、実効伝送速度は、その分低くなります。 しかし、伝送路が 1 回線で済むという、大きなメリットがあります。
非同期式では、キャラクタ (ネットデータ) のビット数は、 5〜8ビットの範囲で選ぶことができます。また、このネットデータに、 パリティビット を付加することが可能です (コラム1.3参照)。
◆ しかし、データ長がキャラクタ単位であるという制約があります。
ただし、この制約があっても、色々な長さのデータを取り扱うことが できます。実用上あまり問題は無く、十分汎用性があります。

◆ 非同期式は、マイクロプロセッサにその機能が内蔵され、または、 外付けの専用 IC を使用することができます。
この場合、ユーザーからはネットデータだけを貰えばよく、 スタートビット等の附加および制御は、IC 等でやってくれます。 パリティビットの附加、チェックも IC 側で行います。

[コラム1.3] 伝送誤り制御

(1) 伝送誤りと伝送誤り制御
★ 電子回路はノイズに弱く、ノイズによって誤動作し易いという欠点 があります( 講座 ノイズ対策技術参照)。しかし、ノイズで誤動作するようでは、 製品として価値がありません。ノイズ対策を施して、 ノイズによる誤動作を起こさないようにします。
★ しかし、データ伝送では、ノイズ環境が悪いところを長距離引き回す ことがあります。このような場合には、ノイズ対策によって、 ノイズによる誤動作をなくすことは不可能です。伝送路において 発生する、避けることできない誤動作のことを、伝送誤り といいます。

伝送誤り

★ だからといって、誤動作したデータを、ユーザーに引き渡すわけには 行きません。伝送誤りが発生したとき、それを検出し、正しいデータに 訂正して引き渡すようにします。これを、伝送誤り制御 といいます (伝送誤り制御についての詳細は、第 8 章 参照)。
伝送誤りの発生は、確率現象です。そして、伝送誤りの検出も、 伝送誤り制御もまた、確率現象です。したがって、100% 完全な 伝送誤り制御は存在しませんが、実用上十分な伝送誤り制御は可能です。

(2) 具 体 例
★ 伝送誤りの検出方法は各種あります。誤り検出能力は高いが複雑なもの もあります。逆に簡単ですが誤り検出能力は高くないものもあります。 後者の代表例が、パリティチェック です。

★ 伝送誤りを検出すりためには、送信側で、誤り検出のためのビットを 附加することが必要です。受信側では、そのビットを利用して誤りの 有無を検出します。パリティチェックにおいては、送信側で、 パリティビット を付け加えます。パリティには、 偶数パリティと奇数パリティとがあります。

送信側におけるパリティの附加

★ 受信側では、付加されてきたパリティビットを利用して、 伝送誤りがあったかどうかをチェックします。

受信側におけるチェック

★ 伝送誤りが無ければ,そのデータを受け入れます。伝送誤りが検出された 場合には、そのデータを再送して貰うなどの、伝送誤り制御を行います。

★ なお、非同期式の IC がやってくれるのは、送信側でパリティビットを付け加えることと、受信側でパリティチェックを行い、エラーがあったかどうかを示すことです。その後の再送処理などは、ソフトウェアで実行する必要があります。




目次に戻る   前に戻る   次に進む