説明

USBメモリ用書き込み防止アダプタ装置

【課題】外部デバイスからUSBメモリへの書き込みを防止し、誤動作によるデータの破壊又は消失を防止できるUSBメモリ用書き込み防止アダプタ装置を提供する。
【解決手段】ホストPC100にUSBメモリ200が書き込み禁止であるという書き込み禁止コマンドを送信するCPU10と、USBホストコントローラ20と、USBデバイスコントローラ30と、ROM40と、RAM50と、USBメモリ200と係合するメモリ側USBコネクタ60と、ホストPC100と係合するデバイス側USBコネクタ70と、を備えるUSBメモリ用書き込み防止アダプタ1とした。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、USBメモリへのデータ書き込みを防止するアダプタ装置に関する。特に例えば、Windows(登録商標)VISTA、XP、2000等のUSBマスストレージの標準ドライバを搭載したOSで動作するホストPC等と、USBマスストレージ規格に準じたUSBフラッシュメモリーまたはUSBメモリーカードリーダとの間に接続する、書き込み防止アダプタ装置に関するものである。
【背景技術】
【0002】
近年、USBフラッシュメモリー、USBフラッシュメモリーキー等と呼ばれる、ホストPCのUSBポートに直接接続することで、情報の読み書きができる可搬型の外部メモリーデバイスが普及してきている。プラグアンドプレイ機能を有するOS、例えば、Windows(登録商標)VISTA、XP、2000等のUSBマスストレージの標準ドライバを搭載したOSで動作するホストPCでは、そのUSBポートにUSBフラッシュメモリーキーを接続すると、OSの標準ドライバソフトで読み書きができるようになっている。
【発明の開示】
【発明が解決しようとする課題】
【0003】
USBフラッシュメモリーキーから写真データ等を読み出して、ホストPCを経由してプリンタで印刷する場合、USBフラッシュメモリーキーへの書き込みは不要である。ところがOSによっては、データファイルの読み出し操作を行っただけでも、最後のアクセス日時をUSBフラッシュメモリーキーのデータファイルに書き込みを行ってしまうので、誤操作によるデータが破壊したり、消去されてしまったりする危険がある。
【0004】
なお、このような事態を回避するため、USBフラッシュメモリーキーに書き込み禁止スイッチを設けた製品が市販されている。しかし、これらの製品は全体の市場のごく一部であり、書き込み禁止スイッチがついていないものが一般的となっている。
【0005】
また、このような書き込み禁止スイッチ付きのUSBメモリでは、使用者が予め書き込み防止スイッチをONにしておかないと、書き込み防止機能を発揮しない。従って、スイッチをONにするのを忘れた場合、誤ってデータを消してしまう可能性がある。特に、USBメモリの扱いに不慣れな高齢者等では、小さいスイッチの操作や、その機能の理解が困難であり、書き込み防止機能を有効活用できないという問題もある。
【0006】
本発明は、斯かる実情に鑑み、書き込み防止機能を有するUSBマスストレージデバイス用書き込み防止アダプタ装置を提供しようとするものである。
【課題を解決するための手段】
【0007】
本発明者の鋭意研究によって、上記目的は下記の手段によって達成される。
【0008】
(1)本発明は、USBメモリが有するUSBコネクタと係合し、該USBコネクタと電気的に接続されるメモリ側USBコネクタと、外部デバイスのUSBコネクタと係合し、該USBコネクタと電気的に接続されるデバイス側USBコネクタと、前記デバイス側USBコネクタを介して、前記外部デバイスとUSB規格に基づく信号の送受信を行い、該外部デバイスとのデータ通信を可能とする第1の通信制御手段と、前記メモリ側USBコネクタを介して、前記USBメモリとUSB規格に基づく信号の送受信を行い、該USBメモリとのデータ通信を可能とする第2の通信制御手段と、前記USBメモリを制御するとともに、該USBメモリから前記外部デバイスに送信する信号に、書き込み禁止フラグを付加する書き込み禁止フラグ付加手段と、を備えるUSBメモリ用書き込み防止アダプタ装置である。
【0009】
(2)本発明は、上記(1)に記載のUSBメモリ用書き込み防止アダプタ装置において、前記書き込み禁止フラグ付加手段は、前記外部デバイスから送信されるモードセンスコマンドを検出すると共に、前記モードセンスコマンドを前記USBメモリに転送し、更に、前記USBメモリから前記モードセンスコマンドに応答して送信されるモードパラメータリストに前記書き込み禁止フラグを付加してから、該モードパラメータリストを前記外部デバイスに転送することを特徴とする。
【0010】
(3)本発明は、上記(1)又は(2)に記載のUSBメモリ用書き込み防止アダプタ装置において、前記外部デバイスから受信した前記USBメモリへの書き込み命令を遮断するとともに、該外部デバイスに書き込みエラー信号を送信する書き込み検出手段を備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、外部デバイスからUSBメモリへの書き込みを防止し、誤動作によるデータの破壊又は消失を防止できるUSBメモリ用書き込み防止アダプタ装置を提供できるという優れた効果を奏し得る。
【発明を実施するための最良の形態】
【0012】
以下、本発明の実施の形態を添付図面を参照して説明する。
【0013】
<基本構成>
【0014】
まず、図1を用いて、本発明の第1実施形態に係るUSBメモリ用書き込み防止アダプタ装置1について説明する。なお、同図は、USBメモリ用書き込み防止アダプタ装置1と、パーソナルコンピュータ等の外部デバイス100(以下、ホストPCと言う)と、USBメモリ200の構成を示すブロック図である。
【0015】
USBメモリ用書き込み防止アダプタ1は、CPU10と、USBホストコントローラ20(第2の通信制御手段と言うこともある)と、USBデバイスコントローラ30(第1の通信制御手段と言うこともある)と、ROM40と、RAM50と、メモリ側USBコネクタ60と、デバイス側USBコネクタ70と、を備えて構成さえている。なお、CPU10、USBホストコントローラ20、USBデバイスコントローラ30、ROM40、RAM50、メモリ側USBコネクタ60、デバイス側USBコネクタ70は、アドレスバス(図示省略)やデータバス(同じく図示省略)に接続され、それぞれのデバイス間でメモリアドレスやデータ等の送受信を行う。
【0016】
CPU10は、中央演算処理装置であり、USBメモリ用書き込み防止アダプタ1の全体制御等を行う。具体的には、ホストPC100の要求信号に対して、USBメモリ200からデータを読み込んだり、USBホストコントローラ20及びUSBデバイスコントローラ30の制御などを行う。
【0017】
また、CPU10は、ホストPC100から受信したUSBメモリ200への書き込み信号(コマンド)を判断し、書き込み(ライト)コマンドである場合には、書き込み禁止フラグを設定および送信したり、又はホストPC100から受信した書き込みコマンドを削除するとともに、ホストPC100にエラーコマンドを送信する(詳細は後述)。
【0018】
USBホストコントローラ20は、CPU10とUSBメモリ200との間の通信制御を行うコントローラ用のICチップである。具体的には、USBホストコントローラ20は、CPU10がUSBメモリ200とデータ通信を行うために、USBメモリ200とUSB規格に基づいたUSBプロトコルの送受信を行い、通信を行うための制御を行う。
【0019】
USBデバイスコントローラ30は、CPU10とホストPC100との間の通信制御を行うコントローラ用のICチップである。具体的には、USBデバイスコントローラ30は、PC100との通信を行うために、ホストPC100とUSB規格に基づいたUSBプロトコルの送受信を行い、通信を行うための制御を行う。
【0020】
なお、本実施形態では、前述したUSB規格は、USB2.0に基づく標準規格に用いることが好適であるが、勿論、これに限定されるものではい。例えば、USB1.1又はUSB3.0その他のUSB規格でも好ましい。
【0021】
ROM40は、読み出し専用メモリ(READ ONLY MEMORY)である。ROM40は、USBメモリ用書き込み防止アダプタ1の基本動作を行うファームウエア(プログラム)や、USBホストコントローラ20やUSBデバイスコントローラ30の初期設定値などを記憶している。これによって、CPU10は、任意のタイミングでROM40から必要なプログラムを読み込んで実行することができる。
【0022】
RAM50は、随時アクセスが可能なメモリ(Random Access Memory)である。RAM50は、CPU10の作業領域として機能するとともに、CPU10の指示に応じて、USBメモリ200から読み込んだデータを一時的に記憶するのに使用される。また、RAM50は、ホストPC100やUSBメモリ200から受け取ったコマンド(例えば、書き込み禁止コマンドや読込みコマンド等)を一時的に記憶する。
【0023】
メモリ側USBコネクタ60は、USBメモリ200に設けられているUSBプラグコネクタ220に係合することができるUSBレセプタクルコネクタである。なお、メモリ側USBコネクタ60は、A型端子のUSBレセプタクルコネクタであるが、A型端子に限定されるものではなく、例えば、ミニUSB端子その他の端子形状でも好ましい。
【0024】
デバイス側USBコネクタ70は、ホストPC100に設けられているUSBレセプタクルコネクタ120に係合することができるUSBプラグコネクタである。なお、デバイス側USBコネクタ70は、A型端子のUSBプラグコネクタであるが、A型端子に限定されるものではなく、例えば、ミニUSB端子その他の端子形状でも好ましい。
【0025】
USBメモリ200は、USBプラグコネクタ220を備えるフラッシュメモリである。
【0026】
<動作フローチャート>
【0027】
次に、USBメモリ用書き込み防止アダプタ1の基本動作について、図2に示されるフローチャートを用いて説明する。
【0028】
まず、ステップS101では、CPU10は、USBメモリ用書き込み防止アダプタ1がホストPC100に差し込まれたか否かを判定する。USBメモリ用書き込み防止アダプタ1が差し込まれたと判定された場合には、ステップS102に進み、差し込まれていないと判定した場合には、処理を終了する。なお、USBメモリ用書き込み防止アダプタ1がホストPC100に差し込まれると、USBメモリ用書き込み防止アダプタ1は、ホストPC100から給電される。
【0029】
ステップS102では、CPU10は、各種デバイスの初期設定を行う。具体的には、CPU10は、ROM40からファームウェアを読み込んで実行するとともに、ROM40から各種初期データを読み込み、USBホストコントローラ20及びUSBデバイスコントローラ30の初期設定を行う。なお、この段階において、CPU10は、各種初期設定を行うのみで、ホストPC100やUSBメモリ200とのUSB通信は行わない。これにより、ホストPC100では、何ら特別な制御が行われないようになっており、単に、ホストPC110のUSBレセプタクルコネクタ120が、メモリ側USBコネクタ60まで延長されたに過ぎない状態となっている。
【0030】
ステップS103Aでは、CPU10は、USBメモリ200が差し込まれているか否かを判定する。ステップS103Aにおいて、CPU10は、USBメモリ200がUSBメモリ用書き込み防止アダプタ1に差し込まれていると判定された場合には、ステップS103Bに進んで、ファームウェアに基づいてホストPC100とUSBメモリ200の間のUSB通信を確立するための制御を行う。
【0031】
具体的にステップS103Bにおいて、CPU10は、USBデバイスコントローラ30をアクティブにし、ホストPC100から受信したディスクリプタ送信要求を、USBホストコントローラ20を介してUSBメモリ200に送信する。ここで、ディスクリプタとは、ホストPC100がUSBメモリ200を正しく認識するための、各USBデバイスが有するデータである。更にここでCPU10は、USBメモリ200から送信されるディスクリプタ情報を、USBホストコントローラ20を介して受信し、これをUSBデバイスコントローラ30を介してホストPC100に送信する。なお、ステップS103Aにおいて、CPU10は、USBメモリ200が差し込まれていないと判定した場合には、USBメモリ200が差し込まれるまで待つ。
【0032】
次に、ステップS104Aにおいて、CPU10は、ホストPC100から受信したマスストレージコマンドやデータ、又はUSBメモリ200から受信したデータ等を受信し、ホストPC100からどのような種類のマスストレージコマンドが送られてきたか、又はUSBメモリ200からどのような応答があったかを判別する。これらの信号の中に、特別な信号が通過しないか否かを判断する。なお、本実施形態では、ホストPC100から送信されるマスストレージコマンドの種類を判別して、そこに特別なコマンドが含まれていないか監視するようにしている。つまり、以下に示す特別な応答を除き、USBメモリ200からの応答信号は、定常的に監視することは行わない。
【0033】
ステップS104Aで、CPU10が、ステップS103で判別したマスストレージコマンドが特定のコマンド、具体的に本実施形態ではモードセンス(MODE SENSE)コマンドであると判断した場合には、ステップS104Bに進んで、そのコマンドをUSBメモリ200にそのまま送信すると共に応答監視フラグを立てて、ステップ104Cに進んでUSBメモリ200から次の応答信号が送信されるのを待機する。
【0034】
ステップ104Cにおいて、CPU10は、USBメモリ200から送信される情報であるモードパラメータリスト(MODE PARAMETER LIST)を受信した場合、その中のモードパラメータヘッダー(MODE PARAMETER HEADER)のデバイススペシフィック・パラメータ(DEVICE SPECIFIC PARAMETER)のライトプロテクトビット(Write Protect Bit)を強制的に1にセットする。
【0035】
具体的にモードセンスコマンドは、モードセンス(6)コマンドと、モードセンス(10)コマンドの2つがある。CPU10が、USBメモリ200からモードセンス(6)コマンドに応じたモードパラメータヘッダー(6)を受け付けた場合には、モードパラメータヘッダー(6)のバイト−2(Byte−2)のビット−7(Bit−7)を1にセットする。CPU10が、USBメモリ200からモードセンス(10)コマンドに応じたモードパラメータヘッダー(10)を受け付けた場合には、モードパラメータヘッダー(10)のバイト−3(Byte−3)のビット−7(Bit−7)を1にセットする。
【0036】
上記により、CPU10は、モードパラメータヘッダーを強制的に書き換えて書き込み禁止フラグをセットすることになる。その後、ステップ105に進んで、USBメモリ200の応答信号として、このモードパラメータヘッダーをホストPC100に送信する。これにより、ホストPC100は、USBメモリ200が書き込み禁止のメモリであると認識(誤認)する。
【0037】
なお、ステップS104Aにおいて、ホストPC100から送信されるマスストレージコマンドが通常のコマンド(監視対象外の信号)の場合は、ステップS104Dに進んで、USBメモリ200の応答信号をそのままホストPC100に転送し、ステップS104EにおいてUSBメモリ200の応答信号を受信して、更にステップS105に進んで、この応答信号をそのままホストPC100に転送する。これにより、通常のコマンドにおける処理速度の低下を極力抑制することが可能となっている。例えばステップS104Aにおいて、CPU10は、ホストPC100から受信したコマンドが、データ読み込みコマンドである場合は、ステップS104Dに進んでそのデータ読み込みコマンドをUSBメモリ200に送信する。更にステップS104Eにおいて、CPU10は、USBメモリ200から対応するデータを受信して、ステップS105で、ホストPC100にデータを転送して処理を終了する。
【0038】
更にステップS104Aで、CPU10が、ステップS103で判別したマスストレージコマンドが特定のコマンド、具体的に本実施形態ではデータ書き込みコマンドであると判断した場合には、ステップS104Fに進む。このステップS104Fでは、CPU10は、データ書き込みコマンドをUSBメモリ200に送信することなく、データ書き込みコマンドを削除する。つまり、CPU10は、データ書き込みコマンドに基づく、USBメモリ200への書き込みは行わない。更にステップS104Gにおいて、CPU10は、ホストPC100に送信するための書き込みエラーコマンドを生成する。具体的に、CPU10は、ホストPC100から送信されてRAM50に一時的に保管されたコマンドが、USB規格に基づくライトコマンド(Write Cmmand)、フォーマットユニットコマンド(Format Unit Command)等のデータ書き込みコマンドである場合、USBメモリ200にこれらのマスストレージコマンドを送信しない。なお、USB規格のライトコマンドの中には、ライト(6)コマンド、ライト(10)コマンド、ライト(12)コマンド等の種類があるが、これらはすべてホストPC100からUSBメモリ200に対するデータ書き込みコマンドを意味している。
【0039】
このようにデータ書き込みコマンドを削除(停止)する一方、CPU10は、ホストPC100に送信するためのライトプロテクトエラー(Write Protect Error)のステータス信号を生成する。その後、ステップS105に進んで、このライトプロテクトエラーステータス信号をホストPC100に送信する。
【0040】
上記の構成によって、ホストPC100は、USBメモリ200へのデータ書き込みが行われないことを認識することができる。また、仮に、ホストPC100がデータ書き込みを行おうとしても、強制的に書き込みエラーとなって、USBメモリ200の情報を保護することが可能となる。
【0041】
なお、上記ステップS104A、S104Bによる制御処理を行う機能ブロックを、書き込み禁止フラグ設定手段と言うことがある。また上記ステップS104E、S104Fによる制御処理ブロックを書き込み検出手段と言うことがある。また、上記ステップ104C、S104Dによる制御ブロックを、信号通過手段ということがある。
【0042】
また、本実施形態では、ステップS104Cにおいて、CPU10が、USBメモリ200からの受信信号(プロトコル)中のフラグのみを書き換える場合を示したが、CPU10が自らからホストPC100への応答信号を生成して、USBメモリ200が書き込み禁止状態であることをホストPC100に誤認させるようにしてもよい。
【0043】
以上の処理を、USBメモリ用書き込み防止アダプタ1がホストPC100から抜かれるまで繰り返す。
【0044】
したがって、ホストPC100は、USBメモリ用書き込み防止アダプタ1を介してUSBメモリ200が差し込まれた場合には、USBメモリ用書き込み防止アダプタ1から書き込み防止フラグを受信し、USBメモリ200が書き込み禁止のメモリであると認識する。これにより、ホストPC100は、USBメモリ200にデータの書き込みを行うことはない。上記の構成によって、書き込み防止手段を有さない(通常の)USBメモリ200は、USBメモリ用書き込み防止アダプタ1を介してホストPC100へ差し込まれることにより、内部のメモリに記憶しているデータを誤動作により破壊したり、または消失してしまうのを防止することができる。
【0045】
換言すると、USBメモリ用書き込み防止アダプタ1は、ホストPC100に書き込み禁止フラグを送信することによって、ホストPC100にUSBメモリ200が書き込み禁止であると誤認させ、USBメモリ200へのデータ書き込みを防止することができる
【0046】
更に、USBメモリ用書き込み防止アダプタ1は、ホストPC100から、送信されたUSBメモリ200へのデータ書き込み信号(コマンド)を排除するので、USBメモリ200にデータが書き込まれることはなく、誤動作によるデータの破壊や消失を防止することができる。
【0047】
また、USBメモリ用書き込み防止アダプタ1は、ホストPC100にデータ書き込みが行われなかったことを示す、書き込みエラーコマンドを送信する。したがって、ホストPC100は、USBメモリ200にデータが書き込まれない状態であることを認識することができる。換言すると、USBメモリ用書き込み防止アダプタ1は、ホストPC100の書き込みコマンドを遮断し、ホストPC100にUSBメモリ200が書き込み禁止のUSBメモリであることを誤認させることができる。
【0048】
なお、本実施形態では、ファームウェアを記憶するROM40は、フラッシュROM、MASK−ROM、EPROMなどの記憶装置を用いても好ましい。
【0049】
また、デバイス側USBコネクタ70は、A型端子に限定されるものではなく、例えば、B型端子のUSBレセプタクルコネクタを使用し、ホストPC100に設けられているA型端子のUSBレセプタクルコネクタと、A−B変換USBケーブルで接続しても好ましい。
【0050】
また、本実施形態は、ホストPC100に設けられているA型端子のUSBレセプタクルコネクタ120に、USBメモリ用書き込み防止アダプタ1に設けられたA型端子のデバイス側USBプラグコネクタ70を直接差し込む構造としている。勿論、これに限定されるものではなく、例えば、USBデバイスコントローラ30とデバイス側USBコネクタ70をUSB延長ケーブルで接続しても好ましい。同様に、USBホストコントローラ20とメモリ側USBコネクタ60の間をUSBケーブルで延長して接続しても好ましい。
【0051】
本実施形態では、ホストPC100は、USBレセプタクルコネクタ120を備えるパーソナルコンピュータ等であるが、勿論、これに限定されるものではない。例えば、双方向の情報通信が可能なKIOSK端末(マルチメディアステーション(Multimedia Station)と言うこともある)に用いても好適である。また、KIOSK端末に設けられた前面パネルにUSBメモリ200を接続するためのUSBメモリ用書き込み防止アダプタ1を使用する場合、USBメモリ用書き込み防止アダプタ1にUSBプラグコネクタを有するケーブルを設け、KIOSK端末に設けられたUSBレセプタクルコネクタに差し込んで接続しても好ましい。
【0052】
更に本実施形態では、ホストPC100の信号を検出して、これをトリガーにUSB書き込み禁止フラグをセットしたり、書き込みエラー信号を生成したりする場合を示したが、本発明はこれに限定されない。例えば、USBメモリ200側の応答信号を検出して、これが書き込み許可/禁止を意味するヘッダーである場合に、このヘッダーに書き込み禁止フラグを付加したりしても良い。
【0053】
尚、本発明のUSBメモリ用書き込み防止アダプタは、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【産業上の利用可能性】
【0054】
本発明のUSBメモリ用書き込み防止アダプタ装置は、USBメモリのデータ保護の技術分野、特にUSBメモリへのデータ書き込みを防止する分野に利用することができる。
【図面の簡単な説明】
【0055】
【図1】第1実施形態に係るUSBメモリ用書き込み防止アダプタ1、ホストPC100及びUSBメモリ200の全体構造を示すブロック図である。
【図2】第1実施形態に係るUSBメモリ用書き込み防止アダプタ1の基本動作を示すフローチャートである。
【符号の説明】
【0056】
1 USBメモリ用書き込み防止アダプタ
10 CPU
20 USBホストコントローラ
30 USBデバイスコントローラ
40 ROM
50 RAM
60 メモリ側USBコネクタ
70 デバイス側USBコネクタ
100 ホストPC
200 USBメモリ

