沼津高専 電子制御工学科 |
CPUボード調査記録 |
MIRS9905-TECH-0008 |
|
改訂記録 |
版数 |
作成日 |
作成者 |
承認 |
改訂内容 |
提出先 |
A01 |
1999.12.16 |
八窪 |
八窪 |
初版 |
|
MPUボード
はじめに、MPUボードはCPUボードとI/Oボードの2枚で構成されている。
CPUボード(名称 VSBCー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 |
CPU | MC68HC000 クロック : 12.5MHz(16.7MHzに変更可能) |
サイズ | 100×160 (mm) |
製造元 | PEP Modular Computers |
RAM | SRAM 256KB×2 |
ROM | EPROM 128KB |
Serial I/O | 68562DUSCC :ポートA,ポートBの2つのポートが使える。 |
Parallel I/O | MC68230 :PI/Tを搭載する。16のパラレルI/Oライン(8bit×2ports)と4つのハンドシェークラインを持つ。そして24bitのタイマ/カウンターを持つ。これにより、ハードウェア割り込み、タイマ割り込みなどが行える。 |
Real-time Clock | 12/24時間時計、曜日カウンター、アラーム、タイマ割り込みが行える。 |
VME-bus interface | インターフェイス:A16:D16/D8 AMSTER コネクタ:DIN41612 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℃ |
Watchdog | 400msecごとに信号が送られてこないと、異常が発生したとしてシステムリセットを行う。 |
Clock | CPU クロック×1 システムクロック×1 RTCクロック×1 DUSCCクロック×1 |
Interrupt handler | 7levelの割り込みが可能(IRQ1からIRQ7)。システムが設定しているオートベクタは下の表の通りである。 |
オートベクタ
Abort switch | level7 |
ACFAIL | level7 |
RTC/TICK | level6 |
DUSCC | level5 |
SYSFAIL | level4 |
PI/T | level3 |
SCSI | level2 |
1、1 特徴
1、2 レジスタ
1、3 スーパバイザステートとユーザステート
1、4 68000が扱えるデータ型
1、5 例外処理
1、6 バスインターフェイス機能
1、7 68000MPUの端子機能
1、1 特徴
モトローラのMPU68000は、特別な入力命令を持たず、I/Oをメモリー空間に配置するメモリーマップト方式を採用している。そのため常に16Mバイトのメモリー空間に一様にアクセスすることが出来る。68000では常にCLK入力の10クロック分のE信号を定期的に出力している。通常68000のデータ入出力は、E信号と関係なく非同期に行われている。68000は16ビットCPUでありながら内部レジスタは、すべて32ビットになっている。また、レジスタは用途に関してあまり制限の多くない汎用レジスタ方式を採用しているので、レジスタ間のデータ転送などの回数を減らすことが出来る。
1、2 レジスタ
68000のレジスタは、データレジスタDn(n:0〜7)、アドレスレジスタAn(n:0〜7)、ステータスレジスタSR、プログラムカウンタPCがある。データレジスタ、アドレスレジスタのうち、用途が決まっているのは、スーパバイザ用スタックポインタ(SSP)とユーザ用スタックポインタ(USP)の2本だけであとは、汎用レジスタとして使うことが出来る。SSP、USP共にA7に割り当てられていてどちらを使うかはSRの内容(Sビット)によって決まる。
1、3 スーパバイザステートとユーザステート
68000は、システムプログラムが資源管理などの操作をすることが出来るように、実行時の状態をスーパバイザステートとユーザステートに分けて、幾つかの命令はスーパバイザステートのときにしか実行できないようにしている。これらの命令は特権命令と呼ばれ、SRの変更や割り込み処理に関する命令群がこれに属する。
1、4 68000が扱えるデータ型
68000は1、4、8、16、32ビット長のデータを取り扱うことが出来る。これらの内容としてはビットデータ、2進化10進数、バイトデータ、ワードデータ、ロングバイトデータがある。データレジスタは4種類のデータを保持することが出来るが、アドレスレジスタは16ビット、32ビットを単位として扱う。
1、5 例外処理
例外処理VECTORは、CPUが例外処理ルーチンのアドレスを得る為に0〜255番までの256種類が用意され、0番地から3FF番地までの1Kバイトに配置されている。このため必要に応じた例外処理プログラムの先頭番地をVECTOR TABLEに書き込んでおかなければならない。
例外処理には、MPUが異常と判断することにより発生するものがあるが、リセットや割り込み、さらにトラップ命令に対しての処理も例外処理として分類されている。どの場合にも例外処理は定められたベクタをフェッチし、ベクタに書かれたアドレスから命令を実行することにより開始する。
1、6 バスインターフェイス機能
68000のバスインターフェイスの大きな特徴は非同期式インターフェイスである。この非同期式インターフェイスは、バスクロックを持たない。その代わりバスサイクルの終了はI/O側からの応答信号(DTACKバー、Date Transfer Acknowledge)によって行われる。この方式は多少回路の増大があるものの、システムの融通性が増すので16ビットシステムとしては適切なものである。68000は更に同期型インターフェイスモードに切り替えて、従来より開発されている8ビット周辺LSIにも接続できる。8ビット周辺LSIは16ビットシステムにおいても重要なI/O機器を接続可能にする。
1、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バー)
メモリとの接続やデータ転送において最も基本的な信号であり、DTACKバーを除く信号は同期式のデータ転送にも使われる。
- ASバー(Adress Strobe)はアドレスバス上に有効なアドレスが確定していることを示し、同時にMPUがメモリ(あるいは周辺LSI)をアクセスしていることも示している。
- R/Wバー(Read/Write)はデータ転送の方向を示しており、Hで リード、Lでライトである。
- UDSバー,LDSバー(Upper Data Strobe,Lower Data Strobe)はデータ転送をワードサイズで行うか、バイトサイズで行うかを示す。UDSバーは上位8ビット、LDSバーは下位8ビットに対応している。両方の信号がアサートされればワードデータ、UDSバーとLDSバーが単独でアサートされればそれぞれ上位8ビットのみ、下位8ビットのみとなる。
- DTACKバー(Data Transfer Acknowledge)は非同期バスを代表する特徴的信号である。MPUはこの信号が外部から入力されるまでデータ転送のサイクルを終了しない。DTACKバーが早く入力されればリード/ライトのサイクルは早く終わり、遅ければ遅く終わる。つまり外部デバイス(メモリや周辺LSI)のスピードに応じて早くも遅くも自由に調節でき効率のよいデバイスを構成することが可能になる。設計者はこれらのことを考慮してDTACKバー発生の回路を作成しなければならない。
- 68000周辺制御信号(E、VMAバー、VPAバー)
68000MPUを使ったシステムに、従来の8ビットMPU(6800や6809)で使っていた周辺LSIを接続するための端子である。8ビットMPU用の周辺LSIは同期式データ転送を行っている。そのためE、VMAバー、VPAバーを使って同期式データ転送が出来るようになっている。
E(Enable)は同期式データ転送におけるクロックとして働き、Eの立ち下がりに同期して、データ転送が行われる。68000のクロックΦ2信号、6809のE信号に相当する。
VMAバー(Vaild Memory Address)は68000が同期式でデータを転送していることを示す信号で、周辺LSIはVMAバーがアサートされている期間のEの立ち下がりを使わなければならない。6800のVMAに相当する信号である。
VPAバー(Vaild Peripheral Address)はMPUに対して同期式データ転送を要求する信号である。したがって同期式データ転送が必要なデバイスがアクセスされた時、VPAバーをアサートしてやればよい。MPUはメモリや周辺LSIをアクセスした時には、そのデータが同期式であるか非同期式であるかはわからない。DTACKバーが入力されれば非同期式であり、VPAバーが入力されれば同期式である。
- 割り込み入力端子(IPL0バー〜IPL2バー)
68000は優先順位のついた7つの割り込み(レベル1〜レベル7)を使うことができる。優先度はレベル1がもっとも低くレベル7がもっとも高い。またレベル7はNMI(Non Maskable Interrupt)として働く。IPL0バーからIPL2バーの3本を使って(000)2〜(111)2にコード化した割り込み信号を入力する。(000)2は割り込み要求のない状態である。
- バスアービトレーション制御(BRバー、BGバー、BGACKバー)
バスアービトレーションとはバスの配分であり、MPU以外にバスを使うデバイスがある場合バスを使う権利(バスマスタ権)のやりとりをするための信号である。
- BRバー(Bus Request)はMPU以外のデバイスがMPUに対してバスマスタ権を要求する信号である。
- BGバー(Bus Grant)はBRバーに対する対応信号であり、MPUは次のバスサイクルでバスマスタ権を放棄する。(つまり外部デバイスがバスマスタとしてバスを使える)ことを意味する。
- BGACKバーはBGバーを受けた外部デバイスが現在バスマスタとしてバスを占有していることをMPUと他の外部デバイスに知らせる信号である。これら3本の制御信号を使うことにより効率のよいバスマスタ権の受渡しが行われる。
- プロセッサステータス(FC0〜FC2)
MPUがどのような状態で作動しているのかを知らせる信号である。スーパバイザ状態かユーザ状態か、データのアクセスか命令のフェッチか、また割り込み信号を受けた状態等を3ビットにコード化して出力している。
- システムコントロール(BERRバー、RESバー、HALTバー)
BERRバー(Bus Error)はデータ転送に異常があることをMPUに知らせる信号である。MPUはBERRバーがアサートされると現在のバスサイクルを中断しバスエラー例外処理を実行する。
RESバー(Reset)は通常入力端子として働きシステムリセットを行う。ただし、リセット命令を実行したときは出力端子として働きリセット端子に接続された外部デバイスのリセットを行う。(MPUはリセットされない)
HALTバー(Halt)は通常入力端子として働きMPUのホールトに使われる。HALTバー信号がアサートされるとMPUは現在のバスサイクルを終了後ホールトされる。ホールト状態ではアドレスバス、データバスはスリーステート状態、R/Wバー、ASバー、UDSバー、LDSバーは'H'になる。HALTバー端子が出力として動作するのは二重バス障害(ダブルバスフォールト)が発生したときである。二重バス障害とはバスエラーが続けて2回起こることであり、MPUは自らホールト状態に入り、リセット以外では回復できない。
- その他の信号(CLK,Vcc,Vss)
CLK(Clock)はMPUが動作する基本となるクロック状態であり、一定の周期をもっていなければならない。またいかなる場合にも止まってはならない。最高周波数はバージョンにより6.0,8.0,12.5MHzのものがある。いずれのバージョンでも最低周波数は4.0MHzである。Vcc(電源)、Vss(設置)は各2ピンある。これはLSIのチップ内での電位を安定に保つためであり、2ピンとも接続しなければならない。