(57)【要約】【課題】データ送信装置から複数のデータ処理装置に対して同時刻に且つ高速にデータを伝送する。【解決手段】ルータ１０（データ送信装置）と複数のデバイス１１（データ処理装置）とを伝送ケーブル１２によってデイジーチェーン接続する。各デバイス１１に対して送信対象とするデータをそれぞれ所定のデータ長からなるパケットに格納し、ルータ１０に対して最も下位に接続されたデバイス１１に宛てたパケットから順次送信する。各デバイス１１においては、上位に接続されたルータ１０又はデバイス１１からパケット群を受信し、各パケットを受信した順に下位に接続されたデバイス１１に対して順次送信する一方で、自己に宛てたパケットに含まれるデータを取得する。【選択図】　図１７
2004088208.tif 000002
【特許請求の範囲】
【請求項１】
データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置とを有し、上記データ送信装置と上記各データ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送システムであって、
上記データ送信装置は、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信するパケット送信手段を備え、
上記各データ処理装置は、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得するパケット送受信手段を備えること
を特徴とするデータ伝送システム。
【請求項２】
上記データ送信装置は、パケットの送信タイミングを示すクロック信号を上記伝送路に供給するクロック信号供給手段をさらに備え、
上記パケット送信手段及び上記パケット送受信手段は、上記クロック信号供給手段により供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信すること
を特徴とする請求項１記載のデータ伝送システム。
【請求項３】
上記パケット送信手段は、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、
上記各データ処理装置は、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うデータ処理手段をさらに備えること
を特徴とする請求項１記載のデータ伝送システム。
【請求項４】
上記データ処理手段は、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、
上記パケット送受信手段は、上記データ処理手段によって新たなデータが格納されたパケットを、受信したパケット群に含めて送信すること
を特徴とする請求項３記載のデータ伝送システム。
【請求項５】
上記伝送路において最も下位に接続されたデータ処理装置における上記パケット送受信手段は、受信したパケット群を上記データ送信装置に対して送信し、
上記データ送信装置は、最も下位に接続されたデータ処理装置から送信されたパケット群を受信するパケット受信手段をさらに備えること
を特徴とする請求項１記載のデータ伝送システム。
【請求項６】
上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、
上記データ送信装置における上記パケット送信手段は、初期値が格納されたパケットを送信し、
上記各データ処理装置は、上記パケット送受信手段により自己に対して上位に接続された装置から受信したパケットに格納された値に基づいて、自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して上記パケット送受信手段により送信する接続状態検知手段をさらに備え、
上記データ送信装置は、最も下位に接続されたデータ送信装置から送信されたパケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する接続数検知手段をさらに備えること
を特徴とする請求項５記載のデータ伝送システム。
【請求項７】
上記各データ処理装置のうちの任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、
上記任意のデータ処理装置における上記パケット送受信手段は、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、
上記各データ処理装置のうち他のデータ処理装置における上記パケット送受信手段は、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信すること
を特徴とする請求項１記載のデータ伝送システム。
【請求項８】
データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送方法であって、
上記データ送信装置において、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信し、
上記各データ処理装置において、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得すること
を特徴とするデータ伝送方法。
【請求項９】
上記データ送信装置及び上記各データ処理装置においては、上記伝送路に供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信すること
を特徴とする請求項８記載のデータ伝送方法。
【請求項１０】
上記データ送信装置においては、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、
上記各データ処理装置においては、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うこと
を特徴とする請求項８記載のデータ伝送方法。
【請求項１１】
上記各データ処理装置においては、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、当該パケットを、受信したパケット群に含めて送信すること
を特徴とする請求項１０記載のデータ伝送方法。
【請求項１２】
上記伝送路において最も下位に接続されたデータ処理装置においては、受信したパケット群を上記データ送信装置に対して送信し、
上記データ送信装置においては、最も下位に接続されたデータ処理装置から送信されたパケット群を受信すること
を特徴とする請求項８記載のデータ伝送方法。
【請求項１３】
上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、
上記データ送信装置において、初期値が格納されたパケットを送信し、
上記各データ処理装置において、自己に対して上位に接続された装置からパケットを受信して、当該パケットに格納された値に基づいて自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して送信し、
上記データ送信装置において、最も下位に接続されたデータ送信装置から送信されたパケットを受信し、当該パケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知すること
を特徴とする請求項１２記載のデータ伝送方法。
【請求項１４】
上記各データ処理装置のうち任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、
上記任意のデータ処理装置においては、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、
上記各データ処理装置のうち他のデータ処理装置においては、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信すること
を特徴とする請求項８記載のデータ伝送方法。
【発明の詳細な説明】
【０００１】
【発明の属する分野】
本発明は、データ送信装置と、このデータ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、伝送路を介してデータを伝送するデータ伝送システム及びデータ伝送方法に関する。
【０００２】
【従来の技術】
人間の動作に似せた運動を行う機械装置は、「ロボット」と称されている。ロボットは、従来から、工場における生産作業の自動化・省力化を目的として、例えば各種マニピュレータや搬送ロボットといった産業用ロボットとしての形態で広く利用されている。また、近年では、従来からの利用形態である産業用途のロボットだけでなく、一般家庭内での利用を想定したコミュニケーション能力が高いロボット、すなわち、いわゆる人間型ロボットやペット型ロボットの普及が注目されている。
【０００３】
ロボットは、所望とする運動を行うために複数の関節部を有しており、それぞれの関節部毎に、この関節部を駆動するための駆動系が備えられている。この駆動系は、一般に、関節部を駆動するアクチュエータと、アクチュエータの変位を測定するエンコーダと、エンコーダによって測定された変位をフィードバックしながら主制御部から要求された指示に応じてアクチュエータの駆動を制御する制御回路によって構成されている。そして、主制御部によって、複数の関節部の駆動系を統括的に制御することにより、ロボットが全体として所望とする運動・動作を行うように制御される。
【０００４】
【発明が解決しようとする課題】
ところで、ロボットは、任意の作業空間において自由度が高い運動を実現することが望まれており、作業中に外部環境から受ける負荷が常に変動する場合が多い。したがって、ロボットの各関節部を協調的に駆動制御することが必要となる。このため、ロボット全体の動作を統括制御する主制御部と複数の関節部事に設けられた複数の駆動系とによってロボットが構成される場合には、主制御部において同期を取りながら、各関節部の駆動系に対してそれぞれ、外部環境の変化に応じた制御指令を同時的に且つ高速に伝達することが重要となる。
【０００５】
また、特に人間型ロボットやペット型ロボットの場合には、例えば脚部や腕部の各関節部をそれぞれ連携して且つ滑らかに動作させるなどして、人間や動物の所作により近い自然な動作を実現することが望まれている。このような動作を実現するためにも、主制御部から各関節部の駆動系に対して制御指令を同時的に且つ高速に伝達することが重要となる。
【０００６】
このように、制御指令を同時的に且つ高速に伝達するためには、例えば、主制御部と各駆動系とをそれぞれ信号伝送ケーブルにより１対１接続し、主制御部により出力された制御指令を各信号伝送ケーブルを介してそれぞれ各駆動系に対して伝送することが考えられる。これにより、主制御部による各駆動系の同時的且つ高速な制御を実現することが容易となる。
【０００７】
しかしながら、この場合には、駆動系の数に応じて信号伝送ケーブルを用意し、主制御部に複数の入出力ポートを用意する必要が生じるだけでなく、主制御部における回路設計が複雑化することから、コストの増大を招いてしまうといった問題がある。また、例えば人間型ロボットやペット型ロボットにおいては、小型軽量であることが望まれているため、信号伝送ケーブルの本数が増えることによる重量の増加が問題となる。さらに、各関節部における信号伝送ケーブルの引き回しも問題となる。具体的には、例えば、手や指の各部を駆動する各駆動系に対応した複数の信号伝送ケーブルを、胴体に設けられた主制御部に接続するに際して、これら複数の信号伝送ケーブルを肘の関節部において引き回す必要がある。
【０００８】
人間型ロボットやペット型ロボットは、より自然な動作を実現するために、各関節部にロール・ピッチ・ヨーなどの２以上の自由度を持たせる場合があり、関節部が小型で複雑な構造とされる。また、関節部においても一定以上の美観を確保する必要がある。したがって、各関節部においてこれらの条件を全て満足しつつ、多数の信号伝送ケーブルを関節部において引き回すことは困難を極める。
【０００９】
そこで、上述のような問題を解消するために、主制御部と各関節部の駆動系をそれぞれ１対１接続せずに、主制御部に対して各駆動系をデイジーチェーン接続する手法、すなわち、各駆動系に用意したシリアル・インターフェースを用いて、これら各駆動系を主制御部に対して直列的に順次接続する手法を採用し、シリアル通信方式で制御指令を伝送することが考えられる。これにより、各駆動系の間を接続する一系統の信号伝送ケーブルを複数の駆動系で共用することができ、信号伝送ケーブルの本数を著しく削減するとともに、関節部における信号伝送ケーブルの引き回しを簡素化することができる。
【００１０】
ここで、シリアル通信方式としては、例えば、ＥＩＡ（Ｅｌｅｃｔｒｏｎｉｃｓ　ＩｎｄｕｓｔｒｙＡｓｓｏｃｉａｔｉｏｎ）により策定された標準規格であるＲＳ−２３２Ｃに代表されるような調歩同期式シリアル通信方式、米国コンパック社を中心とした各社が推進する規格であるＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）に代表されるような同期式シリアル通信方式などを挙げることができる。
【００１１】
しかしながら、調歩同期式シリアル通信方式は、ＡＳＣＩＩ（Ａｍｅｒｉｃａｎ　Ｓｔａｎｄａｒｄ　Ｃｏｄｅ　ｆｏｒ　Ｉｎｆｏｒｍａｔｉｏｎ　Ｉｎｔｅｒｃｈａｎｇｅ）コードに従ってデータを送信することを要求されるため、実際に必要とされる制御指令と比較して送信するデータ長が長大化しがちであり、転送速度が遅いといった欠点を有している。このため、複数の駆動系をデイジーチェーン接続した場合に、各駆動系において受信したデータを同期して実行できるという保証ができない。また、駆動系の接続数が増加するに従って、各駆動系で生じるデータの遅延が増大してしまうといった問題がある。
【００１２】
したがって、調歩同期式シリアル通信方式は、例えば人間型ロボットを実現する場合のように、高い関節自由度を有することにより駆動系の接続数が多く、直立歩行やなめらかで自然な動作を実現するためにリアルタイム性が高い姿勢制御や高速な動作制御を行う必要がある場合には適していない。
【００１３】
一方、ロボットにおける主制御部と複数の駆動系とをＵＳＢにより接続した場合には、以下に挙げるような問題点が生じることとなる。
【００１４】
すなわち、例えば、リアルタイム性が高い姿勢制御や高速な動作制御を実現する目的で、ＵＳＢのアイソクロナス転送モードを利用すると、十分に高速な伝送を行うためには接続可能な駆動系の数が制限されてしまい、また、接続する駆動系の数が増加するに従って一度に通信可能なデータ量が低減してしまうといった問題がある。例えば、単一のＵＳＢルートハブに対して２４個の駆動系を接続した場合に、１ミリ秒の通信周期を確保したアイソクロナス転送を行うためには、各駆動系に対して伝送可能な最大のデータ量は十数バイト程度となってしまう。
【００１５】
また、アイソクロナス転送モードでは、データの伝送エラーを判別することができないため、伝送したデータの信頼性が保証されない。したがって、ロボットにおける制御指令を伝送する目的でＵＳＢのアイソクロナス転送モードを利用すると、関節部が予期しない動作をするなどして、致命的な異常動作が生じる虞があるといった問題がある。
【００１６】
また、ＵＳＢでは、ホスト（ＵＳＢルートハブ）を除く各デバイス間での相互通信を行うことができないことから、例えば隣接する駆動系の間でデータを送受信することによって各関節部を連携動作させることができず、俊敏な反応を実現することができない。
【００１７】
さらに、ＵＳＢでは、ひとつの中継回路（ハブ回路）に接続可能なデバイスの数に限界があることから、多数の駆動系を接続する場合に、必要とされるハブ回路の数も増加し、ロボット全体の小型化を図ることが困難となるばかりでなく、回路構成が複雑化することによる高コスト化を招いてしまうといった問題がある。また、ハブ回路の数が増えると、ハブ回路同士を接続する信号伝送ケーブル、或いはハブ回路とデバイスを接続する信号伝送ケーブルの数も増加し、関節部に多数のケーブルが集中してしまい、組立作業や分解作業が繁雑化してしまうといった問題が生じる。
【００１８】
また、ＵＳＢを利用して多数の駆動系を接続し、主制御部との間で高速なデータ伝送を実現するためには、フルスピード転送モードに対応して１２ＭＨｚで発振するクロック信号が必要となる。このため、消費電力が増大し、ロボットを長時間駆動させることが困難となるだけでなく、ＥＭＣ（Ｅｌｅｃｔｒｏ　Ｍａｇｎｅｔｉｃ　Ｃｏｍｐａｔｉｂｉｌｉｔｙ）対策回路を設ける必要があるなどして高コスト化を招いてしまうといった問題がある。
【００１９】
また、ＵＳＢを利用して多数の駆動系を接続すると、主制御部から伝送されたデータに遅延が生じ、リアルタイム性を確保した高速な動作制御を行うことが困難となる。具体的には、例えば２４個のデバイスを接続した場合を想定すると、ホストにおけるデータの処理時間として１ミリ秒、ホストからデータを送信する時間として１ミリ秒、デバイスがデータを受信する時間として１ミリ秒、デバイスにおけるデータの処理時間として１ミリ秒を要し、全体として４ミリ秒の通信時間が必要となる。このため、データの伝送に遅延が生じ、ロボットにおける制御システムの安定性に限界が生じてしまう。
【００２０】
したがって、ＵＳＢは、ロボットにおける各部に制御指令を伝送する目的での利用には適していない。
【００２１】
また、ホストと複数のデバイスとをデイジーチェーン接続し、従来から広く利用されているパケット通信方式、すなわち所定のデータ長とされたパケットにデータを格納して伝送する通信方式によってデータを伝送する場合には、以下に挙げる問題点を挙げることができる。
【００２２】
すなわち、この場合には、多数のデバイスを接続すると、各デバイスにおいてホストから送信されたパケットを受信する時刻にずれ生じ、受信したパケットに含まれるデータに基づいて各デバイスで処理を行うに際して、各デバイス間で同期を図ることが困難となる。したがって、デイジーチェーン接続と従来のパケット通信方式とを組み合わせた手法により、主制御部と各関節部の駆動系との間で制御指令を伝送すると、リアルタイム性が高い姿勢制御や高速な動作制御を実現することが困難であった。
【００２３】
そこで本発明は、上述した従来の実情に鑑みてなされたものであり、データ送信装置に対してデイジーチェーン接続された複数のデータ処理装置に対して略々同時刻に且つ高速にデータを伝送することが可能であり、且つ必要となる伝送路の数を最小限とすることが可能なデータ伝送システム及びデータ伝送方法を提供することを目的とする。
【００２４】
【課題を解決するための手段】
本発明の請求項１に係るデータ伝送システムは、データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置とを有し、上記データ送信装置と上記各データ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送システムであって、上記データ送信装置は、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信するパケット送信手段を備え、上記各データ処理装置は、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得するパケット送受信手段を備える。
【００２５】
また、本発明の請求項８に係るデータ伝送方法は、データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送方法であって、上記データ送信装置において、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信し、上記各データ処理装置において、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得する。
【００２６】
以上のように構成された本発明によれば、最も下位に接続されたデータ処理装置に伝達すべきパケットから順に並んだパケット群を、データ送信装置から下位のデータ処理装置に向けて順次伝達してゆくことができる。このとき、パケット群の先頭部には、最も下位に接続されたデータ処理装置に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデータ処理装置に宛てたパケットが存在することとなる。
【００２７】
このため、最も下位に接続されたデータ処理装置は、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続されたデータ処理装置は、受信したパケット群を順次下位のデータ処理装置に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、データ送信装置からの段数が多く、データの伝送に時間を要する下位側のデータ処理装置ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。したがって、本発明によれば、データ送信装置から送信されたデータが各データ処理装置に到達するまでに要する時間を、パケットの送信順序で相殺することができ、データ送信装置からの段数に関わりなく、全てのデータ処理装置において略々同時刻にそれぞれデータを取得することができる。
【００２８】
また、本発明では、各データ処理装置が一系統の伝送路によりデイジーチェーン接続されていることから、データ処理装置の接続数を増やした場合であっても、データの伝送に用いる信号線の数が増加してしまうことがない。
【００２９】
また、本発明の請求項２に係るデータ伝送システムは、請求項１記載の構成に加えて、上記データ送信装置は、パケットの送信タイミングを示すクロック信号を上記伝送路に供給するクロック信号供給手段をさらに備え、上記パケット送信手段及び上記パケット送受信手段は、上記クロック信号供給手段により供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信する。
【００３０】
さらに、本発明の請求項９に係るデータ伝送方法は、請求項８記載の構成に加えて、上記データ送信装置及び上記各データ処理装置においては、上記伝送路に供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信する。
【００３１】
このように、クロック信号に基づいた送信タイミングに同期して各データ処理装置から下位の装置に対してパケットを送信する構成とすることにより、パケットの伝達処理を制御することが容易となる。また、パケット群をデータ処理装置の間で伝達するために要する時間や、パケット群を全てのデータ処理装置に対して伝達完了するまでに要する時間を予め知ることができることから、各データ処理装置がそれぞれのパケットを取得する時刻を制御することが容易となる。
【００３２】
また、本発明の請求項３に係るデータ伝送システムは、請求項１記載の構成に加えて、上記パケット送信手段は、上記各データ処理装置に対して送信するパケットの先頭に、制御コマンドを格納した制御パケットを付加して送信し、上記各データ処理装置は、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うデータ処理手段をさらに備える。
【００３３】
さらに、本発明の請求項１０に係るデータ伝送方法は、請求項８記載の構成に加えて、上記データ送信装置においては、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、上記各データ処理装置においては、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行う。
【００３４】
このように、パケット群の先頭に制御コマンドを格納しておくことにより、各データ処理装置に対してデータを伝達するだけでなく、各種の処理動作を要求する制御コマンドを伝達することができる。このような処理動作としては、例えば、各データ処理装置の接続状態を確認するための処理、各データ処理装置の動作状態を診断するための処理、或いは、所定のデータ処理装置からデータを取得するための処理などを挙げることができる。
【００３５】
また、本発明の請求項４に係るデータ伝送システムは、請求項３記載の構成に加えて、上記データ処理手段は、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、上記パケット送受信手段は、上記データ処理手段によって新たなデータが格納されたパケットを、受信したパケット群に含めて送信する。
【００３６】
さらに、本発明の請求項１１に係るデータ伝送方法は、請求項１０記載の構成に加えて、上記各データ処理装置においては、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、当該パケットを、受信したパケット群に含めて送信する。
【００３７】
このように、パケット群に含まれる制御パケットによって示される要求に応じて、任意のデータ処理装置が新たなデータをパケットに格納して下位の装置に送信することにより、例えばデータ処理装置に備えられたセンサによって取得されたデータなどを下位の装置に伝達することができる。これにより、データ送信装置からのデータを伝達するだけでなく、任意のデータ処理装置において得られたデータを他の装置に電送することが可能となる。
【００３８】
また、本発明の請求項５に係るデータ伝送システムは、請求項１記載の構成に加えて、上記伝送路において最も下位に接続されたデータ処理装置における上記パケット送受信手段は、受信したパケット群を上記データ送信装置に対して送信し、上記データ送信装置は、最も下位に接続されたデータ処理装置から送信されたパケット群を受信するパケット受信手段をさらに備える。
【００３９】
さらに、本発明の請求項１２に係るデータ伝送方法は、請求項８記載の構成に加えて、上記伝送路において最も下位に接続されたデータ処理装置においては、受信したパケット群を上記データ送信装置に対して送信し、上記データ送信装置においては、最も下位に接続されたデータ処理装置から送信されたパケット群を受信する。
【００４０】
このように、最も下位のデータ処理装置がデータ送信装置に対してパケット群を伝達する構成とすることにより、データ送信装置は、送信したパケット群と受信したパケット群とを比較することによって、各データ処理装置に対してパケット群が正しく伝達されたか否かを確認することができる。また、例えば、任意のデータ処理装置において得られたデータが新たにパケット群に含まれている場合には、この新たなデータをデータ送信装置が取得することが可能となる。すなわち、このような構成とすることによって、データ送信装置は、各データ処理装置に対してデータを送信するだけでなく、各データ処理装置からデータを取得することが可能となる。
【００４１】
また、本発明の請求項６に係るデータ伝送システムは、請求項５記載の構成に加えて、上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、上記データ送信装置における上記パケット送信手段は、初期値が格納されたパケットを送信し、上記各データ処理装置は、上記パケット送受信手段により自己に対して上位に接続された装置から受信したパケットに格納された値に基づいて、自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して上記パケット送受信手段により送信する接続状態検知手段をさらに備え、上記データ送信装置は、最も下位に接続されたデータ送信装置から送信されたパケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する接続数検知手段をさらに備える。
【００４２】
さらに、本発明の請求項１３に係るデータ伝送方法は、請求項１２記載の構成に加えて、上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、上記データ送信装置において、初期値が格納されたパケットを送信し、上記各データ処理装置において、自己に対して上位に接続された装置からパケットを受信して、当該パケットに格納された値に基づいて自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して送信し、上記データ送信装置において、最も下位に接続されたデータ送信装置から送信されたパケットを受信し、当該パケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する。
【００４３】
このようにして接続状態を確認する処理を行うことにより、各データ処理装置は、自身がデータ送信装置から何番目に接続されているかを知ることができるとともに、データ送信装置は、データ処理装置の接続数を知ることができる。したがって、例えばデータ処理装置が伝送路上に新たに接続されたり、或いは取り外されたりした場合であっても、データ送信装置及び各データ処理装置は、随時接続状態や接続数を検知することができる。このため、新たに手動で接続状態や接続数を設定する操作を行うことが不要となる。
【００４４】
また、本発明の請求項７に係るデータ伝送システムは、請求項１記載の構成に加えて、上記各データ処理装置のうちの任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、上記任意のデータ処理装置における上記パケット送受信手段は、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、上記各データ処理装置のうち他のデータ処理装置における上記パケット送受信手段は、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信する。
【００４５】
さらに、本発明の請求項１４に係るデータ伝送システムは、請求項８記載の構成に加えて、上記各データ処理装置のうち任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、上記任意のデータ処理装置においては、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、上記各データ処理装置のうち他のデータ処理装置においては、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信する。
【００４６】
このような処理を行うことにより、任意のデータ処理装置から他の装置に対してデータを送信することが可能となる。また、データを送信するデータ処理装置は、他の装置から受信したパケット群を送信していない状態の下で自己からのデータの送信処理を行うことから、他のデータ伝達処理を中断したり妨げたりすることがない。
【００４７】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以下では先ず、本発明の実施の形態として図１に示すデータ伝送システム１について、各デバイス同士の接続状態を中心として説明する。
【００４８】
データ伝送システム１は、図１に示すように、データの送信を制御するルータ１０と、ルータ１０から送信されたデータを処理する複数のデバイス１１とが一系統の伝送ケーブル１２を介してデイジーチェーン接続されてなる。なお、デバイス１１の接続数は任意であるが、同図中においては７つのデバイス１１が接続された状態を図示しており、各デバイスを第１乃至第７のデバイス１１ａ〜１１ｇと称することとする。また、ルータ１０には、汎用バス２０を介してホスト装置２１が接続されている。ルータ１０は、ホスト装置２１によって生成された送信対象とするデータを汎用バス２０を介して取得するとともに、データを伝送路１２に送信した結果や各デバイス１１から取得したデータなどを汎用バス２０を介してホスト装置２１に対して受け渡す。
【００４９】
ここで、伝送ケーブル１２の具体的な構成例について、図２を参照しながら説明する。伝送ケーブル１２は、図２に示すように、ルータ１０及び各デバイス１１の動作電圧が供給される第１の電源線（Ｖｃｃ）と、アースとして設けられた第２の電源線（ＧＮＤ）と、ルータ１０から送信されたデータの往路となる第１の信号線（ＲＸＤ（ＴＸＤ））と、データをルータ１０に戻るための復路となる第２の信号線（ＤＡＴＡ）と、クロック信号が供給される第３の信号線（ＣＬＯＣＫ）とを有している。すなわち、伝送ケーブル１２は、２本の電源線と３本の信号線とからなる計５本の線を有している。
【００５０】
データ伝送システム１においては、上述のように構成された伝送ケーブル１２が、ルータ１０及び各デバイス１１同士の間にそれぞれ配されており、それぞれルータ１０及び各デバイス１１に備えられたコネクタ１３に接続されている。これにより、データ伝送システム１は、ルータ１０及び各デバイス１１が伝送ケーブル１２によって互いに接続された状態とされる。すなわち、データ伝送システム１においては、伝送ケーブル１２がルータ１０及び各デバイス１１間を接続する一系統の伝送路としての機能を果たしている。
【００５１】
なお、図２に示すように、ルータ１０から最も下位に接続された末端のデバイス１１、すなわち第７のデバイス１１ｇにおいては、第１の信号線（ＴＸＤ）と第２の信号線（ＤＡＴＡ）とがショートされる。これにより、ルータ１０から第１の信号線（ＲＸＤ（ＴＸＤ））を介して伝送されたデータは、末端に位置する第７のデバイス１１ｇで第２の信号線（ＤＡＴＡ）を介してルータ１０に戻ることとなる。ただし、ルータ１０が各デバイス１１からの戻りデータを受信する必要がなく、ルータ１０から各デバイス１１に対してデータを送信するだけで十分なシステムである場合には、第１の信号線（ＴＸＤ）と第２の信号線（ＤＡＴＡ）とをショートする必要がなく、また、第２の信号線（ＤＡＴＡ）も不要である。
【００５２】
ここで、ルータ１０及び各デバイス１１の具体的な構成例について、図３を参照しながら説明する。なお、図３においては、本例に係るデータ伝送システム１をロボットの信号伝送系に対して適用した場合について示し、ロボットの関節部を駆動するためのモータと、このモータにより駆動される関節部の状態を検出するセンサとが各デバイス１１に備えられ、これらのモータを制御するデータやセンサによって得られたデータを伝送する場合について示している。また、同図においては、伝送ケーブル１２に備えられる信号線のみについて図示しており、電源線については図示を省略している。
【００５３】
ルータ１０は、同図に示すように、伝送ケーブル１２を介してデータを送受信するＳＩＯ（Ｓｉｇｎａｌ　Ｉｎｐｕｔ　Ｏｕｔｐｕｔ）回路３０と、このＳＩＯ回路３０の動作を制御するＣＰＵ３１とを有している。また、ルータ１０には、ホスト装置２１との間で汎用バス２０を介して制御データを授受する回路が備えられるが、これについては図示を省略する。
【００５４】
ＳＩＯ回路３０は、ホスト装置２１から取得した送信対象とするデータを所定のデータ長からなるパケットに格納し、これを伝送ケーブル１２の第１の信号線（ＴＸＤ）を介して下位に接続されたデバイス（第１のデバイス１１ａ）に送信するとともに、伝送ケーブル１２の末端に接続されたデバイス（第７のデバイス１１ｇ）から第２の信号線（ＤＡＴＡ）を介して戻されたデータを受信する。また、ＳＩＯ回路３０は、各デバイス１１でパケットを送信するタイミングを示すクロック信号を生成して、このクロック信号を第３の信号線（ＣＬＯＣＫ）に供給する。
【００５５】
一方、各デバイス１１は、伝送ケーブル１２を介してデータを送受信するＳＩＯ回路４０と、デバイス内部で各部の動作を制御するＣＰＵ４１と、ロボットの関節部を駆動するためのモータ４２と、このモータ４２の駆動を制御するモータドライバ４３と、関節部の曲げ角度や加速度或いはモータ４２の回転角度などに関する状態を検出するセンサ４４と、センサ４５のアナログ出力をデジタル変換するＡ／Ｄコンバータ４５とを有している。
【００５６】
ＳＩＯ回路４０は、伝送ケーブル１２の第１の信号線（ＲＸＤ）を介して、データが格納されたパケットを上位に接続された装置から受信するとともに、第３の信号線（ＣＬＯＣＫ）により供給されるクロック信号に基づいた所定の送信タイミングで、このパケットを第１の信号線（ＴＸＤ）を介して下位の装置に送信する。また、ＳＩＯ回路４０は、受信したパケットが自己に宛てたものである場合には、このパケットに含まれるデータをＣＰＵ４１に受け渡す機能を有している。なお、ＳＩＯ回路４０は、受信したパケットが自己に宛てたものであるか否かに関わらず、受信したパケットの全てを下位の装置に対して送信する。
【００５７】
ＣＰＵ４１は、ＳＩＯ回路４０、モータドライバ４３、及びＡ／Ｄコンバータ４５に接続されており、各部の動作を制御する。各デバイス１１においては、ＳＩＯ回路４０によって自己宛のデータが取得されると、このデータがＣＰＵ４１に受け渡され、このデータによって要求された処理内容に応じた演算処理や各部の動作を制御する処理をＣＰＵ４１によって行う。
【００５８】
例えば、要求された処理内容がモータ４２を所定の角度だけ回転駆動するというものであった場合には、ＣＰＵ４１がモータドライバ４３に対して所定の制御指令を発することにより、モータ４２が回転駆動される。また、センサ４４によって検出された情報は、Ａ／Ｄコンバータ４５によってデジタルデータに変換された後に、ＣＰＵ４１を介してＳＩＯ回路４０に転送され、このＳＩＯ回路４０によってパケット化されて所定のタイミングで下位の装置に伝達される。
【００５９】
なお、図３においては、各デバイス１１のそれぞれにセンサ４４及びＡ／Ｄコンバータ４５が配設された場合について例示しているが、これらを各デバイス１１の全てに配設する必要はなく、一部のデバイス１１にのみ配設されていてもよい。また、各デバイス１１は、モータ４２及びモータドライバ４３とセンサ４４及びＡ／Ｄコンバータ４５とのうち、いずれか一組だけを備えて構成されていてもよい。また、各デバイス１１と同様にして、モータ４２及びモータドライバ４３や、センサ４４及びＡ／Ｄコンバータ４５をルータ１０にも配設し、このルータ１０自身に、ロボットの関節部を駆動する機能を付加するとしてもよい。
【００６０】
つぎに、以上のように構成されたデータ伝送システム１において、ルータ１０から各デバイス１１に対してデータを伝達する処理の概略について説明する。
【００６１】
データ伝送システム１においては、例えば電源が投入された直後などに行う初期動作として、例えば図４に示すデータ構造を有するパケットをルータ１０から送信することにより、ルータ１０の下位に接続されたデバイス１１の数を確定する処理（デバイス数確定処理）を行う。
【００６２】
このときルータ１０から送信するパケットは、例えば図４に示すように、当該処理を行うことを示す１バイトの接続コマンドと、接続数を示す１バイトの接続アドレス値と、１バイトのチェックサムとの計３バイトによって構成されている。なお、接続アドレス値の初期値は、例えば「０」とされる。
【００６３】
デバイス数確定処理が開始されると、図５に示すように、ルータ１０は、図４に示すパケットを下位に接続されたデバイス（第１のデバイス１１ａ）に対して送信する（Ｓ１０）。次に、ルータ１０から送信された３バイトのパケットは、第１のデバイス１１ａによって受信されると（Ｓ１１）、割り込みタスクによる処理のスイッチングが行われる（Ｓ１２）。このスイッチング処理は、各デバイス１１のＳＩＯ回路４０又はＣＰＵ４１における動作を、デバイス数確定処理に切り替える処理である。
【００６４】
次に、第１のデバイス１１ａにおいては、ＳＩＯ回路４０又はＣＰＵ４１によってパケットに接続コマンドが含まれていることを認識し（Ｓ１３）、接続アドレス値に「１」を加算するとともに（Ｓ１４）、チェックサムの値を更新する（Ｓ１５）。次に、新たな接続アドレス値及びチェックサムが格納されたパケットを下位に接続されたデバイス１１に送信する（Ｓ１６）。
【００６５】
このとき、第１のデバイス１１ａは、受信したパケットに含まれる接続アドレス値、又は「１」を加算した後の接続アドレス値に基づいて、自己がルータ１０から何番目に接続されているかを知り、自己の接続状態をＳＩＯ回路４０又はＣＰＵ４１に接続されたメモリに記憶する。
【００６６】
以上のような第１のデバイス１１ａにおける一連の処理（Ｓ１０〜Ｓ１６）が他の各デバイス１１ｂ〜１１ｇにおいても順次行われることにより、パケットが各デバイス１１に伝達されてゆく。そして、伝送ケーブル１２において最も下位の末端に接続された第７のデバイス１１ｇは、受信したパケットに対して一連の処理を行った後に、接続アドレス値及びチェックサムを変更した後のパケットを第２の信号線（ＤＡＴＡ）を介してルータ１０に送信する（Ｓ１６）。
【００６７】
次に、ルータ１０は、第２の信号線（ＤＡＴＡ）を介して第７のデバイス１１ｇから送信されたパケットを受信すると（Ｓ１７）、割り込みタスクによる処理のスイッチングが行われる（Ｓ１８）。そして、受信したパケットに含まれる接続アドレス値を参照する（Ｓ１９）ことにより、伝送ケーブル１２上に接続されたデバイス１１の接続数を知る。このデバイス１１の接続数は、ルータ１０のＳＩＯ回路３０又はＣＰＵ３１に接続されたメモリに記憶され、一連のデバイス数確定処理が終了する（Ｓ２０）。
【００６８】
一方、上述したデバイス数確定処理が完了した後に、通常のデータ送信処理を行う場合には、例えば図６に示すようなパケット群をルータ１０から送信する。このパケット群は、制御パケットと複数のデータパケットとからなる１フレームによって構成されてなる。制御パケットは、１バイトの制御コマンドと、１バイトの送受信データと、１バイトのチェックサムとの計３バイトで構成されている。また、データパケットは、２バイトの送受信データと、１バイトのチェックサムとの計３バイトで構成されている。
【００６９】
制御パケットには、以降に続く複数のデータパケットに含まれる送受信データを各デバイス１１においてどのように処理するかを指示する制御コマンドが含まれている。すなわち、各デバイス１１は、パケット群を受信したときに、制御パケットに含まれる制御コマンドに従った処理を行う。
【００７０】
また、図６に示すパケット群においては、制御パケットの直後に位置するデータパケットが最も下位に接続された末端のデバイス（第７のデバイス１１ｇ）に宛てたパケットであり、このデータパケットに含まれる送受信データが第７のデバイス１１ｇに対して送信対象とされている。また、制御パケット以降で２番目のデータパケットは、第７のデバイス１１ｇよりも１つ上位に接続されたデバイス（第６のデバイス１１ｆ）に宛てたパケットであり、３番目のデータパケットは、第７のデバイス１１ｇよりも２つ上位に接続されたデバイス（第５のデバイスｅ）に宛てたパケットである。このように、ルータ１０から送信するパケット群は、制御パケットに続いて、最も下位に接続されたデバイスに宛てたデータパケットから順に並んでおり、最も末尾のデータパケットは、ルータ１０の直後に接続されたデバイス（第１のデバイス１１ａ）に宛てたパケットとされている。
【００７１】
また、パケット群に含まれるデータパケットは、伝送ケーブル１２を介して接続されたデバイス１１の数に相当する数だけ用意されている。すなわち、本例においては、７つのデバイス１１ａ〜１１ｇが接続されていることから、制御データに続いて７つのデータパケットがルータ１０から送信される。
【００７２】
なお、パケット群（１フレーム）に含まれるデータパケットは、ルータ１０にデイジーチェーン接続されるデバイス１１の数と同じ数だけ用意すればよい。また、本例においては、ルータ１０及び各デバイス１１の間で１つのパケットを転送するために要する時間は、２４μｓｅｃとする。したがって、図６に示すような計８パケットからなるパケット群をルータ１０及び各デバイス１１の間で転送するために要する時間は、１９２μｓｅｃである。ただし、この転送時間は、後述する同期キャラクタを含まない。さらに、本例においては、ルータ１０及び各デバイス１１の間で伝送ケーブル１２を介して行われるデータの伝送レートは、１．５ＭＨｚであるものとする。
【００７３】
通常のデータ送信処理が開始されると、図７に示すように、ルータ１０は、クロック信号に基づいた送信タイミングで、図６に示すパケット群を３バイトずつ（１パケットずつ）下位のデバイス（第１のデバイス１１ａ）に対して送信する（Ｓ３０）。このとき、最初に送信されるパケットは制御パケットであり、この制御パケット以降に順次送信されるパケットはデータパケットである。
【００７４】
次に、第１のデバイス１１ａは、ルータ１０から送信されたパケット群のうち最初のパケット、すなわち制御パケットを受信すると（Ｓ３１）、このパケットに含まれる制御コマンドに基づいて割り込みタスクによる処理のスイッチングが行われる（Ｓ３２）。このスイッチング処理は、各デバイス１１のＳＩＯ回路４０又はＣＰＵ４１における動作を、デバイス数確定処理に切り替える処理である。
【００７５】
次に、第１のデバイス１１ａにおいては、制御パケットに続いて送信されてくるデータパケットを順次受信しながら（Ｓ３３）、受信した各パケットをクロック信号に基づいた送信タイミングで順次下位に接続されたデバイス１１に送信する（Ｓ３４）。
【００７６】
このとき、第１のデバイス１１ａにおいては、パケット群の送受信処理を行う一方で、各データパケットが自己に宛てたものであるか否かを判定し、自己に宛てたデータパケットである場合には、このデータパケットから送受信データを取り出して、このデータに対して制御パケットによって示された処理内容に従ったデータ処理を施す（Ｓ３５）。そして、データ処理の結果、必要に応じて当該データパケットの送受信データを書き換えるなどした後に当該データパケットを送信する。
【００７７】
以上のような第１のデバイス１１ａにおける一連の処理（Ｓ３１〜Ｓ３５）が他の各デバイス１１ｂ〜１１ｇにおいても順次行われることによって、パケット群が各デバイス１１に伝達されてゆく。そして、伝送ケーブル１２において最も下位の末端に接続された第７のデバイス１１ｇは、受信したパケット群に対して同様な一連の処理を行った後に、ルータ１０に対してパケット群を送信する。なお、図７においては、第２乃至第６のデバイス１１ｂ〜１１ｆについての図示を省略する。
【００７８】
そして、ルータ１０は、第７のデバイス１１ｇから送信されたパケット群のうち最初のパケット、すなわち制御パケットを受信すると（Ｓ３６）、このパケットに含まれる制御コマンドに基づいて割り込みタスクによる処理のスイッチングが行われ（Ｓ３７）、制御パケットに続いて送信されてくるデータパケットを順次受信する（Ｓ３８）。こうして、ルータ１０から送信したパケット群が、各デバイス１１に順次伝送され、最終的にルータ１０に戻ってくることとなる。
【００７９】
なお、以上のような通常のデータ送信処理を行う間に、センサ４４によって得られたデータ（以下、センサデータと称する。）を送信すべきことを示す割り込み信号が各デバイス１１のうちのいずれかで発生した場合には、以下のようにして処理が行われる。
【００８０】
この場合に、このデバイス１１は、上位のデバイス１１から受信したパケット群を送信していない状態の下で、或いは、上位のデバイス１１から受信したパケット群を順次送信する合間に、センサデータをパケットに格納して、このパケットを下位のデバイス１１に対して送信する。このように送信されたセンサデータが格納されたパケットは、通常のデータ送信処理と同様にして順次下位のデバイス１１に伝達され、最終的にルータ１０によって受信される。
【００８１】
データ伝送システム１では、上述の如く、最も下位に接続されたデバイス１１に対して送信対象とするパケットから順に並んだパケット群が、ルータ１０から下位のデバイス１１に向けて順次伝達されることとなる。このとき、パケット群の先頭部には、最も下位に接続されたデバイス（第７のデバイス１１ｇ）に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデバイス（第１のデバイス１１ａ）に宛てたパケットが存在することとなる。
【００８２】
このため、最も下位に接続された第７のデバイス１１ｇは、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続された第１のデバイス１１ａは、受信したパケット群を順次下位のデバイス（第２のデバイス１１ｂ）に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、ルータ１０からの段数が多く、データの伝送に時間を要する下位側のデバイス１１ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。
【００８３】
このため、データ伝送システム１においては、ルータ１０から送信されたデータが各デバイス１１に到達するまでに要する時間を、パケットの送信順序で相殺することができ、ルータ１０からの段数に関わりなく、全てのデバイス１１において略々同時刻にそれぞれデータを取得することができる。
【００８４】
また、データ伝送システム１では、ルータ１０及び各デバイス１１間が伝送ケーブル１２によって接続されており、この伝送ケーブル１２による一系統の伝送路によって複数のデバイス１１に対するデータの伝達を行うことから、図８に示すように、ルータ１０及び各デバイス１１間の接続に要する配線数や、システム全体を構築するために必要となる装置の数を最小限とすることができる。
【００８５】
具体的には、図８に示す例のように、７つのデバイス１１を有するシステムを実現する場合には、必要となる伝送ケーブル１２の数は７本であり、必要となるコネクタ１３の数は８組である。これにより、データ伝送システム１は、システムを構成するために要する配線数、コネクタ数、装置数を最小限とすることができ、システム全体を小型化・低コスト化することができる。
【００８６】
また、１．５ＭＨｚという比較的低い伝送レートであっても、各デバイス１１に対して高速且つ確実にデータを伝達することができる。したがって、省電力化を図ることができるだけでなく、ＥＭＣ対策が容易となる。また、データ伝送システム１では、末端に接続されたデバイス（第７のデバイス１１ｇ）からルータ１０に対してデータを戻すことができることから、このルータ１０において送信データのエラー検出を行うことができる。
【００８７】
また、各デバイス１１に対して送信対象とするデータを、それぞれのデバイス１１においてほぼ同時刻に取得することができることから、例えばロボットの伝送系に適用した場合に、このロボットの動作を全体として滑らかに制御することが可能となる。さらに、ルータ１０及び各デバイス１１の間には、いずれの箇所においても１本の伝送ケーブル１２のみを配することで十分であることから、ロボットの関節部における配線の引き回しが容易である。
【００８８】
ここで、本例に係るデータ伝送システム１の利点を明確にするために、信号伝送系にＵＳＢ（Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ）を用いた従来構成を図９に示す。なお、図９に示す例は、図８と同様に７つのデバイスに対してデータを伝送するシステムについて図示したものである。
【００８９】
図９に示すように、従来構成によるシステムでは、伝送路の転送レートが１２ＭＨｚに達することから、省電力化に限界があり、ＥＭＣ対策を十分に施すことにも困難が伴う虞が生じる。また、各ＵＳＢハブに備えられたポートが３つだけである場合には、図９に示すように、７つのデバイスを接続するためにＵＳＢハブが３つ必要となるだけでなく、各ＵＳＢハブ及び各デバイス間を接続する配線の数は１０本必要であり、コネクタの数は２０組必要となる。また、ＵＳＢでは、アイソクロナス転送を行うとデータの送信エラーを判別することができない。また、接続するデバイスの数が増加するに伴って、十分高速にデータ送信を行うためには一度に送信可能なデータのバイト数が減少してしまうといった問題もある。したがって、従来構成のシステムは、例えばロボットの信号伝送系に用いる場合に適していない。
【００９０】
ここで、本例に係るデータ伝送システム１を用いて、図１０に示すような信号伝送系を有するロボット５０を構成する場合について説明する。このロボット５０においては、１個のルータ１０と、ロボット５０における関節部にそれぞれ配設された２８個のデバイス１１が設けられている。
【００９１】
すなわち、このロボット５０においては、首部の４つの関節を駆動するための４個のデバイス１１と体幹部の２つの関節を駆動するための２個のデバイス１１とが胴体部に設けられている。また、左右の腕部には、それぞれ５つの関節を駆動するための５個のデバイス１１が設けられており、左右の脚部には、それぞれ６つの関節を駆動するための６個のデバイス１１が設けられている。
【００９２】
また、胴体部に設けられたルータ１０と、左右の腕部及び脚部の末端に位置するデバイス１１とは、センサ４４を具備している。ロボット５０に設けられたデバイス１１は、ルータ１０に対して図１０中の矢印で示すように、それぞれ伝送ケーブル１２によって接続されている。
【００９３】
以上の構成とされたロボット５０においては、ルータ１０と各デバイス１１とは、図１１に示すような形態で接続されている。なお、図１１においては、ルータ１０に４つのＳＩＯ回路３０が備えられている場合について図示している。ロボット５０は、ルータ１０及び各デバイス１１同士の間が５本の線によって構成された１本の伝送ケーブル１２でそれぞれ接続されている。
【００９４】
ここで、従来のＵＳＢを用いた信号伝送系によってロボット５０と同様なシステムを構成した場合の接続状態を図１２に示す。図１２に示すように、従来の信号伝送系を用いて構成されたロボット１００は、１個のＵＳＢルータ１５０、及び２８個のデバイス１５１の他に、１１個のＵＳＢハブ１５２が必要となる。また、同図中においては、ロボット１００に設けられたＵＳＢルータ１５０、デバイス１５１、及びＵＳＢハブ１５２同士の間の配線を矢印で示す。
【００９５】
また、ロボット１００におけるＵＳＢルータ１５０、デバイス１５１、及びＵＳＢハブ１５２の間の接続形態を図１３に示す。なお、図１３においては、ＵＳＢハブ１５２に４つのポートが備えられている場合について図示している。
【００９６】
従来構成による信号伝送系によって構成されたロボット１００は、図１２及び図１３から明らかであるように、本例に係るロボット５０と比較して、配線が非常に煩雑となるだけでなく、数多くのＵＳＢハブが必要となる。また、ＵＳＢでは、１本の伝送ケーブルに４本の線が備えられていることから、ロボット１００においては、末端部以外の各関節で８本以上（最大で１２本）の配線を施す必要がある。
【００９７】
つぎに、複数のデバイス間でデータを伝送する際に要する時間に注目して、従来の信号伝送システムによってデータ伝送を行う場合と、本例に係るデータ伝送システム１によってデータ伝送を行う場合とについて順次説明する。
【００９８】
先ず、ＵＳＢを用いた従来の信号伝送システムによってＵＳＢルータから所定のＵＳＢデバイスに対してデータの取得要求を行い、このＵＳＢデバイスからのデータをＵＳＢルータによって取得するまでにデータが送受信される様子を、図１４に示す。
【００９９】
ＵＳＢを利用したシステムにおいては、データの送受信タイミングの基本単位が１ｍｓｅｃとされている。このため、図１４に示すように、ＵＳＢルータからデータの取得要求が所定のＵＳＢデバイスに対して送受信され、この取得要求がデバイス側で処理された後にＵＳＢルータに戻されて、ＵＳＢルータ側でデータ処理が完了するまでに、少なくとも４ｍｓｅｃが必要となる。
【０１００】
また、ＵＳＢを利用したシステムにおいては、ＵＳＢデバイス側に備えられたセンサなどによって得られたデータを割り込み処理することによってＵＳＢルータに送信する場合にも、図１５に示すように、最大で４ｍｓｅｃの遅れが生じてしまう。
【０１０１】
次に、単純なデイジーチェーン接続方式を利用した従来の信号伝送システムによってルータから各デバイスに対してデータを送信する場合について、データが送受信される様子を図１６に示す。なお、図１６においては、ルータに対して４つのデバイスが接続されており、ルータから１５バイトのデータを送信したときに、このデータが末端に接続されたデバイスから再びルータに戻ってくるまでのデータ伝送の様子を示す。また、図１６においては、送信対象とするデータの前後に、データの先頭と末尾とを識別するための２バイトの同期キャラクタを送信するものとする。
【０１０２】
この場合、図１６に示すように、送信対象とするデータと同期キャラクタとからなる単位データ群を送信するためには例えば１３６μｓｅｃの時間を要する。また、各デバイスにおけるデータ処理に所定の時間を要することから、この単位データ群は、各デバイス間を伝送されるにつれて伝達遅れが生じることとなる。
【０１０３】
この伝達遅れによって、ルータから最も上位に接続された第１のデバイスにおいてデータ処理が開始される時刻と、ルータから最も下位に接続された第４のデバイスにおいてデータ処理が開始される時刻との間では４０８μｓｅｃのずれが生じる。また、ルータから送信されたデータ群が、第４のデバイスから再びルータまで戻ってくるまでには、６６４μｓｅｃの時間を要する。
【０１０４】
このように、単純なデイジーチェーン接続方式によってデータを伝送するだけでは、図１６に示すように、ルータから送信されたデータが各デバイスにおいてデータ処理が開始される時刻にずれが生じてしまう。このため、ロボットの信号伝送系に適用すると、各デバイスを同時刻に一斉に駆動開始させるといった高いリアルタイム性が要求されるような制御を行うことが甚だしく困難となってしまう。
【０１０５】
ここで、データ伝送システム１においてデータが伝達される様子を、図１７に示す。なお、図１７に示す例では、図１６に示した場合と同様に、ルータ１０に対して４つのデバイス１１が接続されている場合を想定する。
【０１０６】
また、図１７に示す例では、図６に示すように、ルータ１０から各デバイス１１に対してそれぞれ送信対象とするデータがそれぞれ３バイトのデータパケットに格納され、これらデータパケットの先頭に制御パケットが付加されてなる構造で伝達されるものとする。ただし、本例の場合では接続されるデバイス１１が４つであるので、１個の制御パケットと、この制御パケットに続く４個のデータパケットとの計５パケットによって１フレームが構成される。
【０１０７】
また、本例では、各パケットを送信する前後に、データの先頭と末尾とを識別するための２バイトの同期キャラクタを少なくとも１つ送信するものとする。このように同期キャラクタを用いてパケットを送受信することにより、ルータ１０及び各デバイス１１間で送受信される各パケットの存在位置が明確となり、送受信時に伝送ケーブル１２で生じる伝達遅れによる誤差を解消して、確実にパケットを送受信することが可能となる。なお、この同期キャラクタは、各パケットを送受信するときと同様に、クロック信号に同期した送信タイミングで伝送ケーブル１２上に送信される。
【０１０８】
本例では、図１７に示すように、３バイトからなるパケット１つと２バイトからなる同期キャラクタ１つとによって構成される最小送信単位を送信するために、４０μｓｅｃの時間を要する。このため、５つのパケットからなるパケット群（１フレーム）を送信するためには、１８４μｓｅｃの時間を要する。
【０１０９】
また、本例においては、図１７に示すように、各デバイス１１で処理されるデータがパケット化されており、ルータ１０に対して下位に接続されたデバイス１１に宛てたパケットほどパケット群の先頭に近い位置に自己に宛てたパケットが存在する。したがって、ルータ１０から下位に接続されたデバイス１１は、自己に宛てたパケットに含まれるデータをパケット群の受信を開始してから早い段階で取得することができる。このため、パケット群を各デバイス１１に順次伝達してゆるために要する時間を、各デバイス１１に宛てたパケットの送信順序で相殺することができ、図１７に示すように、全てのデバイス１１におけるデータの処理が同時刻に行われることとなる。
【０１１０】
また、ルータ１０から送信されたパケット群が、第４のデバイス１１から再びルータ１０に戻ってくるまでには、３４４μｓｅｃの時間を要している。これは、図１６に示した従来のデータ伝送方式と比較して、ルータ１０から各デバイス１１を一巡して再びルータ１０に戻ってくるまでの時間を半分程度にまで短縮することができることを意味する。
【０１１１】
したがって、本例に係るデータ伝送方式を採用すれば、ルータ１０から送信したデータを複数のデバイス１１において同時刻に処理することが可能となり、また、従来方式と比較して高速にデータの伝達を行うことが可能であることが明らかである。
【０１１２】
つぎに、図１７に示す例において、所定のデバイス（例えば第３のデバイス１１ｃ）に備えられたセンサ４４によって得られたデータを、割り込み処理を行うことによって他のデバイス１１或いはルータ１０に対して送信する場合の例について、図１８を参照しながら説明する。
【０１１３】
この場合には、例えば第３のデバイス１１ｃにおいてセンサ４４からの割り込み処理が開始されたものとすると、図１８に示すように、先ずこの第３のデバイス１１ｃから２つのパケットからなるパケット群が下位のデバイス（第４のデバイス１１ｄ）に送信される。このとき送信されるパケット群は、例えば図１９に示すようなデータ構造とされる。
【０１１４】
すなわち、この場合に送信されるパケット群は、図１９に示すように、それぞれ３バイトずつからなる制御パケット、及びこの制御パケットに続くデータパケットによって構成され、計２パケット送信単位（１フレーム）とされる。制御パケットは、当該パケット群がセンサ４４からのデータを伝達するためのものであることを示す１バイトのセンサコマンドと、当該センサ４４を識別するための１バイトのセンサアドレスと、１バイトのチェックサムとの計３バイトによって構成されている。また、データパケットは、センサ４４によって得られたデータである２バイトのセンサデータと、１バイトのチェックサムによって構成されている。
【０１１５】
以上のような構造のパケット群は、第３のデバイス１１ｃから送信されると、第４のデバイス１１ｄ、ルータ１０、第１のデバイス１１ａ、及び第２のデバイス１１ｂに順次伝達される。これにより、第３のデバイス１１ｃに備えられたセンサ４４から得られたデータが、ルータ１０及び他の全てのデバイス１１ａ，１１ｂ，１１ｄに伝達されることとなる。
【０１１６】
なお、ルータ１０及び各デバイス１１においては、第３のデバイス１１ｃによって得られたデータに基づく何らかの処理（図中においては「センサ制御処理」として示す。）を行ってもよいし、取得したパケット群を単に下位のデバイスに対して送信する処理のみを行うとしてもよい。このセンサ制御処理としては、例えば、ロボットの特定部位に設けられたセンサから得られたデータに基づいて、他の部位に設けられた駆動系（デバイス）がモータを駆動制御するなどして、ロボット全体で迅速な姿勢制御を行う場合などにおいて、モータの制御処理などに相当するものである。
【０１１７】
このとき、図１８に示すように、第３のデバイス１１ｃにおいてセンサによる割り込み処理が開始されてから、この第３のデバイス１１ｃからデータの伝達経路上において最も下位に接続された第２のデバイス１１ｂにおいてデータ処理が完了するまでに、約２４０μｓｅｃの時間を要している。これは、図１５に示した従来のデータ伝送方式が最大で４ｍｓｅｃ要するのに対して、センサからのデータを他のデバイスに伝達するために要する時間をおよそ１／２０程度まで劇的に短縮することが可能であることを意味する。
【０１１８】
したがって、本例に係るデータ伝送システム１をロボットにおける信号伝送系に適用することにより、センサにより検出したデータに基づく姿勢制御などの応答が極めて高速なロボットを構成することができる。
【０１１９】
つぎに以下では、ルータ１０におけるデータの送受信処理についての具体的な処理例について、図２０に示すフローチャートを参照しながら説明する。なお、ルータ１０においては、データ（パケット）の送受信処理がＳＩＯ回路３０単独で実現されていてもよいし、ＳＩＯ回路３０とＣＰＵ３１との双方が協調動作することにより実現されていてもよい。
【０１２０】
本例においては、ＣＰＵ３１に備えられたレジスタを用いることにより、送信対象とするデータがＣＰＵ３１によって準備される場合を想定する。具体的には、ＣＰＵ３１に８つのレジスタＡ〜Ｅ，Ｈ，Ｌが用意され、レジスタＡをパケットカウンタとして利用し、３バイトからなる１パケット分の送信データを一時格納するためにレジスタＦ，Ｂ，Ｃを利用し、レジスタＤ，Ｅ，Ｈ，Ｌをそれぞれ受信データを一時格納するために利用する。なお、受信データの格納用に４つのレジスタを利用しているが、１パケットを構成する３バイトを処理単位としてデータの受信処理を行う場合には、レジスタを３つだけ利用するとしてもよい。
【０１２１】
また、本例においては、送信対象とするデータが一時格納される送信レジスタと、受信したデータが一時格納される受信バッファがＳＩＯ回路３０に用意されているものとする。すなわち、ＳＩＯ回路３０の送信レジスタに格納されたデータは、順次伝送ケーブル１２を介して下位のデバイス１１に送信され、最も下位のデバイス１１から受信したデータは、ＳＩＯ回路３０の受信バッファに格納される。
【０１２２】
ルータ１０は、データの送受信処理が開始されると、図２０に示すステップＳ１００において、ＣＰＵ３１は、内部のレジスタに対してＰＵＳＨ命令を実行することにより、データを送受信する処理のために８つのレジスタＡ〜Ｅ，Ｈ，Ｌを確保する。
【０１２３】
次にステップＳ１０１において、ＣＰＵ３１は、レジスタＡに初期値を格納するとともに、送信対象とする１番目のパケットに格納すべきデータを１バイトずつそれぞれレジスタＦ，Ｂ，Ｃに格納する。次にステップＳ１０２において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップＳ１０３に進める。また、ＳＩＯ回路３０が送信処理中である場合には、ステップＳ１０２の処理を繰り返し行うことにより待機する。
【０１２４】
ステップＳ１０３において、ＣＰＵ３１は、レジスタＦに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、１番目のパケットのうちの１バイト目がＳＩＯ回路３０によって送信される。
【０１２５】
次にステップＳ１０４において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップＳ１０５に進める。また、ＳＩＯ回路３０が送信処理中である場合には、ステップＳ１０４の処理を繰り返し行うことにより待機する。
【０１２６】
ステップＳ１０５において、ＣＰＵ３１は、レジスタＢに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、１番目のパケットのうちの２バイト目がＳＩＯ回路３０によって送信される。
【０１２７】
次にステップＳ１０６において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップＳ１０７に進める。また、ＳＩＯ回路３０が送信処理中である場合には、ステップＳ１０６の処理を繰り返し行うことにより待機する。
【０１２８】
ステップＳ１０７において、ＣＰＵ３１は、レジスタＣに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、１番目のパケットのうちの３バイト目がＳＩＯ回路３０によって送信される。以上のようにステップＳ１０３，Ｓ１０５，Ｓ１０７の処理がＣＰＵ３１によって実行され、ＳＩＯ回路３０が送信レジスタ内のデータを送信完了した時点で、１番目のパケット、すなわち制御パケットの送信処理が完了したこととなる。
【０１２９】
次にステップＳ１０８において、ＣＰＵ３１は、ＳＩＯ回路３０が他のデバイス１１から送信されたデータを新たに受信したか否かを判定し、受信されている場合には処理をステップＳ１０９に進め、受信されていない場合には処理をステップＳ１１０に進める。
【０１３０】
ステップＳ１０９において、ＣＰＵ３１は、ＳＩＯ回路３０の受信バッファに格納されているデータを１バイトずつ取得して、それぞれレジスタＤ，Ｅ，Ｈ，Ｌに格納し、処理をステップＳ１１０に進める。
【０１３１】
ステップＳ１１０において、ＣＰＵ３１は、レジスタＡの値に「１」を加算するとともに、送信対象とする２番目のパケットに格納すべきデータを１バイトずつそれぞれレジスタＦ，Ｂ，Ｃに格納する。次にステップＳ１１１において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップＳ１１２に進める。また、ＳＩＯ回路３０が送信処理中である場合には、ステップＳ１１１の処理を繰り返し行うことにより待機する。
【０１３２】
ステップＳ１１２において、ＣＰＵ３１は、レジスタＦに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、２番目のパケットのうちの１バイト目がＳＩＯ回路３０によって送信される。
【０１３３】
次にステップＳ１１３において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理中である場合には処理をステップＳ１１４に進める。また、ＳＩＯ回路３０による送信処理が完了している場合には、処理をステップＳ１１５に進める。
【０１３４】
ステップＳ１１４において、ＣＰＵ３１は、レジスタＤに格納されたデータを、ＣＰＵ３１に接続されたメモリに転送する。これにより、受信したデータの１バイト分がメモリに格納されることとなる。この後、ＣＰＵ３１は、処理をステップＳ１１３に戻す。
【０１３５】
ステップＳ１１５において、ＣＰＵ３１は、レジスタＢに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、２番目のパケットのうちの２バイト目がＳＩＯ回路３０によって送信される。
【０１３６】
次にステップＳ１１６において、ＣＰＵ３１は、現在ＳＩＯ回路３０が他のデータを送信処理中であるか否かを判定し、送信処理中である場合には処理をステップＳ１１７に進める。また、ＳＩＯ回路３０による送信処理が完了している場合には、処理をステップＳ１１８に進める。
【０１３７】
ステップＳ１１７において、ＣＰＵ３１は、レジスタＥに格納されたデータを、ＣＰＵ３１に接続されたメモリに転送する。これにより、受信したデータの１バイト分がメモリに格納されることとなる。この後、ＣＰＵ３１は、処理をステップＳ１１６に戻す。
【０１３８】
ステップＳ１１８において、ＣＰＵ３１は、レジスタＣに格納されたデータをＳＩＯ回路３０の送信レジスタに転送する。これにより、２番目のパケットのうちの３バイト目がＳＩＯ回路３０によって送信される。以上のようにステップＳ１０３，Ｓ１０５，Ｓ１０７の処理がＣＰＵ３１によって実行され、ＳＩＯ回路３０が送信レジスタ内のデータを送信完了した時点で、２番目のパケット（データパケット）の送信処理が完了したこととなる。
【０１３９】
次にステップＳ１１９において、ＣＰＵ３１は、ＳＩＯ回路３０が他のデバイス１１から送信されたデータを新たに受信したか否かを判定し、受信されていない場合には処理をステップＳ１２０に進め、受信されている場合には処理をステップＳ１２１に進める。
【０１４０】
ステップＳ１２０において、ＣＰＵ３１は、レジスタＨ及びレジスタＬに格納されたデータを、ＣＰＵ３１に接続されたメモリに転送する。これにより、受信したデータの２バイト分がメモリに格納されることとなる。この後、ＣＰＵ３１は、処理をステップＳ１１９に戻す。
【０１４１】
ステップＳ１２１において、ＣＰＵ３１は、ＳＩＯ回路３０の受信バッファに格納されているデータを１バイトずつ取得して、それぞれレジスタＤ，Ｅ，Ｈ，Ｌに格納し、処理をステップＳ１２２に進める。
【０１４２】
ステップＳ１２２において、ＣＰＵ３１は、送信対象とするデータ（パケット）が全て送信完了したか否かを判定する。この判定処理は、例えば、レジスタＡに格納された値と、予めデバイス数確定処理を行うことにより取得したデバイス１１の接続数とを比較することなどによって行われる。この判定の結果、全パケットが送信完了している場合には処理をステップＳ１２３に進め、送信が完了していない場合にはステップＳ１１０以降の処理を繰り返して、３番目のパケット、４番目のパケットを順次送信処理する。
【０１４３】
ステップＳ１２３において、ＣＰＵ３１は、内部のレジスタに対してＰＯＰ命令を実行することにより、８つのレジスタＡ〜Ｅ，Ｈ，Ｌを解放する。
【０１４４】
ルータ１０においては、上述した一連の処理を行うことによって、送信対象とするデータをパケット化して送信するとともに、他のデバイス１１から受信したデータをメモリに格納する。
【０１４５】
つぎに以下では、各デバイス１１におけるデータの送受信処理についての具体的な処理例について、図２１に示すフローチャートを参照しながら説明する。なお、各デバイス１１においては、データ（パケット）の送受信処理がＳＩＯ回路４０単独で実現されていてもよいし、ＳＩＯ回路４０とＣＰＵ４１との双方が協調動作することにより実現されていてもよい。
【０１４６】
本例においては、ＣＰＵ４１に備えられたレジスタを用いることにより、受信したデータのチェックサム確認処理などがＣＰＵ４１によって行われる場合を想定する。具体的には、ＣＰＵ４１に８つのレジスタＡ〜Ｅ，Ｈ，Ｌが用意され、レジスタＡをパケットカウンタとして利用し、上位のデバイス１１から受信したデータを１バイト毎に一時格納するためにレジスタＦ，Ｂ，Ｃ，Ｄを利用し、下位のデバイス１１に送信するパケットに付与するチェックサムデータを一時格納するためにレジスタＥを利用し、下位のデバイス１１に送信するパケットのうちチェックサム以外の２バイトのデータをそれぞれ１バイト毎に一時格納するためにレジスタＨ，Ｌを利用する。なお、受信データの格納用に４つのレジスタを利用しているが、１パケットを構成する３バイトを処理単位としてデータの受信処理を行う場合には、レジスタを３つだけ利用するとしてもよい。
【０１４７】
また、本例においては、送信対象とするデータが一時格納される送信レジスタと、受信したデータが一時格納される受信バッファがＳＩＯ回路４０に用意されているものとする。すなわち、ＳＩＯ回路４０の送信レジスタに格納されたデータは、順次伝送ケーブル１２を介して下位のデバイス１１に送信され、上位のデバイス１１又はルータ１０から受信したデータは、ＳＩＯ回路４０の受信バッファに格納される。
【０１４８】
各デバイス１１は、データの送受信処理が開始されると、図２１に示すステップＳ１３０において、ＣＰＵ４１は、内部のレジスタに対してＰＵＳＨ命令を実行することにより、データを送受信する処理のために８つのレジスタＡ〜Ｅ，Ｈ，Ｌを確保する。
【０１４９】
次にステップＳ１３１において、ＣＰＵ４１は、レジスタＡに初期値を格納するとともに、ＳＩＯ回路４０の受信バッファから１バイト分のデータ（受信データ０）を取得して、これをレジスタＦに格納する。次にステップＳ１３２において、ＣＰＵ４１は、ＳＩＯ回路４０が新たなデータを受信したか否かを判定し、受信している場合には処理をステップＳ１３３に進め、受信していない場合にはステップＳ１３２の処理を繰り返し行うことにより待機する。
【０１５０】
ステップＳ１３３において、ＣＰＵ４１は、ＳＩＯ回路４０の受信バッファから次の１バイト分のデータ（受信データ１）を取得して、これをレジスタＢに格納する。次にステップＳ１３４において、ＣＰＵ４１は、レジスタＦ内のデータを参照することによって、制御パケットに含まれるコマンドの内容を確認し、当該デバイス１１によって新たなデータをパケットに格納して送信する必要があるか否かを判定するとともに、レジスタＢの内容とレジスタＦの内容とを加算した値をレジスタＡに格納する。当該デバイス１１からの新たなデータをパケットに格納する必要がある場合には、この新たなデータをレジスタＨ及びレジスタＬに用意する。
【０１５１】
次にステップＳ１３５において、ＣＰＵ４１は、ＳＩＯ回路４０が新たなデータを受信したか否かを判定し、受信している場合には処理をステップＳ１３６に進め、受信していない場合にはステップＳ１３５の処理を繰り返し行うことにより待機する。
【０１５２】
ステップＳ１３６において、ＣＰＵ４１は、ＳＩＯ回路４０の受信バッファから次の１バイト分のデータ（受信データ２）を取得して、これをレジスタＣに格納する。次にステップＳ１３７において、ＣＰＵ４１は、ＳＩＯ回路４０が新たなデータを受信したか否かを判定し、受信している場合には処理をステップＳ１３８に進める。また、受信していない場合にも処理をステップＳ１３８に進める。ステップＳ１３８において、ＣＰＵ４１は、ＳＩＯ回路４０の受信バッファから次の１バイト分のデータ（受信データ３）を取得して、これをレジスタＤに格納する。
【０１５３】
次にステップＳ１３９において、ＣＰＵ４１は、レジスタＡの内容とレジスタＣの内容とを加算した値が「０」になるか否かを確認することによって、チェックサムの確認を行う。次にステップＳ１４０において、チェックサムが正常であるか否かを判定し、正常である場合には処理をステップＳ１４１に進め、正常でない場合には処理をステップＳ１４４に進める。
【０１５４】
ステップＳ１４１において、ＣＰＵ４１は、パケットカウンタ（レジスタＡ）を設定し、ステップＳ１４２において、このカウンタの値が一致するか否かを判定する。すなわち、当該パケットが当該デバイス１１に宛てたものであるか否かを判定する。この判定の結果、一致する場合には処理をステップＳ１４３に処理を進め、一致しない場合には処理をステップＳ１４５に進める。
【０１５５】
ステップＳ１４３において、ＣＰＵ４１は、レジスタＨ、レジスタＬ、及びレジスタＥに格納されたデータを順次ＳＩＯ回路４０の送信レジスタに転送する。これにより、これらレジスタＨ，Ｌ，Ｅ内のデータが下位のデバイス１１に対して送信されることとなる。この後、ＣＰＵ４１は、処理をステップＳ１４６に進める。
【０１５６】
ステップＳ１４４において、ＣＰＵ４１は、パケットカウンタ（レジスタＡ）を設定し、ステップＳ１４５において、レジスタＦ、レジスタＢ、及びレジスタＣに格納されたデータを順次ＳＩＯ回路４０の送信レジスタに転送する。これにより、これらレジスタＦ，Ｂ，Ｃ内のデータが下位のデバイス１１に対して送信されることとなる。この後、ＣＰＵ４１は、処理をステップＳ１４６に進める。
【０１５７】
ステップＳ１４６において、ＣＰＵ４１は、レジスタＤ内に有意なデータが格納されているか否かを判定する。この判定の結果、レジスタＤ内のデータが有意なものである場合には処理をステップＳ１４７に進め、有意でない場合には処理をステップＳ１４９に進める。
【０１５８】
ステップＳ１４７において、ＣＰＵ４１は、レジスタＤに格納されたデータをレジスタＦに転送する。次にステップＳ１４８において、ＣＰＵ４１は、ＳＩＯ回路４０が新たなデータを受信したか否かを判定し、受信している場合には処理をステップＳ１３３に進め、受信していない場合にはステップＳ１４８の処理を繰り返し行うことにより待機する。
【０１５９】
ステップＳ１４９において、ＣＰＵ４１は、ＳＩＯ回路４０が新たなデータを受信したか否かを判定し、受信している場合には処理をステップＳ１５０に進め、受信していない場合には処理をステップＳ１５１に進める。
【０１６０】
ステップＳ１５０において、ＣＰＵ４１は、ＳＩＯ回路４０の受信バッファから１バイト分のデータ（受信データ０）を取得して、これをレジスタＦに格納する。この後、ＣＰＵ４１は、処理をステップＳ１３３に進める。
【０１６１】
ステップＳ１５１において、ＣＰＵ４１は、上位のデバイス１１から受信したデータを下位のデバイス１１に対して送信する処理が全て完了しているか否かを判定する。この判定の結果、完了している場合には処理をステップＳ１５２に進め、完了していない場合には処理をステップＳ１４９に進める。
【０１６２】
ステップＳＳ１５２において、ＣＰＵ４１は、パケットカウンタ（レジスタＡ）の値を初期化するとともに、内部のレジスタに対してＰＯＰ命令を実行することにより、８つのレジスタＡ〜Ｅ，Ｈ，Ｌを解放する。
【０１６３】
各デバイス１１においては、上述した一連の処理を行うことによって、上位のデバイス１１から受信したデータを下位のデバイス１１に対して送信しながら、自己に宛てたパケットに含まれるデータを取り出したり、或いは当該パケットに新たなデータを格納して送信することができる。
【０１６４】
つぎに以下では、各デバイス１１において、センサ４４によって得られたデータを、割り込み処理を行うことによって他のデバイス１１或いはルータ１０に対して送信する場合の具体的な処理例について、図２２に示すフローチャートを参照しながら説明する。なお、各デバイス１１においては、割り込み処理がＳＩＯ回路４０単独で実現されていてもよいし、ＳＩＯ回路４０とＣＰＵ４１との双方が協調動作することにより実現されていてもよい。また、各デバイス１１だけでなくルータ１０にもセンサ４４が備えられている場合には、以下と同様な処理をルータ１０においても行うとすればよい。
【０１６５】
本例においては、ＣＰＵ４１に備えられたレジスタを用いることにより、図１９に示した構造の２つのパケットを送信する場合を想定し、ＣＰＵ４１に８つのレジスタＡ〜Ｅ，Ｈ，Ｌが用意されているものとする。
【０１６６】
各デバイス１１において、センサ４４により得られたデータを送信する割り込み処理が開始されると、図２２に示すステップＳ１６０において、ＣＰＵ４１は、内部のレジスタに対してＰＵＳＨ命令を実行することにより、センサ割り込み処理のために８つのレジスタＡ〜Ｅ，Ｈ，Ｌを確保する。
【０１６７】
次にステップＳ１６１において、ＣＰＵ４１は、センサ４４により得られたデータ（センサデータ）を取得する。次にステップＳ１６２において、ＣＰＵ４１は、図１９に示す構造の制御パケットに格納すべきセンサコマンド、センサアドレス、及びチェックサムに相当するデータを生成して、それぞれレジスタＦ、レジスタＢ、及びレジスタＣに格納する。
【０１６８】
次にステップＳ１６３において、ＣＰＵ４１は、レジスタＦ、レジスタＢ、及びレジスタＣに格納されたデータを順次ＳＩＯ回路４０の送信レジスタに転送する。これにより、これらレジスタＦ，Ｂ，Ｃ内のデータが下位のデバイス１１に対して制御パケットとして送信されることとなる。
【０１６９】
次にステップＳ１６４において、ＣＰＵ４１は、ステップＳ１６１で取得したセンサデータをパケットに格納するために適したデータ長に変換する。これにより、各々１バイトずつからなるセンサデータ０及びセンサデータ１が生成される。次にステップＳ１６５において、ＣＰＵ４１は、センサデータ０、センサデータ１、及びチェックサムをそれぞれレジスタＨ、レジスタＬ、レジスタＥに格納する。
【０１７０】
次にステップＳ１６６において、ＣＰＵ４１は、レジスタＨ、レジスタＬ、及びレジスタＥに格納されたデータを順次ＳＩＯ回路４０の送信レジスタに転送する。これにより、これらレジスタＨ，Ｌ，Ｅ内のデータが下位のデバイス１１に対してデータパケットとして送信されることとなる。
【０１７１】
次にステップＳ１６７において、ＣＰＵ４１は、当該デバイス１１内でセンサデータに基づく制御処理を行う。具体的には、例えばモータ４２の駆動制御処理などを行う。次にステップＳ１６８において、ＣＰＵ４１は、内部のレジスタに対してＰＯＰ命令を実行することにより、８つのレジスタＡ〜Ｅ，Ｈ，Ｌを解放する。
【０１７２】
各デバイス１１においては、上述した一連の処理を行うことによって、割り込み処理を行ってセンサデータを送信することができる。
【０１７３】
なお、上述においては、本発明の実施の形態として、ロボットの信号伝送系に適用した場合に好適な例について具体的に説明したが、本発明は、ロボットの信号伝送系への適用に限定されるものではなく、データ送信装置と複数のデータ処理装置との間でデータを伝送するシステムに広く適用することが可能であることはも勿論である。具体的には、例えば多数のセンサに対して一度にデータの検出要求を送信し、これらのセンサから同時刻に検出データを取得する場合にも本発明を適用することができる。
【０１７４】
また、上述の説明においては、１つのパケットが３バイトによって構成されるものとしたが、各パケットをどのようなデータ長とするかは、システムに要求される信号伝送レートや、デバイスの接続数などに応じて任意とすることができる。
【０１７５】
【発明の効果】
本発明によれば、最も下位に接続されたデータ処理装置に伝達すべきパケットから順に並んだパケット群を、データ送信装置から順次下位のデータ処理装置に向けて伝達してゆくことができる。このとき、パケット群の先頭部には、最も下位に接続されたデータ処理装置に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデータ処理装置に宛てたパケットが存在することとなる。
【０１７６】
このため、最も下位に接続されたデータ処理装置は、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続されたデータ処理装置は、受信したパケット群を順次下位のデータ処理装置に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、データ送信装置からの段数が多く、データの伝送に時間を要する下位側のデータ処理装置ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。したがって、本発明によれば、データ送信装置から送信されたデータが各データ処理装置に到達するまでに要する時間を、パケットの送信順序で相殺することができ、データ送信装置からの段数に関わりなく、全てのデータ処理装置において略々同時刻にそれぞれデータを取得することができる。
【０１７７】
また、本発明では、各データ処理装置が一系統の伝送路によりデイジーチェーン接続されていることから、データ処理装置の接続数を増やした場合であっても、データの伝送に用いる信号線の数が増加してしまうことがない。
【０１７８】
したがって、本発明によれば、データ送信装置に対してデイジーチェーン接続された複数のデータ処理装置に対して、略々同時刻に且つ高速にデータを伝送することが可能でなり、また、このようなデータの伝送を一系統の伝送路によって実現することができる。このため、例えば、ロボットの関節部を駆動する駆動系を接続して制御する場合などに本発明を適用することにより、ロボットに備えられた複数の関節部を高速に且つ全体としてなめらかに駆動制御することが可能となる。
【図面の簡単な説明】
【図１】本発明の実施の形態として示すデータ伝送システムにおける各装置の接続状態を示す模式図である。
【図２】同データ伝送システムにおける伝送ケーブルの具体的な構成例について示す模式図である。
【図３】同データ伝送システムにおけるルータ及び各デバイスの具体的な構成例について示す概略ブロック図である。
【図４】同データ伝送システムで送受信されるパケットの構造についての一例を示す模式図である。
【図５】同データ伝送システムで行われるデバイス数確定処理について説明するために示す模式図である。
【図６】同データ伝送システムで送受信されるパケット群の構造についての一例を示す模式図である。
【図７】同データ伝送システムで行われるデータ送信処理について説明するために示す模式図である。
【図８】同データ伝送システムで必要となる配線数及びコネクタ数について説明するために示す模式図である。
【図９】ＵＳＢを用いた従来システムで必要となる配線数及びコネクタ数について説明するために示す模式図である。
【図１０】本発明に係るデータ伝送システムを用いて構成されるロボットにおける各デバイスの接続状態について説明するために示す模式図である。
【図１１】本発明に係るデータ伝送システムを用いて構成されるロボットにおける各デバイス接続状態について説明するために示す別の模式図である。
【図１２】ＵＳＢを用いた従来システムを利用して構成されるロボットにおける各デバイスの接続状態について説明するために示す模式図である。
【図１３】ＵＳＢを用いた従来システムを利用して構成されるロボットにおける各デバイスの接続状態について説明するために示す別の模式図である。
【図１４】ＵＳＢを用いた従来システムにおいてデータが送受信される様子を示す模式図である。
【図１５】ＵＳＢを用いた従来システムにおいて割り込み処理によってデータを送信する場合について説明するために示す模式図である。
【図１６】単純なデイジーチェーン接続方式を利用した従来システムにおいてデータが送受信される様子を示す模式図である。
【図１７】本発明に係るデータ伝送システムにおいてデータが伝達される様子を示す模式図である。
【図１８】同データ伝送システムにおいて割り込み処理によってデータが伝達される様子を示す模式図である。
【図１９】同データ伝送システムにおいて割り込み処理によってデータを送信する場合におけるパケット群の構造について示す模式図である。
【図２０】同データ伝送システムで用いられるルータにおけるデータの送受信処理についての一例を示すフローチャートである。
【図２１】同データ伝送システムで用いられる各デバイスにおけるデータの送受信処理についての一例を示すフローチャートである。
【図２２】同データ伝送システムで用いられる各デバイスにおいて割り込み処理によってデータを送信する場合の処理についての一例を示すフローチャートである。
【符号の説明】
１　データ伝送システム、１０　ルータ、１１　デバイス、１２　伝送ケーブル、１３　コネクタ、２０　汎用バス、２１　ホスト装置、３０　ＳＩＯ回路、３１　ＣＰＵ、４０　ＳＩＯ回路、４１　ＣＰＵ、４２　モータ、４３　モータドライバ、４４　センサ、４５　Ａ／Ｄコンバータ
【図１】
2004088208.tif 000003
【図２】
2004088208.tif 000004
【図３】
2004088208.tif 000005
【図４】
2004088208.tif 000006
【図５】
2004088208.tif 000007
【図６】
2004088208.tif 000008
【図７】
2004088208.tif 000009
【図８】
2004088208.tif 000010
【図９】
2004088208.tif 000011
【図１０】
2004088208.tif 000012
【図１１】
2004088208.tif 000013
【図１２】
2004088208.tif 000014
【図１３】
2004088208.tif 000015
【図１４】
2004088208.tif 000016
【図１５】
2004088208.tif 000017
【図１６】
2004088208.tif 000018
【図１７】
2004088208.tif 000019
【図１８】
2004088208.tif 000020
【図１９】
2004088208.tif 000021
【図２０】
2004088208.tif 000022
【図２１】
2004088208.tif 000023
【図２２】
2004088208.tif 000024