PCMCIA †
- 名刺サイズカードのインターフェース規格。
- 多くのノートパソコンに採用されている。
基礎知識 †
- もともとメモリカードとして規格ができて、その後I/Oカードとしても使えるようになった
- 64MBのコモンメモリ空間と属性メモリ空間を持つ
- 属性メモリ空間にはCIS(カード属性情報)とCCR(カードコンフィギュレーションレジスタ)、およびその他いろいろある
- CCRはCCOR(カードコンフィギュレーションオプションレジスタ)、CCSR、PRR、SCRという4レジスタで構成されている
- CCORは8bitレジスタ
- bit7:SRESET:1を書き込むとソフトウェアリセット
- bit6:LevelIRQ:レベルトリガ・エッジトリガの選択
- bit0-5:コンフィギュレーションインデックス:カードの機能をインデックス番号で指定する
TypeI~III †
- TypeI, TypeII, TypeIIIというのをよく目にすると思うが、これはPCカードの厚さに関する規格
- TypeI:3.3mm
- TypeII:5.0mm
- TypeIII:10.5mm
- TypeIはメモリカードとして考えられた頃の厚みで、それだとI/Oカード(LANカードやSCSIカード)が作りにくいことが分かり、TypeIIが制定された。そしてそれでも収まらないときのことを考えてTypeIIIも考えられた。
- TypeIIIはTypeIIを上下に並べて間にしきりを設けないと対応できる。だからTypeIIIx1 or TypeIIx2なんていうノートパソコンが多い。
- 電気的特性は全く変わらないので、TypeIIIのところにTypeIIやTypeIを取り付けられるし、TypeIIのところにTypeIを取り付けることもできる。
- 普通のPCカード規格には初代からずっとある16bit仕様と、PCI以降に追加された32bit仕様がある。この32bit仕様のことをCardBusという。
- CardBus対応のノートパソコンは例外なく16bit仕様にも対応している。
- CardBusは簡単に言うとPCカードをそのままPCIバスに繋いでしまうような規格で、もちろんピンの数がPCIバスとは違うので、その辺はいろいろ工夫がある。PCIバス接続なので、高速なバスマスター転送とかが使える。コンフィグレーションもPCIバスを通じて行なう。
- CardBus仕様と16bit仕様はピンの意味が結構違っていて、よくもまあここまで違うものを同じ形状にまとめた上、自動認識&共用できるようにしたものだと、個人的には感動を覚える(by K)。
- CardBus対応ホストコントローラーの使い方についてはこちらを参照のこと。→ CardBus
制御方法 †
- カードがスロットに入っていることを確認したら(どうやって確認するかは、CardBusやPCICの所に書きます)、まずはカードに電源を供給する。16bitカードの場合とりあえずVccだけでよい。Vppは必要になるまで供給する必要はない。
- 電源供給が完了するのを待つ。
- カードをリセットする。CompactFlashとかだとリセットしなくてもたいていは問題なく動いてしまうのだが、当然ながらリセットしないと動かないデバイスもある。
- リセットは100msくらいの間1をキープしてその後に0に戻す、みたいにやれと書いてある資料があったが、100msも待つのは嫌だし、0に戻してすぐに応対できないデバイスもあると思うので、とりあえず、1を20msたもって、その後0を20msたもつ、というふうにKはやっている。
- TOWNSのメモリカードスロットは電源供給とかリセット信号制御などはソフトウェアからはできない。それでもCompactFlashくらいならたいていのものはちゃんと制御できる。
- CardBusならベンダーIDやデバイスIDを見てカードを判別する。16bitPCカードなら、属性メモリ空間を見てCISタプルを解析する。そしてカードに応じて制御すれば、めでたしめでたし。
リンク †
こめんと欄 †
- 5.5v駆動のPCに3.3v駆動のカードは入らない(物理的に) 注意すべし -- 経験者 2007-01-26 (金) 12:21:25
- 「PCMCIA」は名刺サイズカードのインターフェース規格の制定をしているアソシエーションの名前で、規格の名前ではない。 -- 名無しさん 2007-01-31 (水) 09:23:27
- WINDOWSNT3.51でPCカードは使えますか? -- jikkoutarou 2007-09-22 (土) 18:42:26
|