沼津高専 電子制御工学科
CPUボード調査報告書
MIRS9902-TECH-0009
改訂記録
版数 作成日 作成者 承認 改訂内容 提出先
A01 H12/1/18
河野丈志
河野丈志 初版

MPUボード

MPUボードとはCPUボードとI/0ボードという2枚のボードで構成されている。 CPUボード(名称 VMBC-1)にはRS232C用のコネクタが2つ搭載されており、そ のコネクタを通し、外部の機器(パソコンなど)とのデータのやり取りをして いる。また、I/Oボード(名称 VIPC310)にはロータリーエンコードとIP-Digital48を搭 搭載できる。IP-Digital48ボードには、さらにMC68230 PARALLEL INTERFACE/TIMER(PI/T)(50ピンのコネクタ)を搭載していて、それで外部とのデータのやり取りをする。 ここではCPUボードについて解説する。


CPUボード
名称VSBC-1 Single Board(68HC000) Computer Module for the VMEbus
CPUMC68000 クロック :12.5MHz(16.7MHzに変更可能)
サイズ100×160(mm) (これはVMEbusの規格の大きさの一つでシングルハイトという)
製造元PEP Modular Computer
RAMSRAM 256KB×2
ROMEPROM 128KB
Serial I/O68562DUSCC:ポートA,ポートBの2つのポートが使える。
Parallel I/OMC68230:PI/Tを搭載する。16のパラレルI/Oライン (8bit×2port)と4つのハンドシェークラインを待つ。そして24bitのタイマ/カウンター を持つ。これにより、ハードウェア割り込み、タイマ割り込みなどが行える。
Realtime Clock12/24時間時計、曜日カウンター、アラーム、タイマ割り込み
VMEbus interfaceインターフェイス:A16:D16/D8 MASTERコネクタ:DIN4612 C型 96pin P1コネクタ
Power通常DC5V(±5%),750mA
RS232C使用時 DC±12V 100mA
RAM,RTCのバックアップ用の電源リチウム電池 800mAh(on-boar Battery)
Temperature ranges (使用温度範囲) 動作時:0℃かた+70℃ (標準)
-25℃から+85℃ (拡張)
* +85℃以上ではバッテリーをはずす。
-55℃から+125℃ (軍事用) 保存時 -55℃から+85℃
Watchdog400msecごとに信号が送られてこないと、以上が発生したとしてシステムリセットを行う。
ClockCPUクロック×1 システムクロック×1 RTCクロック×1 DUSCCクロック×1
Interrupt handler7levelの割り込みが可能(IRQ1からIRQ7)。システムが設定しているオートベクタは下の表に通りである。

オートベクタ
Abort switchlevel7
ACFAILElevel7
RTC/TICKlevel6
DUSCClevel5
SYSFAILlevel4
PI/Tlevel3
SCSIlevel2

MPU68000について(ここでいうMPUとCPUは同義)

1.特徴
モトローラ社のMPU68000は、特別な入力命令を持たず、I/Oをメモリー空間に配置する メモリーマップト方式を採用している。そのため常に16Mバイトに目盛空間に一様にアクセスできる。68000では常にCLK入力の10クロック分のE信号を定期的に出力している。通常68000のデータ入出力はE信号と関係なく非同期に行われている。68000は16ビットのMPUでありながら内部レジスタは、すべて32ビットになっている。また、レジスタは用途に関してはあまり制限の多くない汎用レジスタ方式を採用している。レジスタ間のデータ転送などの回数を減らすことができる。

2.レジスタ
68000のレジスタはデータレジスタ(32ビット)をD0〜D7の8個、アドレスレジスタ(32ビット)をA0〜A7の8個、ステータスレジスタ(16ビット)を1つ、プログラムカウンタ(32ビット)がある。ただA7はスーパーバイザ用スタックポインタとユーザ用スタックポインタの2つの兼用としてはじめから用途が決まっている。スーパーバイザ用か、ユーザ用かはステータスレジスタのステートビットによって決まる。
* アドレスレジスタは32ビットあるがICのアドレスバス用のピンは、24ビットである。 そのため16Mバイトのメモリ空間となっている。

