JP2004088208A - Data transmission system and method therefor - Google Patents

Data transmission system and method therefor Download PDF

Info

Publication number
JP2004088208A
JP2004088208A JP2002243317A JP2002243317A JP2004088208A JP 2004088208 A JP2004088208 A JP 2004088208A JP 2002243317 A JP2002243317 A JP 2002243317A JP 2002243317 A JP2002243317 A JP 2002243317A JP 2004088208 A JP2004088208 A JP 2004088208A
Authority
JP
Japan
Prior art keywords
data
packet
transmission
data processing
transmitted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002243317A
Other languages
Japanese (ja)
Inventor
Shinji Ishii
石井 眞二
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2002243317A priority Critical patent/JP2004088208A/en
Publication of JP2004088208A publication Critical patent/JP2004088208A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Small-Scale Networks (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To transfer data to a plurality of data processors from a data transmitter at the same time and a high speed. <P>SOLUTION: A router 10 (data transmitter) is connected to a plurality of devices 11 (data processors) with a transmission cable 12 in a daisy chain. The system stores data to be transmitted to the individual devices 11 respectively in packets of specified data lengths and transmits the packets to the router 10 one after another, starting from the packet addressed to the device 11 connected to the lowest position. Each device 11 receives a packet group from the router 10 or the device 11 connected to an upper position, transmits the packets in the receiving order to the device 11 connected to a lower position one after another, and acquires data involved in packets addressed to own. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する分野】
本発明は、データ送信装置と、このデータ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、伝送路を介してデータを伝送するデータ伝送システム及びデータ伝送方法に関する。
【0002】
【従来の技術】
人間の動作に似せた運動を行う機械装置は、「ロボット」と称されている。ロボットは、従来から、工場における生産作業の自動化・省力化を目的として、例えば各種マニピュレータや搬送ロボットといった産業用ロボットとしての形態で広く利用されている。また、近年では、従来からの利用形態である産業用途のロボットだけでなく、一般家庭内での利用を想定したコミュニケーション能力が高いロボット、すなわち、いわゆる人間型ロボットやペット型ロボットの普及が注目されている。
【0003】
ロボットは、所望とする運動を行うために複数の関節部を有しており、それぞれの関節部毎に、この関節部を駆動するための駆動系が備えられている。この駆動系は、一般に、関節部を駆動するアクチュエータと、アクチュエータの変位を測定するエンコーダと、エンコーダによって測定された変位をフィードバックしながら主制御部から要求された指示に応じてアクチュエータの駆動を制御する制御回路によって構成されている。そして、主制御部によって、複数の関節部の駆動系を統括的に制御することにより、ロボットが全体として所望とする運動・動作を行うように制御される。
【0004】
【発明が解決しようとする課題】
ところで、ロボットは、任意の作業空間において自由度が高い運動を実現することが望まれており、作業中に外部環境から受ける負荷が常に変動する場合が多い。したがって、ロボットの各関節部を協調的に駆動制御することが必要となる。このため、ロボット全体の動作を統括制御する主制御部と複数の関節部事に設けられた複数の駆動系とによってロボットが構成される場合には、主制御部において同期を取りながら、各関節部の駆動系に対してそれぞれ、外部環境の変化に応じた制御指令を同時的に且つ高速に伝達することが重要となる。
【0005】
また、特に人間型ロボットやペット型ロボットの場合には、例えば脚部や腕部の各関節部をそれぞれ連携して且つ滑らかに動作させるなどして、人間や動物の所作により近い自然な動作を実現することが望まれている。このような動作を実現するためにも、主制御部から各関節部の駆動系に対して制御指令を同時的に且つ高速に伝達することが重要となる。
【0006】
このように、制御指令を同時的に且つ高速に伝達するためには、例えば、主制御部と各駆動系とをそれぞれ信号伝送ケーブルにより1対1接続し、主制御部により出力された制御指令を各信号伝送ケーブルを介してそれぞれ各駆動系に対して伝送することが考えられる。これにより、主制御部による各駆動系の同時的且つ高速な制御を実現することが容易となる。
【0007】
しかしながら、この場合には、駆動系の数に応じて信号伝送ケーブルを用意し、主制御部に複数の入出力ポートを用意する必要が生じるだけでなく、主制御部における回路設計が複雑化することから、コストの増大を招いてしまうといった問題がある。また、例えば人間型ロボットやペット型ロボットにおいては、小型軽量であることが望まれているため、信号伝送ケーブルの本数が増えることによる重量の増加が問題となる。さらに、各関節部における信号伝送ケーブルの引き回しも問題となる。具体的には、例えば、手や指の各部を駆動する各駆動系に対応した複数の信号伝送ケーブルを、胴体に設けられた主制御部に接続するに際して、これら複数の信号伝送ケーブルを肘の関節部において引き回す必要がある。
【0008】
人間型ロボットやペット型ロボットは、より自然な動作を実現するために、各関節部にロール・ピッチ・ヨーなどの2以上の自由度を持たせる場合があり、関節部が小型で複雑な構造とされる。また、関節部においても一定以上の美観を確保する必要がある。したがって、各関節部においてこれらの条件を全て満足しつつ、多数の信号伝送ケーブルを関節部において引き回すことは困難を極める。
【0009】
そこで、上述のような問題を解消するために、主制御部と各関節部の駆動系をそれぞれ1対1接続せずに、主制御部に対して各駆動系をデイジーチェーン接続する手法、すなわち、各駆動系に用意したシリアル・インターフェースを用いて、これら各駆動系を主制御部に対して直列的に順次接続する手法を採用し、シリアル通信方式で制御指令を伝送することが考えられる。これにより、各駆動系の間を接続する一系統の信号伝送ケーブルを複数の駆動系で共用することができ、信号伝送ケーブルの本数を著しく削減するとともに、関節部における信号伝送ケーブルの引き回しを簡素化することができる。
【0010】
ここで、シリアル通信方式としては、例えば、EIA(Electronics IndustryAssociation)により策定された標準規格であるRS−232Cに代表されるような調歩同期式シリアル通信方式、米国コンパック社を中心とした各社が推進する規格であるUSB(Universal Serial Bus)に代表されるような同期式シリアル通信方式などを挙げることができる。
【0011】
しかしながら、調歩同期式シリアル通信方式は、ASCII(American Standard Code for Information Interchange)コードに従ってデータを送信することを要求されるため、実際に必要とされる制御指令と比較して送信するデータ長が長大化しがちであり、転送速度が遅いといった欠点を有している。このため、複数の駆動系をデイジーチェーン接続した場合に、各駆動系において受信したデータを同期して実行できるという保証ができない。また、駆動系の接続数が増加するに従って、各駆動系で生じるデータの遅延が増大してしまうといった問題がある。
【0012】
したがって、調歩同期式シリアル通信方式は、例えば人間型ロボットを実現する場合のように、高い関節自由度を有することにより駆動系の接続数が多く、直立歩行やなめらかで自然な動作を実現するためにリアルタイム性が高い姿勢制御や高速な動作制御を行う必要がある場合には適していない。
【0013】
一方、ロボットにおける主制御部と複数の駆動系とをUSBにより接続した場合には、以下に挙げるような問題点が生じることとなる。
【0014】
すなわち、例えば、リアルタイム性が高い姿勢制御や高速な動作制御を実現する目的で、USBのアイソクロナス転送モードを利用すると、十分に高速な伝送を行うためには接続可能な駆動系の数が制限されてしまい、また、接続する駆動系の数が増加するに従って一度に通信可能なデータ量が低減してしまうといった問題がある。例えば、単一のUSBルートハブに対して24個の駆動系を接続した場合に、1ミリ秒の通信周期を確保したアイソクロナス転送を行うためには、各駆動系に対して伝送可能な最大のデータ量は十数バイト程度となってしまう。
【0015】
また、アイソクロナス転送モードでは、データの伝送エラーを判別することができないため、伝送したデータの信頼性が保証されない。したがって、ロボットにおける制御指令を伝送する目的でUSBのアイソクロナス転送モードを利用すると、関節部が予期しない動作をするなどして、致命的な異常動作が生じる虞があるといった問題がある。
【0016】
また、USBでは、ホスト(USBルートハブ)を除く各デバイス間での相互通信を行うことができないことから、例えば隣接する駆動系の間でデータを送受信することによって各関節部を連携動作させることができず、俊敏な反応を実現することができない。
【0017】
さらに、USBでは、ひとつの中継回路(ハブ回路)に接続可能なデバイスの数に限界があることから、多数の駆動系を接続する場合に、必要とされるハブ回路の数も増加し、ロボット全体の小型化を図ることが困難となるばかりでなく、回路構成が複雑化することによる高コスト化を招いてしまうといった問題がある。また、ハブ回路の数が増えると、ハブ回路同士を接続する信号伝送ケーブル、或いはハブ回路とデバイスを接続する信号伝送ケーブルの数も増加し、関節部に多数のケーブルが集中してしまい、組立作業や分解作業が繁雑化してしまうといった問題が生じる。
【0018】
また、USBを利用して多数の駆動系を接続し、主制御部との間で高速なデータ伝送を実現するためには、フルスピード転送モードに対応して12MHzで発振するクロック信号が必要となる。このため、消費電力が増大し、ロボットを長時間駆動させることが困難となるだけでなく、EMC(Electro Magnetic Compatibility)対策回路を設ける必要があるなどして高コスト化を招いてしまうといった問題がある。
【0019】
また、USBを利用して多数の駆動系を接続すると、主制御部から伝送されたデータに遅延が生じ、リアルタイム性を確保した高速な動作制御を行うことが困難となる。具体的には、例えば24個のデバイスを接続した場合を想定すると、ホストにおけるデータの処理時間として1ミリ秒、ホストからデータを送信する時間として1ミリ秒、デバイスがデータを受信する時間として1ミリ秒、デバイスにおけるデータの処理時間として1ミリ秒を要し、全体として4ミリ秒の通信時間が必要となる。このため、データの伝送に遅延が生じ、ロボットにおける制御システムの安定性に限界が生じてしまう。
【0020】
したがって、USBは、ロボットにおける各部に制御指令を伝送する目的での利用には適していない。
【0021】
また、ホストと複数のデバイスとをデイジーチェーン接続し、従来から広く利用されているパケット通信方式、すなわち所定のデータ長とされたパケットにデータを格納して伝送する通信方式によってデータを伝送する場合には、以下に挙げる問題点を挙げることができる。
【0022】
すなわち、この場合には、多数のデバイスを接続すると、各デバイスにおいてホストから送信されたパケットを受信する時刻にずれ生じ、受信したパケットに含まれるデータに基づいて各デバイスで処理を行うに際して、各デバイス間で同期を図ることが困難となる。したがって、デイジーチェーン接続と従来のパケット通信方式とを組み合わせた手法により、主制御部と各関節部の駆動系との間で制御指令を伝送すると、リアルタイム性が高い姿勢制御や高速な動作制御を実現することが困難であった。
【0023】
そこで本発明は、上述した従来の実情に鑑みてなされたものであり、データ送信装置に対してデイジーチェーン接続された複数のデータ処理装置に対して略々同時刻に且つ高速にデータを伝送することが可能であり、且つ必要となる伝送路の数を最小限とすることが可能なデータ伝送システム及びデータ伝送方法を提供することを目的とする。
【0024】
【課題を解決するための手段】
本発明の請求項1に係るデータ伝送システムは、データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置とを有し、上記データ送信装置と上記各データ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送システムであって、上記データ送信装置は、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信するパケット送信手段を備え、上記各データ処理装置は、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得するパケット送受信手段を備える。
【0025】
また、本発明の請求項8に係るデータ伝送方法は、データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送方法であって、上記データ送信装置において、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信し、上記各データ処理装置において、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得する。
【0026】
以上のように構成された本発明によれば、最も下位に接続されたデータ処理装置に伝達すべきパケットから順に並んだパケット群を、データ送信装置から下位のデータ処理装置に向けて順次伝達してゆくことができる。このとき、パケット群の先頭部には、最も下位に接続されたデータ処理装置に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデータ処理装置に宛てたパケットが存在することとなる。
【0027】
このため、最も下位に接続されたデータ処理装置は、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続されたデータ処理装置は、受信したパケット群を順次下位のデータ処理装置に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、データ送信装置からの段数が多く、データの伝送に時間を要する下位側のデータ処理装置ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。したがって、本発明によれば、データ送信装置から送信されたデータが各データ処理装置に到達するまでに要する時間を、パケットの送信順序で相殺することができ、データ送信装置からの段数に関わりなく、全てのデータ処理装置において略々同時刻にそれぞれデータを取得することができる。
【0028】
また、本発明では、各データ処理装置が一系統の伝送路によりデイジーチェーン接続されていることから、データ処理装置の接続数を増やした場合であっても、データの伝送に用いる信号線の数が増加してしまうことがない。
【0029】
また、本発明の請求項2に係るデータ伝送システムは、請求項1記載の構成に加えて、上記データ送信装置は、パケットの送信タイミングを示すクロック信号を上記伝送路に供給するクロック信号供給手段をさらに備え、上記パケット送信手段及び上記パケット送受信手段は、上記クロック信号供給手段により供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信する。
【0030】
さらに、本発明の請求項9に係るデータ伝送方法は、請求項8記載の構成に加えて、上記データ送信装置及び上記各データ処理装置においては、上記伝送路に供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信する。
【0031】
このように、クロック信号に基づいた送信タイミングに同期して各データ処理装置から下位の装置に対してパケットを送信する構成とすることにより、パケットの伝達処理を制御することが容易となる。また、パケット群をデータ処理装置の間で伝達するために要する時間や、パケット群を全てのデータ処理装置に対して伝達完了するまでに要する時間を予め知ることができることから、各データ処理装置がそれぞれのパケットを取得する時刻を制御することが容易となる。
【0032】
また、本発明の請求項3に係るデータ伝送システムは、請求項1記載の構成に加えて、上記パケット送信手段は、上記各データ処理装置に対して送信するパケットの先頭に、制御コマンドを格納した制御パケットを付加して送信し、上記各データ処理装置は、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うデータ処理手段をさらに備える。
【0033】
さらに、本発明の請求項10に係るデータ伝送方法は、請求項8記載の構成に加えて、上記データ送信装置においては、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、上記各データ処理装置においては、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行う。
【0034】
このように、パケット群の先頭に制御コマンドを格納しておくことにより、各データ処理装置に対してデータを伝達するだけでなく、各種の処理動作を要求する制御コマンドを伝達することができる。このような処理動作としては、例えば、各データ処理装置の接続状態を確認するための処理、各データ処理装置の動作状態を診断するための処理、或いは、所定のデータ処理装置からデータを取得するための処理などを挙げることができる。
【0035】
また、本発明の請求項4に係るデータ伝送システムは、請求項3記載の構成に加えて、上記データ処理手段は、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、上記パケット送受信手段は、上記データ処理手段によって新たなデータが格納されたパケットを、受信したパケット群に含めて送信する。
【0036】
さらに、本発明の請求項11に係るデータ伝送方法は、請求項10記載の構成に加えて、上記各データ処理装置においては、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、当該パケットを、受信したパケット群に含めて送信する。
【0037】
このように、パケット群に含まれる制御パケットによって示される要求に応じて、任意のデータ処理装置が新たなデータをパケットに格納して下位の装置に送信することにより、例えばデータ処理装置に備えられたセンサによって取得されたデータなどを下位の装置に伝達することができる。これにより、データ送信装置からのデータを伝達するだけでなく、任意のデータ処理装置において得られたデータを他の装置に電送することが可能となる。
【0038】
また、本発明の請求項5に係るデータ伝送システムは、請求項1記載の構成に加えて、上記伝送路において最も下位に接続されたデータ処理装置における上記パケット送受信手段は、受信したパケット群を上記データ送信装置に対して送信し、上記データ送信装置は、最も下位に接続されたデータ処理装置から送信されたパケット群を受信するパケット受信手段をさらに備える。
【0039】
さらに、本発明の請求項12に係るデータ伝送方法は、請求項8記載の構成に加えて、上記伝送路において最も下位に接続されたデータ処理装置においては、受信したパケット群を上記データ送信装置に対して送信し、上記データ送信装置においては、最も下位に接続されたデータ処理装置から送信されたパケット群を受信する。
【0040】
このように、最も下位のデータ処理装置がデータ送信装置に対してパケット群を伝達する構成とすることにより、データ送信装置は、送信したパケット群と受信したパケット群とを比較することによって、各データ処理装置に対してパケット群が正しく伝達されたか否かを確認することができる。また、例えば、任意のデータ処理装置において得られたデータが新たにパケット群に含まれている場合には、この新たなデータをデータ送信装置が取得することが可能となる。すなわち、このような構成とすることによって、データ送信装置は、各データ処理装置に対してデータを送信するだけでなく、各データ処理装置からデータを取得することが可能となる。
【0041】
また、本発明の請求項6に係るデータ伝送システムは、請求項5記載の構成に加えて、上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、上記データ送信装置における上記パケット送信手段は、初期値が格納されたパケットを送信し、上記各データ処理装置は、上記パケット送受信手段により自己に対して上位に接続された装置から受信したパケットに格納された値に基づいて、自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して上記パケット送受信手段により送信する接続状態検知手段をさらに備え、上記データ送信装置は、最も下位に接続されたデータ送信装置から送信されたパケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する接続数検知手段をさらに備える。
【0042】
さらに、本発明の請求項13に係るデータ伝送方法は、請求項12記載の構成に加えて、上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、上記データ送信装置において、初期値が格納されたパケットを送信し、上記各データ処理装置において、自己に対して上位に接続された装置からパケットを受信して、当該パケットに格納された値に基づいて自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して送信し、上記データ送信装置において、最も下位に接続されたデータ送信装置から送信されたパケットを受信し、当該パケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する。
【0043】
このようにして接続状態を確認する処理を行うことにより、各データ処理装置は、自身がデータ送信装置から何番目に接続されているかを知ることができるとともに、データ送信装置は、データ処理装置の接続数を知ることができる。したがって、例えばデータ処理装置が伝送路上に新たに接続されたり、或いは取り外されたりした場合であっても、データ送信装置及び各データ処理装置は、随時接続状態や接続数を検知することができる。このため、新たに手動で接続状態や接続数を設定する操作を行うことが不要となる。
【0044】
また、本発明の請求項7に係るデータ伝送システムは、請求項1記載の構成に加えて、上記各データ処理装置のうちの任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、上記任意のデータ処理装置における上記パケット送受信手段は、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、上記各データ処理装置のうち他のデータ処理装置における上記パケット送受信手段は、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信する。
【0045】
さらに、本発明の請求項14に係るデータ伝送システムは、請求項8記載の構成に加えて、上記各データ処理装置のうち任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、上記任意のデータ処理装置においては、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、上記各データ処理装置のうち他のデータ処理装置においては、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信する。
【0046】
このような処理を行うことにより、任意のデータ処理装置から他の装置に対してデータを送信することが可能となる。また、データを送信するデータ処理装置は、他の装置から受信したパケット群を送信していない状態の下で自己からのデータの送信処理を行うことから、他のデータ伝達処理を中断したり妨げたりすることがない。
【0047】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。以下では先ず、本発明の実施の形態として図1に示すデータ伝送システム1について、各デバイス同士の接続状態を中心として説明する。
【0048】
データ伝送システム1は、図1に示すように、データの送信を制御するルータ10と、ルータ10から送信されたデータを処理する複数のデバイス11とが一系統の伝送ケーブル12を介してデイジーチェーン接続されてなる。なお、デバイス11の接続数は任意であるが、同図中においては7つのデバイス11が接続された状態を図示しており、各デバイスを第1乃至第7のデバイス11a〜11gと称することとする。また、ルータ10には、汎用バス20を介してホスト装置21が接続されている。ルータ10は、ホスト装置21によって生成された送信対象とするデータを汎用バス20を介して取得するとともに、データを伝送路12に送信した結果や各デバイス11から取得したデータなどを汎用バス20を介してホスト装置21に対して受け渡す。
【0049】
ここで、伝送ケーブル12の具体的な構成例について、図2を参照しながら説明する。伝送ケーブル12は、図2に示すように、ルータ10及び各デバイス11の動作電圧が供給される第1の電源線(Vcc)と、アースとして設けられた第2の電源線(GND)と、ルータ10から送信されたデータの往路となる第1の信号線(RXD(TXD))と、データをルータ10に戻るための復路となる第2の信号線(DATA)と、クロック信号が供給される第3の信号線(CLOCK)とを有している。すなわち、伝送ケーブル12は、2本の電源線と3本の信号線とからなる計5本の線を有している。
【0050】
データ伝送システム1においては、上述のように構成された伝送ケーブル12が、ルータ10及び各デバイス11同士の間にそれぞれ配されており、それぞれルータ10及び各デバイス11に備えられたコネクタ13に接続されている。これにより、データ伝送システム1は、ルータ10及び各デバイス11が伝送ケーブル12によって互いに接続された状態とされる。すなわち、データ伝送システム1においては、伝送ケーブル12がルータ10及び各デバイス11間を接続する一系統の伝送路としての機能を果たしている。
【0051】
なお、図2に示すように、ルータ10から最も下位に接続された末端のデバイス11、すなわち第7のデバイス11gにおいては、第1の信号線(TXD)と第2の信号線(DATA)とがショートされる。これにより、ルータ10から第1の信号線(RXD(TXD))を介して伝送されたデータは、末端に位置する第7のデバイス11gで第2の信号線(DATA)を介してルータ10に戻ることとなる。ただし、ルータ10が各デバイス11からの戻りデータを受信する必要がなく、ルータ10から各デバイス11に対してデータを送信するだけで十分なシステムである場合には、第1の信号線(TXD)と第2の信号線(DATA)とをショートする必要がなく、また、第2の信号線(DATA)も不要である。
【0052】
ここで、ルータ10及び各デバイス11の具体的な構成例について、図3を参照しながら説明する。なお、図3においては、本例に係るデータ伝送システム1をロボットの信号伝送系に対して適用した場合について示し、ロボットの関節部を駆動するためのモータと、このモータにより駆動される関節部の状態を検出するセンサとが各デバイス11に備えられ、これらのモータを制御するデータやセンサによって得られたデータを伝送する場合について示している。また、同図においては、伝送ケーブル12に備えられる信号線のみについて図示しており、電源線については図示を省略している。
【0053】
ルータ10は、同図に示すように、伝送ケーブル12を介してデータを送受信するSIO(Signal Input Output)回路30と、このSIO回路30の動作を制御するCPU31とを有している。また、ルータ10には、ホスト装置21との間で汎用バス20を介して制御データを授受する回路が備えられるが、これについては図示を省略する。
【0054】
SIO回路30は、ホスト装置21から取得した送信対象とするデータを所定のデータ長からなるパケットに格納し、これを伝送ケーブル12の第1の信号線(TXD)を介して下位に接続されたデバイス(第1のデバイス11a)に送信するとともに、伝送ケーブル12の末端に接続されたデバイス(第7のデバイス11g)から第2の信号線(DATA)を介して戻されたデータを受信する。また、SIO回路30は、各デバイス11でパケットを送信するタイミングを示すクロック信号を生成して、このクロック信号を第3の信号線(CLOCK)に供給する。
【0055】
一方、各デバイス11は、伝送ケーブル12を介してデータを送受信するSIO回路40と、デバイス内部で各部の動作を制御するCPU41と、ロボットの関節部を駆動するためのモータ42と、このモータ42の駆動を制御するモータドライバ43と、関節部の曲げ角度や加速度或いはモータ42の回転角度などに関する状態を検出するセンサ44と、センサ45のアナログ出力をデジタル変換するA/Dコンバータ45とを有している。
【0056】
SIO回路40は、伝送ケーブル12の第1の信号線(RXD)を介して、データが格納されたパケットを上位に接続された装置から受信するとともに、第3の信号線(CLOCK)により供給されるクロック信号に基づいた所定の送信タイミングで、このパケットを第1の信号線(TXD)を介して下位の装置に送信する。また、SIO回路40は、受信したパケットが自己に宛てたものである場合には、このパケットに含まれるデータをCPU41に受け渡す機能を有している。なお、SIO回路40は、受信したパケットが自己に宛てたものであるか否かに関わらず、受信したパケットの全てを下位の装置に対して送信する。
【0057】
CPU41は、SIO回路40、モータドライバ43、及びA/Dコンバータ45に接続されており、各部の動作を制御する。各デバイス11においては、SIO回路40によって自己宛のデータが取得されると、このデータがCPU41に受け渡され、このデータによって要求された処理内容に応じた演算処理や各部の動作を制御する処理をCPU41によって行う。
【0058】
例えば、要求された処理内容がモータ42を所定の角度だけ回転駆動するというものであった場合には、CPU41がモータドライバ43に対して所定の制御指令を発することにより、モータ42が回転駆動される。また、センサ44によって検出された情報は、A/Dコンバータ45によってデジタルデータに変換された後に、CPU41を介してSIO回路40に転送され、このSIO回路40によってパケット化されて所定のタイミングで下位の装置に伝達される。
【0059】
なお、図3においては、各デバイス11のそれぞれにセンサ44及びA/Dコンバータ45が配設された場合について例示しているが、これらを各デバイス11の全てに配設する必要はなく、一部のデバイス11にのみ配設されていてもよい。また、各デバイス11は、モータ42及びモータドライバ43とセンサ44及びA/Dコンバータ45とのうち、いずれか一組だけを備えて構成されていてもよい。また、各デバイス11と同様にして、モータ42及びモータドライバ43や、センサ44及びA/Dコンバータ45をルータ10にも配設し、このルータ10自身に、ロボットの関節部を駆動する機能を付加するとしてもよい。
【0060】
つぎに、以上のように構成されたデータ伝送システム1において、ルータ10から各デバイス11に対してデータを伝達する処理の概略について説明する。
【0061】
データ伝送システム1においては、例えば電源が投入された直後などに行う初期動作として、例えば図4に示すデータ構造を有するパケットをルータ10から送信することにより、ルータ10の下位に接続されたデバイス11の数を確定する処理(デバイス数確定処理)を行う。
【0062】
このときルータ10から送信するパケットは、例えば図4に示すように、当該処理を行うことを示す1バイトの接続コマンドと、接続数を示す1バイトの接続アドレス値と、1バイトのチェックサムとの計3バイトによって構成されている。なお、接続アドレス値の初期値は、例えば「0」とされる。
【0063】
デバイス数確定処理が開始されると、図5に示すように、ルータ10は、図4に示すパケットを下位に接続されたデバイス(第1のデバイス11a)に対して送信する(S10)。次に、ルータ10から送信された3バイトのパケットは、第1のデバイス11aによって受信されると(S11)、割り込みタスクによる処理のスイッチングが行われる(S12)。このスイッチング処理は、各デバイス11のSIO回路40又はCPU41における動作を、デバイス数確定処理に切り替える処理である。
【0064】
次に、第1のデバイス11aにおいては、SIO回路40又はCPU41によってパケットに接続コマンドが含まれていることを認識し(S13)、接続アドレス値に「1」を加算するとともに(S14)、チェックサムの値を更新する(S15)。次に、新たな接続アドレス値及びチェックサムが格納されたパケットを下位に接続されたデバイス11に送信する(S16)。
【0065】
このとき、第1のデバイス11aは、受信したパケットに含まれる接続アドレス値、又は「1」を加算した後の接続アドレス値に基づいて、自己がルータ10から何番目に接続されているかを知り、自己の接続状態をSIO回路40又はCPU41に接続されたメモリに記憶する。
【0066】
以上のような第1のデバイス11aにおける一連の処理(S10〜S16)が他の各デバイス11b〜11gにおいても順次行われることにより、パケットが各デバイス11に伝達されてゆく。そして、伝送ケーブル12において最も下位の末端に接続された第7のデバイス11gは、受信したパケットに対して一連の処理を行った後に、接続アドレス値及びチェックサムを変更した後のパケットを第2の信号線(DATA)を介してルータ10に送信する(S16)。
【0067】
次に、ルータ10は、第2の信号線(DATA)を介して第7のデバイス11gから送信されたパケットを受信すると(S17)、割り込みタスクによる処理のスイッチングが行われる(S18)。そして、受信したパケットに含まれる接続アドレス値を参照する(S19)ことにより、伝送ケーブル12上に接続されたデバイス11の接続数を知る。このデバイス11の接続数は、ルータ10のSIO回路30又はCPU31に接続されたメモリに記憶され、一連のデバイス数確定処理が終了する(S20)。
【0068】
一方、上述したデバイス数確定処理が完了した後に、通常のデータ送信処理を行う場合には、例えば図6に示すようなパケット群をルータ10から送信する。このパケット群は、制御パケットと複数のデータパケットとからなる1フレームによって構成されてなる。制御パケットは、1バイトの制御コマンドと、1バイトの送受信データと、1バイトのチェックサムとの計3バイトで構成されている。また、データパケットは、2バイトの送受信データと、1バイトのチェックサムとの計3バイトで構成されている。
【0069】
制御パケットには、以降に続く複数のデータパケットに含まれる送受信データを各デバイス11においてどのように処理するかを指示する制御コマンドが含まれている。すなわち、各デバイス11は、パケット群を受信したときに、制御パケットに含まれる制御コマンドに従った処理を行う。
【0070】
また、図6に示すパケット群においては、制御パケットの直後に位置するデータパケットが最も下位に接続された末端のデバイス(第7のデバイス11g)に宛てたパケットであり、このデータパケットに含まれる送受信データが第7のデバイス11gに対して送信対象とされている。また、制御パケット以降で2番目のデータパケットは、第7のデバイス11gよりも1つ上位に接続されたデバイス(第6のデバイス11f)に宛てたパケットであり、3番目のデータパケットは、第7のデバイス11gよりも2つ上位に接続されたデバイス(第5のデバイスe)に宛てたパケットである。このように、ルータ10から送信するパケット群は、制御パケットに続いて、最も下位に接続されたデバイスに宛てたデータパケットから順に並んでおり、最も末尾のデータパケットは、ルータ10の直後に接続されたデバイス(第1のデバイス11a)に宛てたパケットとされている。
【0071】
また、パケット群に含まれるデータパケットは、伝送ケーブル12を介して接続されたデバイス11の数に相当する数だけ用意されている。すなわち、本例においては、7つのデバイス11a〜11gが接続されていることから、制御データに続いて7つのデータパケットがルータ10から送信される。
【0072】
なお、パケット群(1フレーム)に含まれるデータパケットは、ルータ10にデイジーチェーン接続されるデバイス11の数と同じ数だけ用意すればよい。また、本例においては、ルータ10及び各デバイス11の間で1つのパケットを転送するために要する時間は、24μsecとする。したがって、図6に示すような計8パケットからなるパケット群をルータ10及び各デバイス11の間で転送するために要する時間は、192μsecである。ただし、この転送時間は、後述する同期キャラクタを含まない。さらに、本例においては、ルータ10及び各デバイス11の間で伝送ケーブル12を介して行われるデータの伝送レートは、1.5MHzであるものとする。
【0073】
通常のデータ送信処理が開始されると、図7に示すように、ルータ10は、クロック信号に基づいた送信タイミングで、図6に示すパケット群を3バイトずつ(1パケットずつ)下位のデバイス(第1のデバイス11a)に対して送信する(S30)。このとき、最初に送信されるパケットは制御パケットであり、この制御パケット以降に順次送信されるパケットはデータパケットである。
【0074】
次に、第1のデバイス11aは、ルータ10から送信されたパケット群のうち最初のパケット、すなわち制御パケットを受信すると(S31)、このパケットに含まれる制御コマンドに基づいて割り込みタスクによる処理のスイッチングが行われる(S32)。このスイッチング処理は、各デバイス11のSIO回路40又はCPU41における動作を、デバイス数確定処理に切り替える処理である。
【0075】
次に、第1のデバイス11aにおいては、制御パケットに続いて送信されてくるデータパケットを順次受信しながら(S33)、受信した各パケットをクロック信号に基づいた送信タイミングで順次下位に接続されたデバイス11に送信する(S34)。
【0076】
このとき、第1のデバイス11aにおいては、パケット群の送受信処理を行う一方で、各データパケットが自己に宛てたものであるか否かを判定し、自己に宛てたデータパケットである場合には、このデータパケットから送受信データを取り出して、このデータに対して制御パケットによって示された処理内容に従ったデータ処理を施す(S35)。そして、データ処理の結果、必要に応じて当該データパケットの送受信データを書き換えるなどした後に当該データパケットを送信する。
【0077】
以上のような第1のデバイス11aにおける一連の処理(S31〜S35)が他の各デバイス11b〜11gにおいても順次行われることによって、パケット群が各デバイス11に伝達されてゆく。そして、伝送ケーブル12において最も下位の末端に接続された第7のデバイス11gは、受信したパケット群に対して同様な一連の処理を行った後に、ルータ10に対してパケット群を送信する。なお、図7においては、第2乃至第6のデバイス11b〜11fについての図示を省略する。
【0078】
そして、ルータ10は、第7のデバイス11gから送信されたパケット群のうち最初のパケット、すなわち制御パケットを受信すると(S36)、このパケットに含まれる制御コマンドに基づいて割り込みタスクによる処理のスイッチングが行われ(S37)、制御パケットに続いて送信されてくるデータパケットを順次受信する(S38)。こうして、ルータ10から送信したパケット群が、各デバイス11に順次伝送され、最終的にルータ10に戻ってくることとなる。
【0079】
なお、以上のような通常のデータ送信処理を行う間に、センサ44によって得られたデータ(以下、センサデータと称する。)を送信すべきことを示す割り込み信号が各デバイス11のうちのいずれかで発生した場合には、以下のようにして処理が行われる。
【0080】
この場合に、このデバイス11は、上位のデバイス11から受信したパケット群を送信していない状態の下で、或いは、上位のデバイス11から受信したパケット群を順次送信する合間に、センサデータをパケットに格納して、このパケットを下位のデバイス11に対して送信する。このように送信されたセンサデータが格納されたパケットは、通常のデータ送信処理と同様にして順次下位のデバイス11に伝達され、最終的にルータ10によって受信される。
【0081】
データ伝送システム1では、上述の如く、最も下位に接続されたデバイス11に対して送信対象とするパケットから順に並んだパケット群が、ルータ10から下位のデバイス11に向けて順次伝達されることとなる。このとき、パケット群の先頭部には、最も下位に接続されたデバイス(第7のデバイス11g)に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデバイス(第1のデバイス11a)に宛てたパケットが存在することとなる。
【0082】
このため、最も下位に接続された第7のデバイス11gは、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続された第1のデバイス11aは、受信したパケット群を順次下位のデバイス(第2のデバイス11b)に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、ルータ10からの段数が多く、データの伝送に時間を要する下位側のデバイス11ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。
【0083】
このため、データ伝送システム1においては、ルータ10から送信されたデータが各デバイス11に到達するまでに要する時間を、パケットの送信順序で相殺することができ、ルータ10からの段数に関わりなく、全てのデバイス11において略々同時刻にそれぞれデータを取得することができる。
【0084】
また、データ伝送システム1では、ルータ10及び各デバイス11間が伝送ケーブル12によって接続されており、この伝送ケーブル12による一系統の伝送路によって複数のデバイス11に対するデータの伝達を行うことから、図8に示すように、ルータ10及び各デバイス11間の接続に要する配線数や、システム全体を構築するために必要となる装置の数を最小限とすることができる。
【0085】
具体的には、図8に示す例のように、7つのデバイス11を有するシステムを実現する場合には、必要となる伝送ケーブル12の数は7本であり、必要となるコネクタ13の数は8組である。これにより、データ伝送システム1は、システムを構成するために要する配線数、コネクタ数、装置数を最小限とすることができ、システム全体を小型化・低コスト化することができる。
【0086】
また、1.5MHzという比較的低い伝送レートであっても、各デバイス11に対して高速且つ確実にデータを伝達することができる。したがって、省電力化を図ることができるだけでなく、EMC対策が容易となる。また、データ伝送システム1では、末端に接続されたデバイス(第7のデバイス11g)からルータ10に対してデータを戻すことができることから、このルータ10において送信データのエラー検出を行うことができる。
【0087】
また、各デバイス11に対して送信対象とするデータを、それぞれのデバイス11においてほぼ同時刻に取得することができることから、例えばロボットの伝送系に適用した場合に、このロボットの動作を全体として滑らかに制御することが可能となる。さらに、ルータ10及び各デバイス11の間には、いずれの箇所においても1本の伝送ケーブル12のみを配することで十分であることから、ロボットの関節部における配線の引き回しが容易である。
【0088】
ここで、本例に係るデータ伝送システム1の利点を明確にするために、信号伝送系にUSB(Universal Serial Bus)を用いた従来構成を図9に示す。なお、図9に示す例は、図8と同様に7つのデバイスに対してデータを伝送するシステムについて図示したものである。
【0089】
図9に示すように、従来構成によるシステムでは、伝送路の転送レートが12MHzに達することから、省電力化に限界があり、EMC対策を十分に施すことにも困難が伴う虞が生じる。また、各USBハブに備えられたポートが3つだけである場合には、図9に示すように、7つのデバイスを接続するためにUSBハブが3つ必要となるだけでなく、各USBハブ及び各デバイス間を接続する配線の数は10本必要であり、コネクタの数は20組必要となる。また、USBでは、アイソクロナス転送を行うとデータの送信エラーを判別することができない。また、接続するデバイスの数が増加するに伴って、十分高速にデータ送信を行うためには一度に送信可能なデータのバイト数が減少してしまうといった問題もある。したがって、従来構成のシステムは、例えばロボットの信号伝送系に用いる場合に適していない。
【0090】
ここで、本例に係るデータ伝送システム1を用いて、図10に示すような信号伝送系を有するロボット50を構成する場合について説明する。このロボット50においては、1個のルータ10と、ロボット50における関節部にそれぞれ配設された28個のデバイス11が設けられている。
【0091】
すなわち、このロボット50においては、首部の4つの関節を駆動するための4個のデバイス11と体幹部の2つの関節を駆動するための2個のデバイス11とが胴体部に設けられている。また、左右の腕部には、それぞれ5つの関節を駆動するための5個のデバイス11が設けられており、左右の脚部には、それぞれ6つの関節を駆動するための6個のデバイス11が設けられている。
【0092】
また、胴体部に設けられたルータ10と、左右の腕部及び脚部の末端に位置するデバイス11とは、センサ44を具備している。ロボット50に設けられたデバイス11は、ルータ10に対して図10中の矢印で示すように、それぞれ伝送ケーブル12によって接続されている。
【0093】
以上の構成とされたロボット50においては、ルータ10と各デバイス11とは、図11に示すような形態で接続されている。なお、図11においては、ルータ10に4つのSIO回路30が備えられている場合について図示している。ロボット50は、ルータ10及び各デバイス11同士の間が5本の線によって構成された1本の伝送ケーブル12でそれぞれ接続されている。
【0094】
ここで、従来のUSBを用いた信号伝送系によってロボット50と同様なシステムを構成した場合の接続状態を図12に示す。図12に示すように、従来の信号伝送系を用いて構成されたロボット100は、1個のUSBルータ150、及び28個のデバイス151の他に、11個のUSBハブ152が必要となる。また、同図中においては、ロボット100に設けられたUSBルータ150、デバイス151、及びUSBハブ152同士の間の配線を矢印で示す。
【0095】
また、ロボット100におけるUSBルータ150、デバイス151、及びUSBハブ152の間の接続形態を図13に示す。なお、図13においては、USBハブ152に4つのポートが備えられている場合について図示している。
【0096】
従来構成による信号伝送系によって構成されたロボット100は、図12及び図13から明らかであるように、本例に係るロボット50と比較して、配線が非常に煩雑となるだけでなく、数多くのUSBハブが必要となる。また、USBでは、1本の伝送ケーブルに4本の線が備えられていることから、ロボット100においては、末端部以外の各関節で8本以上(最大で12本)の配線を施す必要がある。
【0097】
つぎに、複数のデバイス間でデータを伝送する際に要する時間に注目して、従来の信号伝送システムによってデータ伝送を行う場合と、本例に係るデータ伝送システム1によってデータ伝送を行う場合とについて順次説明する。
【0098】
先ず、USBを用いた従来の信号伝送システムによってUSBルータから所定のUSBデバイスに対してデータの取得要求を行い、このUSBデバイスからのデータをUSBルータによって取得するまでにデータが送受信される様子を、図14に示す。
【0099】
USBを利用したシステムにおいては、データの送受信タイミングの基本単位が1msecとされている。このため、図14に示すように、USBルータからデータの取得要求が所定のUSBデバイスに対して送受信され、この取得要求がデバイス側で処理された後にUSBルータに戻されて、USBルータ側でデータ処理が完了するまでに、少なくとも4msecが必要となる。
【0100】
また、USBを利用したシステムにおいては、USBデバイス側に備えられたセンサなどによって得られたデータを割り込み処理することによってUSBルータに送信する場合にも、図15に示すように、最大で4msecの遅れが生じてしまう。
【0101】
次に、単純なデイジーチェーン接続方式を利用した従来の信号伝送システムによってルータから各デバイスに対してデータを送信する場合について、データが送受信される様子を図16に示す。なお、図16においては、ルータに対して4つのデバイスが接続されており、ルータから15バイトのデータを送信したときに、このデータが末端に接続されたデバイスから再びルータに戻ってくるまでのデータ伝送の様子を示す。また、図16においては、送信対象とするデータの前後に、データの先頭と末尾とを識別するための2バイトの同期キャラクタを送信するものとする。
【0102】
この場合、図16に示すように、送信対象とするデータと同期キャラクタとからなる単位データ群を送信するためには例えば136μsecの時間を要する。また、各デバイスにおけるデータ処理に所定の時間を要することから、この単位データ群は、各デバイス間を伝送されるにつれて伝達遅れが生じることとなる。
【0103】
この伝達遅れによって、ルータから最も上位に接続された第1のデバイスにおいてデータ処理が開始される時刻と、ルータから最も下位に接続された第4のデバイスにおいてデータ処理が開始される時刻との間では408μsecのずれが生じる。また、ルータから送信されたデータ群が、第4のデバイスから再びルータまで戻ってくるまでには、664μsecの時間を要する。
【0104】
このように、単純なデイジーチェーン接続方式によってデータを伝送するだけでは、図16に示すように、ルータから送信されたデータが各デバイスにおいてデータ処理が開始される時刻にずれが生じてしまう。このため、ロボットの信号伝送系に適用すると、各デバイスを同時刻に一斉に駆動開始させるといった高いリアルタイム性が要求されるような制御を行うことが甚だしく困難となってしまう。
【0105】
ここで、データ伝送システム1においてデータが伝達される様子を、図17に示す。なお、図17に示す例では、図16に示した場合と同様に、ルータ10に対して4つのデバイス11が接続されている場合を想定する。
【0106】
また、図17に示す例では、図6に示すように、ルータ10から各デバイス11に対してそれぞれ送信対象とするデータがそれぞれ3バイトのデータパケットに格納され、これらデータパケットの先頭に制御パケットが付加されてなる構造で伝達されるものとする。ただし、本例の場合では接続されるデバイス11が4つであるので、1個の制御パケットと、この制御パケットに続く4個のデータパケットとの計5パケットによって1フレームが構成される。
【0107】
また、本例では、各パケットを送信する前後に、データの先頭と末尾とを識別するための2バイトの同期キャラクタを少なくとも1つ送信するものとする。このように同期キャラクタを用いてパケットを送受信することにより、ルータ10及び各デバイス11間で送受信される各パケットの存在位置が明確となり、送受信時に伝送ケーブル12で生じる伝達遅れによる誤差を解消して、確実にパケットを送受信することが可能となる。なお、この同期キャラクタは、各パケットを送受信するときと同様に、クロック信号に同期した送信タイミングで伝送ケーブル12上に送信される。
【0108】
本例では、図17に示すように、3バイトからなるパケット1つと2バイトからなる同期キャラクタ1つとによって構成される最小送信単位を送信するために、40μsecの時間を要する。このため、5つのパケットからなるパケット群(1フレーム)を送信するためには、184μsecの時間を要する。
【0109】
また、本例においては、図17に示すように、各デバイス11で処理されるデータがパケット化されており、ルータ10に対して下位に接続されたデバイス11に宛てたパケットほどパケット群の先頭に近い位置に自己に宛てたパケットが存在する。したがって、ルータ10から下位に接続されたデバイス11は、自己に宛てたパケットに含まれるデータをパケット群の受信を開始してから早い段階で取得することができる。このため、パケット群を各デバイス11に順次伝達してゆるために要する時間を、各デバイス11に宛てたパケットの送信順序で相殺することができ、図17に示すように、全てのデバイス11におけるデータの処理が同時刻に行われることとなる。
【0110】
また、ルータ10から送信されたパケット群が、第4のデバイス11から再びルータ10に戻ってくるまでには、344μsecの時間を要している。これは、図16に示した従来のデータ伝送方式と比較して、ルータ10から各デバイス11を一巡して再びルータ10に戻ってくるまでの時間を半分程度にまで短縮することができることを意味する。
【0111】
したがって、本例に係るデータ伝送方式を採用すれば、ルータ10から送信したデータを複数のデバイス11において同時刻に処理することが可能となり、また、従来方式と比較して高速にデータの伝達を行うことが可能であることが明らかである。
【0112】
つぎに、図17に示す例において、所定のデバイス(例えば第3のデバイス11c)に備えられたセンサ44によって得られたデータを、割り込み処理を行うことによって他のデバイス11或いはルータ10に対して送信する場合の例について、図18を参照しながら説明する。
【0113】
この場合には、例えば第3のデバイス11cにおいてセンサ44からの割り込み処理が開始されたものとすると、図18に示すように、先ずこの第3のデバイス11cから2つのパケットからなるパケット群が下位のデバイス(第4のデバイス11d)に送信される。このとき送信されるパケット群は、例えば図19に示すようなデータ構造とされる。
【0114】
すなわち、この場合に送信されるパケット群は、図19に示すように、それぞれ3バイトずつからなる制御パケット、及びこの制御パケットに続くデータパケットによって構成され、計2パケット送信単位(1フレーム)とされる。制御パケットは、当該パケット群がセンサ44からのデータを伝達するためのものであることを示す1バイトのセンサコマンドと、当該センサ44を識別するための1バイトのセンサアドレスと、1バイトのチェックサムとの計3バイトによって構成されている。また、データパケットは、センサ44によって得られたデータである2バイトのセンサデータと、1バイトのチェックサムによって構成されている。
【0115】
以上のような構造のパケット群は、第3のデバイス11cから送信されると、第4のデバイス11d、ルータ10、第1のデバイス11a、及び第2のデバイス11bに順次伝達される。これにより、第3のデバイス11cに備えられたセンサ44から得られたデータが、ルータ10及び他の全てのデバイス11a,11b,11dに伝達されることとなる。
【0116】
なお、ルータ10及び各デバイス11においては、第3のデバイス11cによって得られたデータに基づく何らかの処理(図中においては「センサ制御処理」として示す。)を行ってもよいし、取得したパケット群を単に下位のデバイスに対して送信する処理のみを行うとしてもよい。このセンサ制御処理としては、例えば、ロボットの特定部位に設けられたセンサから得られたデータに基づいて、他の部位に設けられた駆動系(デバイス)がモータを駆動制御するなどして、ロボット全体で迅速な姿勢制御を行う場合などにおいて、モータの制御処理などに相当するものである。
【0117】
このとき、図18に示すように、第3のデバイス11cにおいてセンサによる割り込み処理が開始されてから、この第3のデバイス11cからデータの伝達経路上において最も下位に接続された第2のデバイス11bにおいてデータ処理が完了するまでに、約240μsecの時間を要している。これは、図15に示した従来のデータ伝送方式が最大で4msec要するのに対して、センサからのデータを他のデバイスに伝達するために要する時間をおよそ1/20程度まで劇的に短縮することが可能であることを意味する。
【0118】
したがって、本例に係るデータ伝送システム1をロボットにおける信号伝送系に適用することにより、センサにより検出したデータに基づく姿勢制御などの応答が極めて高速なロボットを構成することができる。
【0119】
つぎに以下では、ルータ10におけるデータの送受信処理についての具体的な処理例について、図20に示すフローチャートを参照しながら説明する。なお、ルータ10においては、データ(パケット)の送受信処理がSIO回路30単独で実現されていてもよいし、SIO回路30とCPU31との双方が協調動作することにより実現されていてもよい。
【0120】
本例においては、CPU31に備えられたレジスタを用いることにより、送信対象とするデータがCPU31によって準備される場合を想定する。具体的には、CPU31に8つのレジスタA〜E,H,Lが用意され、レジスタAをパケットカウンタとして利用し、3バイトからなる1パケット分の送信データを一時格納するためにレジスタF,B,Cを利用し、レジスタD,E,H,Lをそれぞれ受信データを一時格納するために利用する。なお、受信データの格納用に4つのレジスタを利用しているが、1パケットを構成する3バイトを処理単位としてデータの受信処理を行う場合には、レジスタを3つだけ利用するとしてもよい。
【0121】
また、本例においては、送信対象とするデータが一時格納される送信レジスタと、受信したデータが一時格納される受信バッファがSIO回路30に用意されているものとする。すなわち、SIO回路30の送信レジスタに格納されたデータは、順次伝送ケーブル12を介して下位のデバイス11に送信され、最も下位のデバイス11から受信したデータは、SIO回路30の受信バッファに格納される。
【0122】
ルータ10は、データの送受信処理が開始されると、図20に示すステップS100において、CPU31は、内部のレジスタに対してPUSH命令を実行することにより、データを送受信する処理のために8つのレジスタA〜E,H,Lを確保する。
【0123】
次にステップS101において、CPU31は、レジスタAに初期値を格納するとともに、送信対象とする1番目のパケットに格納すべきデータを1バイトずつそれぞれレジスタF,B,Cに格納する。次にステップS102において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップS103に進める。また、SIO回路30が送信処理中である場合には、ステップS102の処理を繰り返し行うことにより待機する。
【0124】
ステップS103において、CPU31は、レジスタFに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、1番目のパケットのうちの1バイト目がSIO回路30によって送信される。
【0125】
次にステップS104において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップS105に進める。また、SIO回路30が送信処理中である場合には、ステップS104の処理を繰り返し行うことにより待機する。
【0126】
ステップS105において、CPU31は、レジスタBに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、1番目のパケットのうちの2バイト目がSIO回路30によって送信される。
【0127】
次にステップS106において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップS107に進める。また、SIO回路30が送信処理中である場合には、ステップS106の処理を繰り返し行うことにより待機する。
【0128】
ステップS107において、CPU31は、レジスタCに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、1番目のパケットのうちの3バイト目がSIO回路30によって送信される。以上のようにステップS103,S105,S107の処理がCPU31によって実行され、SIO回路30が送信レジスタ内のデータを送信完了した時点で、1番目のパケット、すなわち制御パケットの送信処理が完了したこととなる。
【0129】
次にステップS108において、CPU31は、SIO回路30が他のデバイス11から送信されたデータを新たに受信したか否かを判定し、受信されている場合には処理をステップS109に進め、受信されていない場合には処理をステップS110に進める。
【0130】
ステップS109において、CPU31は、SIO回路30の受信バッファに格納されているデータを1バイトずつ取得して、それぞれレジスタD,E,H,Lに格納し、処理をステップS110に進める。
【0131】
ステップS110において、CPU31は、レジスタAの値に「1」を加算するとともに、送信対象とする2番目のパケットに格納すべきデータを1バイトずつそれぞれレジスタF,B,Cに格納する。次にステップS111において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理が行われていない場合には処理をステップS112に進める。また、SIO回路30が送信処理中である場合には、ステップS111の処理を繰り返し行うことにより待機する。
【0132】
ステップS112において、CPU31は、レジスタFに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、2番目のパケットのうちの1バイト目がSIO回路30によって送信される。
【0133】
次にステップS113において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理中である場合には処理をステップS114に進める。また、SIO回路30による送信処理が完了している場合には、処理をステップS115に進める。
【0134】
ステップS114において、CPU31は、レジスタDに格納されたデータを、CPU31に接続されたメモリに転送する。これにより、受信したデータの1バイト分がメモリに格納されることとなる。この後、CPU31は、処理をステップS113に戻す。
【0135】
ステップS115において、CPU31は、レジスタBに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、2番目のパケットのうちの2バイト目がSIO回路30によって送信される。
【0136】
次にステップS116において、CPU31は、現在SIO回路30が他のデータを送信処理中であるか否かを判定し、送信処理中である場合には処理をステップS117に進める。また、SIO回路30による送信処理が完了している場合には、処理をステップS118に進める。
【0137】
ステップS117において、CPU31は、レジスタEに格納されたデータを、CPU31に接続されたメモリに転送する。これにより、受信したデータの1バイト分がメモリに格納されることとなる。この後、CPU31は、処理をステップS116に戻す。
【0138】
ステップS118において、CPU31は、レジスタCに格納されたデータをSIO回路30の送信レジスタに転送する。これにより、2番目のパケットのうちの3バイト目がSIO回路30によって送信される。以上のようにステップS103,S105,S107の処理がCPU31によって実行され、SIO回路30が送信レジスタ内のデータを送信完了した時点で、2番目のパケット(データパケット)の送信処理が完了したこととなる。
【0139】
次にステップS119において、CPU31は、SIO回路30が他のデバイス11から送信されたデータを新たに受信したか否かを判定し、受信されていない場合には処理をステップS120に進め、受信されている場合には処理をステップS121に進める。
【0140】
ステップS120において、CPU31は、レジスタH及びレジスタLに格納されたデータを、CPU31に接続されたメモリに転送する。これにより、受信したデータの2バイト分がメモリに格納されることとなる。この後、CPU31は、処理をステップS119に戻す。
【0141】
ステップS121において、CPU31は、SIO回路30の受信バッファに格納されているデータを1バイトずつ取得して、それぞれレジスタD,E,H,Lに格納し、処理をステップS122に進める。
【0142】
ステップS122において、CPU31は、送信対象とするデータ(パケット)が全て送信完了したか否かを判定する。この判定処理は、例えば、レジスタAに格納された値と、予めデバイス数確定処理を行うことにより取得したデバイス11の接続数とを比較することなどによって行われる。この判定の結果、全パケットが送信完了している場合には処理をステップS123に進め、送信が完了していない場合にはステップS110以降の処理を繰り返して、3番目のパケット、4番目のパケットを順次送信処理する。
【0143】
ステップS123において、CPU31は、内部のレジスタに対してPOP命令を実行することにより、8つのレジスタA〜E,H,Lを解放する。
【0144】
ルータ10においては、上述した一連の処理を行うことによって、送信対象とするデータをパケット化して送信するとともに、他のデバイス11から受信したデータをメモリに格納する。
【0145】
つぎに以下では、各デバイス11におけるデータの送受信処理についての具体的な処理例について、図21に示すフローチャートを参照しながら説明する。なお、各デバイス11においては、データ(パケット)の送受信処理がSIO回路40単独で実現されていてもよいし、SIO回路40とCPU41との双方が協調動作することにより実現されていてもよい。
【0146】
本例においては、CPU41に備えられたレジスタを用いることにより、受信したデータのチェックサム確認処理などがCPU41によって行われる場合を想定する。具体的には、CPU41に8つのレジスタA〜E,H,Lが用意され、レジスタAをパケットカウンタとして利用し、上位のデバイス11から受信したデータを1バイト毎に一時格納するためにレジスタF,B,C,Dを利用し、下位のデバイス11に送信するパケットに付与するチェックサムデータを一時格納するためにレジスタEを利用し、下位のデバイス11に送信するパケットのうちチェックサム以外の2バイトのデータをそれぞれ1バイト毎に一時格納するためにレジスタH,Lを利用する。なお、受信データの格納用に4つのレジスタを利用しているが、1パケットを構成する3バイトを処理単位としてデータの受信処理を行う場合には、レジスタを3つだけ利用するとしてもよい。
【0147】
また、本例においては、送信対象とするデータが一時格納される送信レジスタと、受信したデータが一時格納される受信バッファがSIO回路40に用意されているものとする。すなわち、SIO回路40の送信レジスタに格納されたデータは、順次伝送ケーブル12を介して下位のデバイス11に送信され、上位のデバイス11又はルータ10から受信したデータは、SIO回路40の受信バッファに格納される。
【0148】
各デバイス11は、データの送受信処理が開始されると、図21に示すステップS130において、CPU41は、内部のレジスタに対してPUSH命令を実行することにより、データを送受信する処理のために8つのレジスタA〜E,H,Lを確保する。
【0149】
次にステップS131において、CPU41は、レジスタAに初期値を格納するとともに、SIO回路40の受信バッファから1バイト分のデータ(受信データ0)を取得して、これをレジスタFに格納する。次にステップS132において、CPU41は、SIO回路40が新たなデータを受信したか否かを判定し、受信している場合には処理をステップS133に進め、受信していない場合にはステップS132の処理を繰り返し行うことにより待機する。
【0150】
ステップS133において、CPU41は、SIO回路40の受信バッファから次の1バイト分のデータ(受信データ1)を取得して、これをレジスタBに格納する。次にステップS134において、CPU41は、レジスタF内のデータを参照することによって、制御パケットに含まれるコマンドの内容を確認し、当該デバイス11によって新たなデータをパケットに格納して送信する必要があるか否かを判定するとともに、レジスタBの内容とレジスタFの内容とを加算した値をレジスタAに格納する。当該デバイス11からの新たなデータをパケットに格納する必要がある場合には、この新たなデータをレジスタH及びレジスタLに用意する。
【0151】
次にステップS135において、CPU41は、SIO回路40が新たなデータを受信したか否かを判定し、受信している場合には処理をステップS136に進め、受信していない場合にはステップS135の処理を繰り返し行うことにより待機する。
【0152】
ステップS136において、CPU41は、SIO回路40の受信バッファから次の1バイト分のデータ(受信データ2)を取得して、これをレジスタCに格納する。次にステップS137において、CPU41は、SIO回路40が新たなデータを受信したか否かを判定し、受信している場合には処理をステップS138に進める。また、受信していない場合にも処理をステップS138に進める。ステップS138において、CPU41は、SIO回路40の受信バッファから次の1バイト分のデータ(受信データ3)を取得して、これをレジスタDに格納する。
【0153】
次にステップS139において、CPU41は、レジスタAの内容とレジスタCの内容とを加算した値が「0」になるか否かを確認することによって、チェックサムの確認を行う。次にステップS140において、チェックサムが正常であるか否かを判定し、正常である場合には処理をステップS141に進め、正常でない場合には処理をステップS144に進める。
【0154】
ステップS141において、CPU41は、パケットカウンタ(レジスタA)を設定し、ステップS142において、このカウンタの値が一致するか否かを判定する。すなわち、当該パケットが当該デバイス11に宛てたものであるか否かを判定する。この判定の結果、一致する場合には処理をステップS143に処理を進め、一致しない場合には処理をステップS145に進める。
【0155】
ステップS143において、CPU41は、レジスタH、レジスタL、及びレジスタEに格納されたデータを順次SIO回路40の送信レジスタに転送する。これにより、これらレジスタH,L,E内のデータが下位のデバイス11に対して送信されることとなる。この後、CPU41は、処理をステップS146に進める。
【0156】
ステップS144において、CPU41は、パケットカウンタ(レジスタA)を設定し、ステップS145において、レジスタF、レジスタB、及びレジスタCに格納されたデータを順次SIO回路40の送信レジスタに転送する。これにより、これらレジスタF,B,C内のデータが下位のデバイス11に対して送信されることとなる。この後、CPU41は、処理をステップS146に進める。
【0157】
ステップS146において、CPU41は、レジスタD内に有意なデータが格納されているか否かを判定する。この判定の結果、レジスタD内のデータが有意なものである場合には処理をステップS147に進め、有意でない場合には処理をステップS149に進める。
【0158】
ステップS147において、CPU41は、レジスタDに格納されたデータをレジスタFに転送する。次にステップS148において、CPU41は、SIO回路40が新たなデータを受信したか否かを判定し、受信している場合には処理をステップS133に進め、受信していない場合にはステップS148の処理を繰り返し行うことにより待機する。
【0159】
ステップS149において、CPU41は、SIO回路40が新たなデータを受信したか否かを判定し、受信している場合には処理をステップS150に進め、受信していない場合には処理をステップS151に進める。
【0160】
ステップS150において、CPU41は、SIO回路40の受信バッファから1バイト分のデータ(受信データ0)を取得して、これをレジスタFに格納する。この後、CPU41は、処理をステップS133に進める。
【0161】
ステップS151において、CPU41は、上位のデバイス11から受信したデータを下位のデバイス11に対して送信する処理が全て完了しているか否かを判定する。この判定の結果、完了している場合には処理をステップS152に進め、完了していない場合には処理をステップS149に進める。
【0162】
ステップSS152において、CPU41は、パケットカウンタ(レジスタA)の値を初期化するとともに、内部のレジスタに対してPOP命令を実行することにより、8つのレジスタA〜E,H,Lを解放する。
【0163】
各デバイス11においては、上述した一連の処理を行うことによって、上位のデバイス11から受信したデータを下位のデバイス11に対して送信しながら、自己に宛てたパケットに含まれるデータを取り出したり、或いは当該パケットに新たなデータを格納して送信することができる。
【0164】
つぎに以下では、各デバイス11において、センサ44によって得られたデータを、割り込み処理を行うことによって他のデバイス11或いはルータ10に対して送信する場合の具体的な処理例について、図22に示すフローチャートを参照しながら説明する。なお、各デバイス11においては、割り込み処理がSIO回路40単独で実現されていてもよいし、SIO回路40とCPU41との双方が協調動作することにより実現されていてもよい。また、各デバイス11だけでなくルータ10にもセンサ44が備えられている場合には、以下と同様な処理をルータ10においても行うとすればよい。
【0165】
本例においては、CPU41に備えられたレジスタを用いることにより、図19に示した構造の2つのパケットを送信する場合を想定し、CPU41に8つのレジスタA〜E,H,Lが用意されているものとする。
【0166】
各デバイス11において、センサ44により得られたデータを送信する割り込み処理が開始されると、図22に示すステップS160において、CPU41は、内部のレジスタに対してPUSH命令を実行することにより、センサ割り込み処理のために8つのレジスタA〜E,H,Lを確保する。
【0167】
次にステップS161において、CPU41は、センサ44により得られたデータ(センサデータ)を取得する。次にステップS162において、CPU41は、図19に示す構造の制御パケットに格納すべきセンサコマンド、センサアドレス、及びチェックサムに相当するデータを生成して、それぞれレジスタF、レジスタB、及びレジスタCに格納する。
【0168】
次にステップS163において、CPU41は、レジスタF、レジスタB、及びレジスタCに格納されたデータを順次SIO回路40の送信レジスタに転送する。これにより、これらレジスタF,B,C内のデータが下位のデバイス11に対して制御パケットとして送信されることとなる。
【0169】
次にステップS164において、CPU41は、ステップS161で取得したセンサデータをパケットに格納するために適したデータ長に変換する。これにより、各々1バイトずつからなるセンサデータ0及びセンサデータ1が生成される。次にステップS165において、CPU41は、センサデータ0、センサデータ1、及びチェックサムをそれぞれレジスタH、レジスタL、レジスタEに格納する。
【0170】
次にステップS166において、CPU41は、レジスタH、レジスタL、及びレジスタEに格納されたデータを順次SIO回路40の送信レジスタに転送する。これにより、これらレジスタH,L,E内のデータが下位のデバイス11に対してデータパケットとして送信されることとなる。
【0171】
次にステップS167において、CPU41は、当該デバイス11内でセンサデータに基づく制御処理を行う。具体的には、例えばモータ42の駆動制御処理などを行う。次にステップS168において、CPU41は、内部のレジスタに対してPOP命令を実行することにより、8つのレジスタA〜E,H,Lを解放する。
【0172】
各デバイス11においては、上述した一連の処理を行うことによって、割り込み処理を行ってセンサデータを送信することができる。
【0173】
なお、上述においては、本発明の実施の形態として、ロボットの信号伝送系に適用した場合に好適な例について具体的に説明したが、本発明は、ロボットの信号伝送系への適用に限定されるものではなく、データ送信装置と複数のデータ処理装置との間でデータを伝送するシステムに広く適用することが可能であることはも勿論である。具体的には、例えば多数のセンサに対して一度にデータの検出要求を送信し、これらのセンサから同時刻に検出データを取得する場合にも本発明を適用することができる。
【0174】
また、上述の説明においては、1つのパケットが3バイトによって構成されるものとしたが、各パケットをどのようなデータ長とするかは、システムに要求される信号伝送レートや、デバイスの接続数などに応じて任意とすることができる。
【0175】
【発明の効果】
本発明によれば、最も下位に接続されたデータ処理装置に伝達すべきパケットから順に並んだパケット群を、データ送信装置から順次下位のデータ処理装置に向けて伝達してゆくことができる。このとき、パケット群の先頭部には、最も下位に接続されたデータ処理装置に宛てたパケットが存在し、パケット群の最後部には、最も上位に接続されたデータ処理装置に宛てたパケットが存在することとなる。
【0176】
このため、最も下位に接続されたデータ処理装置は、パケット群を受信した直後に自己に宛てたパケットを取得することができる一方で、最も上位に接続されたデータ処理装置は、受信したパケット群を順次下位のデータ処理装置に送信する処理の最終段になって漸く自己に宛てたパケットを取得することができる。すなわち、データ送信装置からの段数が多く、データの伝送に時間を要する下位側のデータ処理装置ほど、受信するパケット群の先頭寄りに自己に宛てたパケットが存在し、パケット群を受信開始後の早い時刻に自己に宛てたパケットを取得できることとなる。したがって、本発明によれば、データ送信装置から送信されたデータが各データ処理装置に到達するまでに要する時間を、パケットの送信順序で相殺することができ、データ送信装置からの段数に関わりなく、全てのデータ処理装置において略々同時刻にそれぞれデータを取得することができる。
【0177】
また、本発明では、各データ処理装置が一系統の伝送路によりデイジーチェーン接続されていることから、データ処理装置の接続数を増やした場合であっても、データの伝送に用いる信号線の数が増加してしまうことがない。
【0178】
したがって、本発明によれば、データ送信装置に対してデイジーチェーン接続された複数のデータ処理装置に対して、略々同時刻に且つ高速にデータを伝送することが可能でなり、また、このようなデータの伝送を一系統の伝送路によって実現することができる。このため、例えば、ロボットの関節部を駆動する駆動系を接続して制御する場合などに本発明を適用することにより、ロボットに備えられた複数の関節部を高速に且つ全体としてなめらかに駆動制御することが可能となる。
【図面の簡単な説明】
【図1】本発明の実施の形態として示すデータ伝送システムにおける各装置の接続状態を示す模式図である。
【図2】同データ伝送システムにおける伝送ケーブルの具体的な構成例について示す模式図である。
【図3】同データ伝送システムにおけるルータ及び各デバイスの具体的な構成例について示す概略ブロック図である。
【図4】同データ伝送システムで送受信されるパケットの構造についての一例を示す模式図である。
【図5】同データ伝送システムで行われるデバイス数確定処理について説明するために示す模式図である。
【図6】同データ伝送システムで送受信されるパケット群の構造についての一例を示す模式図である。
【図7】同データ伝送システムで行われるデータ送信処理について説明するために示す模式図である。
【図8】同データ伝送システムで必要となる配線数及びコネクタ数について説明するために示す模式図である。
【図9】USBを用いた従来システムで必要となる配線数及びコネクタ数について説明するために示す模式図である。
【図10】本発明に係るデータ伝送システムを用いて構成されるロボットにおける各デバイスの接続状態について説明するために示す模式図である。
【図11】本発明に係るデータ伝送システムを用いて構成されるロボットにおける各デバイス接続状態について説明するために示す別の模式図である。
【図12】USBを用いた従来システムを利用して構成されるロボットにおける各デバイスの接続状態について説明するために示す模式図である。
【図13】USBを用いた従来システムを利用して構成されるロボットにおける各デバイスの接続状態について説明するために示す別の模式図である。
【図14】USBを用いた従来システムにおいてデータが送受信される様子を示す模式図である。
【図15】USBを用いた従来システムにおいて割り込み処理によってデータを送信する場合について説明するために示す模式図である。
【図16】単純なデイジーチェーン接続方式を利用した従来システムにおいてデータが送受信される様子を示す模式図である。
【図17】本発明に係るデータ伝送システムにおいてデータが伝達される様子を示す模式図である。
【図18】同データ伝送システムにおいて割り込み処理によってデータが伝達される様子を示す模式図である。
【図19】同データ伝送システムにおいて割り込み処理によってデータを送信する場合におけるパケット群の構造について示す模式図である。
【図20】同データ伝送システムで用いられるルータにおけるデータの送受信処理についての一例を示すフローチャートである。
【図21】同データ伝送システムで用いられる各デバイスにおけるデータの送受信処理についての一例を示すフローチャートである。
【図22】同データ伝送システムで用いられる各デバイスにおいて割り込み処理によってデータを送信する場合の処理についての一例を示すフローチャートである。
【符号の説明】
1 データ伝送システム、10 ルータ、11 デバイス、12 伝送ケーブル、13 コネクタ、20 汎用バス、21 ホスト装置、30 SIO回路、31 CPU、40 SIO回路、41 CPU、42 モータ、43 モータドライバ、44 センサ、45 A/Dコンバータ
[0001]
[Field of the Invention]
The present invention provides a data transmission system for transmitting data via a transmission path between a data transmission apparatus and a plurality of data processing apparatuses daisy-chain connected to the data transmission apparatus by a single transmission path, and It relates to a data transmission method.
[0002]
[Prior art]
A mechanical device that performs a motion that resembles a human motion is called a “robot”. 2. Description of the Related Art Robots have been widely used in the form of industrial robots such as various manipulators and transfer robots for the purpose of automation and labor saving of production work in factories. In recent years, not only robots for industrial use, which is a conventional usage form, but also robots with high communication ability supposed to be used in ordinary households, that is, so-called humanoid robots and pet-type robots, are attracting attention. ing.
[0003]
The robot has a plurality of joints for performing a desired movement, and a drive system for driving the joints is provided for each joint. In general, this drive system controls an actuator that drives a joint, an encoder that measures the displacement of the actuator, and an actuator that responds to an instruction requested from the main control unit while feeding back the displacement measured by the encoder. Control circuit. The main control unit controls the driving systems of the plurality of joints as a whole, thereby controlling the robot to perform desired movements and operations as a whole.
[0004]
[Problems to be solved by the invention]
By the way, it is desired that the robot realize a motion with a high degree of freedom in an arbitrary work space, and the load received from the external environment during the work often fluctuates. Therefore, it is necessary to drive and control each joint of the robot cooperatively. For this reason, when a robot is configured by a main control unit that integrally controls the operation of the entire robot and a plurality of drive systems provided for a plurality of joints, the main control unit synchronizes each joint while maintaining synchronization. It is important to simultaneously and quickly transmit control commands corresponding to changes in the external environment to the drive systems of the units.
[0005]
In particular, in the case of a humanoid robot or a pet-type robot, for example, the joints of the legs and the arms are operated in cooperation with each other and smoothly, so that a natural movement closer to that of a human or an animal is performed. It is desired to be realized. In order to realize such an operation, it is important that control commands are simultaneously and rapidly transmitted from the main control unit to the drive systems of the joints.
[0006]
As described above, in order to transmit control commands simultaneously and at high speed, for example, the main control unit and each drive system are connected one-to-one by signal transmission cables, and the control command output by the main control unit is connected. May be transmitted to each drive system via each signal transmission cable. This facilitates simultaneous and high-speed control of each drive system by the main control unit.
[0007]
However, in this case, it is not only necessary to prepare signal transmission cables according to the number of drive systems and prepare a plurality of input / output ports in the main control unit, but also to complicate circuit design in the main control unit. Therefore, there is a problem that the cost is increased. Further, for example, in human-type robots and pet-type robots, it is desired to be small and lightweight, so that an increase in the number of signal transmission cables causes an increase in weight. Furthermore, the routing of the signal transmission cable at each joint also poses a problem. Specifically, for example, when connecting a plurality of signal transmission cables corresponding to each drive system that drives each part of the hand or finger to a main control unit provided on the body, these plurality of signal transmission cables are connected to the elbow. It needs to be routed at the joint.
[0008]
Humanoid robots and pet-type robots may have more than two degrees of freedom such as roll, pitch, and yaw in each joint in order to achieve more natural movements. It is said. Also, it is necessary to ensure a certain level of aesthetics at the joints. Therefore, it is extremely difficult to route a large number of signal transmission cables at the joints while satisfying all of these conditions at each joint.
[0009]
Therefore, in order to solve the above-described problem, a method of daisy-chaining each drive system to the main control unit without connecting the main control unit and the drive system of each joint unit one-to-one, ie, It is conceivable to transmit a control command by a serial communication method by adopting a method of serially connecting each of these drive systems to the main control unit using a serial interface prepared for each of the drive systems. As a result, a single signal transmission cable that connects between each drive system can be shared by multiple drive systems, significantly reducing the number of signal transmission cables and simplifying the routing of signal transmission cables at joints. Can be
[0010]
Here, as the serial communication method, for example, a start-stop synchronous serial communication method typified by RS-232C, which is a standard standardized by EIA (Electronics Industry Association), and companies such as Compaq USA And a synchronous serial communication system typified by USB (Universal Serial Bus) which is a standard to be used.
[0011]
However, since the start-stop synchronous serial communication system is required to transmit data according to an ASCII (American Standard Code for Information Interchange) code, the data length to be transmitted is longer than that of a control command actually required. It has a disadvantage that the transfer speed is low. For this reason, when a plurality of drive systems are connected in a daisy chain, it cannot be guaranteed that the data received in each drive system can be executed synchronously. In addition, there is a problem that as the number of connected drive systems increases, the delay of data generated in each drive system increases.
[0012]
Therefore, the start-stop synchronous serial communication method has a high degree of freedom in joints, as in the case of realizing a humanoid robot, for example, so that the number of connections of the drive system is large, and upright walking and smooth and natural operation are realized. It is not suitable when it is necessary to perform attitude control or high-speed operation control with high real-time properties.
[0013]
On the other hand, when the main control unit and a plurality of drive systems in the robot are connected by USB, the following problems occur.
[0014]
That is, for example, if the USB isochronous transfer mode is used for the purpose of realizing attitude control with high real-time property and high-speed operation control, the number of connectable drive systems is limited in order to perform sufficiently high-speed transmission. In addition, there is a problem that the amount of data that can be communicated at once decreases as the number of drive systems to be connected increases. For example, when 24 drive systems are connected to a single USB root hub, to perform isochronous transfer with a communication cycle of 1 millisecond, the maximum data that can be transmitted to each drive system is required. The amount is about a dozen bytes.
[0015]
Further, in the isochronous transfer mode, it is not possible to determine a data transmission error, so that the reliability of transmitted data is not guaranteed. Therefore, if the USB isochronous transfer mode is used for transmitting a control command in the robot, there is a problem that a fatal abnormal operation may occur due to an unexpected operation of the joint.
[0016]
Further, in the USB, since mutual communication cannot be performed between devices other than the host (USB root hub), it is possible to cause the joints to operate in cooperation by, for example, transmitting and receiving data between adjacent drive systems. Cannot, and cannot achieve agile reactions.
[0017]
Further, in the USB, the number of devices that can be connected to one relay circuit (hub circuit) is limited, so that when connecting a large number of drive systems, the number of hub circuits required increases, Not only is it difficult to reduce the overall size, but also there is a problem in that the circuit configuration becomes complicated, resulting in an increase in cost. When the number of hub circuits increases, the number of signal transmission cables connecting hub circuits or the number of signal transmission cables connecting hub circuits and devices also increases, and a large number of cables concentrate on joints, resulting in assembly. There is a problem that the work and the disassembly work become complicated.
[0018]
Also, in order to connect a large number of drive systems using the USB and realize high-speed data transmission with the main control unit, a clock signal oscillating at 12 MHz corresponding to the full-speed transfer mode is required. Become. For this reason, power consumption increases, and it becomes difficult not only to drive the robot for a long time, but also it is necessary to provide an EMC (Electro Magnetic Compatibility) countermeasure circuit. is there.
[0019]
Further, if a large number of drive systems are connected using the USB, a delay occurs in data transmitted from the main control unit, and it becomes difficult to perform high-speed operation control while ensuring real-time properties. Specifically, for example, assuming a case where 24 devices are connected, the data processing time in the host is 1 millisecond, the data transmission time from the host is 1 millisecond, and the device data reception time is 1 millisecond. It takes milliseconds and 1 millisecond as the data processing time in the device, and a total communication time of 4 milliseconds is required. For this reason, a delay occurs in data transmission, and the stability of the control system in the robot is limited.
[0020]
Therefore, USB is not suitable for use for transmitting a control command to each part of the robot.
[0021]
Also, when a host and a plurality of devices are connected in a daisy chain, and data is transmitted by a packet communication method widely used in the past, that is, a communication method in which data is stored and transmitted in a packet having a predetermined data length. Can raise the following problems.
[0022]
That is, in this case, when a large number of devices are connected, the time at which each device receives a packet transmitted from the host is shifted, and each device performs processing based on data included in the received packet. It becomes difficult to achieve synchronization between devices. Therefore, when a control command is transmitted between the main control unit and the drive system of each joint by a method combining the daisy chain connection and the conventional packet communication method, highly real-time attitude control and high-speed operation control can be achieved. It was difficult to realize.
[0023]
Therefore, the present invention has been made in view of the above-mentioned conventional circumstances, and transmits data at substantially the same time and at high speed to a plurality of data processing devices daisy-chain connected to a data transmitting device. It is an object of the present invention to provide a data transmission system and a data transmission method capable of minimizing the number of necessary transmission paths.
[0024]
[Means for Solving the Problems]
A data transmission system according to claim 1 of the present invention, comprising: a data transmission device; and a plurality of data processing devices daisy-chain connected to the data transmission device by a single transmission line. A data transmission system for transmitting data between the data processing device and the data processing device via the transmission path, wherein the data transmission device stores data to be transmitted to each of the data processing devices. Packet transmission means for sequentially transmitting a plurality of packets each having a predetermined data length, starting from a packet addressed to a data processing device connected at the lowest position in the transmission path, wherein each of the data processing devices has its own While receiving a group of packets from a device connected to a higher level, and sequentially transmitting each packet to a device connected to a lower level with respect to itself. Comprising a packet transmitting and receiving means for obtaining the data stored in the addressed to self-packet data.
[0025]
Also, the data transmission method according to claim 8 of the present invention provides the method of transmitting data between a data transmission device and a plurality of data processing devices daisy-chain connected to the data transmission device by a single transmission line. A data transmission method for transmitting data via a path, wherein in the data transmission device, a plurality of packets each having a predetermined data length in which data to be transmitted to each of the data processing devices is stored, In the transmission path, the packets are sequentially transmitted from the packet addressed to the lowest-order connected data processing device. In each of the data processing devices, a packet group is received from the device connected to the higher-order device, and each packet is received. While sequentially transmitting the data to the device connected to the lower device, the device acquires the data stored in the packet addressed to the device.
[0026]
According to the present invention configured as described above, a packet group arranged in order from the packet to be transmitted to the lowest-order connected data processing device is sequentially transmitted from the data transmission device to the lower-order data processing device. You can go. At this time, a packet addressed to the lowest-order connected data processing device exists at the head of the packet group, and a packet addressed to the highest-order connected data processing device exists at the end of the packet group. Will exist.
[0027]
Therefore, the data processing device connected at the lowest position can acquire the packet addressed to itself immediately after receiving the packet group, while the data processing device connected at the highest position At the final stage of the process of sequentially transmitting the packet to the lower-level data processing device, the packet addressed to itself can be acquired gradually. In other words, the lower the number of stages from the data transmitting device and the longer the time required for data transmission, the lower the data processing device, the closer to the head of the received packet group, there is a packet addressed to itself, and after the start of receiving the packet group. The packet addressed to itself can be acquired at an earlier time. Therefore, according to the present invention, the time required for the data transmitted from the data transmission device to reach each data processing device can be offset in the packet transmission order, regardless of the number of stages from the data transmission device. In each of the data processing devices, data can be obtained at substantially the same time.
[0028]
Further, in the present invention, since each data processing device is daisy-chained by one transmission line, even if the number of connected data processing devices is increased, the number of signal lines used for data transmission is reduced. Does not increase.
[0029]
In a data transmission system according to a second aspect of the present invention, in addition to the configuration according to the first aspect, the data transmission device supplies a clock signal indicating a packet transmission timing to the transmission path. And the packet transmitting means and the packet transmitting / receiving means transmit each packet in synchronization with the transmission timing of the packet indicated by the clock signal supplied by the clock signal supplying means.
[0030]
Further, in the data transmission method according to the ninth aspect of the present invention, in addition to the configuration according to the eighth aspect, the data transmission device and each of the data processing devices are indicated by a clock signal supplied to the transmission path. Each packet is transmitted in synchronization with the packet transmission timing.
[0031]
As described above, by adopting a configuration in which a packet is transmitted from each data processing device to a lower-level device in synchronization with a transmission timing based on a clock signal, it is easy to control a packet transmission process. In addition, since it is possible to know in advance the time required to transmit a packet group between data processing devices and the time required to complete transmission of a packet group to all data processing devices, It is easy to control the time at which each packet is obtained.
[0032]
In the data transmission system according to a third aspect of the present invention, in addition to the configuration according to the first aspect, the packet transmitting means stores a control command at a head of a packet transmitted to each of the data processing devices. Each of the data processing devices further includes a data processing unit that performs processing on data stored in the packet addressed to itself in response to the control command stored in the control packet. .
[0033]
Further, in the data transmission method according to claim 10 of the present invention, in addition to the configuration according to claim 8, the data transmitting apparatus further comprises a control command at a head of a packet group transmitted to each of the data processing apparatuses. The data processing device performs processing on the data stored in the packet addressed to itself in accordance with the control command stored in the control packet.
[0034]
By storing the control command at the head of the packet group as described above, not only data can be transmitted to each data processing device, but also a control command requesting various processing operations can be transmitted. As such processing operations, for example, processing for confirming the connection state of each data processing apparatus, processing for diagnosing the operation state of each data processing apparatus, or acquiring data from a predetermined data processing apparatus And the like.
[0035]
In the data transmission system according to a fourth aspect of the present invention, in addition to the configuration according to the third aspect, the data processing means is configured to execute the data transmission in response to a request indicated by a control command stored in the control packet. New data is stored for the addressed packet, and the packet transmission / reception unit transmits the packet in which the new data is stored by the data processing unit, in a received packet group.
[0036]
Furthermore, in the data transmission method according to claim 11 of the present invention, in addition to the configuration according to claim 10, in each of the data processing devices, in response to a request indicated by a control command stored in the control packet, New data is stored for a packet addressed to itself, and the packet is transmitted in a group of received packets.
[0037]
In this way, in response to a request indicated by a control packet included in a packet group, an arbitrary data processing device stores new data in a packet and transmits it to a lower-level device, so that the data processing device is provided with, for example, a data processing device. The data acquired by the sensor can be transmitted to a lower-level device. This makes it possible not only to transmit data from the data transmission device, but also to transmit data obtained in an arbitrary data processing device to another device.
[0038]
In the data transmission system according to a fifth aspect of the present invention, in addition to the configuration according to the first aspect, the packet transmission / reception means in the data processing device connected at the lowest position on the transmission path transmits a received packet group. The data transmitting apparatus further includes a packet receiving unit that transmits the packet to the data transmitting apparatus and receives a packet group transmitted from the lowest-order connected data processing apparatus.
[0039]
In a data transmission method according to a twelfth aspect of the present invention, in addition to the configuration according to the eighth aspect, in the data processing device connected at the lowest position in the transmission path, the received packet group is transmitted to the data transmission device. , And the data transmitting apparatus receives a group of packets transmitted from the lowest-order connected data processing apparatus.
[0040]
In this way, by configuring the lowest data processing device to transmit the packet group to the data transmission device, the data transmission device compares the transmitted packet group with the received packet group, It is possible to confirm whether or not the packet group has been correctly transmitted to the data processing device. Further, for example, when data obtained by an arbitrary data processing device is newly included in a packet group, the data transmission device can acquire the new data. That is, with such a configuration, the data transmission device can not only transmit data to each data processing device but also acquire data from each data processing device.
[0041]
In addition, in the data transmission system according to claim 6 of the present invention, in addition to the configuration according to claim 5, when performing a process of confirming a connection state of the data transmission device and each of the data processing devices to the transmission path, The packet transmission means in the data transmission device transmits a packet in which an initial value is stored, and each of the data processing devices stores the packet in a packet received from a device connected to the host by the packet transmission / reception means. Based on the received value, it detects the number of the connection to itself, and after updating the value stored in the packet, the packet transmission / reception means transmits to the device connected to the lower level with respect to itself. The data transmission apparatus further comprises a connection state detecting means for transmitting, wherein the data transmission apparatus transmits the packet transmitted from the lowest-order connected data transmission apparatus. Based on the value stored in the further includes a connection number detecting means for detecting the number of connections of the data processing device with respect to the transmission path.
[0042]
Furthermore, in the data transmission method according to claim 13 of the present invention, in addition to the configuration according to claim 12, when performing a process of checking a connection state of the data transmission device and each of the data processing devices to the transmission path, In the data transmitting device, a packet in which an initial value is stored is transmitted, and in each of the data processing devices, a packet is received from a device connected to a higher level with respect to the data processing device, and based on the value stored in the packet. In addition to detecting the order in which the self is connected, the value stored in the packet is updated, and then transmitted to the device connected to the lower order with respect to the self. Receiving a packet transmitted from a data transmission device connected to the data transmission device, and a data processing device for the transmission path based on a value stored in the packet. To detect the number of connections.
[0043]
By performing the process of confirming the connection state in this manner, each data processing device can know the order of the data transmission device from which the data transmission device is connected, and the data transmission device can recognize the connection status of the data processing device. You can know the number of connections. Therefore, for example, even when the data processing device is newly connected or disconnected on the transmission path, the data transmission device and each data processing device can detect the connection state and the number of connections at any time. Therefore, it is not necessary to newly perform an operation for manually setting the connection state and the number of connections.
[0044]
According to a seventh aspect of the present invention, in addition to the configuration according to the first aspect, the data transmission system transmits data from any one of the data processing devices to another device. The packet transmission / reception means in the arbitrary data processing apparatus transmits a packet storing data to be transmitted to itself under a state in which a packet group received from another apparatus is not transmitted. The packet transmitting / receiving means in the other data processing device among the data processing devices transmits the packet to the device connected to the lower order, and receives the packet from the device connected to the higher order with respect to itself. The packet is transmitted to a device that is connected to the device below it.
[0045]
Further, in the data transmission system according to claim 14 of the present invention, in addition to the configuration described in claim 8, a process of transmitting data from any one of the data processing devices to another device is provided. In performing the above, in the arbitrary data processing device, the packet storing the data to be transmitted is connected to the lower order with respect to the self in a state where the packet group received from the other device is not transmitted. The packet is transmitted to the device, and among the data processing devices, the other data processing device receives the packet from the device connected to the device at a higher position, and connects the packet to the device at a lower position. To the specified device.
[0046]
By performing such processing, data can be transmitted from any data processing device to another device. In addition, since the data processing device that transmits data performs the process of transmitting data from itself in a state in which a packet group received from another device is not transmitted, the data processing device interrupts or prevents other data transmission processes. Or not.
[0047]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. First, a data transmission system 1 shown in FIG. 1 will be described as an embodiment of the present invention, focusing on a connection state between devices.
[0048]
As shown in FIG. 1, a data transmission system 1 includes a router 10 that controls data transmission and a plurality of devices 11 that process data transmitted from the router 10 daisy-chained through a single transmission cable 12. Be connected. The number of connected devices 11 is arbitrary, but FIG. 1 shows a state in which seven devices 11 are connected, and each device is referred to as first to seventh devices 11a to 11g. I do. A host device 21 is connected to the router 10 via a general-purpose bus 20. The router 10 acquires the data to be transmitted generated by the host device 21 via the general-purpose bus 20, and transmits the result of transmitting the data to the transmission line 12 and the data acquired from each device 11 to the general-purpose bus 20. To the host device 21 via the Internet.
[0049]
Here, a specific configuration example of the transmission cable 12 will be described with reference to FIG. As shown in FIG. 2, the transmission cable 12 includes a first power supply line (Vcc) to which operating voltages of the router 10 and each device 11 are supplied, a second power supply line (GND) provided as ground, A first signal line (RXD (TXD)) serving as a forward path of data transmitted from the router 10, a second signal line (DATA) serving as a return path for returning data to the router 10, and a clock signal are supplied. And a third signal line (CLOCK). That is, the transmission cable 12 has a total of five lines including two power lines and three signal lines.
[0050]
In the data transmission system 1, the transmission cable 12 configured as described above is disposed between the router 10 and each device 11 and connected to the connector 13 provided in the router 10 and each device 11 respectively. Have been. Thereby, the data transmission system 1 is in a state where the router 10 and each device 11 are connected to each other by the transmission cable 12. That is, in the data transmission system 1, the transmission cable 12 functions as a single transmission line connecting the router 10 and each device 11.
[0051]
As shown in FIG. 2, in the terminal device 11 connected lowest from the router 10, that is, in the seventh device 11g, the first signal line (TXD) and the second signal line (DATA) are connected to each other. Is short-circuited. Thereby, the data transmitted from the router 10 via the first signal line (RXD (TXD)) is transmitted to the router 10 via the second signal line (DATA) by the seventh device 11g located at the end. I will return. However, if the router 10 does not need to receive the return data from each device 11 and only needs to transmit data from the router 10 to each device 11, the first signal line (TXD ) And the second signal line (DATA) need not be short-circuited, and the second signal line (DATA) is not required.
[0052]
Here, a specific configuration example of the router 10 and each device 11 will be described with reference to FIG. FIG. 3 shows a case in which the data transmission system 1 according to the present example is applied to a signal transmission system of a robot, in which a motor for driving a joint of the robot and a joint for driving the motor are shown. The figure shows a case where each device 11 is provided with a sensor for detecting the state of the above, and transmits data for controlling these motors and data obtained by the sensor. In FIG. 1, only the signal lines provided in the transmission cable 12 are shown, and the power supply lines are not shown.
[0053]
As shown in FIG. 1, the router 10 includes an SIO (Signal Input Output) circuit 30 for transmitting and receiving data via the transmission cable 12, and a CPU 31 for controlling the operation of the SIO circuit 30. The router 10 is provided with a circuit for transmitting and receiving control data to and from the host device 21 via the general-purpose bus 20, but this is not shown.
[0054]
The SIO circuit 30 stores the data to be transmitted acquired from the host device 21 in a packet having a predetermined data length, and this is connected to the lower level via the first signal line (TXD) of the transmission cable 12. It transmits to the device (first device 11a) and receives data returned from the device (seventh device 11g) connected to the end of the transmission cable 12 via the second signal line (DATA). In addition, the SIO circuit 30 generates a clock signal indicating the timing at which each device 11 transmits a packet, and supplies this clock signal to the third signal line (CLOCK).
[0055]
On the other hand, each device 11 includes an SIO circuit 40 for transmitting and receiving data via the transmission cable 12, a CPU 41 for controlling the operation of each unit inside the device, a motor 42 for driving a joint of the robot, and a motor 42 A motor driver 43 for controlling the driving of the motor, a sensor 44 for detecting a state related to the bending angle and acceleration of the joint or the rotation angle of the motor 42, and an A / D converter 45 for converting an analog output of the sensor 45 into a digital signal. are doing.
[0056]
The SIO circuit 40 receives a packet in which data is stored from a device connected at a higher level via a first signal line (RXD) of the transmission cable 12 and is supplied by a third signal line (CLOCK). This packet is transmitted to the lower-level device via the first signal line (TXD) at a predetermined transmission timing based on the clock signal. When the received packet is addressed to itself, the SIO circuit 40 has a function of transferring data included in the packet to the CPU 41. Note that the SIO circuit 40 transmits all of the received packets to lower-level devices regardless of whether or not the received packet is addressed to itself.
[0057]
The CPU 41 is connected to the SIO circuit 40, the motor driver 43, and the A / D converter 45, and controls the operation of each unit. In each device 11, when data addressed to itself is acquired by the SIO circuit 40, the data is transferred to the CPU 41, and processing for controlling the operation of each unit and the operation of each unit according to the processing content requested by the data. Is performed by the CPU 41.
[0058]
For example, when the requested processing content is to rotate the motor 42 by a predetermined angle, the CPU 41 issues a predetermined control command to the motor driver 43, and the motor 42 is driven to rotate. You. The information detected by the sensor 44 is converted into digital data by the A / D converter 45, and then transferred to the SIO circuit 40 via the CPU 41. The information is packetized by the SIO circuit 40 and lower-ordered at a predetermined timing. Is transmitted to the device.
[0059]
Although FIG. 3 illustrates a case where the sensor 44 and the A / D converter 45 are provided in each of the devices 11, these need not be provided in all of the devices 11. It may be arranged only in some devices 11. Further, each device 11 may be configured to include only one set of the motor 42 and the motor driver 43, the sensor 44, and the A / D converter 45. Further, similarly to each device 11, a motor 42 and a motor driver 43, a sensor 44 and an A / D converter 45 are also provided in the router 10, and the router 10 itself has a function of driving the joints of the robot. It may be added.
[0060]
Next, an outline of a process of transmitting data from the router 10 to each device 11 in the data transmission system 1 configured as described above will be described.
[0061]
In the data transmission system 1, as an initial operation performed immediately after the power is turned on, for example, a packet having the data structure shown in FIG. To determine the number of devices (device number determination process).
[0062]
At this time, the packet transmitted from the router 10 includes, as shown in FIG. 4, for example, a 1-byte connection command indicating that the process is to be performed, a 1-byte connection address value indicating the number of connections, and a 1-byte checksum. And 3 bytes in total. The initial value of the connection address value is, for example, “0”.
[0063]
When the device number determination process is started, as shown in FIG. 5, the router 10 transmits the packet shown in FIG. 4 to a device (first device 11a) connected in a lower order (S10). Next, when the 3-byte packet transmitted from the router 10 is received by the first device 11a (S11), switching of processing by an interrupt task is performed (S12). This switching process is a process of switching the operation of the SIO circuit 40 or the CPU 41 of each device 11 to a device number determination process.
[0064]
Next, in the first device 11a, the SIO circuit 40 or the CPU 41 recognizes that the connection command is included in the packet (S13), adds "1" to the connection address value (S14), and checks The value of the sum is updated (S15). Next, the packet in which the new connection address value and the checksum are stored is transmitted to the device 11 connected below (S16).
[0065]
At this time, based on the connection address value included in the received packet or the connection address value after adding “1”, the first device 11a knows what number the first device 11a is connected to from the router 10. , And stores the connection state of the self in a memory connected to the SIO circuit 40 or the CPU 41.
[0066]
A series of processes (S10 to S16) in the first device 11a as described above are sequentially performed in the other devices 11b to 11g, so that the packet is transmitted to each device 11. Then, the seventh device 11g connected to the lowest end of the transmission cable 12 performs a series of processing on the received packet, and then changes the packet after changing the connection address value and the checksum to the second device. Is transmitted to the router 10 via the signal line (DATA) (S16).
[0067]
Next, when the router 10 receives a packet transmitted from the seventh device 11g via the second signal line (DATA) (S17), switching of processing by an interrupt task is performed (S18). Then, by referring to the connection address value included in the received packet (S19), the number of connected devices 11 connected on the transmission cable 12 is known. The number of connected devices 11 is stored in the memory connected to the SIO circuit 30 or the CPU 31 of the router 10, and a series of device number determination processing ends (S20).
[0068]
On the other hand, when normal data transmission processing is performed after the above-described device number determination processing is completed, for example, a packet group as shown in FIG. This packet group is constituted by one frame including a control packet and a plurality of data packets. The control packet is composed of a total of 3 bytes including a 1-byte control command, 1-byte transmission / reception data, and a 1-byte checksum. In addition, the data packet is composed of a total of 3 bytes of 2 bytes of transmission / reception data and 1 byte of a checksum.
[0069]
The control packet includes a control command for instructing how each device 11 processes transmission / reception data included in a plurality of subsequent data packets. That is, when each device 11 receives the packet group, it performs processing according to the control command included in the control packet.
[0070]
In the packet group shown in FIG. 6, the data packet located immediately after the control packet is a packet addressed to the terminal device (seventh device 11g) connected to the lowest order, and is included in this data packet. The transmission / reception data is to be transmitted to the seventh device 11g. The second data packet after the control packet is a packet addressed to a device (sixth device 11f) connected one level higher than the seventh device 11g, and the third data packet is 7 is a packet addressed to a device (fifth device e) connected two higher than the device 11g. In this way, the packet group transmitted from the router 10 is arranged in order from the data packet addressed to the lowest connected device following the control packet, and the last data packet is connected immediately after the router 10. It is a packet addressed to the designated device (first device 11a).
[0071]
The number of data packets included in the packet group is prepared by the number corresponding to the number of devices 11 connected via the transmission cable 12. That is, in this example, since seven devices 11a to 11g are connected, seven data packets are transmitted from the router 10 following the control data.
[0072]
The number of data packets included in the packet group (one frame) may be the same as the number of devices 11 daisy-chain connected to the router 10. In this example, the time required to transfer one packet between the router 10 and each device 11 is 24 μsec. Therefore, the time required to transfer a packet group consisting of a total of eight packets as shown in FIG. 6 between the router 10 and each device 11 is 192 μsec. However, this transfer time does not include a synchronization character described later. Further, in this example, the data transmission rate between the router 10 and each device 11 via the transmission cable 12 is assumed to be 1.5 MHz.
[0073]
When the normal data transmission process is started, as shown in FIG. 7, the router 10 transmits the packet group shown in FIG. 6 by three bytes (one packet at a time) at the transmission timing based on the clock signal. This is transmitted to the first device 11a) (S30). At this time, a packet transmitted first is a control packet, and packets transmitted sequentially after this control packet are data packets.
[0074]
Next, when the first device 11a receives the first packet of the packet group transmitted from the router 10, that is, the control packet (S31), the first device 11a switches the processing by the interrupt task based on the control command included in the packet. Is performed (S32). This switching process is a process of switching the operation of the SIO circuit 40 or the CPU 41 of each device 11 to a device number determination process.
[0075]
Next, in the first device 11a, while sequentially receiving the data packet transmitted following the control packet (S33), the received packets are sequentially connected to the lower order at the transmission timing based on the clock signal. The data is transmitted to the device 11 (S34).
[0076]
At this time, the first device 11a performs transmission / reception processing of the packet group, determines whether each data packet is addressed to itself, and determines whether the data packet is addressed to itself. The transmission / reception data is extracted from the data packet, and the data is subjected to data processing according to the processing content indicated by the control packet (S35). Then, as a result of the data processing, the data packet is transmitted after rewriting transmission / reception data of the data packet as necessary.
[0077]
A series of processes (S31 to S35) in the first device 11a as described above are sequentially performed in the other devices 11b to 11g, so that the packet group is transmitted to each device 11. Then, the seventh device 11g connected to the lowest end of the transmission cable 12 performs a similar series of processing on the received packet group, and then transmits the packet group to the router 10. In FIG. 7, illustration of the second to sixth devices 11b to 11f is omitted.
[0078]
Then, when the router 10 receives the first packet of the packet group transmitted from the seventh device 11g, that is, the control packet (S36), the switching of the process by the interrupt task is performed based on the control command included in this packet. This is performed (S37), and data packets transmitted following the control packet are sequentially received (S38). In this way, the packet group transmitted from the router 10 is sequentially transmitted to each device 11, and finally returns to the router 10.
[0079]
While performing the above-described normal data transmission processing, an interrupt signal indicating that data obtained by the sensor 44 (hereinafter, referred to as sensor data) should be transmitted to any of the devices 11. Is generated, the processing is performed as follows.
[0080]
In this case, the device 11 transmits the sensor data in a state in which the packet group received from the upper device 11 is not transmitted, or during a period in which the packet group received from the upper device 11 is sequentially transmitted. , And transmits this packet to the lower device 11. The packet in which the sensor data transmitted in this manner is stored is sequentially transmitted to the lower device 11 in the same manner as in the normal data transmission processing, and finally received by the router 10.
[0081]
In the data transmission system 1, as described above, a packet group arranged in order from the packet to be transmitted to the lowest-connected device 11 is sequentially transmitted from the router 10 to the lower-order device 11. Become. At this time, a packet addressed to the lowest-order connected device (seventh device 11g) exists at the beginning of the packet group, and the highest-ordered device (first number) is located at the end of the packet group. The packet addressed to the first device 11a) exists.
[0082]
For this reason, the seventh device 11g connected at the lowest position can acquire a packet addressed to itself immediately after receiving the packet group, while the first device 11a connected at the highest position can At the final stage of the process of sequentially transmitting the received packet group to the lower device (second device 11b), it is possible to gradually acquire packets addressed to itself. In other words, the lower device 11, which has a greater number of stages from the router 10 and requires more time to transmit data, has a packet addressed to itself near the head of the packet group to be received, and has an earlier time after the reception of the packet group. Can acquire the packet addressed to itself.
[0083]
For this reason, in the data transmission system 1, the time required for the data transmitted from the router 10 to reach each device 11 can be offset by the packet transmission order, and regardless of the number of stages from the router 10, All the devices 11 can acquire data at substantially the same time.
[0084]
In the data transmission system 1, the router 10 and each device 11 are connected by a transmission cable 12, and data is transmitted to a plurality of devices 11 through a single transmission line by the transmission cable 12. As shown in FIG. 8, the number of wires required for the connection between the router 10 and each device 11 and the number of devices required for constructing the entire system can be minimized.
[0085]
Specifically, when a system having seven devices 11 is realized as in the example shown in FIG. 8, the number of required transmission cables 12 is seven, and the number of required connectors 13 is There are eight sets. Thus, the data transmission system 1 can minimize the number of wires, the number of connectors, and the number of devices required to configure the system, and can reduce the size and cost of the entire system.
[0086]
Even at a relatively low transmission rate of 1.5 MHz, data can be transmitted to each device 11 at high speed and reliably. Therefore, not only power saving can be achieved, but also EMC countermeasures become easy. In the data transmission system 1, since data can be returned to the router 10 from the device (seventh device 11g) connected to the terminal, the router 10 can detect an error in transmission data.
[0087]
In addition, since data to be transmitted to each device 11 can be acquired at substantially the same time in each device 11, for example, when applied to a transmission system of a robot, the operation of the robot can be smoothly performed as a whole. Can be controlled. Furthermore, since it is sufficient to arrange only one transmission cable 12 at any location between the router 10 and each device 11, it is easy to route the wiring at the joint of the robot.
[0088]
Here, in order to clarify the advantage of the data transmission system 1 according to the present example, FIG. 9 shows a conventional configuration using a USB (Universal Serial Bus) as a signal transmission system. The example shown in FIG. 9 illustrates a system for transmitting data to seven devices as in FIG.
[0089]
As shown in FIG. 9, in the system having the conventional configuration, since the transfer rate of the transmission line reaches 12 MHz, there is a limit in power saving, and there is a possibility that it is difficult to take sufficient EMC measures. When only three ports are provided in each USB hub, not only three USB hubs are required to connect seven devices as shown in FIG. In addition, the number of wires for connecting the devices is required to be 10, and the number of connectors is required to be 20. In the case of USB, it is not possible to determine a data transmission error when performing isochronous transfer. Further, as the number of connected devices increases, there is also a problem that the number of bytes of data that can be transmitted at one time decreases in order to perform data transmission at a sufficiently high speed. Therefore, the system having the conventional configuration is not suitable for use in, for example, a signal transmission system of a robot.
[0090]
Here, a case will be described in which a robot 50 having a signal transmission system as shown in FIG. 10 is configured using the data transmission system 1 according to the present example. In this robot 50, one router 10 and 28 devices 11 provided at joints of the robot 50 are provided.
[0091]
That is, in the robot 50, the four devices 11 for driving the four joints of the neck and the two devices 11 for driving the two joints of the trunk are provided on the body. The left and right arms are provided with five devices 11 for driving five joints, respectively, and the left and right legs are respectively provided with six devices 11 for driving six joints. Is provided.
[0092]
The router 10 provided on the body and the devices 11 located at the ends of the left and right arms and legs have sensors 44. The devices 11 provided on the robot 50 are connected to the router 10 by transmission cables 12, as indicated by arrows in FIG.
[0093]
In the robot 50 configured as described above, the router 10 and each device 11 are connected in a form as shown in FIG. FIG. 11 shows a case where the router 10 is provided with four SIO circuits 30. In the robot 50, the router 10 and each device 11 are connected by one transmission cable 12 composed of five lines.
[0094]
Here, FIG. 12 shows a connection state when a system similar to the robot 50 is configured by a signal transmission system using a conventional USB. As shown in FIG. 12, the robot 100 configured using the conventional signal transmission system requires 11 USB hubs 152 in addition to one USB router 150 and 28 devices 151. Also, in the figure, wiring between the USB router 150, the device 151, and the USB hub 152 provided in the robot 100 is indicated by arrows.
[0095]
FIG. 13 shows a connection configuration between the USB router 150, the device 151, and the USB hub 152 in the robot 100. Note that FIG. 13 illustrates a case where the USB hub 152 has four ports.
[0096]
As is clear from FIGS. 12 and 13, the robot 100 configured with the signal transmission system according to the conventional configuration not only has a very complicated wiring but also has a large number of wirings compared with the robot 50 according to the present example. A USB hub is required. Further, in the case of USB, since one transmission cable is provided with four wires, in the robot 100, it is necessary to provide eight or more (up to twelve) wires at each joint other than the distal end. is there.
[0097]
Next, paying attention to the time required when data is transmitted between a plurality of devices, a case where data transmission is performed by the conventional signal transmission system and a case where data transmission is performed by the data transmission system 1 according to the present example are described. It will be described sequentially.
[0098]
First, a state in which data is requested from a USB router to a predetermined USB device by a conventional signal transmission system using USB and data is transmitted and received until data from the USB device is obtained by the USB router. FIG.
[0099]
In a system using USB, a basic unit of data transmission / reception timing is 1 msec. For this reason, as shown in FIG. 14, a data acquisition request is transmitted / received to / from a predetermined USB device from the USB router. It takes at least 4 msec until the data processing is completed.
[0100]
Further, in a system using the USB, when data obtained by a sensor or the like provided on the USB device side is transmitted to the USB router by interrupt processing, as shown in FIG. There will be a delay.
[0101]
Next, FIG. 16 shows how data is transmitted and received when data is transmitted from a router to each device by a conventional signal transmission system using a simple daisy chain connection method. In FIG. 16, four devices are connected to the router. When 15 bytes of data are transmitted from the router, the data is transmitted until the data returns to the router from the device connected to the terminal. The state of data transmission is shown. In FIG. 16, it is assumed that a 2-byte synchronization character for identifying the beginning and end of the data is transmitted before and after the data to be transmitted.
[0102]
In this case, as shown in FIG. 16, it takes, for example, 136 μsec to transmit a unit data group including data to be transmitted and a synchronization character. Further, since a predetermined time is required for data processing in each device, a transmission delay occurs in the unit data group as it is transmitted between the devices.
[0103]
Due to this transmission delay, the time between the time when the data processing is started in the first device connected to the highest order from the router and the time when the data processing starts in the fourth device connected to the lowest value from the router In this case, a shift of 408 μsec occurs. Also, it takes 664 μsec for the data group transmitted from the router to return to the router from the fourth device again.
[0104]
As described above, simply transmitting data by the simple daisy-chain connection method causes a difference in the time when the data transmitted from the router starts the data processing in each device, as shown in FIG. For this reason, when applied to the signal transmission system of the robot, it becomes extremely difficult to perform control that requires high real-time properties, such as simultaneously starting the driving of each device at the same time.
[0105]
Here, how data is transmitted in the data transmission system 1 is shown in FIG. In the example shown in FIG. 17, it is assumed that four devices 11 are connected to the router 10, as in the case shown in FIG.
[0106]
In the example shown in FIG. 17, as shown in FIG. 6, data to be transmitted from the router 10 to each device 11 is stored in a 3-byte data packet. Is transmitted in a structure in which is added. However, in the case of this example, since four devices 11 are connected, one frame is constituted by one control packet and four data packets following the control packet, for a total of five packets.
[0107]
Further, in this example, before and after transmitting each packet, it is assumed that at least one 2-byte synchronization character for identifying the beginning and end of data is transmitted. By transmitting and receiving packets using the synchronization character in this manner, the location of each packet transmitted and received between the router 10 and each device 11 becomes clear, and errors due to transmission delay occurring in the transmission cable 12 during transmission and reception are eliminated. Thus, it is possible to reliably transmit and receive packets. The synchronization character is transmitted on the transmission cable 12 at a transmission timing synchronized with the clock signal, as in the case of transmitting and receiving each packet.
[0108]
In this example, as shown in FIG. 17, it takes 40 μsec to transmit the minimum transmission unit composed of one 3-byte packet and one 2-byte synchronization character. Therefore, it takes 184 μsec to transmit a packet group (one frame) composed of five packets.
[0109]
In this example, as shown in FIG. 17, the data to be processed by each device 11 is packetized. There is a packet addressed to itself at a position close to. Therefore, the device 11 connected to the lower level from the router 10 can acquire the data included in the packet addressed to itself at an early stage after starting the reception of the packet group. Therefore, the time required for sequentially transmitting the packet group to each device 11 can be offset by the transmission order of the packet addressed to each device 11, and as shown in FIG. Data processing is performed at the same time.
[0110]
Also, it takes 344 μsec for the packet group transmitted from the router 10 to return to the router 10 from the fourth device 11 again. This means that the time required for the router 10 to go around each device 11 and return to the router 10 can be reduced to about half that of the conventional data transmission method shown in FIG. I do.
[0111]
Therefore, if the data transmission method according to the present example is adopted, the data transmitted from the router 10 can be processed at the same time in the plurality of devices 11, and the data transmission can be performed at a higher speed than the conventional method. It is clear that it can be done.
[0112]
Next, in the example shown in FIG. 17, the data obtained by the sensor 44 provided in a predetermined device (for example, the third device 11c) is subjected to an interrupt process so as to be transmitted to another device 11 or the router 10. An example of the transmission will be described with reference to FIG.
[0113]
In this case, for example, assuming that the interrupt processing from the sensor 44 has been started in the third device 11c, as shown in FIG. 18, first, a packet group including two packets from the third device 11c has a lower order. (The fourth device 11d). The packet group transmitted at this time has a data structure as shown in FIG. 19, for example.
[0114]
That is, as shown in FIG. 19, the packet group transmitted in this case is composed of a control packet consisting of 3 bytes each and a data packet following this control packet, and a total of two packet transmission units (one frame) Is done. The control packet includes a 1-byte sensor command indicating that the packet group is for transmitting data from the sensor 44, a 1-byte sensor address for identifying the sensor 44, and a 1-byte check. It consists of a total of 3 bytes with the sum. The data packet is composed of 2-byte sensor data, which is data obtained by the sensor 44, and 1-byte checksum.
[0115]
When the packet group having the above structure is transmitted from the third device 11c, it is sequentially transmitted to the fourth device 11d, the router 10, the first device 11a, and the second device 11b. As a result, data obtained from the sensor 44 provided in the third device 11c is transmitted to the router 10 and all other devices 11a, 11b, 11d.
[0116]
Note that the router 10 and each device 11 may perform some processing based on the data obtained by the third device 11c (shown as “sensor control processing” in the figure), or may obtain the acquired packet group. May simply be transmitted to lower-level devices. As the sensor control processing, for example, a drive system (device) provided in another part controls the driving of a motor based on data obtained from a sensor provided in a specific part of the robot. In a case where quick attitude control is performed as a whole, it corresponds to motor control processing and the like.
[0117]
At this time, as shown in FIG. 18, after the interrupt processing by the sensor is started in the third device 11c, the second device 11b connected to the lowest position on the data transmission path from the third device 11c. It takes about 240 μsec to complete the data processing in. This dramatically reduces the time required to transmit data from the sensor to another device to about 1/20 of that of the conventional data transmission method shown in FIG. Means that it is possible.
[0118]
Therefore, by applying the data transmission system 1 according to the present example to a signal transmission system in a robot, it is possible to configure a robot with extremely high response such as attitude control based on data detected by a sensor.
[0119]
Next, a specific processing example of the data transmission / reception processing in the router 10 will be described with reference to the flowchart shown in FIG. In the router 10, data (packet) transmission / reception processing may be realized by the SIO circuit 30 alone, or may be realized by cooperative operation of both the SIO circuit 30 and the CPU 31.
[0120]
In this example, it is assumed that data to be transmitted is prepared by the CPU 31 by using a register provided in the CPU 31. Specifically, eight registers A to E, H, and L are prepared in the CPU 31, and the registers A and E are used to temporarily store transmission data for one packet of three bytes by using the register A as a packet counter. , C, and the registers D, E, H, L are used to temporarily store the received data. Note that four registers are used for storing received data. However, when performing data reception processing with three bytes forming one packet as a processing unit, only three registers may be used.
[0121]
In this example, it is assumed that a transmission register for temporarily storing data to be transmitted and a reception buffer for temporarily storing received data are provided in the SIO circuit 30. That is, the data stored in the transmission register of the SIO circuit 30 is sequentially transmitted to the lower device 11 via the transmission cable 12, and the data received from the lowest device 11 is stored in the reception buffer of the SIO circuit 30. You.
[0122]
When the data transmission / reception process is started, in step S100 shown in FIG. 20, the CPU 31 executes the PUSH instruction on the internal register to execute the data transmission / reception process. A to E, H, and L are secured.
[0123]
Next, in step S101, the CPU 31 stores the initial value in the register A and stores the data to be stored in the first packet to be transmitted in the registers F, B, and C one byte at a time. Next, in step S102, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting other data. If the transmission process is not being performed, the process proceeds to step S103. If the SIO circuit 30 is performing the transmission process, the process waits by repeatedly performing the process of step S102.
[0124]
In step S103, the CPU 31 transfers the data stored in the register F to the transmission register of the SIO circuit 30. As a result, the first byte of the first packet is transmitted by the SIO circuit 30.
[0125]
Next, in step S104, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting other data. If the transmission process is not being performed, the process proceeds to step S105. When the SIO circuit 30 is performing the transmission process, the process stands by by repeatedly performing the process of step S104.
[0126]
In step S105, the CPU 31 transfers the data stored in the register B to the transmission register of the SIO circuit 30. As a result, the second byte of the first packet is transmitted by the SIO circuit 30.
[0127]
Next, in step S106, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting other data. If the transmission process is not being performed, the process proceeds to step S107. When the SIO circuit 30 is performing the transmission process, the process waits by repeatedly performing the process of step S106.
[0128]
In step S107, the CPU 31 transfers the data stored in the register C to the transmission register of the SIO circuit 30. As a result, the third byte of the first packet is transmitted by the SIO circuit 30. As described above, the processing of steps S103, S105, and S107 is executed by the CPU 31, and when the SIO circuit 30 completes the transmission of the data in the transmission register, it is determined that the transmission processing of the first packet, that is, the control packet has been completed. Become.
[0129]
Next, in step S108, the CPU 31 determines whether or not the SIO circuit 30 has newly received the data transmitted from the other device 11. If the data has been received, the process proceeds to step S109. If not, the process proceeds to step S110.
[0130]
In step S109, the CPU 31 acquires the data stored in the reception buffer of the SIO circuit 30 one byte at a time, stores them in the registers D, E, H, and L, respectively, and advances the process to step S110.
[0131]
In step S110, the CPU 31 adds “1” to the value of the register A and stores the data to be stored in the second packet to be transmitted in the registers F, B, and C one byte at a time. Next, in step S111, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting another data. If the transmission process is not being performed, the process proceeds to step S112. When the SIO circuit 30 is performing the transmission process, the process stands by by repeatedly performing the process of step S111.
[0132]
In step S112, the CPU 31 transfers the data stored in the register F to the transmission register of the SIO circuit 30. As a result, the first byte of the second packet is transmitted by the SIO circuit 30.
[0133]
Next, in step S113, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting other data. If the data is being transmitted, the process proceeds to step S114. If the transmission process by the SIO circuit 30 has been completed, the process proceeds to step S115.
[0134]
In step S114, the CPU 31 transfers the data stored in the register D to a memory connected to the CPU 31. As a result, one byte of the received data is stored in the memory. Thereafter, the CPU 31 returns the processing to step S113.
[0135]
In step S115, the CPU 31 transfers the data stored in the register B to the transmission register of the SIO circuit 30. Thus, the second byte of the second packet is transmitted by the SIO circuit 30.
[0136]
Next, in step S116, the CPU 31 determines whether or not the SIO circuit 30 is currently transmitting other data. If the data is being transmitted, the process proceeds to step S117. If the transmission process by the SIO circuit 30 has been completed, the process proceeds to step S118.
[0137]
In step S117, the CPU 31 transfers the data stored in the register E to a memory connected to the CPU 31. As a result, one byte of the received data is stored in the memory. Thereafter, the CPU 31 returns the processing to step S116.
[0138]
In step S118, the CPU 31 transfers the data stored in the register C to the transmission register of the SIO circuit 30. Thus, the third byte of the second packet is transmitted by the SIO circuit 30. As described above, the processing of steps S103, S105, and S107 is executed by the CPU 31, and when the transmission of the data in the transmission register is completed by the SIO circuit 30, the transmission processing of the second packet (data packet) is completed. Become.
[0139]
Next, in step S119, the CPU 31 determines whether or not the SIO circuit 30 has newly received data transmitted from another device 11, and if not, advances the process to step S120. If yes, the process proceeds to step S121.
[0140]
In step S120, the CPU 31 transfers the data stored in the registers H and L to a memory connected to the CPU 31. As a result, two bytes of the received data are stored in the memory. Thereafter, the CPU 31 returns the processing to step S119.
[0141]
In step S121, the CPU 31 acquires data stored in the reception buffer of the SIO circuit 30 one byte at a time, stores the data in the registers D, E, H, and L, respectively, and advances the process to step S122.
[0142]
In step S122, the CPU 31 determines whether transmission of all data (packets) to be transmitted has been completed. This determination process is performed, for example, by comparing the value stored in the register A with the number of connections of the device 11 obtained by performing the device number determination process in advance. As a result of this determination, if all the packets have been transmitted, the process proceeds to step S123. If the transmission has not been completed, the processes after step S110 are repeated, and the third packet, the fourth packet Are sequentially transmitted.
[0143]
In step S123, the CPU 31 releases the eight registers A to E, H, and L by executing the POP instruction on the internal registers.
[0144]
The router 10 performs the above-described series of processes to packetize data to be transmitted and transmit the data, and stores data received from another device 11 in a memory.
[0145]
Next, a specific processing example of data transmission / reception processing in each device 11 will be described with reference to a flowchart shown in FIG. In each device 11, data (packet) transmission / reception processing may be realized by the SIO circuit 40 alone, or may be realized by cooperative operation of both the SIO circuit 40 and the CPU 41.
[0146]
In this example, it is assumed that the checksum confirmation processing of the received data is performed by the CPU 41 by using the register provided in the CPU 41. Specifically, the CPU 41 has eight registers A to E, H, and L. The register A is used as a packet counter, and the register F is used to temporarily store data received from the upper device 11 for each byte. , B, C, and D, a register E is used to temporarily store checksum data added to a packet to be transmitted to the lower device 11, and packets other than the checksum among packets to be transmitted to the lower device 11 are used. The registers H and L are used to temporarily store 2-byte data for each byte. Note that four registers are used for storing received data. However, when performing data reception processing with three bytes forming one packet as a processing unit, only three registers may be used.
[0147]
In the present example, it is assumed that a transmission register for temporarily storing data to be transmitted and a reception buffer for temporarily storing received data are prepared in the SIO circuit 40. That is, the data stored in the transmission register of the SIO circuit 40 is sequentially transmitted to the lower device 11 via the transmission cable 12, and the data received from the upper device 11 or the router 10 is stored in the reception buffer of the SIO circuit 40. Is stored.
[0148]
When the data transmission / reception process is started, in step S130 shown in FIG. 21, the CPU 41 executes the PUSH instruction for the internal register to execute the data transmission / reception process. Reserve registers A to E, H, and L.
[0149]
Next, in step S131, the CPU 41 stores the initial value in the register A, acquires one-byte data (reception data 0) from the reception buffer of the SIO circuit 40, and stores this in the register F. Next, in step S132, the CPU 41 determines whether or not the SIO circuit 40 has received new data. If so, the process proceeds to step S133. If not, the process proceeds to step S132. It waits by repeating the process.
[0150]
In step S133, the CPU 41 acquires the next one-byte data (received data 1) from the receive buffer of the SIO circuit 40, and stores this in the register B. Next, in step S134, the CPU 41 needs to confirm the contents of the command included in the control packet by referring to the data in the register F, and store new data in the packet by the device 11 and transmit the packet. It is determined whether or not this is true, and the value obtained by adding the content of the register B and the content of the register F is stored in the register A. When new data from the device 11 needs to be stored in the packet, the new data is prepared in the registers H and L.
[0151]
Next, in step S135, the CPU 41 determines whether or not the SIO circuit 40 has received new data. If so, the process proceeds to step S136. If not, the process proceeds to step S135. It waits by repeating the process.
[0152]
In step S136, the CPU 41 acquires the next 1-byte data (reception data 2) from the reception buffer of the SIO circuit 40, and stores it in the register C. Next, in step S137, the CPU 41 determines whether or not the SIO circuit 40 has received new data, and if so, the process proceeds to step S138. In addition, the process proceeds to step S138 even when the information has not been received. In step S138, the CPU 41 acquires the next one-byte data (reception data 3) from the reception buffer of the SIO circuit 40, and stores it in the register D.
[0153]
Next, in step S139, the CPU 41 confirms the checksum by confirming whether or not a value obtained by adding the contents of the register A and the contents of the register C becomes “0”. Next, in step S140, it is determined whether the checksum is normal. If the checksum is normal, the process proceeds to step S141; otherwise, the process proceeds to step S144.
[0154]
In step S141, the CPU 41 sets a packet counter (register A), and determines in step S142 whether the values of the counters match. That is, it is determined whether the packet is addressed to the device 11 or not. As a result of this determination, if they match, the process proceeds to step S143; otherwise, the process proceeds to step S145.
[0155]
In step S143, the CPU 41 sequentially transfers the data stored in the registers H, L, and E to the transmission register of the SIO circuit 40. As a result, the data in the registers H, L, and E is transmitted to the lower device 11. Thereafter, the CPU 41 advances the processing to step S146.
[0156]
In step S144, the CPU 41 sets a packet counter (register A), and sequentially transfers the data stored in the registers F, B, and C to the transmission register of the SIO circuit 40 in step S145. As a result, the data in these registers F, B, and C is transmitted to the lower device 11. Thereafter, the CPU 41 advances the processing to step S146.
[0157]
In step S146, the CPU 41 determines whether or not significant data is stored in the register D. If the result of this determination is that the data in register D is significant, the process proceeds to step S147; otherwise, the process proceeds to step S149.
[0158]
In step S147, the CPU 41 transfers the data stored in the register D to the register F. Next, in step S148, the CPU 41 determines whether or not the SIO circuit 40 has received new data. If so, the process proceeds to step S133. If not, the process proceeds to step S148. It waits by repeating the process.
[0159]
In step S149, the CPU 41 determines whether or not the SIO circuit 40 has received new data. If so, the process proceeds to step S150. If not, the process proceeds to step S151. Proceed.
[0160]
In step S150, the CPU 41 acquires 1-byte data (reception data 0) from the reception buffer of the SIO circuit 40 and stores this in the register F. Thereafter, the CPU 41 advances the processing to step S133.
[0161]
In step S151, the CPU 41 determines whether or not all the processes for transmitting the data received from the upper device 11 to the lower device 11 have been completed. As a result of this determination, if the process has been completed, the process proceeds to step S152; otherwise, the process proceeds to step S149.
[0162]
In step SS152, the CPU 41 initializes the value of the packet counter (register A) and executes the POP instruction for the internal register, thereby releasing the eight registers A to E, H, and L.
[0163]
In each device 11, by performing the above-described series of processing, while transmitting data received from the upper device 11 to the lower device 11, it extracts data included in a packet addressed to itself, or New data can be stored in the packet and transmitted.
[0164]
Next, FIG. 22 shows a specific processing example in a case where the data obtained by the sensor 44 in each device 11 is transmitted to another device 11 or the router 10 by performing an interrupt process. This will be described with reference to a flowchart. In each device 11, interrupt processing may be realized by the SIO circuit 40 alone, or may be realized by cooperative operation of both the SIO circuit 40 and the CPU 41. When the sensor 44 is provided not only in each device 11 but also in the router 10, the same processing as described below may be performed in the router 10.
[0165]
In this example, by using registers provided in the CPU 41, assuming a case where two packets having the structure shown in FIG. 19 are transmitted, the CPU 41 is provided with eight registers A to E, H, and L. It is assumed that
[0166]
In each device 11, when an interrupt process for transmitting data obtained by the sensor 44 is started, in step S160 shown in FIG. 22, the CPU 41 executes a PUSH instruction with respect to an internal register to execute a sensor interrupt. Eight registers A to E, H, and L are reserved for processing.
[0167]
Next, in step S161, the CPU 41 acquires data (sensor data) obtained by the sensor 44. Next, in step S162, the CPU 41 generates data corresponding to the sensor command, the sensor address, and the checksum to be stored in the control packet having the structure illustrated in FIG. 19, and stores the data in the register F, the register B, and the register C, respectively. Store.
[0168]
Next, in step S163, the CPU 41 sequentially transfers the data stored in the register F, the register B, and the register C to the transmission register of the SIO circuit 40. As a result, the data in the registers F, B, and C is transmitted to the lower device 11 as a control packet.
[0169]
Next, in step S164, the CPU 41 converts the sensor data acquired in step S161 into a data length suitable for storing in a packet. As a result, sensor data 0 and sensor data 1 each consisting of one byte are generated. Next, in step S165, the CPU 41 stores the sensor data 0, the sensor data 1, and the checksum in the registers H, L, and E, respectively.
[0170]
Next, in step S166, the CPU 41 sequentially transfers the data stored in the registers H, L, and E to the transmission register of the SIO circuit 40. As a result, the data in the registers H, L, and E is transmitted to the lower device 11 as a data packet.
[0171]
Next, in step S167, the CPU 41 performs a control process in the device 11 based on the sensor data. Specifically, for example, a drive control process of the motor 42 is performed. Next, in step S168, the CPU 41 releases the eight registers A to E, H, and L by executing the POP instruction for the internal registers.
[0172]
In each device 11, by performing the above-described series of processing, interrupt processing can be performed and sensor data can be transmitted.
[0173]
In the above description, a preferred example in which the present invention is applied to a signal transmission system of a robot has been specifically described. However, the present invention is limited to application to a signal transmission system of a robot. However, it is needless to say that the present invention can be widely applied to a system for transmitting data between a data transmitting device and a plurality of data processing devices. Specifically, for example, the present invention can be applied to a case where a data detection request is transmitted to many sensors at once, and the detection data is acquired from these sensors at the same time.
[0174]
In the above description, one packet is composed of 3 bytes. However, the data length of each packet depends on the signal transmission rate required for the system and the number of device connections. It can be optional according to the like.
[0175]
【The invention's effect】
According to the present invention, a packet group arranged in order from the packet to be transmitted to the lowest-order connected data processing device can be sequentially transmitted from the data transmission device to the lower-order data processing device. At this time, a packet addressed to the lowest-order connected data processing device exists at the head of the packet group, and a packet addressed to the highest-order connected data processing device exists at the end of the packet group. Will exist.
[0176]
Therefore, the data processing device connected at the lowest position can acquire the packet addressed to itself immediately after receiving the packet group, while the data processing device connected at the highest position At the final stage of the process of sequentially transmitting the packet to the lower-level data processing device, the packet addressed to itself can be acquired gradually. In other words, the lower the number of stages from the data transmitting device and the longer the time required for data transmission, the lower the data processing device, the closer to the head of the received packet group, there is a packet addressed to itself, and after the start of receiving the packet group. The packet addressed to itself can be acquired at an earlier time. Therefore, according to the present invention, the time required for the data transmitted from the data transmission device to reach each data processing device can be offset in the packet transmission order, regardless of the number of stages from the data transmission device. In each of the data processing devices, data can be obtained at substantially the same time.
[0177]
Further, in the present invention, since each data processing device is daisy-chained by one transmission line, even if the number of connected data processing devices is increased, the number of signal lines used for data transmission is reduced. Does not increase.
[0178]
Therefore, according to the present invention, it is possible to transmit data at substantially the same time and at high speed to a plurality of data processing devices daisy-chain-connected to the data transmitting device. Data transmission can be realized by a single transmission line. Therefore, for example, by applying the present invention to a case in which a drive system for driving a joint of a robot is connected and controlled, the drive control of a plurality of joints provided in the robot at high speed and smoothly as a whole is performed. It is possible to do.
[Brief description of the drawings]
FIG. 1 is a schematic diagram showing a connection state of each device in a data transmission system shown as an embodiment of the present invention.
FIG. 2 is a schematic diagram illustrating a specific configuration example of a transmission cable in the data transmission system.
FIG. 3 is a schematic block diagram showing a specific configuration example of a router and each device in the data transmission system.
FIG. 4 is a schematic diagram showing an example of a structure of a packet transmitted and received in the data transmission system.
FIG. 5 is a schematic diagram for explaining a device number determination process performed in the data transmission system.
FIG. 6 is a schematic diagram showing an example of the structure of a packet group transmitted and received by the data transmission system.
FIG. 7 is a schematic diagram for explaining a data transmission process performed in the data transmission system.
FIG. 8 is a schematic diagram shown to explain the number of wires and the number of connectors required in the data transmission system.
FIG. 9 is a schematic diagram for explaining the number of wires and the number of connectors required in a conventional system using USB.
FIG. 10 is a schematic diagram for explaining a connection state of each device in a robot configured using the data transmission system according to the present invention.
FIG. 11 is another schematic diagram for explaining a device connection state in a robot configured using the data transmission system according to the present invention.
FIG. 12 is a schematic diagram for explaining a connection state of each device in a robot configured using a conventional system using USB.
FIG. 13 is another schematic diagram shown for explaining a connection state of each device in a robot configured using a conventional system using USB.
FIG. 14 is a schematic diagram showing how data is transmitted and received in a conventional system using USB.
FIG. 15 is a schematic diagram for explaining a case where data is transmitted by interrupt processing in a conventional system using USB.
FIG. 16 is a schematic diagram showing how data is transmitted and received in a conventional system using a simple daisy chain connection method.
FIG. 17 is a schematic diagram showing how data is transmitted in the data transmission system according to the present invention.
FIG. 18 is a schematic diagram showing how data is transmitted by interrupt processing in the data transmission system.
FIG. 19 is a schematic diagram showing a structure of a packet group when data is transmitted by interrupt processing in the data transmission system.
FIG. 20 is a flowchart illustrating an example of data transmission / reception processing in a router used in the data transmission system.
FIG. 21 is a flowchart illustrating an example of data transmission / reception processing in each device used in the data transmission system.
FIG. 22 is a flowchart illustrating an example of processing when data is transmitted by interrupt processing in each device used in the data transmission system.
[Explanation of symbols]
1 data transmission system, 10 router, 11 device, 12 transmission cable, 13 connector, 20 general-purpose bus, 21 host device, 30 SIO circuit, 31 CPU, 40 SIO circuit, 41 CPU, 42 motor, 43 motor driver, 44 sensor, 45 A / D converter

