説明

カード型周辺機器のアクセス方法、ホスト機器、およびカード通信方法

【課題】ホスト機器によるカード型周辺機器のプロトコルの判別を簡単に行う上で有利なカード型周辺機器のアクセス方法、ホスト機器、およびカード通信方法を提供する。
【解決手段】VPD Capは、第1のアドレス情報が設定されるアドレスレジスタと、第1のアドレス情報に基づいて記憶部28から読み出されるプロトコル識別情報の一部が設定されるデータレジスタを含み、データレジスタの容量はプロトコル識別情報のデータ量より小さく、コンフィギュレーション空間24は、第1の領域と、第2の領域とを含み、第1の領域は第2の領域の配置アドレスを示す第2のアドレス情報を含み、第2の領域には、アドレスレジスタに記憶部に格納されているプロトコル識別情報の一部にアクセスするための第1のアドレス情報が順次に設定され、データレジスタに、第1のアドレス情報に基づいて記憶部から読み出されるプロトコル識別情報の一部が順次に設定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はカード型周辺機器のアクセス方法、ホスト機器、およびカード通信方法に関する。
【背景技術】
【0002】
パーソナルコンピュータなどのホスト機器に装着して使用する種々のカード型周辺機器としてPCカードがある。
このようなPCカードとして、PCIバスを介して通信を行うPCIカード、PCIバスよりもデータの転送速度の高速化が図られたPCI Expressバスを介して通信を行うPCI Expressカードなどが知られている(特許文献1、2参照)。
例えば、PCI Expressカードは、物理的、電気的、論理的に規格化され、その規格上でメーカー、デバイス独自の多種多様の制御プロトコルを有している。
ExpressCard規格においては、カード側の形状のみならず、ホスト機器のスロット部、コネクタ部も規格の一部であるため、ExpressCard規格に準ずるならばあらゆるExpressCardがホスト機器に対して物理的に接続可能である。
また、ExpressCard規格が包含するPCI Expressインターフェースも、電気的、論理的に規格化されているため、PCI Express規格に準ずるならばホスト機器に対して電気的、論理的に接続可能である。
その一方で、ホスト機器とカードとが通信を行う際に用いる制御プロトコルは規格化されておらず、制御プロトコルの仕様はメーカー、デバイスにより多種多様となっているのが現状である。
【0003】
多種多様の制御プロトコルの中から特定の制御プロトコルを持つカードのみを判別するため、ホスト機器はPCI Express規格の論理仕様にあたるVendor ID、 Device ID、 Revision ID、 SubSystem ID、Subsystem Vendor ID、Class Codeのいずれかの組み合わせを判別因子として用いてきた。
同じ制御プロトコルを持つカードが異なるメーカーにより異なるデバイスで新たに製造された場合に、ホスト機器とカードとの接続性を持つためには、言い換えると、ホスト機器がそれらのカードと接続して支障なく通信を行うためには、ホスト機器側に新規カードメーカー及びデバイスの情報を判別因子として追加することで対応してきた。
Personal Computer(PC)システムでは上記対応が一般的で、ネットワークや媒体を介してカードに対応したデバイスドライバを当該ホスト機器(PCシステム)に追加し、更新することで、ホスト機器側に新規カードメーカー及びデバイスの情報を判別因子として追加することが可能である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−275909号公報
【特許文献2】特開2006−155183号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、上記のようにネットワークや媒体を介してカードに対応したデバイスドライバを追加することができない形態のホスト機器、例えば、カードが装着可能なカメラ装置などの電子機器が上記のPCシステムと同様のカードの判別手法をとっていた場合、ホスト機器が判別可能な第1のカードと、同じ制御プロトコルを持つが、異なるメーカーにより異なるデバイスで新たに製造された第2のカードをその電子機器に接続したときに、物理的、電気的、論理的には接続できても通信制御ができないという問題が生じる。
その理由は、そのホスト機器が、第2のカードを、当該ホスト機器が保有する制御プロトコルで制御できるカードであると判別できないからである。また、そのようなホスト機器はネットワークや媒体などを介してデバイスドライバを追加し、更新することで、ホスト機器側に新規カードメーカー及びデバイスの情報を判別因子として追加することができないため、デバイスドライバを追加し、更新するためには、ホスト機器を、その製造元もしくはサービスセンターに戻す、などの対処が必要になり、その電子機器を使用する際の緊急度によっては重大な問題となる。
本発明はこのような事情に鑑みなされたもので、その目的は、ネットワークや媒体などを用いることなく、ホスト機器によるカード型周辺機器のプロトコルの判別を簡単に行う上で有利なカード型周辺機器のアクセス方法、ホスト機器、およびカード通信方法を提供することにある。
【課題を解決するための手段】
【0006】
上述の目的を達成するため、本発明は、ホスト機器に接続されることで前記ホスト機器との間で特定のプロトコルに従って通信を行い、前記ホスト機器からアクセス可能で各種設定情報が設定される複数のコンフィギュレーションレジスタが設けられ、前記複数のコンフィギュレーションレジスタの少なくとも1つは、それに設定されるデータが前記カード型周辺機器を製造または販売するベンダにより任意にかつ固定的に定めることが許容されたものである特定レジスタであるカード型周辺機器であって、前記特定のプロトコルを判別するためのプロトコル識別情報が、前記特定レジスタに設定されることを特徴とする。
また本発明は、複数のコンフィギュレーションレジスタを備えたカード型周辺機器との間で特定のプロトコルに従って通信を行い、前記複数のコンフィギュレーションレジスタの少なくとも1つはそれに設定されるデータが前記カード型周辺機器の製造または販売を行うベンダにより任意にかつ固定的に定めることが許容された特定レジスタであるホスト機器であって、前記複数のコンフィギュレーションレジスタに対してアクセスすることにより前記特定レジスタに設定されている前記特定のプロトコルを判別するためのプロトコル識別情報を読み取る読み取り部と、前記読み取り部によって読み取られた前記プロトコル識別情報に基づいて前記カード型周辺機器との間で行うプロトコルを決定して前記カード型周辺機器との間で通信を行う通信制御部とを備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、特定のプロトコルを判別するためのプロトコル識別情報を、カード型周辺機器に設けられた複数のコンフィギュレーションレジスタのうちの、ベンダが任意にかつ固定的に定めることが許容されたものである特定レジスタに設定するようにしたので、ネットワークや媒体などを用いることなく、ホスト機器によるカード型周辺機器のプロトコルの判別、選択を簡単に行うことができ、ネットワークや媒体などを用いる場合に比較してホスト機器およびカード型周辺機器の開発、設計、製造に要するコストを削減する上で有利となる。
【図面の簡単な説明】
【0008】
【図1】ホスト機器およびカード型周辺機器の機能ブロック図である。
【図2】カード20の仕様を示す説明図である。
【図3】Configuration Space Headerのフォーマットを説明する図である。
【図4】Vital Product Capability Structureのフォーマットを説明する図である。
【図5】Vendor Specific Capability Structureのフォーマットを説明する図である。
【図6】コンフィギュレーション空間に配置された複数の領域(Capability Structure)のアクセス方法を示す説明図である。
【図7】(A)、(B)、(C)は不揮発性メモリ28におけるVPD領域の説明図である。
【図8】VPD Dataの具体的な意味づけを示す説明図である。
【図9】(A)、(B)はVS Capの第2の特定レジスタR2の説明図である。
【図10】ホスト機器10による識別動作の第1の具体例を示すフローチャートである。
【図11】ホスト機器10による識別動作の第2の具体例を示すフローチャートである。
【図12】ホスト機器10による識別動作の第3の具体例を示すフローチャートである。
【発明を実施するための形態】
【0009】
次に、本発明の実施の形態について図面を参照して説明する。
図1はホスト機器およびカード型周辺機器の機能ブロック図である。
本実施の形態では、ホスト機器10は被写体像を撮像して画像データを生成するカメラ装置であり、カード20(カード型周辺機器)はホスト機器10に接続され前記画像データが記録されるメモリカードである場合について説明する。
ホスト機器10は、機能的には、上位レイヤー12、ホストメモリ14、ホストコントローラ16を含んで構成されている。
上位レイヤー12は、画像データを生成するためのハードウェア、それらハードウェアを制御するソフトウェア(アプリケーション)などで構成されている。
ホストメモリ14は、種々のデータを格納するメモリであり、前記ソフトウェアを格納するメモリ、ワーキングメモリ、実データを格納するメモリなどを含んで構成されている。
ホストコントローラ16は、CPU、DMA、通信I/Fなどのハードウェア、CPUにより実行されるソフトウェアなどで構成され、PCI Expressカード規格に準じたカードスロット(不図示)を有し、PCI Expressバスを構成する通信路2を介してカード20との間で通信を行うものである。
【0010】
カード20は、通信部を形成するPCI Expressデバイス22、通信部を形成するコンフィギュレーション空間24、通信部を形成するIO,メモリ空間レジスタ26、不揮発性メモリ28、上位レイヤー30などを含んで構成されている。
PCI Expressデバイス22は、PCI Expressカード規格に準じたカードコネクタ(不図示)を有し、そのカードコネクタがホスト機器10のカードスロットに装着されることで通信路2を介してホスト機器10に接続される。
通信部を形成するPCI Expressデバイス22は、CPU、通信I/F、CPUにより実行されるソフトウェアなどで構成されている。
通信部を形成するコンフィギュレーション空間24は、ホスト機器10からカード20に対してアクセスする際に用いられるアドレス空間(PCI Expressバスに設けられたアドレス空間)のうち、複数のコンフィギュレーションレジスタが実装されるアドレス空間である。
コンフィギュレーションレジスタは種々の設定情報が設定されるものであり、設定情報は、PCI Express規格によって定義される。コンフィギュレーション空間24、コンフィギュレーションレジスタについては後で詳述する。
上位レイヤー30は、本実施の形態では、メモリカードとして機能する、データを書き換え可能に保持するメモリ領域である。
通信部を形成するIO,メモリ空間レジスタ26は、ホスト機器10からカード20に対してアクセスする際に用いられるアドレス空間のうち、上位レイヤー30に対するアクセスを行うために用いられるアドレス空間である。
不揮発性メモリ28は、本発明の記憶部を構成するものであって、ホスト機器10がカード20と通信する際の特定のプロトコルを判別、決定するためのプロトコル識別情報が格納されるものであり、ホスト機器10からはコンフィギュレーション空間24に実装されたレジスタを介してアクセス(読み取り)がなされるものである。
本実施の形態では、上位レイヤー30を構成するメモリ領域と不揮発性メモリ28はハードウェア的には同一のメモリで構成されている。
【0011】
図2は、カード20の仕様を示す説明図である。
図2に示すように、カード20の仕様は、物理仕様20A、電気仕様20B、インターフェース仕様20C、コンフィギュレーション空間仕様20D、IO,メモリ空間レジスタ仕様20E、制御プロトコル仕様20Fで構成されている。
物理仕様20Aは、PCI Expressカード規格に準拠しており、カードコネクタの形状、寸法などの物理的な仕様を定義するものである。
電気仕様20Bは信号の電圧、電流などの仕様、インターフェース仕様20Cは通信に関わる物理レベルでの仕様、コンフィギュレーション空間仕様20Dは後述するコンフィギュレーション空間上に設定される領域の仕様であり、これら電気仕様20B、インターフェース仕様20C、コンフィギュレーション空間仕様20Dは、PCI Express規格に準拠している。
IO,メモリ空間レジスタ仕様20EはIO,メモリ空間レジスタ26の仕様であり、制御プロトコル仕様20Fはホスト機器10とカード20(上位レイヤー30)との間で通信路2を介して行われる通信手順などの仕様であり、カード20のメーカーやカード20の機能毎に独自に定められるものである。
【0012】
次にコンフィギュレーション空間24について説明する。
コンフィギュレーション空間24には複数の領域が設定されている。
複数のデータ領域は、図3に示すConfiguration Space Header(以下CSHという)、図4に示すVital Product Data Capability Structure(以下VPD Capという)、図5に示すVendor Specific Capability Structure(以下VS Capという)の3つの領域を含んでいる。なお、コンフィギュレーション空間24の上記3つの領域を除く領域は本発明に直接関連しないので説明を割愛する。
なお、PCI Express規格(PCI規格)によれば、CSHの領域(第1の領域)は必ず設けなければならない領域であり、VPD Capの領域(第2の領域または第3の領域)およびVS Capの領域(第3の領域または第2の領域)を設けるか否かはベンダの任意とされている。
【0013】
図3を参照してCSHについて説明する。
CSHのアドレスは00h〜3Fh固定であり、サイズは64バイトである。
CSHは基本的に全てのPCIデバイスおよびPCI Expressデバイスが有する領域である。
CSHには、カード20を識別するための複数のID(識別子)が設定される。
複数のIDとしては、デバイスベンダ(デバイスメーカー)を特定するためにベンダに固有に割り当てられたVendor ID、当該デバイスベンダが自由に割り当てることができるベンダ内で固有のDevice ID、デバイスの改変履歴やバージョンを示すRevision ID、デバイスの機能を特定するために割り当てられたClass Code、カードベンダ(カードメーカー)を特定するためにベンダに固有に割り当てられたSubsystem Vendor ID、当該カードベンダが自由に割り当てることができるベンダ内で固有のSubSystem IDなどがある。
これらのIDはそれぞれに対応して設けられたコンフィギュレーションレジスタ、すなわち、Vendor IDレジスタ、Device IDレジスタ、Revision IDレジスタ、Class Codeレジスタ、Subsystem Vendor IDレジスタ、SubSystem IDレジスタに設定される。
ここで、ホスト機器がパーソナルコンピュータなどのように、ネットワークや記録媒体によってデバイスドライバを追加することで新規カードメーカー及びデバイスの情報を判別因子として追加することができるものである場合は次のような動作がなされる。
すなわち、このようなホスト機器は、各コンフィギュレーションレジスタからVendor ID、Device ID、Revision ID、Class Code、SubSystem ID、Subsystem Vendor IDの各データ(識別子)を読み出し、その結果に基づいてカード20(デバイス)が識別可能でありしたがってそのホスト機器が有するプロトコルで通信可能であるか、あるいは、識別不能でありしたがって当該カード20に対応するデバイスドライバを新たに追加すべきかを判別し、それぞれの判別結果に応じた動作を行う。
しかしながら、本実施の形態では、ホスト機器10はそのような機能を有していないため、後述するような手順でデバイス(カード20)の識別を行う。
【0014】
次に、図4を参照してVPD Capについて説明する。
VPD Capには、第1の特定レジスタR1(特許請求の範囲の特定レジスタに相当)が実装され、コンフィギュレーション空間においてVPD Capが配置されるアドレスはベンダが任意に定めることができるものである。
VPD Capのオフセットアドレスは40h〜FFhで、VPD Capは8バイトの固定領域であり、そのうち4バイトにVPD Dataを設定することができる。
Fは、ホスト機器10がVPD Dataを読み出す際に「0」をセットするフラグであり、VPD Dataが第1の特定レジスタにセットされたならば、Fがカード20側(PCI Expressデバイス22)によって「1」にセットされる。
VPD Addressは、ホスト機器10がVPD Dataを読み出す際のアドレスである。
Next Pointerは後述する。
IDは、VPD Capを特定する識別子であり、その値が03hであることを示す。
VPD Dataは、不揮発性メモリ28から読み出され第1の特定レジスタR1にセットされたデータである。VPD Dataは、カード20を製造または販売するベンダが任意にかつ固定的に定めることが許容されたものであり、プロトコル識別情報を含む。
【0015】
次に、図5を参照してVS Capについて説明する。
VS Capには、第2の特定レジスタR2(特許請求の範囲の特定レジスタに相当)が実装され、コンフィギュレーション空間においてVS Capが配置されるアドレスはベンダが任意に定めることができるものである。
VS Capのオフセットアドレス40h〜FFhである。
Length(Lengthフィールド)には、VS Cap全体のサイズを示すバイト数のデータがセットされる。
IDは、VS Capを特定する識別子であり、その値が09hであることを示す。
Vendor Dataも、不揮発性メモリ28から読み出され第2の特定レジスタR2にセットされたデータである。Vendor Dataも上記のVPD Dataと同様に、カード20を製造または販売するベンダにより任意にかつ固定的に定めることが許容されたものであり、プロトコル識別情報を含む。
【0016】
なお、VPD Capの領域、VS Capの領域は固定アドレスではないため、次に示す手順でVPD Capの領域、VS Capの領域に対するアクセスを行う。
図3に示すように、CSHには、次にアクセスすべきコンフィギュレーション空間のアドレスを示すリストポインタ(Cap.List.Ptr)が設けられており、本実施の形態では、ホスト機器10は、このリストポインタの値(アドレスデータ)を参照することで、VPD Capの領域にアクセスするように構成されている。
図4に示すように、VPD Capにも、次にアクセスすべきコンフィギュレーション空間のアドレスを示すリストポインタ(Next Pointer)が設けられており、本実施の形態では、ホスト機器10は、このリストポインタの値を参照することで、VS Capの領域にアクセスするように構成されている。
図5に示すように、VS Capにも、次にアクセスすべきコンフィギュレーション空間のアドレスを示すリストポインタ(Next Pointer)が設けられており、ホスト機器10は、このリストポインタの値を参照することで、他の領域にアクセスするように構成されている。
【0017】
上記の動作を図6を参照してコンフィギュレーション空間に配置された複数の領域(Capability Structure)のアクセス方法を説明すると、ホスト機器10が参照するポインタP1がA4hを示している場合、まず、アドレスA4hの領域Xにアクセスする。
次いで、領域Xのリストポインタが5Chを示しているので、アドレス5Chの領域Yにアクセスする。
次いで、領域YのリストポインタがE0hを示しているので、アドレスE0hの領域Zにアクセスする。
ここで、領域Zのリストポインタが00hを示しているので、アクセスすべき領域はこの領域Zで完了したと判断してそれ以上のアクセスを行わない。
すなわち、リストポインタが00hとなるまで各領域のリストポインタにしたがって順次次の領域にアクセスすることになる。
このようなコンフィギュレーション空間に割り当てられた複数の領域(レジスタ)に対するアクセス方法は、PCI Express規格(PCI規格)によって定められているものである。
【0018】
次に、VPD Capの第1の特定レジスタR1を用いたVPD Dataの読み出し動作について詳細に説明する。
図7(A)、(B)、(C)は不揮発性メモリ28におけるVPD領域の説明図、図8はVPD Dataの具体的な意味づけを示す説明図である。
VPD Dataは、プロトコル識別情報を含むものである。
本実施の形態ではプロトコル識別情報が29個の文字からなる文字列データ、すなわち、29バイトのデータで示される「ABCDEFGHIJKLMNOPQRSTUVWXYZ012」で構成されているものとして説明する。すなわち、図7(B)に示すように、不揮発性メモリ28に予め設定されたVPD領域の太実線で囲った部分に29バイト分のデータが配置され、図7(C)に示すように「A」〜「2」の29個の文字列が配置されている。なお、図7(C)の「R」、「V」はプロトコル識別情報とは別のデータを示す。
【0019】
図7(A)、(B)に示すように、不揮発性メモリ28におけるVPD領域は本実施の形態では64バイト確保されおり、29バイトのデータで構成されたプロトコル識別情報PRO、それらプロトコル識別情報PROを第1の特定レジスタR1から読み出すためのデータなどが格納されている。
図7(B)、図8に示すように、アドレス00hのデータのうち「82h」はVPD Dataの開始を示し、「001dh」はそれに続いて29バイトの文字列が存在することを示している。そして、「41h」以降29バイトの文字列データが格納されている。30バイト目の「90h」はVPD−R領域の開始を示す。
なお、上記「90h」以降には、本発明では使用しないが、規格上必要なデータが収容されている。
【0020】
ホスト機器10から第1の特定レジスタR1の読み出しは、次のように行われる。
なお、初期状態ではFは「1」が設定されている。
ホスト機器10は、図3に示すCSHのリストポインタ(Cap.List Ptr)に格納されているアドレスにしたがってVPD Capにアクセスし、VPD Addressにアドレスをセットすると同時にFに「0」をセットする。
VPD Dataが第1の特定レジスタR1にセットされるとFが「1」にセットされる。
ホスト機器10はFが「1」にセットされたことを読み取ると、4バイト分のVPD Dataを読み取る。
VPD Addressにセットするアドレスをインクリメントして上述の動作を繰り返すことにより、29バイト分のプロトコル識別情報PROの読み取りがなされる。
すなわち、第1の特定レジスタR1を用いたVPD Dataの読み出しは、第1の特定レジスタR1におけるVPD Data部分の4バイト単位での読み出しとなるが、VPD領域の大きさ(データ量)自体は、64バイトに限定されるものではなく任意であり、また、プロトコル識別情報PROのデータ量も任意である。
【0021】
次に、VS Capの第2の特定レジスタR2を用いたVS Dataの読み出し動作について詳細に説明する。
図9(A)、(B)はVS Capの第2の特定レジスタR2の説明図である。
第2の特定レジスタR2にセットされるVendor Dataは、プロトコル識別情報を含むものである。
本実施の形態では、プロトコル識別情報が29個の文字からなる文字列データ、すなわち、29バイトのデータで示される「ABCDEFGHIJKLMNOPQRSTUVWXYZ012」で構成されているものとして説明する。なお、本実施の形態では、説明を簡単化するため、第1、第2の特定レジスタR1、R2にセットされるプロトコル識別情報が同一であるものとしたが、第1、第2の特定レジスタR1、R2にセットされるプロトコル識別情報は、それら2つのプロトコル情報が同一であっても、あるいは、1つのプロトコル情報を2つに分割してそれぞれ第1、第2の特定レジスタR1、R2にセットするようにしてもよい。
不揮発性メモリ28に予め設定されたVS領域(不図示)は、本実施の形態では32バイト確保されおり、29バイトのデータで構成されたプロトコル識別情報PRO、それらプロトコル識別情報PROを第2の特定レジスタR2から読み出すためのデータなどが格納されている。
図9に示すように、VS Capの第2の特定レジスタR2は、本実施の形態では32バイト確保されおり、VS領域に格納された、29バイトのデータで構成されたプロトコル識別情報PRO、それらプロトコル識別情報PROを読み出すためのデータなどが全てセットされるように構成されている。
【0022】
図9に示すように、LengthにはVs CAP全体のサイズとして32バイトを示す「20h」がセットされ、Vendor Data0〜Vendor Data7にわたって29バイトのプロトコル識別情報PRO「41h」〜「32h」(文字A〜2)がそれぞれセットされる。
すなわち、VS Capの第2の特定レジスタR2からのデータの読み出しは、第1の特定レジスタR1の場合と異なりアドレスを順次指定して4バイト単位で読み出す必要は無く、32バイトのデータを同時に読み出すことができる。
したがって、ホスト機器10から第2の特定レジスタR2の読み出しは、次のように行われる。
ホスト機器10は、図4に示すVPD Capのリストポインタ(Next Pointer)に格納されているアドレスに従ってVS Capにアクセスし、Lengthフィールドにセットされている29バイトに従ってVendor Data0〜Vendor Data7のデータ、すなわち、29バイト分のプロトコル識別情報PROの読み取りがなされる。
なお、VS Capの第2の特定レジスタR2のVendor Dataの数は前述したようにLengthフィールドの設定値によって例えば1バイト単位で任意に設定できるものである。
【0023】
次に、ホスト機器10による識別動作の具体例について説明する。
図10はホスト機器10による識別動作の第1の具体例を示すフローチャートである。
第1の具体例では、VPD Capの領域のみを使用する。
カード20がホスト機器10のカードスロットに接続され、カード20との間で電気的な接続が確立される(ステップS10)。
すると、ホスト機器10は、CSHの領域にアクセスし、そのリストポインタ(Cap.List.Ptr)の値を参照することで、VPD Capの領域にアクセスできるか否かを判定する(ステップS12)。ステップS12でアクセスできた場合には、プロトコル識別情報PRO(カード識別子)が読み取れるか否かを判別する(ステップS14)。ステップS14でプロトコル識別情報PROが読み取れた場合には、そのプロトコル識別情報PROに基づいてカード20を識別し、すなわち、そのプロトコル識別情報PROに基づいて採用するべき特定のプロトコルを決定し、該プロトコルに従ってカード20との間で通信を行う(ステップS16)。
ステップS12においてVPD Capの領域にアクセスできない場合は(リストポインタに行き先のアドレスが設定されていない場合は)、コンフィギュレーション空間にそもそもVPD Capの領域が無いものであるため、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS18)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
ステップS14においてプロトコル識別情報PRO(カード識別子)が読み取れなかった場合も、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS18)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
【0024】
図11はホスト機器10による識別動作の第2の具体例を示すフローチャートである。
第2の具体例では、VS Capの領域のみを使用する。
カード20がホスト機器10のカードスロットに接続され、カード20との間で電気的な接続が確立される(ステップS20)。
すると、ホスト機器10は、CSHの領域にアクセスし、そのリストポインタ(Cap.List.Ptr)の値を参照することで、VPD Capの領域にアクセスし、さらにVPD Capの領域のリストポインタ(Next Pointer)の値を参照することで、VS Capの領域にアクセスできるか否かを判定する(ステップS22)。ステップS22でアクセスできた場合には、プロトコル識別情報PRO(カード識別子)が読み取れるか否かを判別する(ステップS24)。ステップS24でプロトコル識別情報PROが読み取れた場合には、そのプロトコル識別情報PROに基づいてカード20を識別し、すなわち、そのプロトコル識別情報PROに基づいて採用するべき特定のプロトコルを決定し、該プロトコルに従ってカード20との間で通信を行う(ステップS26)。
ステップS22においてVS Capの領域にアクセスできない場合は(リストポインタに行き先のアドレスが設定されていない場合は)、コンフィギュレーション空間にそもそもVS Capの領域が無いものであるため、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS28)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
ステップS24においてプロトコル識別情報PRO(カード識別子)が読み取れなかった場合も、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS28)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
【0025】
図12はホスト機器10による識別動作の第3の具体例を示すフローチャートである。
第2の具体例では、VPD Capの領域とVS Capの領域の双方を使用する。
カード20がホスト機器10のカードスロットに接続され、カード20との間で電気的な接続が確立される(ステップS30)。
すると、ホスト機器10は、CSHの領域にアクセスし、そのリストポインタ(Cap.List.Ptr)の値を参照することで、VPD Capの領域にアクセスできるか否かを判定する(ステップS32)。ステップS32でVPD Capの領域にアクセスできた場合には、プロトコル識別情報PRO(カード識別子)が読み取れるか否かを判別する(ステップS34)。
ステップS34でプロトコル識別情報PROが読み取れた場合には、VPD Capの領域のリストポインタ(Next Pointer)の値を参照することで、VS Capの領域にアクセスできるか否かを判定する(ステップS36)。ステップS36でVS Capの領域にアクセスできた場合には、プロトコル識別情報PRO(カード識別子)が読み取れるか否かを判別する(ステップS38)。ステップS38でプロトコル識別情報PROが読み取れた場合には、そのプロトコル識別情報PROと、ステップS34で読み取ったプロトコル識別情報PROとの双方に基づいてカード20を識別し、すなわち、そのプロトコル識別情報PROに基づいて採用するべき特定のプロトコルを決定し、該プロトコルに従ってカード20との間で通信を行う(ステップS40)。
ステップS32においてVPD Capの領域にアクセスできない場合は(リストポインタに行き先のアドレスが設定されていない場合は)、コンフィギュレーション空間にそもそもVPD Capの領域が無いものであるため、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS42)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
ステップS34においてプロトコル識別情報PRO(カード識別子)が読み取れなかった場合は、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS42)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
ステップS36においてVS Capの領域にアクセスできない場合は(リストポインタに行き先のアドレスが設定されていない場合は)、コンフィギュレーション空間にそもそもVS Capの領域が無いものであるため、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS42)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
ステップS38においてプロトコル識別情報PRO(カード識別子)が読み取れなかった場合も、ホスト機器10はそれ以上の動作を行わず、接続されたカード20を不明なデバイスとして認識し(ステップS42)、不明なデバイスを検出した旨を報知するなどの所定の処理を実行する。
【0026】
本実施の形態では、ホスト機器10のホストコントローラ16は、複数のコンフィギュレーションレジスタに対してアクセスすることにより第1、第2の特定レジスタR1、R2に設定されている特定のプロトコルを判別するためのプロトコル識別情報PROを読み取る読み取り部と、読み取り部によって読み取られたプロトコル識別情報PROに基づいてカード20との間で行うプロトコルを決定してカードとの間で通信を行う通信制御部とを構成している。
【0027】
以上説明したように本実施の形態によれば、ホスト機器10とカード20との間で特定のプロトコルを用いて通信するにあたって、特定のプロトコルを判別するためのプロトコル識別情報を、カード20に設けられた複数のコンフィギュレーションレジスタのうちの、ベンダが任意にかつ固定的に定めることが許容されたものである特定レジスタに設定するようにしたので、ネットワークや媒体などを用いることなく、ホスト機器によるカード型周辺機器(プロトコル)の判別、選択を簡単に行うことができ、ネットワークや媒体などを用いる場合に比較してホスト機器10およびカード20の開発、設計、製造に要するコストを削減する上で有利となる。
また、ホスト機器に判別因子を新たに追加するために、ホスト機器をその製造元もしくはサービスセンターに戻すなどの対処を必要とせず有利となる。
また、特定レジスタは、既存の複数のコンフィギュレーションレジスタに含まれるものを用いるため、ホスト機器10およびカード20に新たなハードウェアやソフトウェアを設ける必要がないため、開発、設計、製造に要するコストアップを抑制でき有利となる。
【0028】
なお、本実施の形態では、VPD Capの第1の特定レジスタとVS Capの第2の特定レジスタとの双方にプロトコル識別情報PROをセットする場合について説明したが、VPD Capの第1の特定レジスタあるいはVS Capの第2の特定レジスタの何れか一方のみでプロトコル識別情報PROをセットするのに十分な領域が確保されているのであれば、何れか一方の特定レジスタのみを用いるようにすればよい。
また、本実施の形態では、CSHの領域の他に、VPD Capの領域およびVS Capの領域の双方を設け、CSHの領域にアクセスし、そのリストポインタ(Cap.List.Ptr)の値を参照することで、VPD Capの領域にアクセスし、さらにVPD Capの領域のリストポインタ(Next Pointer)の値を参照することで、VS Capの領域にアクセスするようにした。
しかしながら、CSHの領域にアクセスし、そのリストポインタ(Cap.List.Ptr)の値を参照することで、VS Capの領域にアクセスし、さらに、VS Capの領域のリストポインタ(Next Pointer)の値を参照することで、VPD Capの領域にアクセスするようにしてもよい。
また、CSHの領域の他に、VPD Capの領域あるいはVS Capの領域の何れか一方のみをコンフィギュレーション空間に設けるようにしてもよく、その場合には、CSHの領域のリストポインタ(Cap.List.Ptr)の値を参照することで、VPD Capの領域あるいはVS Capの領域の何れか一方にアクセスすればよい。
また、CSHのリストポインタ(Cap.List.Ptr)には、必ずしもVPD Capの領域のアドレス、あるいは、VS Capの領域のアドレスを設定する必要はなく、コンフィギュレーション空間24のうち、本明細書で説明したCSHの領域、VPD Capの領域、VS Capの3つ領域を除く他の領域のアドレスを設定してもよいことは無論である。
また、本実施の形態では、ホスト機器10がカメラ装置、カード20がメモリカードである場合について説明したが、ホスト機器10はカード20との通信を行うものであればよく、また、カード20はホスト機器10との通信を行うものであればよい。
また、本発明は、特定のプロトコルを判別するためのプロトコル識別情報を、カードに設けられた複数のコンフィギュレーションレジスタのうちの、ベンダが任意にかつ固定的に定めることが許容されたものである特定レジスタに設定することに特徴があるのであり、ホスト機器10とカード20とを接続するバスの種類はPCI Expressバスに限定されるものではなく任意である。
【符号の説明】
【0029】
10……ホスト機器、20……カード、R1……第1の特定レジスタ、R2……第2の特定レジスタ、PRO……プロトコル識別情報。

