簡易データ送受信チップ仕様

by K.I

Index


概要

簡易的なデータ送受信を行なうプロトコルを定義して、 送受信用のチップをプログラムした。
[top]

ハードウェア仕様

MicroChip社の 12C509Aを使用した。このチップの特徴として

送信回路

受信回路

CR発振でボーレートを正確に合わせることが出来ないため、受信部では最初に転送速度の調整を行なってから受信動作に入るようにした。
1ページ切替えすれば範囲外も可能ではあるが、かなり面倒になる。
2あまり意味はないが、デバッグ用として。
3それ以外のコードを受けると即座にスリープ状態に入る。
4送信回路が連続モードに入るのが約1秒なので、その前に受信待機状態に入る必要があるため。

[top]

プロトコル

以下のような各5bitのデータを順に送信する。 以下に、送信データの例(データ'A'を送信)を示す。

4B/5B変換

NRZIでのクロック挿入とコントロール用の信号を付加するために、4bit信号を5bitコードに拡張してから、データ送信する。
data(4bit) code (5bit) Interpretation
0000 11110 data 0
0001 01001 data 1
0010 10100 data 2
0011 10101 data 3
0100 01010 data 4
0101 01011 data 5
0110 01110 data 6
0111 01111 data 7
1000 10010 data 8
1001 10011 data 9
1010 10110 data A
1011 10111 data B
1100 11010 data C
1101 11011 data D
1110 11100 data E
1111 11101 data F
---- 11111 idle
---- 11000 start
---- 01101 end
---- 00100 error

NRZI変調

データの変化が、データ1を表すデータ変調方式。 変化点を挿入する工夫が必要となる。例えば、
5NRZIなので、どちらでも良いのだが、なんとなく。

[top]

ソフトウェア開発


[top]

回路例

この送受信チップを使った回路例を以下に示す。
[top]

注意点


6但し、これは送信受信のクロック周波数がかなり変動した場合である。クロックとデータとのズレはデータ'1'の時に同期されるので、そんなに大きくならない。

[top]

改訂履歴


7最初RXEはそういう仕様で作り始め、その後RXデータをそのまま出力する仕様に変えたのだが、以前のコードが残っていた。


comments powered by Disqus