Claims (14)

データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置とを有し、上記データ送信装置と上記各データ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送システムであって、
上記データ送信装置は、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信するパケット送信手段を備え、
上記各データ処理装置は、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得するパケット送受信手段を備えること
を特徴とするデータ伝送システム。
A data transmission device, and a plurality of data processing devices daisy-chain-connected to the data transmission device by a single transmission line, wherein the transmission between the data transmission device and each of the data processing devices is performed. A data transmission system for transmitting data via a path,
The data transmission device sends a plurality of packets each having a predetermined data length in which data to be transmitted to each of the data processing devices is stored, to a data processing device connected at the lowest position in the transmission path. Packet transmitting means for sequentially transmitting packets from
Each of the data processing devices receives a packet group from a device connected to itself at a higher level, and sequentially transmits each packet to a device connected at a lower level to the data processing device. A data transmission system comprising a packet transmission / reception unit for acquiring data stored in a packet.
上記データ送信装置は、パケットの送信タイミングを示すクロック信号を上記伝送路に供給するクロック信号供給手段をさらに備え、
上記パケット送信手段及び上記パケット送受信手段は、上記クロック信号供給手段により供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信すること
を特徴とする請求項1記載のデータ伝送システム。
The data transmission device further includes a clock signal supply unit that supplies a clock signal indicating a packet transmission timing to the transmission path,
2. The data transmission according to claim 1, wherein the packet transmitting unit and the packet transmitting / receiving unit transmit each packet in synchronization with a transmission timing of the packet indicated by the clock signal supplied by the clock signal supplying unit. system.
上記パケット送信手段は、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、
上記各データ処理装置は、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うデータ処理手段をさらに備えること
を特徴とする請求項1記載のデータ伝送システム。
The packet transmitting means adds a control packet storing a control command to a head of a packet group to be transmitted to each of the data processing devices, and transmits the packet.
2. The data processing device according to claim 1, wherein each of the data processing devices further includes a data processing unit that performs a process on data stored in a packet addressed to the data processing device in response to a control command stored in the control packet. Data transmission system.
上記データ処理手段は、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、
上記パケット送受信手段は、上記データ処理手段によって新たなデータが格納されたパケットを、受信したパケット群に含めて送信すること
を特徴とする請求項3記載のデータ伝送システム。
The data processing means stores new data for a packet addressed to itself in response to a request indicated by a control command stored in the control packet,
4. The data transmission system according to claim 3, wherein said packet transmission / reception means transmits a packet in which new data is stored by said data processing means, included in a received packet group.
上記伝送路において最も下位に接続されたデータ処理装置における上記パケット送受信手段は、受信したパケット群を上記データ送信装置に対して送信し、
上記データ送信装置は、最も下位に接続されたデータ処理装置から送信されたパケット群を受信するパケット受信手段をさらに備えること
を特徴とする請求項1記載のデータ伝送システム。
The packet transmitting / receiving means in the data processing device connected at the lowest position in the transmission path transmits a received packet group to the data transmitting device,
2. The data transmission system according to claim 1, wherein the data transmission device further includes a packet receiving unit that receives a packet group transmitted from a data processing device connected at the lowest level.
上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、
上記データ送信装置における上記パケット送信手段は、初期値が格納されたパケットを送信し、
上記各データ処理装置は、上記パケット送受信手段により自己に対して上位に接続された装置から受信したパケットに格納された値に基づいて、自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して上記パケット送受信手段により送信する接続状態検知手段をさらに備え、
上記データ送信装置は、最も下位に接続されたデータ送信装置から送信されたパケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知する接続数検知手段をさらに備えること
を特徴とする請求項5記載のデータ伝送システム。
When performing a process of checking the connection state of the data transmission device and each data processing device to the transmission path,
The packet transmission means in the data transmission device transmits a packet in which an initial value is stored,
Each of the data processing devices, based on a value stored in a packet received from a device connected to the host by the packet transmitting / receiving means, detects which order the device is connected to, and Further comprising a connection state detecting means for transmitting by the packet transmitting / receiving means to a device connected to a lower order to the device after updating a value stored in the packet,
The data transmitting apparatus further includes a connection number detecting unit that detects the number of connections of the data processing apparatus to the transmission path based on a value stored in a packet transmitted from the lowest connected data transmitting apparatus. The data transmission system according to claim 5, wherein:
上記各データ処理装置のうちの任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、
上記任意のデータ処理装置における上記パケット送受信手段は、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、
上記各データ処理装置のうち他のデータ処理装置における上記パケット送受信手段は、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信すること
を特徴とする請求項1記載のデータ伝送システム。
When performing a process of transmitting data from any of the data processing devices to another device,
The packet transmission / reception unit in the arbitrary data processing apparatus is configured to connect a packet storing data to be transmitted to a lower level with respect to itself under a state where a packet group received from another apparatus is not transmitted. Sent to the device
The packet transmitting / receiving means in the other data processing device among the data processing devices receives the packet from the device connected to the host higher than the device, and transmits the packet to the device connected to the lower device. 2. The data transmission system according to claim 1, wherein the data is transmitted to the data transmission system.
データ送信装置と、上記データ送信装置に対して一系統の伝送路によりデイジーチェーン接続された複数のデータ処理装置との間で、上記伝送路を介してデータを伝送するデータ伝送方法であって、
上記データ送信装置において、上記各データ処理装置に対して送信対象とするデータがそれぞれ格納された所定のデータ長からなる複数のパケットを、上記伝送路において最も下位に接続されたデータ処理装置に宛てたパケットから順次送信し、
上記各データ処理装置において、自己に対して上位に接続された装置からパケット群を受信して、各パケットを自己に対して下位に接続された装置に対して順次送信する一方で、自己に宛てたパケットに格納されたデータを取得すること
を特徴とするデータ伝送方法。
A data transmission method for transmitting data via the transmission path between a data transmission apparatus and a plurality of data processing apparatuses daisy-chain connected by a single transmission path to the data transmission apparatus,
In the data transmission device, a plurality of packets each having a predetermined data length in which data to be transmitted to each of the data processing devices is stored, are addressed to a data processing device connected at the lowest position in the transmission path. From the packet
In each of the above data processing devices, a packet group is received from a device connected to the host higher than itself, and each packet is sequentially transmitted to a device connected lower to the host. A data transmission method for acquiring data stored in a packet.
上記データ送信装置及び上記各データ処理装置においては、上記伝送路に供給されたクロック信号によって示されるパケットの送信タイミングに同期して各パケットを送信すること
を特徴とする請求項8記載のデータ伝送方法。
9. The data transmission device according to claim 8, wherein the data transmission device and each of the data processing devices transmit each packet in synchronization with a transmission timing of the packet indicated by the clock signal supplied to the transmission path. Method.
上記データ送信装置においては、上記各データ処理装置に対して送信するパケット群の先頭に、制御コマンドを格納した制御パケットを付加して送信し、
上記各データ処理装置においては、上記制御パケットに格納された制御コマンドに応じて、自己に宛てたパケットに格納されたデータに対する処理を行うこと
を特徴とする請求項8記載のデータ伝送方法。
In the data transmitting device, a control packet storing a control command is added to the head of a packet group to be transmitted to each of the data processing devices and transmitted.
9. The data transmission method according to claim 8, wherein each of the data processing devices performs a process on data stored in a packet addressed to itself in response to a control command stored in the control packet.
上記各データ処理装置においては、上記制御パケットに格納された制御コマンドによって示される要求に応じて、自己に宛てたパケットに対して新たなデータを格納し、当該パケットを、受信したパケット群に含めて送信すること
を特徴とする請求項10記載のデータ伝送方法。
In each of the data processing devices, new data is stored for a packet addressed to itself in response to a request indicated by a control command stored in the control packet, and the packet is included in a received packet group. 11. The data transmission method according to claim 10, wherein the data is transmitted.
上記伝送路において最も下位に接続されたデータ処理装置においては、受信したパケット群を上記データ送信装置に対して送信し、
上記データ送信装置においては、最も下位に接続されたデータ処理装置から送信されたパケット群を受信すること
を特徴とする請求項8記載のデータ伝送方法。
In the data processing device connected at the lowest order in the transmission path, the received packet group is transmitted to the data transmission device,
9. The data transmission method according to claim 8, wherein the data transmission device receives a packet group transmitted from a data processing device connected at the lowest order.
上記伝送路に対する上記データ送信装置及び上記各データ処理装置の接続状態を確認する処理を行うに際して、
上記データ送信装置において、初期値が格納されたパケットを送信し、
上記各データ処理装置において、自己に対して上位に接続された装置からパケットを受信して、当該パケットに格納された値に基づいて自己が何番目に接続されているかを検知するとともに、当該パケットに格納された値を更新した後に自己に対して下位に接続された装置に対して送信し、
上記データ送信装置において、最も下位に接続されたデータ送信装置から送信されたパケットを受信し、当該パケットに格納された値に基づいて上記伝送路に対するデータ処理装置の接続数を検知すること
を特徴とする請求項12記載のデータ伝送方法。
When performing a process of checking the connection state of the data transmission device and each data processing device to the transmission path,
In the data transmission device, a packet in which an initial value is stored is transmitted,
In each of the above data processing devices, a packet is received from a device connected to itself at a higher level, and based on the value stored in the packet, it is detected at which order the device is connected, and After updating the value stored in the
In the data transmission device, receiving a packet transmitted from a data transmission device connected at the lowest order, and detecting the number of connections of the data processing device to the transmission path based on a value stored in the packet. The data transmission method according to claim 12, wherein
上記各データ処理装置のうち任意のデータ処理装置から他の装置に対してデータを送信する処理を行うに際して、
上記任意のデータ処理装置においては、他の装置から受信したパケット群を送信していない状態の下で、送信対象とするデータが格納されたパケットを自己に対して下位に接続された装置に対して送信し、
上記各データ処理装置のうち他のデータ処理装置においては、自己に対して上位に接続された装置から上記パケットを受信して、当該パケットを自己に対して下位に接続された装置に対して送信すること
を特徴とする請求項8記載のデータ伝送方法。
When performing a process of transmitting data from any of the data processing devices to another device,
In the above-mentioned arbitrary data processing device, a packet storing data to be transmitted is transmitted to a device which is connected to a lower device with respect to the device itself in a state where a packet group received from another device is not transmitted. Send
Among the above data processing devices, the other data processing devices receive the packet from the device connected to the host higher than itself and transmit the packet to the device connected lower to the host. 9. The data transmission method according to claim 8, wherein:
JP2002243317A 2002-08-23 2002-08-23 Data transmission system and method therefor Pending JP2004088208A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002243317A JP2004088208A (en) 2002-08-23 2002-08-23 Data transmission system and method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002243317A JP2004088208A (en) 2002-08-23 2002-08-23 Data transmission system and method therefor

