(57)【要約】      （修正有）【課題】ＵＳＢのパイプの空き具合とソフトウェアの制御の優先度とに基づいて、最適なデータ転送速度を自動で設定することで、複数接続された外部装置との通信の待ち状態を軽減し、このとき十分な電力供給も行う。【解決手段】エンジン・メカコン部４０のカーネル４３において、アプリケーションやサービス・ミドルウェア等のソフトウェアが実行する制御における優先度を判断し、ドライバ層４２によってＵＳＢ３.０と２.０のパイプの設定及び切り換えの制御を行う。エンジン・メカコン部４０では、パイプが全て使用中で、実行しようとうする外部装置３の制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに、待機状態の制御なかから、優先度の高いものを空きが生じたパイプに割り当てる。また、優先度の高い通信を行う外部装置３に対してバスパワーによる電力供給を行う。【選択図】図２
2013149180.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢに対応したデータ通信が可能なインタフェースにより外部装置と接続する接続部と、前記外部装置を対象とした制御を行うソフトウェアの機能を実行する制御部とを有し、該制御部は、前記ソフトウェアの機能を実行するときに、制御対象とする前記外部装置との間で、ＵＳＢに基づくデータ通信を行う制御装置であって、
前記制御部は、外部装置とのデータ通信を行う際に、前記ソフトウェアが実行しようとする制御の優先度に基づいて、優先度の高い制御については、ＵＳＢ３.０に対応したパイプを優先的に割り当ててデータ通信を行うことを行うことを特徴とする制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記制御装置に複数の外部装置が接続されているとき、
前記制御部は、前記パイプが全て使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに、前記待機状態の制御のなかから、前記優先度の高い制御を、前記空きが生じたパイプに割り当てることを特徴とする制御装置。
【請求項３】
請求項２に記載の制御装置において、
前記制御部は、前記パイプが使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、
前記ＵＳＢ３.０に対応したパイプに空きが生じたときに、予め取得した前記外部装置の機器情報に基づいて、前記待機状態の制御の制御対象となっている外部装置がＵＳＢ３.０に対応しているか否かを判別し、前記制御対象となっている外部装置がＵＳＢ３.０に対応している場合には、前記待機状態の制御のなかから、前記優先度の高い制御を、前記空きが生じたＵＳＢ３.０に対応したパイプに割り当てることを特徴とする制御装置。
【請求項４】
請求項３に記載の制御装置において、
前記制御装置は、ＵＳＢ３.０に対応したパイプ、及びＵＳＢ２.０に対応したパイプに空きがあり、前記ソフトウェアが実行しようとする制御が複数あって、該複数の制御の制御対象となっているそれぞれの外部装置がＵＳＢ３.０に対応している場合、
前記優先度の高い制御を順にＵＳＢ３.０に対応したパイプに割り当て、ＵＳＢ３.０に対応したパイプが全て使用された状態でさらに、ソフトウェアが実行しようとする制御が残っている場合、該残っている制御をＵＳＢ２.０に対応したパイプに割り当てることを特徴とする制御装置。
【請求項５】
請求項４に記載の制御装置において、
前記制御装置は、前記ＵＳＢ３.０に対応した外部装置に対して、ＵＳＢ２.０に対応したパイプを割り当ててデータ通信を行っているとき、ＵＳＢ３.０に対応したパイプに空き生じた場合、ＵＳＢ２.０に対応したパイプからＵＳＢ３.０に対応したパイプに切り換えてデータ通信を行うことを特徴とする制御装置。
【請求項６】
請求項２〜５のいずれか１に記載の制御装置において、
前記パイプが全て使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに直ちにデータ通信を開始できるように、データの送受信に使用するメモリバッファとは別に、待機状態となっている制御に使用する通信データを保持する待機用のバッファを備えることを特徴とする制御装置。
【請求項７】
請求項１〜６のいずれか１に記載の制御装置において、
前記制御部は、前記外部装置とのデータ通信の処理中に、前記優先度に基づいて、前記データ通信を行う前記外部装置に対して電力を供給することを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、より詳細には、ＵＳＢ（Universal Serial Bus）３.０に対応したインタフェースにより接続された外部装置を制御する制御装置に関する。
【背景技術】
【０００２】
近年、ＵＳＢインタフェースを使用して、ホスト装置に対してさまざまなデバイスを外部装置として接続し、ホスト装置と外部装置との間で双方向のデータ通信を行ってデバイスを制御するとともに、ホスト装置から外部装置への電力供給によるパワーマネジメントが行なわれている。
【０００３】
ＵＳＢ２.０の規格仕様においては、ある種のＰ２Ｐによる双方向通信を行うものとして、送信と受信で１本ずつのデータ通信路がサポートされている。従ってＵＳＢ２.０では、論理的な通信線としてパイプを設定したとき、ホスト側から送信パイプを使用してデータを送信している際に、受信パイプでデータを取得する、と言った処理は可能であるが、受信パイプを同時処理で使用する際には、時分割処理などの細工をする必要がある。また、受信パイプを使用してデータを受信しているときに、送信パイプでデータを送信する場合にも同じことが言える。
【０００４】
ＵＳＢ２.０までの規格では、複数の処理、例えば複数のタスクや複数のプロセスに係るデータの送受信通信をＵＳＢによる送受信パイプを使用して処理させるのは不向きである。ここで例えば、ＵＳＢハブシステムの組み込みなどによる細工を施すことでＵＳＢ１.１とＵＳＢ２.０とを独立させてデータ通信させることは可能であるが、この場合は、転送スピードが低下してしまうため実用的ではない。
【０００５】
また、ＵＳＢ２.０では、規格にバスパワー、つまりホストバスアダプタからの電源供給を規定しているが、ＵＳＢ２.０で規定されているバスパワーは、最大電流がローパワーデバイスで１００ｍＡ、ハイパワーデバイスで５００ｍＡである。このレベルのバスパワーの場合、ホスト装置側から外部装置に電源供給を行っても、結果的に電力が不足し、外部装置に外部電源を接続して不足した電力を賄いながら通信を行うケースが多い。
【０００６】
これに対してＵＳＢ２.０の後方互換性を有するＵＳＢ３.０が規格化されている。ＵＳＢ２.０では、２本のデータ通信路により、ＵＳＢ１.１のロースピード（１.５Ｍｂｐｓ）、及びフルスピード（１２Ｍｂｐｓ）の通信モードに加えて、ハイスピード（４８０Ｍｂｐｓ）の高速通信モードが追加されている。ＵＳＢ３.０では、さらに送信用信号線１ペアと受信用信号線１ペアによる４本のデータ通信路が追加され、最大４.８Ｇｂｐｓのスーパースピードの通信モードをサポートし、これによりＵＳＢ２.０の１０倍の通信速度が得られる。
【０００７】
また、ＵＳＢ３.０では、規格上のバスパワーとして最大電流が９００ｍＡまで引き上げられていることから、パワーマネジメントできるデバイスの数も増やすことができ、複数のデバイスに対するホスト装置からの電力供給が期待される背景がある。
【０００８】
ＵＳＢ規格に基づくインタフェースを用いた通信制御の技術に関して、例えば特許文献１には、双方向電気的連接が可能なソケット構造が開示されている。このソケット構造により、コネクタは正方向、反対方向の双方向共に挿入して電気的連接が可能であるため使用が簡便である双方向電気的連接が可能なソケット構造を提供するとされている。
【０００９】
また、特許文献２には、ＵＳＢバージョン３.０に対応したハブ（Ｈｕｂ）装置の内部の接続状態を変更可能なタイミングを通知するためのＵＳＢハブ装置が開示されている。このＵＳＢハブ装置は、ＵＳＢ３.０に対応し、複数のアップストリームポートと、複数のダウンストリームポートと、コントローラと、通知する回路とを具備するＵＳＢハブ装置である。コントローラは、複数のアップストリームポートと、複数のダウンストリームポートとの論理的な接続状態を制御すると共に、論理的な接続状態を外部から与えられるポート選択信号によって変更する。
【００１０】
また、特許文献３には、反流によるクロストークを防止することができる、信号干渉の遮断を可能とするためのコネクタが開示されている。このコネクタは、２対の信号伝達端子の間にカバー部材の溝を形成することにより、その２対の信号伝達端子のカバー部材における反流によるクロストークを防止することができるものとされている。
【００１１】
また、特許文献４には、ＵＳＢ３.０のスーパースピード・データ通信に対応する高速な転送速度を達成するためのシリアルバスデバイスが開示されている。このシリアルバスデバイスには、処理装置及び処理装置に結合された差分クロック補償装置が含まれる。処理装置はパケットを生成する。差分クロック補償装置は、リンク・パートナーに対する差分クロックを補償するために、パケットのタイプに従ってパケットより前に少なくとも１つのスキップ順序集合をリンク・パートナーに送信するか否かを判定する。これにより、データ・パケットが受信側のリンク・パートナーに送信されるときのデータオーバーフローまたはデータアンダーフローを防止することができ、また、送信側のリンク・パートナーと受信側のリンク・パートナーとの差分クロックが補償されることによって、２つのリンク・パートナー間の伝送効率が上がるとされている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−２５１３１９号公報
【特許文献２】特開２０１０−１６０６８１号公報
【特許文献３】特開２０１０−２５７９２６号公報
【特許文献４】特開２０１１−１３８４７２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＵＳＢ２.０に基づく通信規格では、送信受信のパイプは、Ｄ＋とＤ−の２本の信号線にしか対応していないため、ホスト装置が複数の外部装置とＵＳＢによる通信を行いたい場合、ホスト装置で使用しているタスクやプロセスがＵＳＢのパイプを解放しない限り、待機状態となって通信ができない状態になるため、最適なデータ転送速度で通信を行うことができない、という課題があった。
【００１４】
また、上記のように、ＵＳＢ２.０で規定されているバスパワーの場合、ホスト装置側から外部装置に電源供給を行っても、結果的に電力が不足して外部装置に外部電源を接続して不足した電力を賄いながら通信を行うケースが多い。十分なバスパワーによって通信と同時に電力供給を行うことが求められる。
【００１５】
特許文献１の発明は、ＵＳＢ３.０の仕組みで双方向の通信を連続的に行い続けるためのソケットを確立したものであり、複数の通信を同時に行うようにしたものではない。また、特許文献２では、ＵＳＢ３.０のハブ装置の仕組みで、ＵＳＢ２.０のハイスピードと、ＵＳＢ３.０のスーパースピードの送受信パイプの切り替えを通知するものにすぎない。また、特許文献３の発明は、ハード的にＵＳＢ２.０とＵＳＢ３.０の信号干渉を遮断するコネクタを開示するものにすぎない。さらに特許文献４のシリアルバスデバイスは、ＵＳＢ３.０に対応していない機器との通信に対して、調停をしてＵＳＢ３.０の通信に必要なパケットフレームを付加して、スーパースピードでの通信に対応することが主の効果となるものである。これら先行技術には、複数の外部装置と通信を行うときの優先度を考慮して最適な通信制御を行うことについては記載されていない。
【００１６】
本発明は、上述のごとき実情に鑑みてなされたもので、接続された外部装置との間でＵＳＢ規格に基づくインタフェースでデータの通信を行う際に、パイプの空き具合とソフトウェアの制御の優先度とに基づいて、最適なデータ転送速度を自動で設定することで、複数接続された外部装置との通信の待ち状態を軽減し、このとき十分な電力供給も行うことで、通信の性能向上を実現する制御装置を提供することを目的とするものである。
【課題を解決するための手段】
【００１７】
上記課題を解決するために、本発明の第１の技術手段は、ＵＳＢに対応したデータ通信が可能なインタフェースにより外部装置と接続する接続部と、前記外部装置を対象とした制御を行うソフトウェアの機能を実行する制御部とを有し、該制御部は、前記ソフトウェアの機能を実行するときに、制御対象とする前記外部装置との間で、ＵＳＢに基づくデータ通信を行う制御装置であって、前記制御部は、外部装置とのデータ通信を行う際に、前記ソフトウェアが実行しようとする制御の優先度に基づいて、優先度の高い制御については、ＵＳＢ３.０に対応したパイプを優先的に割り当ててデータ通信を行うことを行うことを特徴としたものである。
【００１８】
第２の技術手段は、第１の技術手段において、前記制御装置に複数の外部装置が接続されているとき、前記制御部が、前記パイプが全て使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに、前記待機状態の制御のなかから、前記優先度の高い制御を、前記空きが生じたパイプに割り当てることを特徴としたものである。
【００１９】
第３の技術手段は、第２の技術手段において、前記制御部が、前記パイプが使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、
前記ＵＳＢ３.０に対応したパイプに空きが生じたときに、予め取得した前記外部装置の機器情報に基づいて、前記待機状態の制御の制御対象となっている外部装置がＵＳＢ３.０に対応しているか否かを判別し、前記制御対象となっている外部装置がＵＳＢ３.０に対応している場合には、前記待機状態の制御のなかから、前記優先度の高い制御を、前記空きが生じたＵＳＢ３.０に対応したパイプに割り当てることを特徴としたものである。
【００２０】
第４の技術手段は、第３の技術手段において、前記制御装置が、ＵＳＢ３.０に対応したパイプ、及びＵＳＢ２.０に対応したパイプに空きがあり、前記ソフトウェアが実行しようとする制御が複数あって、該複数の制御の制御対象となっているそれぞれの外部装置がＵＳＢ３.０に対応している場合、前記優先度の高い制御を順にＵＳＢ３.０に対応したパイプに割り当て、ＵＳＢ３.０に対応したパイプが全て使用された状態でさらに、ソフトウェアが実行しようとする制御が残っている場合、該残っている制御をＵＳＢ２.０に対応したパイプに割り当てることを特徴としたものである。
【００２１】
第５の技術手段は、第４の技術手段において、前記制御装置が、前記ＵＳＢ３.０に対応した外部装置に対して、ＵＳＢ２.０に対応したパイプを割り当ててデータ通信を行っているとき、ＵＳＢ３.０に対応したパイプに空き生じた場合、ＵＳＢ２.０に対応したパイプからＵＳＢ３.０に対応したパイプに切り換えてデータ通信を行うことを特徴としたものである。
【００２２】
第６の技術手段は、第２〜第５のいずれか１の技術手段において、前記パイプが全て使用中で、前記ソフトウェアが実行しようとうする外部装置の制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに直ちにデータ通信を開始できるように、データの送受信に使用するメモリバッファとは別に、待機状態となっている制御に使用する通信データを保持する待機用のバッファを備えることを特徴としたものである。
【００２３】
第７の技術手段は、第１〜第６のいずれか１の技術手段において、前記制御部が、前記外部装置とのデータ通信の処理中に、前記優先度に基づいて、前記データ通信を行う前記外部装置に対して電力を供給することを特徴としたものである。
【発明の効果】
【００２４】
本発明によれば、接続された外部装置との間でＵＳＢ規格に基づくインタフェースでデータの通信を行う際に、パイプの空き具合とソフトウェアの制御の優先度とに基づいて、最適なデータ転送速度を自動で設定することで、複数接続された外部装置との通信の待ち状態を軽減し、このとき十分な電力供給も行うことで、通信の性能向上を実現する制御装置を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本発明による制御装置を適用したシステムの一例を示す図である。
【図２】本発明の制御装置の要部のハードウェアとソフトウェアのアーキテクチャの構成例を説明する図である。
【図３】本発明に係る制御装置における処理の一例を説明するためのフローチャートである。
【図４】本発明に係る制御装置における処理の一例を説明するためのフローチャートで、図３に続く図である。
【発明を実施するための形態】
【００２６】
図１は、本発明による制御装置を適用したシステムの一例を示す図で、記録紙等に画像データを画像形成（印刷）する画像形成装置に本発明を適用したときのシステム構成例を示すものである。
ＰＣ（Personal Computer）２は、画像形成装置１に対して印刷要求を行なう装置であり、ユーザ操作等に従ってプリンタドライバ４が画像データと制御コマンドを含む印刷データを生成して画像形成装置１に送信する。
【００２７】
画像形成装置１は、コントローラ部１０及び印刷実行部２０を備える。コントローラ部１０は、ＰＣ２からの印刷要求を受けて印刷実行部２０に印刷指示を出す処理等、画像形成装置全体の主制御を行う。また、コントローラ部１０は、ＰＣ２とのＩ／Ｆ１１、ＣＰＵ１２、ＲＡＭやＲＯＭ等のメモリ１３、及び印刷実行部２０との通信を行うためのＵＳＢ  Ｉ／Ｆ１４を備える。ＵＳＢ  Ｉ／Ｆ１４は、コントローラ部１０と印刷実行部２０との間でＵＳＢに対応した通信モードで通信を行うためのＩ／Ｆである。
【００２８】
Ｉ／Ｆ１１は、ＰＣ２から送信される印刷データを受信する部分である。印刷データは、この他、図示しない原稿画像読み取り装置（スキャナ部）から読み取った画像や、可搬型記録媒体から読み取った画像に基づいて生成することができる。
ＣＰＵ１２は、印刷データに含まれる画像データに所定の画像処理を施してビットマップデータを生成し、印刷データに含まれる制御コマンドを解釈して印刷実行部２０に対して適切な印刷処理を指示する。
メモリ１３は、ＣＰＵ１２が実行するアプリケーションやサービス・ミドルウェア等のソフトウェアを記録するＲＯＭや、印刷データや各処理後の画像データ等を一時的に格納するＲＡＭ等からなる。
【００２９】
印刷実行部２０は、印刷エンジンに相当するもので、ＣＰＵ２１、コントローラ部１０との通信インタフェースを構成するＵＳＢ  Ｉ／Ｆ２２、ＲＯＭやＲＡＭ等のメモリ２３、及び外部接続される各種の外部装置との間で、ＵＳＢに基づく通信を行うＵＳＢ  Ｉ／Ｆ２４を有している。
印刷実行部２０は、印刷機構とメカコントローラの機能を有し、印刷機構は、図示しない感光体ドラムや帯電ユニット、露光ユニット、現像装置、転写ユニット等を有し、メカコントローラの制御によって記録紙に画像データの画像形成を行う。
【００３０】
画像形成装置１には、複数の外部装置３が接続可能である。外部装置３としては、例えば画像形成装置で画像形成した記録紙に対して、端とじステープル、中とじ、パンチ穴開けなどの加工処理を行うフィニッシャや、画像形成装置１の画像形成処理に課金を行うためのコインラック等が適用される。
そして外部装置３と印刷実行部２０のＵＳＢ  Ｉ／Ｆ２４とが、ＵＳＢに対応したデータ通信路で接続される。ＵＳＢ  Ｉ／Ｆ２４は、ＵＳＢデバイスである外部装置３を複数のポートで同時に接続し、ＣＰＵ２１がＵＳＢ規格に基づくＨｕｂ（ハブ）制御を行って、各外部装置３とデータ通信を行う。これにより、画像形成装置１は、ＵＳＢのホストとして機能し、Ｈｕｂデバイスである外部装置３を個々に制御することができる。また、ＵＳＢ  Ｉ／Ｆ２４のポートからは、外部装置３に対して電源供給が行われる。
【００３１】
本発明に係る制御装置は、ＵＳＢに対応したデータ通信が可能なインタフェースにより外部装置と接続する接続部と、外部装置を対象とした制御を行うソフトウェアの機能を実行する制御部とを有し、制御部がソフトウェアの機能を実行するときに、制御対象とする外部装置との間で、ＵＳＢに基づくデータ通信を行うものである。
画像形成装置１に適用された制御装置は、ＵＳＢ  Ｉ／Ｆ２４により外部装置３との接続部が構成され、コントローラ部１０及び印刷実行部２０により、外部装置を対象とした制御を行う制御部が構成される。ここでコントローラ部１０及び印刷実行部２０でアップリケーションやサービス・ミドルウェア等のソフトウェアの機能が実行され、ソフトウェアが実行するタスク、プロセス、スレッド等が特定の外部装置３を制御するときに、画像形成装置１のＨｕｂ制御によって、対象の外部装置３との間でデータ通信を実行する。
【００３２】
図２は、本発明の制御装置の要部のハードウェアとソフトウェアのアーキテクチャの構成例を説明する図である。本例の制御装置は、コントローラ部３０とエンジン・メカコン（メカコントローラ）部４０とを有している。コントローラ部３０は、図１の構成のコントローラ部１０に相当し、エンジン・メカコン部４０は、図１の構成の印刷実行部２０に相当する。
【００３３】
コントローラ部３０のアーキテクチャは、各種アプリケーション及びサービス・ミドルウェアによるアプリ／サービス・ミドルウェア層３１と、システムソフトウェアであるデバイスドライバによるドライバ層３２と、ＣＰＵ及びＣＰＵ等のハードウェアとソフトウェアコンポーネントとのやりとりを管理するカーネル３３とからなっている。
ドライバ層３２は、ＵＳＢ３.０に対応したドライバを有し、ＵＳＢ３.０とＵＳＢ２.０に対応した通信制御や、ＵＳＢ３.０によるパワーマネジメントを行う機能を有する。
【００３４】
また、エンジン・メカコン部４０のアーキテクチャも同様に、各種アプリケーション及びサービス・ミドルウェアによるアプリ／サービス・ミドルウェア層４１と、システムソフトウェアであるデバイスドライバによるドライバ層４２と、ＣＰＵ及びＣＰＵ等のハードウェアとソフトウェアコンポーネントとのやりとりを管理するカーネル４３とからなっている。
【００３５】
エンジン・メカコン部４０のアプリ／サービス・ミドルウェア層４１は、例えば、接続される外部装置３の機能に合わせて、外部装置３のモータ制御、各種のプロセス制御、フィニッシャ／オプション制御、カラー制御等の特定の外部装置を制御対象とした各種のタスクやプロセス、スレッド等を実行する。
また、ドライバ層４２は、ＵＳＢ３.０に対応したドライバを有し、ＵＳＢ３.０とＵＳＢ２.０に対応した通信制御や、ＵＳＢ３.０のＨｕｂシステム制御、及びＵＳＢ３.０によるパワーマネジメントを行う機能を有する。
【００３６】
コントローラ部３０と、エンジン・メカコン部４０とは、ＵＳＢに対応したデータ通信路６１によって接続される。また、エンジン・メカコン部４０は、複数の外部装置３との間でＵＳＢに対応したデータ通信路７１によって接続される。これらは、ＵＳＢに対応した物理的な通信線によって構成される。物理的な通信線により、コントローラ部３０からエンジン・メカコン部４０に電力供給６２がなされ、エンジン・メカコン部４０から外部装置３に電力供給７２がなされる。この場合、エンジン・メカコン部４０が直接電源から電力を得ている場合には、その電力を外部装置３に供給することができる。
【００３７】
外部装置３の接続は、ＵＳＢケーブル等の物理的な通信線が接続されたときに、エンジン・メカコン部４０のドライバ層４２が、プラグアンドプレイによって認識する。これにより、システムレベル及びアプリケーションレベルの通信において、アプリケーションやデバイスドライバ等のソフトウェアが通信するためのパイプが設定される。
【００３８】
コントローラ部３０のアプリケーションやサービス・ミドルウェア、あるいはエンジン・メカコン部４０のアプリケーションやサービス・ミドルウェアで特定の外部装置３を対象とするタスクやプロセス、スレッド等が実行された際に、ＵＳＢに対応したデータ通信路により外部装置３とのデータ通信が行われ、外部装置３が制御される。このとき、エンジン・メカコン部４０のドライバ層４２によるＵＳＢのＨｕｂ制御により、特定の外部装置３との間のデータ通信路にパイプが設定され、データ通信が行われる。
【００３９】
ＵＳＢ３.０では、２本のデータ通信路を用いたＵＳＢ２.０によるハイスピード（４８０Ｍｂｐｓ）の高速通信モードに加えて、さらに付加された４本のデータ通信路によるスーパースピード（４.８Ｇｂｐｓ）の高速通信モードが実行可能である。データ通信は、ＩＮとＯＵＴの２本のデータ信号線を用いて行われるため、時分割転送等の細工をしない限り、基本的にはハイスピードで１本、スーパースピードで２本の論理接続によるパイプが設定される。
【００４０】
ＵＳＢにおける論理的な通信は、エンドポイントとパイプの概念で表される。例えば、エンジン・メカコン部４０と外部装置３とのＵＳＢに基づく通信の場合、ＵＳＢデバイスである外部装置３側には、エンドポイントとしてＦＩＦＯ（First In First Out）バッファが用意され、これが通信のための実体となる。同様に、ホストであるエンジン・メカコン部４０側にもバッファが用意され、両者のバッファ同士がパイプで接続されてデータを送受信する。
【００４１】
エンジン・メカコン部４０では、Ｈｕｂ制御によってそれぞれの外部装置３との間でパイプを設定する。このとき特定の外部装置３との間でパイプが設定されてデータ通信を行う場合、ＵＳＢ３.０で使用できる２本のスーパースピードのパイプと、１本のハイスピードのパイプのいずれかを使用する。そして、パイプが使用されているときは、排他制御により、他の通信は待機状態となり、パイプが空くのを待つことになる。
【００４２】
本発明に係る制御装置の特徴として、エンジン・メカコン部４０のカーネル４３において、アプリケーションやサービス・ミドルウェアが実行するタスクやプロセス、スレッド等のその時点における優先度を判断し、エンジン・メカコン部４０のドライバ層４２によってＵＳＢ３.０と２.０のパイプの設定及び切り換えの制御を行う。
【００４３】
基本的には、エンジン・メカコン部４０では、アプリケーションやサービス・ミドルウェアが実行するタスクやプロセス、スレッド等の優先度に従って通信を行う外部装置と、使用するパイプを決定する。ここでは、パイプが全て使用中で、アプリケーションやサービス・ミドルウェアが実行しようとする制御が待機状態となっている場合、いずれかのパイプに空きが生じたときに、待機状態の制御のなかから、優先度の高いものを、空きが生じたパイプに割り当てる。
【００４４】
例えばエンジン・メカコン部４０では、ＵＳＢ３.０に対応したスーパースピードのパイプに空きが生じたときに、予め取得した外部装置の機器情報に基づいて、待機状態のタスクやプロセス、スレッド等によって制御対象となっている外部装置が、ＵＳＢ３.０に対応しているかを判別する。そしてその外部装置がＵＳＢ３.０に対応している場合には、待機状態のタスクやプロセス、スレッド等のなかから、優先度の高いものを空きが生じたスーパースピードのパイプに割り当てる。
【００４５】
また、エンジン・メカコン部４０では、ＵＳＢ３.０に対応したスーパースピードのパイプ、及びＵＳＢ２.０に対応したハイスピードのパイプに空きがあり、待機状態のタスクやプロセス、スレッド等の制御が複数あって、それらの制御対象となっている外部装置のそれぞれがＵＳＢ３.０に対応している場合、優先度の高い制御を順にスーパースピードのパイプに割り当てる。そして、スーパースピードのパイプが全て使用された状態でさらに、待機状態の制御が残っている場合、その制御をハイスピードのパイプに割り当てる。
【００４６】
また、エンジン・メカコン部４０では、ＵＳＢ３.０に対応した外部装置に対して、ハイスピードのパイプを割り当ててデータ通信を行っているとき、スーパースピードのパイプに空き生じた場合、ハイスピードのパイプからスーパースピードに対応したパイプに切り換えてデータ通信を行うようにすることができる。
【００４７】
このように、本発明に係る制御装置は、そのシステム上で動作するアプリケーションやサービス・ミドルウェアなどのソフトウェアの機能によってタスクやプロセス、スレッド等の制御が実行されるときに、ドライバによってパイプの状態を監視して、ソフトウェアが制御の対象としている外部装置に対して、その制御の優先度に応じた最善の通信速度でデータ通信を行うことができるようにする。
【００４８】
従来のＵＳＢ２.０に対応したデータ通信路では、２本のデータ通信路しかなくハイスピードの通信速度にしか対応していないため、通信の待機状態が大量に発生すると考えられる。これに対してＵＳＢ３.０では、バックグランドで数本のパイプを使用していても、空いているパイプで通信を行うことでき、待機状態となるタスクやプロセス、スレッド等を低減させることができる。そしてこのときに、タスクやプロセス、スレッド等の制御の優先度に基づいてパイプを割り当てることで、優先度に応じた最適な通信処理を行うことができるようになる。
【００４９】
また、制御装置のエンジン・メカコン部４０は、外部装置３とのデータ通信の処理中に、そのデータ通信を行う外部装置３に対してバスパワーを供給することができる。上記のようにＵＳＢ３.０では、規格上の最大電流９００ｍＡのバスパワーを供給できる。この場合、エンジン・メカコン部４０は、アプリケーションやサービス・ミドルウェアによるタスクやプロセス、スレッド等の優先度に従って、電力供給を割り当てるようにすることができる。
【００５０】
つまり、エンジン・メカコン部４０は、実行すべきタスクやプロセス、スレッド等の優先度に従って、パイプを割り当てて通信を行うが、このときに優先度が高くパイプを割り当てて通信を行う外部装置３に対して、優先的に電力供給を行うようにすることができる。このときタスクやプロセス、スレッド等の制御の優先度に従って、所定の配分条件に従ってパスパワーを配分して供給してもよい。
【００５１】
また、制御装置では、外部装置３とのデータ通信が終了してパイプに空きが生じるまでは、他の制御によるデータ通信は排他制御によって待機状態になる。従って、本発明に係る実施形態では、パイプが全て使用中で、アプリケーションやサービス・ミドルウェアなどのソフトウェアが実行しようとうする外部装置３の制御が待機状態となっている場合、データの送受信に使用するメモリバッファとは別に、待機状態となっている制御に使用する通信データを保持する待機用のバッファを備える。これにより、使用中のいずれかのパイプに空きが生じたときに、待機用のバッファに保持した通信データによって直ちに制御用の通信を開始することができるようになる。
【００５２】
図３及び図４は、本発明に係る制御装置における処理の一例を説明するためのフローチャートである。制御装置は、例えば図２に示す構成を有し、ＵＳＢに対応した通信を行うＵＳＢデバイスである外部装置３を複数接続する。制御装置のコントローラ部３０やエンジン・メカコン部４０は、接続された外部装置を、プラグアンドプレイで認識してデバイスサーチを行う（ステップＳ１）。
【００５３】
制御装置のコントローラ部３０及びエンジン・メカコン部４０は、各々のシステムコントロールで認識した外部装置３と、その外部装置３を使用するソフトウェアのタスクやプロセス、スレッド等の優先度との紐付けを行う（ステップＳ２）。紐付けを行うソフトウェアは、起動しているアプリケーションやサービス・ミドルウェアに係るものである。そしてコントローラ部３０及びエンジン・メカコン部４０は、紐付けしたタスクやプロセス、スレッド等の優先度を監視する（ステップＳ３）。
【００５４】
このとき、コントローラ部３０及びエンジン・メカコン部４０は、外部装置３と通信をするためのパイプをチェックして、空き状況が有るか、それともＢｕｓｙ状態で空きが無いかを判断する（ステップＳ４）。ここで空きが無い場合（Ｎｏの場合）は、使用できるパイプが空くまで待機する。具体的には、ＵＳＢ３.０の２本のスーパースピードの空きパイプ、またはＵＳＢ２.０の１本のハイスピードのパイプが空くまで待機する。
【００５５】
そして、ステップＳ４で、パイプに空きがあると判断した場合、空いたパイプがＵＳＢ３.０によるスーパースピードのパイプであるか判別する（ステップＳ５）。空いたパイプが、ＵＳＢ３.０のスーパースピードではなく、ＵＳＢ２.０のハイスピードのパイプであった場合、外部装置３のＵＳＢのバージョンに係わりなく、ハイスピードのパイプで通信を行う（ステップＳ６）。そしてパイプの使用が終了すると（ステップＳ７−Ｙｅｓ）、通信を終了する（ステップＳ８）。
【００５６】
ステップＳ５で、空いたパイプが、ＵＳＢ３.０のスーパースピードのパイプであった場合、制御装置のアプリケーションやサービス・ミドルウェアが実行しようとするタスク、プロセスないしスレッドが対象としている外部装置３のＵＳＢのバージョンを確認する（ステップＳ９）。
そして、ＵＳＢ２.０に対応している外部装置３に対しては、ステップＳ１０〜Ｓ１１の処理を行い、ＵＳＢ３.０に対応している外部装置３に対しては、ステップＳ１２〜Ｓ２３の処理を行う。ここでは、制御装置では、各外部装置３との通信により得られたＵＳＢデータのフレームに含まれる機器情報から、その外部装置３がＵＳＢ３.０による通信が可能か、もしくはＵＳＢ２.０による通信を行う装置であるかを確認する。
【００５７】
まず、ステップＳ６で通信を行いたい外部装置３がＵＳＢ２.０仕様の装置である場合、ＵＳＢ２.０によるハイスピードのパイプで通信を行う（ステップＳ１０）。そしてパイプの使用が終了すると（ステップＳ１１−Ｙｅｓ）、通信を終了する（ステップＳ８）。
【００５８】
一方、ステップＳ６で、アプリケーションやサービス・ミドルウェアが通信を行いたい外部装置３がＵＳＢ３.０に対応している場合には、ＵＳＢ３.０のスーパースピードで通信を行う。ここで、ＵＳＢ３.０に対応した外部装置３が複数ある場合、その外部装置３と通信したいアプリケーションやサービス・ミドルウェアのプロセスやタスクの優先度をチェックして、優先度に応じてパイプを割り当てる（ステップＳ１２）。従って、複数のタスクやプロセス、スレッド等があれば、それらの優先度に応じて、それぞれ以下のステップＳ２１〜Ｓ２３の処理、またはステップＳ１３〜Ｓ２０の処理が実行される。
【００５９】
ここで、タスクやプロセス、スレッド等の優先度が高い外部装置３、つまり即座に通信を行いたい外部装置３に対しては、高パフォーマンスのスーパースピードで通信をできるように、ＵＳＢ３.０に基づくスーパースピードのパイプを割り当てる（ステップＳ２１）。この場合、ＵＳＢ３.０では、２本の送信用データ通信路と２本の受信用データ通信路により、２本のパイプを構成することができるため、優先度の高い２つの外部装置３に対してスーパースピードのパイプを割り当てることができる。つまり、対象となるＵＳＢ３.０の外部装置３が複数ある場合、その中で優先度が高い上位２つのタスクやプロセス、スレッド等が制御対象としている外部装置３に対して、スーパースピードのパイプを割り当てることができる。
【００６０】
そして、制御装置は、スーパースピードのパイプが割り当てられた外部装置３との間で必要なデータ通信を行って（ステップＳ２２）、パイプの使用が終了すると（ステップＳ２３−Ｙｅｓ）、通信を終了する（ステップＳ８）。
【００６１】
一方、ステップＳ７でタスク、プロセスないしスレッドの優先度が低い制御の対象となっている外部装置３に対しては、ＵＳＢ３.０のパイプの空きがなければＵＳＢ２.０のハイスピードで通信を行う。この場合、ＵＳＢ３.０に対応しているにもかかわらず、ＵＳＢ２.０のハイスピードのパイプが割り当てられる外部装置は、その時点で優先度が３位以下の外部装置になる。
【００６２】
ここでは、まず、スーパースピードで必要なパイプを監視システムに通知する（ステップＳ１３）。監視システムは、コントローラ部３０及びエンジン・メカコン部４０で動作している。そして、ＵＳＢ２.０のハイスピードでの通信を開始する（ステップＳ１４）。監視システムでは、ハイスピードでの通信中に、スーパースピードのパイプに空きが生じたか否かを監視し、空きがあるか否かを判断する（ステップＳ１５）。
【００６３】
スーパースピードのパイプに空きがない場合（ステップＳ１５−Ｎｏ）、ハイスピードの通信を続行し、パイプの使用が終了すれば（ステップＳ１９―Ｙｅｓ）、通信を終了する（ステップＳ２３）。
また、スーパースピードのパイプに空きが有る場合（ステップＳ１５−Ｙｅｓ）、ハイスピードのパイプで通信している外部装置３は通信途中であるため、途中からＵＳＢ３.０のスーパースピードでの通信モードに切り換えが可能なアプリケーションやサービス・ミドルウェアであるかを確認する（ステップＳ１６）。そして切り換え可能であれば、ハイスピードのパイプからスーパースピードのパイプに切り換えて通信を行う（ステップＳ１７）。
【００６４】
このように優先度の高いタスク等により、スーパースピードで通信を行っている外部装置３が、通信を終了して送受信のパイプを解放したときに、他の外部装置３がＵＳＢ２.０のハイスピードで通信を行っている場合には、ハイスピードで通信を行っている外部装置３に対して、ＵＳＢ３.０のスーパースピードのパイプを割り当てることができる。この場合、ＵＳＢ３.０に対応しているにもかかわらず、ＵＳＢ２.０のハイスピードで通信を行っている外部装置３が複数ある場合には、その中で最も優先度の高い外部装置３にスーパースピードのパイプを割り当てるようにする。
【００６５】
そして、ハイスピードからスーパースピードに切り換えたパイプの使用が終了すると（ステップＳ１８−Ｙｅｓ）、通信を終了する（ステップＳ８）。また、ステップＳ１６で切り換え可能でない場合には、そのままハイスピードで通信を続行し、パイプの使用が終了すると（ステップＳ２０−Ｙｅｓ）、通信を終了する（ステップＳ８）。
【符号の説明】
【００６６】
１…画像形成装置、２…ＰＣ、３…外部装置、１０…コントローラ部、１１…Ｉ／Ｆ、１２…ＣＰＵ、１３…メモリ、１４…ＵＳＢ  Ｉ／Ｆ、２０…印刷実行部、２１…ＣＰＵ、２２…ＵＳＢ  Ｉ／Ｆ、２３…メモリ、２４…ＵＳＢ  Ｉ／Ｆ、３０…コントローラ部、３１…アプリ／サービス・ミドルウェア層、３２…ドライバ層、３３…カーネル、４０…エンジン・メカコン部、４１…アプリ／サービス・ミドルウェア層、４２…ドライバ層、４３…カーネル、６１…データ通信路、６２…電力供給、７１…データ通信路、７２…電力供給。
【図１】
2013149180.tif 000003
【図２】
2013149180.tif 000004
【図３】
2013149180.tif 000005
【図４】
2013149180.tif 000006