3.スーパバイザモードとユーザステート
68000は、実行時の状態をスーパバイザモードとユーザモードの2つに分けて、いくつかの命令はスーパバイザステートのときにしか実行できないようにしている。これは68000がユーザがかってに使っては困るようなシステム関係の命令を持っているためである。これらの命令は特権命令と呼ばれ、ステータスレジスタの変更や割り込み処理に関する命令群がこれに属する。スーパーバイザモードか、ユーザモードかはステータスレジスタのステートビットによって決まる。

4.68000が扱えるデータ型 68000は1、4、8、16、32ビット長のデータを取り扱うことができる。これらの内容としてはビットデータ、BCD、バイトデータ、ワードデータ、ロングワードデータがある。データレジスタは4種類のデータを保持することができるが、アドレスレジスタは16ビット、32ビットを単位をとして扱う。

5.例外処理
例外処理VECTORは、MPUが例外処理ルーチンのアドレスを得るために0〜255番までの256種類が用意され、0番地から3FF番地までの1Kバイトに配置されている。このため必要に応じた例外処理プログラムの先頭番地をVECTOR TABLEに書き込んでおかなければならない。例外処理には、MPUが以上と判断することにより発生するものもあるが、リセットや割り込み、さらにトラップ命令に対しての処理も例外処理として分類されている。どの場合にも例外処理は定められたベクタをフェッチし、ベクタに書かれたアドレスから命令を実行することにより開始する。

6.バスインターフェイス機能
68000のバスインターフェイスの大きな特徴は非同期式インターフェイスである。この非同期式インターフェイスはバスクロックを持たない。その代わりバスサイクルの終了はI/Oやメモリからのデータを受け取ったという応答信号(DTACKバー Data Transfer Acknowledge)によって行われる。この方式は多少回路の増大があるものの、システムの融通制が増すので16ビットシステムとしては適切なものである。68000は更に同期型インターフェイスモードに切り替えて古い8ビット周辺LSIにも接続できる。8ビット周辺LSIは16ビットシステムにおいても重要なI/O機器の接続を可能にする。

