(57)【要約】【課題】データ用ポートには、データの他に、書き込みコマンド、読み出しコマンドなどのコマンド情報やアドレス情報も供給されて、制御信号により、それらコマンド情報やアドレス情報が取り込まれるデバイスと、他のデバイスとの間におけるデータ転送を高速に行なえるようにする。【解決手段】第１のデバイスのデータ用ポートと、第２のデバイスのデータ用ポートと、制御用デバイスのデータ用ポートとを共通にバスラインで接続する。第１のデバイスの制御用ポートと、第２のデバイスの制御用ポートとは、制御用デバイスの別々のポートに接続する。制御用デバイスは、データ用バスラインに、アドレス情報と、書き込みあるいは読み出しを指示するコマンド情報とを送出すると共に、第１および第２のデバイスの制御用ポートに、適宜のタイミングで制御信号を供給することにより、第１および第２のデバイス間で、直接にデータ転送させる。【選択図】        図１
2004252705.tif 000002
【特許請求の範囲】
【請求項１】
データ用ポートと制御用ポートとを備える第１および第２のデバイスの間におけるデータの送受を、制御用デバイスから前記第１および第２のデバイスの前記制御用ポートに制御信号に供給することにより行なうようにするデータ転送方法であって、
前記第１のデバイスの前記データ用ポートと、第２のデバイスのデータ用ポートと、前記制御用デバイスのデータ用ポートとを共通にバスラインで接続すると共に、前記第１のデバイスの前記制御用ポートと、前記第２のデバイスの制御用ポートとは、前記制御用デバイスの別々のポートに接続し、
前記制御用デバイスは、
前記データ用ポートに接続されるバスラインに、転送データの送出あるいは取り込みを指示するコマンド情報と、前記転送データの蓄積先あるいは読み出し元を指定する位置指定情報とを送出すると共に、前記第１および第２のデバイスの制御用ポートに、制御信号を供給することにより、前記コマンド情報および前記位置指定情報を第１のデバイスおよび／または第２のデバイスに取り込ませる第１の工程と、
前記第１の工程の後、前記第１および第２のデバイスのうちの一方のデバイスの制御用ポートには読み出し制御信号を、他方のデバイスには書き込み制御信号を供給することにより、前記第１および第２のデバイスの間で、直接に、前記バスラインを通じてデータの転送を行なうようにした第２の工程と、
を実行することを特徴とするデータ転送方法。
【請求項２】
請求項１に記載のデータ転送方法において、
前記第１のデバイスおよび／または第２のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１または第２のデバイスからの前記エラー検出結果により、前記第１および第２のデバイス間で、正しくデータ転送がなされたか否かを判別する
ことを特徴とするデータ転送方法。
【請求項３】
請求項１に記載のデータ転送方法において、
前記第１のデバイスは、前記データ用ポートに接続されるバスラインを通じて前記制御用デバイスから送られてくる、前記転送データの書き込みあるいは読み出しを指示するコマンドおよびアドレス情報と、前記制御用デバイスから前記制御用ポートに与えられる制御信号とに応じて、前記バスライン上のデータの書き込みおよび前記バスライン上へのデータの読み出しを行なう記憶素子であり、
前記第２のデバイスは、外部へのデータの送出および外部からのデータの取り込みを行なう通信インターフェース手段である
ことを特徴とするデータ転送方法。
【請求項４】
請求項３に記載のデータ転送方法において、
前記第１のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１のデバイスからの前記エラー検出結果により、前記第２のデバイスから転送されてきたデータが前記第１のデバイスに正常に取り込まれたか否かを判別する
ことを特徴とするデータ転送方法。
【請求項５】
データ用ポートと制御用ポートとを備える第１および第２のデバイスと、
前記第１および第２のデバイスの間におけるデータの送受を制御するための制御用デバイスと、
を備え、
前記第１のデバイスの前記データ用ポートと、第２のデバイスのデータ用ポートと、前記制御用デバイスのデータ用ポートとが共通にバスラインで接続されると共に、前記第１のデバイスの前記制御用ポートと、前記第２のデバイスの制御用ポートとは、前記制御用デバイスの別々のポートに接続され、
前記制御用デバイスは、
前記データ用ポートに接続されるバスラインに、前記転送データの送出あるいは取り込みを指示するコマンド情報と、転送データの蓄積先あるいは読み出し元を指定する位置指定情報とを送出すると共に、前記第１および第２のデバイスの制御用ポートに、制御信号を供給することにより、前記コマンド情報および前記位置指定情報を第１のデバイスおよび／または第２のデバイスに取り込ませ、
前記第１および第２のデバイスのうちの一方のデバイスの制御用ポートには読み出し制御信号を、他方のデバイスには書き込み制御信号を供給することにより、前記第１および第２のデバイスの間で、直接に、前記バスラインを通じてデータの転送を行なうようにした
ことを特徴とするデータ転送装置。
【請求項６】
請求項５に記載のデータ転送装置において、
前記第１のデバイスおよび／または第２のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１または第２のデバイスからの前記エラー検出結果により、前記第１および第２のデバイス間で正しくデータ転送がなされたか否かを判別する
ことを特徴とするデータ転送装置。
【請求項７】
請求項５に記載のデータ転送装置において、
前記第１のデバイスは、前記データ用ポートに接続されるバスラインを通じて前記制御用デバイスから送られてくる、前記転送データの書き込みあるいは読み出しを指示するコマンドおよびアドレス情報と、前記制御用デバイスから前記制御用ポートに与えられる制御信号とに応じて、前記バスライン上のデータの書き込みおよび前記バスライン上へのデータの読み出しを行なう記憶素子であり、
前記第２のデバイスは、外部へのデータの送出および外部からのデータの取り込みを行なう通信インターフェース手段である
ことを特徴とするデータ転送装置。
【請求項８】
請求項７に記載のデータ転送装置において、
前記第１のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１のデバイスからの前記エラー検出結果により、前記第２のデバイスから転送されてきたデータが前記第１のデバイスに正しく取り込まれたか否かを判別する
ことを特徴とするデータ転送装置。
【請求項９】
データ用ポートと制御用ポートとを備える第１のデバイスと、
データ用ポートと制御用ポートとを備える第２のデバイスを接続するためのコネクタと、
前記第１および第２のデバイスの間におけるデータの送受を制御するための制御用デバイスと、
を備え、
前記第１のデバイスの前記データ用ポートと、前記コネクタの第２のデバイスのデータ用ポートが接続される端子部分と、前記制御用デバイスのデータ用ポートとが共通にバスラインで接続されると共に、前記第１のデバイスの前記制御用ポートと、前記コネクタの前記第２のデバイスの制御用ポートが接続される端子部分とは、前記制御用デバイスの別々のポートに接続され、
前記制御用デバイスは、
前記データ用ポートに接続されるバスラインに、転送データの送出あるいは取り込みを指示するコマンド情報と、前記転送データの蓄積先あるいは読み出し元を指定する位置指定情報とを送出すると共に、前記第１および第２のデバイスの制御用ポートに、制御信号を供給するようにすることにより、前記コマンド情報および前記位置指定情報を第１のデバイスおよび／または第２のデバイスに取り込ませ、
前記第１および第２のデバイスのうちの一方のデバイスの制御用ポートには読み出し制御信号を、他方のデバイスには書き込み制御信号を供給することにより、前記第１および第２のデバイスの間で、直接に、前記バスラインを通じてデータの転送を行なうようにした
ことを特徴とするデータ転送装置。
【請求項１０】
請求項９に記載のデータ転送装置において、
前記第１のデバイスおよび／または第２のデバイスは、前記データ用ポートを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１または第２のデバイスからの前記エラー検出結果により、前記第１および第２のデバイス間で正しくデータ転送がなされたか否かを判別する
ことを特徴とするデータ転送装置。
【請求項１１】
請求項９に記載のデータ転送装置において、
前記第１のデバイスは、前記データ用ポートに接続されるバスラインを通じて前記制御用デバイスから送られてくる、前記転送データの書き込みあるいは読み出しを指示するコマンドおよびアドレス情報と、前記制御用デバイスから前記制御用ポートに与えられる制御信号とに応じて、前記バスライン上のデータの書き込みおよび前記バスライン上へのデータの読み出しを行なう記憶素子であり、
前記第２のデバイスは、外部へのデータの送出および外部からのデータの取り込みを行なう通信インターフェース手段である
ことを特徴とするデータ転送装置。
【請求項１２】
請求項１１に記載のデータ転送装置において、
前記第１のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１のデバイスからの前記エラー検出結果により、前記第２のデバイスから転送されてきたデータが前記第１のデバイスに正しく取り込まれたか否かを判別する
ことを特徴とするデータ転送装置。
【請求項１３】
請求項９に記載のデータ転送装置において、
前記第１のデバイスは、外部へのデータの送出および外部からのデータの取り込みを行なう通信インターフェース手段であり、
前記第２のデバイスは、前記データ用ポートに接続されるバスラインを通じて前記制御用デバイスから送られてくる、前記転送データの書き込みあるいは読み出しを指示するコマンドおよびアドレス情報と、前記制御用デバイスから前記制御用ポートに与えられる制御信号とに応じて、前記バスライン上のデータの書き込みおよび前記バスライン上へのデータの読み出しを行なう記憶素子である
ことを特徴とするデータ転送装置。
【請求項１４】
請求項１３に記載のデータ転送装置において、
前記第２のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第２のデバイスからの前記エラー検出結果により、前記第１のデバイスから転送されてきたデータが前記第２のデバイスに正しく取り込まれたか否かを判別する
ことを特徴とするデータ転送装置。
【請求項１５】
請求項７，８，１１，１２，１３または１４のいずれかのデータ転送装置と、前記通信インターフェース手段と接続される外部装置とからなり、前記記憶素子と、前記通信インターフェース手段を介した前記外部装置との間でデータの転送を行なうデータ転送システムであって、
前記記憶素子から読み出されたデータが前記通信インターフェース手段を介して前記外部装置に転送されたときに、前記外部装置は、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果に基づいて、前記記憶素子から読み出されて転送されてきたデータを、正しく取り込んだか否かを判別する
ことを特徴とするデータ転送システム。
【請求項１６】
請求項８，１２または１４のいずれかのデータ転送装置と、前記通信インターフェース手段と接続される外部装置とからなり、前記記憶素子と、前記通信インターフェース手段を介した前記外部装置との間でデータの転送を行なうデータ転送システムであって、
前記制御用デバイスは、前記通信インターフェース手段を介して前記外部装置から転送されてきたデータが、前記記憶素子に正しく取り込まれなかったと判別したときには、その旨を前記通信インターフェース手段を通じて前記外部装置に通知する
ことを特徴とするデータ転送システム。
【請求項１７】
請求項１６に記載のデータ転送システムにおいて、
前記記憶素子から読み出されたデータが前記通信インターフェース手段を介して前記外部装置に転送されたときに、前記外部装置は、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果に基づいて、前記記憶素子から読み出されて転送されてきたデータを、正しく取り込んだか否かを判別する
ことを特徴とするデータ転送システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、制御用デバイス例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の制御の下に、２個のデバイス、例えばメモリと通信インターフェースとの間で、データ転送を行なうようにする場合に好適なデータ転送方法およびデータ転送装置、また、当該データ転送装置を用いるデータ転送システムに関する。
【０００２】
【従来の技術】
例えば、フラッシュメモリは、構造が簡単で、高集積化、小型化が可能かつ安価であり、記憶データの保持のためにバックアップ電源も不要などの理由により、種々の電子機器の記憶媒体として用いられている。
【０００３】
そして、このフラッシュメモリに記憶したデータを、例えば通信インターフェースを通じてパーソナルコンピュータに転送して退避したり、パーソナルコンピュータからのデータを、通信インターフェースを通じてフラッシュメモリに転送して書き込んだりすることも、一般的に行なわれている。
【０００４】
図１２は、電子機器内に設けられたフラッシュメモリと、電子機器とは通信インターフェースを介して接続されるパーソナルコンピュータとの間で、前記通信インターフェースを介したデータ転送を行なうようにする場合の従来例を説明するための図である。この図１２の例では、通信インターフェースとして、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェースが用いられている。
【０００５】
図１２に示す例においては、電子機器１００内において、マイクロコンピュータ１に対して、フラッシュメモリ２と、ＵＳＢインターフェースＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）３とが、それぞれ別々のポートにより接続される。
【０００６】
ＵＳＢインターフェースＩＣ３には、ＵＳＢコネクタ４が接続される。そして、ＵＳＢケーブル５が、電子機器１００のＵＳＢコネクタ４と、パーソナルコンピュータ６のＵＳＢコネクタ６１との間に接続されて、電子機器１００のＵＳＢインターフェースＩＣ３と、パーソナルコンピュータ６のＵＳＢインターフェースＩＣ６２とが接続され、電子機器１００とパーソナルコンピュータ６との間でデータ送受が可能となる。
【０００７】
マイクロコンピュータ１は、データ転送のための構成として、システムバス１０に対して、ＣＰＵ１１と、プログラムＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２と、ワークエリアＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３に対する制御用ポートとして使用される汎用ポート１４および１５と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３用のデータ用ポート１６および１７と、ＵＳＢインターフェースＩＣ３用のアドレス用ポートとが接続されている。
【０００８】
フラッシュメモリ２は、システムバス２０に対して、ＣＰＵ２１と、メモリ部２２と、マイクロコンピュータ１の汎用ポート１４に制御用バスライン１０１により接続されている制御用ポート２３と、マイクロコンピュータ１のデータ用ポート１６にデータ用バスライン１０２により接続されているデータ用ポート２４とが接続されて構成される。なお、プログラムＲＯＭとワークエリアＲＡＭは、説明の簡単のため、省略した。ワークエリアＲＡＭは、メモリ部２２内に形成される場合もある。
【０００９】
ＵＳＢインターフェースＩＣ３は、システムバス３０に対して、ＣＰＵ３１と、データ通信用のＦＩＦＯ（Ｆｉｒｓｔ−ｉｎ  Ｆｉｒｓｔ−ｏｕｔ）メモリ３２と、設定用メモリ３３と、マイクロコンピュータ１の汎用ポート１５に制御用バスライン１０３により接続されている制御用ポート３４と、マイクロコンピュータ１のデータ用ポート１７にデータ用バスライン１０５により接続されているデータ用ポート３６と、マイクロコンピュータ１のアドレス用ポート１８にアドレス用バスライン１０４により接続されているアドレスポート３５とが接続されて構成される。なお、プログラムＲＯＭとワークエリアＲＡＭは、説明の簡単のため、ＵＳＢインターフェースＩＣ３については省略した。
【００１０】
ＦＩＦＯメモリ３２は、パーソナルコンピュータ６との間で送受するデータをバッファリングするためのものである。また、設定用メモリ３３は、ＵＳＢインターフェースＩＣ３における種々の設定情報を保持するためのものである。アドレスポート３５に、マイクロコンピュータ１から与えられるアドレス情報によりＦＩＦＯメモリ３２と、設定用メモリ３３のいずれかが指定される。
【００１１】
以上のような構成において、フラッシュメモリ２と、ＵＳＢインターフェースＩＣ３を通じたパーソナルコンピュータ６との間のデータの送受（データ転送）は、以下に説明するようにして、マイクロコンピュータ１のＲＡＭ１３をバッファとして用いて行なわれる。
【００１２】
この場合に、フラッシュメモリ２のデータ書き込みおよび読み出しの制御は、制御用ポート２３に供給される制御信号のみによりなされるのではなく、バスライン１０２を通じてデータ用ポート２４に供給されるアドレス情報やコマンド情報をも用いて行なわれることを考慮する必要がある。
【００１３】
先ず、フラッシュメモリ２に記憶されているデータを、ＵＳＢインターフェースＩＣ３を介して、パーソナルコンピュータ６に転送する動作について説明する。
【００１４】
パーソナルコンピュータ６にデータを転送するために、フラッシュメモリ２から記憶データを読み出す際には、マイクロコンピュータ１は、フラッシュメモリ２のデータ用ポート２４に、バスライン１０２を通じて読み出しアドレスコマンドと、読み出しアドレス情報とを順次に送出すると共に、制御用ポート２３に、この読み出しアドレスコマンドと、アドレス情報の取り込み制御信号を供給する。すると、フラッシュメモリ２のＣＰＵ２１は、読み出しアドレスコマンドおよび読み出しアドレスを取得して、読み出しを行なう状態になる。
【００１５】
その後、マイクロコンピュータ１が、フラッシュメモリ２の制御用ポート２３に読み出し制御信号を送ると、フラッシュメモリ２のデータ用ポート２４から、指定された読み出しアドレスのデータが順次に送出される。そこで、マイクロコンピュータ１は、データ用ポート１６を介して、当該フラッシュメモリ２からのデータを取り込み、ＲＡＭ１３に書き込む。
【００１６】
このようにしてＲＡＭ１３に書き込まれてバッファリングされるデータは、次のようにして、ＵＳＢインターフェース３を通じてパーソナルコンピュータ６に転送される。
【００１７】
すなわち、マイクロコンピュータ１は、ＵＳＢインターフェースＩＣ３のアドレスポート３５に対して、アドレス用ポート１８を通じて、通信用のＦＩＦＯバッファ３２を指定するアドレス情報を送る。ＵＳＢインターフェースＩＣ３のＣＰＵ３１は、このアドレス情報により通信用ＦＩＦＯメモリ３２が指定されたことを認識する。
【００１８】
次に、マイクロコンピュータ１は、ＲＡＭ１３に記憶しているデータを読み出して、当該データをデータ用ポート１７からＵＳＢインターフェースＩＣ３のデータ用ポート３６に対して送出すると共に、汎用ポート１５を通じて書き込み制御信号をＵＳＢインターフェースＩＣ３の制御用ポート３４に対して送出する。
【００１９】
ＵＳＢインターフェースＩＣ３では、ＦＩＦＯメモリ３２の選択と、書き込み制御信号を受信したことにより、電子機器１００の内部データのパーソナルコンピュータ６へのデータ転送であることを認識し、データ用ポート３６で受け取ったデータをＦＩＦＯメモリ３２に書き込む。そして、当該データをＦＩＦＯメモリ３２から読み出してパーソナルコンピュータ６に転送する。
【００２０】
以上により、フラッシュメモリ２の記憶データのパーソナルコンピュータ６への転送がなされる。次に、パーソナルコンピュータ６からのデータを、フラッシュメモリ２に転送して書き込む処理について説明する。
【００２１】
このときには、パーソナルコンピュータ６は、書き込みコマンドを、ＵＳＢインターフェースＩＣ３を通じて電子機器１００に送った後、転送データを電子機器１００に送るようにする。
【００２２】
マイクロコンピュータ１は、パーソナルコンピュータ６からの書き込みコマンドを受け付けた後、ＵＳＢインターフェースＩＣ３のアドレスポート３５に対して、アドレス用ポート１８を通じて、通信用のＦＩＦＯバッファ３２を指定するアドレス情報を送ると共に、汎用ポート１５を通じて読み出し制御信号をＵＳＢインターフェースＩＣ３の制御用ポート３４に対して送出する。
【００２３】
ＵＳＢインターフェースＩＣ３のＣＰＵ３１は、このアドレス情報および読み出し制御信号により、通信用ＦＩＦＯメモリ３２に外部から取り込んだデータを、データ用ポート３６から送出する指示であることを認識する。
【００２４】
そして、ＵＳＢインターフェースＩＣ３は、パーソナルコンピュータ６から受け取ったデータをＦＩＦＯメモリ３２に書き込み、また、ＦＩＦＯメモリ３２から読み出してデータ用ポート３６からマイクロコンピュータ１に送る。マイクロコンピュータ１は、データ用ポート１７を通じて受信したデータをＲＡＭ１３に書き込む。
【００２５】
そして、マイクロコンピュータ１は、ＲＡＭ１３に記憶しているデータを読み出して、当該データをデータ用ポート１４からフラッシュメモリ２のデータ用ポート２４に対して送出すると共に、汎用ポート１５を通じて読み出し制御信号をフラッシュメモリ２の制御用ポート２３に対して送出する。
【００２６】
このフラッシュメモリ２に対するデータ送出に先立ち、マイクロコンピュータ１は、フラッシュメモリ２のデータ用ポート２４に、バスライン１０２を通じて、書き込みアドレスコマンドと書き込みアドレス情報とを順次に送出すると共に、制御用ポート２３に、この書き込みアドレスコマンドと、アドレス情報の取り込み制御信号を供給して、フラッシュメモリ２を、指定されたアドレスにデータの書き込みを行なう状態にする。
【００２７】
フラッシュメモリ２は、マイクロコンピュータ１からの上述の制御信号およびコマンド、アドレス情報およびデータを受けて、指定されたアドレスに、データ用ポート２４を通じて受け取ったデータを書き込むようにする。以上により、パーソナルコンピュータ６からのデータのフラッシュメモリ２への転送および書き込みがなされる。
【００２８】
２つのデバイス間において、データを転送する方法としては、上述のようなマイクロコンピュータ（またはＣＰＵ）の制御の下に行なう方法の他に、例えば特許文献１（特開２００１−２４３１７３号公報）に記載されているようなＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラを用いて、ＣＰＵを経由することなく、直接的に転送（ＤＭＡ転送）する方法もある。
【００２９】
【特許文献１】
特開２００１−２４３１７３号公報
【００３０】
【発明が解決しようとする課題】
ところで、上述の図１２に示したような従来の、フラッシュメモリとＵＳＢインターフェースＩＣとの間でのデータ転送方法では、転送データを一旦マイクロコンピュータのＲＡＭに転送し、その後、転送先にデータを転送するように構成されており、ＲＡＭを介する分だけ、データ転送に時間がかかる欠点があった。
【００３１】
また、ＲＡＭに一旦転送データをバッファリングしなければならないので、当該バッファリングのためのメモリ容量をデータ転送時に必要とするという問題もある。
【００３２】
前述したＤＭＡ転送によれば、マイクロコンピュータを経由することなく、２つのデバイス間においてデータ転送することができる。しかしながら、フラッシュメモリの場合には、データ用ポートには、転送データのみが供給されるのではなく、書き込みアドレスコマンド、読み出しアドレスコマンドなどのコマンド情報や、アドレス情報も供給されて、制御信号により、それらコマンド情報やアドレス情報がフラッシュメモリに取り込まれるように制御する構成としなければならない。
【００３３】
このため、ＤＭＡ転送をそのままフラッシュメモリと他のデバイスとの間のデータ転送に適用することはできない。
【００３４】
この発明は以上の点にかんがみ、フラッシュメモリのように、データ用ポートには、転送データのみが供給されるのではなく、コマンド情報や、アドレス情報も供給されて、制御信号により、それらコマンド情報やアドレス情報が取り込まれるデバイスと、他のデバイスとの間におけるデータ転送を、バッファリングを不要にして、高速に行なえるようにしたデータ転送方法および装置を提供することを目的とする。
【００３５】
【課題を解決するための手段】
上記課題を解決するために、この発明によるデータ転送方法は、
データ用ポートと制御用ポートとを備える第１および第２のデバイスの間におけるデータの送受を、制御用デバイスから前記第１および第２のデバイスの前記制御用ポートに制御信号に供給することにより行なうようにするデータ転送方法であって、
前記第１のデバイスの前記データ用ポートと、第２のデバイスのデータ用ポートと、前記制御用デバイスのデータ用ポートとを共通にバスラインで接続すると共に、前記第１のデバイスの前記制御用ポートと、前記第２のデバイスの制御用ポートとは、前記制御用デバイスの別々のポートに接続し、
前記制御用デバイスは、
前記データ用ポートに接続されるバスラインに、転送データの送出あるいは取り込みを指示するコマンド情報と、前記転送データの蓄積先あるいは読み出し元を指定する位置指定情報とを送出すると共に、前記第１および第２のデバイスの制御用ポートに、制御信号を供給することにより、前記コマンド情報および前記位置指定情報を第１のデバイスおよび／または第２のデバイスに取り込ませる第１の工程と、
前記第１の工程の後、前記第１および第２のデバイスのうちの一方のデバイスの制御用ポートには読み出し制御信号を、他方のデバイスには書き込み制御信号を供給することにより、前記第１および第２のデバイスの間で、直接に、前記バスラインを通じてデータの転送を行なうようにした第２の工程と、
を実行することを特徴とする。
【００３６】
上述の構成の請求項１の発明によれば、データ用ポートには、転送データのみが供給されるのではなく、コマンド情報や、アドレス情報も供給されて、制御信号により、それらコマンド情報やアドレス情報が取り込まれるデバイスと、他のデバイスとの間におけるデータ転送であっても、共通のバスラインを通じて直接にデータが転送される。
【００３７】
したがって、高速のデータ転送ができると共に、制御用デバイスのデータ用ポートは、２つのデバイスに共通の一つだけでよくなるというメリットもある。さらに、従来の方法のような転送データをバッファリングするためのメモリ領域は不用になるという効果もある。
【００３８】
また、請求項２の発明は、請求項１に記載のデータ転送方法において、
前記第１のデバイスおよび／または第２のデバイスは、前記バスラインを通じて転送されてくるデータを取り込んだときに、前記データに付与されているエラー検出用情報に基づいてエラー検出を行い、そのエラー検出結果を前記データ用ポートから送出可能であり、
前記制御用デバイスは、前記データを取り込んだ前記第１または第２のデバイスからの前記エラー検出結果により、前記第１および第２のデバイス間で正しくデータ転送がなされたか否かを判別する
ことを特徴とする。
【００３９】
前述した図１２の従来のデータ転送方法の場合には、一方のデバイスからマイクロコンピュータのＲＡＭに一旦データを取り込み、他方のデバイスにＲＡＭからデータを転送するようにするので、ＲＡＭへの取り込みあるいはＲＡＭからのデータの読み出しの際に、データのチェックを行なって、データ転送が正しく行なわれたか否かを監視することができる。
【００４０】
しかし、請求項１の発明のように第１および第２のデバイス間で、直接にデータ転送を行なう場合には、転送データは、制御用デバイスを経由しないので、このままでは、データ転送が正しく行なわれたかどうかのチェックができない。
【００４１】
請求項２の発明は、この点を改善したものであり、転送データを取り込む方のデバイスは、データに付与されているエラー検出用情報に基づいて、エラー検出を行ない、そのエラー検出結果を制御用デバイスに通知することができる。
【００４２】
そして、制御用デバイスは、このエラー検出結果に基づいて、データ転送が正しくなされたかどうかを判別することができ、データ転送のやり直しを指示するなど、適切な処理をすることも可能になる。
【００４３】
【発明の実施の形態】
以下、この発明によるデータ転送装置および方法並びにデータ転送システムの実施形態を、図を参照しながら説明する。
【００４４】
図１は、前述した図１２の電子機器１００に、この発明によるデータ転送方法を適用した場合の実施形態である。図１の実施形態では、電子機器１００のマイクロコンピュータ１のデータ用ポート１６と、フラッシュメモリ２のデータ用ポート２４と、ＵＳＢインターフェースＩＣ３とを、共通のデータ用バスライン１１０により接続する。
【００４５】
電子機器１００のその他の構成は、マイクロコンピュータ１のデータ転送用のソフトウエアプログラムが異なる他は、前述した図１２で説明した構成と同様である。なお、図１は、図１２と同様に、フラッシュメモリ２と、ＵＳＢインターフェースＩＣ３を介したパーソナルコンピュータ６とのデータ転送に必要な部分のみを示したものであり、その他の部分は、省略したものである。
【００４６】
そして、この例の場合、フラッシュメモリ２は、ＮＡＮＤ型のフラッシュメモリとされている。また、この例では、データ用バスライン１１０は、８ビット幅のものとされており、このため、１バイト単位で、データの転送がなされる。
【００４７】
ＮＡＮＤ型フラッシュメモリで取り扱う記憶データの構成は、図２に示すようなものとなる。
【００４８】
すなわち、ＮＡＮＤ型フラッシュメモリでは、ページと呼ばれる小ブロック単位でデータの読み書きが行なわれ、このページの複数個からなるブロックと呼ばれる大ブロック単位でデータの消去がなされるようになっている。そして、１ページは、例えば、５１２バイトのデータエリアと、１６バイトのスペアエリア（冗長部）とから構成される。１６バイトのスペアエリアのうちの４バイトは、エラー検出訂正用のＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）として使用される。このＥＣＣは、１ビットのエラー訂正が可能である。
【００４９】
次に、図３は、制御用バスライン１０１および１０３の詳細構成を説明すための図である。すなわち、フラッシュメモリ２の制御用ポート２３とマイクロコンピュータ１の制御用ポート（汎用ポート）１４との間に接続される制御用バスライン１０１は、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、フラッシュメモリチップイネーブル信号ＦＬＭＣＥ、読み出しイネーブル信号ＲＥ、書き込みイネーブル信号ＷＥ、書き込みプロテクト信号ＷＰ、レディー／ビジー信号Ｒ／Ｂ、の各制御信号ラインからなる。
【００５０】
コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、フラッシュメモリチップイネーブル信号ＦＬＭＣＥ、読み出しイネーブル信号ＲＥ、書き込みイネーブル信号ＷＥ、書き込みプロテクト信号ＷＰは、マイクロコンピュータの制御用ポート（汎用ポート）１４からフラッシュメモリ２の制御用ポート２３に供給される制御信号である。
【００５１】
そして、コマンドラッチイネーブル信号ＣＬＥは、マイクロコンピュータ１からデータ用バスライン１１０に送出されるコマンドを、データ用ポート２４を通じて取り込むための制御信号である。アドレスラッチイネーブル信号ＡＬＥは、マイクロコンピュータ１からデータ用バスライン１１０に送出されるアドレス情報を、データ用ポート２４を通じて取り込むための制御信号である。
【００５２】
フラッシュメモリチップイネーブル信号ＦＬＭＣＥは、フラッシュメモリ２を動作可能状態にするための制御信号である。読み出しイネーブル信号ＲＥは、フラッシュメモリ２のメモリ部２２からバイト単位のデータを読み出してデータ用ポート２４からバスライン１１０に送出させる読み出し制御信号である。書き込みイネーブル信号ＷＥは、バスライン１１０上のデータを、フラッシュメモリ２のデータ用ポート２４にバイト単位で取り込んで、メモリ部２２に書き込むようにする書き込み制御信号である。
【００５３】
書き込みプロテクト信号ＷＰは、メモリ部２２に書き込んだデータを消去することなく、保護するための制御信号である。レディー／ビジー信号Ｒ／Ｂは、フラッシュメモリ２が使用中であるかどうかをマイクロコンピュータ１に通知するための制御信号である。
【００５４】
ＵＳＢインターフェースＩＣ３の制御用ポート３４とマイクロコンピュータ１の制御用ポート（汎用ポート）１５との間に接続される制御用バスライン１０３は、読み出し制御信号ＲＤ、書き込み制御信号ＷＲ、ＵＳＢチップセレクト信号ＵＳＢＣＳ、リセット信号ＲＳＴ、の各制御信号ラインからなる。各制御信号は、すべてマイクロコンピュータ１の制御用ポート１５からＵＳＢインターフェースＩＣ３の制御用ポート３４に供給される。
【００５５】
ＵＳＢチップセレクト信号ＵＳＢＣＳは、ＵＳＢインターフェースＩＣ３を動作可能状態にするための制御信号である。
【００５６】
前述もしたように、ＵＳＢインターフェースＩＣ３は、マイクロコンピュータ１からアドレスポート３５に供給されるアドレス情報により、データ用ポート３６を通じてデータを送受するメモリが、ＦＩＦＯメモリ３２と、設定用メモリ３３とのいずれであるかを決定する。
【００５７】
そして、ＵＳＢインターフェースＩＣ３は、動作可能状態において、読み出し制御信号ＲＤがイネーブル状態にされると、指定されたメモリからバイト単位でデータをデータ用ポート３６からバスライン１１０に送出するようにする。また、ＵＳＢインターフェースＩＣ３は、動作可能状態において、書き込み制御信号ＷＲがイネーブル状態にされると、バスライン１１０にあるバイト単位のデータをデータ用ポート３６から取り込んで、指定されたメモリに書き込むようにする。
【００５８】
次に、この実施形態におけるデータ転送の手順を、以下に説明する。
【００５９】
＜パーソナルコンピュータ６からＵＳＢインターフェースＩＣ３を経由して、フラッシュメモリ２にデータを転送して書き込む場合＞
パーソナルコンピュータ６と、電子機器１００との間では、例えば１Ｍバイト単位で、データ転送がなされる。このため、パーソナルコンピュータ６からは、１Ｍバイトのデータを送出するに先立ち、書き込みコマンドがＵＳＢインターフェースＩＣ３を通じてマイクロコンピュータ１に送られて、要求バイト数のデータの転送がなされる。例えば、パーソナルコンピュータ６から、２．５Ｍバイトのデータをフラッシュメモリ２に書き込もうとする場合には、パーソナルコンピュータ６からは、最初の１Ｍバイト単位のデータを送出する前と、次の１Ｍバイト単位のデータを送出する前と、最後の０．５Ｍバイトのデータを送出する前の３回、書き込みコマンドをマイクロコンピュータ１に送る。ただし、１回目、２回目の書き込みコマンドは、未だ、データ転送が完了していない途中の状態であることを示すものとされる。
【００６０】
マイクロコンピュータ１は、このパーソナルコンピュータ６からの書き込みコマンドによりＵＳＢインターフェースＩＣ３からのフラッシュメモリ２への、バスライン１１０を通じた直接のデータ転送の処理を起動するようにする。
【００６１】
以下、マイクロコンピュータ１の動作を中心に、この場合のデータ転送について説明する。図４および図５は、この場合のマイクロコンピュータ１のＣＰＵ１１の処理動作を説明するためのフローチャートである。
【００６２】
また、図６は、この場合のデータ転送におけるマイクロコンピュータ１と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３との間でやり取りされるデータおよび制御信号を説明するタイミングチャートである。さらに、図７は、この場合のデータ転送におけるマイクロコンピュータ１と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３との間での、データおよび制御信号のやり取りのシーケンスを示す図である。なお、図６および図７は、１ページ分のデータの転送について示したものである。
【００６３】
図４および図５のフローチャートを中心として、適宜、図６のタイミングチャートおよび図７のシーケンスを参照しながら、この場合のデータ転送について説明する。なお、図４、図５および図７において、ＰＣは、パーソナルコンピュータの略である。
【００６４】
図４に示すように、電子機器１００のマイクロコンピュータ１のＣＰＵ１１は、パーソナルコンピュータ６から、フラッシュメモリ２へのデータの書き込みコマンドを受信したか否か判別し（ステップＳ１０１）、書き込みコマンドを受信していないと判別したときには、その他の処理をする（ステップＳ１０２）。
【００６５】
ステップＳ１０１で、パーソナルコンピュータ６から、フラッシュメモリ２へのデータの書き込みコマンドを受信したと判別したときには、マイクロコンピュータ１では、パーソナルコンピュータ６からのデータをＵＳＢインターフェースＩＣ３からフラッシュメモリ２にバスライン１１０を通じて直接に転送するための準備をし、パーソナルコンピュータ６にＵＳＢインターフェースＩＣ３を通じて「準備ＯＫ」を通知する（ステップＳ１０３）。
【００６６】
このステップＳ１０３でのマイクロコンピュータ１の準備処理においては、ＵＳＢインターフェースＩＣ３については、チップセレクト信号ＵＳＢＣＳをイネーブル状態にしてＵＳＢインターフェースＩＣ３を動作可能状態にすると共に、アドレスポート３５にＦＩＦＯメモリ３２を指定するアドレス情報を送出し、また、フラッシュメモリ２に対しては、フラッシュメモリチップイネーブル信号ＦＬＭＣＥをイネーブル状態にしてフラッシュメモリ２を動作可能状態にすることを含む（図７参照）。
【００６７】
準備ができたら、マイクロコンピュータ１は、フラッシュメモリ２の書き込みアドレスを決定して（ステップＳ１０４）、書き込みアドレスコマンドを、データ用ポート１６からバスライン１１０に送出するとともに、フラッシュメモリ２に対する制御信号のコマンドラッチイネーブル信号ＣＬＥをイネーブル状態にする（ステップＳ１０５、図６および図７参照）。なお、この実施形態においては、イネーブル状態は、各制御信号がハイレベルからローレベルになることにより指示されるものとする。
【００６８】
フラッシュメモリ２では、バスライン１１０を通じてデータ用ポート２４に到来する書き込みアドレスコマンドを、制御用ポート２３に供給されるコマンドラッチイネーブル信号ＣＬＥがイネーブル状態になることにより取り込み、書き込み準備状態になる。
【００６９】
次に、マイクロコンピュータ１は、データ用ポート１６からアドレス情報（書き込みアドレス）をバスライン１１０に送出すると共に、フラッシュメモリ２に対する制御信号のアドレスラッチイネーブル信号ＡＬＥをイネーブル状態にする（ステップＳ１０６、図６および図７参照）。
【００７０】
すると、フラッシュメモリ２では、バスライン１１０を通じてデータ用ポート２４に到来するアドレス情報を、制御用ポート２３に供給されるアドレスラッチイネーブル信号ＡＬＥがイネーブル状態になることにより取り込み、メモリ部２２についての書き込みアドレス（ページ単位のアドレス）を認識する。
【００７１】
この場合、アドレス情報は、どのブロックの何番目のページアドレスかを示すものであり、フラッシュメモリ２の容量に応じた複数バイトとされるので、各バイト単位のアドレス情報の送出と、アドレスラッチイネーブル信号ＡＬＥのイネーブル状態とが、当該バイト数分だけ繰り返される（図７参照）。
【００７２】
次に、マイクロコンピュータ１は、ＵＳＢインターフェースＩＣに対する制御信号の読み出し制御信号ＵＳＢＲＤをイネーブル状態にする（ステップＳ１０７、図６および図７参照）。
【００７３】
すると、ＵＳＢインターフェースＩＣ３では、ＦＩＦＯメモリ３２から１バイトのデータを読み出して、データ用ポート３６を通じてバスライン１１０に送出する。
【００７４】
一方、マイクロコンピュータ１は、フラッシュメモリ２に対する制御信号である書き込みイネーブル信号ＷＥをイネーブル状態にする（ステップＳ１０８、図６および図７参照）。すると、フラッシュメモリ２は、バスライン１１０上のバイトデータを、書き込みイネーブル信号ＷＥに基づいて取り込む。
【００７５】
そして、マイクロコンピュータ１は、フラッシュメモリ２に対する制御信号である書き込みイネーブル信号ＷＥをディスエイブル状態にし（ステップＳ１０９）、フラッシュメモリへ１バイトのデータ取り込み完了とする。
【００７６】
その後、マイクロコンピュータ１は、ＵＳＢインターフェースＩＣ３に対する制御信号の読み出し制御信号ＵＳＢＲＤをディスエイブル状態にし（ステップＳ１１０）、１バイトのデータ送出完了とする。
【００７７】
次に、マイクロコンピュータ１では、フラッシュメモリ２の１つのアドレスへの書き込み単位である１ページ分、つまり、５２８バイトのデータのフラッシュメモリ２への書き込みが終了したか否か判別し（ステップＳ１１１）、終了していなければ、ステップＳ１０７〜ステップＳ１１１の処理を繰り返す（図６および図７参照）。
【００７８】
そして、マイクロコンピュータ１は、ステップＳ１１１において１ページ分の書き込みが終了したと判別したときには、データ用ポート１６からバスライン１１０にプログラムコマンドを送出すると共に、フラッシュメモリ２に対する制御信号であるコマンドラッチイネーブル信号ＣＬＥをイネーブル状態にする（図５のステップＳ２０１、図６および図７参照）。
【００７９】
これにより、フラッシュメモリ２は、バスライン１１０上のプログラムコマンドを、制御用ポート２３に供給されるコマンドラッチイネーブル信号ＣＬＥがイネーブル状態になることにより取り込み、プログラムコマンドに基づいて１ページ分のデータをメモリ部２２に書き込むようにする。
【００８０】
この書き込みの際、フラッシュメモリ２では、１ページ分のデータが正しく書き込まれたかどうかのチェックを行い、そのチェック結果として書き込みステータス情報を形成する。この書き込みステータス情報は、後述するように、１ページ分のデータの書き込み終了後に、マイクロコンピュータ１に読み込まれて、フラッシュメモリ２で正常に書き込みが行なわれたか否かのチェックに利用される。
【００８１】
次に、マイクロコンピュータ１は、データ用ポート１６からバスライン１１０にステータスリードコマンドを送出すると共に、フラッシュメモリ２に対する制御信号のコマンドラッチイネーブル信号ＣＬＥをイネーブル状態にする（ステップＳ２０２、図６および図７参照）。
【００８２】
すると、フラッシュメモリ２は、バスライン１１０を通じてデータ用ポート２４に到来するステータスリードコマンドを、制御用ポート２３に供給されるコマンドラッチイネーブル信号ＣＬＥがイネーブル状態になることにより取り込み、ステータス情報をデータ用ポート２４から送出する準備をする。
【００８３】
次に、マイクロコンピュータ１は、フラッシュメモリ２に対する制御信号の読み出しイネーブル信号ＲＥをイネーブル状態にする（ステップＳ２０３、図６および図７参照）。この読み出しイネーブル信号ＲＥのイネーブル状態を受けて、フラッシュメモリ２は、ステータス情報をデータ用ポート２４からバスライン１１０に送出する（図６および図７参照）。
【００８４】
マイクロコンピュータ１は、このバスライン１１０に現れた書き込みステータス情報をデータ用ポート１６から取り込み、１ページ分のデータが、正常に、フラッシュメモリ２に書き込まれたか否か判別する（ステップＳ２０４）。
【００８５】
このステップＳ２０４で、書き込みステータス情報が正常に書き込みが行なわれなかったことを示す状態であるときには、マイクロコンピュータ１は、パーソナルコンピュータ６に、書き込みエラー発生をＵＳＢインターフェースＩＣ３を通じて通知する（ステップＳ２０５）。そして、マイクロコンピュータ１は、このデータ転送処理を終了する。
【００８６】
なお、書き込みエラー発生の通知を受け取ったパーソナルコンピュータ６では、例えばデータ転送が正常にできなかった旨をユーザに通知するなどの適当な処置を行なうことができる。
【００８７】
また、ステップＳ２０４で、ステータス情報が正常に書き込みがなされたことを示す状態であると判別したときには、マイクロコンピュータ１は、所定バイト数、この例では１Ｍバイトのデータ転送が終了したか否か判別し（ステップＳ２０６）、所定バイト数のデータの転送が終了していなければ、ステップＳ１０４に戻り、次の１ページ分のデータの転送を、上述と同様にして繰り返す。
【００８８】
また、ステップＳ２０６で、１Ｍバイトのデータ転送が終了したと判別したときには、マイクロコンピュータ１は、パーソナルコンピュータ６にＵＳＢインターフェースＩＣ３を通じてエラー無しを通知する（ステップＳ２０７）。
【００８９】
次に、マイクロコンピュータ１は、ステップＳ１０１で受信したパーソナルコンピュータ６からの書き込みコマンドが途中を意味するコマンドであるか否かを判別し（ステップＳ２０８）、途中を意味するコマンドであると判別したときには、ステップＳ１０１に戻り、上述のデータ転送動作を繰り返す。
【００９０】
また、ステップＳ２０８で、ステップＳ１０１で受信したパーソナルコンピュータ６からの書き込みコマンドが、途中を意味するものではなく最終を意味するコマンドであると判別したときには、データ書き込み後処理（ファイル登録等のＴＯＣ更新処理）を行い（ステップＳ２０９）、このデータ転送の処理ルーチンを終了する。
【００９１】
以上のようにして、この実施形態においては、ＵＳＢインターフェースＩＣ３からフラッシュメモリ２に対して、マイクロコンピュータ１のＲＡＭを経由することなく、直接にデータ転送がなされる。そして、このとき、マイクロコンピュータ１は、１ページ単位で、フラッシュメモリ２のステータス情報を確認することにより、データ転送が正しくなされたか否かをチェックすることができる。
【００９２】
そして、エラーが発生したときには、マイクロコンピュータは、即座にパーソナルコンピュータ６にその旨を通知するようにしているので、パーソナルコンピュータ６では、データ転送を中止するなど、適切な処置をすることが可能になる。
【００９３】
＜フラッシュメモリ２からＵＳＢインターフェースＩＣ３を経由して、パーソナルコンピュータ６にデータを転送する場合＞
この場合には、例えば、パーソナルコンピュータ６からの読み出しコマンドに応じて、電子機器１００のマイクロコンピュータ１がフラッシュメモリ２の読み出しアドレスを決定する。そして、マイクロコンピュータ１の制御の下、フラッシュメモリ２から当該アドレス位置のデータがバスライン１１０を通じて直接にＵＳＢインターフェースＩＣ３に転送され、ＵＳＢインターフェースＩＣ３からパーソナルコンピュータ６に、さらに転送される。
【００９４】
図８は、この場合のデータ転送におけるマイクロコンピュータ１と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３との間でやり取りされるデータおよび制御信号を説明するタイミングチャートである。また、図９は、この場合のデータ転送におけるマイクロコンピュータ１と、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３との間での、データおよび制御信号のやり取りのシーケンスを示す図である。これらの図８および図９は、１ページ分のデータについてのものであるのは、前述と同様である。
【００９５】
図８のタイミングチャートおよび図９のシーケンスを参照しながら、この場合のデータ転送について説明する。
【００９６】
先ず、パーソナルコンピュータ６からの読み出しコマンドが電子機器１００のマイクロコンピュータ１に与えられると、マイクロコンピュータ１は、フラッシュメモリ２から読み出したデータを、ＵＳＢインターフェースＩＣ３にバスライン１１０を通じて直接に転送し、さらにパーソナルコンピュータ６に転送するための準備をし、パーソナルコンピュータ６にＵＳＢインターフェースＩＣ３を通じて「準備ＯＫ」を通知する。
【００９７】
この準備処理においては、マイクロコンピュータ１は、ＵＳＢインターフェースＩＣ３については、チップセレクト信号ＵＳＢＣＳをイネーブル状態にしてＵＳＢインターフェースＩＣ３を動作可能状態にすると共に、アドレスポート３５にＦＩＦＯメモリ３２を指定するアドレス情報を送出し、また、フラッシュメモリ２に対しては、フラッシュメモリチップイネーブル信号ＦＬＭＣＥをイネーブル状態にしてフラッシュメモリ２を動作可能状態にすることを含む（図９参照）。
【００９８】
準備ができたら、マイクロコンピュータ１は、フラッシュメモリ２の読み出しアドレスを決定して、読み出しアドレスコマンドを、データ用ポート１６からバスライン１１０送出するとともに、フラッシュメモリ２に対する制御信号のコマンドラッチイネーブル信号ＣＬＥをイネーブル状態にする（図８および図９参照）。
【００９９】
これにより、フラッシュメモリ２では、バスライン１１０を通じてデータ用ポート２４に到来する読み出しアドレスコマンドを、制御用ポート２３に供給されるコマンドラッチイネーブル信号ＣＬＥがイネーブル状態になることにより取り込み、読み出し準備状態になる。
【０１００】
次に、マイクロコンピュータ１は、データ用ポート１６からアドレス情報をバスライン１１０に送出すると共に、フラッシュメモリ２に対する制御信号のアドレスラッチイネーブル信号ＡＬＥをイネーブル状態にする（図８および図９参照）。
【０１０１】
すると、フラッシュメモリ２では、バスライン１１０を通じてデータ用ポート２４に到来するアドレス情報を、制御用ポート２３に供給されるアドレスラッチイネーブル信号ＡＬＥがイネーブル状態になることにより取り込み、メモリ部２２についての読み出しアドレス（どのブロックの何番目のページアドレスかを示すページ単位のアドレス）を認識する。
【０１０２】
次に、マイクロコンピュータ１は、フラッシュメモリ２に対する制御信号の読み出しイネーブル信号ＲＥをイネーブル状態にする（図８および図９参照）。この読み出しイネーブル信号ＲＥのイネーブル状態を受けて、フラッシュメモリ２は、メモリ部２２の指定されたアドレススからバイト単位のデータを読み出し、データ用ポート２４からバスライン１１０に送出する（図８および図９参照）。
【０１０３】
次に、マイクロコンピュータ１は、ＵＳＢインターフェースＩＣに対する制御信号の書き込み制御信号ＵＳＢＷＲをイネーブル状態にする（図８および図９参照）。
【０１０４】
すると、ＵＳＢインターフェースＩＣ３では、バスライン１１０を通じて到来するバイト単位のデータを、データ用ポート３６から取り込み、ＦＩＦＯメモリ３２に書き込む。
【０１０５】
そして、マイクロコンピュータ１は、フラッシュメモリ２に対する制御信号の読み出しイネーブル信号ＲＥをイネーブル状態にする処理動作と、ＵＳＢインターフェースＩＣ３に対する制御信号の書き込み制御信号ＵＳＢＷＲをイネーブル状態にする処理動作を、１ページ分、つまり５２８バイト分繰り返す。これにより、フラッシュメモリ２からＵＳＢインターフェースＩＣ３への１ページ分のデータ転送が、バスライン１１０を通じて直接に行なわれる。
【０１０６】
以下、同様にして、以上のページ単位のデータ転送が、フラッシュメモリ２とＵＳＢインターフェースＩＣ３との間で繰り返されるものである。
【０１０７】
そして、ＵＳＢインターフェースＩＣ３のＦＩＦＯメモリ３２に書き込まれたデータは、順次にパーソナルコンピュータ６に転送される。このＵＳＢインターフェースＩＣ３と、パーソナルコンピュータ６との間におけるデータ転送は、１Ｍバイトの単位であることは前述した通りである。
【０１０８】
このフラッシュメモリ２から、ＵＳＢインターフェースＩＣ３を通じたパーソナルコンピュータ６へのデータ転送が正しく、エラー無く行なわれたか否かのチェックは、この場合には、パーソナルコンピュータ６において、ページ単位のデータのＥＣＣが用いられて行なわれる。この場合、もしも、フラッシュメモリ２からの転送されたデータに訂正不能なエラーがあると検出したときには、パーソナルコンピュータ６は、その旨をパーソナルコンピュータ６のユーザに通知し、ユーザの操作に応じてデータ転送を再度行なうようにするなどの適切な対処ができる。
【０１０９】
なお、バスライン１１０は、上述のようなフラッシュメモリ２とＵＳＢインターフェースＩＣ３との間の直接のデータ転送にのみ使用されるものではなく、チップセレクト信号ＵＳＢＣＳおよびチップイネーブル信号ＦＬＭＣＥにより、ＵＳＢインターフェースＩＣ３と、フラッシュメモリ２とのいずれかのみを選択することにより、フラッシュメモリ２とマイクロコンピュータ１との間でのデータのやり取り用、あるいはＵＳＢインターフェースＩＣ３とマイクロコンピュータ１との間でのデータのやり取り用とされることは、言うまでもない。
【０１１０】
例えば、図１の実施形態の電子機器１００においては、ＵＳＢコネクタ４にケーブル５が接続されないときには、ＵＳＢインターフェースＩＣ３は使用されず、データ用ポート１６は、フラッシュメモリ２に対するものとなり、例えば、図１では図示を省略した電子機器１００内の他のデバイスからのデータをマイクロコンピュータ１のＲＡＭ１３を介してフラッシュメモリ２に書き込んだり、また、電子機器１００内の他のデバイスに、フラッシュメモリ２から読み出したデータをマイクロコンピュータ１のＲＡＭ１３を介して転送したりすることもできる。
【０１１１】
また、ＵＳＢコネクタ４にケーブル５が接続されている場合において、チップセレクト信号ＵＳＢＣＳによりＵＳＢインターフェースＩＣ３のみを動作可能状態として、ＵＳＢインターフェースＩＣ３と、図示を省略した電子機器１００内の他のデバイスとの間でのデータ転送をすることもできる。
【０１１２】
［他の実施形態］
以上の実施形態の説明では、フラッシュメモリ２およびＵＳＢインターフェースＩＣ３とが共に電子機器１００に内蔵されている場合であるが、図１０に示すように、フラッシュメモリを、カード型メモリ７の構成として、電子機器１００とは別体のものとして、着脱可能にすることもできる。
【０１１３】
この場合には、電子機器１００には、このカード型メモリ７の装填部を設け、この装填部に設けられるカード型メモリ用のコネクタ部７１の、カード型メモリ７のデータ用ポートに対応する端子部を、ＵＳＢインターフェースＩＣ３のデータ用ポートと共通に接続されるバスライン１１０に接続するように構成する。
【０１１４】
また、マイクロコンピュータ１の汎用ポート１４が接続されるバスライン１０１は、カード型メモリ用のコネクタ部７１の、カード型メモリ７の制御用ポートに対応する端子部に接続する。
【０１１５】
また、ＵＳＢインターフェースＩＣが、電子機器１００の外部に接続される場合もある。図１１は、その場合の一例を示すもので、この例は、電子機器１００が充電式の機器であり、その充電台８にＵＳＢインターフェースＩＣ９が内蔵されている。
【０１１６】
充電台８には、内蔵のＵＳＢインターフェースＩＣ９のデータ用ポート、アドレスポート、制御用ポートが接続されるコネクタ部９１が形成される。また、電子機器１００には、これを充電台８に載せて充電する状態のときに、充電台８の前記コネクタ部９１と衝合して、電気的に接続されるコネクタ部８１が設けられる。
【０１１７】
そして、フラッシュメモリ２のデータ用ポート２４と共通に接続されるバスライン１１０は、電子機器１００が充電台８に載せられたときに、コネクタ部９１のＵＳＢインターフェースＩＣ９のデータ用ポートが接続されている端子部と衝合する、コネクタ部８１の端子部に接続される。また、アドレスバスライン１０４および制御用バスライン１０３は、それぞれコネクタ部９１のＵＳＢインターフェースＩＣ９のデータ用ポート、アドレスポート、制御用ポートが接続されている端子部と衝合する、コネクタ部８１の端子部に接続される。
【０１１８】
これらの図１０および図１１の例においても、前述の実施形態と全く同様のデータ転送が可能となることは容易に理解できるので、ここでは、データ転送の動作については、説明を省略する。
【０１１９】
なお、以上のいずれの実施形態も、制御デバイスとしてのマイクロコンピュータにより制御されて、データ転送が直接に行なわれるデバイスが、フラッシュメモリとＵＳＢインターフェースＩＣの場合であるが、データ転送が直接に行なわれるデバイスは、これらに限らないことは言うまでもない。例えば、通信インターフェースは、ＵＳＢインターフェースに限らないことは勿論である。
【０１２０】
また、例えば、フラッシュメモリ同士の間におけるデータ転送にも、この発明は適用できる。その場合には、一方のフラッシュメモリに読み出しアドレスコマンドおよびアドレスを送った後に、他方のフラッシュメモリに書き込みコマンドおよびアドレスを送り、その後、一方のフラッシュメモリに対する読み出しイネーブル信号をイネーブル状態にすると共に、他方のフラッシュメモリに対する書き込みイネーブル信号をイネーブル状態にすることにより、両フラッシュメモリ間でデータ転送することができる。
【０１２１】
また、上述の例では、マイクロコンピュータ１は、プログラムＲＯＭを内蔵するタイプのものとしたが、プログラムＲＯＭがＣＰＵに対して外付けのものであっても良い。
【０１２２】
【発明の効果】
以上説明したように、この発明によれば、データ用ポートには、転送データのみが供給されるのではなく、書き込みコマンド、読み出しコマンドなどのコマンド情報や、アドレス情報も供給されて、制御信号により、それらコマンド情報やアドレス情報が取り込まれるデバイスと、他のデバイスとの間におけるデータ転送であっても、共通のバスラインを通じて直接にデータが転送されて、高速のデータ転送ができる。
【０１２３】
そして、この発明によれば、制御用デバイスのデータ用ポートは、２つのデバイスに共通の一つだけでよくなるというメリットもある。
【０１２４】
また、制御用デバイスは、転送データを取り込む方のデバイスからの、転送データに付加されているエラー検出用情報に基づくエラー検出結果を用いて、データ転送が正しくなされたかどうかを判別することができ、データ転送のやり直しを指示するなど、適切な処理をすることも可能になるという効果がある。
【図面の簡単な説明】
【図１】この発明によるデータ転送装置の実施形態を説明するためのブロック図である。
【図２】フラッシュメモリで取り扱うデータの構造を説明するための図である。
【図３】図１の一部の詳細説明図である。
【図４】この発明によるデータ転送方法の例を説明するためのフローチャートの一部を示す図である。
【図５】この発明によるデータ転送方法の実施形態を説明するためのフローチャートの一部を示す図である。
【図６】この発明によるデータ転送方法の実施形態におけるデータおよび制御信号のタイミングチャートを示す図である。
【図７】この発明によるデータ転送方法の実施形態を説明するためのシーケンス図である。
【図８】この発明によるデータ転送方法の実施形態におけるデータおよび制御信号のタイミングチャートを示す図である。
【図９】この発明によるデータ転送方法の実施形態を説明するためのシーケンス図である。
【図１０】この発明によるデータ転送方法が適用されるシステムの構成例を示す図である。
【図１１】この発明によるデータ転送方法が適用されるシステムの構成例を示す図である。
【図１２】従来のデータ転送方法を説明するための図である。
【符号の説明】
１…マイクロコンピュータ、２、７…フラッシュメモリ、３、９…ＵＳＢインターフェースＩＣ、６…パーソナルコンピュータ、１４，１５，２３，３４…汎用ポート（制御用ポート）、１６，２４，３６…データ用ポート、１１０…共通のバスライン
【図１】
2004252705.tif 000003
【図２】
2004252705.tif 000004
【図３】
2004252705.tif 000005
【図４】
2004252705.tif 000006
【図５】
2004252705.tif 000007
【図６】
2004252705.tif 000008
【図７】
2004252705.tif 000009
【図８】
2004252705.tif 000010
【図９】
2004252705.tif 000011
【図１０】
2004252705.tif 000012
【図１１】
2004252705.tif 000013
【図１２】
2004252705.tif 000014