解決済みの質問
>でもなんのことを言ってるのかさっぱりわかりません。
説明が舌足らずで済みませんでした。
とりあえずシリアル通信の説明をしたかったのですが
#2のように、必ず偶数ビットが1のデータを送る場合に
・の後のように前が奇数だったら1を偶数だったら0を付加して送信します。(2進数の0~7はわかりましたか?)
これには、まず一番目と二番目のEORを取ります
00と11は0 10と01は1になりますね
これと3番目のEORを取ると
同様に 00/11→0 10/01→1
となり、パリティビットが出来ます。
下の場合
0/3/5/6は元が偶数なので0
1/2/4/7は元が奇数なので1
となります(・の後ろです)
これを受信側でも
1番目と2番目のEOR→仮に5番
3番目と4番目のEOR→仮に6番
5番と6番のEOR----答え
答えが1になってしまうと送られてきたでーたは奇数だったということになり、必ず通信エラーがあります
→通常は再送してもらいます。
答えが0の場合はデータ数は偶数だったということになり、
エラーは出しません。(2ビット間違えている可能性があってもです)
長々と書きましたが、わかりましたか?
あと、ymmasayanさんの書かれた物ですが、
(1)はアドレスデコーダなどによく使用します
複数の同じカードをさしてもマザーボードで設定する事により、設定変更なしに差し替えても問題なく動作します。
(3)は正論理・負論理の切り替えなどに相手の仕様が不明な時など、保険に入れることがあります。
→入力バッファのかわりにEORを入れておき反対側をまとめてプルアップしておく(反転)ここをGNDにジャンパすることにより(そのまま通過)です。
投稿日時 - 2002-05-16 20:51:13
1人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(4件中 1~4件目)
#4の自己補足です
十進と二進の対応を忘れてました
0:000 1:001 2:010 3:011
4:100 5:101 6:110 7:111
です、RS232(COMポート)などは
スタートビット(これから送るぞ)+データ7または8ビット+パリティビット(偶数・奇数・無し)+ストップビットの順に送信します(データを送る順番は実際にはLSBから送信されるので、右から左に送られますますが概念を理解する場合は左から右で考えて下さい)
また、#4で書いている偶数/奇数は1の数が偶数個か奇数個かと言うことですので3や5は偶数個です
投稿日時 - 2002-05-16 21:13:37
EORは、一見へそ曲がりですが、いろんな使われ方をしています。
言葉は悪いが世間に身を隠した落し胤。時々、キラッと光る。
本論に戻って、
(1)一致回路に使います。一致してればゼロ。1ビットでも違っていれば≠0となります。
(2)パリティ生成に使います。(解説済みなので省略)。最近ではRAID(安価ディスクアレイ)でも注目を浴びています。
(3)ビット反転、特に1の補数や2の補数を求めるときにとてもお世話になります。
あえて、もう一度いいます。EORは日陰者ではありません。十分、お役に立っています。
投稿日時 - 2002-05-16 00:06:41
お礼
ありがとうございます。
投稿日時 - 2002-05-16 10:33:36
パリティとは
めんどくさいので、3ビット+1パリティで説明します
(通常の通信では7/8ビット)
まず、3ビットで表される数値は十進で0~7となります
それらに対してパリティを付加すると(偶数にします→奇数の場合は・の後ろの1と0を逆に読んでください)
000・0 001・1 010・1 011・0
100・1 101・0 110・0 111・1
となります、これはデータの個数を一定にすることにより、通信線路でノイズなど異常があった場合に検出をする事が出来、信頼性が増します。
(送り側と 受け側で同様に排他論理和の回路を作成して検出します)
※検出出来るのは奇数ビットが化けた場合で、偶数ビットの場合は検出出来ないのが欠点です。
また、メモリ-のパリティ付きも原理的には同じです。
投稿日時 - 2002-05-15 21:40:13
お礼
ありがとうございます、
でもなんのことを言ってるのかさっぱり
わかりませんん、
投稿日時 - 2002-05-16 16:04:41