【特許請求の範囲】
【請求項1】
ホスト機器に接続されることで前記ホスト機器との間で特定のプロトコルに従って通信を行う通信部と、
特定のプロトコルを判別するためのプロトコル識別情報を記憶する記憶部と、を有し、
前記通信部は、
前記ホスト機器からアクセス可能で各種設定情報が設定される複数のコンフィギュレーションレジスタを含み、
前記複数のコンフィギュレーションレジスタの少なくとも1つは、
第1のアドレス情報が設定されるアドレスレジスタと、当該第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が設定されるデータレジスタを含み、前記特定のプロトコルを判別するためのプロトコル識別情報の一部ずつが前記記憶部から読み出されて順次に前記データレジスタに設定され、当該設定される前記データレジスタの容量は前記プロトコル識別情報のデータ量より小さく、
前記複数のコンフィギュレーションレジスタが実装されたアドレス空間としてのコンフィギュレーション空間が形成され、
前記コンフィギュレーション空間は、
少なくとも第1の領域と、前記アドレスレジスタおよび前記データレジスタを含む第2の領域とを含み、
前記第1の領域は、
カードを識別するための識別子と、
前記第2の領域の配置アドレスを示す第2のアドレス情報と、を含み、
前記第2の領域には、
前記アドレスレジスタに前記記憶部に格納されているプロトコル識別情報の前記一部にアクセスするための前記第1のアドレス情報が順次に設定され、
前記データレジスタに、前記第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が順次に設定される
カード型周辺機器のアクセス方法。
【請求項2】
前記通信部は、
前記ホスト機器との接続が確立されると、前記ホスト機器により前記コンフィギュレーション空間の前記第1の領域がアクセスされ、前記アドレス情報により前記第2の領域がアクセス可能で、前記ホスト機器により前記第2の領域の前記データレジスタから前記プロトコル識別情報の一部ずつが順次に読み取られることによって当該ホスト機器により識別された特定のプロトコルに従った通信を行う
請求項1記載のカード型周辺機器のアクセス方法。
【請求項3】
前記ホスト機器により前記第2の領域の前記データレジスタから前記プロトコル識別情報の一部ずつを順次に読むことにより、前記プロトコル識別情報が読み取れない場合には、当該ホスト機器により不明なデバイスとして認識される
請求項2記載のカード型周辺機器のアクセス方法。
【請求項4】
前記コンフィギュレーション空間は、
前記第1の領域として、コンフィギュレーション スペース ヘッダ(Configuration Space Header)を含み、
前記第2の領域として、バイタル プロダクト データ ケーパビリティ ストラクチャ(Vital Product Data Capability Structure)を含む
請求項1から3のいずれか一に記載のカード型周辺機器のアクセス方法。
【請求項5】
前記通信部は、
前記コンフィギュレーションレジスタおよび前記記憶部の制御を行うPCI Expressデバイスを有する
請求項1から4のいずれか一に記載のカード型周辺機器のアクセス方法。
【請求項6】
前記カード型周辺機器は、
前記ホスト機器によるデータの書き込みおよび読み出しの一方または双方が可能なメモリカードを含む
請求項1から5のいずれか一に記載のカード型周辺機器のアクセス方法。
【請求項7】
接続されるカード型周辺機器の通信部との間で特定のプロトコルに従った通信を行うホスト機器であって、
前記カード型周辺機器との通信制御を行うコントローラを有し、
前記カード型周辺機器は特定のプロトコルを判別するためのプロトコル識別情報を記憶する記憶部を含み、
前記通信部は、
前記ホスト機器からアクセス可能で各種設定情報が設定される複数のコンフィギュレーションレジスタを含み、
前記複数のコンフィギュレーションレジスタの少なくとも1つは、
第1のアドレス情報が設定されるアドレスレジスタと、当該第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が設定されるデータレジスタを含み、前記特定のプロトコルを判別するためのプロトコル識別情報の一部ずつが前記記憶部から読み出されて順次に前記データレジスタに設定され、当該設定される前記データレジスタの容量は前記プロトコル識別情報のデータ量より小さく、
前記複数のコンフィギュレーションレジスタが実装されたアドレス空間としてのコンフィギュレーション空間が形成され、
前記コンフィギュレーション空間は、
少なくとも第1の領域と、前記アドレスレジスタおよび前記データレジスタを含む第2の領域とを含み、
前記第1の領域は、
カードを識別するための識別子と、
前記第2の領域の配置アドレスを示す第2のアドレス情報と、を含み、
前記第2の領域には、
前記アドレスレジスタに前記記憶部に格納されているプロトコル識別情報の前記一部にアクセスするための前記第1のアドレス情報が順次に設定され、
前記データレジスタに、前記第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が順次に設定され、
前記コントローラは、
前記カード型周辺機器との接続が確立されると、前記コンフィギュレーション空間の前記第1の領域をアクセスし、前記アドレス情報により前記第2の領域がアクセス可能で、前記第2の領域の上記データレジスタから前記プロトコル識別情報の一部ずつを順次に読むことにより、前記プロトコル識別情報が読み取り可能な場合に、当該プロトコル識別情報に基づいて、前記特定のプロトコルを識別する
ホスト機器。
【請求項8】
前記コントローラは、
前記第2の領域のデータレジスタから前記プロトコル識別情報の一部ずつを順次に読むことにより、前記プロトコル識別情報が読み取れない場合には、前記カード型周辺機器を不明なデバイスとして認識する
請求項7記載のホスト機器。
【請求項9】
PCI Expressバスに接続される
請求項7または8記載のホスト機器。
【請求項10】
カード型周辺機器と、
接続される前記カード型周辺機器との間で特定のプロトコルに従って通信を行うホスト機器と、を有し、
前記カード型周辺機器は、
ホスト機器に接続されることで前記ホスト機器との間で特定のプロトコルに従って通信を行う通信部と、
特定のプロトコルを判別するためのプロトコル識別情報を記憶する記憶部と、を有し、
前記通信部は、
前記ホスト機器からアクセス可能で各種設定情報が設定される複数のコンフィギュレーションレジスタを含み、
前記複数のコンフィギュレーションレジスタの少なくとも1つは、
第1のアドレス情報が設定されるアドレスレジスタと、当該第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が設定されるデータレジスタを含み、前記特定のプロトコルを判別するためのプロトコル識別情報の一部ずつが前記記憶部から読み出されて順次に前記データレジスタに設定され、当該設定される前記データレジスタの容量は前記プロトコル識別情報のデータ量より小さく、
前記複数のコンフィギュレーションレジスタが実装されたアドレス空間としてのコンフィギュレーション空間が形成され、
前記コンフィギュレーション空間は、
少なくとも第1の領域と、前記アドレスレジスタおよび前記データレジスタを含む第2の領域とを含み、
前記第1の領域は、
カードを識別するための識別子と、
前記第2の領域の配置アドレスを示す第2のアドレス情報と、を含み、
前記第2の領域には、
前記アドレスレジスタに前記記憶部に格納されているプロトコル識別情報の前記一部にアクセスするための前記第1のアドレス情報が順次に設定され、
前記データレジスタに、前記第1のアドレス情報に基づいて前記記憶部から読み出される前記プロトコル識別情報の一部が順次に設定され、
前記ホスト機器は、
前記第2の領域の前記アドレスレジスタに順次に設定される第1のアドレス情報により上記記憶部から上記データレジスタに設定され、当該データレジスタから読み出されたプロトコル識別情報に基づいて特定のプロトコルを判別する
カード通信方法。
【請求項11】
前記ホスト機器は、
前記カード型周辺機器との接続が確立されると、前記コンフィギュレーション空間の前記第1の領域をアクセスし、前記アドレス情報により前記第2の領域がアクセス可能で、前記第2の領域のデータレジスタから前記プロトコル識別情報の一部ずつを順次に読むことにより、前記プロトコル識別情報が読み取り可能な場合に、当該プロトコル識別情報に基づいて前記特定のプロトコルを決定し、当該決定した特定のプロトコルに従った通信を行う
請求項10記載のカード通信方法。
【請求項12】
前記ホスト機器は、
前記第2の領域のデータレジスタから前記プロトコル識別情報の一部ずつを順次に読むことにより、前記プロトコル識別情報が読み取れない場合には、前記カード型周辺機器を不明なデバイスとして認識する
請求項11記載のカード通信方法。
【請求項13】
前記コンフィギュレーション空間は、
前記第1の領域として、コンフィギュレーション スペース ヘッダ(Configuration Space Header)を含み、
前記第2の領域として、バイタル プロダクト データ ケーパビリティ ストラクチャ(Vital Product Data Capability Structure)を含む
請求項10から12のいずれか一に記載のカード通信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−272130(P2010−272130A)
【公開日】平成22年12月2日(2010.12.2)
【国際特許分類】
【出願番号】特願2010−163395(P2010−163395)
【出願日】平成22年7月20日(2010.7.20)
【分割の表示】特願2006−183802(P2006−183802)の分割
【原出願日】平成18年7月3日(2006.7.3)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】