説明

通信システム及びそれに使用する周辺装置

【課題】 通信イベントの実行を司るコマンドの発行方向が、PC側から周辺装置側への一方向に規制されているにも拘わらず、周辺装置側でのユーザー操作により特定の通信イベントを自発的に起動することが可能な通信システムを提供する。
【解決手段】 対象通信イベントの起動をホスト装置に促すための周辺装置側トリガをユーザー操作に基づいて発生させ、ホスト装置側では、周辺装置における周辺装置側トリガの発生を監視するためのトリガ報告要求コマンドを、主通信プロトコルに従い周辺装置に向けて発行する。これを受けた周辺装置からのトリガ発生報告情報をホスト装置側で受領し、当該トリガ発生報告情報の内容から周辺装置側トリガがありと判定された場合に、対象通信イベントを起動させ、周辺装置からの再生対象データを受信し、ホスト装置上で再生させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パーソナルコンピュータ(以下「PC」と略称する)やワークステーション等をホスト装置としてこれに周辺装置が接続された通信システムと、それに使用する周辺装置とに関する。
【背景技術】
【0002】
【特許文献1】特開2005−18645号公報
【特許文献2】特開2005−107875号公報
【0003】
近年、フラッシュメモリなどの不揮発性メモリがカード型にパッケージングされたいわゆるメモリーカード(記録メディアの一例)が広く知られている。このメモリーカードは、デジタルカメラや携帯音楽プレーヤーなどのデジタル機器に用いられるデータの記憶媒体として急速に普及している。メモリーカードの仕様は統一されておらず、例えば、コンパクトフラッシュ(登録商標、以下「CF」と略称する)、スマートメディア(登録商標、以下「SM」と略称する)、メモリースティック(登録商標、以下「MS」と略称する)、SDメモリーカード(登録商標、以下「SD」と略称する)など、種々のものが市場に出回っている。
【0004】
上記メモリーカードは、PCなどに接続されてメモリーカードの読み書きを行なうメモリーカードリーダライタ(周辺装置の一例、以下「リーダライタ」と略称する)を用いることで、PCから上記メモリーカードへのアクセスが可能となる。これにより、PCとメモリーカードとの間でデータ通信が行なえるようになる。こうしたリーダライタには、メモリーカードを挿入するスロットを一つ備えたシングルスロットタイプと、複数のスロットを備えて複数のメモリーカードに対するデータの読み書きが可能なマルチスロットタイプなどがある(特許文献1〜3)。
【0005】
ところで、上記のようなリーダライタは、マルチメディアの普及によりデータ転送容量が飛躍的に増大した背景から、PCとの間のデータ伝送をシリアル通信にて行なうことも一般化してきている。しかしながら、データアクセスのための制御には、複数記憶媒体の取り扱いが容易、といった観点から、パラレル通信用周辺機器の調停/アクセス制御にて使用されていた方式を引き継いだ機器も数多く存在する。その典型例として、PCとリーダライタとのデータ通信を、いわゆるSCSI規格で定義されたプロトコル(以下、SCSIプロトコルともいう)に基づいて行われるように設計されたシステムを例示できる。SCSI規格は、ANSI(American National Standard Institute;米規格協会)によって規格化され、国際的に広く準拠されている通信プロトコルである。該プロトコルは、PC及びリーダライタの汎用性を高めることができるため広く用いられている。なお、以下の説明において、SCSI規格とは主としてSCSI−2を示すものとする。
【0006】
SCSIプロトコルにおいては、ホスト装置となるPCは、通信イベントの起動決定権が与えられたイニシエータとして機能し、周辺装置は該ホスト装置の通信対象であるターゲットとして定められる。通信イベントを実行命令するためのコマンドはPCから周辺装置に向けて順次発行される一方、発行されたコマンドを受領した周辺装置が当該コマンドに対応する処理(例えば、データの読出しや書き込み、消去、及び種々の付随的な処理)を逐次実行し、その実行結果に応じた応答情報をホスト装置側に返信する。そして、通信イベントの実行を司るコマンドの発行方向は、ホスト装置側から周辺装置側への一方向に規制されている。
【発明の開示】
【発明が解決しようとする課題】
【0007】
上記のごとく、SCSI通信はPCと周辺装置との間での双方向通信ではあるが、通信イベントの実行を司るコマンドの発行方向が、上記のごとく、PC側から周辺装置側への一方向に規制されており、通信処理開始の主導権は常にイニシエータとなるPC側が握る形となる。つまり、SCSIプロトコルに従う限り、周辺装置側でホスト装置側に通信イベント始動のためのコマンドを逆発行することは不可能であり、周辺装置側で特定の通信イベントを自発的に起動する方法が存在しなかった。例えば、リーダライタに装着したメモリーカードに記憶されたデータファイルをPC側で読み出したり、あるいはハードディスクドライブ(HDD)等のPC側の記憶装置に保存したりする場合、ユーザーは必ずPC側でそれら読み書き処理の操作(つまり、コマンド実行入力)を行なわなければならない。このため、PCから離れた場所に配置されたリーダライタにデータファイルが格納されたメモリーカードを装着しても、そのデータファイルをPCに保存したい場合、わざわざPC位置まで赴かなければ保存のための操作を行なうことができず、非常に不便であった。
【0008】
本発明の課題は、通信イベントの実行を司るコマンドの発行方向が、上記のごとく、PC側から周辺装置側への一方向に規制されているにも拘わらず、周辺装置側でのユーザー操作により特定の通信イベントを自発的に起動することが可能な通信システムと、それに使用する周辺装置とを提供することにある。
【課題を解決するための手段及び発明の効果】
【0009】
上記課題を解決するための本発明の通信システムは、
通信イベントの起動決定権を有したホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる周辺装置とを含み、通信イベントを実行命令するためのコマンドをホスト装置から周辺装置に向けて順次発行する一方、発行されたコマンドを受領した周辺装置が当該コマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報をホスト装置側に返信するようになっており、かつ、コマンドの発行方向がホスト装置側から周辺装置側への一方向に規制された主通信プロトコルを有する通信システムにおいて、
周辺装置に設けられ、予め定められた内容の対象通信イベントの起動をホスト装置に促すための周辺装置側トリガを、該周辺装置側でのユーザー操作に基づいて発生させる周辺装置側トリガ発生手段と、
ホスト装置側に設けられ、周辺装置における周辺装置側トリガの発生を監視するために、トリガ発生報告情報を応答情報として要求するためのトリガ報告要求コマンドを、主通信プロトコルに従い周辺装置に向けて発行するトリガ報告要求コマンド発行手段と、
周辺装置側に設けられ、周辺装置側トリガの発生の有無を反映したトリガ発生報告情報を応答情報としてホスト装置に主通信プロトコルに従い返信するトリガ発生報告情報返信手段と、
ホスト装置側に設けられ、トリガ発生報告情報を周辺装置から受領する報告情報受領手段と、
当該トリガ発生報告情報の内容に基づいて周辺装置側トリガの有無を判定し、該周辺装置側トリガがありと判定された場合に、対象通信イベントを起動させる対象通信イベント起動手段とを有し、
周辺装置が、少なくともデータの読出しに係るデータアクセスが可能とされた記憶媒体が着脱可能に装着され、通信イベントにより該記憶媒体に対してデータアクセスを行なう記憶装置として構成され、該記憶媒体は音声データファイル又は動画データファイルとして構成される再生対象データを記憶しており、さらに、対象通信イベントの実行手段として、
周辺装置側トリガとしての再生対象データ送信トリガの発生を、周辺装置からのトリガ発生報告情報によりホスト装置側で把握するに伴い、記憶媒体に記憶された再生対象データの送信を周辺装置に要求し、該再生対象データ送信要求を周辺装置からの応答情報として受信する再生対象データ送信要求イベントを実行する再生対象データ送信要求イベント実行手段と、
再生対象データ送信要求を受信した場合に、記憶媒体に記憶された再生対象データを周辺装置にて読み出してホスト装置へ送信する再生対象データ送信イベントを実行する再生対象データ送信イベント実行手段と、
再生対象データ送信イベントの実行により受信した再生対象データをホスト装置上で再生する再生制御手段とを有してなることを特徴とする。
【0010】
また、本発明の周辺装置は、上記本発明の通信システムを構成する周辺装置であって、予め定められた内容の対象通信イベントの起動をホスト装置に促すための周辺装置側トリガを、該周辺装置側でのユーザー操作に基づいて発生させる周辺装置側トリガ発生手段と、
周辺装置側に設けられ、ホスト装置からのトリガ報告要求コマンドに対応するトリガ発生報告情報を応答情報としてホスト装置に主通信プロトコルに従い返信するトリガ発生報告情報返信手段と、
ファイル名を文字表示するための表示部と、
を有してなることを特徴とする。
【0011】
上記本発明によると、対象通信イベントの起動をホスト装置に促すための周辺装置側トリガをユーザー操作に基づいて発生させ、ホスト装置側では、周辺装置における周辺装置側トリガの発生を監視するためのトリガ報告要求コマンドを、主通信プロトコルに従い周辺装置に向けて発行する。これを受けた周辺装置からのトリガ発生報告情報をホスト装置側で受領し、当該トリガ発生報告情報の内容から周辺装置側トリガがありと判定された場合に、対象通信イベントを起動させる。これにより、通信イベントの実行を司るコマンドの発行方向が、ホスト装置側から周辺装置側への一方向に規制されているにも拘わらず、特定の通信イベントを周辺装置側でのユーザー操作により(ホスト装置側にて)自発的に起動することが可能となる。
【0012】
そして、上記の基本原理を用いて本発明では、記憶装置として構成された周辺装置側では、これに着脱可能に装着された記憶媒体内の音声データファイル又は動画データファイルを構成する再生対象データをホスト装置側に取得させるための再生対象データ送信トリガを発生させ、これを取得したホスト装置は記憶媒体に記憶された再生対象データの送信を周辺装置に要求する。ホスト装置はその周辺装置からの送信求を周辺装置からの応答情報として受信する。そして、再生対象データを周辺装置にて読み出してホスト装置へ送信し、ホスト装置はその送信要求を受信すると、受信した再生データの再生を開始する。これにより、記憶装置として構成された周辺装置側に特に再生データ送付用のソフトウェアが搭載されていなくとも、該周辺装置に再生データを送付させることができるとともに、ホスト装置側では、送付されてきた再生データを再生することができる。
【0013】
主通信プロトコルとしては、本発明においてはSCSIプロトコル(SCSI−1、SCSI−2及びSCSI−3のいずれか:特に、現在も多くのOSカーネルで使われつづけているSCSI−2)を採用することができる。
【0014】
本発明の通信装置では、周辺装置側トリガ発生手段は、周辺装置に設けられた手動操作部と、当該手動操作部による操作信号を周辺装置側トリガとして発生させる操作信号発生部とを有し、該手動操作部は記憶媒体内の音声データファイル又は動画データファイルのうち、ホスト装置において再生する再生対象データファイルを選択するための再生対象ファイル選択操作部を含むものであり、さらに、対象通信イベントの実行手段として、周辺装置側トリガとしての、再生対象ファイル選択操作部による選択操作トリガの発生を、周辺装置からのトリガ発生報告情報によりホスト装置側で把握するに伴い、再生対象ファイル選択操作部による再生対象データファイルの選択内容の送信を周辺装置に要求し、該再生対象データファイル選択内容を周辺装置からの応答情報として受信する再生対象データファイル選択イベントを実行する再生対象データファイル選択イベント実行手段を有し、再生制御手段は、再生対象データ送信イベントの実行により受信した再生対象データを、再生対象データファイル選択イベントの実行により受信した再生対象データファイルの選択内容に基づいてホスト装置上で再生するものとできる。
【0015】
この構成によると、ホスト装置から離れた場所に配置された周辺機器に再生対象データが格納された記憶媒体を装着した場合、周辺機器側は選択されたデータファイルをホスト装置へ送信するとともに、再生対象ファイル選択操作部の存在により、ユーザーによる再生対象データの中から再生したいデータの選択を行なわせ、ホスト装置側でその再生を実行できる。従って、周辺機器がホスト装置から離れて接続されている場合でも、再生したい再生対象データの選択を周辺機器側からの遠隔操作により行なうことができる。
【0016】
本発明の通信装置では、対象通信イベントの実行手段として、再生制御手段による再生対象データの再生を停止する停止制御を実行する停止制御手段を備えることができ、ホスト装置にて再生されている再生対象データを、周辺装置側からの遠隔操作により停止することができる。
【0017】
本発明の通信装置では、再生対象データ送信要求イベント実行手段は、再生対象ファイル選択操作部による選択操作トリガを再生対象データ送信要求トリガとして使用することができる。この構成によると、再生対象ファイル選択操作部が、再生対象データ送信トリガと選択操作トリガとを同一の操作部により構成することができるので、部品点数を減としてコストを抑えることが可能となる。
【0018】
本発明の通信装置では、周辺装置側トリガ発生手段は、記憶媒体の記憶装置への装着を検出して周辺装置側トリガを発生させる記憶媒体装着検出手段を備え、再生対象データ送信要求イベント実行手段は、記憶媒体の装着に伴う周辺装置側トリガを再生対象データ送信要求トリガとして使用することができる。この構成によると、再生対象データ送信要求イベントは、記憶媒体の装着をトリガとして実行されるので、再生対象データ送信用のトリガ発生操作部が不要となり、部品点数を減としコストを抑えることができる。
【0019】
本発明の通信装置では、周辺装置側トリガ発生手段は、周辺装置に設けられた手動操作部と、当該手動操作部による操作信号を周辺装置側トリガとして発生させる操作信号発生部とを有するものとして構成することができる。周辺装置に設けられた手動操作部を操作することで、主通信プロトコルの介在により従来はホスト装置側からしか起動できなかった通信イベント(例えば前述のデータファイルの読出しや保存)を、周辺機器側からの遠隔操作により簡単に始動できるようになる。
【0020】
また、本発明の通信装置では、手動操作部は記憶媒体内の音声データファイル又は動画データファイルのうち、ホスト装置において再生する再生対象データファイルを選択するための再生対象ファイル選択操作部を含むものであり、記憶媒体は、再生対象データファイルを含む1以上のデータファイルからなるファイルリストを記憶するとともに、対象通信イベントの実行手段として、
ホスト装置側から記憶媒体に記憶されたデータファイルを検索して得られるファイルリストの文字表示情報をホスト装置側で作成し周辺装置側に送信するとともに、該文字表示情報を周辺装置にて受信し、該周辺装置に設けられた表示部にファイルリストの内容を文字表示させるファイルリスト表示イベントを、ファイルリスト送信要求イベントの完了を受けて実行するファイルリスト表示イベント実行手段を有しており、
再生対象ファイル選択操作部は、ファイルリスト表示イベントにより表示されたファイルリストの中から再生対象データファイルを選択するものとできる。
【0021】
これにより、ホスト装置から離れた場所に配置された周辺機器にデータファイルが格納された記憶媒体を装着した場合、周辺機器側では、ファイルリストの表示内容を参照してユーザーは所望のデータファイルをファイル選択操作部により容易に選択でき、さらに、選択されたデータファイルをホスト装置へ送信できるので、周辺機器がホスト装置から離れて接続されている場合でも、該データファイル送信を周辺機器側からの遠隔操作により行なうことができる。そして、ユーザーは表示されたファイルリストを確認しながら再生したい所望の再生対象データを選択することができるので、選択操作が容易となる。
【0022】
本発明の通信装置では、ホスト装置側に設けられ、再生対象データ送信イベントにて周辺装置から受信した再生対象データを該ホスト装置側に設けられたホスト装置側記憶装置上の予め定められた保存領域に保存する再生対象データ保存手段を有することができる。この構成によると、ホスト装置は、自身の予め定められた保存領域を参照することで、再生すべき再生対象データを容易に検出して再生できる。
【0023】
また、記憶媒体は、再生対象データの読出し、書き込み及び削除に係るデータアクセスが可能とされたものとすることができる。具体的には、ホスト装置側において、上記の手動操作部を記憶媒体内の再生対象データファイルを選択するための保存対象ファイル選択操作部を含むものとし、該保存対象ファイル選択操作部の操作に基づいて該再生対象データファイルをホスト装置側記憶装置上の予め定められた保存領域に保存するデータファイル保存手段を設ける。これにより、ホスト装置側には、データ保存手段による保存領域への再生対象データファイルの格納に対応して、周辺装置に対し記憶媒体上の送信元の再生対象データファイルを削除させるファイルムーブイベントを起動するファイルムーブ制御手段を設けることができる。これにより、再生対象データファイルの移動(ムーブ)処理も、周辺機器側からの遠隔操作により行なうことができる。
【0024】
また、ホスト装置側には、再生対象データファイルの保存領域への保存環境を設定する保存環境設定手段を設けることができる。これにより、ホスト装置側で再生対象データファイルの保存環境を設定でき、周辺機器側からの遠隔操作により行なう保存処理をユーザーが望む環境(あるいは条件)にて実行することができる。保存環境設定手段は、具体的には、再生対象データファイルの保存領域を設定・変更するための保存領域設定変更手段を有するものとして構成できる。これにより、周辺機器側からの遠隔操作により、記憶媒体中の再生対象データファイルをホスト装置側記憶装置内の所望の保存領域に保存することができる。
【0025】
再生対象データファイルの移動(ムーブ)処理を可能とする前述の構成では、保存環境設定手段は、ファイルムーブ制御手段によるファイルムーブイベントの起動が禁止されるファイルコピーモードと、ファイルムーブイベントの起動が許可されるファイルムーブモードとを切り替えるファイル保存モード切替手段を有するものとすることができる。これにより、周辺機器側からの遠隔操作により記憶媒体中の再生対象データファイルの保存モードを、コピーとムーブとの間で切り替え設定することができる。なお、コピー制限の付与されたファイルが検出された場合、自動的にムーブモードが選択されるように構成してもよい。
【0026】
本発明の通信装置では、トリガ報告要求コマンド発行手段は、トリガ報告要求コマンドを周辺装置に対し予め定められた時間間隔で繰り返し継続的に発行するものとすることができる。トリガ報告要求コマンドを繰り返し継続的に発行することで、周辺装置側トリガがどのようなタイミングで発生しても、ホスト装置側でこれを確実に取得することができる。
【0027】
本発明の通信装置では、周辺装置とホスト装置とは、ホスト装置側からの周辺装置のポーリングは可能であって、該周辺装置側からのホスト装置の逆ポーリングが不能なシリアル通信機構を介して接続され、通信イベントを実行するためのホスト装置と周辺装置との間における情報転送が、ホスト装置が周辺装置をポーリングする形式にてシリアル通信により実行さものとして構成できる。この構成では、周辺装置側からホスト装置をポーリングすることができない(つまり、周辺装置側に通信開始の決定権が与えられない)形になるので、本発明の効果がより有効に発揮されるばかりでなく、周辺装置を直接接続するためのホスト装置側の通信インターフェースが大幅に簡略化され、システム構成の軽量・低コスト化を図ることができる。このようなシリアル通信の規格として、USB(Universal Serial Bus)を例示できる。また、本明細書では、主通信プロトコルとしてSCSIプロトコルが採用され、かつ、ホスト装置とUSBプロトコルに従うシリアル通信バスにより接続される周辺機器のことを、USB/SCSI型周辺機器とも称する。
【0028】
USBを採用する場合、周辺装置は、より具体的には以下のように構成できる。すなわち、コマンドをホスト装置から受信してコマンド内容を解析するコマンド解析ステップと、該コマンドの解析内容を反映したデータ処理を実行するデータ処理ステップと、データ処理の結果を示す応答情報をホスト装置に返信する応答情報返信ステップとをこの順序で実行する形で周辺機器側の通信処理制御を行なうアクセス制御デバイスと、上記コマンド及び応答情報の相互転送を、ホスト装置が複数のアクセス制御デバイスをポーリングする形式にてシリアル通信により実行するシリアル通信部とを有するものとして構成する。アクセス制御デバイスは、シリアル通信部との間でコマンド及び応答情報を送受信する送受信部と、コマンドを解釈してその内容に応じたデータ処理を制御実行主体とからなるものとして構成される。なお、送受信部とシリアル通信部とは専用ICに集積することができる。この構成では、USBプロトコルに従うシリアル通信にバスを介して、SCSI等の主通信プロトコルに従うコマンドないし応答情報のやり取りを問題なく行なうことができる。
【0029】
より具体的には、周辺装置側のシリアル通信部が、ホスト装置からのシリアル通信バスを接続する通信バス接続端子と、シリアル通信バスと送受信部との間でコマンド及び応答情報の転送通信処理を実行する通信制御部とを備え、該通信制御部が、通信バス接続端子に接続される通信処理のプロトコルエンジン部と、該プロトコルエンジン部にFIFOメモリからなる制御用の双方向エンドポイントを介して接続され、転送通信処理の制御を司る制御指令部とを備えたものとして構成できる。そして、送受信部は上記プロトコルエンジン部に対し、FIFOメモリからなる該プロトコルエンジン部への入力用エンドポイントと、FIFOメモリからなる該プロトコルエンジン部からの出力用エンドポイントとを介して入出力経路が分離された形で接続することができる。また、通信制御部は、ホスト装置側から、データアクセスの対象となる送受信部の特定情報と、該送受信部に対応するエンドポイントの特定情報とを受信して、各送受信部をターゲットデバイスとしてポーリングするものとなるように構成することができる。送受信のデータバッファとなるエンドポイントを送信側と受信側とで独立して設け、ポーリング時にいずれのエンドポイントを指定するかによって、データの転送方向も容易に特定することができる。
【0030】
次に、本発明の通信システムにおいては、
ホスト装置側に設けられ、周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求コマンドを発行するとともに、該調査要求コマンドの発行に伴い、調査報告指示内容を示す予め定められたフレームフォーマットを有するとともに当該フレームの予め定められたフィールドに付加情報が書き込まれた調査指示データを作成する調査指示データ作成手段と、作成された調査指示データを周辺装置に送信する調査指示データ送信手段と、
周辺装置に設けられ、調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する調査報告データ生成手段と、
周辺装置に設けられ、調査報告データを応答情報としてホスト装置に送信する調査報告データ送信手段と、
周辺装置側に設けられ、受信した該調査指示データの予め定められたフィールドから付加情報を抽出する付加情報抽出手段と、を設けることができる。
【0031】
本発明において主通信プロトコルは、周辺装置をなす記憶装置との間のデータファイルの送受信を行なうのが主目的であり、主通信プロトコルがサポートしていない制御処理(特に、周辺装置側で通信イベントを開始するような処理)に関与する情報は、主通信プロトコルがサポートする制御情報からは独立した付加情報として取り扱う必要がある。このような付加情報は、送受信の対象となるデータファイルの本体に書き込んでも意味がない。なぜなら、制御実行等のために付加情報の内容をホスト装置側あるいは周辺装置側で参照しようとした場合、そのデータファイルを開くためのアプリケーションソフトを立ち上げる必要が生じ、全く現実性がないためである。しかし、上記の構成によれば、ホスト装置側から周辺装置側へ送りたい付加情報を、周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求イベントを利用する形で、その調査要求コマンドの発行に伴い作成される調査指示データの予め定められたフィールドに書き込むことで、主通信プロトコルによる制御下でデータファイルを経由せずに確実に送信することができる。
【0032】
また、調査報告データ生成手段は、調査報告データの予め定められたフレームにホスト装置側からの付加情報に対応する対応付加情報を書き込むものとすることができ、調査報告データ送信手段は、その対応付加情報が書き込まれた調査報告データを応答情報としてホスト装置に送信するものとすることができる。これにより、周辺装置側からホスト装置側へ送りたい対応付加情報を、上記調査要求コマンドに対する応答情報である調査報告データの予め定められたフィールドに書き込むことで、主通信プロトコルによる制御下でデータファイルを経由せずに確実に送信することができる。
【0033】
具体的には、前述のトリガ報告要求コマンドとして調査要求コマンドを使用することができる。この場合、調査指示データに付加情報として周辺装置側トリガの発生報告指示情報が書き込まれるとともに、対応する調査報告データに対応付加情報としてトリガ発生報告情報が書き込まれる。これにより、周辺装置側トリガの発生報告指示を周辺装置側に適確に伝えることができ、また、周辺装置側での周辺装置側トリガを調査報告データ中のトリガ発生報告情報により確実に把握することができる。
【0034】
他方、調査要求コマンドは、表示部に表示させる文字情報をホスト装置から周辺装置に送信する通信イベントの起動に使用することもできる。この場合、調査指示データには、付加情報として送信すべき文字を特定するための文字コード情報が付加情報として書き込まれる。また、周辺装置側には、表示部への表示用文字データを文字コードと対応付けて記憶する表示用文字データ記憶手段と、付加情報抽出手段が抽出する付加情報としての文字コード情報に対応する表示用文字データを表示用文字データ記憶手段から読み出して、表示部に表示させる表示制御手段とを設けておく。このようにすると、主通信プロトコルに文字列転送用のコマンドが存在しない場合でも(特に、SCSIプロトコル)、周辺装置側の表示部に表示したい文字の文字コードを、調査要求コマンドを用いて転送することが可能となる。そして、周辺装置側に表示用文字データ記憶手段を設けておくことで、受けた文字コードに対応する表示用文字データを用いて表示部に文字を表示することができる。なお、表示するべき文字列が長い場合は、複数回の調査要求コマンドの実行により分割送信することが可能である。また、2バイト文字(全角漢字や記号など)など、1つの文字に対応する文字コードのデータサイズが、調査指示データのフィールドサイズを超える場合、1つの文字コードを分割して複数回の調査要求コマンドの実行により送信することも可能である。
【0035】
また、調査要求コマンドは、周辺装置から受信した再生対象データファイルと重複するファイル名を有した再生対象データファイルが保存領域に存在する場合に、これを周辺装置に通知する通信イベントの起動に使用することもできる。この場合、調査指示データには付加情報として重複ファイル名特定情報が書き込まれる。また、周辺装置には、受信した重複ファイル名特定情報に基づいて重複ファイル名を表示部に表示する重複ファイル名表示手段と、表示された重複ファイルに対しホスト装置に指示する対応処理を選択入力するための対応処理選択入力部とを設けることができる。この場合、調査報告データには対応付加情報として、対応処理選択入力部からの入力情報に基づいて対応処理を指示する対応処理指示情報が書き込まれ、ホスト装置側には、周辺装置から受領する対応処理指示情報の内容に基づいて、重複ファイルに対し指示された対応処理を実行する対応処理実行手段を設けることができる。
【0036】
上記のように構成すると、周辺装置側で選択した再生対象データファイルが、ホスト装置側の記憶領域に既に存在している場合に、その存在を通知する情報を周辺装置側で表示でき、当該重複ファイルへの対応処理も周辺装置側での対応処理選択入力部からの入力情報により適確に指示することができる。対応処理としては、ホスト装置側又は記憶媒体側の再生対象データファイル名を変更する再生対象データファイル名変更処理を実行することができる。この場合、ホスト装置側の再生対象データファイルのファイル名を変更するか、記憶媒体側の再生対象データファイルのファイル名を変更するかを選択できるように構成することができる。
【0037】
調査指示データ作成手段は調査指示データにおいて、格納するべき主格納情報として発生報告指示情報以外の情報が格納されるよう主通信プロトコルに規定されたフィールドに、発生報告指示情報を主格納情報に兼用させる形で書き込むものとすることができる。主通信プロトコルがSCSIプロトコルのごとく既製の通信規格に従う場合などにおいては、本発明において初めて発生する技術概念である(トリガ)発生報告指示情報用の専用フィールドを、調査指示データのフレーム内に新たに設定できる余地が存在しない場合がある。このとき、上記のように本来発生報告指示情報とは全く別の主格納情報用に用意されたフィールドに、発生報告指示情報(を含む付加情報)を当該主格納情報に兼用させる形で書き込むようにすれば、上記のごとく専用フィールドを設ける余裕がない場合でも発生報告指示情報を問題なく書き込むことができる。
【0038】
例えば、周辺装置が、少なくともデータの読出しに係るデータアクセスが可能とされた記憶媒体が内蔵されるか又は着脱可能に装着され、通信イベントにより該記憶媒体に対してデータアクセスを行なう記憶装置として構成される場合、調査指示データにおいて、主通信プロトコルに従い記憶媒体に対するデータの読み出し又は書き込みに係る通信イベントを実行する際に、該読み出し処理又は書き込み処理に割り当てられる当該記憶媒体上のメモリ領域のアロケーション長を設定するためのフィールドをアロケーション長設定フィールドとして確保することができる。この場合、アロケーション長情報作成手段は、該アロケーション長設定フィールドにおいてアロケーション長情報を主格納情報とする形で、該アロケーション長情報に兼用される発生報告指情報を書き込むものとできる。このようにすると、アロケーション長情報に兼用させる形で、主通信プロトコルに規定されていない固有の付加情報を周辺装置側へ送信することが可能となり、周辺装置側トリガの発生報告指示情報を周辺装置側へ問題なく送信できる。
【0039】
主通信プロトコルにおいて、アロケーション長設定フィールドのサイズが一定ビット長に定められる場合、アロケーション長設定フィールドに上記付加情報を書き込む空き領域を形成するために、次のような巧妙な方法が存在する。すなわち、アロケーション長として設定可能な最大値をバイト単位にて表わしたときのビット数を、アロケーション長設定フィールドの総ビット数未満に設定する。そして、上記最大値を超えるアロケーション長がアロケーション長設定フィールドに記述された場合には、記述されたアロケーション長値とは無関係に上記最大値をアロケーション長の実設定値として定める。そして、該最大値を超える冗長なアロケーション長記述値に一義的に対応付ける形で、発生報告指示情報を含む、異なる付加情報内容を定義することができる。例えば、SCSIプロトコルにおける後述のInquiryコマンドのCDBを調査指示データとして使用する場合、このCDBはSCSIプロトコル制御用に割り振られたフィールドばかりからなり、ユーザーが新たなデータを書き込むための余裕は一見全く存在しないように見える。しかし、本来はSCSIプロトコルの主格納情報であるアロケーション長の設定フィールドにおいて、上記のごとくアロケーション長として設定可能な最大値をアロケーション長設定フィールドの総ビット数未満に設定することで、該最大値を超える冗長なアロケーション長の設定記述値に、発生報告指示情報を含む付加情報としての意味をもたせることができる。
【0040】
次に、SCSIプロトコル等の場合、調査要求コマンドにはいくつかの種別が用意されている場合がある。この場合、どのような種別の調査要求コマンドをトリガ報告要求コマンドとして使用するかが問題になる場合がある。例えば、周辺装置が、データの読出し及び書き込みの双方に係るデータアクセスが可能とされた記憶媒体が着脱可能に装着され、通信イベントにより該記憶媒体に対してデータアクセスを行なう記憶装置として構成される場合、周辺装置には、記憶媒体の交換がなされた場合に当該記憶媒体の交換をホスト装置に通知するための交換通知情報を保持する交換通知情報保持手段と、ホスト装置から予め定められた第一種コマンドを受信した場合には、該コマンドの実行後に交換通知情報保持手段に保持されている交換通知情報をクリアし、同じく第一種コマンド以外の第二種コマンドを受信した場合は、該コマンドの実行後においても交換通知情報保持手段による交換通知情報の保持状態を保留する交換通知情報保持制御手段とが設けられる場合がある。この場合、トリガ報告要求コマンドとして使用する調査要求コマンドとしては、第二種コマンドの使用が強く推奨される。なぜならば、このような目的に第一種コマンドを使用した場合、交換通知情報を特に必要としないトリガ報告要求イベントであるにも拘わらず、処理終了時には交換通知情報がクリアされてしまい、ホスト装置側でこの交換通知情報を本来必要とするシステムコンポーネント(例えばファイルシステム)が、これを取得できなくなってしまう状況が発生し、記憶媒体の記憶内容が破壊されたりするといったトラブルにつながる場合があるためである。
【0041】
調査要求コマンドとしては、例えば、周辺装置に対し該周辺装置自身の構成及び属性を特定する情報である構成/属性特定情報の報告を指示する構成/属性調査要求コマンドを採用することができる。このような周辺装置自身の構成及び属性の特定に係る通信イベントは、主通信プロトコル上では、例えばどのような種別の周辺装置(デバイス:SCSIの場合、ターゲット)が接続されているのかを、装置立ち上げ時に認識するために実行する目的で使用されることが多いが、これを本発明では、周辺装置における周辺装置側トリガの発生を監視用に、装置立ち上げ後においても所定のタイミングで繰り返し発行する。該構成/属性調査要求コマンドにより規定される通信イベントは、本来的には(装置使用中においては不変となる)周辺装置のいわば「素性」を認識することのみが目的であり、例えば、コマンドの発生の前後で記憶媒体の交換があった場合において、交換通知情報の保持状態等に不要な影響を与えるべきではないので、上記の第二種コマンドして用意することが望ましいのである。これを周辺装置側トリガの発生監視用に流用することで、該コマンドを何度繰り返し発行しても交換通知情報の保持状態には影響が及ばず、前述のトラブルを防ぐことができる。
【0042】
主通信プロトコルがSCSIプロトコルである場合、上記の調査要求コマンドとしてInquiry(照会)コマンドを使用することが望ましい。この場合、ホスト装置(イニシエータ)から周辺装置(ターゲット)に送られる調査指示データは、Inquiryコマンドの詳細内容を記述する、CDB(Command Descriptor Block:コマンド記述ブロック、コマンド毎にフレーム形式がSCSIプロトコルにて詳細に規定されている)であり、周辺装置(ターゲット)からホスト装置(イニシエータ)に返される調査報告データはInquiryデータ(フレーム形式がSCSIプロトコルにて詳細に規定されている)である。表1はInquiryコマンドに対応するCDBの形式を示すものである。
【0043】
【表1】

