Nの電子講座・電気屋養成編
第8回 マイコン(1)



目次



8.マイコン
それでは電子制御の中心であるマイコンの話に入りましょう。難しいと思いますががんばって下さい。



8−1.マイコンの利点
8−2.マイコンのしくみ
マイコンシステムに最低限必要なものは
    ・MPU(Micro Processing Unit。CPUともいう。一番重要な頭脳部)
    ・ROM(Read Only Memory。プログラム本体や、決まったデータを入れておくメモリー。簡単に書き換えできない)
    ・RAM(Random Access Memory。一時的なデータを読み書きするメモリー。書き換えが容易)
の3つです。他にこれらを制御したり周辺機器との窓口(I/Oポートといいます)となるデジタルICが多少必要です。
では、マイコンはどういう風に動作しているのか、おおざっぱに見てみましょう。
  1. MPUがROMから命令を読み出す。
  2. MPUはその命令に従って、データを読み書きしたり、計算したりする。
  3. また次の命令をROMから読み出す。
これの繰り返しです。これは昔も今も変わりません。
ではここからは具体的に「Z80」という、8ビットパソコン全盛期に一世を風靡したMPUについて話していくことにします。今でも簡単な制御用として多用されていますし、比較的容易に使用することが出来ます。(ちなみにNECのPC-8001やPC-8801、また各社が出していたMSXというパソコンをご存知の方は、あれに使われていたMPUだといえばお分かりでしょうか?)

@Z80の動作の概要
    Z80は40ピンのパッケージに入ったICです。8ビットマイコンなのでデータバス(メモリや外部装置とデータをやりとりする時の通り道)は8本、アドレス空間は64kバイトなのでアドレスバス(メモリや外部装置のアドレスを指定するための線)は16本あります。ではそれぞれのピンの役割について書き出してみましょう。今は理解できなくても全然構いません。(I:Input O:Outputを表しています)

      ・データバス(I/O):MPUとその他とのデータのやり取りをする通り道。
      ・アドレスバス(O):メモリーや外部装置のアドレスを指定する。
      ・メモリリクエスト(O):メモリーを読み書きすることを示す。
      ・I/Oリクエスト(O):メモリー以外の外部装置を読み書きすることを示す。
      ・リード(O):メモリーや外部装置からデータを読み込むことを表わす。
      ・ライト(O):メモリーや外部装置にデータを書き込むことを表わす。
      ・割込み要求(I):周辺機器がCPUに割り込みを要求するときにONにする。
      ・リセット(I):MPUにリセットをかけるときにONにする。
      ・クロック(I):CPUが動作する基準となるクロックを入力する。初代は2.5MHzだったが、最近では10MHzほどで動く。

    ではさっき(1)で述べた、ROMから命令を読み出す様子を、もう少し詳しく見てみましょう。命令は8ビットのデータバスに乗ってやってくる、8ビットの値です(正確にはもう少し複雑ですが)。

    1. アドレスバスで次の命令の入ったROMのアドレスを指定するとともにリードとメモリリクエストをONにする。
    2. ROMがデータバスに命令をのせる。
    3. MPUがそれを読み込む。

    という具合です。そしてその命令をMPUの中で解釈して、それを実行します。実行が終わったら、その次の命令の入ったアドレス(普通はすぐ次のアドレス)を指定して、次の命令を読み込みます。読み込んだ命令が、外部装置からデータを読み出せという命令だったときは次のように動作します。

    1. アドレスバスの下位8ビットでI/Oポートアドレスを指定し、リードとI/OリクエストをONにする。
    2. 外部装置がデータバスにデータを乗せる。
    3. MPUがデータバスからデータを読み込む。

    といった具合に、メモリからデータを読み込む場合とよく似ています。違うのはメモリリクエストの代わりにI/OリクエストがONになることです。

    AMPUの命令
      これまで命令と簡単に言ってきましたが、一体どんな命令があるのでしょうか。MPUの命令はとっても単純です。これまでパソコンには高度な事が出来ると期待していた人にとってみれば、あきれるぐらい簡単なことしか出来ません。ではそれをみていくことにしましょう。

        ・メモリから内部レジスタ(MPUの中にある、一時記憶装置)へのデータ読み込み、また逆にレジスタからメモリへのデータ書き出し
        ・レジスタ同士のデータ読み書き
        ・メモリやレジスタ同士の足し算、引き算、演算(ANDやORという例のやつです)
        ・外部装置との読み書き
        ・命令を読み込むアドレスのジャンプ
        ・あるビットだけ0にしたり1にしたりする

      せいぜいこんなとこです。掛け算すら出来ないのです。しかも命令は8ビットの数字なので例えば4AとかD7とか58とか、人間が見ても理解できないものです。これではあまりに不便です。そこである程度人間がプログラムを書きやすくする必要がありました。それが「アセンブリ言語」と呼ばれるものです。これに対して、さっきの数字の羅列のことを 「機械語」と呼びます。アセンブリ言語はパソコンの力を借りて、アセンブラと呼ばれるソフトで、機械語に変えます。それをROMに書き込めば、OKです。