7.MPU68000の端子機能

  • アドレスバス(A1〜A23)
    A1からA23の23本のアドレスバスがある。端子としては23本だが、後述のUDSバー、LDSバーの信号線とあわせて24ビットのアドレス信号により16Mバイトもメモリ空間にアクセスすることができる。16進表示で$000000番地から$FFFFFF番地となる。
  • データバス(D1〜D15)
    16ビットの双方向性で1℃に16ビットもデータを転送することができる。場合によっては上位8ビット(D8〜D15)だけを使ったり、下位8ビット(D0〜D7)だけを使うことも出来る。32ビットもデータ転送は16ビットずつ2回に分けて行われる。68000では32ビットデータをロングワード、16ビットデータをワード8ビットデータをバイトと呼んでいる。
  • 非同期制御信号(ASバー、R/Wバー、UDSバー、LDSバー、DTACKバー)
    メモリやI/Oとのデータ転送においてもっとも基本的は信号であり、DTACKバーを除く信号は同期式のデータ転送にも使われる。
    1.ASバー(Adress Strobe)はアドレスバス上に有効なアドレスが確定していることを示し、同時にMPUがメモリをアクセスしていることも示している。
    2.R/Wバー(Read/Write)はデータ転送の方向を示しており、Hでread、Lでwriteを表す。
    3.UDSバー、LDSバー(Upper Data Strobe、Lower Data Strobe)はデータ転送をワードサイズか、バイトサイズかを表す。UDSバーは上位8ビット、LDSバーは買い8ビットに対応している。両方の信号が有効になればワードデータ、UDSバーが単独に選択すれば上位8ビット、LDSバーが単独で選択されれば下位8ビットのみとなる。
    4.DTACKバーは非同期バスを実現すための特徴的信号である。MPUはこの信号が外部から入力されるまでデータ転送のサイクルを終了しない。DTACKバーが早く入力されればR/Wのサイクルは早く終わり、遅ければ遅く終わる。つまり外部デバイス(メモリや周辺LSI)のスピードに応じて早くも遅くも自由に調節でき効率のよいデバイスを構成できる。設計者はこれらのことを考慮してDTACKバー発生回路を作成しなければならない。
  • 68000周辺制御信号(E、VMAバー、VPAバー)
    68000MPUを使ったシステムに、6800などの8ビットMPUで使っていた周辺LSIを接続するための端子である。8ビットMPU用の周辺LSIは同期式データ転送を行っている。そのためE、VMAバーを使って同期式データ転送が出来るようになっている。
    1.E(Enable)は同期式データ転送におけるクロックとして働き、Eの足り下がりに同期して、データ転送が行われる。68000のクロックΦ2信号、6809のE信号に相当する。
    2.VMAバー(Vaild Memory Address)は68000が同期式でデータ転送していることを示す信号で周辺LSIはVMAバーが有効になっている間Eの立ち下がりを使わなければならない。6800のVMAに相当する。
    3.VPAバー(Valid Peripheral Address)はMPUに対して、同期式データ転送を要求するための端子である。したがって同期式データ転送が必要なデバイスからアクセスされたとき、この端子を有効にしてやればよい。MPUはメモリや周辺LSIをアクセスしたときには、そのデータが同期式であるか非同期式であるかは分からない。DTACKバーが有効になれば、非同期式であり、VPAバー有効であれば同期式である。
  • 割り込み入力端子(IPL0バー〜IPL2バー)
    68000は優先順位のついた7つの割り込み(レベル1〜レベル7)を使うことが出来る。優先度はレベル1が最も低くレベル7が最も高い。またレベル7はNMI(NonMaskable Interrupt)として働く。IPL0バー〜IPL2バーの3本を使って(000)2〜(111)2にコード化した割込み信号を入力する。(000)2は割込み要求のない状態である。
  • バスアービトレーション制御(BRバー、BGバー、BGACKバー)
    バスアービトレーションとはバスの配分であり、MPU以外にバスを使うデバイスがある場合にバスを使う権利(バスマスタ権)のやりとりをするための信号
    1.BRバー(Bus Request)はMPUいがいのデバイスがMPU(バスアービタを持つボード)にたいしてバスマスタ権を要求する信号である。
    2.BGバー(Bus Grant)はBRバーに対する対応信号であり、MPUは次のサイクルでバスマスタ権を放棄する。(つまり外部デバイスがバスマスタをして使えることを意味する。)
    3.BGACKバーはBGバーを受けた外部デバイスが現在バスマスタとしてバスを占有しているをことをMPUと他の外部デバイスに知らせる信号である。
    これらの3本の制御信号を使うことにより、効率のよいバスマスタ権の受け渡しが行われる。
  • プロセッサステータス(FC0〜FC2)
    MPUがどうのような状態で作動で作動しているのかを知らせる信号である。 スーパーバイザ状態かユーザ状態か、データのアクセスかフェッチか、また割込み信号を受けた状態などを3ビットにコード化して出力している。
  • システムコントロール(BERRバー、RESバー、HALTバー)
    1.BERRバー(Bus Error)はデータ転送に異常があることをMPU知らせる信号である。MPUはBERRバーが有効になると現在のバスサイクルを中断しバスエラー例外処理を実行する。
    2.RESバー(Reset)は通常入力端子として働きシステムリセットを行う。ただし、リセット命令を実行したときは出力端子として働き、リセット端子に接続された外部デバイスのリセットを行う。
    3.HALTバー(Halt)は通常入力端子として働きMPUのホールとに使われる。HALTバー信号が有効になるとMPUは現在のバスサイクルを終了後ホールとされる。ホールと状態ではアドレスバス、データバスはスリーステート状態、R/Wバー、ASバー、UDSバー。LDSバーは'H'になる。HALTバー端子が出力として動作するのは2重バス障害(ダブルホールト)が発生したときである。2重バス障害とはバスエラーが続けて2回起こることであり、MPUはみずからホールと状態に入り、リセット以外では回復できない。
  • その他の信号(CLK、Vcc、Vss)
    CLK(CLock)はMPUが動作する基本となるクロック状態であり、一定の周期を持っていなければならない。またいかなる場合にもとまってはならない。最高周波数はバージョンにより6.0,8.0,12.5MHzものがある。いずれのバージョンでも最低周波数は4.0MHzである。Vcc(電源)、Vss(設置)は各2ピンある。これはLSIのチップ内での電位を安定に保つためであり、2ピンとも接続しなければならない。

  • 参考資料
    1.MIRS9804 MPU調査報告書
    2.トランジスタ技術No.2 MC68000の制御