(57)【要約】【課題】処理速度に影響を与えることなく、ＰＣカード７が動作中に抜かれることによる不具合を回避する。【解決手段】ＰＣカード７が端末装置１に装着されていない時にＣＰＵ２がＰＣカード７のアドレス空間にアクセスした場合、ＣＰＵ２に固定値を返す手段（固定値リターン機能５１）と、ＰＣカード７が端末装置１に装着された時に、ＰＣカード７のアドレス空間のうち、ＣＰＵ２による書き込み処理によってのみ値が変化する特定領域に、固定値とは異なる特定値をもつデータを書き込む手段（カード初期化処理１５１）と、ＰＣカード７にアクセスする際に特定領域のデータを読み出し、読み出した特定領域のデータ値と特定値とが一致するか否かを比較し、一致しない場合、ＰＣカード７が抜かれていると判断してＰＣカード７に対するアクセスを中断する手段（カード有無判定処理１５２）を備える。【選択図】      図２
2004164495.tif 000002
【特許請求の範囲】
【請求項１】
ＰＣカードを装着可能であり、制御部を有する端末装置であって、
前記ＰＣカードが前記端末装置に装着されていない時に前記制御部が前記ＰＣカードのアドレス空間にアクセスした場合、前記制御部に固定値を返す手段と、
前記ＰＣカードが前記端末装置に装着された時に、前記ＰＣカードのアドレス空間のうち、前記制御部による書き込み処理によってのみ値が変化する特定領域に、前記固定値とは異なる特定値をもつデータを書き込む手段と、
前記ＰＣカードにアクセスする際に前記特定領域のデータを読み出し、読み出した前記特定領域のデータ値と前記特定値とが一致するか否かを比較し、一致しない場合、前記ＰＣカードが抜かれていると判断して前記ＰＣカードに対する当該アクセスを中断する手段と
を備えることを特徴とする端末装置。
【請求項２】
ＰＣカードを装着可能であり、制御部を有する端末装置であって、
前記ＰＣカードが前記端末装置に装着されていない時に前記制御部が前記ＰＣカードのアドレス空間にアクセスした場合、前記制御部に固定値を返す手段と、
前記ＰＣカードが前記端末装置に装着された時に、前記ＰＣカードのアドレス空間のうち、値が変化しない特定領域から前記固定値とは異なる特定値をもつデータを読み出して記憶する手段と、
前記ＰＣカードにアクセスする際、前記特定領域からデータを再度読み出し、再度読み出した前記特定領域のデータ値と記憶したデータ値とが一致するか否かを比較し、一致しない場合、前記ＰＣカードが抜かれていると判断して前記ＰＣカードに対する当該アクセスを中断する手段と
を備えることを特徴とする端末装置。
【請求項３】
ＰＣカードを装着可能であり、制御部を有する端末装置に前記ＰＣカードが装着されていない時に前記制御部が前記ＰＣカードのアドレス空間にアクセスした場合、前記制御部に固定値を返す手段を備える端末装置における、前記ＰＣカードに対してアクセスを行わせるためのアクセス制御プログラムであって、
前記ＰＣカードが前記端末装置に装着された時に、前記ＰＣカードのアドレス空間のうち、書き込み処理によってのみ値が変化する特定領域に、前記固定値とは異なる特定値をもつデータを書き込むステップと、
前記ＰＣカードにアクセスする際に前記特定領域のデータを読み出すステップと、
読み出した前記特定領域のデータ値と前記特定値とが一致するか否かを比較し、一致しない場合、前記ＰＣカードが抜かれていると判断して前記ＰＣカードに対する当該アクセスを中断するステップと
を前記制御部に実行させることを特徴とするアクセス制御プログラム。
【請求項４】
ＰＣカードを装着可能であり、制御部を有する端末装置に前記ＰＣカードが装着されていない時に前記制御部が前記ＰＣカードのアドレス空間にアクセスした場合、前記制御部に固定値を返す手段を備える端末装置における、前記ＰＣカードに対してアクセスを行わせるためのアクセス制御プログラムであって、
前記ＰＣカードが前記端末装置に装着された時に、前記ＰＣカードのアドレス空間のうち、値が変化しない特定領域から前記固定値とは異なる特定値をもつデータを読み出して記憶するステップと、
前記ＰＣカードにアクセスする際、前記特定領域からデータを再度読み出すステップと、
再度読み出した前記特定領域のデータ値と記憶したデータ値とが一致するか否かを比較し、一致しない場合、前記ＰＣカードが抜かれていると判断して前記ＰＣカードに対する当該アクセスを中断するステップと
を前記制御部に実行させることを特徴とするアクセス制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＰＣカード（ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ）規格に準拠したカード、あるいはＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）規格に準拠したカード等を総称して、以下「ＰＣカード」と記す）を装着可能な、パーソナルコンピュータやＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等の端末装置、及びＰＣカードに対するアクセス制御プログラムに関する。
【０００２】
【従来の技術】
パーソナルコンピュータやＰＤＡ等の端末装置には、ＰＣカードを装着するＰＣカードスロットが内蔵されている。そして、ＰＣカードスロットにＰＣカードが装着されると、端末装置は、装着されたＰＣカードが備える機能、例えば外部記憶，モデム，ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といった機能を利用することができる。
【０００３】
端末装置に電源が入っている状態で、ＰＣカードがＰＣカードスロットに装着されると、それを契機に端末装置側のシステムは、装着されたＰＣカードのデバイス・ドライバのインストールと設定を行い、その結果ＰＣカードの使用が可能となる。端末装置に電源が入っていなければ、端末装置に電源が入ったときに、ＰＣカードのスロットへの装着の有無を判断し、デバイス・ドライバのインストールを行って使用可能な状態にする。そして、ＰＣカードをＰＣカードスロットから抜くと、それを契機に、デバイス・ドライバはアンインストールされる。このように、ＰＣカードを端末装置に接続した際に、デバイス・ドライバの組み込みと設定を自動的に行って使用可能な状態にする機能を、プラグアンドプレイ（Ｐｌｕｇ  ａｎｄ  Ｐｌａｙ）という。
【０００４】
図７は、このようなプラグアンドプレイを実現するための端末装置のソフトウェア構成を例示する概略ブロック図である。端末装置は、ＰＣカード７を使用するアプリケーションプログラム１１、端末装置のソフトウェア群を管理する基本ソフトウェアであるオペレーティングシステム（以下、ＯＳと表記する）１２、ＰＣカードアダプタ１３やＰＣカード７にアクセスするためのインタフェースを提供するソケットサービス１４、ソケットサービス１４を利用してＰＣカード７の有無，アドレス，割り込み番号等のＰＣカード７の情報をＯＳ１２やクライアント１５に提供するカードサービス１６、ＰＣカード７別に設けられたデバイス・ドライバであるクライアント１５などを備える。
【０００５】
また、クライアント１５は、ＰＣカード７がモデムカードであればモデムカード用のクライアント１５、フラッシュカードであればフラッシュカード用のクライアント１５を使用する。また、クライアント１５は、ＰＣカード７が搭載する機能を使用するためのインタフェースを、アプリケーションプログラム１１に提供する。但し、ＰＣカード７がメモリカードである場合、クライアント１５は、メモリテクノロジドライバ１７を経由してＰＣカード７にアクセスする。
【０００６】
ＰＣカードアダプタ１３にＰＣカード７が挿入されると、ＰＣカードアダプタ１３からソケットサービス１４に、ＰＣカード７が挿入されたことを示す挿入イベントが通知され、ソケットサービス１４はその挿入イベントをカードサービス１６に通知する。更に、カードサービス１６は挿入イベントをＯＳ１２に通知し、ＯＳ１２は、カードサービス１６を介してＰＣカード７の情報を取得し、ＰＣカード７に適したクライアント１５の組み込みと設定を行う。そして、インストールされ起動されたクライアント１５は、ＯＳ１２を経由してカードサービス１６からカード情報，アドレス番号，割り込み番号などのＰＣカード７の情報を入手し、ＰＣカード７にアクセスしてＰＣカード７の初期化を行う。これにより、アプリケーションプログラム１１は、ＰＣカード７が搭載する機能を利用できるようになる（非特許文献１を参照）。
【０００７】
ところで、一般に、ＰＣカード７はユーザの手によってＰＣカードスロットから抜き差しされる。通常、ＰＣカード７をスロットから抜く場合には、ユーザは、端末装置の電源をオフにした後、若しくは、ＰＣカード７を使用しているアプリケーションプログラム１２を終了させるようにＯＳ１２に指示する操作をした後、ＰＣカードスロットからＰＣカード７を抜く。
【０００８】
しかし、ＰＣカード７のデータを読み書きしている場合やＰＣカード７と通信している場合等、アプリケーションプログラム１１がＰＣカード７を使用している際に、ユーザによってＰＣカード７がＰＣカードスロットから抜かれてしまうと、アプリケーションプログラム１１の暴走や端末装置システムのハングアップ等の障害が発生することがある。アプリケーションプログラム１１の暴走は、システムファイルの破壊等の重大な問題に繋がる可能性もあり、また、端末装置のシステムがハングアップすると、ユーザはその度にシステムをリセットする必要があり、ユーザにとって使い勝手が悪い。
【０００９】
そこで、ＰＣカード７の抜差しの状況を端末装置に知らしめる挿抜管理方法等も提案されている（特許文献１を参照）。
【００１０】
【特許文献１】
特開平７−２１９８５１号公報
【００１１】
【非特許文献１】
ＰＣＭＣＩＡ／ＪＥＩＤＡ「ＰＣ  Ｃａｒｄ  Ｓｔａｎｄａｒｄ  Ｒｅｌｅａｓｅ  ８」，（社）電子情報技術産業協会，２００１年１０月
【００１２】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載されているように、Ｉ／Ｏバス式のＰＣカードが有する割り込み機能を用いて、ＰＣカード７の挿抜の状況を端末装置側に通知するには、図７に示した端末装置内の「ＰＣカードアダプタ１３（ＰＣカード・コントローラ）」→「ソケットサービス１４」→「カードサービス１６」→「ＯＳ１２」を経由して「クライアント１５（デバイス・ドライバ）」の順に、ＰＣカード７が抜かれたというイベントを通知する必要がある。そのため、ＰＣカード７が抜かれてからクライアント１５が処理を中断するまでのタイムラグが発生し、ＰＣカード７が抜かれた瞬間にクライアント１５の処理を中断することは難しい。
【００１３】
そこで、端末装置側のクライアント１５自らがＰＣカード７の装着の有無を判定しながら処理を行う方法も考えられるが、ＰＣカード７の装着の有無を判定するには、「クライアント１５」→「ＯＳ１２」→「カードサービス１６」を経由して「ソケットサービス１４」まで問い合わせる必要があり、ＰＣカード７の有無を問い合わせてから判定するまでに多くの時間を要することになる。また、ＰＣカード７の装着の有無を、常時この経路で判定しながら処理を行っていたのでは、端末装置及びＰＣカード７の動作が遅くなるなど、パフォーマンス面で問題が生じる。
【００１４】
また、クライアント１５がＰＣカード７の装着の有無をＰＣカードアダプタ１３に直接問い合わせる方法も考えられるが、そのためにはクライアント１５からＰＣカードアダプタ１３に直接アクセスするための新たなる経路を確立する必要がある。
【００１５】
本発明は、以上に述べた状況を鑑みて成されたものであり、処理速度に影響を与えることなく、ＰＣカードが動作中に抜かれることによる不具合を回避することができる端末装置及びアクセス制御プログラムを提供することを目的とする。
【００１６】
【課題を解決するための手段】
本発明に係る端末装置は、ＰＣカードを装着可能であり、制御部を有する端末装置であって、（ａ）ＰＣカードが端末装置に装着されていない時に制御部がＰＣカードのアドレス空間にアクセスした場合、制御部に固定値を返す手段と、（ｂ）ＰＣカードが端末装置に装着された時に、ＰＣカードのアドレス空間のうち、制御部による書き込み処理によってのみ値が変化する特定領域に、固定値とは異なる特定値をもつデータを書き込む手段と、（ｃ）ＰＣカードにアクセスする際に特定領域のデータを読み出し、読み出した特定領域のデータ値と特定値とが一致するか否かを比較し、一致しない場合、ＰＣカードが抜かれていると判断してＰＣカードに対する当該アクセスを中断する手段とを備えることを第１の特徴とする。
【００１７】
また、本発明に係るアクセス制御プログラムは、ＰＣカードを装着可能であり、制御部を有する端末装置にＰＣカードが装着されていない時に制御部がＰＣカードのアドレス空間にアクセスした場合、制御部に固定値を返す手段を備える端末装置における、ＰＣカードに対してアクセスを行わせるためのアクセス制御プログラムであって、（ａ）ＰＣカードが端末装置に装着された時に、ＰＣカードのアドレス空間のうち、書き込み処理によってのみ値が変化する特定領域に、固定値とは異なる特定値をもつデータを書き込むステップと、（ｂ）ＰＣカードにアクセスする際に特定領域のデータを読み出すステップと、（ｃ）読み出した特定領域のデータ値と特定値とが一致するか否かを比較し、一致しない場合、ＰＣカードが抜かれていると判断してＰＣカードに対する当該アクセスを中断するステップとを制御部に実行させることを第１の特徴とする。
【００１８】
また、本発明に係る端末装置は、ＰＣカードを装着可能であり、制御部を有する端末装置であって、（ａ）ＰＣカードが端末装置に装着されていない時に制御部がＰＣカードのアドレス空間にアクセスした場合、制御部に固定値を返す手段と、（ｂ）ＰＣカードが端末装置に装着された時に、ＰＣカードのアドレス空間のうち、値が変化しない特定領域から固定値とは異なる特定値をもつデータを読み出して記憶する手段と、（ｃ）ＰＣカードにアクセスする際、特定領域からデータを再度読み出し、再度読み出した特定領域のデータ値と記憶したデータ値とが一致するか否かを比較し、一致しない場合、ＰＣカードが抜かれていると判断してＰＣカードに対する当該アクセスを中断する手段とを備えることを第２の特徴とする。
【００１９】
また、本発明に係るアクセス制御プログラムは、ＰＣカードを装着可能であり、制御部を有する端末装置にＰＣカードが装着されていない時に制御部がＰＣカードのアドレス空間にアクセスした場合、制御部に固定値を返す手段を備える端末装置における、ＰＣカードに対してアクセスを行わせるためのアクセス制御プログラムであって、（ａ）ＰＣカードが端末装置に装着された時に、ＰＣカードのアドレス空間のうち、値が変化しない特定領域から固定値とは異なる特定値をもつデータを読み出して記憶するステップと、（ｂ）ＰＣカードにアクセスする際、特定領域からデータを再度読み出すステップと、（ｃ）再度読み出した特定領域のデータ値と記憶したデータ値とが一致するか否かを比較し、一致しない場合、ＰＣカードが抜かれていると判断してＰＣカードに対する当該アクセスを中断するステップとを制御部に実行させることを第２の特徴とする。
【００２０】
すなわち、本発明に係る端末装置及びＰＣカードへのアクセス制御プログラムによれば、ＰＣカードを使用している間にＰＣカードを抜かれたとしても、ＰＣカードが抜かれているか否かをＰＣカードに対してアクセスする際に判定することができ、抜かれていると判定した場合にはＰＣカードに対するアクセスを中断するため、アプリケーションプログラムの暴走やシステムのハングアップ等の障害などを防止することができる。しかも、ＰＣカードが装着されていない時にＰＣカードに対してアクセスした場合に固定値を返す手段を備え、固定値とは異なる特定値をもつ、ＰＣカードの特定領域のデータ状態を判定することで、ＰＣカードの装着の有無を判定することができるため、「クライアント」→「ＯＳ」→「カードサービス」を経由して「ソケットサービス」まで問い合わせる必要はなく、端末装置及びＰＣカードの処理速度への影響を抑えることができる。
【００２１】
【発明の実施の形態】
以下、図１〜図６を参照しながら、本発明の実施形態について詳しく説明する。
【００２２】
［第１の実施形態］
図１〜図２に示すように、第１の実施形態による端末装置１は、（ａ）ＰＣカード７が端末装置１に装着されていない時にＣＰＵ２（制御部）がＰＣカード７のアドレス空間にアクセスした場合、ＣＰＵ２に所定の固定値を返す手段（固定値リターン機能５１）と、（ｂ）ＰＣカード７が端末装置１に装着された時に、ＰＣカード７のアドレス空間のうち、ＣＰＵ２による書き込み処理によってのみ値が変化する特定領域に、固定値とは異なる所定の特定値をもつデータを書き込む手段（カード初期化処理１５１）と、（ｃ）ＰＣカード７にアクセスする際に特定領域のデータを読み出し、読み出した特定領域のデータ値と特定値とが一致するか否かを比較し、一致しない場合、ＰＣカード７が抜かれていると判断してＰＣカード７に対する当該アクセスを中断する手段（カード有無判定処理１５２）などを備える。
【００２３】
［端末装置のハードウェア構成］
図１に示すように、端末装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）４、ＰＣカードコントローラ５、ＰＣカードコネクタ６などを備え、各構成要素はバス配線を介して互いに電気的に接続されている。ＣＰＵ２（制御部）は、ＲＯＭ３やＲＡＭ４に格納されたプログラムに従って端末装置１の動作制御を行う。ＲＡＭ４は、ＣＰＵ２が実行する各種処理に関するプログラムやデータを一時的に格納するワークエリアを提供する。
【００２４】
ＰＣカード７は、例えば、外部記憶、モデム、ＬＡＮ等の各種機能を搭載したカード型装置であり、ＰＣカードコネクタ６は、ＰＣカード７を端末装置１に装着するためのコネクタである。
【００２５】
ＰＣカードコントローラ５は、ＣＰＵ２がＰＣカード７にアクセスするために使用するＰＣカード制御ＩＣであり、ＰＣカード７が端末装置１に装着されていない時にＣＰＵ２がＰＣカード７のアドレス空間にアクセスした場合、ＣＰＵ２に所定の固定値（例えば、０ｘ００）を返す固定値リターン機能５１を含む。
【００２６】
［端末装置のソフトウェア構成］
図２に示すように、端末装置１は、プラグアンドプレイ機能を実現するために、ＰＣＭＣＩＡ／ＪＥＩＴＡ「ＰＣ  Ｃａｒｄ  Ｓｔａｎｄａｒｄ」に準拠したソフトウェア構成を有している。すなわち、端末装置１は、ＰＣカード７を使用するアプリケーションプログラム１１、端末装置１のソフトウェア群を管理する基本ソフトウェアであるオペレーティングシステム（以下、ＯＳと表記する）１２、ＰＣカードアダプタ１３やＰＣカード７にアクセスするためのインタフェースを提供するソケットサービス１４、ソケットサービス１４を利用してＰＣカード７の有無，アドレス，割り込み番号等のＰＣカード７の情報をＯＳ１２やクライアント１５に提供するカードサービス１６、ＰＣカード７別に設けられたデバイス・ドライバであるクライアント１５などを備える。尚、ＰＣカードアダプタ１３は、図１に示したＰＣカードコントローラ５とＰＣカードコネクタ６を含むブロックである。
【００２７】
また、クライアント１５は、ＰＣカード７がモデムカードであればモデムカード用のクライアント１５、フラッシュカードであればフラッシュカード用のクライアント１５を使用する。また、クライアント１５は、ＰＣカード７が搭載する機能を使用するためのインタフェースを、アプリケーションプログラム１１に提供する。但し、ＰＣカード７がメモリカードである場合、クライアント１５は、メモリテクノロジドライバ１７を経由してＰＣカード７にアクセスする。
【００２８】
更に、クライアント１５は、ＰＣカード７が端末装置１に装着された時に、ＰＣカード７のアドレス空間のうち、ＣＰＵ２による書き込み処理によってのみ値が変化する特定領域に、固定値とは異なる所定の特定値をもつデータを書き込むカード初期化処理１５１と、ＰＣカード７にアクセスする際に特定領域のデータを読み出し、読み出した特定領域のデータ値と特定値とが一致するか否かを比較し、一致しない場合、ＰＣカード７が抜かれていると判断してＰＣカード７に対する当該アクセスを中断するカード有無判定処理１５２を内包している。
【００２９】
［ＰＣカードへのアクセス制御処理］
以上のような構成を有する端末装置１において、ＰＣカードアダプタ１３にＰＣカード７が挿入されると、ＰＣカードアダプタ１３からソケットサービス１４に、ＰＣカード７が挿入されたことを示す挿入イベントが通知され、ソケットサービス１４はその挿入イベントをカードサービス１６に通知する。更に、カードサービス１６は挿入イベントをＯＳ１２に通知し、ＯＳ１２は、カードサービス１６を介してＰＣカード７の情報を取得し、ＰＣカード７に適したクライアント１５の組み込みと設定を行う。そして、インストールされ起動されたクライアント１５は、図３のフローチャートに例示するような初期化処理を実行する。
【００３０】
『クライアントによる初期化処理』
ステップＳ１の処理において、クライアント１５は、ＯＳ１２を経由してカードサービス１６からカード情報、ＰＣカード７にアクセスするためのアドレス番号、割り込み番号等の情報を取得する。
【００３１】
ステップＳ２の処理において、クライアント１５は、使用するワークメモリの初期化、ＰＣカード７のハードウェアの初期化、割り込みハンドラの初期化などを行う。
【００３２】
ステップＳ３の処理において、クライアント１５は、ＰＣカード７のアドレス空間のうち、ＣＰＵ２による書き込み処理によってのみ値が変化し、書き込んだ値をＣＰＵ２から読むことができる特定領域に、上記固定値（例えば、０ｘ００）とは異なる所定の特定値（例えば、０ｘ５５）をもつデータを書き込む（カード初期化処理１５１）。
【００３３】
尚、この特定領域としては、例えば、ＰＣカード７がフラッシュＡＴＡカードであれば、セクタナンバレジスタなどを使用し、ＰＣカード７が１６５５０互換のモデムカードであれば、スクラッチパッドレジスタなどを使用する。
【００３４】
また、この特定領域に書き込んだ値を、その後変化（例えば、特定値を０ｘ５５から０ｘ５６に変化）させても良いが、その場合、変化後の値（例えば、０ｘ５６）を用いて、ＰＣカード７の装着の有無を判定するようにする。
【００３５】
『ＰＣカードへのアクセス制御処理』
以上のようにして、クライアント１５による初期化処理が完了すると、クライアント１５は、ＣＰＵ２がＰＣカード７に対してアクセスする際に、図４のフローチャートに例示するような処理手順でアクセス制御処理（カード有無判定処理１５２）を行う。
【００３６】
ステップＳ１１の処理において、クライアント１５は、初期化処理のステップＳ３で特定の値（例えば、０ｘ５５）を書き込んだ特定領域（レジスタ）のデータを読み出す。
【００３７】
ここで、ＰＣカード７がＰＣカードコネクタ６に装着されている場合には、ＰＣカード７の特定領域から特定の値（例えば、０ｘ５５）をもつデータが読み出される。逆に、ＰＣカード７がＰＣカードコネクタ６に装着されていない場合には、ＰＣカードコントローラ５の固定値リターン機能５１により、ＰＣカード７が装着されているか判定され（ステップＳ１１Ａ）、所定の固定値（例えば、０ｘ００）がＣＰＵ２に返される（ステップＳ１１Ｂ）。
【００３８】
次に、ステップＳ１２の処理において、クライアント１５は、ステップＳ１１の処理において読み出した特定領域のデータ値と、ステップＳ３において特定領域に書き込んだ特定値（例えば、０ｘ５５）とが一致するか否かを比較する。
【００３９】
ステップＳ１２における比較の結果、一致する場合には、ステップＳ１３の処理において、クライアント１５は、ＰＣカード７がＰＣカードコネクタ６に装着されていると判断して、ＰＣカード７のアドレス空間への入出力処理等、ＰＣカード７への通常のアクセス処理を継続する。
【００４０】
一方、ステップＳ１２における比較の結果、一致しない場合、つまりステップＳ１１の処理において読み出したデータ値が所定の固定値（例えば、０ｘ００）であった場合、ステップＳ１４の処理において、クライアント１５は、ＰＣカード７がＰＣカードコネクタ６に装着されていないと判断して、ＰＣカード７へのアクセス処理を中断し、アプリケーションプログラム１１やＯＳ１２にエラーを通知する等のエラー処理を実行する。
【００４１】
［第２の実施形態］
第２の実施形態による端末装置１は、（ａ）ＰＣカード７が端末装置１に装着されていない時にＣＰＵ２（制御部）がＰＣカード７のアドレス空間にアクセスした場合、ＣＰＵ２に固定値（例えば、０ｘ００）を返す手段（固定値リターン機能５１）と、（ｂ）ＰＣカード７が端末装置１に装着された時に、ＰＣカード７のアドレス空間のうち、値が変化しない特定領域から固定値（例えば、０ｘ００）とは異なる特定値（例えば、０ｘ５５）をもつデータを読み出して記憶する手段と（カード初期化処理１５１）、（ｃ）ＰＣカード７にアクセスする際、特定領域からデータを再度読み出し、再度読み出した特定領域のデータ値と記憶したデータ値とが一致するか否かを比較し、一致しない場合、ＰＣカード７が抜かれていると判断してＰＣカード７に対する当該アクセスを中断する手段（カード有無判定処理１５２）などを備える。
【００４２】
尚、第２の実施形態の端末装置１における上記以外のハードウェア／ソフトウェア構成は、第１の実施形態の端末装置１の構成と同様であるため、その説明を省略する。
【００４３】
［ＰＣカードへのアクセス制御処理］
第２の実施形態による端末装置１において、クライアント１５は、図５のフローチャートに例示するような初期化処理を実行する。
【００４４】
『クライアントによる初期化処理』
ステップＳ２１の処理において、クライアント１５は、ＯＳ１２を経由してカードサービス１６からカード情報、ＰＣカード７にアクセスするためのアドレス番号、割り込み番号等の情報を取得する。
【００４５】
ステップＳ２２の処理において、クライアント１５は、使用するワークメモリの初期化、ＰＣカード７のハードウェアの初期化、割り込みハンドラの初期化などを行う。
【００４６】
ステップＳ２３の処理において、クライアント１５は、ＰＣカード７のアドレス空間のうち、値が変化しない特定領域（レジスタ）であって固定値（例えば、０ｘ００）とは異なる特定値（例えば、０ｘ５５）のデータが格納されている特定領域（レジスタ）から、データを読み出して、ワークメモリ等に記憶する（カード初期化処理１５１）。
【００４７】
『ＰＣカードへのアクセス制御処理』
以上のようにして、クライアント１５による初期化処理が完了すると、クライアント１５は、ＣＰＵ２がＰＣカード７に対してアクセスする際に、図６のフローチャートに例示するような処理手順でアクセス制御処理（カード有無判定処理１５２）を行う。
【００４８】
ステップＳ３１の処理において、クライアント１５は、初期化処理のステップＳ２３にてデータを読み出した特定領域から、再度データを読み出す。
【００４９】
ここで、ＰＣカード７がＰＣカードコネクタ６に装着されている場合には、ＰＣカード７の特定領域から特定の値（例えば、０ｘ５５）をもつデータが読み出される。逆に、ＰＣカード７がＰＣカードコネクタ６に装着されていない場合には、ＰＣカードコントローラ５の固定値リターン機能５１により、ＰＣカード７が装着されているか判定され（ステップＳ３１Ａ）、所定の固定値（例えば、０ｘ００）がＣＰＵ２に返される（ステップＳ３１Ｂ）。
【００５０】
次に、ステップＳ３２の処理において、クライアント１５は、ステップＳ３１にて再度特定領域から読み出したデータの値が、初期化処理のステップＳ２３にてワークメモリに記憶しておいたデータの値と一致するか否かを判別する。
【００５１】
ステップＳ３２における比較の結果、一致する場合には、クライアント１５は、ＰＣカード７がＰＣカードコネクタ６に装着されていると判断し、ステップＳ３３の処理において、ＰＣカード７のアドレス空間への入出力処理等、ＰＣカード７への通常のアクセス処理を継続する。
【００５２】
一方、ステップＳ３２における比較の結果、一致しない場合、つまりステップＳ３１の処理において読み出したデータ値が所定の固定値（例えば、０ｘ００）であった場合、ステップＳ３４の処理において、クライアント１５は、ＰＣカード７がＰＣカードコネクタ６に装着されていないと判断して、ＰＣカード７へのアクセス処理を中断し、アプリケーションプログラム１１やＯＳ１２にエラーを通知する等のエラー処理を実行する。
【００５３】
以上の説明から明らかなように、第１〜第２の実施の形態における端末装置１、及び端末装置１に装着されるＰＣカード７へのアクセス制御プログラムによれば、ＰＣカード７を使用している間にＰＣカード７を抜かれたとしても、ＰＣカード７が抜かれているか否かをＰＣカード７に対してアクセスする際に判定することができ、抜かれていると判定した場合にはＰＣカード７に対するアクセスを中断するため、アプリケーションプログラム１１の暴走やシステムのハングアップ等の障害などを防止することができる。しかも、ＰＣカード７が装着されていない時にＰＣカード７に対してアクセスした場合に固定値を返す手段を備え、固定値とは異なる特定値をもつ、ＰＣカード７の特定領域のデータ状態を判定することで、ＰＣカード７の装着の有無を判定することができるため、「クライアント１５」→「ＯＳ１２」→「カードサービス１６」を経由して「ソケットサービス１４」まで問い合わせる必要がなく、端末装置１及びＰＣカード７の処理速度への影響を抑えることができる。
【００５４】
以上、本発明の実施の形態を詳細に説明したが、本発明は、その精神または主要な特徴から逸脱することなく、他の色々な形で実施することができる。
【００５５】
例えば、上記実施形態においては、フラッシュＡＴＡカードや１６５５０互換のモデムカードをＰＣカードの一例として説明したが、それ以外のＰＣカード、例えば、ＬＡＮカードなどにも同様に適用することができる。
【００５６】
このように、前述の実施形態はあらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には何ら拘束されない。更に、特許請求の範囲の均等範囲に属する変形や変更は、全て本発明の範囲内のものである。
【００５７】
【発明の効果】
本発明によれば、端末装置やＰＣカードの処理速度に影響を与えることなく、ＰＣカードが動作中に抜かれることによる不具合等を回避し、信頼性の高い端末システムを提供することができる。
【図面の簡単な説明】
【図１】第１の実施形態による、ＰＣカードを装着可能な端末装置のハードウェア構成を例示する概略ブロック図である。
【図２】第１の実施形態による端末装置のソフトウェア構成を例示する概略ブロック図である。
【図３】第１の実施形態の端末装置において、ＰＣカード装着時に実行されるクライアントによる初期化処理の処理手順を例示するフローチャートである。
【図４】第１の実施形態の端末装置において、図３に示す初期化処理の後、クライアントによるＰＣカードへのアクセス制御処理の処理手順を例示するフローチャートである。
【図５】第２の実施形態の端末装置において、ＰＣカード装着時に実行されるクライアントによる初期化処理の処理手順を例示するフローチャートである。
【図６】第２の実施形態の端末装置において、図３に示す初期化処理の後、クライアントによるＰＣカードへのアクセス制御処理の処理手順を例示するフローチャートである。
【図７】プラグアンドプレイを実現するための端末装置のソフトウェア構成を例示する概略ブロック図である。
【符号の説明】
１…端末装置
２…ＣＰＵ
３…ＲＯＭ
４…ＲＡＭ
５…ＰＣカードコントローラ
６…ＰＣカードコネクタ
７…ＰＣカード
１１…アプリケーションプログラム
１２…オペレーティングシステム（ＯＳ）
１３…アダプタ
１４…ソケットサービス
１５…クライアント
１６…カードサービス
１７…メモリテクノロジドライバ
５１…固定値リターン機能
１５１…カード初期化処理
１５２…カード有無判定処理
【図１】
2004164495.tif 000003
【図２】
2004164495.tif 000004
【図３】
2004164495.tif 000005
【図４】
2004164495.tif 000006
【図５】
2004164495.tif 000007
【図６】
2004164495.tif 000008
【図７】
2004164495.tif 000009