Cバスの信号


Cバスコネクタの信号です.本記事は下記の資料の記述に基づいています.

・津田利春 (1992). PC-98拡張ボードの基本 ――パソコン・ボードの選択から応用実践まで―― 工学図書
・中谷茂次 (1990). PC9801/286拡張インターフェース技術 トランジスタ技術SPECIAL No.19 特集 PC9801計測インターフェースのすべて CQ出版, pp.2-15.
・吉田 功 (1994). トランジスタ技術 Special No.45 特集 PC98シリーズのハードとソフト ――386&486マシンを使いこなす―― CQ出版
・吉野敏也(監) 株式会社テクノメディア(編) (1993). EPSON PC システムガイド ――100万人EPSONユーザーのためのオフィシャル・データブック―― クリエイト・クルーズ

■コネクタのピンアサイン
Cバスコネクタ(本体側・カードエッジメス)の嵌合面のピン番号は,上段左からB1,B2,B3,…… B48,B49,B50,下段左からA1,A2,A3,…… A48,A49,A50 の順です.

ピンアサインはPC-98とEPSON機で一部の古い機種を除き共通ですが,両者間で信号名が一部異なります.


ただし特に古い機種では一部のピンの信号が上のものと異なっています.

(1) PC-98
 A32 未使用(PC-9801U)
 A37 S00(S0:PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 A38 S10(S1:PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 A39 S20(S2:PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 A40 LOCK0(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 A42 CPUENB10(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 B28 IR111(INT42:PC-9801Eのスロット6,PC-9801F1/F2/VF/VMのスロット4,PC-9801F3/U/UVのスロット2)
 B36 DACK20(PC-9801Eのスロット6,PC-9801F1/F2/VF/VMのスロット4,PC-9801F3/U/UVのスロット2)
 B38 DRQ20(PC-9801Eのスロット6,PC-9801F1/F2/VF/VMのスロット4,PC-9801F3/U/UVのスロット2)
 B40 CPKILL0(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 B42 RQGT0(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 B46 HLDA00(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 B47 HRQ00(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)
 B48 DMAHLD0(PC-9801/E/F/VF/VM21以外のVM/M/U/UV/CV,PC-9801VM21/VX0/VX2/VX4のスロット1)

(2) EPSON機
 A2 GND(PC-286L)
 A3 HDEN(PC-286L)
 A26 SA20(スロット間接続:PC-286U),SNDEN(PC-286L)
 A27 SA21(スロット間接続:PC-286U),DRQ20(PC-286L)
 A28 SA22(スロット間接続:PC-286U),DACK20(PC-286L)
 A29 SA23(スロット間接続:PC-286U),INT42(PC-286L)
 A37 VS0(S0:PC-286/Vのスロット1,PC-286U/L)
 A38 VS1(S1:PC-286/Vのスロット1,PC-286U/L)
 A39 NC(PC-286のスロット2−4),VS2(S2:PC-286/Vのスロット1,PC-286U/L)
 A40 NC(PC-286のスロット1),LOCK0(PC-286/Vのスロット1,PC-286U/L)

 B2 SA19(PC-286/Vのスロット2),MBAT(バッテリ出力:PC-286L)
 B3 HDDRV(PC-286L)
 B28 INT41(PC-286Uのスロット1,PC-286L),INT42(PC-286Uのスロット2)
 B32 -10V(PC-286L)
 B33 -10V(PC-286L)
 B36 DACK20(PC-286Uのスロット2)
 B38 DRQ20(PC-286Uのスロット2)
 B40 NC(PC-286のスロット1),EXHRQ0(PC-286のスロット2−4),CPKILL0(PC-286Vのスロット1,PC-286U),CPKILL(PC-286L)
 B42 EXHLDA0(PC-286のスロット2−4),RQGT0(PC-286Vのスロット1,PC-286U/L)
 B46 HLDA00(PC-286Vのスロット1,PC-286U/L)
 B47 HRQ00(PC-286Vのスロット1,PC-286U/L)
 B48 DMAHLD0(PC-286Vのスロット1,PC-286U/L)


■信号の意味
PC-98では,信号名の末尾の数字が0であればその信号は負論理(アクティブ "L")で,1であれば正論理(アクティブ "H")です.カッコ内の信号名はEPSON機の場合です.

 V1,V2
  オプション用電源ラインで,電源は本体から供給されない.
 AB001−AB181(SA0−SA18)
  アドレス信号.
 AB191(SA19)
  アドレス信号.スロット脇のマイクロスイッチが押されている場合,そのスロットのAB191はAB191本来の信号を出力し,24ビットフルデコードが可能.マイクロスイッチが押されていない場合には下位20ビットだけが有効となる.
 AB201−AB231(SA20−SA23)
  アドレスバスの最上位4ビットであり,CPUがリアルモードで動作している時にはにL固定.ただしDMA時にはDMAページレジスタが値を出力.
 INT0(INTR0)
  8259割り込みコントローラからのCPUへの割り込み要求信号.割り込み要求に対してコントローラが応答した時にアクティブとなる.
 IOCHK0
  CPUへのNMI(ノンマスカブル割り込み)信号.ソフトウェアからのマスク(禁止)制御ができないハードウェア割り込み要求信号で,通常はメモリのパリティエラーの検出に使用.
 IOR0(SIOR)
  I/Oデバイスからのリードストローブ信号.CPUがIN命令を実行した時にアクティブとなる.
 IOW0(SIOW)
  I/Oデバイスへのライトストローブ信号.CPUがOUT命令を実行した時にアクティブとなる.
 MRC0(SMRD)
  メモリアクセスのリードストローブ信号.
 MWC0(SMWR)
  メモリアクセスのライトストローブ信号.
 INTA0
  割り込みアクノリッジ信号.CPUが割り込みを受け付けた時に,割り込みルーチンが書き込まれているアドレス情報のタイプベクトルデータを要求する信号.外部CPUが動作している場合には,CPU内部の割り込みコントローラに対してベクトルデータを要求する.IOR0と同様の入出力状態.
 NOWAIT0(ENOWAIT)
  ノーウェイト動作要求信号.通常Cバスに出ているメモリアクセスタイミングにはウェイトサイクルが挿入されているが,この信号アクティブにすることでサイクルを強制終了させ,拡張したメモリをノーウェイトで動作させることができる.
 SALE1(SALE)
  上位アドレスバスラッチ信号.AB161−AB231のラッチを要求する信号.
 MACS0
  RAMボード自己アクセス信号.拡張RAMボードが自身に対してアクセスされていることを示す信号で,I/O拡張ユニット接続時に使用される.
 CPUENB0(CPUE0)
  CPUがバスを使用中であることを示す.
 RFSH0
  DRAMのリフレッシュ信号.Lレベルでリフレッシュ期間であることを示す(バスの占有).この期間リフレッシュアドレスはA1−A10が有効.DRAMは定期的にデータのリフレッシュを行う必要があり,増設メモリにDRAMを使う場合に使用する.
 BHE0(SBHE)
  バスハイイネーブル信号.データバス上位のDB081−DB151のデータが有効.
  ※津田 (1992) では次のように説明されている:この信号はデータバスの上位バイト(奇数アドレス)に対するアクセスを行うことを示し,下位バイト(偶数アドレス)に対してはAB001が同様の働きをする.拡張ボードが使用するI/O用のデータ幅は8ビットが大半であるので,これらの信号を使ってバイトアクセスを行う.実際のデータアクセスは,BHE0・AB001が0・0でワードアクセス,0・1で上位バイト(奇数アドレス),1・0で下位バイト(偶数アドレス)となる.ワードアクセスでは16ビットのデータを一度にアクセスできるが,偶数アドレスから始まる連続した2バイトのアクセスしかできない.奇数アドレスから始まるワードアクセスでは,CPUが2回のバイトアクセスに置き換える.
 IORDY1(IORDY)
  I/Oレディ信号.CPUの速度に対してアクセス速度が遅いI/Oデバイス使用時にI/Oデバイスが反応できるようになるまでCPUを待たせておくために使われる.CPUおよび内部DMAに対してウェイトを要求する場合,この信号がLレベルの時にはCPUはウェイトサイクルを繰り返し,Hレベルになって初めて次のサイクルに進む.3ステート出力.
 SCLK1(SCLK)
  システムクロック信号.クロック切替スイッチのついている機種ではモードによって出力周波数が異なる.10MHz(9.8304MHz:10/12MHzの80286など),8MHz(7.9872MHz:8/16MHzの80386など),5MHz(4.9152MHz:5MHzの8086やV30).ただし同じ周波数でもCPUのクロックによりデューティ比が異なる.
 S18CLK1(S18CLK)
  システムクロックから分周して作られた307.2KHzのクロック信号(デューティ比0.5).システムクロックのモードを変えても同じ周波数が出力される.この周波数は300の倍数となっているので,シリアル通信回線用のボーレートクロックとして使うことができる.
 POWER0
  電源確定信号.電源電圧(+5V)が動作可能な4.75V以上であることを示す.
 DB001−DB151(SD0−SD15)
  システムデータバス.16ビットバス.DB001−DB071の8本は下位バイト(偶数アドレス)用,DB081−DB151の8本は上位バイト(奇数アドレス)用.
 IR31(INT0)
  8259割り込みコントローラ(マスタ)のIR3に接続される(外部割り込み要求信号).
 IR51(INT1)
  8259割り込みコントローラ(マスタ)のIR5に接続される(外部割り込み要求信号).
 IR61(INT2)
  8259割り込みコントローラ(マスタ)のIR6に接続される(外部割り込み要求信号).
 IR91(INT3)
  8259割り込みコントローラ(スレーブ)のIR1に接続される(外部割り込み要求信号).通常SASI HDDで使用.
 IR101(INT4)
  8259割り込みコントローラ(スレーブ)のIR2に接続される(外部割り込み要求信号).640KB FDDで使用.ただし古いPC-9801では1MB FDD用にIR111がIR101と同じピン(B28)に割り当てられているものがある.この場合,スロット番号が一番大きなスロットのB28ピンだけがIR111になり,他のスロットのB28ピンはIR101となる.
 IR121(INT5)
  8259割り込みコントローラ(スレーブ)のIR4に接続される(外部割り込み要求信号).通常サウンド機能で使用.
 IR131(INT6)
  8259割り込みコントローラ(スレーブ)のIR5に接続される(外部割り込み要求信号).通常マウス割り込みで使用.
 RESET0
  システムリセット信号.+5V電源が4.75V以下になるか,リセットスイッチが押されたことを示す(4.5−8.0μsecのパルスリセット信号が出力される).
 DACK00
  DMAコントローラ8237のチャネル0(HDD)のDMAアクノリッジ信号.DMA転送時のハンドシェイク信号となる.
 DACK30
  DMAコントローラ8237のチャネル3(640KB FDD)のDMAアクノリッジ信号.DMA転送時のハンドシェイク信号となる.本体に640KB(2DD) FDDが組み込まれている古いPC-98では,スロット番号が一番大きなスロットのB36ピンに2HD FDD用のDACK20,B38ピンに同じく2HD FDD用のDRQ20が割り当てられているが,この場合も他のスロトのこれらの信号ピンにはDACK30とDRQ30が割り当てられている.
 DRQ00
  DMAコントローラ8237のチャネル0(HDD)のDMA要求信号.この信号が受け付けられるとDACKがアクティブになり,外部の拡張ボードからPC内部のメモリやI/Oにアクセスできるようになる.
 DRQ30
  DMAコントローラ8237のチャネル3(640KB FDD)のDMA要求信号.この信号が受け付けられるとDACKがアクティブになり,外部の拡張ボードからPC内部のメモリやI/Oにアクセスできるようになる.本体に640KB(2DD) FDDが組み込まれている古いPC-98では,スロット番号が一番大きなスロットのB36ピンに2HD FDD用のDACK20,B38ピンに同じく2HD FDD用のDRQ20が割り当てられているが,この場合も他のスロットのこれらの信号ピンにはDACK30とDRQ30が割り当てられている.
 WORD0
  ワード/バイト信号.DMA転送時にワード転送かバイト転送かを示す.内部DMAコントローラを使用するデバイスがワード転送を行う時にDACK信号に同期してアクティブになる.
 EXHRQ10
  エクスターナルホールドリクエスト信号.外部バスマスタ(CPU/DMAコントローラ)からのバス使用要求信号.
 EXHLA10
  エクスターナルホールドアクノリッジ信号.外部バスマスタ(CPU/DMAコントローラ)からのバス使用要求に対する応答信号.
 DMATC0
  DMAコントローラ8237からのエンドオブプロセス(ターミナルカウント)信号.DMAサイクルにおいて最後の転送であることを示す(最終ワード/バイトを示す).
 NMI0
  ノンマスカブル割り込み要求に対してPC側が応答したことを示す.以下はノンマスカブル割り込みにおけるI/Oアドレスと書き込み時の機能:
    50h ノンマスカブル割り込みを禁止
    52h ノンマスカブル割り込みを許可
 MWE0
  メモリライトイネーブル信号.最後のTCサイクルに出力されるメモリライトのタイミング信号.普通は拡張メモリに対して使用.
  ※津田 (1992) では次のように説明されている:メモリアクセスのライトストローブ信号だが,MWC0よりもタイミングが遅れて出る.主として拡張メモリに使用されるDRAMの書き込みタイミングを取るのに使用される.
 EXHLA20
  エクスターナルホールドアクノリッジ信号.外部バスマスタ(CPU/DMAコントローラ)からのバス使用要求に対する応答信号.
 EXHRQ20
  エクスターナルホールドリクエスト信号.外部バスマスタ(CPU/DMAコントローラ)からのバス使用要求信号.
 SBUSRQ1
  外部バスマスタに対する,PC内部のDMAコントローラやリフレッシュ回路からのバス解放要求信号.

以下はCPUが8086やV30(μPD70116)の機種,および80286の一部の機種の一部のスロットにおける信号です.

 S00,S10,S20
  CPUステータス信号.CPUのマキシマムモードにおけるS1,S2,S3のステータス信号がそのまま出力されている.これらの信号の組み合わせはCPUのバスサイクルの状態を示す.以下,S2・S1・S0の順:
    0・0・0 割り込み受け付け
    0・0・1 I/O装置からの読み出し
    0・1・0 I/O装置への書き込み
    0・1・1 ホールド
    1・0・0 命令コードのフェッチ
    1・0・1 メモリからの読み出し
    1・1・0 メモリへの書き込み
    1・1・1 受動状態(CPUはバスに対し働きかけていない)
 LOCK0
  ロック信号.マルチCPU構成の場合のCPUコントロール信号.
 CPKILL0
  CPUキル信号.アクティブにするとCPUはアドレスバス・データバスから完全に切り離される.
 RQGT0
  リクエスト/グラント信号.マルチCPU構成の場合のCPUコントロール信号.
 HLDA00
  ホールドアクノリッジ信号.CPUがHRQ00信号を受けてホールド状態になったことを示す応答信号.
 HRQ00
 ホールドリクエスト信号.CPUをホールド状態にする.この信号がアクティブになるとCPUはすべての動作を停止して待機状態に入る.CPUを確実にホールドするには内部のS4からS0までHRQ00をアクティブにしておく.
 DMAHLD0
  DMAホールド信号.PC内部からのDMA要求をすべて禁止し,内部のDMAが動作しないようにする信号.主に拡張ボードからの外部DMAががバスを占有するために使用.ユーザーメモリにはDRAMが使用されているが,DMAHLD0はDRAMのリフレッシュを停止させるので,約140クロック以上の期間アクティブにすることはできない.