This web site is only compatible with Japanese text.
ATA / ATAPIの信号終端処理について
FM TOWNS シリーズや PC-9800 シリーズの周辺機器 ( デバイス ) として、ハードディスクドライブ ( NEC 的に呼ぶなら、固定ディスクドライブ ) を使用している方は少なくないと思われますが、そういう方々はインターフェースに SCSI を活用している場合も有れば、ATA ( IDE ) を活用している場合も有ると思います。
インターフェースが SCSI または ATA ( IDE ) のハードディスク ( 以下、HDD ) は、大半が製造から 10 年以上経過すること、FM TOWNS シリーズや PC-9800 シリーズが現役だった頃に製造された HDD となれば 30 年近く経過する物もあり、いつ寿命を迎えてもおかしくない状況です。
なお ATA ( IDE ) に関し、誤解無きように書いておきますが、PC-9800 シリーズに搭載されているのは厳密には「専用固定ディスクインタフェース」や「CD-ROM インタフェース」という、ATA ( IDE ) 互換の独自インターフェースです。
万が一 HDD が寿命を迎えた場合は代替品へ交換する事になります。交換方法を大別すると、コンパクトフラッシュストレージカード ( 以下、CF ) と変換基板の組み合わせへ交換、インターフェースにシリアル ATA を持つ HDD や SSD と変換基板の組み合わせへ交換、寿命を迎えた HDD と同等の HDD へ交換の三種類に分かれます。
交換方法はどれも一長一短で、いわゆる「容量の壁」への対処や変換基板の動作状況 ( 一般に相性と呼ばれるもの ) 、CF の場合はさらに動作モードの実装状況、同等の HDD の場合は新品もしくは状態の良い中古品の入手が困難であるという点が、交換への障害になりうる可能性が有ります。
いわゆる「容量の壁」の詳細は、第三研究所様の「企画課 特別企画 第 8 回 PC-98 と HDD の容量制限」という記事を参照してください。
CF の動作モードですが、CFA の規格書 ( CF+ and CompactFlash Specification ) の項目 4.2 によると、CF は動作モードとして「PC Card ATA using I/O Mode」、「PC Card ATA using Memory Mode」、「True IDE Mode」の三種類が有ります。
CF を変換基板経由で ATA ( IDE ) インターフェースへ接続する場合、往々にして「True IDE Mode」の実装を必要とする場合が多く有りますが、「 CFA 規格」適合のコンパクトフラッシュストレージカードでは実装が必須であるこの動作モードも、「 CF+ 規格」適合のストレージカード ( メモリーカード ) ではオプション扱いの為、未実装の場合が有ります。
つまり、この時点で使用できない CF が有るという事です。
変換基板を用いる場合、プルアップやプルダウン抵抗、終端抵抗の実装が適切でなく、回路全体のインピーダンス特性の悪さからオーバーシュート等が発生し、正常に動作しないことが有ります。
特に、オープンコレクタやスリーステートなのにも拘らず、適切にプルアップやプルダウンがなされていない場合、機器やデータの破壊をもたらす可能性も有る様なので、対策の改修を行った方が良いでしょう。
根本的に駆動方式そのものの実装が不適切で改修が必要になる場合も有り、例えば、トーテムポールとすべき回路をオープンコレクタで実装してあるのにプルアップ抵抗が省略されている場合、プルアップ抵抗を追加する改修が必要になるでしょう。
HDD や CF、変換基板にハードウェア的な問題点は見当たらないのに正常に動作しない、という場合、ソフトウェア的な問題に直面している可能性が有ります。
ありがちなのは、本体 ( ホスト ) と周辺機器 ( デバイス ) の間でやり取りするコマンドやデバイス ID の部分で、ATA 規格の改訂に伴う変更や廃止が繰り返された歴史が有る為、いわゆる相性の問題が発生しやすいようです。
そのほか、CF では CHS のパラメータの設定が固定されている場合が有り、これも使用できない原因になる様です。 ( 詳細はPC-9821 および DOS/V ソフトウェアのページ様の「IDE master しか使えない機種で slave を使う」という記事を参照の事。 )
プルアップやプルダウン抵抗、終端抵抗が意外と重要なのは分かった、では具体的な数値は何なのか ? という話になると思いますので、次に参考となる一覧表を記載しておきます。抵抗の数値はコントローラの駆動能力により、微調整が必要な場合があります。
まずは、40 ピン端子の一覧表から。
ATA ( IDE ) / ATAPI 40 ピン端子のピンアサイン および終端抵抗一覧表 ※1 ※2 |
端子 規格 |
ATA / ATAPI 参照したのは ANSI X3.221-1994 及び ANSI X3.298-1997、 ANSI INCITS 397-2005 ※3 |
端子 形状 |
参考写真-1 |
ピ ン 番 号 |
信号 名称 ※4 |
駆動 方式 ※5 |
本体 PU or PD ※6 ※7 ※8 ※9 |
終 端 抵 抗 ※6 ※7 ※10 |
配線 PU or PD ※6 ※7 ※9 ※11 |
配 線 ※12 ※13 ※14 ※15 |
終 端 抵 抗 ※6 ※7 ※10 |
周辺 機器 PU or PD ※6 ※7 ※8 ※9 |
1 |
RESET- |
TP |
- |
33 |
- |
82 |
- |
2 |
GND |
- |
- |
- |
- |
- |
- |
3 |
DD7 |
TS |
PD 10k |
33 |
- |
33 |
- |
4 |
DD8 |
TS |
- |
33 |
- |
33 |
- |
5 |
DD6 |
TS |
- |
33 |
- |
33 |
- |
6 |
DD9 |
TS |
- |
33 |
- |
33 |
- |
7 |
DD5 |
TS |
- |
33 |
- |
33 |
- |
8 |
DD10 |
TS |
- |
33 |
- |
33 |
- |
9 |
DD4 |
TS |
- |
33 |
- |
33 |
- |
10 |
DD11 |
TS |
- |
33 |
- |
33 |
- |
11 |
DD3 |
TS |
- |
33 |
- |
33 |
- |
12 |
DD12 |
TS |
- |
33 |
- |
33 |
- |
13 |
DD2 |
TS |
- |
33 |
- |
33 |
- |
14 |
DD13 |
TS |
- |
33 |
- |
33 |
- |
15 |
DD1 |
TS |
- |
33 |
- |
33 |
- |
16 |
DD14 |
TS |
- |
33 |
- |
33 |
- |
17 |
DD0 |
TS |
- |
33 |
- |
33 |
- |
18 |
DD15 |
TS |
- |
33 |
- |
33 |
- |
19 |
GND |
- |
- |
- |
- |
- |
- |
20 |
Non Connected ( KEY ) |
- |
- |
- |
- |
- |
- |
21 |
DMARQ |
TS |
- |
82 |
PD 5.6k |
22 |
- |
22 |
GND |
- |
- |
- |
- |
- |
- |
23 |
DIOW- |
TS |
- |
22 |
- |
82 |
- |
24 |
GND |
- |
- |
- |
- |
- |
- |
25 |
DIOR- |
TS |
- |
22 |
- |
82 |
- |
26 |
GND |
- |
- |
- |
- |
- |
- |
27 |
IORDY ※16 |
TS |
- |
82 |
PU 1.0k |
22 |
- |
28 |
CSEL ※17 ※18 ※19 ※20 ※21 |
- |
- |
GND |
- |
- |
PU 10k |
29 |
DMACK- |
TP |
- |
22 |
- |
82 |
- |
30 |
GND |
- |
- |
- |
- |
- |
- |
31 |
INTRQ ※22 |
TS |
PD 10k ※23 |
82 |
- |
22 |
- |
32 |
IOCS16- ※24 |
- |
- |
- |
- |
- |
- |
33 |
DA1 |
TP |
- |
33 |
- |
82 |
- |
34 |
PDIAG- |
TS |
- |
- |
- |
- |
PU 10k |
35 |
DA0 |
TP |
- |
33 |
- |
82 |
- |
36 |
DA2 |
TP |
- |
33 |
- |
82 |
- |
37 |
CS0- |
TP |
- |
33 |
- |
82 |
- |
38 |
CS1- |
TP |
- |
33 |
- |
82 |
- |
39 |
DASP- |
OC |
- |
- |
- |
- |
PU 10k |
40 |
GND |
- |
- |
- |
- |
- |
- |
- ※1
各抵抗は、中央左寄りの「本体 PU or PD 」欄から「周辺機器 PU or PD 」欄へ向かって、順番に実装する。
- ※2
PC-9800 シリーズの比較的末期の機種や AT 互換機で一般的に見かける配列だが、PC-9800 シリーズのうち、90 年代中頃に発売された一部の機種では配列が異なっている ( 反転している ) 場合が有る。詳細は工作室の記憶様の「CanBe 等の反転 IDE ケーブル」という記事を参照の事。
- ※3
端子の物理的形状は、3M 製 3417-7000 及び 3M 製 3448-2040 相当
- ※4
名称の末尾に「-」の記号を付けている信号は、負論理とする。
- ※5
略号は次の通り。 TP = トーテムポール、TS = スリーステート、OC = オープンコレクタ
- ※6
抵抗の単位はオーム
- ※7
一覧の数値は最小値だが、「 PDIAG- 」のみ固定で精度は前後 5 % 以内。
- ※8
略号は次の通り。 PU = プルアップ、PD = プルダウン
- ※9
プルアップの数値は、DC+5V でプルアップする場合。
- ※10
終端抵抗は伝送路のうち、信号源 ( つまり、コントローラ ) に出来るだけ近い場所へ直列 ( シリーズ ) に挿入する。
- ※11
本体 ( ホスト ) 側の終端抵抗と周辺機器 ( デバイス ) の終端抵抗の間へ設置する。
- ※12
配線は、太さが AWG 28 のフラットケーブル ( 3M 製 3365-40 相当 ) 、またはシールド付きのフラットケーブル ( 3M 製 3517-40 相当 ) を使用する。
- ※13
本体 ( ホスト ) から最も遠い周辺機器 ( デバイス ) まで、最少 254.00 mm 、最大 457.20 mm 。
- ※14
本体 ( ホスト ) から一台目の周辺機器 ( デバイス 0 ) まで、最少 127.00 mm 、最大 304.80 mm 。
- ※15
一台目の周辺機器 ( デバイス 0 ) から二台目の周辺機器 ( デバイス 1 ) まで、最少 127.00 mm 、最大 152.40 mm 。
- ※16
ATA-4 および ATA-5 の規格書によると、1.0k オームを超える値の抵抗でプルアップすると、ノイズマージンが向上する可能性が有る。また、ATA-6 の規格書によると、Ultra DMA mode 4 までしか対応しない機器では DC+5V 電源を使って 1.0k オームでプルアップするが、Ultra DMA mode 5 以降に対応する機器では、伝送路の遅延時間差を抑制するために DC+3.3V 電源を使って 4.7k オームでプルアップする。
- ※17
CSEL 信号は本体 ( ホスト ) 側で GND へ接続し、周辺機器 ( デバイス ) 側はプルアップしておく。ATA 標準では周辺機器 ( デバイス ) へ CSEL 信号が接続されている ( つまり、Low ) とデバイス番号 0 ( Master ) 切り離されている ( つまり、High ) とデバイス番号 1 ( Slave ) となるが、本体によっては論理を反転させている場合も有る。CSEL 信号を使用しない場合も、本体 ( ホスト ) 側は必ず GND へ接続する。
- ※18
周辺機器 ( デバイス ) のデバイス番号の 0 と 1 ( Master / Slave ) は、CSEL 信号とケーブル上の結線の組み合わせによる指定と、周辺機器 ( デバイス ) 側のジャンパピンで指定する方法が有り、AT 互換機の場合はデスクトップ機だとジャンパピンによる指定、ノート機だと CSEL 信号とケーブル上の結線の組み合わせによる指定が一般的である。
- ※19
PC-9800 シリーズでは、周辺機器 ( デバイス ) のデバイス番号の 0 と 1 ( Master / Slave ) を区別して認識できる様になったのは、PCI バスを初めて搭載した PC-9821 Xa 以降のデスクトップ機からで、それ以前に発売されたデスクトップ機およびノート機全般は、デバイス番号が 0 ( Master ) の周辺機器 ( デバイス ) しか認識できない。デバイス番号 1 ( Slave ) の周辺機器 ( デバイス ) を認識させる為には細工が必要である。 ( 詳細はPC-9821 および DOS/V ソフトウェアのページ様の「IDE master しか使えない機種で slave を使う」という記事を参照の事。 )
- ※20
ATA 規格制定前は DALE 信号へ割り当てておくのが主流だった模様。この信号を使用する場合、ホストアドレスとチップセレクト ( DA0 から DA2、CS1FX-、CS3FX- ) は、この信号が Low になったら有効となる。
- ※21
ATA-3 規格以前は SPSYNC 信号へ割り当てておく事も可能だった ( CSEL 信号との同時使用は不可 ) 。この信号は周辺機器 ( デバイス ) のうち、デバイス番号の 0 ( Master ) の機器から出力して、デバイス番号の 1 ( Slave ) の機器へ入力する。信号の使い方は各ベンダの任意だが、一般にスピンドル周りの同期信号として使われていた模様。
- ※22
INTRQ 信号は、信号源 ( コントローラ ) によってはプルアップする場合あり。
- ※23
ATA-3 の規格書では特段の指定はないが、ATA-4 以降の規格書では、10k オームでプルダウン ( コントローラの仕様によってはプルアップ ) を指定。
- ※24
IOCS16- 信号は、ATA-3 規格で廃止された。
|
余談ですが、40 ピン端子に接続できるフラットケーブルは 40 芯タイプのものと 80 芯タイプのものが有ります。
このうち、80 芯タイプのフラットケーブルは 28 ピンが接続されておらず、34 ピンは本体と接続する端子の内部で GND と直結しています。この結線を元に、CSEL 信号によるデバイス番号の決定とケーブル種類の判定を可能にしています。
詳細は「ATA ( IDE ) / ATAPI の徹底研究」という書籍に記載が有りますので、そちらを参照してください。
次は、44 ピン端子の一覧表です。
ATA ( IDE ) / ATAPI 44 ピン端子のピンアサイン および終端抵抗一覧表 ※1 |
端子 規格 |
ATA / ATAPI 参照したのは ANSI X3.221-1994 及び ANSI X3.298-1997、 ANSI INCITS 397-2005 ※2 |
端子 形状 |
参考写真-2 |
ピ ン 番 号 |
信号 名称 ※3 |
駆動 方式 ※4 |
本体 PU or PD ※5 ※6 ※7 ※8 |
終 端 抵 抗 ※5 ※6 ※9 |
端子 接続 PU or PD ※5 ※6 ※8 ※10 |
端 子 接 続 ※11 |
終 端 抵 抗 ※5 ※6 ※9 |
周辺 機器 PU or PD ※5 ※6 ※7 ※8 |
A |
ベンダ 定義 ※12 |
- |
- |
- |
- |
- |
- |
B |
ベンダ 定義 ※12 |
- |
- |
- |
- |
- |
- |
C |
ベンダ 定義 ※12 |
- |
- |
- |
- |
- |
- |
D |
ベンダ 定義 ※12 |
- |
- |
- |
- |
- |
- |
E |
NC ( KEY ) |
- |
- |
- |
- |
- |
- |
F |
NC ( KEY ) |
- |
- |
- |
- |
- |
- |
1 |
RESET- |
TP |
- |
33 |
- |
82 |
- |
2 |
GND |
- |
- |
- |
- |
- |
- |
3 |
DD7 |
TS |
PD 10k |
33 |
- |
33 |
- |
4 |
DD8 |
TS |
- |
33 |
- |
33 |
- |
5 |
DD6 |
TS |
- |
33 |
- |
33 |
- |
6 |
DD9 |
TS |
- |
33 |
- |
33 |
- |
7 |
DD5 |
TS |
- |
33 |
- |
33 |
- |
8 |
DD10 |
TS |
- |
33 |
- |
33 |
- |
9 |
DD4 |
TS |
- |
33 |
- |
33 |
- |
10 |
DD11 |
TS |
- |
33 |
- |
33 |
- |
11 |
DD3 |
TS |
- |
33 |
- |
33 |
- |
12 |
DD12 |
TS |
- |
33 |
- |
33 |
- |
13 |
DD2 |
TS |
- |
33 |
- |
33 |
- |
14 |
DD13 |
TS |
- |
33 |
- |
33 |
- |
15 |
DD1 |
TS |
- |
33 |
- |
33 |
- |
16 |
DD14 |
TS |
- |
33 |
- |
33 |
- |
17 |
DD0 |
TS |
- |
33 |
- |
33 |
- |
18 |
DD15 |
TS |
- |
33 |
- |
33 |
- |
19 |
GND |
- |
- |
- |
- |
- |
- |
20 |
Non Connected ( KEY ) |
- |
- |
- |
- |
- |
- |
21 |
DMARQ |
TS |
- |
82 |
PD 5.6k |
22 |
- |
22 |
GND |
- |
- |
- |
- |
- |
- |
23 |
DIOW- |
TS |
- |
22 |
- |
82 |
- |
24 |
GND |
- |
- |
- |
- |
- |
- |
25 |
DIOR- |
TS |
- |
22 |
- |
82 |
- |
26 |
GND |
- |
- |
- |
- |
- |
- |
27 |
IORDY ※13 |
TS |
- |
82 |
PU 1.0k |
22 |
- |
28 |
CSEL ※14 ※15 ※16 ※17 ※18 |
- |
- |
GND |
- |
- |
PU 10k |
29 |
DMACK- |
TP |
- |
22 |
- |
82 |
- |
30 |
GND |
- |
- |
- |
- |
- |
- |
31 |
INTRQ ※19 |
TS |
PD 10k ※20 |
82 |
- |
22 |
- |
32 |
IOCS16- ※21 |
- |
- |
- |
- |
- |
- |
33 |
DA1 |
TP |
- |
33 |
- |
82 |
- |
34 |
PDIAG- |
TS |
- |
- |
- |
- |
PU 10k |
35 |
DA0 |
TP |
- |
33 |
- |
82 |
- |
36 |
DA2 |
TP |
- |
33 |
- |
82 |
- |
37 |
CS0- |
TP |
- |
33 |
- |
82 |
- |
38 |
CS1- |
TP |
- |
33 |
- |
82 |
- |
39 |
DASP- |
OC |
- |
- |
- |
- |
PU 10k |
40 |
GND |
- |
- |
- |
- |
- |
- |
41 |
DC+5V ( Logic ) |
- |
- |
- |
- |
- |
- |
42 |
DC+5V ( Motor ) |
- |
- |
- |
- |
- |
- |
43 |
GND |
- |
- |
- |
- |
- |
- |
44 |
Type- ※22 |
- |
- |
- |
- |
- |
- |
- ※1
各抵抗は、中央左寄りの「本体 PU or PD 」欄から「周辺機器 PU or PD 」欄へ向かって、順番に実装する。
- ※2
端子の物理的形状は、DuPont 製 86451 及び DuPont 製 86455 相当
- ※3
名称の末尾に「-」の記号を付けている信号は、負論理とする。
- ※4
略号は次の通り。 TP = トーテムポール、TS = スリーステート、OC = オープンコレクタ
- ※5
抵抗の単位はオーム
- ※6
一覧の数値は最小値だが、「 PDIAG- 」のみ固定で精度は前後 5 % 以内。
- ※7
略号は次の通り。 PU = プルアップ、PD = プルダウン
- ※8
プルアップの数値は、DC+5V でプルアップする場合。
- ※9
終端抵抗は伝送路のうち、信号源 ( つまり、コントローラ ) に出来るだけ近い場所へ直列 ( シリーズ ) に挿入する。
- ※10
本体 ( ホスト ) 側の終端抵抗と周辺機器 ( デバイス ) の終端抵抗の間へ設置する。
- ※11
ATA 規格上、本体 ( ホスト ) と周辺機器 ( デバイス ) は端子で直結する想定となっている様で、配線は制定されていない。
- ※12
一般的に、周辺機器 ( デバイス ) 側でデバイス番号の 0 と 1 ( Master / Slave ) を設定するジャンパピンとして使用。
- ※13
ATA-4 および ATA-5 の規格書によると、1.0k オームを超える値の抵抗でプルアップすると、ノイズマージンが向上する可能性が有る。また、ATA-6 の規格書によると、Ultra DMA mode 4 までしか対応しない機器では DC+5V 電源を使って 1.0k オームでプルアップするが、Ultra DMA mode 5 以降に対応する機器では、伝送路の遅延時間差を抑制するために DC+3.3V 電源を使って 4.7k オームでプルアップする。
- ※14
CSEL 信号は本体 ( ホスト ) 側で GND へ接続し、周辺機器 ( デバイス ) 側はプルアップしておく。ATA 標準では周辺機器 ( デバイス ) へ CSEL 信号が接続されている ( つまり、Low ) とデバイス番号 0 ( Master ) 切り離されている ( つまり、High ) とデバイス番号 1 ( Slave ) となるが、本体によっては論理を反転させている場合も有る。CSEL 信号を使用しない場合も、本体 ( ホスト ) 側は必ず GND へ接続する。
- ※15
周辺機器 ( デバイス ) のデバイス番号の 0 と 1 ( Master / Slave ) は、CSEL 信号とケーブル上の結線の組み合わせによる指定と、周辺機器 ( デバイス ) 側のジャンパピンで指定する方法が有り、AT 互換機の場合はデスクトップ機だとジャンパピンによる指定、ノート機だと CSEL 信号とケーブル上の結線の組み合わせによる指定が一般的である。
- ※16
PC-9800 シリーズでは、周辺機器 ( デバイス ) のデバイス番号の 0 と 1 ( Master / Slave ) を区別して認識できる様になったのは、PCI バスを初めて搭載した PC-9821 Xa 以降のデスクトップ機からで、それ以前に発売されたデスクトップ機およびノート機全般は、デバイス番号が 0 ( Master ) の周辺機器 ( デバイス ) しか認識できない。デバイス番号 1 ( Slave ) の周辺機器 ( デバイス ) を認識させる為には細工が必要である。 ( 詳細はPC-9821 および DOS/V ソフトウェアのページ様の「IDE master しか使えない機種で slave を使う」という記事を参照の事。 )
- ※17
ATA 規格制定前は DALE 信号としておくのが主流だった模様。この信号を使用する場合、ホストアドレスとチップセレクト ( DA0 から DA2、CS1FX-、CS3FX- ) は、この信号が Low になったら有効となる。
- ※18
ATA-3 規格以前は SPSYNC 信号として使用する事も可能だった ( CSEL 信号との同時使用は不可 ) 。この信号は周辺機器 ( デバイス ) のうち、デバイス番号の 0 ( Master ) の機器から出力して、デバイス番号の 1 ( Slave ) の機器へ入力する。信号の使い方は各ベンダの任意だが、一般にスピンドル周りの同期信号として使われていた模様。
- ※19
INTRQ 信号は、信号源 ( コントローラ ) によってはプルアップする場合あり。
- ※20
ATA-3 の規格書では特段の指定はないが、ATA-4 以降の規格書では、10k オームでプルダウン ( コントローラの仕様によってはプルアップ ) を指定。
- ※21
IOCS16- 信号は、ATA-3 規格で廃止された。
- ※22
周辺機器 ( デバイス ) から本体 ( ホスト ) へデバイスタイプを通知する信号で、0 = ATA となる。ATA-3 規格でのみ使用。
|
参考文献
|