【特許請求の範囲】
【請求項1】
USBメモリが有するUSBコネクタと係合し、該USBコネクタと電気的に接続されるメモリ側USBコネクタと、
外部デバイスのUSBコネクタと係合し、該USBコネクタと電気的に接続されるデバイス側USBコネクタと、
前記デバイス側USBコネクタを介して、前記外部デバイスとUSB規格に基づく信号の送受信を行い、該外部デバイスとのデータ通信を可能とする第1の通信制御手段と、
前記メモリ側USBコネクタを介して、前記USBメモリとUSB規格に基づく信号の送受信を行い、該USBメモリとのデータ通信を可能とする第2の通信制御手段と、
前記USBメモリを制御するとともに、該USBメモリから前記外部デバイスに送信する信号に、書き込み禁止フラグを付加する書き込み禁止フラグ付加手段と、
を備えるUSBメモリ用書き込み防止アダプタ装置。
【請求項2】
前記書き込み禁止フラグ付加手段は、前記外部デバイスから送信されるモードセンスコマンドを検出すると共に、前記モードセンスコマンドを前記USBメモリに転送し、更に、前記USBメモリから前記モードセンスコマンドに応答して送信されるモードパラメータリストに前記書き込み禁止フラグを付加してから、該モードパラメータリストを前記外部デバイスに転送することを特徴とする、
請求項1に記載のUSBメモリ用書き込み防止アダプタ装置。
【請求項3】
前記外部デバイスから受信した前記USBメモリへの書き込み命令を遮断するとともに、該外部デバイスに書き込みエラー信号を送信する書き込み検出手段を備えることを特徴とする、
請求項1又は2に記載のUSBメモリ用書き込み防止アダプタ装置。

【図1】
image rotate

【図2】
image rotate


【公開番号】特開2010−108017(P2010−108017A)
【公開日】平成22年5月13日(2010.5.13)
【国際特許分類】
【出願番号】特願2008−276329(P2008−276329)
【出願日】平成20年10月28日(2008.10.28)
【出願人】(000139366)株式会社ワイ・イー・データ (39)
【Fターム(参考)】