(57)【要約】      （修正有）【課題】ホストコンピュータＨＣからＵＳＢ制御装置の制御ＬＳＩ内の内部記憶装置であるプログラムＲＡＭに、ＵＳＢ等の再接続なしに制御プログラムのダウンロードが行えるようにする。【解決手段】現在の第１外部装置２及び第２外部装置３の各状態等の情報があらかじめ設定された外部状態設定部５と、外部状態設定部５に設定された現在の第１外部装置２及び第２外部装置３の各状態等の情報を読み出して格納する外部状態記憶部１８とを備え、ＣＰＵ１４は、外部状態記憶部１８に格納された情報に従ってホストコンピュータＨＣから要求される初期コンフィグレーション情報のデータを生成し、応答した後にホストコンピュータＨＣから制御プログラムをダウンロードしてプログラムＲＡＭ１６に格納する。【選択図】図１
2006190132.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータと１つ又は複数の所定の機能を有する外部装置とが接続され、該外部装置の制御を行うための制御プログラムを該ホストコンピュータから書き換え可能な内部記憶回路にダウンロードする制御プログラムダウンロード装置において、
前記外部装置の接続状態を示す外部状態情報があらかじめ設定された外部状態設定部と、
入力された制御信号に応じて該外部状態設定部に設定された外部状態情報を記憶する外部状態記憶部と、
前記制御プログラムの前記内部記憶回路へのダウンロードを制御するダウンロード制御部と、
を備え、
前記ダウンロード制御部は、前記制御プログラムのダウンロードを行う場合、該外部状態記憶部に対して前記外部状態設定部に設定された外部状態情報を記憶させた後、前記ホストコンピュータからのコンフィグレーション情報の要求に対して該外部状態記憶部から外部状態情報を読み出して前記ホストコンピュータに送信し、所望の前記制御プログラムをホストコンピュータから前記内部記憶回路にダウンロードすることを特徴とする制御プログラムダウンロード装置。
【請求項２】
前記内部記憶回路に格納された制御プログラムに従って前記外部装置の動作制御を行う制御部を備えることを特徴とする請求項１記載の制御プログラムダウンロード装置。
【請求項３】
前記ダウンロード制御部は、内部記憶回路への前記制御プログラムのダウンロードが完了すると、前記制御部に対して、制御プログラムのダウンロードが完了したことを通知し、該通知を受けた制御部は、内部記憶回路に格納された制御プログラムに従って前記ホストコンピュータからのアクセスに応じて前記外部装置の動作制御を行うことを特徴とする請求項２記載の制御プログラムダウンロード装置。
【請求項４】
前記ダウンロード制御部は、前記制御プログラムのダウンロードが完了するまでは、前記外部装置に対するホストコンピュータからのデータ転送要求に対して、該データの準備が完了していないことを該ホストコンピュータに返信することを特徴とする請求項１又は２記載の制御プログラムダウンロード装置。
【請求項５】
前記ダウンロード制御部は、前記ホストコンピュータからのコンフィグレーション情報の要求に対して、前記外部状態情報と共に前記制御プログラムをダウンロードするためのローダー機能を有することを前記ホストコンピュータに通知することを特徴とする請求項１、２、３又は４記載の制御プログラムダウンロード装置。
【請求項６】
前記外部状態設定部は、プルアップ抵抗及び／又はプルダウン抵抗で構成され、該プルアップ抵抗及び／又はプルダウン抵抗を用いて前記外部状態情報を示すデジタルデータがあらかじめ設定されることを特徴とする請求項１、２、３、４又は５記載の制御プログラムダウンロード装置。
【請求項７】
前記外部状態設定部は、不揮発性メモリで構成され、該不揮発性メモリに前記外部状態情報のデジタルデータがあらかじめ設定されることを特徴とする請求項１、２、３、４又は５記載の制御プログラムダウンロード装置。
【請求項８】
前記外部状態設定部は、不揮発性メモリで構成され、該不揮発性メモリに、前記外部状態情報と共に、複合デバイスであることを示す複合デバイス情報及び前記制御プログラムをダウンロードするためのローダー機能を有することを示す情報の各デジタルデータがあらかじめ設定されることを特徴とする請求項１、２、３、４又は５記載の制御プログラムダウンロード装置。
【請求項９】
前記ダウンロード制御部は、ユニバーサルシリアルバスを使用して前記ホストコンピュータと接続されることを特徴とする請求項１、２、３、４、５、６、７又は８記載の制御プログラムダウンロード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ又は複数の外部装置と接続され、ホストコンピュータから内部記憶回路に制御プログラムをダウンロードする制御プログラムダウンロード装置に関する。
【背景技術】
【０００２】
図７に示すように、ホストコンピュータＨＣに接続する従来のＵＳＢ（ユニバーサルシリアルバス）制御装置は、ＵＳＢ制御装置１００内に、ＵＳＢ制御部１１１、１つ又は複数の外部装置、例えば図７では第１外部装置１０２及び第２外部装置１０３、並びに対応する該外部装置の制御を行う第１制御部１１２及び第２制御部１１３を有し、ＣＰＵ１１４及び該ＣＰＵ１１４を制御するファームウェアがＲＯＭ制御部１１６及びＲＯＭ１０５で構成され、該ファームウェアとワークＲＡＭ１１５を用いてＣＰＵ１１４は前記各制御部の制御を行う。通常、図７に示すように、ＣＰＵ１１４は制御ＬＳＩ１０４内部に設けられており、ＣＰＵ１１４を制御するファームウェアは、制御ＬＳＩ１０４に接続されたフラッシュＲＯＭ等のＲＯＭ１０５で構成される。なお、ＲＯＭ１０５は、制御ＬＳＩ１０４に内蔵する場合もある。
【０００３】
しかし、制御ＬＳＩ１０４にマスクＲＯＭやフラッシュＲＯＭを外付けすると、システムコストのコストアップやＵＳＢ制御装置１００を小さくしたい場合に問題となっていた。また、制御ＬＳＩ１０４内にマスクＲＯＭ等の書き換え不可能なＲＯＭを使用した場合、システムコストは抑えられかつＵＳＢ制御装置を小さくすることができるが、制御ＬＳＩ１０４の制御が固定されてしまうことから第１外部装置１０２及び第２外部装置１０３を変更したいとき等の対応ができず、様々な装置に使用することが困難になるという問題があった。また、制御ＬＳＩ１０４内にフラッシュＲＯＭを設けた場合は、そのファームウェアの内容を書き換えることができ、様々な外部装置への対応等が可能になるが、該フラッシュＲＯＭを制御ＬＳＩ１０４内に設けることは、製造上の問題から制御ＬＳＩのコストアップが増大するという問題があった。
【０００４】
このため、制御ＬＳＩ１０４にファームウェアをダウンロードすることができ、システムコストも抑えられ、かつ、ＵＳＢ制御装置を小さくすることができる方法が求められていた。そこで、従来のＵＳＢ制御装置では、最初にファームウェアをダウンロードするためだけにＵＳＢのコンフィギュレーションを実施してホストコンピュータに接続させ、ＵＳＢ制御装置内の記憶可能なメモリにホストコンピュータからファームウェアをダウンロードするようにしていた。該ダウンロードを行った後、新規ファームウェアが実行される際に電子的にリセットしなければならず、ダウンロードしたファームウェアに合ったＵＳＢのコンフィギュレーションを再度実行することによって、様々な外部装置に対応した制御ＬＳＩにするファームウェアダウンロード方法があった（例えば、特許文献１参照。）。
【０００５】
なお、この他に、２つ以上の通信手段を使用してファームウェアのダウンロードを確実に行うことができるようにしたものがあった（例えば、特許文献２参照。）。
【特許文献１】特表２００２−５１０４１６号公報
【特許文献２】特開２００３−２６３３２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、前記のような方法では、一度決定したＵＳＢ接続を、ファームウェアをダウンロードした後、再度、ＵＳＢ接続を実施し直すため、実際に外部機器が認識されるまでに時間を要するという問題があった。
【０００７】
本発明は、上記のような問題を解決するためになされたものであり、ＵＳＢ等の再接続なしにファームウェアのダウンロードを行うことができる汎用性の高い制御プログラムダウンロード装置を得ることを目的とする。
【課題を解決するための手段】
【０００８】
この発明に係る制御プログラムダウンロード装置は、ホストコンピュータと１つ又は複数の所定の機能を有する外部装置とが接続され、該外部装置の制御を行うための制御プログラムを該ホストコンピュータから書き換え可能な内部記憶回路にダウンロードする制御プログラムダウンロード装置において、
前記外部装置の接続状態を示す外部状態情報があらかじめ設定された外部状態設定部と、
入力された制御信号に応じて該外部状態設定部に設定された外部状態情報を記憶する外部状態記憶部と、
前記制御プログラムの前記内部記憶回路へのダウンロードを制御するダウンロード制御部と、
を備え、
前記ダウンロード制御部は、前記制御プログラムのダウンロードを行う場合、該外部状態記憶部に対して前記外部状態設定部に設定された外部状態情報を記憶させた後、前記ホストコンピュータからのコンフィグレーション情報の要求に対して該外部状態記憶部から外部状態情報を読み出して前記ホストコンピュータに送信し、所望の前記制御プログラムをホストコンピュータから前記内部記憶回路にダウンロードするものである。
【０００９】
また、前記内部記憶回路に格納された制御プログラムに従って前記外部装置の動作制御を行う制御部を備えるようにした。
【００１０】
この場合、前記ダウンロード制御部は、内部記憶回路への前記制御プログラムのダウンロードが完了すると、前記制御部に対して、制御プログラムのダウンロードが完了したことを通知し、該通知を受けた制御部は、内部記憶回路に格納された制御プログラムに従って前記ホストコンピュータからのアクセスに応じて前記外部装置の動作制御を行うようにした。
【００１１】
また、前記ダウンロード制御部は、前記制御プログラムのダウンロードが完了するまでは、前記外部装置に対するホストコンピュータからのデータ転送要求に対して、該データの準備が完了していないことを該ホストコンピュータに返信するようにした。
【００１２】
また、前記ダウンロード制御部は、前記ホストコンピュータからのコンフィグレーション情報の要求に対して、前記外部状態情報と共に前記制御プログラムをダウンロードするためのローダー機能を有することを前記ホストコンピュータに通知するようにした。
【００１３】
具体的には、前記外部状態設定部は、プルアップ抵抗及び／又はプルダウン抵抗で構成され、該プルアップ抵抗及び／又はプルダウン抵抗を用いて前記外部状態情報を示すデジタルデータがあらかじめ設定されるようにした。
【００１４】
また、前記外部状態設定部は、不揮発性メモリで構成され、該不揮発性メモリに前記外部状態情報のデジタルデータがあらかじめ設定されるようにしてもよい。
【００１５】
また、前記外部状態設定部は、不揮発性メモリで構成され、該不揮発性メモリに、前記外部状態情報と共に、複合デバイスであることを示す複合デバイス情報及び前記制御プログラムをダウンロードするためのローダー機能を有することを示す情報の各デジタルデータがあらかじめ設定されるようにしてもよい。
【００１６】
また、前記ダウンロード制御部は、ユニバーサルシリアルバスを使用して前記ホストコンピュータと接続されるようにしてもよい。
【発明の効果】
【００１７】
本発明の制御プログラムダウンロード装置によれば、ホストコンピュータから内部記憶回路にファームウェア等の制御プログラムをダウンロードすることができるため、外付けの不揮発性メモリが不要になり、システムコストを低減することができる。また、外付けの不揮発性メモリの実装スペースが不要になり省スペース化を図ることができる。また、システムコストの低減及び省スペース化を目的にしてファームウェア等の制御プログラムを内蔵マスクＲＯＭに格納した場合ファームウェアの変更が困難であるが、書き換え可能な内部記憶回路にファームウェアをダウンロードすることができ容易にファームウェアの内容を変更することができるため、汎用性を高めることができる。
【発明を実施するための最良の形態】
【００１８】
次に、図面に示す実施の形態に基づいて、本発明を詳細に説明する。
第１の実施の形態．
図１は、本発明の第１の実施の形態における制御プログラムダウンロード装置の構成例を示した図であり、図１ではＵＳＢ制御装置を例にして示している。
図１において、ＵＳＢ制御装置１は、ホストコンピュータＨＣと１つ又は複数の外部装置、すなわち図１では第１外部装置２及び第２外部装置３とをブリッジする制御装置である。
ＵＳＢ制御装置１は、所定の機能を有する第１外部装置２、所定の機能を有する第２外部装置３、ホストコンピュータＨＣと第１外部装置２及び第２外部装置３とをＵＳＢ接続を行うための制御ＬＳＩ４、並びに現在の第１外部装置２及び第２外部装置３の各状態等の情報があらかじめ設定された外部状態設定部５で構成されている。
【００１９】
また、制御ＬＳＩ４は、ＵＳＢ７を介してホストコンピュータＨＣと接続されホストコンピュータＨＣとのインタフェースをなすＵＳＢ制御部１１と、第１外部装置２に接続され第１外部装置２を制御する第１制御部１２と、第２外部装置３に接続され第２外部装置３を制御する第２制御部１３と、制御ＬＳＩ４内の各部を制御するＣＰＵ１４と、ＣＰＵ１４がプログラムを実行するときに中間データ等を蓄えておくためのワークＲＡＭ１５とを備えている。また、制御ＬＳＩ４は、ＣＰＵ１４を動作させるためのファームウェアが格納されるプログラムＲＡＭ１６と、ホストコンピュータＨＣとＵＳＢ７で接続されたときにファームウェアをプログラムＲＡＭ１６に格納するためのプログラム及びメインのファームウェアがプログラムＲＡＭ１６に格納されるまでの間のＵＳＢ制御部１１に対する動作を行うためのローダープログラムが格納されたＲＯＭ１７とを備えている。
【００２０】
更に、制御ＬＳＩ４は、外部状態設定部５に設定された現在の第１外部装置２及び第２外部装置３の各状態等の情報を読み出して格納する外部状態記憶部１８を備え、ＵＳＢ制御部１１、第１制御部１２、第２制御部１３、ＣＰＵ１４、ワークＲＡＭ１５、プログラムＲＡＭ１６、ＲＯＭ１７及び外部状態記憶部１８は、すべてＣＰＵバス１９で接続されている。なお、ＵＳＢ制御部１１、ＣＰＵ１４、ワークＲＡＭ１５及びＲＯＭ１７はダウンロード制御部をなし、プログラムＲＡＭ１６は内部記憶回路を、第１制御部１２及び第２制御部１３は制御部をそれぞれなす。
【００２１】
図２は、図１の外部状態設定部５及び外部状態記憶部１８の内部構成例を示した図である。
図２において、外部状態設定部５と外部状態記憶部１８は、Ｉ／ＯセルＩＯ１〜ＩＯ３を介して接続されている。外部状態設定部５は、プルアップ抵抗ＲＵ１〜ＲＵ３及びプルダウン抵抗ＲＤ１〜ＲＤ３で構成され、外部状態記憶部１８は、フリップフロップＳＷ１〜ＳＷ３及びスリーステートバッファＢＵ１〜ＢＵ３で構成されている。また、Ｉ／ＯセルＩＯ１は、制御ＬＳＩ４の入力端子ＩＮ１とバッファＢＵ１１で構成され、Ｉ／ＯセルＩＯ２は、制御ＬＳＩ４の入力端子ＩＮ２とバッファＢＵ１２で構成され、Ｉ／ＯセルＩＯ３は、制御ＬＳＩ４の入力端子ＩＮ３とバッファＢＵ１３で構成されている。
【００２２】
プルアップ抵抗ＲＵ１〜ＲＵ３は、対応する入力端子ＩＮ１〜ＩＮ３を電源電圧ＶＤＤにプルアップするための抵抗であり、プルダウン抵抗ＲＤ１〜ＲＤ３は、対応する入力端子ＩＮ１〜ＩＮ３を接地電圧にプルダウンするための抵抗である。入力端子ＩＮ１〜ＩＮ３には、プルアップ抵抗かプルダウン抵抗のいずれか１つが接続され、入力端子ＩＮ１〜ＩＮ３をプルアップするか又はプルダウンするかによって現在の第１外部装置２及び第２外部装置３の各状態等の情報が設定される。入力端子ＩＮ１〜ＩＮ３の２値のレベルは、バッファ１１〜１３を介して対応するフリップフロップＳＷ１〜ＳＷ３の各データ入力端に入力され、フリップフロップＳＷ１〜ＳＷ３の各クロック信号入力端にはシステムのリセット信号ＲＥＳＥＴが入力されている。
【００２３】
また、フリップフロップＳＷ１〜ＳＷ３の各出力端は、スリーステートバッファＢＵ１〜ＢＵ３を介してＣＰＵバス１９に接続されている。スリーステートバッファＢＵ１〜ＢＵ３の制御電極には、ＣＰＵ１４からの読み出し制御信号ＲＤ＃が入力されている。ＣＰＵ１４は、フリップフロップＳＷ１〜ＳＷ３に記憶された情報を読み出すときは、読み出し制御信号ＲＤ＃をアサートして、スリーステートバッファＢＵ１〜ＢＵ３に対して対応するフリップフロップＳＷ１〜ＳＷ３に記憶された情報を出力させる。また、ＣＰＵ１４は、フリップフロップＳＷ１〜ＳＷ３に記憶された情報の読み出しを行わないときは、読み出し制御信号ＲＤ＃をネゲートして、スリーステートバッファＢＵ１〜ＢＵ３の各出力端をそれぞれハイインピーダンス状態にする。
【００２４】
フリップフロップＳＷ１〜ＳＷ３は、入力端子ＩＮ１〜ＩＮ３に入力される信号レベルをシステムのリセットが解除されるときに記憶する。フリップフロップＳＷ１〜ＳＷ３に記憶された情報は、ＣＰＵバス１９を介してＣＰＵ１４によって読み出される。例えば、フリップフロップＳＷ１に記憶されるデータが、第２外部装置３が存在するか否かを示すビットである場合、第２外部装置３が存在するときはプルアップ抵抗ＲＵ１を接続すると共にプルダウン抵抗ＲＤ１を接続しないようにすることにより、フリップフロップＳＷ１の出力端がハイレベルになり第２外部装置３が存在することをＣＰＵ１４が認識することができる。また、第２外部装置３が存在しないときは、プルダウン抵抗ＲＤ１を接続すると共にプルアップ抵抗ＲＵ１を接続しないようにすることにより、フリップフロップＳＷ１の出力端がローレベルになり第２外部装置３が存在しないことをＣＰＵ１４が認識することができる。
【００２５】
この場合、フリップフロップＳＷ１〜ＳＷ３は、リセット解除時のＩ／ＯセルＩＯ１〜ＩＯ３の出力データを保持するだけで、Ｉ／ＯセルＩＯ１〜ＩＯ３は、リセット解除後はそれぞれ通常のＩ／Ｏセルとして使用される。ただし、入力端子ＩＮ１〜ＩＮ３が、通常使用時にプルアップ又はプルダウンしてもよい端子でなければならない。言うまでもなく、外部端子を増やしても問題がないシステムであれば、フリップフロップＳＷ１〜ＳＷ３を使用しなくても、ＣＰＵ１４がＣＰＵバス１９を介して直接Ｉ／ＯセルＩＯ１〜ＩＯ３の出力信号レベルを読み出せるようにすることにより、図２の場合と同様の効果を得ることができる。
【００２６】
図３は、図１の外部状態設定部５及び外部状態記憶部１８の他の内部構成例を示した図であり、図３では、外部状態設定部５にシリアルＲＯＭ（以下、ＳＲＯＭと呼ぶ）を使用した場合を例にして示している。
図３において、外部状態設定部５は、ＳＲＯＭ２５で構成され、外部状態記憶部１８は、ＳＲＯＭ制御部２６と、ＲＡＭで構成された記憶部２７とからなる。ＳＲＯＭ２５には、あらかじめ必要なデータが書き込まれており、ＳＲＯＭ制御部２６は、ＣＰＵ１４からの指令に基づいてＳＲＯＭ２５からデータを読み出して記憶部２７に格納する。記憶部２７はＣＰＵバス１９に接続されており、ＣＰＵ１４は、ＣＰＵバス１９を介して記憶部２７内のデータを読み出す。
【００２７】
通常、ＵＳＢ制御機器では、そのユーザ固有のＩＤを使用してＵＳＢのコンフィギュレーションを実施する。該ユーザ固有のＩＤは、通常、制御ＬＳＩ４の外付けに安価でサイズの小さいＳＲＯＭを設け、該ＳＲＯＭ内に固有のユーザＩＤを格納し、ＵＳＢのコンフィギュレーションを開始するまでにそのデータを読み出し、ＵＳＢのコンフィギュレーション時には前記ユーザＩＤを使用する。そこで、図２のフリップフロップＳＷ１〜ＳＷ３に記憶されたような情報を、図３に示すように「ＳＷ Ｄａｔａ」として他のデータと共にＳＲＯＭ内に格納し、それらの情報を制御することによって、ＣＰＵ１４が外部状態を認識できるようにする。
【００２８】
また、図３において、「ＳＷ Ｄａｔａ」は図２で示したフリップフロップＳＷ１〜ＳＷ３と同様の意味合いのデータであり、実際にはこれらの情報を基にして図１のローダープログラムがＵＳＢ初期応答のデータを変更してホストコンピュータＨＣに情報を知らせる。しかし、これでは、ローダープログラムに準備されたＵＳＢ初期応答データの組み合わせしか対応できないという問題がある。このため、図４に示すように、ＳＲＯＭ２５のデータ内に、複合デバイスであることを示す複合デバイス情報、第１外部装置２が接続されていることを示す第１外部装置情報、第２外部装置３が接続されていることを示す第２外部装置情報、及びプログラムＲＡＭ１６にファームウェアをダウンロードするためのローダー機能があることを示すローダー装置情報がＵＳＢ初期応答情報としてあらかじめ格納され、該各情報をＳＲＯＭ２５から読み出して外部状態記憶部１８の記憶部２７にＵＳＢ初期応答データとして記憶させるようにする。記憶部２７に記憶されたＵＳＢ初期応答データを用いてＵＳＢ初期応答を実施することによって、より自由度の高いＵＳＢ初期応答を行うことができる。
【００２９】
このような構成において、図５は、図１のＵＳＢ制御装置１がホストコンピュータＨＣに接続されるたびに行われるＵＳＢ制御装置１の動作例を示したフローチャートであり、図５を用いて、ホストコンピュータＨＣからメインファームウェアがプログラムＲＡＭ１６に格納される動作について説明する。
図５において、ステップＳ９及びＳ１３以外は、ＲＯＭ１７に格納されたローダープログラムを実行するＣＰＵ１４の動作を示している。ステップＳ１で、ホストコンピュータＨＣとＵＳＢ制御部１１がＵＳＢ７で接続されると、ＣＰＵ１４は、ＲＯＭ１７に内蔵されているローダープログラムを実行し、外部状態記憶部１８から、現在の外部装置の構成や該外部装置の種類等の初期コンフィグレーション情報に必要な情報を読み出す。
【００３０】
次に、ステップＳ２で、ＣＰＵ１４は、ＵＳＢ制御部１１及びＵＳＢ７を介してＵＳＢ機器が接続されたことをホストコンピュータＨＣに知らせ、ホストコンピュータＨＣは、ＵＳＢ機器が接続されたことを認識すると、該ＵＳＢ機器が何であるかを知るためにＵＳＢのコンフィギュレーションを実施する。次に、ステップＳ３で、ＣＰＵ１４は、ホストコンピュータＨＣからのＵＳＢコンフィギュレーションの情報要求に対して、外部状態記憶部から得られた現在の外部機器構成等に即して応答するＵＳＢ初期応答を実施する。
【００３１】
ここで、図６は、図１のＵＳＢ制御装置１におけるＵＳＢ初期応答例を示した図である。図６では、ＣＰＵ１４は、ホストコンピュータＨＣに対して、最初に複合デバイスであることを示す複合デバイス情報、次に第１外部装置２が接続されていることを示す第１外部装置情報、次に第２外部装置３が接続されていることを示す第２外部装置情報、最後にプログラムＲＡＭ１６にファームウェアをダウンロードするためのローダー機能があることを示すローダー装置情報のコンフィギュレーション応答を返す。これによって、ホストコンピュータＨＣは、第１外部装置２、第２外部装置３、及びローダー装置の各ドライバソフトウェア読み込んで実行し、ローダー装置のドライバソフトウェアが、そのソフトウェア内部に存在する制御ＬＳＩ４内にダウンロードすべきメインファームウェアを、ＵＳＢ７を経由して制御ＬＳＩ４に送信する。
【００３２】
図５において、ステップＳ４で、ＣＰＵ１４は、ホストコンピュータＨＣ、すなわちローダードライバから送信されたメインファームウェア情報をプログラムＲＡＭ１６に格納し、該格納が終了したか否かの判断を実施する。例えば、ＣＰＵ１４は、該格納が終了したか否かのロード終了判断が、最初のデータにこれから何バイトのデータがメインファームウェアとして格納するつもりであるかを示す情報とし、該情報分だけ、プログラムＲＡＭ１６に書き込んだときにロードが終了したと判断する。そして、ＣＰＵ１４は、メインファームウェアのロードを完了したときには図示しないロード完了レジスタをセットする。
【００３３】
また、ＣＰＵ１４は、ステップＳ３の処理を行った後、ステップＳ６で第１制御部１２のローダープログラムを実行すると共にステップＳ１０で第２制御部１３のローダープログラムを実行する。そして、ホストコンピュータＨＣにおいても、ＵＳＢのコンフィギュレーションによって第１外部装置２及び第２外部装置３のドライバソフトウェアを動作させ、ＵＳＢ７を経由してデータ転送要求がＵＳＢ制御装置１に送信される場合がある。この場合、ステップＳ７及びステップＳ１１で、ＣＰＵ１４は、応答要求ＷＡＩＴ操作を実行する。具体的には、ＣＰＵ１４は、メインファームウェアがロード終了していないと第１外部装置２及び第２外部装置３を正常に動作させることができないため、ホストコンピュータＨＣから送信されたデータ転送要求に対しては、データ転送の準備ができていないことを示すＮＡＫパケットを返して、ホストコンピュータＨＣにデータ転送を待たすことができる。
【００３４】
次に、第１制御部１２及び第２制御部１３のローダープログラムにあるファームウェアは、ステップＳ８及びステップＳ１２で、前記ロード完了レジスタがセットされたか否かを調べ、該ロード完了レジスタがセットされると（ＹＥＳ）、ステップＳ９及びステップＳ１３で、第１外部装置２及び第２外部装置３を制御するメインのファームウェアがプログラムＲＡＭ１６に格納されたと判断して、プログラムＲＡＭ１６の第１制御部１２及び第２制御部１３に対するファームウェアをそれぞれ実行する。したがって、これ以降はホストコンピュータＨＣの第１外部装置２及び第２外部装置３を制御するドライバソフトウェアからデータ転送要求が送信されても正常にＵＳＢ動作を実施することができる。
【００３５】
なお、前記説明では、外部状態設定部５から３ビットのデータが出力される場合を例にして説明したが、本発明はこれに限定されるものではなく、接続される外部装置の各状態に応じて外部状態設定部５から１ビットのデータ又は複数ビットのデータが出力されるようにすればよい。
【００３６】
このように、本第１の実施の形態における制御プログラムダウンロード装置をなすＵＳＢ制御装置は、ホストコンピュータＨＣから制御ＬＳＩ４内部のプログラムＲＡＭ１６にファームウェアをダウンロードするようにしたことから、ファームウェアを格納する外付けのＲＯＭが不要になり、システムコストを低減させることができ、外付けのＲＯＭの実装スペースが不要になることから省スペース化を図ることができる。また、ＵＳＢ等の再接続なしにファームウェアのダウンロードを行うことができるため、容易にファームウェアの内容を変更することができ制御ＬＳＩの汎用性を高めることができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の第１の実施の形態における制御プログラムダウンロード装置の構成例を示した図である。
【図２】図１の外部状態設定部５及び外部状態記憶部１８の内部構成例を示した図である。
【図３】図１の外部状態設定部５及び外部状態記憶部１８の他の内部構成例を示した図である。
【図４】図３の外部状態記憶部１８の他の内部構成例を示した図である。
【図５】図１のＵＳＢ制御装置１の動作例を示したフローチャートである。
【図６】図１のＵＳＢ制御装置１におけるＵＳＢ初期応答例を示した図である。
【図７】従来のＵＳＢ制御装置の例を示した図である。
【符号の説明】
【００３８】
１  ＵＳＢ制御装置
２  第１外部装置
３  第２外部装置
４  制御ＬＳＩ
５  外部状態設定部
７  ＵＳＢ
１１  ＵＳＢ制御部
１２  第１制御部
１３  第２制御部
１４  ＣＰＵ
１５  ワークＲＡＭ
１６  プログラムＲＡＭ
１７  ＲＯＭ
１８  外部状態記憶部
１９  ＣＰＵバス
２５  ＳＲＯＭ
２６  ＳＲＯＭ制御部
２７  記憶部
ＨＣ  ホストコンピュータ
ＲＵ１〜ＲＵ３  プルアップ抵抗
ＲＤ１〜ＲＤ３  プルダウン抵抗
ＩＯ１〜ＩＯ３  Ｉ／Ｏセル
ＳＷ１〜ＳＷ３  フリップフロップ
ＢＵ１〜ＢＵ３  スリーステートバッファ
ＢＵ１１〜ＢＵ１３  バッファ
【図１】
2006190132.tif 000003
【図２】
2006190132.tif 000004
【図３】
2006190132.tif 000005
【図４】
2006190132.tif 000006
【図５】
2006190132.tif 000007
【図６】
2006190132.tif 000008
【図７】
2006190132.tif 000009