【0044】
SCSIプロトコルでは、ホスト装置(イニシエータ)側で周辺装置(ターゲット)から返されるInquiryデータの種別を指定することができる。具体的には、Inquiryコマンドに対応するCDBには、EVPD(Enable Vital Product Data)と称されるのフィールド(1ビット)と、ページコード(8ビット)と称されるフィールドが形成されている。表2に示すごとくEVPDフィールドに「0」が記述されているCDB(以下、CDB(0)と略記する)に対しては、Inquiryデータとして、表3に示すような、周辺装置の仕様に関係なく形式及び内容が共通に定められたスタンダードInquiryデータ(以下、S/Iデータと略称する)が返される。S/Iデータのうち、SCSIプロトコルによる通信制御に直接使用しない空き領域を、トリガ発生報告情報等、本発明特有の応答情報(以下、特有応答情報という)の記述フィールドとして使用することができる。
【0045】
【表2】

【0046】
【表3】

【0047】
例えば、S/Iデータでは、デバイスのベンダに固有の情報を記述するための一定長のフィールド(以下、ベンダ固有領域という)が設けられており、このフィールドに空き領域がある場合は、これを本発明特有の応答情報の記述フィールドとして使用することができる。また、ビット数は僅少であるが、次のような空き領域も、本発明特有の応答情報の記述フィールドとして利用することができる。すなわち、8ビットに設定された追加データ長フィールド(S/Iデータのバイト5以降のデータ長)は、S/Iデータにおけるデータフレーム長の上限から、最大データ長が8ビットに満たないことがある。この場合、追加データ長フィールドに上記最大データ長を超えるデータ長が指定されている場合、追加データ長フィールドの記述内容によらず、最大データ長が指定されることとなる。その結果、最大データ長を超えるビット値の範囲は、実質的に特有応答情報を記述するための「空き領域」として活用できる。
【0048】
一方、表4のごとく、EVPDフィールドに「1」が記述されているCDB(以下、CDB(1)と略記する)は、ホスト装置(イニシエータ)により詳細な、あるいはデバイス固有の情報を提供するための、表5のようなVPD(Vital Product Data)と称される特殊なInquiryデータが返される。
【0049】
【表4】