8−3.ROMとRAM
7−1でROMとRAMについてその役割を少し説明しました。ではROMとRAMにはどんな種類があるのか、見ていくことにしましょう。

@ROM(Read Only Memory)
    ・マスクROM
      工場でROMを作る際にデータも書き込んでしまったもの。同じデータを持つROMの大量生産が可能だが、書き換えは出来ない。
       例:ファミコンカセットのROM
    ・ワンタイムP-ROM(Programmable ROM)
      1度だけ書き込みの出来るROM。昔はROM内にヒューズがあり、必要なところだけ高電圧で焼き切って1と0を書き込む方式もあったが最近では中身は次のEP-ROMと同じで、窓のない普通のプラスチックパッケージに入れただけの物がほとんど。
    ・EP-ROM(Erasable Programmable ROM)
      ROM内部に絶縁物で囲まれた部分が1ビットごとにあり、ここに高電圧で電子を注入することで1と0を書き込む方式。紫外線を当てるとこの閉じこめられた電子にエネルギーが与えられてそこから飛び出すので、これで内容の消去が出来る。紫外線を当てるため、ガラス窓付きのセラミックパッケージに入っている(このため少々高価)。何度も消去が可能なので、最近までこれがよく使われていた。
    ・EEPROM(Electrical Erasable Programmable ROM)
      紫外線ではなく、電気的に一部分だけ消去が出来るROM。RAMと似た使い方が出来るが、RAMの用に電源を切ってもデータが消えることはない。ただし読み書きはRAMより格段に遅く、内部構造が多少複雑なので、大容量が作りにくく、高価。
    ・フラッシュEEPROM
      最近一番注目されているROM。EEPROMとほぼ同じだが、原則として一括消去しか出来ない。その代わりDRAM並の大容量が実現可能なので最近急激に使われだした。パソコンのHDDの置き換えをねらっていると言う話もある。ただし欠点は消去回数が限られること(500〜1000回)
       例:電池式でないメモリーカード


ARAM(Random Access Memory)

    ・SRAM(Static RAM)
      フリップフロップがデータを蓄える機能を利用したRAM。一度書き込むと電源を切らない限りデータが消えない。高速動作が可能で低消費電力だが、大容量化ではDRAMに負ける(理論的にはDRAMの1/4の容量しか作れない)。現在容量はMax16Mbit、スピードは4nS(250MHz)ぐらい。
       例:電池式メモリーカード・キャッシュメモリ(PC)
    ・DRAM(Dynamic RAM)
      コンデンサが電気をためる機能を応用したRAM。ただしコンデンサが放電しきる前に再び充電しなければ、データが消えてしまう。そのため定期的に充電する、リフレッシュと呼ばれる作業が必要で使いにくい。ただし構成が単純で大容量化が可能なため、PCのメインメモリー用として多用されている。現在容量はMax128Mbit(256Mbitも開発中)、スピードは60nSぐらい(ただし高速アクセスモードでは条件が合えば6nS)
       例:PCのメインメモリー





第9回へ

電子講座のトップに戻る