2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

リレーのみでCPUなどを作る方法

Last updated at Posted at 2022-11-27

リレー

リレーって知ってますか?

メカニカルでかっこいいですよね

制御盤配電盤にたくさん入っています。

image.png

画像は制御盤で有名なリタールのページより持ってきました

これくらい大きなリレーもあります。定格電流は9Aです。 これぐらいの電流になると **内部にガスを封入** するなどの工夫も行われます。

リレーとは

リレーは電磁石によってスイッチを切り替える部品です。

1.jpg

コイルのON,OFFで端子C,D間の導通が切り替わります

組み合わせ回路

NOT回路20.png

IN OUT
Low High
High Low

AND回路

21.png

IN_A IN_B OUT
0 0 0
1 0 0
0 1 0
1 1 1

Low状態について

リレーにおいてLow状態は電圧がかかっていない状態(ハイインピーダンス状態)です。
GNDにつなぐことももちろんできます。

22.png

こんな感じで。

しかし、つなぐ必要はありません。
なぜなら、コイルはハイインピーダンス状態ではONにならないからです。

切り替え時のハイインピーダンス状態について

22.png
この場合、出力はスイッチのON,OFF動作の間で一瞬ハイインピーダンス状態を取ります。
後段のリレーが影響を受けないようにコンデンサ等を挟むことが必要になる場合があります。

重要な欠点:逆流

リレーで論理回路を組むときに重要なこととして逆流があります。

リレーのスイッチには方向性がありません。
23.png

OUT端子がHIGHになったことで入力AもHIGHになります。

入力A端子がHIGHになったことで前段のリレーの出力端子がHIGHになってと連鎖して誤動作する可能性があります。

ただし、LOW状態がハイインピーダンス状態なので、ショートは起きません

忘れがちなこと:リレーのコイルに極性がない場合がある

これは知らなかったのですが、リレーのコイルに極性がない場合があります。
どちらの方向から流してもONになります

もちろん、極性があるリレーもあります。

忘れがちなこと:リレーは電流駆動

25.png

このような回路の場合、コンデンサが充電放電する一瞬のみ電流が流れます。
コイルは電流が流れた時、磁性を持つので充電放電する一瞬のみONになります。

(注)リレー回路はGNDの代わりにハイインピーダンス状態なので、放電させるために抵抗を並列に挟む必要がある。

ワイヤードOR

リレーのみから外れますが、OR回路に関しては
28.png
ダイオードの並列接続でOR回路を実現すれば、だいぶリレーの数を減らせます。

ダイオード無しでつなぐと、前述の逆流が起きる可能性があるので注意がいります。

その他の論理回路に関しては

こちらのサイトが詳しいです。

順序回路

自己保持回路

4.png

端子AをONにするとスイッチが切り替わります。
5.png

端子AをOFFにしてもスイッチは戻りません
6.png

欠点

  • "1"になったら二度と"0"にならないので、”Reset”を別に用意する必要がある
  • CLKで動作するのではなく、「”1”になったことがある」ということを記憶する
  • つまり、いつでも入力が”1”になれば、「”1”になったことがある」ということを記憶する

レジスタ回路

をもとにしています。

基本的なアイデアは

26.png

この2段の自己保持回路を1bitのレジスタになるようにする考えです。

  • RA0,RB0は自己保持回路で入力の状態を保持します
  • R6,R5のスイッチを切ることで自己保持回路をリセットします
  • 2段にすることで、「自己保持回路の「”1”になったことがある」ということを記憶する」能力をレジスタへと変化させます

流れ

  1. RA0をリセットします(R6をOFF)
  2. R8をONにしてRA0が入力を記憶します。
  3. RB0をリセットします(R5をOFF)
  4. R7をONにしてRB0がRA0を記憶します。

これで入力がレジスタに保持されました。
(注意)前述の出力の逆流が起きる可能性があるので後段に注意してください

1段じゃダメなのか(追記)

RA0の一段じゃダメなのかという疑問もあると思います。
1段で問題ないです!

27.png
これでも問題ない!

ただし、記憶するためには一度リセットする必要があります。つまり、保持するために一度出力が”0”に落ちます。
シフトレジスタのように前段レジスタを後段にどんどん移動させる場合、前段のレジスタとリセットを同時にすると全部忘れてしまうので2段必要になります。

CPUの場合は選択的にReset,CLKを入れることになるので1段でも大丈夫でしょう。

カウンタ回路・エッジ検出など

こちらのサイトが詳しいです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?