JP6359955B2 - シリアル通信システム、通信制御装置および電子装置 - Google Patents

シリアル通信システム、通信制御装置および電子装置 Download PDF

Info

Publication number
JP6359955B2
JP6359955B2 JP2014230697A JP2014230697A JP6359955B2 JP 6359955 B2 JP6359955 B2 JP 6359955B2 JP 2014230697 A JP2014230697 A JP 2014230697A JP 2014230697 A JP2014230697 A JP 2014230697A JP 6359955 B2 JP6359955 B2 JP 6359955B2
Authority
JP
Japan
Prior art keywords
serial
bus
address
serial bus
interface
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.)
Active
Application number
JP2014230697A
Other languages
English (en)
Other versions
JP2016095629A (ja
Inventor
吉田 洋一
洋一 吉田
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2014230697A priority Critical patent/JP6359955B2/ja
Priority to US14/919,961 priority patent/US10102177B2/en
Publication of JP2016095629A publication Critical patent/JP2016095629A/ja
Application granted granted Critical
Publication of JP6359955B2 publication Critical patent/JP6359955B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Description

本発明は、シリアル通信システム、通信制御装置および電子装置に関し、例えば、シリアルバスにおけるプラグアンドプレイの方式に関する。
特許文献1には、取り外し可能なスレーブユニットの中のどのスレーブユニットがI2C(Inter-Integrated Circuit)バスに接続されているかを動的に決定する方式が示されている。具体的には、マイクロ制御装置は、スレーブユニットの各型式と、その各アドレスとの関係を表すテーブルを予め保持している。マイクロ制御装置は、当該テーブルに基づいて各アドレスを含んだ命令を、順次、I2Cバスに送信し、スレーブユニットからの応答の有無に応じて、スレーブユニットの存在有無を認識する。
特表2002−534734号公報
例えば、ロボット等の制御を担う制御システムは、通常、モータモジュールやセンサモジュール等といった各種被制御モジュール(電子装置)を多数用いて構成される。具体的な構成として、例えば、マイクロコンピュータ等の制御ユニットと各種被制御モジュールとをシリアルバスで接続し、制御ユニットがシリアルバスを介して各種被制御モジュールを制御するような方式が挙げられる。シリアルバスには、例えば、広く普及しているI2Cバス等を用いることができる。
このような制御システムでは、例えば、開発段階において、シリアルバスに接続する各種被制御モジュールの組合せを変更したり、あるいは、開発後において、シリアルバスに接続する被制御モジュールを新規に追加して機能拡張を図ったり、といったように、システム構成を柔軟に変更可能であることが望まれる。加えて、システム構成を容易に変更可能であることも望まれる。例えば、被制御モジュールをシリアルバスに接続する度に、ユーザに複雑な設定作業等を要求するような方式では、システム構成を容易に変更することが困難となる。
システム構成を容易に変更可能にするためには、プラグアンドプレイ機能を用いることが有益となる。I2Cバスでプラグアンドプレイ機能を実現する場合、例えば、特許文献1のような方式を用いることが考えられる。ただし、特許文献1の方式は、接続が想定される被制御モジュールの型式やアドレスを予めテーブルに保持しておき、このテーブルに定めた範囲内において、被制御モジュールの着脱を可能にする技術である。このように、着脱可能な被制御モジュールに制限が加わると、プラグアンドプレイ機能が不十分となり、システム構成の変更に際し、柔軟性が低下する恐れがある。
また、I2Cバスには、アドレス空間(例えば7ビット)等で定まる数の被制御モジュールを接続できるが、実際上は、各被制御モジュールを所定の制御周期内に制御する必要があるため、接続可能な被制御モジュール数に制約が生じる。このように、実際上の被制御モジュール数に制約が生じることでも、システム構成の変更に際し、柔軟性が低下する。
後述する実施の形態は、このようなことを鑑みてなされたものであり、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によるシリアル通信システムは、第1および第2シリアルバスと、制御ユニットと、複数の電子装置と、を備える。制御ユニットは、第1および第2シリアルバスに結合され、アドレスを含んだ第1命令を第1シリアルバスへ送信する。複数の電子装置は、それぞれ、第1および第2シリアルバスに着脱可能であり、第1および第2シリアルバスに接続された状態で自身のアドレスを含んだ第1命令を第1シリアルバスから受信した場合に、肯定応答を第1シリアルバスへ送信する。ここで、複数の電子装置のそれぞれは、第1〜第3処理を実行する。当該電子装置は、第1処理において、第1および第2シリアルバスに接続された際に、第1信号を第2シリアルバスへ送信する。当該電子装置は、第2処理において、第1信号を送信したのち、候補となるアドレスを含んだ第1命令を第1シリアルバスへ送信しながら、当該第1命令に対する肯定応答を受信しないアドレスを探索する。当該電子装置は、第3処理において、第2処理の探索結果となるアドレスを第2シリアルバスへ送信する。一方、制御ユニットは、第1信号を受信した際に、第1シリアルバスとの間の通信を停止するスリープ状態に遷移し、探索結果となるアドレスを第2シリアルバスから受信する。
前記一実施の形態によれば、シリアル通信システムにおいて、システム構成を柔軟または容易に変更可能になる。
本発明の実施の形態1よるシリアル通信システムにおいて、その概略構成例を示す回路ブロック図である。 I2Cバスでのデータフォーマットの一例を示す概略図である。 図1のシリアル通信システムにおいて、プラグアンドプレイの動作方法の一例を示す説明図である。 図3に続く動作方法の一例を示す説明図である。 図4に続く動作方法の一例を示す説明図である。 図1のシリアル通信システムにおいて、プラグアンドプレイの動作方法の他の一例を示す説明図である。 図6に続く動作方法の一例を示す説明図である。 図7に続く動作方法の一例を示す説明図である。 図1のシリアル通信システムを適用した車両型ロボットの模式的な構成例を示す外形図である。 本発明の実施の形態2による通信制御装置において、その主要部の構成例を示すブロック図である。 本発明の実施の形態2による電子装置において、その主要部の構成例を示すブロック図である。 図11の電子装置において、フルI2Cインタフェース周りの主要部の構成例を示すブロック図である。 図10の通信制御装置において、簡易I2Cインタフェース周りの主要部の構成例を示すブロック図である。 図10および図13の通信制御装置において、アドレス管理部の処理内容の一例を示すフロー図である。 図11および図12の電子装置において、アドレス探索部の処理内容の一例を示すフロー図である。 本発明の実施の形態3によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。 図16の比較例として検討したシリアル通信システムにおいて、その主要部の構成例を示す概略図である。 本発明の実施の形態4によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。 本発明の実施の形態5によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。
以下の実施の形態においては便宜上その必要があるときは、複数のセクションまたは実施の形態に分割して説明するが、特に明示した場合を除き、それらは互いに無関係なものではなく、一方は他方の一部または全部の変形例、詳細、補足説明等の関係にある。また、以下の実施の形態において、要素の数等(個数、数値、量、範囲等を含む)に言及する場合、特に明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではなく、特定の数以上でも以下でも良い。
さらに、以下の実施の形態において、その構成要素(要素ステップ等も含む)は、特に明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。同様に、以下の実施の形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に明らかにそうでないと考えられる場合等を除き、実質的にその形状等に近似または類似するもの等を含むものとする。このことは、上記数値および範囲についても同様である。
また、実施の形態の各機能ブロックを構成する回路素子は、特に制限されないが、公知のCMOS(相補型MOSトランジスタ)等の集積回路技術によって、単結晶シリコンのような半導体基板上に形成される。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は省略する。
(実施の形態1)
《シリアル通信システムの構成》
図1は、本発明の実施の形態1よるシリアル通信システムにおいて、その概略構成例を示す回路ブロック図である。図1に示すシリアル通信システムは、制御ユニットCTLUと、複数(ここでは4個)のバスシステムBSYS[1]〜BSYS[4]と、を備える。バスシステムBSYS[1]は、I2Cバス(第1シリアルバス)BS1[1]およびGPIO(General Purpose Input/Output)バス(第2シリアルバス)BS2[1]と、複数の被制御モジュール(電子装置)と、を備える。同様に、バスシステムBSYS[2]〜BSYS[4]も、それぞれ、I2CバスBS1[2]〜BS1[4]およびGPIOバスBS2[2]〜BS2[4]と、複数の被制御モジュールと、を備える。
本明細書では、複数のI2CバスBS1[1]〜BS1[4]のそれぞれを代表して、I2Cバス(第1シリアルバス)BS1と称し、複数のGPIOバスBS2[1]〜BS2[4]のそれぞれを代表して、GPIOバス(第2シリアルバス)BS2と称する。また、複数のバスシステムBSYS[1]〜BSYS[4]のそれぞれを代表して、バスシステムBSYSと称する。複数の被制御モジュール(電子装置)のそれぞれは、対応するI2CバスBS1およびGPIOバスBS2にコネクタ等を介して着脱可能となっている。
図1では、I2CバスBS1[1]およびGPIOバスBS2[1]に、複数(ここではm個)のセンサモジュールMDLs[1]〜MDLs[m]と、複数(ここではn個)のモータモジュールMDLm[1]〜MDLm[n]と、が接続された例が示されている。図示は省略しているが、バスシステムBSYS[2]〜BSYS[4]にも、それぞれ、複数の被制御モジュール(電子装置)が適宜接続されている。
制御ユニットCTLUは、ホストコントローラ(ホスト制御装置)HCTLと、通信IFモジュール(通信制御装置)MDLifと、を備える。通信IFモジュールMDLifは、マイクロコントローラ等を代表とする制御デバイスMCUcを備える。制御デバイスMCUcは、複数のI2CバスBS1[1]〜BS1[4]にそれぞれ結合される複数のI2Cインタフェース(第1シリアルインタフェース)と、複数のGPIOバスBS2[1]〜BS2[4]にそれぞれ結合される複数のGPIOインタフェース(第2シリアルインタフェース)GIF[1]〜GIF[4]と、を備える。
図1の例では、複数のI2Cインタフェースは、3本のI2CバスBS1[1]〜BS1[3]にそれぞれ結合される3個の簡易I2CインタフェースIIFs[1]〜IIFs[3]と、I2CバスBS1[4]に結合される1個のフルI2CインタフェースIIFfと、で構成される。本明細書では、簡易I2CインタフェースIIFs[1]〜IIFs[3]のそれぞれを代表して、簡易I2CインタフェースIIFsと称し、簡易I2CインタフェースIIFsおよびフルI2CインタフェースIIFfを総称して、I2CインタフェースIIFと称する。また、GPIOインタフェースGIF[1]〜GIF[4]のそれぞれを代表して、GPIOインタフェースGIFと称する。
ここで、フルI2Cインタフェースとは、I2C規格上のマスタ状態とスレーブ状態の両方で動作可能なインタフェースを表す。一方、簡易I2Cインタフェースとは、マスタ状態のみで動作可能であり、スレーブ状態では動作できないインタフェースを表す。図2は、I2Cバスでのデータフォーマットの一例を示す概略図である。I2CバスBS1は、クロック信号SCLを伝送するクロック配線と、データ信号SDAを伝送するデータ配線と、を備える。
I2C規格では、命令を送信したいI2CインタフェースIIFは、図2に示すように、クロック信号SCLが‘H’レベルの期間でデータ信号SDAを‘H’レベルから‘L’レベルに遷移させることで、I2CバスBS1へスタートコンディションSTCを送信する。当該I2CインタフェースIIFは、I2C規格の調停機能を経て、自身が送信したスタートコンディションSTCが有効であることを確認できた場合に、マスタ状態で動作する。一方、I2CバスBS1からスタートコンディションSTCを受信したI2CインタフェースIIFは、スレーブ状態で動作する。
マスタ状態のI2CインタフェースIIFは、スレーブ状態のI2CインタフェースIIFに向けて、スレーブアドレスADDを含んだ命令(第1命令)を送信することができる。具体的には、当該命令(第1命令)は、図2に示すように、7ビット等のスレーブアドレスADDと、それに続く1ビットの読み書き選択信号(R/W)と、当該選択信号で書き込み命令を選択した場合のデータDTと、を含んでいる。
一方、スレーブ状態のI2CインタフェースIIFは、自身のスレーブアドレスADDを含んだ命令(第1命令)を受信した場合に、肯定応答ACKをI2CバスBS1へ送信する。具体的には、図2に示すように、スレーブ状態のI2CインタフェースIIFは、読み書き選択信号(R/W)を受信したのち、肯定応答ACKを送信し、マスタ状態のI2CインタフェースIIFは、それを受信する。なお、データ信号SDAのデータ配線は、ワイヤードアンド接続で構成されており、マスタ状態のI2CインタフェースIIFは、肯定応答ACK(‘L’レベル)を受信できない場合、否定応答(NAK(‘H’レベル))を受信する。
マスタ状態のI2CインタフェースIIFは、書き込み命令を選択した場合で、スレーブ状態のI2CインタフェースIIFから肯定応答ACK(‘L’レベル)を受信した場合、8ビット等のデータDTを送信する。スレーブ状態のI2CインタフェースIIFは、当該データDTを受信した場合、肯定応答ACKを送信する。一方、マスタ状態のI2CインタフェースIIFが読み出し命令を選択した場合、スレーブ状態のI2CインタフェースIIFは、肯定応答ACK(‘L’レベル)に続いて、8ビット等のデータDTを送信する。マスタ状態のI2CインタフェースIIFは、当該データDTを受信した場合、肯定応答ACKを送信する。
そして、マスタ状態のI2CインタフェースIIFは、マスタ状態を終了する際には、クロック信号SCLが‘H’レベルの期間でデータ信号SDAを‘L’レベルから‘H’レベルに遷移させることで、I2CバスBS1へストップコンディションSPCを送信する。これによって、I2CバスBS1は、開放される。
このように、I2C規格では、マスタ状態のI2CインタフェースIIFのみが命令(第1命令)をI2CバスBS1へ送信し、スレーブ状態のI2CインタフェースIIFは、当該命令をI2CバスBS1から受信する。したがって、前述したフルI2CインタフェースIIFfは、命令(第1命令)を送信する命令送信部と、命令(第1命令)を受信する命令受信部と、を備えるに対して、簡易I2CインタフェースIIFsは、命令送信部のみを備えることになる。
センサモジュールMDLs[1]〜MDLs[m]のそれぞれは、マイクロコントローラ等を代表とする制御デバイスMCUmと、センサSENと、を備える。同様に、モータモジュールMDLm[1]〜MDLm[n]のそれぞれは、制御デバイスMCUmとモータMTとを備える。制御デバイスMCUmは、図示は省略されているが、フルI2Cインタフェース(第1シリアルインタフェース)とGPIOインタフェース(第2シリアルインタフェース)とを備える。これらの被制御モジュールがI2CバスBS1[1]およびGPIOバスBS2[1]に接続された場合、当該フルI2CインタフェースおよびGPIOインタフェースは、それぞれ、I2CバスBS1[1]およびGPIOバスBS2[1]に結合される。
ホストコントローラ(ホスト制御装置)HCTLは、図示は省略するが、マイクロコントローラ等を代表とする制御デバイスを備える。ホストコントローラHCTLは、所定の制御プログラム等に基づいて、複数の被制御モジュールを制御するための制御命令(第2命令)を発行する。当該制御命令(第2命令)には、例えば、複数の被制御モジュールをそれぞれ識別する装置識別子や、データの書き込み/読み出しの種別等が含まれる。ホストコントローラ(ホスト制御装置)HCTLは、特に限定はされないが、SPI(Serial Peripheral Interface)バス等を介して通信IFモジュールMDLifに結合される。
通信IFモジュールMDLifは、ホストコントローラHCTLからの制御命令(第2命令)を、I2CバスBS1への命令(第1命令)に変換しながら、ホストコントローラHCTLと、バスシステムBSYS(すなわち複数の被制御モジュール)との間の通信を仲介する。この際に、通信IFモジュールMDLifの制御デバイスMCUc内の各I2CインタフェースIIFは、マスタ状態で動作し、複数の被制御モジュールの制御デバイスMCUm内のI2Cインタフェースは、スレーブ状態で動作する。
そして、通信IFモジュールMDLifは、ホストコントローラHCTLからSPIバス等を介して受信した制御命令(第2命令)を、その装置識別子に応じて、SPIバスよりも低速なバスであるI2CバスBS1に振り分け、当該I2CバスBS1へ命令(第1命令)を送信する。また、通信IFモジュールMDLifは、I2CバスBS1へ読み出し命令を送信した場合、これに応じて複数の被制御モジュールから送信されたデータDTを受信し、それをSPIバス等を介してホストコントローラHCTLに送信する。
このようなシリアル通信システムにおいて、制御デバイスMCUc,MCUmを構成するマイクロコントローラ等は、汎用品である場合、通常、フルI2CインタフェースIIFfを1個または2個程度しか搭載していない。これは、I2Cバスの思想が、基本的に、1個のI2Cバスに制御対象となる全ての被制御モジュールを結合することを想定しているためである。また、マイクロコントローラ等にフルI2CインタフェースIIFfを多く搭載すると、回路規模やコストの著しい増大を招くためである。
ただし、少数のフルI2CインタフェースIIFfでは、ロボット等を代表とする、多数の被制御モジュール(モータ/センサモジュール等)の制御を行うシステムに、十分に対応できない恐れがある。例えば、多関節マニピュレータを想定すると、十分に滑らかな動きを実現するためには、制御ユニットCTLUが10ms以下の制御周期で各被制御モジュールを制御する必要がある。I2Cバスの通信速度を100kbpsとして当該制御周期を実現する場合、1本のI2Cバスに結合可能な被制御モジュール数は、10個程度となる。一方、多関節マニピュレータでは、数十個を超える数の被制御モジュールが必要とされる場合がある。
このように多数の被制御モジュールを制御する場合、例えば、それぞれ1個または2個のフルI2CインタフェースIIFfを搭載した制御デバイスを複数設け、複数の制御デバイスで並列制御を行う方式を用いることが考えられる。ただし、この場合、複数の制御デバイスを設けることによるコスト等の増大や、複数の制御デバイス間での同期制御に伴う制御の複雑化等が懸念される。
そこで、図1に示したように、簡易I2CインタフェースIIFsを搭載することが有益となる。例えば、1個の簡易I2CインタフェースIIFsは、1個のフルI2CインタフェースIIFfと比較して、半分またはそれ以下の回路規模で構成される。また、マイクロコントローラは、本質的に、制御される側(スレーブ側)ではなく制御する側(マスタ側)である。したがって、実用上の観点から、簡易I2CインタフェースIIFsを、マスタ状態のみで動作するインタフェースとすることが有益となる。
また、図1のようなシリアル通信システムでは、システム構成を柔軟または容易に変更可能であることが求められる場合がある。例えば、ロボット等の制御システムを開発する場合を想定する。この場合、開発者は、図1に示すように、開発用の端末PCを用いてホストコントローラHCTLに格納される制御プログラムを適宜変更しながらシステム開発を進めていく。その過程では、バスシステムBSYSにおいて、各種被制御モジュールの着脱が頻繁に生じる場合がある。
ここで、被制御モジュールをバスシステムBSYSに接続した際には、通常、当該被制御モジュールのアドレス割り付けや初期パラメータの設定等といったように、当該被制御モジュールを制御可能な状態にするための設定作業が必要とされる。被制御モジュールをバスシステムBSYSに接続する毎に、このような複雑な設定作業が要求されると、開発者の利便性が図り難い。また、開発段階に限らず、完成後でも、バスシステムBSYSに新たな被制御モジュールを加えて機能拡張を図りたいような場合がある。このような場合も同様に、ユーザに対して複雑な設定作業を要求しないことが望まれる。そこで、I2CバスBS1でプラグアンドプレイ機能を実現することが有益となる。
《シリアル通信システムのプラグアンドプレイ動作[1]》
図3、図4および図5は、図1のシリアル通信システムにおいて、プラグアンドプレイの動作方法の一例を示す説明図である。図3の例では、まず、I2CバスBS1[1]およびGPIOバスBS2[1]にモータモジュールMDLm[2]が新規に接続される(ステップS101)。新規に接続されたモータモジュールMDLm[2]には、別途設けた電源配線等から電源電圧が供給される。
電源電圧の供給に伴い、モータモジュール(電子装置)MDLm[2]の制御デバイスMCUmは、初期化シーケンスを実行する。制御デバイスMCUmは、この初期化シーケンスの中で、フルI2CインタフェースIIFfをスレーブ状態に制御し、GPIOインタフェースGIFを出力状態に制御する。この際に、既にバスに接続済みの被制御モジュール(例えばモータモジュールMDLm[1]等)および通信IFモジュール(通信制御装置)MDLifは、GPIOインタフェースGIF,GIF[1]を入力状態に設定している。
また、GPIOバスBS2[1]の電位は、ここでは、プルダウン抵抗により接地電位GND(‘L’レベル)に設定されている。ただし、GPIOバスBS2[1]の電位は、プルアップ抵抗により電源電位(‘H’レベル)に設定されてもよい。GPIOインタフェースは、通常、このようなプルダウン抵抗/プルアップ抵抗を予め設定する機能を備えている。これにより、GPIOバスBS2[1]では、ワイヤードロジック(図3の例では、ワイヤードオア)が構築される。
続いて、図4に示すように、新規に接続されたモータモジュールMDLm[2]は、初めに、GPIOインタフェースGIFを介してGPIOバスBS2[1]に‘H’レベルを送信する(ステップS102)。通信IFモジュールMDLifは、GPIOインタフェースGIF[1]を介してGPIOバスBS2[1]の電位を監視しており、‘H’レベルを検出することで、被制御モジュールが新規に接続されたことを認識する(ステップS103)。
通信IFインタフェースMDLifは、GPIOバスBS2[1]の電位が‘H’レベルに変化したことを検出すると、当該GPIOバスに対応するI2CバスBS1[1]の簡易I2CインタフェースIIFs[1]を、スリープ状態に遷移させる(ステップS104)。スリープ状態の簡易I2CインタフェースIIFs[1]は、I2CバスBS1[1]との間の通信を停止する。特に限定はされないが、制御デバイスMCUcは、スリープ状態の有効/無効を制御するレジスタにフラグを立て、これに応じて、簡易I2CインタフェースIIFs[1]は、自身の動作を無効に制御する。
次に、モータモジュールMDLm[2]は、接続したI2CバスBS1[1]に対し、自身がマスタ状態で動作するためのマスタ宣言信号(すなわち図2のスタートコンディションSTC)を、フルI2CインタフェースIIFfを介して送信する(ステップS105−1)。この時点で、通信IFモジュールMDLifの簡易I2CインタフェースIIFs[1]はスリープ状態であるため、当該マスタ宣言信号を無視する。他の被制御モジュール(モータモジュールMDLm[1]等)のフルI2CインタフェースIIFfは、このマスタ宣言信号を受信し、マスタ状態のI2Cインタフェースが新たに設定されたことを認識する。
続いて、図5に示すように、モータモジュールMDLm[2]は、候補となるアドレスを含んだ命令(第1命令)を、フルI2CインタフェースIIFfを介してI2CバスBS1[1]へ送信しながら、当該命令に対する肯定応答ACKを受信しないアドレスを探索する(ステップS106−1)。具体的には、モータモジュールMDLm[2]は、まず、予め定められた初期値のアドレスを含んだ命令をI2CバスBS1[1]へ送信し、肯定応答ACKを受信した場合には、アドレスの変更(例えばインクリメント等)を行い、当該アドレスを含んだ命令を再度送信する。モータモジュールMDLm[2]は、このような探索処理を行った結果、I2CバスBS1[1]で重複しないアドレスを決定することができる。
次に、モータモジュールMDLm[2]は、この決定したアドレスを、GPIOインタフェースGIFを介してGPIOバスBS2[1]へ送信する(ステップS107)。そして、通信IFモジュールMDLifのGPIOインタフェースGIF[1]は、この決定したアドレスを受信する(ステップS108)。具体的には、例えば、通信IFモジュールMDLifと被制御モジュールとの間で、予め通信速度やプリアンブル等といったGPIOインタフェースの通信規則をプログラム等で定めておき、この通信規則に基づいてアドレスを通知することができる。
なお、他の被制御モジュール(モータモジュールMDLm[1]等)は、プログラム等により、この通知されたアドレスを無視するように構成されている。ただし、他の被制御モジュールが新規に接続された被制御モジュールのアドレスを知る必要がある場合には、通信IFモジュールMDLifの場合と同様にして、通知されたアドレスを受信するように構成することも可能である。
通信IFモジュールMDLifは、モータモジュールMDLm[2]から通知されたアドレスの受信を完了すると、スリープ状態から復帰し、I2CバスBS1[1]へマスタ宣言信号を送信する(ステップS109)。モータモジュールMDLm[2]は、当該マスタ宣言信号を受信し、スレーブ状態に遷移する(ステップS110)。これによって、制御ユニットCTLUは、新規に接続されたモータモジュールMDLm[2]を含めて、全ての被制御モジュールにI2CバスBS1[1]を介して通信を行うことができる。
このようにして通信が可能になると、制御ユニットCTLUは、モータモジュールMDLm[2]内に予め保持されている各種情報をI2CバスBS1[1]を介して取得することができる。当該各種情報の中には、例えば、モータモジュールかセンサモジュールかといった種別情報や、ホストコントローラHCTLの制御プログラムがどのような関数や変数を用いて制御命令(第2命令)を与えることが可能であるか、といった命令情報等が含まれる。命令情報は、モータモジュールであれば、モータを回転されるための関数や、当該関数で用いる固定パラメータの値や、当該関数で用いる変動パラメータ(例えば回転速度等)の設定可能範囲等が挙げられる。
例えば、図1に示したようなシステムの開発段階において、制御ユニットCTLUは、新規に接続された被制御モジュールから取得した各種情報を、開発用の端末PCに反映させる。具体的には、制御ユニットCTLUは、例えば、取得した各種情報を、被制御モジュールの装置識別子に関連付けて、開発用の端末PCの画面上に表示させる。これによって、開発者にとって利便性が高い開発環境を構築できる。
《シリアル通信システムの主要な効果等》
以上、図1のシリアル通信システムで図3〜図5に示したようなプラグアンドプレイ動作を行うことで、代表的には、システム構成を柔軟または容易に変更することが可能になる。例えば、ユーザは、被制御モジュール(電子装置)をI2CバスBS1およびGPIOバスBS2に接続した際に、アドレス割り付けを代表とする設定作業を行う必要がない。その結果、システム構成を容易に変更することが可能になる。また、I2CバスBS1およびGPIOバスBS2に接続可能な被制御モジュールの種類や個数も特に制限されることがない。その結果、システム構成を柔軟に変更することが可能になる。
ここで、比較例として、例えば、特許文献1の方式を用いることが考えられる。当該方式では、まず、制御ユニットは、新たに被制御モジュールが接続されたことを何らかの方法で認識する。そして、制御ユニットは、予め定めたテーブルに保持されている全てのアドレス(図2のスレーブアドレスADD)を順にバスシステムBSYSに送信しながら、被制御モジュールの存在有無を認識する。
ただし、当該方式では、基本的に1本のI2Cバスを使用することを想定しており、さらに、新規に接続可能な被制御モジュールがテーブルによって制限されるため、システム構成の変更に際しての柔軟性が低下する恐れがある。また、新規に被制御モジュールが接続されたことを、どのように制御ユニットに認識されるかに関して、工夫が必要とされる。さらに、制御ユニットは、新規に接続された被制御モジュールのアドレスを認識する際に、テーブル内の全てのアドレスをバスシステムBSYSに送信する必要がある。この場合、特に被制御モジュールの数が増加すると、多くの所要時間が必要となるため、ユーザの利便性が低下し、システム構成の変更に際しての容易性が低下する恐れがある。
一方、本実施の形態1の方式では、被制御モジュールは、制御ユニット(制御デバイスMCUc)に対して、GPIOバスBS2を用いて、自身が新規に接続されたことに加えて、自身で定めたアドレスを通知する。具体的には、制御ユニットではなく被制御モジュールが、I2CバスBS1を用いて自身で使用可能なアドレスを探索し、その探索結果を制御ユニットに通知する。これによって、特許文献1のように、全てのアドレスを探索する必要がないため、アドレスの探索時間を短縮することができる。
ただし、この際に、特に、多数の被制御モジュールに対応するために設けられた制御ユニット内の簡易I2CインタフェースIIFsは、スレーブ状態で動作することができない。そこで、簡易I2CインタフェースIIFsは、I2CバスBS1との間の通信を停止するため、スリープ状態に遷移し、この状態で、探索結果となるアドレスをGPIOバスBS2を利用して受信する。このような方式を用いることで、前述した特許文献1の問題を解決でき、システム構成を柔軟または容易に変更することが可能になる。
なお、図1の例では、ホストコントローラ(ホスト制御装置)HCTLおよび通信IFモジュール(通信制御装置)MDLifは、それぞれ異なる制御デバイス(2個のマイクロコントローラ等の半導体チップ)を用いて構成されたが、共通の制御デバイスで構成されてもよい。ただし、それぞれ異なる制御デバイスで構成することで、ユーザの利便性をより高められる場合がある。すなわち、ホストコントローラHCTLは、例えば、Arduino(登録商標)基板やRaspberry Pi(登録商標)基板等を代表とする広く普及している装置で構成することができる。この場合、ユーザは、慣れ親しんだ開発環境を用いて所望の制御システムの開発等を行うことが可能になる。
また、ここでは、第2シリアルバスとして、GPIOバスBS2を用いたが、必ずしも、これに限定されるものではなく、通信に際して、特にアドレス等の指定が不要なシリアルバスであればよい。ただし、GPIOバスBS2は、1本の配線で構成でき、かつ、ワイヤードロジックも使用可能であるため、第2シリアルバスに適用して特に有益となる。なお、GPIOバスBS2は、このようにプラグアンドプレイ機能で使用されるほかに、例えば、接続完了後の通常動作時に、被制御モジュールが割り込み信号を送信する際に使用されてもよい。
さらに、ここでは、簡易I2CインタフェースIIFsでプラグアンドプレイ機能を実現する場合の動作例を示したが、フルI2CインタフェースIIFfでプラグアンドプレイ機能を実現する場合も、同様の方式を用いることができる。この際に、フルI2CインタフェースIIFfは、スレーブ状態で動作可能であるため、場合によっては、ステップS107におけるアドレスの送信をI2CバスBS1[1]を介して行うこともできる。ただし、簡易I2CインタフェースIIFsとの間で処理の統一化を図る観点では、図3〜図5の処理を用いる方が望ましい。
《シリアル通信システムのプラグアンドプレイ動作[2]》
図6、図7および図8は、図1のシリアル通信システムにおいて、プラグアンドプレイの動作方法の他の一例を示す説明図である。前述した図3、図4および図5では、ある時点で1個の被制御モジュールが新規に接続される場合を想定したが、ある時点で複数の被制御モジュールが新規に接続される場合も生じ得る。具体的には、例えば、既に複数の被制御モジュールが搭載されているユニットを、コネクタ等を介してバスに接続するような場合が挙げられる。このような場合であっても、概略的には、図3、図4および図5の方式を用いることが可能である。
具体的には、まず、図6に示すように、モータモジュールMDLm[2]およびセンサモジュールMDLs[2]が新規に接続された場合を想定する(ステップS101)。図4の場合と同様に、モータモジュールMDLm[2]およびセンサモジュールMDLs[2]は、共に、GPIOインタフェースGIFを介して‘H’レベルを送信する(ステップS102)。そして、図4の場合と同様に、通信IFモジュールMDLifは、GPIOインタフェースGIF[1]を介して‘H’レベルを検出し(ステップS103)、簡易I2CインタフェースIIFs[1]をスリープ状態に遷移させる(ステップS104)。
ここで、モータモジュールMDLm[2]およびセンサモジュールMDLs[2]は、図4の場合と異なり、I2C規格の調停機能に基づき、いずれか一方のみがマスタ状態に遷移し、他方はスレーブ状態に遷移する(ステップS105−2AS105−2B)。図6の例では、モータモジュールMDLm[2]の方がマスタ状態に遷移している。この状態で、マスタ状態で動作するモータモジュールMDLm[2]は、図5の場合と同様に、アドレスの探索処理を行い、その結果、I2CバスBS1[1]で重複しないアドレスを決定する(ステップS106−1)。
次いで、図7に示すように、モータモジュールMDLm[2]は、図5の場合と同様に、決定したアドレスをGPIOバスBS2[1]を介して送信し(ステップS107)、通信IFモジュールMDLifは、当該アドレスを受信する(ステップS108)。アドレスの受信が完了すると、通信IFモジュールMDLifは、図5の場合と同様に、I2CバスBS1[1]にマスタ宣言信号(スタートコンディションSTC)を送信し、スリープ状態から復帰して、マスタ状態に遷移する(ステップS109)。
一方、ステップS107の動作が行われる前に、センサモジュールMDLs[2]は、GPIOバスBS2[1]が競合しないように、GPIOインタフェースGIFからの‘H’レベルの送信を停止し、ハイインピーダンスの出力等を行う(ステップS106−2)。センサモジュールMDLs[2]は、例えば、スレーブ状態に遷移した際(ステップS105−2B)に、当該‘H’レベルの送信を停止すればよい。
また、通信IFモジュールMDLifからマスタ宣言信号が送信されると(ステップS109)、モータモジュールMDLm[2]は、図5の場合と同様に、スレーブ状態に遷移する(ステップS110)。さらに、ここでは、モータモジュールMDLm[2]を含めた各被制御モジュールは、フルI2CインタフェースIIFf内のレジスタに、バス接続完了フラグ等を備えている。バス接続完了フラグは、自身のアドレスを通信IFモジュールMDLifに認識させたか否か(すなわち、バス接続が完了したか否か)を表す。モータモジュールMDLm[2]は、例えば、ステップS110でスレーブ状態に遷移する際に、当該バス接続完了フラグにフラグを立てる。
次いで、図8に示すように、モータモジュールMDLm[2]は、ステップS110でスレーブ状態に遷移すると共に、GPIOインタフェースGIFを入力状態に設定する(ステップS111)。一方、スレーブ状態で動作しているセンサモジュールMDLs[2]は、ステップS109において、バス接続完了フラグが立っていない状態で、通信IFモジュールMDLifからのマスタ宣言信号(スタートコンディションSTC)を受信する。これに応じて、センサモジュールMDLs[2]は、GPIOインタフェースGIFを介して‘H’レベルを送信する(ステップS112)。
その後は、図3、図4および図5のモータモジュールMDLm[2]の場合と同様の動作が行われ、センサモジュールMDLs[2]のバス接続も完了する。センサモジュールMDLs[2]は、バス接続が完了した際には、図7のステップS110で述べたように、バス接続完了フラグにフラグを立て、ステップS111で述べたように、GPIOインタフェースGIFを入力状態に設定する。
《シリアル通信システムの適用例》
図9は、図1のシリアル通信システムを適用した車両型ロボットの模式的な構成例を示す外形図である。図9に示す車両型ロボットでは、4個のタイヤが取り付けられたシャーシ基板CB上に、制御ユニットCTLUと、センサモジュールMDLsと、モータモジュールMDLmと、が搭載されている。センサモジュールMDLsやモータモジュールMDLmは、コネクタ等を介してシャーシ基板CBに着脱可能となっている。
シャーシ基板CBは、I2CバスBS1およびGPIOバスBS2を備える。制御ユニットCTLU、センサモジュールMDLsおよびモータモジュールMDLmは、このI2CバスBS1およびGPIOバスBS2を介して互いに接続される。特に限定はされないが、モータモジュールMDLmは、タイヤの回転速度や、タイヤの舵角等を制御し、センサモジュールMDLsは、障害物の有無等を検出する。制御ユニットCTLUは、センサモジュールMDLsの検出結果に応じて、モータモジュールMDLmを制御することで、車両型ロボットの移動を制御する。
なお、ここでは、車両型ロボットに含まれる代表的な被制御モジュールの例を示したが、実際には、当該車両型ロボットの用途(例えば、搬送用ロボットや掃除用ロボット等)に応じて、さらに、数多くの被制御モジュールが搭載される場合がある。そして、制御ユニットCTLUは、このような多くの被制御モジュールを所定の制御周期内に制御する必要がある。例えば、このようなロボットの開発段階や開発後の機能拡張段階等において、本実施の形態1のプラグアンドプレイ機能を用いることで、ユーザの利便性を向上させること等が可能になる。
以上、本実施の形態1のシリアル通信システム、通信制御装置および電子装置を用いることで、代表的には、システム構成を柔軟または容易に変更することが可能になる。
(実施の形態2)
本実施の形態2では、実施の形態1で述べた通信IFモジュール(通信制御装置)および被制御モジュール(電子装置)の詳細について説明する。
《通信IFモジュール(通信制御装置)の構成および動作》
図10は、本発明の実施の形態2による通信制御装置において、その主要部の構成例を示すブロック図である。図10に示す通信IFモジュール(通信制御装置)MDLifは、例えば、配線基板PCB1上に、マイクロコントローラ等の制御デバイス(半導体チップ)MCUcが実装された構成となっている。また、配線基板PCB1には、図示は省略しているが、ホストコントローラHCTLに接続するためのコネクタや、バスシステムBSYS[1]〜BSYS[4]に接続するためのコネクタ等も実装されている。
制御デバイスMCUcは、図1に示したように、第1シリアルインタフェースとなる簡易I2CインタフェースIIFs[1]〜IIFs[3](IIFs[3]の図示は省略)およびフルI2CインタフェースIIFfと、第2シリアルインタフェースとなるGPIOインタフェースGIF[1]〜GIF[4]と、を備える。これに加えて、制御デバイスMCUcは、SPIインタフェース(ホストインタフェース)SIFと、データ格納用レジスタREGdと、制御部CTLcと、セレクタSELと、アドレス管理用メモリMEMと、を備える。
前述したように、各I2Cインタフェース(第1シリアルインタフェース)IIFは、概略的には、バスシステムBSYS内の複数の被制御モジュール(電子装置)のいずれかのアドレスを含んだ命令(第1命令)をI2Cバス(第1シリアルバス)BS1へ送信することで当該被制御モジュールを制御する。また、各GPIOインタフェース(第2シリアルインタフェース)GIFは、概略的には、複数の被制御モジュールのいずれかからの信号を受信する。
SPIインタフェース(ホストインタフェース)SIFは、ホストコントローラ(ホスト制御装置)HCTLとの間で、SPIバスBS3を介してシリアル通信を行う。ホストコントローラHCTLは、前述したように、バスシステムBSYS内の複数の被制御モジュールのそれぞれに対して、複数の被制御モジュールをそれぞれ識別する装置識別子を含んだ制御命令(第2命令)を発行する。SPIインタフェースSIFは、当該制御命令を受信し、データ格納用レジスタREGdに保持する。
制御部CTLcは、データ分配部DDSとアドレス管理部ADMを備え、各I2CインタフェースIIFおよび各GPIOインタフェースGIFの制御を含めて、制御デバイスMCUc全体の動作を制御する。制御部CTLcは、主に、プロセッサによるプログラム処理等によって構成される。
アドレス管理部ADMは、アドレス管理用メモリMEMを用いて、バスシステムBSYS内の複数の被制御モジュールのアドレスを管理する。具体的には、アドレス管理用メモリMEMは、制御命令(第2命令)に含まれる装置識別子と、各I2CバスBS1(各I2CインタフェースIIF)をそれぞれ識別するバス識別子と、当該バス識別子で識別されるI2CバスBS1内でのスレーブアドレスADDと、の対応関係を保持する。
アドレス管理部ADMは、図5のステップS107等に示したように、被制御モジュールからGPIOバス(例えばBS2[1])を介して、決定したスレーブアドレスADDを受信した際に、当該スレーブアドレスADDと、当該GPIOバスに対応するI2Cバス(BS1[1])のバス識別子と、の対応関係をアドレス管理用メモリMEMに登録する。この際に、アドレス管理部ADMは、アドレス管理用メモリMEM上で、当該被制御モジュールのアドレス情報を所定の装置識別子に対応付けると共に、当該装置識別子をSPIインタフェースSIFを介してホストコントローラHCTLに通知する。
データ分配部DDSは、ホストコントローラHCTLから制御命令を受信した際に、アドレス管理用メモリMEMの対応関係に基づいて、所定のスレーブアドレスADDを含んだ命令(第1命令)を所定のI2CインタフェースIIFを介してI2CバスBS1へ送信する。具体的には、データ分配部DDSは、データ格納用レジスタREGdに保持された制御命令(第2命令)の装置識別子を認識し、アドレス管理用メモリMEMの対応関係に基づいてセレクタSELを制御し、当該制御命令を複数のI2CインタフェースIIFのいずれかに送信する。この際に、データ分配部DDSは、装置識別子をスレーブアドレスADDに変換する処理も行う。
また、制御部CTLcは、I2CバスBS1での読み出し命令に応じた各被制御モジュールからのデータDTをI2CインタフェースIIFで受信した際に、当該データDTを、SPIインタフェースSIFを介してホストコントローラHCTLに送信する。
《モータモジュール(電子装置)の構成および動作》
図11は、本発明の実施の形態2による電子装置において、その主要部の構成例を示すブロック図である。ここでは、被制御モジュール(電子装置)がモータモジュールMDLmである場合を例とする。図11に示すモータモジュールMDLmは、例えば、配線基板PCB2上に、マイクロコントローラ等の制御デバイス(半導体チップ)MCUmと、モータMTと、が実装された構成となっている。また、配線基板PCB2には、図示は省略しているが、I2CバスBS1およびGPIOバスBS2に接続するためのコネクタや、、モータMTを駆動するためのモータドライバ等も実装されている。
制御デバイスMCUmは、図1に示したように、第1シリアルインタフェースとなるフルI2CインタフェースIIFfと、第2シリアルインタフェースとなるGPIOインタフェースGIFと、を備える。これに加えて、制御デバイスMCUmは、制御部CTLmを備える。前述したように、フルI2CインタフェースIIFfは、概略的には、アドレスを含んだ命令(第1命令)をI2Cバス(第1シリアルバス)BS1から受信し、当該アドレスが自身のアドレスの場合に、肯定応答ACをI2CバスBS1へ送信する。また、GPIOインタフェースGIFは、概略的には、GPIOバスBS2へ信号を送信する。
制御部CTLmは、モータ制御部MCTLおよびアドレス探索部ADSを備え、フルI2CインタフェースIIFfおよびGPIOインタフェースGIFの制御を含めて、制御デバイスMCUm全体の動作を制御する。制御部CTLmは、主に、プロセッサによるプログラム処理等によって構成される。モータ制御部MCTLは、フルI2CインタフェースIIFfで受信した命令(第1命令)に応じて、モータドライバ等を介してモータMTを制御する。アドレス探索部ADSは、実施の形態1で述べたように、アドレス探索処理を代表に、プラグアンドプレイに伴う各種処理を行う。
《フルI2Cインタフェースの構成および動作》
図12は、図11の電子装置において、フルI2Cインタフェース周りの主要部の構成例を示すブロック図である。ここでは、被制御モジュール(電子装置)のフルI2Cインタフェースを例に説明するが、通信IFモジュールMDLifのフルI2Cインタフェースも同様の構成および動作となる。
図12に示すフルI2CインタフェースIIFfは、スレーブアドレスレジスタREGa、比較部CMP、送受信データ用シフトレジスタSREG、ACK検出回路ACDT、スタートコンディション検出回路STDT、ストップコンディション検出回路SPDT、バス状態検出回路BSDT、および通信制御回路CCTLfを備える。さらに、フルI2CインタフェースIIFfは、データ用送信バッファBFDoおよびデータ用受信バッファBFDiと、クロック用送信バッファBFCoおよびクロック用受信バッファBFCiと、を備える。
データ用送信バッファBFDoおよびデータ用受信バッファBFDiは、制御デバイスMCUmの外部端子PNsdに結合され、クロック用送信バッファBFCoおよびクロック用受信バッファBFCiは、制御デバイスMCUmの外部端子PNscに結合される。外部端子PNsdは、I2CバスBS1のデータ配線(SDA)に結合され、外部端子PNscは、I2CバスBS1のクロック配線(SCL)に結合される。マスタ状態で動作する場合、フルI2CインタフェースIIFfは、クロック用送信バッファBFCoを介して、I2CバスBS1のクロック配線(SCL)に所定のクロック信号(fCLK)を送信する。クロック用受信バッファBFCiは、I2CバスBS1のクロック配線上のクロック信号SCLを受信する。
スレーブアドレスレジスタREGaは、スレーブ状態で動作する際の自身のスレーブアドレスADDを保持する。送受信データ用シフトレジスタSREGは、クロック用受信バッファBFCiで受信したクロック信号SCLに同期してシフト動作を行うことで、パラレルデータとシリアルデータとの間の変換を行う。送受信データ用シフトレジスタSREGは、データ送信時には、保持しているパラレルデータを1ビットずつデータ用送信バッファBFDoへ送信し、データ受信時には、データ用受信バッファBFDiで受信したシリアルデータ(データ信号SDA)を1ビットずつ取り込む。
比較部CMPは、スレーブ状態で動作する際に、送受信データ用シフトレジスタSREGに取り込んだデータ信号SDAと、スレーブアドレスレジスタREGaに保持されたスレーブアドレスADDと、を比較し、命令(第1命令)が自身宛てか否かを判別する。ACK検出回路ACDTは、データ用受信バッファBFDiで受信したデータ信号SDAの中から、図2の肯定信号ACK(または否定信号(NAK))を検出する。
スタートコンディション検出回路STDTおよびストップコンディション検出回路SPDTは、データ用受信バッファBFDiで受信したデータ信号SDAおよびクロック用受信バッファBFCiで受信したクロック信号SCLを監視し、それぞれ、図2のスタートコンディションSTCおよびストップコンディションSPCを検出する。バス状態検出回路BSDTは、スタートコンディション検出回路STDTおよびストップコンディション検出回路SPDTの検出結果に基づき、I2CバスBS1の開放有無の判別や、スタートコンディションSTCが競合した際の調停(自身がマスタ状態になれたか否かの判別)等を行う。
通信制御回路CCTLfは、制御レジスタ群REGBKを備え、当該制御レジスタ群REGBKに含まれる各種制御レジスタの設定値に基づいて、フルI2CインタフェースIIFf全体を制御する。制御レジスタ群REGBKには、マスタ状態であるかスレーブ状態であるかを識別するフラグFLG1と、インタフェースの有効/無効を制御するフラグFLG2と、スタートコンディションSTCを送信する際のフラグFLG3と、バス接続完了フラグFLG4と、が含まれる。
フラグFLG1は、バス状態検出回路BSDTの検出結果に基づき制御される。フラグFLG2は、図4のステップS104等に示したように、スリープ状態に遷移させる際に使用される。フラグFLG3は、図5のステップS109等に示したように、スタートコンディションSTCを送信する際に使用される。バス接続完了フラグFLG4は、図7のステップS110等に示したように、バス接続の完了有無を判別する際に使用される。
また、フルI2CインタフェースIIFfは、制御デバイスMCUm内の内部バスIBSを介して、GPIOインタフェースGIFやアドレス探索部ADS等に結合される。GPIOインタフェースGIFは、制御デバイスMCUmの外部端子PNioを介して、GPIOバスBS2に結合される。
《簡易I2Cインタフェースの構成および動作》
図13は、図10の通信制御装置において、簡易I2Cインタフェース周りの主要部の構成例を示すブロック図である。図13に示す簡易I2CインタフェースIIFsは、送受信データ用シフトレジスタSREGと、ACK検出回路ACDTと、通信制御回路CCTLsと、データ用送信バッファBFDoおよびデータ用受信バッファBFDiと、クロック用送信バッファBFCoおよびクロック用受信バッファBFCiと、を備える。すなわち、図13の簡易I2CインタフェースIIFsは、図12のフルI2CインタフェースIIFfと比較して、スレーブ状態の動作のみで使用される各回路部を備えない構成となっている。
通信制御回路CCTLsは、図12の場合と同様に、制御レジスタ群REGBKを備える。ただし、制御レジスタ群REGBKは、図12の場合と比較して、マスタ状態であるかスレーブ状態であるかを識別するフラグFLG1を備えない。なお、前述した図12の制御レジスタ群REGBKは、実際には、更に多くのレジスタ(フラグ)を備え、その中には、スレーブ状態のみで使用されるレジスタ(フラグ)も多く含まれる。図13の制御レジスタ群REGBKでは、このスレーブ状態のみで使用されるレジスタ(フラグ)が削除されている。これに応じて、図13の通信制御回路CCTLsでは、図12の通信制御回路CCTLfと比較して、当該削除されたレジスタ(フラグ)に基づく処理を行う各回路部が削除されている。
また、簡易I2CインタフェースIIFsは、制御デバイスMCUc内の内部バスIBSを介して、GPIOインタフェースGIFやアドレス管理部ADM等に結合される。アドレス管理部ADMは、アドレス管理用メモリMEMにアクセス可能となっている。GPIOインタフェースGIFは、制御デバイスMCUcの外部端子PNioを介して、GPIOバスBS2に結合される。
《通信IFモジュール(通信制御装置)のアドレス管理処理》
図14は、図10および図13の通信制御装置において、アドレス管理部の処理内容の一例を示すフロー図である。アドレス管理部ADMは、まず、ステップS201において、各GPIOインタフェースGIFを監視し、いずれかのGPIOインタフェースGIFで‘H’レベル(第1信号)を受信した際に、ステップS202に移行する。アドレス管理部ADMは、ステップS202において、新規に接続された被制御モジュールが存在することを認識する。
次いで、アドレス管理部ADMは、‘H’レベルを受信したGPIOインタフェースGIFに対応するI2CインタフェースIIFをスリープ状態に遷移させる(ステップS203)。具体的には、アドレス管理部ADMは、図13のフラグFLG2を立てる。これにより、当該I2CインタフェースIIFは、I2CバスBS1との間の通信を停止し、待機する。そして、アドレス管理部ADMは、当該GPIOインタフェースGIFでデータ(すなわちスレーブアドレスADD)を受信するまで、ステップS203の待機を継続する(ステップS204)。
アドレス管理部ADMは、対象のGPIOインタフェースGIFでデータ(スレーブアドレスADD)を受信すると、当該受信データを新規に接続された被制御モジュールのスレーブアドレスADDとして認識し、アドレス管理用メモリMEMに登録する(ステップS205)。その後、アドレス管理部ADMは、スリープ状態から復帰し、I2CインタフェースIIFを介して対象のI2CバスBS1にマスタ宣言信号(すなわちスタートコンディションSTC)を送信し、マスタ状態に戻る(ステップS206)。具体的には、アドレス管理部ADMは、図13のフラグFLG2を消去し、フラグFLG3を立てる。
《被制御モジュール(電子装置)のアドレス探索処理》
図15は、図11および図12の電子装置において、アドレス探索部の処理内容の一例を示すフロー図である。アドレス探索部ADSは、I2CバスBS1およびGPIOバスBS2に接続された際に、まず、‘H’レベル(第1信号)をGPIOインタフェースGIFを介してGPIOバスBS2へ送信する(ステップS301(第1処理))。次いで、アドレス探索部ADSは、フルI2CインタフェースIIFfを介してI2CバスBS1へマスタ宣言信号を送信する(ステップS302)。
続いて、アドレス探索部ADSは、自身がマスタ状態であるか否かを判別する(ステップS303)。具体的には、アドレス探索部ADSは、図12のバス状態検出回路BSDTの検出結果に基づき判別を行う。マスタ状態である場合、アドレス探索部ADSは、候補となる自身のスレーブアドレスADDを含んだ命令(第1命令)を、フルI2CインタフェースIIFfを介してI2CバスBS1へ送信する(ステップS304)。具体的には、アドレス探索部ADSは、例えば、図2に示した、スレーブアドレスADDおよび読み書き選択信号(R/W)(例えば書き込み命令)を送信する。
アドレス探索部ADSは、当該命令(第1命令)に応じて、肯定応答ACKを受信した場合(ステップS305)には、候補とするスレーブアドレスADDを適宜変更し(例えば1だけインクリメントし)、ステップS304の処理に戻る(ステップS310)。アドレス探索部ADSは、このステップS304,S305,S310の処理(第2処理)によって、命令(第1命令)に対する肯定応答ACKを受信しないスレーブアドレス(すなわち重複しないスレーブアドレス)ADDを探索する。
ステップS304で肯定応答ACKを受信しない場合、アドレス探索部ADSは、現在のスレーブアドレスADD(すなわち探索結果となるスレーブアドレス)を、GPIOインタフェースGIFを介してGPIOバスBS2へ送信する(S306(第3処理))。その後、アドレス探索部ADSは、GPIOインタフェースGIFを出力状態から入力状態へ変更する(ステップS307)。また、アドレス探索部ADSは、通信IFモジュールMDLifからのマスタ宣言信号を受信し、バス接続完了フラグ(図12のFLG4)を立て、スレーブ状態に戻る。
一方、アドレス探索部ADSは、ステップS303において、マスタ状態でない場合には、GPIOバスBS2への‘H’レベルの送信を停止し、通信IFモジュールMDLifからのマスタ宣言信号を受信するまでスレーブ状態で待機する(ステップS309)。そして、アドレス探索部ADSは、通信IFモジュールMDLifからのマスタ宣言信号を受信した場合には、再度、ステップS301の処理から実行する。
以上、本実施の形態2の通信制御装置および電子装置を用いることで、実施の形態1で述べた各種効果と同様の効果が得られる。その中でも、特に、図12および図13に示したように、簡易I2CインタフェースIIFsを用いることによる回路面積およびコストの低減効果や、図10に示したように、ホストコントローラHCTLと通信IFモジュールMDLifとを分離することによる効果が得られる。すなわち、ホストコントローラHCTLからの制御命令(第2命令)を通信IFモジュールMDLifで自動的に分配する構成によって、ユーザは、ホストコントローラHCTLの開発環境のみを用いて、所望の制御システムを開発でき、ユーザの利便性(言い換えれば開発の容易性)が向上する。
(実施の形態3)
《シリアル通信システムの構成(変形例[1])》
図16は、本発明の実施の形態3によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図17は、図16の比較例として検討したシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図16および図17では、通信IFモジュールMDLifと、複数の被制御モジュール(ここではモータモジュールMDLm[1],MDLm[2],…)とが、GPIOバスBS2を介して接続された構成例が示されている。
各GPIOインタフェースGIFは、図17に示すように、通常、インタフェース内で、初期設定によりプルアップ抵抗/プルダウン抵抗(ここではプルダウン抵抗Ri)を接続することができる。ここで、例えば、モータモジュールMDLm[1]内のGPIOインタフェースGIFが、送信バッファBFGoを介して‘H’レベルを送信した場合を想定する。この場合、当該送信バッファBFGoから各モジュール(MDLif,MDLm[1],MDLm[2],…)内のプルダウン抵抗Riに電流が流れるため、特に、被制御モジュールの数が多くなると、消費電力や送信バッファBFGoの駆動能力等が問題となる恐れがある。
そこで、図16では、被制御モジュール(モータモジュールMDLm[1],MDLm[2],…)の配線基板PCB2上に、外部スイッチSWと外部抵抗Reとが実装されている。外部抵抗Reは、場合によって省くことも可能である。外部スイッチSWは、一端にGPIOバスBS2が結合され、他端に外部抵抗Reを介して電源電圧(固定電圧)VDDが供給される。そして、各被制御モジュール内のGPIOインタフェースGIFは、送信バッファBFGoを介して外部スイッチSWのオン・オフを制御することで、GPIOバスBS2における通信を行う。
これにより、例えば、モータモジュールMDLm[1]内のGPIOインタフェースGIFが、送信バッファBFGoを介して‘H’レベルを送信した場合、図17の場合と異なり、通信IFモジュールMDLif内のプルダウン抵抗Riのみに電流が流れる。その結果、消費電力を低減でき、送信バッファBFGoの駆動能力の問題も特に生じない。
(実施の形態4)
《シリアル通信システムの構成(変形例[2])》
図18は、本発明の実施の形態4によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図18では、通信IFモジュールMDLifと、被制御モジュール(ここではモータモジュールMDLm)とが、I2CバスBS1およびGPIOバスBS2を介して接続された構成例が示されている。通信IFモジュールMDLif内の制御デバイスMCUcは、I2CバスBS1のデータ配線(SDA)およびクロック配線(SCL)にそれぞれ結合される外部端子PNsdおよび外部端子PNscと、GPIOバスBS2に結合される外部端子PNio1と、に加えて、外部端子PNio2を備える。
外部端子PNio2は、通信IFモジュールMDLifの配線基板PCB1を介して外部端子PNscに接続される。また、通信IFモジュールMDLifの制御デバイスMCUcは、ハードウェア、あるいはハードウェアとソフトウェアの組合せによって構成されるシフトレジスタSREG2を備える。シフトレジスタSREG2は、GPIOバスBS2からGPIOインタフェースGIFを介して受信したシリアルデータを、外部端子PNio2で受信したクロック信号SCLに同期して取り込む。
一方、被制御モジュール(モータモジュールMDLm)の制御デバイスMCUmにおいて、図11の制御部CTLm内のアドレス探索部ADSは、例えば、次のような処理を行う。すなわち、アドレス探索部ADSは、図15のステップS306等で探索結果となるスレーブアドレスADDをGPIOバスBS2へ送信すると共に、その送信タイミングと同期して、フルI2CインタフェースIIFfを介してI2CバスBS1に含まれるクロック配線にクロック信号SCLを送信する。これにより、通信IFモジュールMDLifは、当該スレーブアドレスADDをシフトレジスタSREG2に取り込むことができる。
このような方式を用いることで、シリアル通信システムにおける配線数を特に増大させることなく、1本のGPIOバスBS2を用いて等価的に同期通信を行うことが可能になる。その結果、シリアル通信システムの小型化または低コスト化が図れる。また、同期通信であるため、GPIOバスBS2を用いた通信の信頼性をより高められる場合がある。
(実施の形態5)
《シリアル通信システムの構成(変形例[3])》
図19は、本発明の実施の形態5によるシリアル通信システムにおいて、その主要部の構成例を示す概略図である。図19では、通信IFモジュールMDL2ifと、バスシステムBSYS[1]〜BSYS[4]内の被制御モジュールとが、I2CバスBS1[1]〜BS1[4]および差動バスBS4[1]〜BS4[4]を介して接続された構成例が示されている。ここでは、被制御モジュールの構成を、バスシステムBSYS[1]内のモータモジュールMDL2m[1]を代表例に説明する。
通信IFモジュールMDL2ifの配線基板PCB1上には、4個の差動バスドライバDFV[1]〜DFV[4]が実装される。4個の差動バスドライバDFV[1]〜DFV[4]は、それぞれ、制御デバイスMCUcのGPIOインタフェースGIF[1]〜GIF[4]から送信されたシングルデータを差動データに変換して差動バスBS4[1]〜BS4[4]へ送信する。また、その逆に、4個の差動バスドライバDFV[1]〜DFV[4]は、それぞれ、差動バスBS4[1]〜BS4[4]から受信した差動データを、シングルデータに変換してGPIOインタフェースGIF[1]〜GIF[4]へ送信する。
同様に、モータモジュールMDL2m[1]の配線基板PCB2上には、差動バスドライバDFVが実装される。差動バスドライバDFVは、制御デバイスMCUmのGPIOインタフェースGIF(図示は省略)から送信されたシングルデータを差動データに変換して差動バスBS4[1]へ送信する。また、その逆に、当該差動バスドライバDFVは、差動バスBS4[1]から受信した差動データを、シングルデータに変換してGPIOインタフェースGIF(図示は省略)へ送信する。なお、差動バスドライバDFVは、代表的には、RS485規格に基づく構成が挙げられる。
前述したように、ロボット等の制御システムでは、多数の被制御モジュールがバスに接続されるため、バスの配線長が長くなり得ることに加えて、モータMT等が発生するノイズがバスに重畳する恐れもある。そこで、このような場合であっても、GPIOインタフェースGIFを用いた通信を高い信頼性で行うため、図19に示したような差動バスBS[1]〜BS[4]を用いることが有益となる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。例えば、前述した実施の形態は、本発明を分かり易く説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施の形態の構成の一部を他の実施の形態の構成に置き換えることが可能であり、また、ある実施の形態の構成に他の実施の形態の構成を加えることも可能である。また、各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
例えば、ここでは、第1シリアルバスとしてI2CバスBS1を用いたが、必ずしもI2CバスBS1に限定されるものではない。すなわち、I2CバスBS1の場合と同様に、マスタ状態かスレーブ状態かで動作し、アドレスを指定してシリアル通信を行うバスであれば同様に適用可能である。
(付記)
本実施の形態によるシリアル通信システムのプラグアンドプレイ方法は、第1および第2シリアルバスと、制御ユニットと、複数の電子装置と、を用いる。制御ユニットは、第1および第2シリアルバスに結合され、アドレスを含んだ第1命令を第1シリアルバスへ送信する。複数の電子装置は、それぞれ、第1および第2シリアルバスに着脱可能であり、第1および第2シリアルバスに接続された状態で自身のアドレスを含んだ第1命令を第1シリアルバスから受信した場合に、肯定応答を第1シリアルバスへ送信する。ここで、複数の電子装置のそれぞれは、第1および第2シリアルバスに接続された際に、第1信号を第2シリアルバスへ送信する。制御ユニットは、第1信号を受信した際に、第1シリアルバスとの間の通信を停止する。複数の電子装置のそれぞれは、候補となるアドレスを含んだ第1命令を第1シリアルバスへ送信しながら、当該第1命令に対する肯定応答を受信しないアドレスを探索し、当該探索結果となるアドレスを第2シリアルバスへ送信する。制御ユニットは、当該探索結果となるアドレスを第2シリアルバスから受信する。
BS1 I2Cバス
BS2 GPIOバス
BSYS バスシステム
CTLU 制御ユニット
GIF GPIOインタフェース
HCTL ホストコントローラ
IIFf フルI2Cインタフェース
IIFs 簡易I2Cインタフェース
MCU 制御デバイス
MDLif 通信IFモジュール
MDLm モータモジュール
MDLs センサモジュール
MT モータ
SEN センサ

Claims (20)

  1. 第1および第2シリアルバスと、
    前記第1および第2シリアルバスにそれぞれ結合される第1および第2シリアルインタフェースを含み、アドレスを含んだ第1命令を前記第1シリアルバスへ送信する制御ユニットと、
    それぞれ、前記第1および第2シリアルバスに着脱可能であり、前記第1および第2シリアルバスに接続された状態で自身のアドレスを含んだ前記第1命令を前記第1シリアルバスから受信した場合に、肯定応答を前記第1シリアルバスへ送信する複数の電子装置と、
    を備え、
    前記複数の電子装置のそれぞれは、
    前記第1および第2シリアルバスに接続された際に、第1信号を前記第2シリアルバスへ送信する第1処理と、
    前記第1信号を送信したのち、予め定めた演算規則に基づき候補となるアドレスを順次変更しながら、前記候補となるアドレスを含んだ前記第1命令を前記第1シリアルバスへ順次送信することで、当該第1命令に対する前記肯定応答を受信しないアドレスを探索する第2処理と、
    前記第2処理の探索結果となるアドレスを前記第2シリアルバスへ送信する第3処理と、を実行し、
    前記制御ユニットは、前記第1信号を受信した際に、前記第1シリアルインタフェースを前記第1シリアルバスとの間の通信を停止するスリープ状態に遷移させ、前記探索結果となるアドレスを前記第2シリアルバスから受信する、
    シリアル通信システム。
  2. 請求項1記載のシリアル通信システムにおいて、
    前記複数の電子装置のそれぞれは、
    前記第1命令を前記第1シリアルバスへ送信する命令送信部と、
    前記第1命令を前記第1シリアルバスから受信する命令受信部と、
    を備え、
    前記制御ユニットは、前記第1命令を前記第1シリアルバスへ送信する命令送信部を備え、前記第1命令を前記第1シリアルバスから受信する命令受信部を備えない、
    シリアル通信システム。
  3. 請求項2記載のシリアル通信システムにおいて、
    前記第1シリアルバスは、I2C規格に基づくI2Cバスであり、
    前記複数の電子装置のそれぞれは、前記I2C規格上のマスタ状態とスレーブ状態の両方で動作可能であり、
    前記制御ユニットは、前記I2C規格上のマスタ状態のみで動作可能である、
    シリアル通信システム。
  4. 請求項3記載のシリアル通信システムにおいて、
    前記複数の電子装置のそれぞれは、前記第2処理において、前記第1信号を前記第2シリアルバスへ送信したのち、前記マスタ状態で動作するためのスタートコンディションを前記第1シリアルバスへ送信し、自身が前記マスタ状態となった場合に前記アドレスの探索を行い、
    前記制御ユニットは、前記第1信号を受信した場合には、前記第1シリアルインタフェースを前記スリープ状態に遷移させ、前記探索結果となるアドレスの受信を完了した場合には、前記スリープ状態から復帰させ、前記スタートコンディションを前記第1シリアルバスへ送信する、
    シリアル通信システム。
  5. 請求項3記載のシリアル通信システムにおいて、
    前記複数の電子装置のそれぞれは、前記第3処理において、前記探索結果となるアドレスを前記第2シリアルバスへ送信すると共に、当該アドレスの送信タイミングと同期して、前記第1シリアルバスに含まれるクロック配線にクロック信号を送信し、
    前記制御ユニットは、前記クロック配線から受信した前記クロック信号に同期して、前記探索結果となるアドレスを前記第2シリアルバスから1ビットずつ受信する、
    シリアル通信システム。
  6. 請求項1記載のシリアル通信システムにおいて、
    前記シリアル通信システムは、さらに、前記第1および第2シリアルバスを複数備え、
    前記制御ユニットは、
    前記複数の第1シリアルバスにそれぞれ結合される複数の前記第1シリアルインタフェースと、
    前記複数の第2シリアルバスにそれぞれ結合される複数の前記第2シリアルインタフェースと、
    を備え、
    前記複数の第1シリアルインタフェースの少なくとも一部は、前記第1命令を前記第1シリアルバスへ送信する命令送信部を備え、前記第1命令を前記第1シリアルバスから受信する命令受信部を備えない、
    シリアル通信システム。
  7. 請求項6記載のシリアル通信システムにおいて、
    前記制御ユニットは、
    前記複数の電子装置のそれぞれに対して、前記複数の電子装置をそれぞれ識別する装置識別子を含んだ第2命令を発行するホスト制御装置と、
    前記ホスト制御装置との間で通信を行うホストインタフェースと、前記複数の第1および第2シリアルインタフェースと、アドレス管理用メモリと、を備える通信制御装置と、
    を有し、
    前記アドレス管理用メモリは、前記装置識別子と、前記複数の第1シリアルバスをそれぞれ識別するバス識別子と、当該バス識別子で識別される前記第1シリアルバス内でのアドレスと、の対応関係を保持し、
    前記通信制御装置は、前記ホスト制御装置から前記第2命令を受信した際に、前記アドレス管理用メモリの対応関係に基づいて、所定のアドレスを含んだ前記第1命令を所定の前記第1シリアルバスへ送信し、前記探索結果となるアドレスを前記第2シリアルバスから受信した際に、当該アドレスを前記アドレス管理用メモリに登録する、
    シリアル通信システム。
  8. 請求項1記載のシリアル通信システムにおいて、
    前記第2シリアルバスは、1本のGPIOバスである、
    シリアル通信システム。
  9. 請求項1記載のシリアル通信システムにおいて、
    前記第2シリアルバスは、差動データを伝送する差動バスである、
    シリアル通信システム。
  10. 第1および第2シリアルバスに着脱が可能な複数の電子装置を前記第1シリアルバスを介して制御する通信制御装置であって、
    前記第1シリアルバスに前記複数の電子装置が接続された状態で、前記複数の電子装置のいずれかのアドレスを含んだ第1命令を前記第1シリアルバスへ送信することで当該電子装置を制御する第1シリアルインタフェースと、
    前記第2シリアルバスに前記複数の電子装置が接続された状態で、前記複数の電子装置のいずれかからの信号を受信する第2シリアルインタフェースと、
    前記第1および第2シリアルインタフェースを制御する制御部と、
    を有し、
    前記複数の電子装置のそれぞれは、前記第1および第2シリアルバスに接続された際に、第1信号を前記第2シリアルバスへ送信したのち、前記第1シリアルバスを用いて自身で使用可能なアドレスを探索し、当該探索結果となるアドレスを前記第2シリアルバスへ送信し、
    前記通信制御装置は、前記第1信号を受信した際に、前記第1シリアルインタフェースを前記第1シリアルバスとの間の通信を停止するスリープ状態に遷移させ、前記探索結果となるアドレスを前記第2シリアルバスから受信する、
    通信制御装置。
  11. 請求項10記載の通信制御装置において、
    前記第1シリアルインタフェースは、前記第1命令を前記第1シリアルバスへ送信する命令送信部を備え、前記第1命令を前記第1シリアルバスから受信する命令受信部を備えない、
    通信制御装置。
  12. 請求項11記載の通信制御装置において、
    前記第1シリアルバスは、I2C規格に基づくI2Cバスであり、
    前記第1シリアルインタフェースは、前記I2C規格上のマスタ状態のみで動作可能であり、
    前記制御部は、前記第2シリアルインタフェースで前記第1信号を受信した場合には、前記第1シリアルインタフェースを前記スリープ状態に遷移させ、前記第2シリアルインタフェースで前記探索結果となるアドレスの受信を完了した場合には、前記スリープ状態から復帰させ、前記マスタ状態で動作するためのスタートコンディションを前記第1シリアルインタフェースを介して前記第1シリアルバスへ送信する、
    通信制御装置。
  13. 請求項11記載の通信制御装置において、
    前記第1および第2シリアルインタフェースは、それぞれ、複数の前記第1および第2シリアルバスにそれぞれ対応して複数設けられ、
    前記複数の第1シリアルインタフェースの少なくとも一部は、前記命令送信部を備え、前記命令受信部を備えない、
    通信制御装置。
  14. 請求項13記載の通信制御装置において、
    前記通信制御装置は、さらに、
    ホスト制御装置との間で通信を行うホストインタフェースと、
    アドレス管理用メモリと、
    を備え、
    前記ホスト制御装置は、前記複数の電子装置のそれぞれに対して、前記複数の電子装置をそれぞれ識別する装置識別子を含んだ第2命令を発行し、
    前記アドレス管理用メモリは、前記装置識別子と、前記複数の第1シリアルバスをそれぞれ識別するバス識別子と、当該バス識別子で識別される前記第1シリアルバス内でのアドレスと、の対応関係を保持し、
    前記制御部は、前記ホスト制御装置から前記第2命令を受信した際に、前記アドレス管理用メモリの対応関係に基づいて、所定のアドレスを含んだ前記第1命令を所定の前記第1シリアルインタフェースを介して前記第1シリアルバスへ送信し、前記探索結果となるアドレスを前記第2シリアルバスから受信した際に、当該アドレスを前記アドレス管理用メモリに登録する、
    通信制御装置。
  15. 請求項10記載の通信制御装置において、
    前記第2シリアルバスは、1本のGPIOバスである、
    通信制御装置。
  16. 第1および第2シリアルバスに着脱が可能な電子装置であって、
    前記第1シリアルバスに接続された状態で、アドレスを含んだ第1命令を前記第1シリアルバスから受信し、当該アドレスが自身のアドレスの場合に、肯定応答を前記第1シリアルバスへ送信する第1シリアルインタフェースと、
    前記第2シリアルバスへ信号を送信する第2シリアルインタフェースと、
    前記第1および第2シリアルインタフェースを制御する制御部と、
    を備え、
    前記制御部は、
    前記第1および第2シリアルバスに接続された際に、第1信号を前記第2シリアルインタフェースを介して前記第2シリアルバスへ送信する第1処理と、
    前記第1信号を送信したのち、予め定めた演算規則に基づき候補となるアドレスを順次変更しながら、前記候補となるアドレスを含んだ前記第1命令を、前記第1シリアルインタフェースを介して前記第1シリアルバスへ順次送信することで、当該第1命令に対する前記肯定応答を受信しないアドレスを探索する第2処理と、
    前記第2処理の探索結果となるアドレスを前記第2シリアルインタフェースを介して前記第2シリアルバスへ送信する第3処理と、を実行する、
    電子装置。
  17. 請求項16記載の電子装置において、
    前記第1シリアルインタフェースは、
    前記第1命令を前記第1シリアルバスへ送信する命令送信部と、
    前記第1命令を前記第1シリアルバスから受信する命令受信部と、
    を備える、
    電子装置。
  18. 請求項17記載の電子装置において、
    前記第1シリアルバスは、I2C規格に基づくI2Cバスであり、
    前記第1シリアルインタフェースは、前記I2C規格上のマスタ状態とスレーブ状態の両方で動作可能であり、
    前記制御部は、前記第2処理において、前記第1信号を前記第2シリアルバスへ送信したのち、前記マスタ状態で動作するためのスタートコンディションを前記第1シリアルインタフェースを介して前記第1シリアルバスへ送信し、自身が前記マスタ状態となった場合に前記アドレスの探索を行う、
    電子装置。
  19. 請求項18記載の電子装置において、
    前記制御部は、前記第3処理において、前記探索結果となるアドレスを前記第2シリアルバスへ送信すると共に、当該アドレスの送信タイミングと同期して、前記第1シリアルインタフェースを介して前記第1シリアルバスに含まれるクロック配線にクロック信号を送信する、
    電子装置。
  20. 請求項16記載の電子装置において、
    前記第1および第2シリアルインタフェースと、前記制御部とは、同一の半導体チップ上に形成され、
    前記電子装置は、
    前記半導体チップが実装される配線基板と、
    前記配線基板に実装され、一端に前記第2シリアルバスが結合され、他端に固定電圧が供給される外部スイッチと、
    を備え、
    前記第2シリアルインタフェースは、前記外部スイッチのオン・オフを制御することで、前記第1信号の送信と前記探索結果となるアドレスの送信を行う、
    電子装置。
JP2014230697A 2014-11-13 2014-11-13 シリアル通信システム、通信制御装置および電子装置 Active JP6359955B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014230697A JP6359955B2 (ja) 2014-11-13 2014-11-13 シリアル通信システム、通信制御装置および電子装置
US14/919,961 US10102177B2 (en) 2014-11-13 2015-10-22 Serial communication system, communication control unit, and electronic device for finding and assigning unused addresses

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014230697A JP6359955B2 (ja) 2014-11-13 2014-11-13 シリアル通信システム、通信制御装置および電子装置

Publications (2)

Publication Number Publication Date
JP2016095629A JP2016095629A (ja) 2016-05-26
JP6359955B2 true JP6359955B2 (ja) 2018-07-18

Family

ID=55961829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014230697A Active JP6359955B2 (ja) 2014-11-13 2014-11-13 シリアル通信システム、通信制御装置および電子装置

Country Status (2)

Country Link
US (1) US10102177B2 (ja)
JP (1) JP6359955B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200053017A (ko) * 2018-11-07 2020-05-18 에스앤즈 주식회사 시리얼 인터페이스를 이용한 데이터 전송장치

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160236770A1 (en) * 2015-02-16 2016-08-18 Hamilton Sundstrand Corporation Electronic Control with Interchangeable Subsystem Modules
DE202016008325U1 (de) * 2016-03-21 2017-07-28 Inova Semiconductors Gmbh Vorrichtung zur bidirektionalen Kommunikation
CN107066413B (zh) * 2016-12-30 2023-11-24 幻境(珠海)科技有限公司 一种用于处理多个总线设备数据的方法及其总线系统
JP2019010683A (ja) * 2017-06-29 2019-01-24 セイコーエプソン株式会社 ロボット制御装置およびロボットシステム
US10649949B1 (en) * 2017-12-19 2020-05-12 United States Of America As Represented By The Administrator Of Nasa Radiation hardened input/output expander with I2C and SPI serial interfaces
CN108768391B (zh) * 2018-04-16 2021-12-03 上海大学 一种基于树莓派和Python语言的频率合成器系统
DE102018111976B3 (de) 2018-05-18 2019-09-26 Infineon Technologies Ag Leuchtdiodentreiber, Leuchtdiodenmodul und entsprechendes System
US10585816B1 (en) * 2018-12-07 2020-03-10 Dell Products, L.P. System and method for serial communication at a peripheral interface device
JP7437910B2 (ja) * 2019-10-29 2024-02-26 株式会社東芝 制御システム、制御方法、ロボットシステム、プログラム、及び記憶媒体
CN112148338B (zh) * 2020-09-16 2022-06-03 北京算能科技有限公司 电源管理电路、芯片及其升级方法及服务器
FR3120267B1 (fr) 2021-02-26 2024-03-15 St Microelectronics Rousset Communication sur bus I2C
CN113285856B (zh) * 2021-07-22 2021-11-02 翱捷科技(深圳)有限公司 数据传输时延的处理方法及系统和数据传输方法及系统
US11535038B1 (en) 2021-12-28 2022-12-27 Seiko Epson Corporation Board, liquid accommodation container, and printing system

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6363437B1 (en) 1999-01-07 2002-03-26 Telefonaktiebolaget Lm Ericsson (Publ) Plug and play I2C slave
JP2001134525A (ja) * 1999-11-01 2001-05-18 Ricoh Co Ltd Id発生装置
JP2002217905A (ja) * 2001-01-19 2002-08-02 Nippon Conlux Co Ltd 自動販売機の端末id決定方法および周辺装置
US7149838B2 (en) * 2001-05-29 2006-12-12 Sun Microsystems, Inc. Method and apparatus for configuring multiple segment wired-AND bus systems
US20040225814A1 (en) * 2001-05-29 2004-11-11 Ervin Joseph J. Method and apparatus for constructing wired-AND bus systems
US7013355B2 (en) * 2003-01-09 2006-03-14 Micrel, Incorporated Device and method for improved serial bus transaction using incremental address decode
KR20050076924A (ko) * 2004-01-26 2005-07-29 삼성전자주식회사 양방향 통신이 가능한 i2c 통신시스템 및 그 방법
DE102005019970B4 (de) * 2005-04-27 2007-04-26 Phoenix Contact Gmbh & Co. Kg Adressvergabe für sichere Busteilnehmer
CN100566278C (zh) * 2005-04-29 2009-12-02 Nxp股份有限公司 在使用串行数据传送总线的通信系统中的从设备
EP1877914B1 (en) * 2005-04-29 2010-02-24 Nxp B.V. Device identification coding of inter-integrated circuit slave devices
CN101208652A (zh) * 2005-04-29 2008-06-25 皇家飞利浦电子股份有限公司 具有可编程写事务周期的i2c从设备
ATE460706T1 (de) * 2005-04-29 2010-03-15 Nxp Bv Kommunikationssystem und -verfahren mit einer slave-einrichtung mit zwischengespeicherter service-anforderung
WO2006117751A2 (en) * 2005-04-29 2006-11-09 Koninklijke Philips Electronics, N.V. Programming parallel i2c slave devices from a single i2c data stream
JP2008539499A (ja) * 2005-04-29 2008-11-13 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ダイナミックi2cスレーブデバイスアドレスデコーダ
US7698459B2 (en) * 2006-03-16 2010-04-13 Tellabs Operations, Inc. Method and system for identifying a device address
US8806083B2 (en) * 2007-05-15 2014-08-12 Texas Instruments Incorporated Identification address configuration circuit and method without use of dedicated address pins
US20080307134A1 (en) * 2007-06-05 2008-12-11 Geissler Andrew J I2C bus interface and protocol for thermal and power management support
US8489786B2 (en) * 2009-11-09 2013-07-16 Stmicroelectronics International N.V. Acknowledgement management technique for supported command set of SMBUS/PMBUS slave applications
TW201210256A (en) * 2010-08-24 2012-03-01 Hon Hai Prec Ind Co Ltd Apparatus and method for testing SNMP card
JP2014016907A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 通信システムおよびアドレス割当て方法
WO2014155721A1 (ja) * 2013-03-29 2014-10-02 富士通株式会社 接続制御装置、情報処理装置、及び接続制御方法
FR3009633B1 (fr) * 2013-08-08 2017-02-24 Stmicroelectronics Rousset Communication sur bus i2c
CN106164887B (zh) * 2014-02-28 2017-11-17 飞利浦灯具控股公司 总线地址分配
JP6426031B2 (ja) * 2015-03-13 2018-11-21 ルネサスエレクトロニクス株式会社 半導体装置及びその制御方法
US9727506B2 (en) * 2015-10-01 2017-08-08 Sony Corporation Communication system, communication system control method, and program
US10120829B2 (en) * 2016-11-23 2018-11-06 Infineon Technologies Austria Ag Bus device with programmable address

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200053017A (ko) * 2018-11-07 2020-05-18 에스앤즈 주식회사 시리얼 인터페이스를 이용한 데이터 전송장치
KR102167621B1 (ko) * 2018-11-07 2020-10-20 에스앤즈 주식회사 시리얼 인터페이스를 이용한 데이터 전송장치

Also Published As

Publication number Publication date
US10102177B2 (en) 2018-10-16
US20160140077A1 (en) 2016-05-19
JP2016095629A (ja) 2016-05-26

Similar Documents

Publication Publication Date Title
JP6359955B2 (ja) シリアル通信システム、通信制御装置および電子装置
US10140242B2 (en) General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network
CN102339267B (zh) I2c地址转换
US10459862B2 (en) Dynamic definition of slave address in I2C protocol
US20090234998A1 (en) Connection system
TWI671638B (zh) 匯流排系統
JP2011166720A (ja) 複数バージョンのusbと互換性があるマザーボード及び関連方法
US9710413B2 (en) Integrated data concentrator for multi-sensor MEMS systems
CN110858182A (zh) 集成电路、总线系统以及其控制方法
US9684619B2 (en) I2C router system
CN103914167B (zh) 计算机系统及其触控及显示数据传输装置与方法
JP2004110255A (ja) Pcカード制御装置、当該pcカード制御装置を備えるコンピュータシステム及びpcカード識別方法
CN111124972A (zh) 基于相同i2c地址的芯片扩展方法、系统及存储介质
CN114996184B (zh) 兼容实现spi或i2c从机的接口模块及数据传输方法
Anagha et al. Prototyping of dual master I 2 C bus controller
TW202111560A (zh) 積體電路、匯流排系統及排程方法
CN110795373A (zh) 一种i2c总线到并行总线的转换方法、终端及存储介质
Deepika et al. Design of dual master I2C bus controller and interfacing it with DC motor
US20220327086A1 (en) Bus system
CN111045973B (zh) 集成电路、汇流排系统以及其控制方法
KR101881569B1 (ko) 멀티 칩 터치스크린 시스템
KR20190127570A (ko) 디스플레이 장치 및 그의 드라이버
TW201908983A (zh) 用於通信波形的短位址模式
TWI706258B (zh) 計算裝置
CN1983228A (zh) 采用内部集成电路总线传输控制信号的控制系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170512

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180612

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180621

R150 Certificate of patent or registration of utility model

Ref document number: 6359955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150