(57)【特許請求の範囲】
【請求項１】
ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部と、
前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対するデータの転送タイミング値を判断する転送タイミング判断部と、
前記転送タイミング値を格納する転送タイミング格納部と、
前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する転送タイミング制御部と、
を備え、
前記転送タイミング格納部は、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするバス制御装置。
【請求項２】
前記転送タイミング値は、データを転送する場合のセットアップタイム、及びホールドタイムを表す情報である請求項１に記載のバス制御装置。
【請求項３】
前記転送タイミング判断部は、１又は２以上のパターンのデータの転送タイミングを試験した後に、前記転送タイミング値を判断する請求項１又は２記載のバス制御装置。
【請求項４】
前記転送タイミング判断部は、１又は２以上のパターンのデータの転送タイミングを試験した後に、セットアップタイム、及びホールドタイムに対する動作マージンに基づき、前記転送タイミング値を判断する請求項１乃至３のいずれか一に記載のバス制御装置。
【請求項５】
前記転送タイミング判断部は、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更に伴い、前記転送タイミング値を更新する請求項１乃至４のいずれか一に記載のバス制御装置。
【請求項６】
前記転送タイミング判断部は、定期的に前記各スレーブデバイスと通信し、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更を検出する請求項１乃至５のいずれか一に記載のバス制御装置。
【請求項７】
前記各スレーブデバイスのホットスワップを検出するホットスワップ検出部をさらに備える請求項１乃至６のいずれか一に記載のバス制御装置。
【請求項８】
ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置の制御方法であって、
前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断工程と、
前記転送タイミング値を格納する工程と、
前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する工程と、
を含み、
前記転送タイミング値を格納する工程において、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするバス制御装置の制御方法。
【請求項９】
ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置を制御するコンピュータに対して、
前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断処理と、
前記転送タイミング値を格納する処理と、
前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する処理と、
を実行させ、
前記転送タイミング値を格納する処理において、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス制御装置、その制御方法、及びプログラムに関し、特にホットスワップが可能であるシリアルバスに対するバス制御装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
複数のスレーブデバイスをコンピュータシステムに接続するために、シリアルバスを介した接続方式が活用されている。特に、携帯電話等の組み込みシステムでは、１本のシリアルバスを介して、複数のスレーブデバイスを接続する接続方式が多く採用されている。しかし、そのような接続方式においては、各スレーブデバイスが信号を送受信する時に、伝送遅延が発生する場合がある。
【０００３】
ここで、特許文献１において、スレーブノードが信号の位相を調整することにより、マスターノードとの伝送遅延を解決する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１６９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
なお、上記先行技術文献の開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明の観点からなされたものである。
【０００６】
上記のとおり、シリアルバスを介して、複数のスレーブデバイスにデータを送受信する際に、伝送遅延が発生する場合がある。また、ホットスワップにより、各スレーブデバイスに対する動作マージンに偏りが発生する場合もある。なぜなら、スレーブデバイスの接続状態の変更に伴い、バス負荷容量の変化や伝送遅延が発生するからである。ここで、ホットスワップとは、電源を入れた状態で、スレーブデバイスの接続、及び切断を実行することをいう。
【０００７】
特許文献１では、信号を送受信するスレーブノードの切り替えにおいて、伝送を中断せずにマスターノードと通信する技術が開示されている。ここで、特許文献１では、スレーブノードが、データ信号の位相を制御する技術が開示されている。しかし、特許文献１では、ホットスワップをした場合の動作マージンの確保については、考慮されていない。
【０００８】
従って、ホットスワップが可能であるシリアルバスを介して、データの転送をする場合に、データの転送タイミングを制御するバス制御装置、その制御方法、及びプログラムが望まれる。
【課題を解決するための手段】
【０００９】
本発明の第１の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部と、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対するデータの転送タイミング値を判断する転送タイミング判断部と、前記転送タイミング値を格納する転送タイミング格納部と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する転送タイミング制御部と、を備え、前記接続状態の変更は、前記シリアルバスのホットスワップに基づいて、接続状態を変更することを含むバス制御装置が提供される。
本発明の他の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部と、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対するデータの転送タイミング値を判断する転送タイミング判断部と、前記転送タイミング値を格納する転送タイミング格納部と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する転送タイミング制御部と、を備え、前記転送タイミング格納部は、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするバス制御装置が提供される。
【００１０】
本発明の第２の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置の制御方法であって、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断工程と、前記転送タイミング値を格納する工程と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する工程と、を含み、前記接続状態の変更は、前記シリアルバスのホットスワップに基づいて、接続状態を変更することを含むバス制御装置の制御方法が提供される。
本発明の他の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置の制御方法であって、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断工程と、前記転送タイミング値を格納する工程と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する工程と、を含み、前記転送タイミング値を格納する工程において、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするバス制御装置の制御方法が提供される。
【００１１】
本発明の第３の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置を制御するコンピュータに対して、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断処理と、前記転送タイミング値を格納する処理と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する処理と、を実行させ、前記接続状態の変更は、前記シリアルバスのホットスワップに基づいて、接続状態を変更することを含むプログラムが提供される。
本発明の他の視点によれば、ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置を制御するコンピュータに対して、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断処理と、前記転送タイミング値を格納する処理と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する処理と、を実行させ、前記転送タイミング値を格納する処理において、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納することを特徴とするプログラムが提供される。なお、これらのプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【００１２】
本発明の各視点によれば、従って、ホットスワップが可能であるシリアルバスを介して、データの転送をする場合に、データの転送タイミングを制御するバス制御装置、その制御方法、及びプログラムが提供される。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態を説明するための図である。
【図２】本発明の第１の実施形態に係るバス制御装置１を備えるシステム構成の一例を示す図である。
【図３】バス制御装置１の内部構成の一例を示す図である。
【図４】転送タイミングテーブル１５の一例を示す図である。
【図５】トレーニング処理のフローチャートである。
【図６】転送タイミング値１１０の決定の一例を示す図である。
【図７】トレーニング後のデータ転送処理のフローチャートである。
【図８】ホットスワップの検出処理のフローチャートである。
【図９】バス制御装置１の内部構成の一例を示す図である。
【発明を実施するための形態】
【００１４】
初めに、図１を用いて一実施形態の概要について説明する。なお、この概要に図面参照番号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図したものではない。
【００１５】
上記のとおり、ホットスワップにより、各スレーブデバイスに対する動作マージンに偏りが発生する。従って、ホットスワップが可能であるシリアルバスを介して、データの転送をする場合に、データの転送タイミングを制御するバス制御装置、その制御方法、及びプログラムが望まれる。
【００１６】
そこで、一例として図１に示すバス制御装置１を提供する。図１に示すバス制御装置１はホットスワップが可能であるシリアルバス２を介して、１又は２以上のスレーブデバイス３と通信するデータ通信部１０と、スレーブデバイス３のシリアルバスへの接続状態に基づき、各スレーブデバイス３に対するデータの転送タイミング値１１０を判断する転送タイミング判断部１１と、転送タイミング値１１０を格納する転送タイミング格納部１２と、転送タイミング値１１０に基づき、各スレーブデバイス３へのデータの転送を制御する転送タイミング制御部１３と、を備える。
【００１７】
ここで、コンピュータシステム４は、バス制御装置１とシリアルバス２を備えている。そして、バス制御装置１とシリアルバス２は接続している。ここで、シリアルバス２は、ホットスワップが可能である。つまり、コンピュータシステム４は、作動中にスレーブデバイス３の接続状態を変更できるということである。
【００１８】
まず、バス制御装置１は、データ通信部１０を備えている。データ通信部１０は、スレーブデバイス３とのデータの送受信をする。
【００１９】
また、バス制御装置１は、転送タイミング判断部１１を備えている。転送タイミング判断部１１は、各スレーブデバイス３とのデータの転送タイミングを判断する。上記のとおり、スレーブデバイス３の接続状態に依存して、各スレーブデバイス３に対する動作マージンに偏りが発生する。そのため、転送タイミング判断部１１は、データの転送の事前に、データの転送タイミングを判断するための試験（以下、トレーニング）を実行する。
【００２０】
そして、転送タイミング判断部１１は、トレーニング結果に基づき、最適な転送タイミング値１１０を判断する。ここで、転送タイミング判断部１１は、動作マージンを確保できるデータの転送タイミングを決定する。なお、ここでの動作マージンは、セットアップタイム、及びホールドタイムに対する動作マージンである。
【００２１】
さらに、バス制御装置１は、転送タイミング格納部１２を備えている。転送タイミング格納部１２は、転送タイミング値１１０を格納する。
【００２２】
そして、バス制御装置１は、転送タイミング制御部１３を備えている。転送タイミング制御部１３は、転送タイミング値１１０に基づき、データの転送タイミングを切り替える。そして、データ通信部１０が、各スレーブデバイス３へデータを転送する。
【００２３】
以上より、バス制御装置１は、スレーブデバイス３の接続状態に応じて、転送タイミング値１１０をトレーニングする。かつ、バス制御装置１は、ホットスワップが発生した場合であっても、データの転送タイミングを調整する。つまり、バス制御装置１は、スレーブデバイスの接続状態によらず、動作マージンを確保することができる。
【００２４】
従って、本発明は、ホットスワップが可能であるシリアルバスを介して、データの転送をする場合に、データの転送タイミングを制御するバス制御装置、その制御方法、及びプログラムを提供できる。
【００２５】
以下に具体的な実施の形態について、図面を参照してさらに詳しく説明する。
【００２６】
［第１の実施形態］
本発明の第１の実施形態について、図面を用いてさらに詳しく説明する。
【００２７】
図２は、本発明の第１の実施形態に係るバス制御装置１を備えるシステム構成の一例を示す図である。
【００２８】
図２に示すコンピュータシステム４は、バス制御装置１、シリアルバス２、スレーブノード５を備える。コンピュータシステム４は、１又は２以上のスレーブデバイス３と接続可能である。また、スレーブノード５は、ホットスワップに基づき、スレーブデバイス３の接続処理、及び切断処理を実行する。なお、図２には、簡単のため、本実施形態に係るコンピュータシステム４に関係するモジュールのみを記載する。バス制御装置１、シリアルバス２、スレーブデバイス３については、上記のとおりである。よって、さらなる説明を省略する。
【００２９】
次に、図３は、バス制御装置１の内部構成の一例を示す図である。
【００３０】
バス制御装置１は、データ通信部１０、転送タイミング判断部１１、転送タイミング格納部１２、転送タイミング制御部１３、データ通信制御部１４を備える。図３には、簡単のため、本実施形態に係るバス制御装置１に関係するモジュールのみを記載する。
【００３１】
データ通信部１０は、上記のとおりである。よって、さらなる説明を省略する。
【００３２】
転送タイミング判断部１１は、上記のとおり、転送タイミング値１１０を判断する。ここで、転送タイミング判断部１１は、転送タイミングをトレーニングする。その後、転送タイミング判断部１１は、トレーニング結果に基づき、転送タイミング値１１０を判断する。ここで、転送タイミング判断部１１は、１又は２以上のパターンの転送タイミングでトレーニングした後に、前記転送タイミング値１１０を判断する。以下の説明では、トレーニング用の転送タイミングのパターンを、トレーニング用タイミング集合１１１と表す。さらに、以下の説明では、トレーニング用の転送タイミングをトレーニング用タイミング値１１２と表す。
【００３３】
ここで、例えば、転送タイミング判断部１１は、通信が正常であったトレーニング用タイミング値１１２の中から、中央値を選択することが好ましい。なぜなら、転送タイミング判断部１１は、中央値を選択することによって、動作マージンを最大にできるからである。
【００３４】
さらに、転送タイミング判断部１１は、トレーニング結果に基づき、スレーブデバイス３の接続の有無を判断する。
【００３５】
また、転送タイミング格納部１２は、転送タイミング値１１０を格納する。ここで、転送タイミング格納部１２は、転送タイミングテーブル１５として、転送タイミング値１１０を格納するものとする。
【００３６】
さらに、転送タイミング格納部１２は、転送タイミングテーブル１５に、トレーニング用タイミング集合１１１を登録する。
【００３７】
さらに、転送タイミング格納部１２は、転送タイミングテーブル１５に、トレーニング状態値１１３を登録する。トレーニング状態値１１３とは、各スレーブデバイスに対するトレーニングの実施の有無を表す値である。
【００３８】
かつ、転送タイミング格納部１２は、転送タイミングテーブル１５に、各スレーブデバイス３の接続状態値１１４を登録する。接続状態値１１４とは、スレーブデバイスの接続の有無を表す値である。
【００３９】
以上の情報について、転送タイミング格納部１２は、スレーブデバイス識別子１１５と対応付けて、転送タイミングテーブル１５に登録する。ここで、スレーブデバイス識別子１１５とは、各スレーブデバイス３を識別するための情報である。例えば、スレーブデバイス３のアドレスが、スレーブデバイス識別子１１５として好ましい。または、バス制御装置１は、スレーブデバイス識別子１１５として、スレーブデバイスに３に予めインデックスを割り当ててもよい。ここで、スレーブデバイス識別子１１５は、スレーブデバイス３を区別できる情報であれば、その種類は問わない。
【００４０】
ここで、図４は、転送タイミングテーブル１５の一例を示す図である。
【００４１】
図４の転送タイミングテーブル１５には、スレーブデバイス識別子１１５として、ｓｌａｖｅ＿ｄｅｖｉｃｅ１が登録されている。そして、図４の転送タイミングテーブル１５には、ｓｌａｖｅ＿ｄｅｖｉｃｅ１に対応付けて、情報が登録されている。
【００４２】
まず、図４の転送タイミングテーブル１５には、転送タイミング値１１０として、セットアップタイムｓｅｔｕｐ＿ｔｉｍｅ１、及びホールドタイムｈｏｌｄ＿ｔｉｍｅ１が登録されている。
【００４３】
かつ、図４の転送タイミングテーブル１５には、セットアップタイム、ホールドタイムに対するトレーニング用タイミング集合１１１が登録されている。図４の転送タイミングテーブル１５には、セットアップタイムに対するトレーニング用タイミング集合１１１として、ｓ１＿１、ｓ１＿２、ｓ１＿３が登録されている。かつ、図４の転送タイミングテーブル１５には、ホールドタイムに対するトレーニング用タイミング集合１１１として、ｈ１＿１、ｈ１＿２、ｈ１＿３が登録されている。
【００４４】
また、図４の転送タイミングテーブル１５には、トレーニング状態値１１３として、「トレーニング済み」と登録されている。
【００４５】
さらに、図４の転送タイミングテーブル１５には、接続状態値１１４として、対応するスレーブデバイス３が「接続有り」と登録されている。
【００４６】
また、転送タイミング制御部１３は、上記のとおり、転送タイミング値１１０に基づき、データの転送タイミングを切り替える。従って、コンピュータシステム４は、各スレーブノード５において、動作マージンを確保するための処理を実行する必要がない。
【００４７】
また、データ通信制御部１４は、コンピュータシステム４の中でのデータの送受信を実行する。
【００４８】
次に、バス制御装置１の動作について説明する。
【００４９】
まず、図５のフローチャートを用いて、トレーニング処理について説明する。
【００５０】
まず、転送タイミング判断部１１は、転送タイミングテーブル１５を参照する。次に、転送タイミング判断部１１は、スレーブデバイス識別子１１５に基づき、トレーニング状態値１１３を確認する。その後、対象のスレーブデバイス３に対してトレーニングが未実施か否かを、転送タイミング判断部１１は判断する（ステップＳ１１０）。
【００５１】
ステップＳ１１０の条件を満たす場合、転送タイミング判断部１１は、転送タイミングテーブル１５から、トレーニング用タイミング集合１１１を取得する。そして、転送タイミング判断部１１は、トレーニング用タイミング集合１１１からトレーニング用タイミング値１１２を順に選択する。その後、転送タイミング判断部１１は、トレーニング用タイミング値１１２を転送タイミング制御部１３に設定する（ステップＳ１１１）。
【００５２】
次に、データ通信部１０は、スレーブデバイス３に対してデータを送受信する（ステップＳ１１２）。その際に、転送タイミング制御部１３は、データの転送タイミングを制御する。ここで、データの転送タイミングは、トレーニング用タイミング値１１２である。そして、データのセットアップタイム、及びホールドタイムそれぞれについて、トレーニングを実行するものとする。
【００５３】
そして、転送タイミング制御部１３は、トレーニング用タイミング値１１２を変更して、データの送受信を繰り返す。その際に、すべてのトレーニング用タイミング値１１２で、データの送受信をトレーニングしたか否かを、転送タイミング判断部１１は判断する（ステップＳ１１３）。そして、ステップＳ１１３の条件を満たさない場合には、バス制御装置１は、ステップＳ１１１、及びステップＳ１１２の処理を繰り返す。
【００５４】
一方、ステップＳ１１３の条件を満たす場合には、通信が正常であったトレーニング用タイミング値１１２が存在するか否かを、転送タイミング判断部１１は判断する（ステップＳ１１４）。ステップＳ１１４の条件を満たす場合には、転送タイミング判断部１１は、データの転送タイミング値１１０を決定する（ステップＳ１１５）。例えば、転送タイミング判断部１１は、通信が正常であったトレーニング用タイミング値１１２の中から、中央値を選択することが好ましい。なぜなら、転送タイミング判断部１１は、中央値を選択することによって、動作マージンを最大にできるからである。
【００５５】
その後、転送タイミング格納部１２は、転送タイミングテーブル１５に転送タイミング値１１０を登録する（ステップＳ１１６）。かつ、転送タイミング格納部１２は、転送タイミングテーブル１５にトレーニング状態値１１３を登録する。さらに、転送タイミング格納部１２は、転送タイミングテーブル１５に接続状態値１１４を登録する。
【００５６】
一方、ステップＳ１１４の条件を満たさない場合には、転送タイミング判断部１１は、対象のスレーブデバイス３は未接続であると判断する（ステップＳ１１７）。この場合も、転送タイミング格納部１２は、転送タイミングテーブル１５にトレーニング状態値１１３を登録する。さらに、転送タイミング格納部１２は、転送タイミングテーブル１５に接続状態値１１４を登録する。
【００５７】
そして、バス制御装置１は、全てのスレーブデバイス３に対して上記のトレーニングを実行する。その際に、転送タイミング判断部１１は、転送タイミングテーブル１５を参照して、スレーブデバイス３のトレーニング状態を確認する。
【００５８】
ここで、ホットスワップが発生しない場合には、バス制御装置１はトレーニングを再実行する必要はない。なぜなら、コンピュータシステム４がリセットするまで、バス制御装置１は転送タイミングテーブル１５の値を保持するからである。一方、ホットスワップが発生した場合には、バス制御装置１は、後述する方法で転送タイミングテーブル１５の値を更新する。
【００５９】
ここで、図６を用いて、転送タイミング値１１０の決定について説明する。まず図６の（ａ−１）図から図６の（ａ−５）図は、トレーニング用タイミング値１１２ごとのホールドタイムを示す図である。一方、図６の（ｂ）図は、ホールドタイムごとのデータの受信結果を示す図である。例えば、図６の（ａ−１）図の場合には、ホールドタイムはＴ１である。かつ、図６の（ｂ）図より、その場合の受信結果は異常である。また、図６の（ａ−５）図の場合には、ホールドタイムがＴ５である。そして、図６の（ｂ）図より、その場合の受信結果は異常である。一方、図６の（ｂ）図より、データホールドタイムがＴ２、Ｔ３、Ｔ４の場合には、受信結果が正常である。ここで、Ｔ２、Ｔ３、Ｔ４のホールドタイムの中で、Ｔ３が中央値である（図６の（ａ−２）図から図６の（ａ−４）図参照）。
【００６０】
ここで、上記のとおり、動作マージンが最大となるように、転送タイミング値を決定することが好ましい。従って、通信が正常であったトレーニング用タイミング値１１２の中から、中央値を選択することが好ましい。そのため、図６の場合には、ホールドタイムの転送タイミング値１１０として、ホールドタイムＴ３を選択することが好ましい。
【００６１】
次に、図７のフローチャートを用いて、トレーニング後のデータ転送処理について説明する。
【００６２】
まず、バス制御装置１は、対象のスレーブデバイス３に対して通信可能であるかを確認する（ステップＳ２１０）。その際に、バス制御装置１は、転送タイミングテーブル１５の接続状態値１１４を参照する。そして、ホットスワップが発生したか否かを、転送タイミング判断部１１は判断する（ステップＳ２１１）。その際に、転送タイミング判断部１１は、全てのスレーブデバイス３に対して、定期的に通信する。なお、未接続と判断しているスレーブデバイス３に対しても、転送タイミング判断部１１は通信をするものとする。これは、転送タイミング判断部１１が、スレーブデバイス３のホットスワップを検出するためである。
【００６３】
ここで、ステップＳ２１１の条件を満たさない場合には、データ通信制御部１４から対象のスレーブデバイス３への通信要求があったか否かを、転送タイミング判断部１１は判断する（ステップＳ２１２）。ステップＳ２１２の条件を満たさない場合には、転送タイミング判断部は、Ｓ２１１の判断を繰り返す。
【００６４】
一方、ステップＳ２１２の条件を満たす場合には、転送タイミング判断部１１は転送タイミング値１１０を取得する（ステップＳ２１３）。その際、転送タイミング判断部１１は転送タイミングテーブル１５を参照する。そして、転送タイミング判断部１１は、転送タイミング制御部１３に転送タイミング値１１０を設定する。その後、データ通信部１０は、スレーブデバイス３に対してデータを送信する（ステップＳ２１４）。その際に、転送タイミング制御部１３は、データの転送タイミングを制御する。
【００６５】
次に、ステップＳ２１１の条件を満たす場合について説明する。つまり、ホットスワップの検出処理について説明をする。
【００６６】
そこで、図８のフローチャートを用いて、ホットスワップの検出処理について説明する。
【００６７】
まず、転送タイミング判断部１１は、未接続のスレーブデバイス３に対して、トレーニングを実行する（ステップＳ３１０）。そして、未接続と判断しているスレーブデバイス３から応答があったか否かを、転送タイミング判断部１１は判断する（ステップＳ３１１）。これは、ホットスワップによって、新たに接続されたスレーブデバイス３を検出するためである。
【００６８】
ここで、ステップＳ３１１の条件を満たすとする。その場合、転送タイミング判断部１１は、対象のスレーブデバイス３が接続されていると判断する（ステップＳ３１２）。そして、転送タイミング格納部１２は、転送タイミングテーブル１５の接続状態値１１４に、「接続有り」を示す情報を登録する（ステップＳ３１３）。
【００６９】
一方、ステップＳ３１１の条件を満たさない場合を考える。その場合、接続と判断していたスレーブデバイス３から応答があったか否かを、転送タイミング判断部１１は判断する（ステップＳ３１４）。これは、ホットスワップによって、切断されたスレーブデバイス３を検出するためである。
【００７０】
ステップＳ３１４の条件を満たす場合には、ステップＳ２１２の処理に遷移する。一方、ステップＳ３１４の条件を満たさない場合には、転送タイミング判断部１１は、対象のスレーブデバイス３が切断されていると判断する（ステップＳ３１５）。そして、転送タイミング格納部１２は、転送タイミングテーブル１５の接続状態値１１４に、「接続無し」を示す情報を登録する（ステップＳ３１６）。
【００７１】
ステップＳ３１３の処理、又はステップＳ３１６の処理の後に、転送タイミング判断部１１は、転送タイミングテーブル１５において、対象のスレーブデバイス３に対応付けられている値を初期化する（ステップＳ３１７）。続いて、対象のスレーブデバイス３が接続しているシリアルバス２上の全てのスレーブデバイスについても、ステップＳ３１７の処理を実行する。その後、ステップＳ１１０の処理に遷移する。つまり、バス制御装置１はトレーニングを再実行する。
【００７２】
以上より、本実施形態に係るバス制御装置１の第１の効果は、スレーブデバイスの接続状態に合った動作マージンを確保できることである。なぜなら、セットアップタイム、ホールドタイムの動作マージンを確保できる転送タイミングを予めトレーニングするからである。
【００７３】
本実施形態に係るバス制御装置１の第２の効果は、ホットスワップによってスレーブデバイスの接続状態が変化しても、動作マージンに偏りが発生しないことである。なぜなら、ホットスワップを検出し、データの転送タイミングを更新するからである。従って、ホットスワップが発生しても、上記第１の効果を有するバス制御装置を提供できる。
【００７４】
［第２の実施形態］
続いて、第２の実施形態について、図面を参照して詳細に説明する。
【００７５】
本実施形態は、ホットスワップを直ちに検出できるようにする実施形態である。なお、本実施形態における説明では、第１の実施形態と重複する部分の説明は省略する。さらに、本実施形態における説明では、第１の実施形態と同一の構成要素には、同一の符号を付し、その説明を省略する。
【００７６】
上記のとおり、本発明では、バス制御装置１は、データの転送タイミングを事前にトレーニングする。そして、トレーニング結果に基づき、バス制御装置１は転送タイミングを決定する。従って、バス制御装置１は、動作マージンを確保しつつ、データの転送をすることができる。そして、ホットスワップが発生した場合には、バス制御装置１は転送タイミングを更新する。
【００７７】
しかし、実施形態１に係るバス制御装置１では、全てのスレーブデバイス３に対して、順番に、定期的に通信をする必要がある。そのため、実施形態１に係るバス制御装置１では、ホットスワップの発生を直ちに検出することができない。そこで、本実施形態に係るバス制御装置１は、スレーブデバイスのホットスワップを検出するホットスワップ検出部１６を備えるバス制御装置が、提供される。
【００７８】
ここで、図９は、本実施形態係るバス制御装置１の内部構成を示す図である。
【００７９】
図９に示すように、本実施形態に係るバス制御装置１は、ホットスワップ検出部１６を備える。そして、ホットスワップ検出部１６は、スレーブデバイス３から接続状態を監視する信号と接続している。従って、本実施形態に係るバス制御装置１では、ホットスワップを直ちに検出することが可能である。
【００８０】
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で更なる変形・置換・調整を加えることができる。例えば、上記した実施形態の説明では、一本のシリアルバス２として説明したが、シリアルバス２は複数あってもよい。
【００８１】
また、上記の実施形態では、スレーブデバイス３の切断確認のために、接続確認を１回として説明した。しかし、２回以上の接続確認の後に、スレーブデバイス３が切断されていると判断してもよい。
【００８２】
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００８３】
（付記１）ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部と、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対するデータの転送タイミング値を判断する転送タイミング判断部と、前記転送タイミング値を格納する転送タイミング格納部と、
前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する転送タイミング制御部と、を備えるバス制御装置。
【００８４】
（付記２）前記転送タイミング値は、データを転送する場合のセットアップタイム、及びホールドタイムを表す情報であるバス制御装置。
【００８５】
（付記３）前記転送タイミング判断部は、１又は２以上のパターンのデータの転送タイミングを試験した後に、前記転送タイミング値を判断するバス制御装置。
【００８６】
（付記４）前記転送タイミング判断部は、１又は２以上のパターンのデータの転送タイミングを試験した後に、セットアップタイム、及びホールドタイムに対する動作マージンに基づき、前記転送タイミング値を判断するバス制御装置。
【００８７】
（付記５）前記転送タイミング判断部は、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更に伴い、前記転送タイミング値を更新するバス制御装置。
【００８８】
（付記６）前記転送タイミング判断部は、定期的に前記各スレーブデバイスと通信し、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更を検出するバス制御装置。
【００８９】
（付記７）前記転送タイミング格納部は、前記各スレーブデバイスのアドレスに対して、前記転送タイミング値を対応付けて格納するバス制御装置。
【００９０】
（付記８）前記各スレーブデバイスのホットスワップを検出するホットスワップ検出部をさらに備えるバス制御装置。
【００９１】
（付記９）ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置の制御方法であって、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断工程と、前記転送タイミング値を格納する工程と、
前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する工程と、を含むバス制御装置の制御方法。
【００９２】
（付記１０）前記判断工程は、１又は２以上のパターンのデータの転送タイミングを試験した後に、前記転送タイミング値を判断するバス制御装置の制御方法。
【００９３】
（付記１１）前記判断工程は、１又は２以上のパターンのデータの転送タイミングを試験した後に、セットアップタイム、及びホールドタイムに対する動作マージンに基づき、前記転送タイミング値を判断するバス制御装置の制御方法。
【００９４】
（付記１２）前記判断工程は、前記各スレーブデバイスの接続状態の変更に伴い、前記転送タイミング値を更新するバス制御装置の制御方法。
【００９５】
（付記１３）前記判断工程は、定期的に前記各スレーブデバイスと通信し、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更を検出するバス制御装置の制御方法。
【００９６】
（付記１４）前記各スレーブデバイスのホットスワップを検出する工程をさらに含むバス制御装置の制御方法。
【００９７】
（付記１５）ホットスワップが可能であるシリアルバスを介して、１又は２以上のスレーブデバイスと通信するデータ通信部を備えるバス制御装置を制御するコンピュータに対して、前記各スレーブデバイスの前記シリアルバスへの接続状態に基づき、前記各スレーブデバイスに対する転送タイミング値を判断する判断処理と、前記転送タイミング値を格納する処理と、前記転送タイミング値に基づき、前記各スレーブデバイスへのデータの転送を制御する処理と、を実行させるプログラム。
【００９８】
（付記１６）前記判断処理は、１又は２以上のパターンのデータの転送タイミングを試験した後に、前記転送タイミング値を判断するプログラム。
【００９９】
（付記１７）前記判断処理は、１又は２以上のパターンのデータの転送タイミングを試験した後に、セットアップタイム、及びホールドタイムに対する動作マージンに基づき、前記転送タイミング値を判断するプログラム。
【０１００】
（付記１８）前記判断処理は、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更に伴い、前記転送タイミング値を更新するプログラム。
【０１０１】
（付記１９）前記判断処理は、定期的に前記各スレーブデバイスと通信し、前記各スレーブデバイスの前記シリアルバスへの接続状態の変更を検出するプログラム。
【０１０２】
（付記２０）前記各スレーブデバイスのホットスワップを検出する処理をさらに含むプログラム。
【０１０３】
なお、引用した上記の特許文献の開示は、本書に引用をもって繰り込むものとする。本発明の全開示（請求の範囲を含む）の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素（各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む）の多様な組み合わせ、ないし、選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【０１０４】
１  バス制御装置
２  シリアルバス
３  スレーブデバイス
４  コンピュータシステム
５  スレーブノード
１０  データ通信部
１１  転送タイミング判断部
１２  転送タイミング格納部
１３  転送タイミング制御部
１４  データ通信制御部
１５  転送タイミングテーブル
１６  ホットスワップ検出部
１１０  転送タイミング値
１１１  トレーニング用タイミング集合
１１２  トレーニング用タイミング値
１１３  トレーニング状態値
１１４  接続状態値
１１５  スレーブデバイス識別子
【図１】
0006008380.tif 000002
【図２】
0006008380.tif 000003
【図３】
0006008380.tif 000004
【図４】
0006008380.tif 000005
【図５】
0006008380.tif 000006
【図６】
0006008380.tif 000007
【図７】
0006008380.tif 000008
【図８】
0006008380.tif 000009
【図９】
0006008380.tif 000010