◆ 図.13 に示したように、時間的に逐次データ
を送る場合には、たとえば送信側からビットの区切り情報を送り、
受信側は、このビット区区切り情報を利用して、データを読み取ります。
ビットの区切り情報などの制御情報を利用して、データを
やり取りすることを、同期 を取るといいます。
同期の取り方は、並列伝送と直列伝送とでは異なります。
◆ 並列伝送においては、非同期確認方式と、同期非確認方式という、 代表的な 2 つの方式があります。
◆ 同期の取り方の方式の第 1 は、非同期確認方式 と呼ばれる方式です。ハンドシェイク方式 とも言います。 非同期確認方式には、幾つかの制御方式があります。最も典型的な、 レディ/ノットレディ方式 を、図.17 に示します。
◆ 図に示すように、データ信号の他に、制御のために 2 つの信号 (レディ) があります。A から B と、B から A とがありますから、 区別するために、仮に「レディ A」、「レディ B」と 呼ぶことにします。このレディ信号を使用した、 ハンドシェイク制御のタイムチャートを図.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 は、さらに次データがある場合には、次の送信に入ります。
◆ 非同期確認方式は、上記のように、互いに相手の動作完了を 確認してから、自分の動作に入ります。したがって、 安全確実な方式です。その代わり、相手がサボルと、 動作を継続することができません。
◆ 同期非確認方式 の信号を図.19 に示します。
◆ 同期非確認方式は、一方が主となり、他方が従となってデータの やり取りを行います。このとき、図に示すように、送り側主 の方式と、受け側主 となる方式とがあります。 制御のシーケンスを図.20 に示します。
◆ 送信側が主になることが多いので、送信側主を例に説明します。
制御信号は、A(送信側)からB(受信側)へのレディ信号だけです。
レディの意味は、非同期確認方式と同じです。
(1) A は、旧データを新データに
切り換えるために、レディをノットレディに変えます。
(2) A は、旧データを新データに
切り換えたら、ノットレディをレディに変えます。
(3) B は、レディ信号を監視しており、
ノットレディがレディに変化したら、データを読み込みます
(リードイン)。この読み込みは、ノットレディがレディに変化した
時点から、ある一定時間以内に行わなければなりません。
(4) A は、上記の一定時間を
超えたときは、B の動作に関係なく、レディをノットレディに
変化させます。そして、新データを次データに切り換えます。
◆ 以上のシーケンスから分かるように、A は、ある一定時間を保証すれば、
B の動作に関係なく、どんどん仕事を進めることができます。
そして、B は、一定時間内に仕事を終えなければなりません。
すなわち、B は A に同期して仕事を行います。その結果として
確認動作は行いません。同期非確認の言葉は、
このことことから出ています
。
◆ 非同期確認方式は、互いに同期しあって仕事を進めます。
その結果として、どちらも他方に一方的に同期し続けることは
ありません。この意味で、非同期ということです。
◆ プリンタ インターフェース で、
セントロニクス インターフェース と呼ばれるものがあります。
最近は、プリンタインターフェースも、
直列伝送が多くなっています。
その中で、このセントロニクスインターフェースは、
まだ使われています。これは、
非同期確認方式の 1 種です(図.21)。
◆ プリンからコンピュータに対しては、ビジーとアックノウリッジの
2 つの信号があります。これは、2 つ必要なのでは無く、
コンピュータは、どちらか 1 つを利用すればよいということです。
コンピュータは、ビジーの立下り、またはアックノウリッジを
検出するまでは、次のデータを出すことはできません。
すなわち、確認信号です。
◆ コンピュータは、データと共に、ストローブ信号を出します。
プリンタは、ストローブ信号がオン(ロー)の間に、
データを取り込まなければなりません。
このような意味とタイミングを持った信号のことを、
一般にストローブ信号 と呼んでいます。
コンピュータからデータを受け取ることに関しては、確認方式にはなっていません。
◆ 昔の機械式のプリンタは別ですが、最近のプリンタは、
印字自体は機械式であっても、コンピュータとの
インターフェース部分は、電子回路です。コンピュータからの
データは、高速で受け取ることができます。非確認でも
問題はありません。
しかし、受け取ったデータを印字したり、紙送りをしたりするには、
時間がかかり、しかもその時間は一定ではなく、大きくばらつきます。
したがって、動作が完了するまで、ビジー/アックノウリッジの
確認信号で、コンピュータに待ってもらうのです。
◆ セントロニクスインターフェースは、以上のように、非確認の部分を
含んでいます。しかし全体としては、確認を取っていますから、
非同期確認方式に属します。
この例からも分かるように、非同期確認方式は、処理時間が
大きくばらつくときに、効率よく伝送を行うことができます。
このようなところに、同期非確認方式を使用すると、最も遅いものに
合わせて、速いものまで無駄に時間を空費してしまいます。
これに対して、処理時間が、ほぼ一定のシステムには、
同期非確認方式が向いています。
★ 図.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
のように書きます。
◆ 直列伝送における同期方式は、同期式 と非同期式
の 2 種類があります。
同期式は、並列伝送における同期非確認方式と、基本的には同じ
ものです。これに対して非同期式は、並列伝送の非同期確認方式とは、
全く異なるものです。
本格的な長距離伝送は、直列伝送ですが、インターフェースと呼ばれる
短距離の伝送でも、最近は直列伝送が主体になっています。
そして、これらの多くは、同期式です。
◆ 直列伝送 は、元々は、長距離伝送のために考えられた
方式です。長距離伝送では、信号線の本数が多いと高価になりますから、
信号線の本数が問題です。また、効率よく使用するためには、伝送速度
を保証する必要があります。
この両方の意味で、非同期確認方式
は落第です。同期非確認方式の方が
適しています。なお、直列伝送では、呼び名は、単に
同期式 です。並列伝送と基本的には同じですが、
若干の違いがあるので、名前も別になっています。
◆ 並列伝送では、同期非確認方式は、伝送速度が一定とは限りませんが、
一定またはこれに準じるものが多くなっています。直列伝送では、
伝送速度は、一定です(図.22)。
◆ 伝送速度が一定ですから、制御信号は、クロック と
呼んでいます。
送信側は、クロックの立ち下がりのタイミングで、データを
切り換えます。受信側は、送られてきたデータを、クロックの
立ち上がりで読み込みます (ハイアクティブ
の場合)。
このように、ビット毎に同期を取る方式のことを、
ビット同期 といいます。同期式では、ビット同期を
取ることによって、受信側は、送られてきたデータの各ビットの
0/1 を読み取ることができます。
◆ しかし、実際にデータを利用するためには、ビット同期を取った
だけでは不十分です。一般には、もっと大きなデータの塊の開始を
識別する必要があります。このデータの一塊のことを
フレーム といいます。そして、フレームの始まりを
識別することをフレーム同期 といいます(図.23)。
◆ 図の SYN は、フレームの開始を識別するために送信側から送り出す、
フレーム同期信号 (特定のビットパターン) です。
ビット同期が取られていることが前提ですから、受信側では、
このビットパターンを検出することができます。これによって、
フレーム同期を取ります。
◆ フレームの形式や、フレーム同期の取り方は、各種ありますから、
ここでは概念だけを示しました。さらに具体的なことは、
個別の各方式のところで説明する予定です。
汎用されている方式は、マイクロプロセッサに内蔵、または IC 化
さています。ユーザーは、単にネットデータを IC 等と、
やり取りすれば良いようになっています。
◆ 線の本数が少ない方がよいという立場から言えば、最低の 1 回線で
伝送できれば、それが最良です。この条件を満足するのが、
非同期式 です。非同期式は、パソコン インターフェース
として、広く使用されています。
◆ 非同期式は、キャラクタ (文字)を単位としています。
1 キャラクタは、先頭に 1 ビットのスタートビット 、
後尾に 1 ビット (または 2 ビット) のストップビット
を有し、その間にデータ(文字)が入っています(図.24)。
◆ キャラクタを送っていない状態をアイドル といいます。
アイドルは、1 (ハイ) です。
キャラクタの先頭は、スタートビットで、スタートビットは 0 (ロー) です。
したがって、1 から 0 への変化があります。この変化が、
キャラクタの開始を示す同期情報です。すなわち、スタートビットは、
ローアクティブです。
◆ 伝送速度は決まっていますから、受信側は、スタートビットを
検出すれば、あとは、自分でタイミングを取ることによって、
データの各ビットの位置を割り出して、そのビットのデータを読みとる
ことができます。
◆ キャラクタの最後はストップビットで、ストップビットは 1 です。
したがって、次のキャラクタが引き続いて送られてきても、
次のキャラクタのスタートビットでの、1 から 0 への変化
がありますから、スタートビットを検出することができます。
◆ 次のキャラクタが、任意の時間を置いて送られてきたときも、
ストップビットに引き続くのはアイドルの 1 です。したがって、
次のキャラクタを検出できます。
非同期式では、以上のように、キャラクタ単位で同期を取ります。
このような同期の取り方を、キャラクタ同期 と呼んでいます。
◆ 非同期式は、スタートビットとストップビットがありますから、
ネットデータで考えた、実効伝送速度は、その分低くなります。
しかし、伝送路が 1 回線で済むという、大きなメリットがあります。
非同期式では、キャラクタ (ネットデータ) のビット数は、
5〜8ビットの範囲で選ぶことができます。また、このネットデータに、
パリティビット を付加することが可能です
(コラム1.3参照)。
◆ しかし、データ長がキャラクタ単位であるという制約があります。
ただし、この制約があっても、色々な長さのデータを取り扱うことが
できます。実用上あまり問題は無く、十分汎用性があります。
◆ 非同期式は、マイクロプロセッサにその機能が内蔵され、または、
外付けの専用 IC を使用することができます。
この場合、ユーザーからはネットデータだけを貰えばよく、
スタートビット等の附加および制御は、IC 等でやってくれます。
パリティビットの附加、チェックも IC 側で行います。
(1) 伝送誤りと伝送誤り制御
★ 電子回路はノイズに弱く、ノイズによって誤動作し易いという欠点
があります(
講座 ノイズ対策技術参照)。しかし、ノイズで誤動作するようでは、
製品として価値がありません。ノイズ対策を施して、
ノイズによる誤動作を起こさないようにします。
★ しかし、データ伝送では、ノイズ環境が悪いところを長距離引き回す
ことがあります。このような場合には、ノイズ対策によって、
ノイズによる誤動作をなくすことは不可能です。伝送路において
発生する、避けることできない誤動作のことを、伝送誤り
といいます。
★ だからといって、誤動作したデータを、ユーザーに引き渡すわけには
行きません。伝送誤りが発生したとき、それを検出し、正しいデータに
訂正して引き渡すようにします。これを、伝送誤り制御 といいます
(伝送誤り制御についての詳細は、第 8 章 参照)。
伝送誤りの発生は、確率現象です。そして、伝送誤りの検出も、
伝送誤り制御もまた、確率現象です。したがって、100% 完全な
伝送誤り制御は存在しませんが、実用上十分な伝送誤り制御は可能です。
(2) 具 体 例
★ 伝送誤りの検出方法は各種あります。誤り検出能力は高いが複雑なもの
もあります。逆に簡単ですが誤り検出能力は高くないものもあります。
後者の代表例が、パリティチェック です。
★ 伝送誤りを検出すりためには、送信側で、誤り検出のためのビットを 附加することが必要です。受信側では、そのビットを利用して誤りの 有無を検出します。パリティチェックにおいては、送信側で、 パリティビット を付け加えます。パリティには、 偶数パリティと奇数パリティとがあります。
★ 受信側では、付加されてきたパリティビットを利用して、 伝送誤りがあったかどうかをチェックします。
★ 伝送誤りが無ければ,そのデータを受け入れます。伝送誤りが検出された 場合には、そのデータを再送して貰うなどの、伝送誤り制御を行います。
★ なお、非同期式の IC がやってくれるのは、送信側でパリティビットを付け加えることと、受信側でパリティチェックを行い、エラーがあったかどうかを示すことです。その後の再送処理などは、ソフトウェアで実行する必要があります。