Publications (1)

Publication Number Publication Date
JP2004088208A true JP2004088208A (en) 2004-03-18

Family

ID=32052106

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002243317A Pending JP2004088208A (en) 2002-08-23 2002-08-23 Data transmission system and method therefor

Country Status (1)

Country Link
JP (1) JP2004088208A (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007083687A1 (en) * 2006-01-23 2007-07-26 Nec Corporation Communication method, communication system, nodes and program
WO2007148421A1 (en) * 2006-06-22 2007-12-27 Sanritz Automation Co., Ltd. Network system communication method using i/o device
EP1916071A1 (en) * 2006-10-24 2008-04-30 Abb Research Ltd. A motion control system comprising a network for a robot system
JP2009218923A (en) * 2008-03-11 2009-09-24 Nec Corp Network relay apparatus, communication system, and network relay method
JP2010532603A (en) * 2007-07-06 2010-10-07 メラー ゲゼルシヤフト ミツト ベシユレンクテル ハフツング A system that controls devices connected to a bus network via an open fieldbus
JP2013010165A (en) * 2011-06-29 2013-01-17 Honda Motor Co Ltd Distributed control system
EP2868446A1 (en) * 2013-11-01 2015-05-06 Seiko Epson Corporation Robot, controller, and robot system
CN104589304A (en) * 2013-10-31 2015-05-06 精工爱普生株式会社 Robot control device and robot
JP2015085482A (en) * 2013-11-01 2015-05-07 セイコーエプソン株式会社 Robot, control device and robot system
JP2015089576A (en) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 Robot, control device, and robot system
JP2015089577A (en) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 Robot, control device, and robot system
JP2016059981A (en) * 2014-09-16 2016-04-25 セイコーエプソン株式会社 Image processing apparatus and robot system
JP2017175278A (en) * 2016-03-22 2017-09-28 ファナック株式会社 Serial communication branch equipment and serial communication system
US10127622B2 (en) 2014-09-16 2018-11-13 Seiko Epson Corporation Image processing apparatus and robot system
JP2022087955A (en) * 2020-12-02 2022-06-14 Necプラットフォームズ株式会社 Device, method, and program

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4780343B2 (en) * 2006-01-23 2011-09-28 日本電気株式会社 COMMUNICATION METHOD, COMMUNICATION SYSTEM, NODE, AND PROGRAM
JPWO2007083687A1 (en) * 2006-01-23 2009-06-11 日本電気株式会社 COMMUNICATION METHOD, COMMUNICATION SYSTEM, NODE, AND PROGRAM
WO2007083687A1 (en) * 2006-01-23 2007-07-26 Nec Corporation Communication method, communication system, nodes and program
WO2007148421A1 (en) * 2006-06-22 2007-12-27 Sanritz Automation Co., Ltd. Network system communication method using i/o device
EP1916071A1 (en) * 2006-10-24 2008-04-30 Abb Research Ltd. A motion control system comprising a network for a robot system
JP2010532603A (en) * 2007-07-06 2010-10-07 メラー ゲゼルシヤフト ミツト ベシユレンクテル ハフツング A system that controls devices connected to a bus network via an open fieldbus
US9164934B2 (en) 2007-07-06 2015-10-20 Eaton Electrical Ip Gmbh & Co. Kg System and method for controlling bus-networked devices via an open field bus
US8935435B2 (en) 2007-07-06 2015-01-13 Eaton Electrical Ip Gmbh & Co. Kg System and method for controlling bus-networked devices via an open field bus
US11182327B2 (en) 2007-07-06 2021-11-23 Eaton Intelligent Power Limited System and method for controlling bus-networked devices via an open field bus
US10599604B2 (en) 2007-07-06 2020-03-24 Eaton Intelligent Power Unlimited System and method for controlling bus-networked devices via an open field bus
JP2009218923A (en) * 2008-03-11 2009-09-24 Nec Corp Network relay apparatus, communication system, and network relay method
JP2013010165A (en) * 2011-06-29 2013-01-17 Honda Motor Co Ltd Distributed control system
CN104589304A (en) * 2013-10-31 2015-05-06 精工爱普生株式会社 Robot control device and robot
US9975240B2 (en) 2013-11-01 2018-05-22 Seiko Epson Corporation Robot, controller, and robot system
CN104608125A (en) * 2013-11-01 2015-05-13 精工爱普生株式会社 Robot, controller, and robot system
JP2015085482A (en) * 2013-11-01 2015-05-07 セイコーエプソン株式会社 Robot, control device and robot system
EP2868446A1 (en) * 2013-11-01 2015-05-06 Seiko Epson Corporation Robot, controller, and robot system
JP2015089577A (en) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 Robot, control device, and robot system
JP2015089576A (en) * 2013-11-05 2015-05-11 セイコーエプソン株式会社 Robot, control device, and robot system
JP2016059981A (en) * 2014-09-16 2016-04-25 セイコーエプソン株式会社 Image processing apparatus and robot system
US10127622B2 (en) 2014-09-16 2018-11-13 Seiko Epson Corporation Image processing apparatus and robot system
JP2017175278A (en) * 2016-03-22 2017-09-28 ファナック株式会社 Serial communication branch equipment and serial communication system
US10185685B2 (en) 2016-03-22 2019-01-22 Fanuc Corporation Serial communication branching device and serial communication system
DE102017002604B4 (en) 2016-03-22 2019-09-19 Fanuc Corporation Serial communication branching device and serial communication system
JP2022087955A (en) * 2020-12-02 2022-06-14 Necプラットフォームズ株式会社 Device, method, and program
JP7335039B2 (en) 2020-12-02 2023-08-29 Necプラットフォームズ株式会社 Apparatus, method and program

Similar Documents

Publication Publication Date Title
JP2004088208A (en) Data transmission system and method therefor
CN111278609B (en) Robotic surgical system and method for communicating synchronous and asynchronous information to and from a node of a robotic arm
US5285381A (en) Multiple control-point control system and method of use
CN111093910B (en) Robotic surgical system with ring topology communication network and method of use thereof
US7802036B2 (en) Serial communication system using an I2C bus as a serial bus
JP5849345B2 (en) Control command architecture for mobile robots using joint limbs
EP0993914B1 (en) Robot Apparatus
US8295949B2 (en) Control system, control method, master device, and control device
KR20090049651A (en) Embedded robot control system
US10850394B2 (en) Driving device
CN111496823B (en) Robot, robot system, and robot control device
US20160303736A1 (en) Robot control apparatus and robot system
JP2001147706A (en) Actuator drive control system, multiaxial machine device and drive controller for actuator
JP2005275938A (en) Controller system and controller for mechatronics apparatus
JP5082895B2 (en) Robot vision system
JP2001310281A (en) Method of configuration acquisition and method of detecting condition
CN111158285A (en) Control system based on EtherCAT bus
JP2003110587A (en) Two-line bus type transmission method sharing power supply and data transmission and apparatus therefor
JP4281210B2 (en) Actuator drive control system and drive control apparatus for actuator
JP2006171960A (en) Distributed control system
KR101038619B1 (en) Implementation of network based control module for smart actuator with multi degree of freedom used in robot
JPH10275006A (en) Industrial robot
JP2004001195A (en) Robotic device
JP5104222B2 (en) Serial communication system
Lee et al. A new exoskeleton-type masterarm with force reflection: controller and integration

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050527