【0050】
【表5】

【0051】
VPDにはいくつかの種類が規定されており、どの種別のVPDを指定するかをCDBのページコードフィールドに記述する(具体的には、ページコードリスト(ページコード:00)、FRU ASCII情報(ページコード:01〜7F)、ユニットシリアル番号(ページコード:80)、動作モード定義(ページコード:81)、ASCII動作モード定義(ページコード:82)、及びベンダ固有の形式(ページコード:C0〜FF))。周辺装置はページコードフィールドで指定された種類のVDPを作成し、ホスト装置に返信する。特に、FRU ASCII情報形式及びASCII動作モード定義形式のVPDは、ページ長フィールドに続いて、必要なASCII情報を書き込むフィールドのデータ長のフィールドと、そのデータ長で指定されるASCII情報フィールドとが形成されるが、以降のフィールドはベンダ固有領域として、特有応答情報を記述するための「空き領域」として活用できる。例えば、ASCII動作モード定義形式のVPDにおいて、ASCII情報フィールドを、デバイスのバージョン情報などを記述するためのバイト数の小さい(例えば1〜3バイト)のフィールドとして定義すれば、ベンダ固有領域となる残りのフィールドの長さを比較的大きく確保することができ、ある程度サイズの大きい特有応答情報を書き込むことが可能となる。
【0052】
SCSIプロトコルでは、ターゲット(周辺装置)、あるいはこれに含まれる1又は複数のロジカルユニット(周辺装置が記憶装置である場合は、1又は複数の記憶媒体装着スロットである)上で事象や状態の変化が、ホスト装置(イニシエータ)の動作とは非同期に発生した場合、これを該イニシエータに通知するためのユニット・アテンション・コンディションを生成する機能が設けられている。周辺装置にて記憶媒体の交換が発生した場合、その交換通知情報が生成されるユニット・アテンション・コンディションに反映されることとなる。SCSIプロトコルでは、そのようなユニット・アテンション・コンディションを保留中の周辺装置に向けてInquiryコマンドが発行された場合、該周辺装置は保留中のユニット・アテンション・コンディション・コンディションをクリアせずに(ただし、Copy Aborded(CA)状態の生成前に限る)、発行されたInquiryコマンドが実行される(Inquiryデータの作成・返信)。従って、トリガ発生報告情報など特有応答情報の返信要求イベントを起動する際にあっては、Inquiryコマンドを用いることで、記憶媒体の交換がなされた場合も、その交換通知情報を含むユニット・アテンション・コンディションが保持され、交換通知情報の喪失を防ぐことができる。Inquiryコマンドが前述の第二種コマンドに該当するものであることは明らかである。
【0053】
なお、SCSIプロトコルでは、Request Senseコマンドと称される別の調査要求コマンドも使用が可能である。Request Senseコマンドは、周辺装置(ターゲット)に例えばエラー原因や種類などを報告するためのセンスデータを要求するコマンドであり、調査報告データとして該センスデータが規定フォーマットのフレームに記述されて返される。本発明においては、このセンスデータの空き領域を利用してトリガ発生報告情報など特有応答情報を書き込み、ホスト装置に返すことも原理的には可能である。しかし、SCSIプロトコルでは、SCSIプロトコルでは、ユニット・アテンション・コンディションを保留中の周辺装置に向けてRequest Senseコマンドが発行された場合、該周辺装置は保留中のユニット・アテンション・コンディション・コンディションをクリアするように(ただし、Copy Aborded(CA)状態の生成前に限る)決められており、記憶媒体の交換がなされた場合に、その交換通知情報を含むユニット・アテンション・コンディションがクリアされ、交換通知情報が喪失する惧れがある。つまり、Request Senseコマンドは前述の第一種コマンドに該当するものである。
【発明を実施するための最良の形態】
【0054】
以下、適宜図面を参照して本発明の実施形態に係る通信システム1について説明する。図1は通信システム1に適用される音声データファイル及び動画データファイルの再生機能を備えるマルチリーダライタ2(記憶装置:周辺装置の一例)の斜視図、図2はマルチリーダライタ2の概略構成を示すブロック図、図3は通信システム1に適用されるPC3(ホスト装置の一例)の概略構成を示すブロック図である。なお、以下に説明する通信システム1の構成は、本発明を具現化するための単なる一例であり、本発明の要旨を変更しない範囲で構成を適宜変更できることは当然である。
【0055】
図1(a)に示すように、マルチリーダライタ2は、その前面に着脱可能な記憶媒体として、第1メモリーカード11(例えばCF)を挿入するための第1スロット16と、第2メモリーカード11(例えばSM)を挿入するための第2スロット17と、第3メモリーカード13(例えばMS)を挿入するための第3スロット18と、第4メモリーカード14(例えばSD)を挿入するための第4スロット19とを備えている。なお、本実施形態では、周辺装置としてマルチリーダライタ2を例示して説明するが、シングルスロットタイプのリーダライタにも適用可能である。また、CFやSMなどのメモリーカードに代えてCD−ROM、DVD−ROMあるいはリムーバブルハードディスクなどのディスク記録メディアとする場合は、該ディスク記録メディアを単数あるいは複数着脱可能に挿入可能な挿入部を備えてなる、いわゆるチェンジャー型ドライブ周辺装置となる。該周辺装置を備えて構成された通信システムにも本発明は適用可能である。
【0056】
マルチリーダライタ2はUSB/SCSI型周辺機器として構成され、その背面には、図1B及び図2に示すように、USBケーブル25(図2参照)を接続するためのUSB端子24が設けられている。また、本実施形態では、主通信プロトコルとしてSCSI−2のプロトコルが採用されているものとする。図2に示すように、マルチリーダライタ2は、その内部に、各構成部を制御するCPU27と、制御プログラムや種々のデータ等を格納するROM28と、CPU27による演算の作業領域となるRAM29と、入出力制御LSI31と、USBチップ32とを備え、これらがバス33を介して相互にデータ転送が可能なように接続されている。マルチリーダライタ2は、該マルチリーダライタ2が接続されるPC3との間で、SCSIプロトコルに従うデータ通信を行なう。
【0057】
具体的には、ROM28には、SCSIプロトコルに基づいて作成された通信制御プログラムと、PC3から送信されたデータ(CDB)を解析するために用いられる解析データのテーブルリストが格納され、CPU27は、マルチリーダライタ2がSCSI対応機器のターゲットとして機能するための、受信したSCSIコマンドに対応した通信イベントの実行制御処理を行なう。また、各スロット16〜19に着脱可能に装着される各第1〜第4メモリーカード11〜14は、例えば、コンパクトフラッシュ(CF:登録商標)、スマートメディア(SM:登録商標)、メモリースティック(MS:登録商標)、SDメモリーカード(SD:登録商標)など、PCによるデータの書き込み、書き換え、消去、読出し、メディア装着確認等のデータアクセスが可能なフラッシュメモリを搭載したカード型記憶メディアである。なお、記憶デバイスとしては、CD−ROM、DVD−ROM、リムーバブルハードディスク等の読出し専用の記憶媒体からデータの読出しを行なうドライブ装置を用いることもできる。
【0058】
SCSIプロトコルに従い、PC3はホスト装置として通信イベントの起動決定権が与えられ、該PC3(ホスト装置:イニシエータ)に接続されるマルチリーダライタ2は、PC3(ホスト装置)の通信対象(ターゲット)となる。そして、通信イベントを実行命令するためのSCSIコマンドがPC3(ホスト装置)からマルチリーダライタ2(周辺装置)に向けて順次発行される一方、発行されたコマンドを受領したマルチリーダライタ2(周辺装置)が当該SCSIコマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報をホスト装置側に返信する。また、SCSIコマンドの発行方向は、PC3(ホスト装置)側からマルチリーダライタ2(周辺装置)側への一方向に規制されている。
【0059】
次に、マルチリーダライタ2には、予め定められた内容の対象通信イベントの起動をホスト装置に促すための周辺装置側トリガを、該周辺装置側でのユーザー操作に基づいて発生させる周辺装置側トリガ発生手段の機能が具備されている。具体的には、周辺装置側トリガ発生手段を構成する手動操作部としてキーボード22が筐体上面に設けられている。キーボード22を構成する各ボタン22a,22b,22c,22d,22e,22f,22g,22hには、それらボタンの押圧操作により独立に付勢されるスイッチが設けられ、ボタンの押圧/解除に伴いスイッチ出力信号のレベルが変化する。このスイッチ出力信号を周辺装置側トリガ信号として利用できる。該周辺装置側トリガ信号は、図2において入力制御LSI30に入力される。また、表示部をなす液晶表示パネル(以下、LCDという)21が表示制御LSI34を介してバス33に接続されている。
【0060】
入力制御LSI30は周辺装置側トリガ信号を受け、トリガ検出データ信号(レベル信号である)を、ボタン毎に異なるアドレスにてデータバス上に出力する。データバス上のトリガ検出データ信号は、後述のInquiryコマンド実行時に参照され、各ボタンに対応するアドレスのトリガ検出データが「トリガあり」の状態を示していれば、作成されるInquiryデータに、対応するボタンが操作された内容の対応付加情報を書き込む。つまり、キーボード22の操作状態の検出は、PC3からの指示に従って行われる。なお、Inquiryデータ作成後は、トリガ検出データ信号はリセットされる。本実施形態では、ボタン22aは、記憶媒体に記憶された再生データ(PC3側での再生・出力が可能な音声データ及び動画データ)の再生を行なう再生キーであり、ボタン22b、ボタン22c、及びボタン22dは、該再生キー22aによる再生データの再生に関連する再生関連操作部であり、ここでは、再生の停止を実行する停止実行キー22b、早送りを実行する早送りキー22c、早戻しを実行する早戻しキー22dとして設けられている。また、ボタン22gが及びボタン22hが、LCD21に表示される複数行の文字列を上下にスクロールするためのスクロールキーであり(符号22gが上スクロールキー、符号22hが下スクロールキー)、ボタン22eは、LCD21に表示される文字列の選択(例えばシングルクリック時)、及び確定(例えばダブルクリック時)の操作を行なうための実行キーであり、ボタン22fは、記憶媒体に記憶されたデータをPC3の予め定められた保存領域に記憶するための保存キーである。
【0061】
次に、USBチップ32には、各外部メモリ入出力制御部51〜54に対応して設けられたコマンド・データ・ステータス送受信部(以下、単に「送受信部」という;転送要素送受信部)41と、USB端子(通信バス接続端子)10に接続されたUSBプロトコルエンジン(プロトコルエンジン部)321と、転送通信処理の制御を司るUSBコントロール部(制御指令部)331とが集積されてなる。
【0062】
ここで、USBプロトコルエンジン(プロトコルエンジン部)321と、USBコントロール部(制御指令部)331とで構成される部分が通信制御部に該当し、また、この通信制御部と、USB端子(通信バス接続端子)10とで構成される部分がシリアル通信部に該当する。
【0063】
USBコントロール部331は、USBプロトコルエンジン321にFIFOメモリからなる制御用の双方向エンドポイントを介して接続されている。また、送受信部341は、USBプロトコルエンジン321に対し、FIFOメモリからなるUSBプロトコルエンジン321への入力用エンドポイントと、FIFOメモリからなるUSBプロトコルエンジン321からの出力用エンドポイントとを介して入出力経路が分離された形で接続されている。
【0064】
USBプロトコルエンジン321とUSBコントロール部331とで構成される通信制御部は、それぞれ、PC側から、送受信部341の特定情報と、該送受信部341に対応するエンドポイントの特定情報とを受信して、送受信部341をターゲットデバイスとしてポーリングすることにより、データアクセス先となる外部メモリ入出力制御部51〜54とデータ送受信の方向とを特定する。なお、当然のことであるが、ターゲットデバイスとなる送受信部341側からホスト装置であるPC3を逆ポーリングすることは、USBプロトコルでは許されていない。
【0065】
送受信部(転送要素送受信部)41は、USBプロトコルエンジン321との間でSCSIプロトコルに従う送受信するものである。ここで、転送要素とは、PCとの間でUSBバスを介してやり取りされる、通信イベントの内容を特定するコマンド(SCSIコマンド)と、通信イベント処理実行に対応して周辺装置側から返信される応答情報(ステータス)を含む(SCSIコマンドに特定された処理内容が、メモリーカードに記憶されたデータの送受信に関係するデータアクセス処理であった場合は、そのデータも転送要素となる。
【0066】
また、送受信部341は、図3に示すように、コントロールレジスタ81(図4参照)、ステータスレジスタ82(図5参照)、コマンドバッファ83、SCSIステータスバッファ84、SCSIデータDMAアドレスレジスタ85、SCSIデータDMAカウントレジスタ86を有する。これらの詳細については後述する。
【0067】
CPU27は、送受信部341が受信したSCSIコマンドを解析するコマンド解析ステップと、該SCSIコマンドに特定された内容の通信イベントを、対象となる外部メモリ入出力制御部51〜54(つまり、マルチリーダライタ2をターゲットとした場合、それに含まれている複数のロジカルユニット)との間で行なうイベント実行ステップと、ステータスを送受信部341に送信させるステータス送信ステップと、をこの順序で実行する。
【0068】
マルチリーダライタ2では、挿入されたメモリーカードに対してデータの読み書きを行なう場合は、該メモリーカードからデータを読み出すために使用するメモリ領域あるいは該メモリーカードにデータを記憶するために使用するメモリ領域の割り当てが行われる。この割り当てられるメモリ領域のデータ長はアロケーション長と呼ばれている。一般に、該アロケーション長はマルチリーダライタ2にアクセスするPC3からの指定されたデータ長に設定されるが、本実施形態では、マルチリーダライタ2で設定可能なアロケーション長の最大値が、PC3側から指定し得る最大数値未満に設定されている。
【0069】
PC3は、図5に示すように、各構成部を制御するCPU41と、ROM42と、RAM43と、各種ソフトウェアプログラムやデータが格納されたHDD44と、ビデオコントロールLSI45と、USBチップ46と、ビデオ端子47と、音声端子49と、複数の入出力ポートを有するUSB端子48などを備え、これらがバス49を介して相互にデータ転送が可能なように接続されている。これら各部はいわゆるマザーボードと呼ばれるメイン制御基板に一体的に組み込まれている。ビデオ端子47にはビデオケーブルを介してディスプレイ56が、音声端子には音声ケーブルを介してスピーカー59が接続されている。USB端子48はUSBハブ機能を有する。このUSB端子48には、キーボード57及びマウス58等の入力手段が接続されており、さらに、マルチリーダライタ2が接続されている。
【0070】
ROM42には、マルチリーダライタ2へ送信されるデータであって、マルチリーダライタ2のCPU27に所定の処理を実行させる指示データが格納されている。該指示データはテーブルリスト化された状態でHDD44又はROM42に格納されている。また、HDD44のプログラム格納領域には、PC3のオペレーションシステムであるWindows2000(登録商標)のSP3(以下「WIN2000」と称する)や、マルチリーダライタ2へのデータの書き込み及び読み出しと、マルチリーダライタ2に装着される記憶媒体が記憶する再生データの再生、停止、早送り、早戻し等の再生及び再生関連処理との双方を実行可能とする、当該マルチリードライタ2専用のアプリケーション(操作連動ファイル処理ソフトウェア)などのソフトウェアプログラムが格納されている。これらソフトウェアプログラムがCPU41によって読み出されて所定の演算処理がなされることにより、各アプリケーションがPC3において動作可能となる。また、上記プログラム格納領域には、マルチリーダライタ2との間でSCSIプロトコルに従うデータ通信プログラムが格納されている。本実施形態では、WIN2000が搭載されたPC3を例示して説明するが、Linuxシリーズ、MacOSシリーズなどのOSが搭載されたものであってもよい。もちろん、Windows2000のSP3をSP4やWindowsXP(登録商標)などに代替することも可能である。
【0071】
上記操作連動ファイル処理アプリケーション、PC3側のデータ通信プログラム及びマルチリーダライタ2側の制御プログラムは、互いに協働して、以下の各手段を機能的に実現する処理を行なう。
・トリガ報告要求コマンド発行手段:PC3(ホスト装置)側の操作連動ファイル処理アプリケーションにより機能実現され、マルチリーダライタ2(周辺装置)においてボタン(手動操作部)22(保存対象ファイル選択操作部(22e,22f,22g,22h)、再生対象ファイル選択操作部(22a,22b,22c,22d,22f,22g,22h))が操作されるに伴い発生する周辺装置側トリガを監視するために、SCSIプロトコル(主通信プロトコル)に従い、トリガ発生報告情報を応答情報として要求するためのトリガ報告要求コマンドを、Inquiryコマンド、具体的には前述のCDB(1)を用いたInquiryコマンド(以下、Inq(1)コマンドという)として、マルチリーダライタ2(周辺装置)に向けて発行する。
・トリガ発生報告情報返信手段:マルチリーダライタ2側の制御プログラム(ROM28内)により機能実現され、周辺装置側トリガの発生の有無を反映したトリガ発生報告情報を応答情報としてPC3(ホスト装置)にSCSIプロトコルに従い返信する。
【0072】
・報告情報受領手段:操作連動ファイル処理アプリケーションにより機能実現され、トリガ発生報告情報をマルチリーダライタ2から受領する。
・対象通信イベント起動手段:操作連動ファイル処理アプリケーションにより機能実現され、受け取ったトリガ発生報告情報の内容に基づいて周辺装置側トリガの有無を判定し、該周辺装置側トリガがありと判定された場合に、対象通信イベントを起動させる。対象通信イベントの実行手段としては、次の各手段が機能実現される。
【0073】
・ファイルリスト送信要求イベント実行手段:周辺装置側トリガとしてのファイルリスト送信トリガの発生を、マルチリーダライタ2(周辺装置)からのトリガ発生報告情報によりPC3(ホスト装置)側で把握するに伴い、記憶媒体(メモリーカード11〜14)に記憶されたデータファイルのファイルリストの送信を周辺装置に要求し、該ファイルリストを周辺装置からの応答情報として受信するファイルリスト送信要求イベントを実行する。
・ファイルリスト表示イベント実行手段:ファイルリストの内容を示す文字表示情報をPC3(ホスト装置)側で作成しマルチリーダライタ2(周辺装置)側に送信するとともに、該文字表示情報を周辺装置にて受信し、該周辺装置に設けられた表示部(LCD21)にファイルリストの内容を文字表示させるファイルリスト表示イベントを、ファイルリスト送信要求イベントの完了を受けて実行する。
【0074】
・再生対象データファイル選択イベント実行手段:周辺装置側トリガとしての、ボタン22(22a,22b,22c,22d,22f,22g,22h:再生対象ファイル選択操作部)による選択操作トリガの発生を、マルチリーダライタ2(周辺装置)からのトリガ発生報告情報によりPC3(ホスト装置)側で把握するに伴い、前述のボタン22(再生対象ファイル選択操作部)による再生対象データファイルの選択内容の送信を周辺装置に要求し、該再生対象データファイル選択内容を周辺装置からの応答情報として受信する再生対象データファイル選択イベントを実行する。前述のボタン22(再生対象ファイル選択操作部)は、ファイルリスト表示イベントにより表示されたファイルリストの中から再生対象データファイルを選択するものである。
・再生対象データ送信要求イベント実行手段:周辺装置側トリガとしての再生対象データ送信送信トリガの発生を、マルチリーダライタ2(周辺装置)からのトリガ発生報告情報によりPC3(ホスト装置)側で把握するに伴い、記憶媒体(メモリーカード11〜14)に記憶された再生対象データの送信を周辺装置に要求し、該再生対象データの送信要求(再生対象データ送信要求)を周辺装置からの応答情報として受信する再生対象データ送信要求イベントを実行する。該再生対象データ送信要求イベントは、ボタン22(再生対象ファイル選択操作部)による選択操作トリガを再生対象データ送信トリガとして使用する。
・再生対象データ送信イベント実行手段:再生対象データ送信要求を受信した場合に、記憶媒体(メモリーカード11〜14)に記憶された再生対象データをマルチリーダライタ2(周辺装置)にて読み出してPC3(ホスト装置)へ送信する再生対象データ送信イベントを実行する。
・再生制御手段:再生対象データ送信イベントの実行により受信した再生対象データをPC3(ホスト装置)上で再生する。具体的には、再生対象データ送信イベントの実行により受信した再生対象データを、再生対象データファイル選択イベントの実行により受信した再生対象データファイルの選択内容に基づいてPC3(ホスト装置)上で再生する。
・再生関連制御手段:再生制御手段による再生対象データの再生を停止する停止制御、早送りする早送り制御、早戻しする早戻し制御等、再生に関連して実行される制御を実行する。
【0075】
まず、図7を用いて、SCSIコマンドに基づいて、PC3と、USB−I/F78を介して該PC3とUSB接続されたマルチリーダライタ2との間で行われるデータ通信の概略について説明する。OS70は、GUI(Graphical User Interface)71とファイルシステム72とOSカーネル73を備えてその基幹システムが構成されている。GUI71は、コンピュータグラフィックスとマウスなどのポインティングデバイスを用いてユーザーの入力操作を実現するユーザインターフェースであり、ファイルシステム72は、コンピュータ内部でファイルやフォルダを用いてデータを管理する方式及びその管理システムである。また、OSカーネル73はアプリケーションや周辺機器を監視する等の基本機能を実装したソフトウェアである。なお、PC3には、マルチリーダライタ2へのアクセスが可能なようにドライバソフト74が予めインストールされており、該ドライバソフト74はモジュール化された状態でOSカーネル73に実装されている。
【0076】
例えば、マルチリーダライタ2へアクセスするためのアプリケーションの一例であるエクスプローラ75と操作連動ファイル処理アプリケーション76とがPC3上で起動されたとする。エクスプローラ75は周知のごとく、ファイルやフォルダを管理するためのものである。エクスプローラ75はOS70のシステムに準拠して作成されており、一般には、OS70の一機能として認識されている。従って、エクスプローラ75はファイルシステム72を介してマルチリーダライタ2と通信する。一方、操作連動ファイル処理アプリケーション76は、例えばマルチリーダライタ2の製造メーカが開発した独自のアプリケーションソフトであって、マルチリーダライタ2に挿入された記録メディアに対してデータを書き込む処理あるいはデータを読み出す処理を行なうものである。一般に、操作連動ファイル処理アプリケーション76は、ファイルシステム72の仕様が公開されていないため、OS70には準拠せずに作成される。
【0077】
まず、エクスプローラ75からマルチリーダライタ2にアクセスする場合について説明する。OS70が起動され、エクスプローラ75が起動されると、エクスプローラ75によって、Inquiryコマンドがファイルシステム72を介してOSカーネル73に発行される。なお、Inquiryコマンドを含む全てのSCSIコマンドは、OSカーネル73において仮想的に設けられたSCSIコマンド処理入口79に対して発行されるようになっている。上記Inquiryコマンドが発行されると、マルチリーダライタ2へは対応するCDB(ここではCDB(0);表2)が送信され、マルチリーダライタ2は応答情報として、その型式やデバイス名、SCSI−ID、LUN(Logical Unit Number:ロジカルユニット番号)の有無、メモリーカードの種別などの構成情報を含むInquiryデータ(この場合、S/Iデータ(表3))を作成し、PC3に返信する。これにより、マルチリーダライタ2が認識される。
【0078】
マルチリーダライタ2が認識されると、GUI71によってエクスプローラ75上にマルチリーダライタ2のドライブアイコンが生成される。そして、ユーザーがマウスなどを用いて上記ドライブアイコンにアクセスするなどして、データの読出指示が入力されると、エクスプローラ75はファイルシステム72に働きかけて、OSカーネル73に対してReadコマンド(SCSIコマンドの一例)を発行させる。一方、同様に、書込指示を入力すると、OSカーネル73に対してWriteコマンド(SCSIコマンドの一例)を発行させる。これらのコマンドデータがUSBなどのI/Fを介してマルチリーダライタ2に転送され、該コマンドに従った読み出し若しくは書き込みがマルチリーダライタ2側で実行される。なお、上記InquiryコマンドはPC3にマルチリーダライタ2が接続されたときや、マルチリーダライタ2が接続された状態でPC3の電源がリセットされたときにも発行される。
【0079】
次に、操作連動ファイル処理アプリケーション76からマルチリーダライタ2にアクセスする場合について説明する。操作連動ファイル処理アプリケーション76が起動されると、OSカーネル73に対して操作連動ファイル処理アプリケーションにのみデータバスを開放する要求が出される。OSカーネル73はこの要求を受けて操作連動ファイル処理アプリケーション76にデータバスを占有させる。換言すれば、ファイル72からSCSIコマンド処理入口79に対して発行されたSCSIコマンドを該SCSIコマンド処理入口79で受け入れないようにする。従って、操作連動ファイル処理アプリケーション76の起動中は、ファイルシステム72はマルチリーダライタ2へアクセスできなくなる。また、操作連動ファイル処理アプリケーション76が起動されると、GUI71によって操作連動ファイル処理アプリケーション76でプログラムされた入力画面(ユーザインターフェース画面)がディスプレイ56(図6参照)上に表示される。また、ドライバソフト74によって、InquiryコマンドがOSカーネル73に発行されて、その応答情報であるInquiryデータ(この場合、表3のS/Iデータ)の返信により、マルチリーダライタ2の型式やデバイス名などの構成情報が取得される。これにより、マルチリーダライタ2が認識される。その後、ドライバソフト74によってOSカーネル73に対して出されたReadコマンドやWriteコマンドに従って、マルチリーダライタ2側でデータの読み出し若しくは書き込みが実行される。
【0080】
なお、マルチリーダライタ2の認識は次のようにして行われる。すなわち、まず、OSカーネル73に対してInquiryコマンドを発行した際に生成されるCDB(0)(表2)をマルチリーダライタ2に送信する。該CDB(0)を受信したマルチリーダライタ2側では、CDB(0)に含まれる種々の情報を参照して、該情報に従った構成情報を生成し、該構成情報を含むS/Iデータ(表3)をPCへ返信する。この返信されたS/Iデータに基づき、マルチリーダライタ2が認識される。
【0081】
なお、マルチリーダライタ2(ターゲット:周辺装置)上のいずれかのスロット(あるいは外部メモリ入出力制御部:ロジカルユニット)上で、メモリーカードの交換(つまり、事象や状態の変化)がなされると、PC3(イニシエータ)に通知するためのユニット・アテンション・コンディションが生成される。PC3のファイルシステムは、このユニット・アテンション・コンディションを参照してメモリーカードの交換を認識し、FAT(ファイル・アロケーション・テーブル)等のファイル情報の更新を行なう。このようなユニット・アテンション・コンディションを保留中のロジカルユニットに向けてInquiryコマンドが発行された場合、該ロジカルユニットは保留中のユニット・アテンション・コンディション・コンディションをクリアせずに、Inquiryコマンドを実行する。つまり、Inquiryコマンドが実行された場合でも、該ユニット・アテンション・コンディションに反映されているメモリーカードの交換通知情報は消去されずに保持されるので、PC3のファイルシステムは、交換後のメモリーカードに対するアクセスを問題なく行なうことができる。
【0082】
次に、マルチリーダライタ2のより具体的な動作について、図8のフローチャートを用いて説明する。なお、以下の説明では、1つのスロットに対する処理についてのみ行っている。複数のスロットに対しては、当該処理が割り込み処理により並列して行われる。CPU27は、PCからUSBケーブルを介して供給される電源(バスパワー)によりONされると(T1)、USBチップ32からの割り込みを許可する状態となる(T2)。USBチップ32では、PC側からUSBバス上を伝送してきたコマンドを、USBプロトコルエンジン321及びUSBコントロール部331の動作によって、送受信部341へ振り分ける。なお、ここではまだ、コマンドを受け取ったことを示すレスポンスを返さない。
【0083】
送受信部341は、コマンドを受け取ると、ステータスレジスタ82の「コマンド受信完了」bitを1にし、CPU27に割り込みを掛ける。この場合、CPU27は、ステータスレジスタ82を参照することで何のための割り込みなのかを把握することができる。また、受け取ったコマンドは、コマンドバッファ83に格納される。
【0084】
CPU27は、割り込みがあると(T3:YES)、送受信部341が受け取ったコマンドの解釈を行なう(T5)。すなわち、CPU27は、送受信部341のステータスレジスタ82を参照し、送受信部341がコマンドを受け取ったことを知ると、コマンドバッファ83からコマンドを取得して、それを解釈する。これにより、CPU27は、SCSIデータの有無や伝送方向、大きさを把握する。
【0085】
CPU27は、コマンドの解釈によって、SCSIデータが無いと把握した場合(例えば、InquiryコマンドやTest Unit Readyコマンドの場合)およびSCSIデータの伝送方向がデバイス→PC(送信)であると把握した場合(例えば、Readコマンドの場合)には(T6:YES)、送受信部341のコントロールレジスタ81の「コマンド受付完了」bitと「ステータスレジスタクリア」bitに1を書き込む(T7)。
【0086】
送受信部341は、T7で「コマンド受付完了」bitに1が書き込まれた時点で、PCに対してコマンドを受け取ったことを示すレスポンスを返す。ここで、PC側は、レスポンスを受け取ると、SCSIデータが無い場合には次がSCSIステータスの受信であり、SCSIデータの伝送方向がデバイス→PCである場合には次がSCSIデータの受信であるので、デバイス待ちの状態に遷移する。
【0087】
他方、CPU27は、コマンドの解釈によって、SCSIデータの伝送方向がPC→デバイス(受信)であると把握した場合(例えば、Writeコマンドの場合)には(T6:NO)、PCからのSCSIデータを受信する準備をする(T8)。具体的には、RAM29上に受信に必要な領域を確保し、その先頭アドレスをSCSIデータDMAアドレスレジスタ85に書き込み、受信するバイト数をSCSIデータDMAカウントレジスタ86に書き込む。その後、送受信部341のコントロールレジスタ81の「コマンド受付完了」bitと「ステータスレジスタクリア」bitに1を書き込む(T9)。
【0088】
送受信部341は、T9で「コマンド受付完了」bitに1が書き込まれた時点で、PCに対してコマンドを受け取ったことを示すレスポンスを返す。ここで、PC側は、レスポンスを受け取ると、デバイス側でコマンドを解釈してSCSIデータを受け取る準備が出来たと認識して、SCSIデータの送信を開始する。
【0089】
そして、送受信部341は、SCSIデータDMAカウントレジスタ86が0になった時点で、ステータスレジスタ82の「データ受信完了」bitを1にし、CPU27に割り込みを掛ける。
【0090】
CPU27は、割り込みがあると(T10:YES)、送受信部341のコントロールレジスタ81の「データ受取完了」bitと「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの受信を完了する(T11:YES)。ここで、PC3側は、SCSIデータがデバイスに到達されたことが通知され、次がSCSIステータスの受信であるので、デバイス待ちの状態に遷移する。
【0091】
T7およびT11(YES)の後には、CPU27は、コマンドを実行する(T12)。例えばTest Unit Readyコマンドなら、第1〜第4メモリーカード11〜14が挿入されているか否かを判断する。例えばReadコマンドなら、第1〜第4メモリーカード11〜14からデータを読み出す。例えばWriteコマンドなら、この時点で書き込むべきデータをPCから受け取っているので(上述のT8〜T11)、それを第1〜第4メモリーカード11〜14に書き込む。
【0092】
次に、CPU27は、SCSIデータの伝送方向がデバイス→PC(送信)である場合(例えば、Readコマンドの場合)には(T13:YES)、読み出したデータをPCへ送信する準備をする(T14)。具体的には、RAM29上に送信に必要な領域を確保して読み出したデータを格納するとともに、その先頭アドレスをSCSIデータDMAアドレスレジスタ85に書き込み、受信するバイト数をSCSIデータDMAカウントレジスタ86に書き込む。そして、送受信部341〜344のコントロールレジスタ81の「データ送信開始」bitに1を書き込む。
【0093】
送受信部341は、T14で「データ送信開始」bitに1が書き込まれた時点で、PCへSCSIデータの転送を開始する。そして、送受信部341は、SCSIデータの転送が終わったら、ステータスレジスタ82の「データ送信完了」bitを1にし、CPU27に割り込みを掛ける。
【0094】
CPU27は、割り込みがあると(T15:YES)、SCSIデータの転送が終わったことを把握するので、送受信部341のコントロールレジスタ81の「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの送信を完了する(T16:YES)。
【0095】
T13(NO)およびT16(YES)の後には、CPU27は、SCSIステータスの送信を開始する(T17)。具体的には、CPU27は、上記処理の中で、PCに返すべきステータスを既に決定しているので、そのステータスをSCSIステータスバッファ84に書き込み、送受信部341〜344のコントロールレジスタ81の「ステータス送信開始」bitに1を書き込んで、SCSIステータスの送信を開始する。
【0096】
送受信部341〜344は、S17で「ステータス送信開始」bitに1が書き込まれた時点で、PCへSCSIステータスの送信を開始する。そして、送受信部341は、PC側からSCSIステータスを受け取ったレスポンスを受けると、ステータスレジスタ82の「ステータス送信完了」bitを1にし、CPUに割り込みを掛ける。
【0097】
CPU27は、割り込みがあると(T18:YES)、SCSIステータスの送信が終わったことを把握するので、送受信部341〜344のコントロールレジスタ81の「ステータスレジスタクリア」bitに1を書き込んで、SCSIデータの送信を完了する(T19:YES)。これにより、送受信部341〜344のステータスレジスタ82がクリアされて、元の状態に戻る。
【0098】
次に、本通信システム1において、Inquiryデータを用いた本発明の主要機能に係るデータ通信処理の流れの一例について。なお、各ステップにおける処理(請求項に記載した機能実現手段)は、PC3のCPU41あるいはマルチリーダライタ2のCPU27によって各構成部が制御されることにより行われる。図9は、主処理の流れを示すフローチャートである。すなわち、PC3にマルチリーダライタ2が接続され、各装置に電源が投入されると、まず、PC3に接続されている不明なデバイスに対してドライブを割り当てるドライブ割当処理(S1)が実行される。本実施形態では、デバイスとしてマルチリーダライタ2だけが接続されているため、これのみにドライブが割り当てられる。
【0099】
次に、ユーザーによって選択されたドライブを通信相手として設定するドライブ設定処理(S2)が行われる。ドライブが設定されると、設定されたドライブに対応するデバイス(本実施形態ではマルチリーダライタ2)が通信相手として認識される。そして、マルチリーダライタ2へのメモリーカード11〜14の装着(あるいは交換)発生の有無を監視するメモリーカード監視処理(S3)と、ファイル選択監視処理(S4)とが実施される。該主処理ルーチンは、起動管理タイマールーチンから定期的に出される起動トリガを用いる等により、一定の時間間隔(例えば100ms〜1000ms:例えば500ms)で繰り返し定常的に実行される。
【0100】
図10は、PC3においてCPU41により実行されるドライブ割当処理(S1)の詳細を示すものである。まず、参照されるドライブ(以下「参照ドライブ」と称する)がAドライブに初期設定される(S101)。該参照ドライブは、PC3側で割り当て可能なドライブのことを意味するものであって、該ドライブが複数存在する場合はドライブの割り当て処理時に昇順で参照される。参照ドライブは、PC3のWIN2000のOSカーネルで管理されている。本実施形態では、割り当て可能なドライブ数をA〜Zの26個としている。
【0101】
参照ドライブが設定されると、次に、CPU41によって、ドライブが割り当てられるデバイスからS/Iデータを返信させるためのInquiryコマンド(以下「Inq(0)コマンド」と称する)が参照ドライブに対して発行される(S102)。実際には、CPU41によって該Inq(0)コマンドがOSカーネルに対して発行され、該OSカーネルにおいて該Inq(0)コマンドが参照ドライブに発行されたものとして取り扱われる。そして、OSカーネルにより、EVPD領域が“0”に設定されたCDB(0)が生成されて、参照ドライブに関連づけられた不明デバイスに送信される。SCSI規格では、EVPD領域が“0”に設定されている場合はS/Iデータを返信するよう定義されている。CDB(0)の具体例は、前述のごとく表2に示している。なお、表2のデータ欄には、各データが16進数表記で示されている。本明細書において特に明示しない限り、データ欄は全て16進数表記で示すものとする。
【0102】
参照ドライブに関連づけられたデバイスが存在する場合であって、該デバイスがSCSIコマンドを処理することができるデバイス(SCSIコマンド対応デバイス)である場合は、該デバイスからS/Iデータが返信される。一方、デバイスが存在しない場合、あるいは存在していても該デバイスがSCSIコマンドを処理することができない場合(SCSIコマンド非対応デバイス)は、該デバイスからS/Iデータは返信されない。S103では、S/Iデータの返信の有無に基づいてCPU41によってエラー判定が行われる(S102)。具体的には、S/Iデータの返信がない場合はエラーと判定される(S102のYes側)。この場合、その後の処理はステップS107に進む。また、S/Iデータの返信がある場合はエラーと判定されない(S102のNo側)。すなわち、当該参照ドライブに関連づけられたデバイスが存在すると判定される。この場合、その後の処理はステップS105に進む。
【0103】
S103においてエラーでないと判定されると、返信されたS/Iデータに基づいて、参照ドライブに関連づけられたデバイスが通信対象となり得るデバイスであるかどうか、すなわち、通信可能なデバイスであるかどうかが判定される。本実施形態では、当該ステップは、参照ドライブに関連付けられたデバイスがマルチリーダライタ2であるかどうかを判定するために行われる。また、本実施形態では、マルチリーダライタ2から、表3に示すS/IデータがPC3へ返信されるようになっており、当該ステップにおける判定処理は、返信されたS/Iデータのバイト0の領域やバイト1の領域のデータ、あるいは、バイト8〜15の領域のベンダIDや、バイト16〜31の領域のプロダクトIDなどが、PC3側で予め登録しておいたID情報等と一致しているかどうかによって行われる。当該ステップで、通信可能なデバイスであると判定されると(S104のYes側)、処理はステップS105に進み、通信可能なデバイスではないと判定されると(S104のNo側)、処理はS107に進む。なお、表3中のバイト0領域のデータ「0x00」はダイレクトアクセスデバイスを示し、バイト1の領域のデータ「0x80」は可換記憶媒体を示すものである。上述の各バイト領域に記述される内容については、SCSI規格で定義されているため、詳細については、当該規格書を参照されたい。
【0104】
処理がS105に進むと、ここでは、返信されたS/Iデータに基づいて、当該参照ドライブのLUNが“0”であるかどうかがCPU41によって判定される。かかる判定は、S/Iデータにおけるベンダ固有領域のバイト54の領域のデータに基づいて行われる。本実施形態では、上述したように、マルチリーダライタ2から、表3に示すS/IデータがPC3へ返信されるようになっている。また、表3のバイト54領域の備考欄にも記載しているように、マルチリーダライタ2では、S/Iデータを返信する際に、バイト54の領域の上位4ビットに該マルチリーダライタ2の物理的I/Fを示す情報(本実施形態ではUSBであることを示す情報)が格納され、下位4ビットにLUNの番号を格納するようにプログラミングされている。従って、CPU41は、バイト54の領域のデータを参照すれば、LUNの情報を取得することができる。これにより、当該ステップの判定処理を行なうことができる。例えば、バイト54の領域に「0x10」が格納されている場合は、物理的I/FがUSB接続コネクタであって、LUNが0であることが取得され、「0x23」が格納されている場合は、物理的I/FがSCSI接続コネクタであって、LUNが3であることが取得される。
【0105】
S105で、LUNが“0”であると判定されると(S105のYes側)処理はS106に進み、LUNが“0”でないと判定されると(S105のNo側)処理はS107に進む。なお、WIN2000がインストールされたPC3と接続されている場合は、マルチリーダライタ2側でバイト54の領域に、例えばLUN=1の情報を格納したとしても、PC3側ではLUN=0として認識するようになっている。そのため、当該S105の処理は必ずYes側に進むことになる。この場合は、S105の判定処理は意味を成さないため省略してもよい。
【0106】
S106では、現在の参照ドライブを対応ドライブリストに追加する処理が実行される。対応ドライブリストは、最終的にドライブが割り当てられる参照ドライブをリストアップしたものである。詳細には、該対応ドライブリストがRAM43の所定の記憶領域に展開されており、該当する参照ドライブが該記憶領域に書き込まれる。その後、処理はS107に進む。
【0107】
S107では、参照ドライブがZドライブであるかどうかがCPUS41によって判定される。例えば、カウンタメモリなどにドライブの参照順をカウントさせておき、そのカウンタ値をCPU41が監視することにより、現在の参照ドライブがZドライブであるかどうかの判定が可能である。かかる判定は、設定された参照ドライブが最後であるかどうかを判定するために行われる。ここで、参照ドライブがZドライブであると判定されると、参照可能なドライブが存在しないため、続く処理はS109に進む。参照ドライブがZドライブではないと判定されると、参照ドライブを次順のドライブに設定した後に(S108)、S102からの処理がS107においてYesと判定されるまで繰り返し行われる。
【0108】
処理がS109に進むと、ここでは、対応ドライブリストに基づいてドライブの割り当てがなされる。これにより、一連のドライブ割当処理(S1)が終了する。なお、本実施形態では、外部ストレージデバイスとしてマルチリーダライタ2のみが接続されているため、Aドライブに対してマルチリーダライタ2が割り当てられ、他のドライブには何ら割り当てられないものとする。
【0109】
続いて、図11は、ドライブ設定処理(S2)の詳細を示すものである。S201では、ドライブ割当処理(S1)によって割り当てられたドライブ(以下「対応ドライブ」と称する)が存在するかどうかが判定される(S201)。すなわち、PC3で割当可能なドライブのいずれかに所定のデバイスが割り当てられたかどうかが判定される。本実施形態では、マルチリーダライタ2が割り当てられたAドライブが存在するため、対応ドライブがあると判定される。その後、対応ドライブが1つであるかどうかが判定される(S202)。一方、S201で、対応ドライブが存在しないと判定されると(S201のNo側)、通信対象が存在しないため、処理が終了する。
【0110】
S202で対応ドライブが1つであると判定されると(S202のYes側)、当該対応ドライブが通信対象として設定される(S205)。すなわち、当該対応ドライブに関連付けられたデバイスが通信対象に設定される。なお、本実施形態では、Aドライブが通信対象として設定される。換言すれば、マルチリーダライタ2が通信対象のデバイスとして設定される。
【0111】
一方、対応ドライブが複数存在すると判定された場合は(S202のNo側)、対応ドライブを示すアイコンをダイアログ表示させる(S203)。その後、ユーザーからいずれかのアイコンが選択されることによって所望の対応ドライブが選択されると、選択された対応ドライブが通信対象として設定される。なお、いずれのアイコンも選択されない場合であっても、例えば、対応ドライブごとに優先度が設定されている場合は、最も優先度の高い対応ドライブが通信対象に自動的に設定される。これにより、一連のドライブ設定処理(S2)が終了する。
【0112】
次に、図12は、周辺装置側トリガ監視処理(S3)の詳細を示すものである。まず、PC3側において、マルチリーダライタ2から該マルチリーダライタ2のVPD(Vital Product Data)を返信させるためのInquiryコマンド(以下「Inq(1)コマンド」と称する)がAドライブに対して発行される(S301)。実際には、該Inq(1)コマンドが、OSカーネルに対して発行され、該OSカーネルによってAドライブに対して発行されたものとして取り扱われる。上記Inq(1)コマンドが発行されると、OSカーネルによって、EVPD領域が“1”に設定されたCDB(1)が生成されて、Aドライブに関連づけられたマルチリーダライタ2にUSBケーブル25を介して送信される。このとき生成されるCDB(1)を表4に示す。すなわち、該CDB(1)のバイト2の領域にはページコード「0xE0」が記述されている。
【0113】
CDB(1)のバイト4の領域、すなわちアロケーション長領域には「0x10」(2進数表記では「00010000」)が格納されている。本来、アロケーション長領域には、接続されたデバイスに要求するデータ長が格納される。本実施の形態では、マルチリーダライタ2のアロケーション長の最大値が予め固定長(ここでは、仮に15バイトとしているが、これに限定されるものではない)に設定されている。この“15”という数は下位4ビットで表現できる。SCSI規格に従えば、マルチリーダライタ2において設定された上記最大値以上の数値がアロケーション長として指定されたとしても、マルチリーダライタ2のアロケーション長は上記最大値、すなわち、15バイトに設定される。従って、アロケーション長領域に「0x10」が記述されていても、また、「0x11」以上が記述されていても、アロケーション長は15バイトに設定される。これは、アロケーション長領域のデータのうち、上位4ビットのいずれかのビットが「1」である場合は、該アロケーション長領域のデータを(アロケーション長の設定値に兼用された)任意のデータ(付加情報)として自由に使用することができるということを意味する。すなわち、上位4ビットのいずれかのビットを「1」とすることにより、アロケーション長領域における当該ビット以外のビットを、いわば仮想的な空き領域として確保することができる。このように確保された仮想的な空き領域に任意のデータを付加することで、PC3とマルチリーダライタ2との間で、上記付加情報に係るデータ通信が可能となるのである。
【0114】
なお、上記アロケーション長は常に固定長(ここでは15バイト)に設定されるのではなく、CDB(1)のページコードに応じてその最大値が設定されるようにしてもよい。例えば、ページコード「0xE0」の場合は、アロケーション長の最大値が15バイトの固定長に設定され、ページコード「0xE2」の場合は、9バイトの固定長に設定される。かかる設定処理は、CDB(1)を受信したマルチリーダライタ2のCPU27によってページコードの内容が読み取られ、読み取られた内容に応じて、予めROM28に格納しておいた固定長対応リストから該当する固定長を選定することにより行われる。もちろん、15バイトあるいは9バイトと定めた上記アロケーション長は任意に設定することができる。
【0115】
表6及び表7に、上記アロケーション長領域に確保された空き領域に付加される通信データを類別して示す。各表のデータ内容欄に示すように、各データには、それ自体が何を意味するものであるのかが定義づけられている。具体的には、データ内容欄の記載を参照されたい。なお、表6はページコードが「0xE0」の場合に送信される通信データであり、表7は、ページコードが「0xE2」の場合に送信される通信データである。CDB(調査指示データ)において、このページコード(調査指示データ種別識別情報)を変更すれば、アロケーション長最大値や付加情報内容の異なる別の調査指示データフォーマットを生成することができる。
【0116】
【表6】

【0117】
【表7】

【0118】
表6及び表7の左欄には、アロケーション長領域に記述されるデータそのものが、右欄にはそのデータの意味する内容が示されている。PC3側からマルチリーダライタ2に上記左欄のデータが送信されると、マルチリーダライタ2側では、CPU27により、受信したCDB(1)からアロケーション長領域のデータが抽出され、抽出されたデータの内容が解析され、そして、解析されたデータの内容に従った処理が実行される。なお、表6及び表7に示す内容は、テーブルリスト化されて、PC3のHDD44又はROM42と、マルチリーダライタ2のROM28に予め格納されている。
【0119】
上記S301でInq(1)コマンドが発行されて生成されたCDB(1)には、表5に示すように、アロケーション長領域に「0x10」が記述されている。従って、Inq(1)コマンドは、PC3からマルチリーダライタ2に対して、メモリーカードの装着発生有無を検出させるための命令であることを意味する。一方、マルチリーダライタ2側では、送信されたCDB(1)が受信される。その後、CPU27によって、CDB(1)内のアロケーション長領域のデータ「0x10」が抽出され、そして、該データに従って、メモリーカードの装着発生有無を検出する処理が行われる(S302)。
【0120】
メモリーカードの装着発生有無の検出が終了すると、その検出結果がCPU27によってPC3へ返信される(S303)。該返信処理は、具体的には、CDB(1)の受信後に生成されてPC3へ返信されるVPDに上記検出結果を書き込むことにより行われる。より詳細には、表8に示すように、バイト7の領域にメモリーカードの装着発生のありなしが書き込まれる。本実施形態では、装着発生なしの場合は「0x00」が書き込まれ、装着発生ありの場合は「0x01」が書き込まれる。なお、表8は装着発生ありの場合のVPDを示す。
【0121】
【表8】

【0122】
続いて、PC3側では、マルチリーダライタ2から返信される表8のVPDを受信して、該VPDのバイト7の領域を参照することにより、メモリーカードの装着発生の有無が判定される(S304)。ここで、メモリーカードの装着なしと判定されると(S304のB側)、以下のステップは全てスキップされて処理は終了する。
【0123】
他方、メモリーカードの装着ありと判定されると(S304のA側)、PC3側では、既に説明したファイルシステムを利用して、装着されたメモリーカード内のデータファイルを検索し、ファイルリスト(フォルダ構造を含む)を作成する(S305)。
【0124】
その後、作成したファイルリストデータに基づいて、マルチリーダライタ2側のLCD21に該ファイルリストを文字表示させるための文字列データが作成され(S306)、RAM29にファイルリスト用文字列データとして記憶される。文字列データは、表示対象となる文字に一対一に対応したビットコードデータ(文字コード)であり、JISコード、シフトJISコードあるいはASCIIコードなどの既製のコードをそのまま使用してもよいし、独自のコードを使用してもよい。ただし、周辺装置側の表示用文字データテーブル(例えばROM28内:表示用データ自体は、ビットマップ型あるいはアウトライン型のフォントデータである)が上記既製コードを用いて作成されたものである場合、上記独自コードとの対応関係を示すテーブルを別途周辺装置側にて用意しておき(例えばROM28内)、このテーブルを参照して該独自コードを上記既製コードに変換してから表示に用いるとよい。
【0125】
作成された文字列データは、マルチリーダライタ2へ送信される(S307)。かかる送信処理は、図13のフローチャートに示すステップS401以降の処理手順に従って行われる。まず、Inq(1)コマンドが発行される(ステップS401)。このInq(1)コマンドが発行されることにより生成されたCDB(1)データはマルチリーダライタ2へ送信される。なお、Inq(1)コマンドの発行によりマルチリーダライタ2からVPDが返信されてくるが、文字列送信の場合の該VPDには返信データは付加されないように決めてある。それ故、ここではVPDの返信処理の説明を省略する。
【0126】
より詳細には、ステップS401では、ページコードとしてバイト2の領域に「0xE2」が、アロケーション長領域に「0x18」が記述されたCDB(1)データが生成される。従って、該ステップで発行されるInq(1)コマンドは、表7に基づけば、「0x90」で示される文字列番号に対応する文字列記憶領域(RAM29内の記憶領域)の先頭にポインタをセットさせるための要求命令である。もちろん、この要求命令はマルチリーダライタ2に対してなされるものである。なお、上記ポインタとは、後述するステップS402によって切り出された文字を格納する位置を指示する指標を意味する。
【0127】
続いてステップS402では、PC3のRAM43に格納されたファイルリスト表示用の文字列データから、その先頭から順番に文字が切り出される。その後、ステップS403において、ステップS402で切り出された文字が終端文字であるかどうかがCPU41によって判定される(S403)。かかる処理は、切り出された文字を示すデータが「0x00」であるかどうかによって判定される。「0x00」は文字を示すものではないため、このステップで、「0x00」であると判定されると、終端文字であると判定される。切り出された文字が終端文字であると判定されると、処理はステップS406に進む。一方、切り出された文字が終端文字でないと判定されると、処理はステップS404に進む。ここでは、Inq(1)コマンドが発行されて、ページコードとして「0xE2」が、アロケーション長領域に、ステップS402で切り出された文字データの記述されたCDB(1)データが生成される。そして、生成されたCDB(1)データがマルチリーダライタ2へ送信される。
【0128】
CDB(1)データの送信後は、文字データの切り出し位置が次の文字に設定され(S405)、その後に、ステップS402からの処理が繰り返し実行される。その後、処理がステップS406に進むと、Inq(1)コマンドが発行されて、ページコードとしてバイト2の領域に「0xE2」が、アロケーション長領域に「0x17」が記述されたCDB(1)データが生成される。これは、現在の文字列記憶領域において、最後に格納された文字(即ち末文字)が格納された領域以降のすべてのビット領域を「0x00」で埋めるための要求命令である。換言すれば、マルチリーダライタ2に送信され、RAM29に格納されたデータの終端以降に「0x00」を付け加えて、格納されたデータを所定長さ(例えば128ビット)のビットデータに揃えさせるための要求命令である。該ステップS406の後に、上記図12の送信処理(S309)が完了する。
【0129】
図12に示す上記送信処理(S307)によりデータが送信されると、送信されたデータは、マルチリーダライタ2側で受信され、該受信されたデータがRAM29に格納される(S308)。実際には、上記ステップS406(図8参照)で切り出された文字が一つずつ送信される毎に、その文字データが順次RAM29に格納される。
【0130】
上記送信処理(S307)の後、再度、PC3側でInq(1)コマンドが発行され、これにより生成されたCDB(1)データがマルチリーダライタ2へ送信される(S309)。このとき生成されるCDB(1)データを表9に示す。表9に示すように、バイト2の領域に「0xE0」が、アロケーション長領域に「0x11」が記述されているため、表6に基づけば、このとき発行されたInq(1)コマンドは、次に送信されるデータが示す数に対応する文字列番号の文字列記憶領域(RAM29内の記憶領域)に格納されたデータをマルチリーダライタ2の液晶表示部21へ転送させる要求命令であることが理解できる。
【0131】
【表9】

【0132】
その後、もう一度Inq(1)コマンドが発行され、ページコードとしてバイト2の領域に「0xE0」が、アロケーション長領域に文字データが記憶されている文字列番号を示すデータ「0x90」が記述されたCDB(1)データがマルチリーダライタ2へ送信される(S310)。従って、マルチリーダライタ2で該CDB(1)データが受信されると、CPU27によって、S308で送信されてきた文字列番号に対応する文字列記憶領域に格納された受信データ(文字データ)が読み出されて、液晶表示部21へ転送される(S311)。これにより、PC3から送信されたデータが液晶表示部21で表示される。
【0133】
本実施形態では、ファイルリスト表示用の文字データがメモリーカードの装着時に一括してマルチリーダライタ2側に送信され、図2のRAM29に格納される。そして、そのLCD21への表示と、閲覧のためのLCD21上でのスクロール処理、及び表示されたファイルリスト上でのファイル選択処理は、全てROM28内のマルチリーダライタ2(周辺装置)側の表示制御プログラムにより、表示制御LSI34と協働して実行される。キーボード22の出力は表示制御LSI34にも分配入力されている。
【0134】
図15のステップ1は、LCD21におけるファイルリストの表示例を示している。上位フォルダFのフォルダ名を示す文字列データが複数取得されているが、LCD21の表示画面にはその一部だけが表示されている。図2Aのスクロールキー22g,22hを操作すると、ステップ2に示すように、文字列データ(上位フォルダF)が上下にスクロールされ、隠れていた文字列データを表示することができる(図15では、符号21が液晶表示器の表示領域を示している)。
【0135】
表示されている上位フォルダFを選択し(本実施形態では、スクロールによりLCD21に表示させた状態が選択状態も兼ねているが、別途、カーソルを用いてもよい)、確定ボタン22eをシングルクリックすれば、ステップ3のごとく、上位フォルダFが開いてその内部の下位フォルダSFのリストが表示される。なお、この状態でステップ4に示すごとく、対応する上位フォルダFを再度選択してシングルクリックすれば、上位フォルダFが閉じてステップ3の状態に戻る。他方、下位フォルダSFのいずれかを選択して確定ボタン22eをシングルクリックすれば、ステップ5に示すごとく、選択した下位フォルダSFが開き、その内部のデータファイルDFのリストが表示される。このように、クリックを繰り返してフォルダ階層間を移動する処理は周知である。
【0136】
データファイルDFのリストが表示されば、所望のデータファイルDFを選んで確定ボタン22eをシングルクリックすれば、ステップ6に示すごとく、そのデータファイルDFの仮選択状態となる(再度シングルクリックすると仮選択状態が解除される。仮選択されたデータファイルDFの表示は、反転、強調などにより、非選択状態とは異なる仮選択表示状態とされる。仮選択が完了すれば、仮選択されたデータファイルDFのどれかをLCD22に表示させた状態とし、確定ボタン22eをダブルクリックすれば、ステップ7に示すごとく、仮選択したデータファイルDFの選択状態が確定される。また、確定されたデータファイルが、PC3側で認識可能な予め定められた形式の音声データファイルや動画データファイルであれば、該ファイルに関連する補助情報を表示してもよい。該データファイルが確定された場合には、PC側で、該ファイルデータのファイル情報(例えば、音楽データファイルであれば、曲名やアーティスト名等)を取得し、その取得情報を表示するための文字列を作成して、図12の周辺装置側トリガ監視処理におけるS306〜S307と同様の処理を行なうことにより、補助情報を液晶表示器21に表示することができる。
【0137】
次に、図14は、ファイル選択監視処理(S4)の詳細を示すものである。PC3側では、ファイル選択情報をマルチリーダライタ2から取得するための新しいInq(1)コマンドが発行され、生成されたCDB(1)には、アロケーション長領域に「0x13」が記述される(S1301)。表6から、このInq(1)コマンドは、PC3からマルチリーダライタ2に対して、上記データファイルDFの選択状態を送信させる命令であることを意味する。一方、マルチリーダライタ2側では、送信されたCDB(1)が受信される。その後、CPU27によって、CDB(1)内のアロケーション長領域のデータ「0x13」が抽出され、そして、該データに従って、上記CDB(1)の受信後に生成されるVPDに上記データファイルDFの選択状態を書き込み(S1304)、PC3に返信する(S1305)。
【0138】
PC3はマルチリーダライタ2から返信されるVPDを受信して、該VPDのバイト7の領域を参照することにより、選択確定されたデータファイルDFが何であるかが判定される(S1306)。S1307で選択確定されたデータファイルDFが存在すれば、この後説明する操作連動ファイル処理ルーチンに、マルチリーダライタ2に装着されたメモリーカード(記憶媒体)の該選択されたデータファイルに対する、該データファイル受信を含む予め定められたファイル処理(通信イベント)を指令する。
【0139】
図16は、S1308にて実行される操作連動ファイル処理の流れを示すものである。S1001〜S1005では、ボタン22の押下(操作)の有無を判定する。なお、S1002〜S1009における判定処理は、以下のとおりにして行なう。
【0140】
まず、PC3側でInq(1)コマンドを発行し、これにより生成されたCDB(1)には、表5に示すように、アロケーション長領域に「0x12」が記述される。従って、Inq(1)コマンドは、PC3からマルチリーダライタ2に対して、ボタン22の操作内容を検出させるための命令であることを意味する。マルチリーダライタ2側では、送信されたCDB(1)が受信される。その後、CPU27によって、CDB(1)内のアロケーション長領域のデータ「0x12」が抽出され、そして、該データに従い、ボタン22の操作内容を検出する処理がマルチリーダライタ2側にて行われる。ボタン22の操作内容の検出が終了すると、その検出結果がCPU27によってPC3へ返信される(S303)。該返信処理は、具体的には、CDB(1)の受信後に生成されてPC3へ返信されるVPDに上記検出結果を書き込むことにより行われる。より詳細には、表8に示すように、バイト8又はバイト9の領域にボタン22の操作内容が書き込まれる。本実施形態では、上スクロールキー22gの操作が有った場合に「0x01」が、下スクロールキー22hの操作が有った場合に「0x02」が、確定・選択キー22eの操作が有った場合に「0x03」が、コピーキー22fの操作が有った場合に「0x04」が、キー22g,22h,22e,22fの操作入力が無い場合には「0x00」が、バイト8に書き込まれ、再生キー22aの操作が有った場合に「0x01」が、停止キー22bの操作が有った場合に「0x02」が、早送りキー22cの操作が有った場合に「0x03」が、早戻しキー22dの操作が有った場合に「0x04」が、キー22a,22b,22c,22dの操作入力が無い場合には「0x00」が、バイト9に書き込まれる。なお、表8は上スクロールキー22gの操作(押下)発生の場合のVPDを示す。
【0141】
S1005では、上記の判定方法に基づいて、コピーキー22fの操作の有無が判定される。これにより、上下スクロールキー22g,22hで選択されたファイル(仮選択を含んでもよい)をPC3側で保存する処理が実行される。図17はその詳細を示すものである。
【0142】
なお、PC3側では、コピーキー22fの操作に伴うデータファイルの保存に関する設定カスタマイズ処理を予め行なうことができる。図18は、設定カスタマイズ処理の流れを示すもので、S1501ではマルチリーダライタ2からのファイル転送モードを、マウス58あるいはキーボード57により入力・選択する。ファイル転送モードには、メモリーカード2から転送されたデータファイルを、HDD44(データファイル保存手段)上の予め定められたフォルダ(保存領域)にコピーする(この場合、メモリーカード2からデータファイルは削除されない)コピーモードと、同じくムーブ(移動:メモリーカード2からデータファイルが削除される)するムーブモードとがあり、上記の入力内容に従い、S1502〜S1506で、そのいずれかが選択可能される。また、S1507では、データファイルの格納先を指定する入力を行なう。例えば、周知のごとくディスプレイ56にファイルディレクトリ構造を、フォルダツリー形式で表示し、マウス58によるクリックにより、格納先とするフォルダを選択することができる。S1508で選択されたフォルダがファイル格納先として設定される。なお、設定カスタマイズが実施されていない場合は、デフォルト設定に従う。
【0143】
図17Aは、コピーキー22fの操作に伴い実行されるファイル保存処理ルーチンの処理の流れを示すフローチャートである(このルーチンは、定期的に繰り返し実行されるものである)。S501では、上下スクロールキー22g,22hの操作により選択確定されたデータファイルの情報を取得する。次に、S502では、PC3のHDD44内に設定されたデータファイルの格納先となるフォルダ内を検索し、選択確定されたデータファイルと重複するファイル名のデータファイルが存在しないかどうかを確認する。存在しない場合はS508に進み、OSのファイルシステムを用いてメモリーカードのデータファイルを読み出す通信イベントを起動し、マルチリーダライタ2から読み出されたデータファイルを受信する。そしてS404で、受信したデータファイルを保存先として指定されているHDD42内のフォルダに書き込む。なお、ムーブモードが選択されている場合は、メモリーカードの送信元となるデータファイルを削除する通信イベントを起動する。
【0144】
一方、S503で、選択確定されたデータファイルと重複するファイル名のデータファイルが存在する場合はS504に進み、これをマルチリーダライタ2に通知する通信イベントユーザーが起動される。この場合も、新しいInq(1)コマンド(調査要求コマンド)が発行され、作成されるCDB(1)データ(調査指示データ)に付加情報として重複ファイル名を特定する情報(文字列データとしてもよいが、ファイルリスト上での順位コードで簡略化して特定するほうが望ましい)を書き込み、マルチリーダライタ2に送信する。マルチリーダライタ2では、受信した重複ファイル名特定情報に対応するデータファイルを、RAM29に既に格納されているファイルリスト上で検索し、図17Bに示すように、そのファイル名(すなわち、重複ファイル名)をLCD21表示部に表示する。この場合に可能な対応処理も、LCD21に合わせて表示することができる(図17Bでは、スクロールにより複数の対応処理を順次表示できるようにしている。なお、この対応処理の種別を示す文字情報は、内容が一定であるためROM28等、マルチリーダライタ2側で予め用意しておくことができ、この場合はPC3から文字列データを受信する必要はない。
【0145】
マルチリーダライタ2側では、キーボード22を用いてLCD21上で対応処理をスクロールし、確定ボタンのダブルクリックにより選択・確定する(キーボード22は対応処理選択入力部に兼用されている)。選択可能な対応処理の種別は、コピー先(HDD44)のファイル名変更(1)、コピー元(メモリーカード(記憶媒体))のファイル名変更(2)、コピー中止(3)である。そして、どの対応処理が選択されたかがVPD(調査報告データ)に書き込まれ、PC3側に返信される。
【0146】
図17Bに戻り、PC3側では受信したVPDに書き込まれている情報により、対応処理の種別が上記1〜3のいずれであるかを特定し、処理を行なう(S506,S507)。つまり、1である場合はコピー先(HDD44)のファイル名を書換え(例えば、元のファイル名に「コピー〜」などの文字列を加える)、2である場合は、コピー元(メモリーカード(記憶媒体))のファイル名変更を行なうための通信イベントを起動する。ファイル名変更が完了すればS508の処理に進む。以下、選択確定された全てのデータファイルについての処理(コピー中止も処理完了とみなす)が終了するまで、同じ処理を繰り返す(S509→S503)。
【0147】
図16に戻る。S1002では、再生キー22aの操作の有無が判定される。これにより、上下スクロールキー22g,22hで選択されたファイルをPC3側で再生する処理が実行される。具体的には、上下スクロールキー22g,22hの操作により選択されたメモリーカード内のデータファイルを、OSのファイルシステムを用いて読み出す通信イベントを起動し、マルチリーダライタ2から読み出されたデータファイルを受信して、受信したデータファイルを保存先として予め指定されているHDD42内のフォルダ(S1006の保存先とは異なる)に書き込む。そして、PC3側で、保存したファイルを、該ファイルに対応する、PC3のHDD44に記憶される周知のドライバソフトを用いて開き(S1007)、その再生制御を実行する(S1008)。これにより、PC3のディスプレイ56やスピーカー59において音声、動画が出力される。
【0148】
S1003〜S1005は、既に再生されているファイルに対し、停止キー22b、、早送りキー22c、早戻しキー22dの操作の有無が判定される。これらの操作が判定されると、PC側において現在再生されているデータの停止(S1011)、早送り(S1009)、早戻し(S1010)を上記のドライバソフトにより実行される。
【0149】
なお、上述した実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、実施形態を適宜変更することができる。
【0150】
上記実施例においては、再生対象データ送信要求イベント実行手段は、ボタン22(再生対象ファイル選択操作部)による選択操作トリガを再生対象データ送信トリガとして使用し、再生対象データ送信要求イベントを実行しているが、例えば、周辺装置側トリガ発生手段は、記憶媒体の記憶装置への装着を検出して周辺装置側トリガを発生させる記憶媒体装着検出手段を備えるよう構成し、再生対象データ送信要求イベント実行手段は、記憶媒体の装着に伴う周辺装置側トリガを再生対象データ送信トリガとして使用することもできる。具体的には、図12の周辺装置側トリガ監視処理におけるS301において実行される記憶媒体の装着判定処理において、装着ありと判定された場合に実行し、図16の操作連動ファイル処理実行時には、既にPC3のHDD42内のフォルダ(S1006の保存先とは異なる)に再生対象とされる音声データファイルや動画データファイルが保存されるようにしてもよい。
【図面の簡単な説明】
【0151】
【図1A】本発明の通信システムに適用されるマルチリーダライタの一例を正面側から見た斜視図。
【図1B】同じく背面側から見た斜視図。
【図2】マルチリーダライタの電気的構成の一例を示すブロック図。
【図3】マルチリーダライタのSCSIコマンド・データ・ステータス送受信部の説明図
【図4】コントロールレジスタの説明図
【図5】ステータスレジスタの説明図
【図6】本発明の通信システムに適用されるPCの概略構成を示すブロック図。
【図7】PC上で動作するOSと、該OS上で動作するアプリケーションを説明するための概念図。
【図8】マルチリーダライタのSCSIコマンド・データ・ステータス送受信部が行なう処理の流れを表すフローチャート。
【図9】本発明の通信システムにおいて実行されるデータ通信処理の処理の流れを表すフローチャート。
【図10】図9のドライブ割当処理の流れを表すフローチャート。
【図11】図9のドライブ設定処理の流れを表すフローチャート。
【図12】図9のメモリーカード装着監視処理の流れを表すフローチャート。
【図13】図12の文字列データ送信処理の詳細を示すフローチャート。
【図14】図9のファイル選択監視処理の流れを表すフローチャート。
【図15】ファイルリスト表示の例を示す説明図。
【図16】操作連動ファイル処理ルーチンの流れを表すフローチャート。
【図17A】ファイル保存処理ルーチンの処理の流れを示すフローチャート
【図17B】重複ファイル検出時の表示例を示す説明図。
【図18】設定カスタマイズの処理の流れを表すフローチャート。
【符号の説明】
【0152】
1 通信システム
2 マルチリーダライタ(周辺装置)
3 PC(ホスト装置)
11 第1メモリーカード(記憶媒体)
12 第2メモリーカード(記憶媒体)
13 第3メモリーカード(記憶媒体)
14 第4メモリーカード(記憶媒体)
21 液晶ディスプレイ(表示部)
22 キーボード(手動操作部、周辺装置側トリガ発生手段、再生対象ファイル選択操作部、保存対象ファイル選択操作部、対応処理選択入力部、)
27 CPU(トリガ発生報告情報返信手段、調査報告データ生成手段、トリガ発生報告情報書き込み手段、調査報告データ送信手段、交換通知情報保持手段、交換通知情報保持制御手段、ファイルリスト表示イベント実行手段、データファイル選択イベント実行手段、データファイル送信イベント実行手段、付加情報抽出手段、再生対象データ送信要求イベント実行手段、再生対象データ送信イベント実行手段、再生対象データファイル選択イベント実行手段)
28 ROM
29 RAM
34 表示制御LSI(表示制御手段)
41 CPU(トリガ報告要求コマンド発行手段、報告情報受領手段、対象通信イベント起動手段、保存環境設定手段、保存領域設定変更手段、ファイル保存モード切替手段、調査指示データ作成手段、調査指示データ送信手段、ファイルリスト表示イベント実行手段、データファイル選択イベント実行手段、データファイル送信イベント実行手段、対応処理実行手段、再生対象データ送信要求イベント実行手段、再生対象データ送信イベント実行手段、再生制御手段、再生関連制御手段(停止制御手段)、再生対象データファイル選択イベント実行手段、再生対象データ保存手段)
42 ROM
43 RAM
44 HDD
51〜54 入出力制御部(記憶媒体装着検出手段)

【特許請求の範囲】
【請求項1】
通信イベントの起動決定権を有したホスト装置と、該ホスト装置に接続される該ホスト装置の通信対象となる周辺装置とを含み、前記通信イベントを実行命令するためのコマンドを前記ホスト装置から前記周辺装置に向けて順次発行する一方、発行されたコマンドを受領した前記周辺装置が当該コマンドに対応するデータ処理を逐次実行し、その実行結果に応じた応答情報を前記ホスト装置側に返信するようになっており、かつ、前記コマンドの発行方向が前記ホスト装置側から前記周辺装置側への一方向に規制された主通信プロトコルを有する通信システムにおいて、
前記周辺装置に設けられ、予め定められた内容の対象通信イベントの起動を前記ホスト装置に促すための周辺装置側トリガを、該周辺装置側でのユーザー操作に基づいて発生させる周辺装置側トリガ発生手段と、
前記ホスト装置側に設けられ、前記周辺装置における前記周辺装置側トリガの発生を監視するために、前記トリガ発生報告情報を前記応答情報として要求するためのトリガ報告要求コマンドを、前記主通信プロトコルに従い前記周辺装置に向けて発行するトリガ報告要求コマンド発行手段と、
前記周辺装置側に設けられ、前記周辺装置側トリガの発生の有無を反映したトリガ発生報告情報を前記応答情報として前記ホスト装置に前記主通信プロトコルに従い返信するトリガ発生報告情報返信手段と、
前記ホスト装置側に設けられ、前記トリガ発生報告情報を前記周辺装置から受領する報告情報受領手段と、
当該トリガ発生報告情報の内容に基づいて前記周辺装置側トリガの有無を判定し、該周辺装置側トリガがありと判定された場合に、前記対象通信イベントを起動させる対象通信イベント起動手段とを有し、
前記周辺装置が、少なくともデータの読出しに係るデータアクセスが可能とされた記憶媒体が着脱可能に装着され、前記通信イベントにより該記憶媒体に対してデータアクセスを行なう記憶装置として構成され、該記憶媒体は音声データファイル又は動画データファイルとして構成される再生対象データを記憶しており、さらに、前記対象通信イベントの実行手段として、
前記周辺装置側トリガとしての再生対象データ送信トリガの発生を、前記周辺装置からのトリガ発生報告情報により前記ホスト装置側で把握するに伴い、前記記憶媒体に記憶された前記再生対象データの送信を前記周辺装置に要求し、該再生対象データ送信要求を前記周辺装置からの前記応答情報として受信する再生データ送信要求イベントを実行する再生対象データ送信要求イベント実行手段と、
前記再生対象データ送信要求を受信した場合に、前記記憶媒体に記憶された前記再生対象データを前記周辺装置にて読み出して前記ホスト装置へ送信する再生対象データ送信イベントを実行する再生対象データ送信イベント実行手段と、
前記再生対象データ送信イベントの実行により受信した前記再生対象データを前記ホスト装置上で再生する再生制御手段とを有してなることを特徴とする通信システム。
【請求項2】
前記周辺装置側トリガ発生手段は、前記周辺装置に設けられた手動操作部と、当該手動操作部による操作信号を前記周辺装置側トリガとして発生させる操作信号発生部とを有し、該手動操作部は前記記憶媒体内の前記音声データファイル又は前記動画データファイルのうち、前記ホスト装置において再生する再生対象データファイルを選択するための再生対象ファイル選択操作部を含むものであり、さらに、前記対象通信イベントの実行手段として、
前記周辺装置側トリガとしての、前記再生対象ファイル選択操作部による選択操作トリガの発生を、周辺装置からのトリガ発生報告情報により前記ホスト装置側で把握するに伴い、前記再生対象ファイル選択操作部による前記再生対象データファイルの選択内容の送信を前記周辺装置に要求し、該再生対象データファイル選択内容を前記周辺装置からの前記応答情報として受信する再生対象データファイル選択イベントを実行する再生対象データファイル選択イベント実行手段を有し、
前記再生制御手段は、前記再生対象データ送信イベントの実行により受信した前記再生対象データを、前記再生対象データファイル選択イベントの実行により受信した前記再生対象データファイルの選択内容に基づいて前記ホスト装置上で再生するものである請求項1記載の通信システム。
【請求項3】
前記対象通信イベントの実行手段として、前記再生制御手段による前記再生対象データの再生を停止する停止制御を実行する停止制御手段を備える請求項2記載の通信システム。
【請求項4】
前記再生対象データ送信要求イベント実行手段は、前記再生対象ファイル選択操作部による選択操作トリガを前記再生対象データ送信要求トリガとして使用する請求項2又は請求項3記載の通信システム。
【請求項5】
前記周辺装置側トリガ発生手段は、前記記憶媒体の前記記憶装置への装着を検出して前記周辺装置側トリガを発生させる記憶媒体装着検出手段を備え、前記再生対象データ送信要求イベント実行手段は、前記記憶媒体の装着に伴う周辺装置側トリガを前記再生対象データ送信要求トリガとして使用する請求項1ないし請求項4のいずれか1項に記載の通信システム。
【請求項6】
請求項に2記載の要件を備え、
前記記憶媒体は、前記再生対象データファイルを含む1以上のデータファイルからなるファイルリストを記憶するとともに、前記対象通信イベントの実行手段として、
前記ホスト装置側から前記記憶媒体に記憶されたデータファイルを検索して得られるファイルリストの文字表示情報を前記ホスト装置側で作成し前記周辺装置側に送信するとともに、該文字表示情報を前記周辺装置にて受信し、該周辺装置に設けられた表示部に前記ファイルリストの内容を文字表示させるファイルリスト表示イベントを、前記ファイルリスト送信要求イベントの完了を受けて実行するファイルリスト表示イベント実行手段を有しており、
前記再生対象ファイル選択操作部は、前記ファイルリスト表示イベントにより表示された前記ファイルリストの中から前記再生対象データファイルを選択するものである請求項1ないし請求項5のいずれか1項記載の通信システム。
【請求項7】
前記ホスト装置側に設けられ、前記再生対象データ送信イベントにて前記周辺装置から受信した前記再生対象データを該ホスト装置側に設けられたホスト装置側記憶装置上の予め定められた保存領域に保存する再生対象データ保存手段を有する請求項1ないし請求項6のいずれか1項に記載の通信システム。
【請求項8】
前記トリガ報告要求コマンド発行手段は、前記トリガ報告要求コマンドを前記周辺装置に対し予め定められた時間間隔で繰り返し継続的に発行するものである請求項1ないし請求項7のいずれか1項に記載の通信システム。
【請求項9】
前記周辺装置と前記ホスト装置とは、前記ホスト装置側からの前記周辺装置のポーリングは可能であって、該周辺装置側からの前記ホスト装置の逆ポーリングが不能なシリアル通信機構を介して接続され、前記通信イベントを実行するための前記ホスト装置と前記周辺装置との間における情報転送が、前記ホスト装置が前記周辺装置をポーリングする形式にてシリアル通信により実行されるようになっている請求項1ないし請求項8のいずれか1項に記載の通信システム。
【請求項10】
前記シリアル通信機構はUSBプロコトルに従うものである請求項9記載の通信システム。
【請求項11】
前記ホスト装置側に設けられ、前記周辺装置に対し該周辺装置自身に対する調査報告処理を要求する調査要求コマンドを発行するとともに、該調査要求コマンドの発行に伴い、調査報告指示内容を示す予め定められたフレームフォーマットを有するとともに当該フレームの予め定められたフィールドに付加情報が書き込まれた調査指示データを作成する調査指示データ作成手段と、作成された前記調査指示データを前記周辺装置に送信する調査指示データ送信手段と、
前記周辺装置に設けられ、前記調査指示データを受けて、予め定められたフレームフォーマットを有する調査報告データを生成する調査報告データ生成手段と、
前記周辺装置に設けられ、前記調査報告データを応答情報として前記ホスト装置に送信する調査報告データ送信手段と、
前記周辺装置側に設けられ、受信した該調査指示データの前記予め定められたフィールドから前記付加情報を抽出する付加情報抽出手段と、
を有する請求項1ないし請求項10のいずれか1項に記載の通信システム。
【請求項12】
前記調査報告データ生成手段は、前記調査報告データの予め定められたフレームに前記ホスト装置側からの付加情報に対応する対応付加情報を書き込むものであり、
前記調査報告データ送信手段は、その対応付加情報が書き込まれた前記調査報告データを応答情報として前記ホスト装置に送信する請求項11に記載の通信システム。
【請求項13】
前記トリガ報告要求コマンドとして前記調査要求コマンドが使用され、前記調査指示データに前記付加情報として前記周辺装置側トリガの発生報告指示情報が書き込まれるとともに、対応する前記調査報告データに前記対応付加情報として前記トリガ発生報告情報が書き込まれる請求項12記載の通信システム。
【請求項14】
前記調査要求コマンドが、前記表示部に表示させる文字情報を前記ホスト装置から前記周辺装置に送信する対象通信イベントの起動に使用され、前記調査指示データに前記付加情報として前記送信すべき文字を特定するための文字コード情報が付加情報として書き込まれるとともに、
前記周辺装置側には、前記表示部への表示用文字データを前記文字コードと対応付けて記憶する表示用文字データ記憶手段と、前記付加情報抽出手段が抽出する前記付加情報としての文字コード情報に対応する表示用文字データを表示用文字データ記憶手段から読み出して、前記表示部に表示させる表示制御手段とが設けられる請求項11ないし請求項13のいずれか1項に記載の通信システム。
【請求項15】
請求項2に記載の要件を備え、前記調査要求コマンドが、前記周辺装置から受信した前記データファイルと重複するファイル名を有したデータファイルが前記保存領域に存在する場合に、これを前記周辺装置に通知する通信イベントの起動に使用され、前記調査指示データに前記付加情報として重複ファイル名特定情報が書き込まれ、
前記周辺装置には、受信した重複ファイル名特定情報に基づいて前記重複ファイル名を前記表示部に表示する重複ファイル名表示手段と、表示された重複ファイルに対し前記ホスト装置に指示する対応処理を選択入力するための対応処理選択入力部とが設けられるとともに、
前記調査報告データには前記対応付加情報として、前記対応処理選択入力部からの入力情報に基づいて前記対応処理を指示する対応処理指示情報が書き込まれ、
前記ホスト装置側には、前記周辺装置から受領する前記対応処理指示情報の内容に基づいて、前記重複ファイルに対し指示された対応処理を実行する対応処理実行手段が設けられている請求項11ないし請求項14のいずれか1項に記載の通信システム。
【請求項16】
前記対応処理として、前記ホスト装置側又は前記記憶媒体側のデータファイル名を変更するデータファイル名変更処理が実行される請求項15記載の通信システム。
【請求項17】
前記調査指示データ作成手段は前記調査指示データにおいて、格納するべき主格納情報として前記付加情報以外の情報が格納されるよう前記主通信プロトコルに規定されたフィールドに、前記付加情報を前記主格納情報に兼用させる形で書き込むものである請求項11ないし請求項16のいずれか1項に記載の通信システム。
【請求項18】
前記調査指示データにおいて、前記主通信プロトコルに従い前記記憶媒体に対するデータの読み出し又は書き込みに係る通信イベントを実行する際に、該読み出し処理又は書き込み処理に割り当てられる当該記憶媒体上のメモリ領域のアロケーション長情報を格納するためのフィールドがアロケーション長設定フィールドとして確保されてなり、アロケーション長情報作成手段は、該アロケーション長設定フィールドにおいて前記アロケーション長情報を前記主格納情報とする形で、該アロケーション長情報に兼用される前記付加情報を書き込む請求項17記載の通信システム。
【請求項19】
前記主通信プロトコルにおいて、前記アロケーション長設定フィールドのサイズが一定ビット長に定められるとともに、前記アロケーション長として設定可能な最大値をバイト単位にて表わしたときのビット数を、前記アロケーション長設定フィールドの総ビット数未満に設定し、前記最大値を超えるアロケーション長が前記アロケーション長設定フィールドに記述された場合には、記述されたアロケーション長値とは無関係に前記最大値を前記アロケーション長の実設定値として定める一方、該最大値を超える冗長なアロケーション長記述値に一義的に対応付ける形で互いに異なる付加情報内容が定義されてなる請求項18記載の通信システム。
【請求項20】
前記周辺装置には、前記記憶媒体の交換がなされた場合に当該記憶媒体の交換を前記ホスト装置に通知するための交換通知情報を保持する交換通知情報保持手段と、前記ホスト装置から予め定められた第一種コマンドを受信した場合には、該コマンドの実行後に前記交換通知情報保持手段に保持されている前記交換通知情報をクリアし、同じく前記第一種コマンド以外の第二種コマンドを受信した場合は、該コマンドの実行後においても前記交換通知情報保持手段による前記交換通知情報の保持状態を保留する交換通知情報保持制御手段とを有し、
前記調査要求コマンドとして前記第二種コマンドが使用される請求項11ないし請求項19のいずれか1項に記載の通信システム。
【請求項21】
前記調査要求コマンドが、前記周辺装置に対し該周辺装置自身の構成及び属性を特定する情報である構成/属性特定情報の報告を指示するための、前記第二種コマンドをなす構成/属性調査要求コマンドである請求項20記載の通信システム。
【請求項22】
前記主通信プロトコルがSCSIプロトコルであり、前記調査要求コマンドとしてInquiryコマンドが使用される請求項21記載の通信システム。
【請求項23】
請求項1ないし請求項22のいずれか1項に記載の通信システムを構成する前記周辺装置であって、予め定められた内容の対象通信イベントの起動を前記ホスト装置に促すための周辺装置側トリガを、該周辺装置側でのユーザー操作に基づいて発生させる前記周辺装置側トリガ発生手段と、
前記周辺装置側に設けられ、前記ホスト装置からの前記トリガ報告要求コマンドに対応する前記トリガ発生報告情報を前記応答情報として前記ホスト装置に前記主通信プロトコルに従い返信するトリガ発生報告情報返信手段と、
前記ファイル名を文字表示するための表示部と、
を有してなることを特徴とする周辺装置。

【図1A】
image rotate

【図1B】
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

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図18】
image rotate


【公開番号】特開2007−265304(P2007−265304A)
【公開日】平成19年10月11日(2007.10.11)
【国際特許分類】
【出願番号】特願2006−92561(P2006−92561)
【出願日】平成18年3月29日(2006.3.29)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】