JP2018529170A - 共有バス上での複数の同一のデバイスの識別 - Google Patents

共有バス上での複数の同一のデバイスの識別 Download PDF

Info

Publication number
JP2018529170A
JP2018529170A JP2018514347A JP2018514347A JP2018529170A JP 2018529170 A JP2018529170 A JP 2018529170A JP 2018514347 A JP2018514347 A JP 2018514347A JP 2018514347 A JP2018514347 A JP 2018514347A JP 2018529170 A JP2018529170 A JP 2018529170A
Authority
JP
Japan
Prior art keywords
slave
interface
slave device
shared bus
broadcast
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
JP2018514347A
Other languages
English (en)
Inventor
祥一郎 仙石
祥一郎 仙石
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2018529170A publication Critical patent/JP2018529170A/ja
Pending legal-status Critical Current

Links

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/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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5038Address allocation for local use, e.g. in LAN or USB networks, or in a controller area network [CAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Abstract

複数の他の同一のスレーブデバイスとバスを共有するスレーブデバイスのための自己識別システムが提供される。各スレーブデバイスは、共有バスとは別個であり、少なくとも1つの隣接するスレーブデバイスに結合された2つ以上のさらなるインターフェース(たとえば、単線)を含んでもよい。マスタデバイスとスレーブデバイスとの間で一意の識別子を明示的に送信する必要なしに各スレーブデバイスがそれ自体を識別するのを可能にするために、マスタデバイスおよびスレーブデバイスに認識されているプロトコルが使用される。複数のスレーブデバイスは、第1および第2のインターフェースを介してデイジーチェーン接続され、第1および第2のインターフェースは、マスタデバイスからの1つまたは複数のブロードキャストに応答して選択的にドライブされならびに/あるいは弱くプルアップまたはプルダウンされる。スレーブデバイスは、その第1および第2のインターフェースの状態に基づいて、ブロードキャストに応答してもよく、したがって、マスタデバイスに識別子を明示的に提供する。

Description

関連出願の相互参照
本出願は、その内容全体が参照により本明細書に組み込まれる、2015年9月21日に米国特許商標庁に出願された、非仮出願第14/860,609号の優先権および利益を主張する。
本開示は、共有バス上で複数の同一のデバイスを動作させることに関し、より詳細には、共有バスに結合されたマスタデバイスが共有バス上の複数の同一のデバイスの各々を一意に識別するのを可能にする自動識別技法に関する。
カメラシステムなどのいくつかのシステムでは、共有バス上で複数の同一のデバイスを使用すると有利である。しかし、複数の同一のデバイスがバス上でアドレス指定されたときに各デバイスを互いに区別するための方法が必要である。
各デバイスを一意に識別するための1つの手法は、製造時に各デバイスを一意の識別子または固定された識別子を有するように構成することであってもよい。しかし、そのような手法は、製造プロセスのコストを増すとともに製造プロセスに余分なステップを追加し、したがって望ましくない。
デバイスに識別子を与えるための第2の手法は、共有バスを制御するマスタデバイスに、共有バスに結合された各デバイスにランダムな識別子を割り当てさせることであってもよい。しかし、この手法では、ランダムな識別子を使用することに起因して、2つ以上のデバイスが同じ識別子を有することになる恐れがある。
したがって、共有バスに結合された同一のデバイスが動作時に一意の識別子を得る(すなわち、製造時には識別子を固定しない)ための方法が必要である。
第1の態様は、共有バスインターフェースと、共有バスインターフェースに結合された処理回路とを備えるマスタデバイスを提供する。処理回路は、(a)複数の同一のスレーブデバイスが結合された共有バスを介して第1のブロードキャストを送ることであって、第1のブロードキャストが、複数の同一のスレーブデバイスのうちの1つまたは複数の自己識別を開始する、送ること、(b)第1のブロードキャストに応答して、スレーブデバイスが自己識別したことを示す応答を共有バスを介してスレーブデバイスから受信すること、および/または(c)複数の同一のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、共有バスを介して1つまたは複数のブロードキャストを送り続け、複数の同一のスレーブデバイスの各々を一意に識別することを行うように構成されてもよい。続いて、処理回路は、第1のスレーブデバイスに関連する、スレーブデバイスリスト内の対応する第1の識別子を使用して第1のスレーブデバイスに特定的にアドレス指定される通信信号を共有バスを介して送ってもよい。複数の同一のスレーブデバイスの各々の一意の識別子が、マスタデバイスによって各スレーブデバイスに明示的に提供されることはない。たとえば、複数の同一のスレーブデバイスにおける各スレーブデバイスの一意の識別子がスレーブデバイスに対して事前設定されることはない。さらに、応答は、応答しているスレーブデバイスの一意の識別子を暗黙的に示してもよいが、識別子を含むことはない。
一実装形態では、マスタデバイスは、共有バスを介してブロードキャストに対する応答が受信されなくなったときにすべてのスレーブデバイスが識別されたことを認識してもよい。別の実装形態では、マスタデバイスは、共有バスに結合された複数の同一のスレーブデバイスの総数についての事前知識を有してもよく、マスタデバイスは、複数の同一のスレーブデバイスの総数が一意に識別された後に1つまたは複数のブロードキャストを送るのを停止する。
一例では、第1のブロードキャストは、複数の同一のスレーブデバイスに、スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイスを識別することを指示する。
また別の例では、1つまたは複数のブロードキャストの各々が、互いに別個であってもよく、一意のスレーブデバイス識別子を暗示する。
また別の例では、1つまたは複数のブロードキャストの各々が、同じであってもよく、一意のスレーブデバイス識別子を暗示することはない。
いくつかの実装形態では、単一のブロードキャストによって2つの異なるスレーブデバイスから2つの応答が得られる場合があり、2つの異なるスレーブデバイスの各々が、応答が受信される順序に基づいて異なる一意のスレーブデバイス識別子に関連付けられる。
第2の態様は、共有バスインターフェースと、共有バスインターフェースとは別個の第1のインターフェースおよび第2のインターフェースと、共有バスインターフェース、第1のインターフェース、および第2のインターフェースに結合された処理回路とを備えるスレーブデバイスを提供する。処理回路は、(a)共有バスインターフェースを介してブロードキャストを受信すること、(b)ブロードキャストに基づくとともに、スレーブデバイスが現在の識別子を有するか否かに基づいて第1のインターフェースをドライブすること、(c)第2のインターフェースをデフォルト状態からの状態の変更に関して検知すること、(d)第2のインターフェースの状態に基づくとともに、現在の識別子を有しないスレーブデバイスに基づいて、スレーブデバイスが自己識別すべきであることを確認すること、(e)ブロードキャストによって暗示される一意の識別子または隣接するスレーブデバイスから得られる情報から認識される一意の識別子をスレーブデバイスに関連付けること、および/または(f)共有バスを介して肯定応答によってブロードキャストに応答することを行うように構成されてもよい。
第3の態様は、共有バスと、マスタデバイスと、1つまたは複数のスレーブデバイスとを備えるデバイスを提供する。マスタデバイスは、共有バスに結合され、共有バスを介した通信を制御するように構成されてもよい。1つまたは複数のスレーブデバイスは、互いに同一であってもよく、共有バスに結合される。各スレーブデバイスは、共有バスとは別個の第1のインターフェースおよび第2のインターフェースを含んでもよい。2つ以上のスレーブデバイスが存在する場合、各スレーブデバイスは、第1および/または第2のインターフェースを介して少なくとも1つの他のスレーブデバイスに結合される。
マスタデバイスは、(a)共有バスを介して第1のブロードキャストを送ること、(b)スレーブデバイスが自己識別したことを示す応答を応答しているスレーブデバイスから受信すること、(c)応答しているスレーブデバイスを一意の識別子によって識別すること、および/または(d)複数のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、共有バスを介してさらなるブロードキャストを送り続け、それぞれに異なるスレーブデバイスからさらなる応答を受信することを行うことによって、複数のスレーブデバイスの各々を一意に識別するように構成される。
各スレーブデバイスは、第1のブロードキャストの受信時に、(a)別のスレーブデバイスの第2のインターフェースをそのデフォルト状態とは異なる状態にドライブさせるように第1のインターフェースをドライブすることと、(b)第2のインターフェースを検知して、そのデフォルト状態が隣接するスレーブデバイスによって変更されたかどうかを確認することとを行うようにさらに構成される。第2のインターフェースがドライブされない第1のスレーブデバイスのみが共有バスを介して応答を送る。すでに識別されたスレーブデバイスがその第1のインターフェースをドライブするかまたは浮動させる場合、各さらなるスレーブデバイスは、その第2のインターフェースがドライブされるか否かに応じて、共有バス上のさらなるブロードキャストに応答して応答を送る。
様々な特徴、性質、および利点は、以下に記載する詳細な説明から図面とともに検討したときに明らかになる場合があり、図面全体にわたって、同様の参照符号はそれに対応する要素を識別する。
共有バス104に結合された同一のデバイスが自己識別プロセスを使用して一意の識別子を得る場合がある例示的な装置を示すブロック図である。 ベースバンドプロセッサと画像センサとを有し、画像データバスとマルチモード制御データバスとを実装する例示的な装置を示すブロック図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある自己識別プロセスを示す図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある自己識別プロセスを示す図である。 スレーブデバイスが自己識別するのを可能にするために共有バスに結合されたマスタデバイスと複数のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。 デイジーチェーン(直列)接続構成における同一のスレーブデバイスの第1の例示的な配列を示す図である。 デイジーチェーン(直列)接続構成における同一のスレーブデバイスの第2の例示的な配列を示す図である。 デイジーチェーン(直列)接続構成における同一のスレーブデバイスの第3の例示的な配列を示す図である。 デイジーチェーン(直列)接続構成における同一のスレーブデバイスの第4の例示的な配列を示す図である。 デイジーチェーン接続構成として直列に結合された2種類のスレーブデバイスの例示的な配列を示す図である。 別個のデイジーチェーン構成として結合された2種類のスレーブデバイスの例示的な配列を示す図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある別の例示的な自己識別プロセスを示す図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある別の例示的な自己識別プロセスを示す図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある別の例示的な自己識別プロセスを示す図である。 スレーブデバイスが自己識別するのを可能にするために共有バスに結合されたマスタデバイスと複数のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある双方向自己識別プロセスを示す図である。 共有バスに結合された複数の同一のスレーブデバイスを一意に識別するように実施される場合がある双方向自己識別プロセスを示す図である。 スレーブデバイスが自己識別するのを可能にするために共有バスに結合されたマスタデバイスと複数の同一のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。 各スレーブデバイスが、共有バスインターフェースとは別個の4つのインターフェースを有する、複数の同一のスレーブデバイスの格子アレイ構成を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第1の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第1の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第1の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第2の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第2の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第2の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする双方向スキャンプロセスの第1の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする双方向スキャンプロセスの第2の部分を示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする別の一方向スキャンプロセスを示す図である。 2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする別の一方向スキャンプロセスを示す図である。 各スレーブデバイスが、共有バスインターフェースとは別個の4つの非接触インターフェースを有する、複数の同一のスレーブデバイスの別の格子アレイ構成を示す図である。 共有バス上での複数の同一のデバイスの自己識別を容易にするように構成されてもよい例示的なマスタデバイスを示すブロック図である。 1つまたは複数の同一のスレーブデバイスによる自己識別を容易にするためにマスタデバイス上で実施される場合がある方法を示す図である。 自己識別し、かつ共有バスに結合された複数の同一のデバイスから区別されるように構成されてもよい例示的なスレーブデバイスを示すブロック図である。 自己識別のためにスレーブデバイス上で実施される場合がある方法を示す図である。
以下の説明では、実施形態についての完全な理解を可能にするために特定の詳細が与えられている。しかしながら、これらの特定の詳細がなくても実施形態を実践することができることは、当業者には理解されよう。たとえば、不必要な詳細によって実施形態が不明瞭になることがないように、回路はブロック図で示される場合がある。他の事例では、よく知られている回路、構造、および技法は、実施形態を不明瞭にしないために、詳細に示されない場合がある。
様々な特徴、性質、および利点は、以下に記載する詳細な説明から図面とともに検討したときに明らかになる場合があり、図面全体にわたって、同様の参照符号はそれに対応する要素を識別する。
概要
第1の態様は、マスタデバイスが、共有バスを介してスレーブデバイス識別子を明示的に送信する必要なしに、共有バスに結合された複数の同一のスレーブデバイスを区別する方法を提供する。
第2の態様は、スレーブデバイスが、自己識別し、すべてが共有バスに結合された複数の同一のスレーブデバイスから区別されるのを可能にする。スレーブデバイスは、マスタデバイスによって特定の識別子を割り当てられることも、あるいは事前設定された一意の識別子を含むこともない。その代わりに、スレーブデバイスは、共有バスとは別個の第1および第2のインターフェースを介して他のスレーブデバイスに結合される。第1および第2のインターフェースは、マスタデバイスから受信されるブロードキャストに基づくとともにスレーブデバイスがすでに自己識別したかどうかに基づいて選択的にドライブ(アサート)されるかまたは検知(アサート解除)される。
第3の態様は、複数のスレーブデバイスをデイジーチェーン構成として配置することを可能にし、この場合、各スレーブデバイスは、各スレーブデバイスが自己識別するのを可能にするための共有バスを介した1つまたは複数のブロードキャストに応答してスレーブデバイスの第1のインターフェースおよび/または第2のインターフェースを選択的にドライブ(アサート)または検知(デアサート)するように構成される。各スレーブデバイスは、自己識別する際、マスタデバイスによって割り当てられるかまたは各スレーブデバイスに事前設定された識別子ではなく自己割り当てされた一意の識別子にスレーブデバイス自体を関連付けてもよい。
第4の態様は、複数のスレーブデバイスを格子構成として配置することを可能にし、この場合、各スレーブデバイスは、各スレーブデバイスが自己識別するのを可能にするための共有バスを介した1つまたは複数のブロードキャストに応答してスレーブデバイスの第1のインターフェース、第2のインターフェース、第3のインターフェース、および/または第4のインターフェースを選択的にドライブ(アサート)または検知(デアサート)するように構成される。各スレーブデバイスは、自己識別する際、マスタデバイスによって割り当てられるかまたは各スレーブデバイスに事前設定された識別子ではなく自己割り当てされた一意の識別子にスレーブデバイス自体を関連付けてもよい。
例示的な動作環境
図1は、共有バス104に結合された同一のデバイスが自己識別プロセスを使用して一意の識別子を得る場合がある例示的な装置100を示すブロック図である。装置100は、たとえば、複数の同一のスレーブデバイス106が結合された共有バス104(たとえば、2線バス)を介した通信を制御するマスタデバイス102を含んでもよい。一例では、スレーブデバイス106は、マスタデバイス102によって許可されならびに/あるいは指示されたときにのみ共有バス104を介して通信してもよい。マスタデバイス102は、各個々のスレーブデバイス106をアドレス指定するために、各スレーブデバイス106を一意に識別する必要がある。しかし、スレーブデバイス106は、同一であってもよく、ならびに/あるいは事前に(たとえば、製造時または製造後段階において)一意の識別子および/または固定された識別子がプロビジョニングされなくてもよい。
マスタデバイス102およびスレーブデバイス106は、初期設定段階の間に(たとえば、デバイス100が電源をオンにされるかまたはリセットされるときに)自己識別プロセスまたは識別子割振りプロセスを実施するように構成されてもよい。この自己識別プロセスまたは識別子割振りプロセスは、各スレーブデバイス106がマスタデバイス102に対して自己識別するのを可能にする場合があり、それによってマスタデバイスが各スレーブデバイスを一意にアドレス指定するのを可能にする。このことは、マスタデバイス102が各スレーブデバイス106にアドレスを明示的に割り当てることなしに、かつスレーブデバイスの各々に一意の識別子が事前プロビジョニングされることなしに行われてもよい。
図2は、ベースバンドプロセッサ204と画像センサ206とを有し、画像データバス216とマルチモード制御データバス208とを実装する例示的な装置202を示すブロック図である。図2の装置202は、図1の装置100の例示的な一実装形態であってもよい。図2はカメラデバイス内のマルチモード制御データバス208を示すが、この制御データバス208が様々な異なるデバイスおよび/またはシステムの中に実装されてもよいことは明らかであろう。画像データは、画像センサ206からベースバンドプロセッサ204に画像データバス216(たとえば、高速差動DPHYリンク)上で送られてもよい。一例では、制御データバス208は、2つのワイヤ、すなわち、クロック線(SCL)およびシリアルデータ線(SDA)を備えるI2C互換バスであってもよい。クロック線SCLは、すべてのデータ転送をI2Cバス(制御データバス208)上で同期させるために使用されてもよい。データ線SDAおよびクロック線SCLは、制御データバス208上にあるすべてのデバイス212、214、および218に結合されてもよい。この例では、制御データは、制御データバス208を介して、ベースバンドプロセッサ204と、画像センサ206ならびに他の周辺(スレーブ)デバイス218との間で交換されてもよい。いくつかの実装形態において、制御データバス208上の動作モードは、カメラ用途のために使用されるときにカメラ制御インターフェース(CCI)モードと呼ばれることがある。他の例では、制御データバス208は、1本のワイヤを含んでもあるいは2本以上のワイヤを含んでもよい。
本明細書で使用する「デバイス識別子」、「スレーブデバイス識別子」、および「SID」という用語は、共有バスに結合されたスレーブデバイスの一意の識別子を指すために互換的に使用されてもよい。
共有バスに結合されたスレーブデバイスの自己識別のための第1の例示的な手法
図3(図3Aおよび図3Bを含む)は、共有バス301に結合された複数の同一のスレーブデバイス302、304、306、308、および310を一意に識別するように実施される場合がある自己識別プロセスを示す。マスタデバイス303も、共有バス301に結合され、共有バス301を介した通信を制御する働きをすることに留意されたい。
各スレーブデバイス302、304、306、308、および310は、共有バス301に結合するために使用される共有バスインターフェースと、スレーブデバイス302、304、306、308、および310によって自己識別プロセスに使用される2つのインターフェース(「E」および「W」と標示されている)とを含んでもよい。「E」インターフェースおよび「W」インターフェースの各々は、単線インターフェースであってもよい。いくつかの実装形態では、「W」インターフェースおよび「E」インターフェースの各々は一方向インターフェースであってもよい。一例では、一方向インターフェースは、そのスレーブデバイスによって(たとえば、高状態または低状態に)ドライブすることができ、あるいはそのデフォルト状態の変更を検知することができる(すなわち、検知インターフェースは、弱くプルアップまたはプルダウンされてもよいが、別のスレーブデバイスによって検知インターフェースのデフォルト状態からドライブすることができる)が、その両方を行うことはできないものである。図3に示す例では、「W」インターフェースは、異なるスレーブデバイスの隣接する「E」インターフェースをドライブする働きをしてもよい。一方、「E」インターフェースは単に、その状態がデフォルト状態から変更されつつあるかどうかを検知してもよい。
複数のスレーブデバイス302、304、306、308、および310は、この2つのインターフェースを使用して互いにデイジーチェーン接続され(たとえば、直列結合されるかまたはチェーンとして結合され)てもよく、第1のデバイスの「W」インターフェースが、第2のデバイスの「E」インターフェースに結合される。したがって、チェーンにおける第1のデバイスおよび最後のデバイスを除いて、チェーンにおける各スレーブデバイスは、その「W」インターフェースおよび「E」インターフェースを別のスレーブデバイスに結合させる。一例では、「E」インターフェースは、スレーブデバイスによってデフォルト状態に弱くプルされる(たとえば、スレーブデバイス内部の回路によってプルアップまたはプルダウンされる)。各スレーブデバイスの「W」インターフェースは、「E」インターフェースのデフォルト状態とは逆の高状態または低状態に選択的にドライブされてもよい(すなわち、浮動しない)。一例では、デイジーチェーンにおけるスレーブデバイスはどれも、「W」インターフェースまたは「E」インターフェースを介してマスタデバイスに結合されることはない。
スレーブデバイスは、共有バスを介した1つまたは複数のブロードキャスト/コマンドに応答して、自己識別し、すべてが共有バスに結合された複数の同一のスレーブデバイスから区別されるように構成されてもよい。スレーブデバイスは、マスタデバイスによって特定の識別子を割り当てられることも、あるいは事前設定された一意の識別子を含むこともない。その代わりに、スレーブデバイスは、その第1のインターフェース(「E」インターフェース)および第2のインターフェース(「W」インターフェース)を介して他のスレーブデバイスに結合される。第1および第2のインターフェースは、マスタデバイスから受信されたブロードキャストに基づくとともに、スレーブデバイスがすでに自己識別したかどうかに基づいて選択的にドライブ(アサート)または検知される。各スレーブデバイスは、自己識別する際、マスタデバイスによって割り当てられるかまたは各スレーブデバイスに事前設定された識別子ではなく自己割り当てされた一意の識別子をスレーブデバイス自体に関連付けてもよい。
最初、マスタデバイス303は、共有バス301を介して「Identify #1」ブロードキャスト312を送ってもよい。たとえば、そのような「Identify #1」ブロードキャスト312は、マスタデバイス303、共有バス301、ならびに/あるいはスレーブデバイス302、304、306、308、および310を含むデバイスの電源投入時またはブート時に送られてもよい。この時点で、そのようなブロードキャストまたはコマンドを受信すると、すべてのスレーブデバイス302、304、306、308、および310がその「W」インターフェースを「E」インターフェースのデフォルト状態とは逆の状態にドライブする。たとえば、第1のスレーブデバイス302の「W」インターフェースは、第2のスレーブデバイスの「E」インターフェースをデフォルト状態とは逆の状態(たとえば、高状態または低状態)にセットまたはプルするように選択的に(たとえば、高状態または低状態に)ドライブされてもよい。したがって、共有バス301を介してブロードキャスト/コマンドが受信されると、各スレーブデバイスは、その「E」インターフェースの状態がデフォルト状態から変化するかそれともしないかによって別のスレーブデバイスに結合されているか否かを認識する。
スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイス302(すなわち、「E」インターフェースがドライブされず、またそのデフォルト状態から変更されないデバイス)のみが、共有バス301を介して「acknowledge」(Ack)314によって応答する。この時点から、その応答している第1のスレーブデバイス302が、共有バス301を介してマスタデバイス303と第1のスレーブデバイス302の両方によって#1として識別される。他のスレーブデバイスはどれも「Identify #1」ブロードキャスト312に応答しない。
次に、マスタデバイス303は、共有バス301を介して「Identify #2」ブロードキャスト316を送る。第1のスレーブデバイス302は、すでに#1として識別されているので、「Identify #2」ブロードキャスト316に応答しないことを認識し、その「W」インターフェースをドライブしないことも認識する(たとえば、単に浮動してもよく、あるいはその「W」インターフェースを逆の状態にドライブしてもよい)。「E」インターフェースがもはやドライブされない第2のスレーブデバイス304は、acknowledge318を送ることによって「Identify #2」ブロードキャストに応答する。この時点から、その応答している第2のスレーブデバイス304は、共有バス301を介してマスタデバイス303によって#2として識別されてもよい。他のスレーブデバイス302、306、308、および310はどれも「Identify #2」ブロードキャスト316に応答しない。
次に、マスタデバイス303は、共有バス301を介して「Identify #3」ブロードキャスト320を送る。第1のスレーブデバイス302および第2のスレーブデバイス304は、すでにそれぞれ#1および#2として識別されているので、「Identify #3」ブロードキャスト320に応答しないことを認識する。第1のスレーブデバイス302および第2のスレーブデバイス304は、すでに識別子を有するので、その「W」インターフェースをドライブしないことも認識する(たとえば、第1のスレーブデバイス302および第2のスレーブデバイス304のWインターフェースは単に浮動してもよく、あるいは逆の状態にドライブされる)。「E」インターフェースがもはやドライブされない第3のスレーブデバイス306は、acknowledge322を送ることによって「Identify #3」ブロードキャスト320に応答する。この時点から、その応答している第3のスレーブデバイス306は、共有バス301を介してマスタデバイス303によって#3として識別されてもよい。他のスレーブデバイス302、304、308、および310はどれも「Identify #3」ブロードキャスト320に応答しない。
この手法では、マスタデバイス303とスレーブデバイス302、304、306、308、および310との間で使用されるプロトコルにおいて定義されるかまたは利用可能な一意のidentifyメッセージ/コマンド/ブロードキャスト(たとえば、「Identify #1」、「Identify #2」、「Identify #3」など)の数が、共有バスに結合されたスレーブデバイスの数に対応するのに十分な数であるべきであることに留意されたい。
このプロセスは、共有バス上のすべてのスレーブデバイスが識別されるまで継続する。たとえば、マスタデバイス303は、共有バス301を介して「Identify #N」ブロードキャスト324を送る。他のすべてのスレーブデバイスは、すでに識別されているので、「Identify #N」ブロードキャスト324に応答しないことを認識している。したがって、他のすべてのスレーブデバイスはその「W」インターフェースをドライブしないことを認識している。「E」インターフェースがもはやドライブされない最後のスレーブデバイス310は、acknowledge326を送ることによって「Identify #N」ブロードキャスト324に応答する。
マスタデバイス303が利用可能なスレーブデバイスの総数の事前知識を(たとえば、事前の設定によって)事前に有する実装形態では、識別されたスレーブデバイスの数に達すると、スレーブデバイスを識別するプロセスが停止する場合がある。
しかし、マスタデバイス303が事前にスレーブデバイスの総数を認識していない実装形態では、マスタデバイス303は、すべてのスレーブデバイスが識別されているので、どのスレーブデバイスも応答しない「Identify #N+1」ブロードキャストを送る場合がある(この場合、共有バス301上にN個のスレーブデバイスがあると仮定する)。マスタデバイス303は、「Identify #N+1」ブロードキャストに対する「acknowledge」を受信しないので、共有バス301上のすべてのスレーブデバイスが識別されていることを認識する。
代替手法では、デフォルト状態に関するプルアップ抵抗器またはプルダウン抵抗器に関連するコストを避けるために、インターフェースにおいて弱いプルアップまたはプルダウンを使用することが回避されてもよい。その代わりに、「Identify」ブロードキャスト/コマンドが発行されない間、すべてのスレーブデバイスがその「W」インターフェースを第1の状態(たとえば、論理高または論理低)にドライブ/アサートしてもよい。共有バス301を介して「Identify」ブロードキャスト/コマンドが送られると、すでに(以前に)識別されているスレーブデバイスは、その「W」インターフェースを第1の論理状態にドライブ/アサートされた状態に維持し、一方、識別されていないスレーブデバイスは、その「W」インターフェースを既定の期間の間(すなわち、第1の論理状態とは逆/別個の)第2の論理状態にドライブ/アサートする(たとえば、そのような期間は使用されるプロトコルによって定義されてもよい)。
図4は、スレーブデバイスが自己識別するのを可能にするように共有バスに結合されたマスタデバイスと複数のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。この方法の例が、図3に示されている。複数のスレーブデバイスが共有バスに結合されてもよく、その場合、すべてのスレーブデバイスが、共有バスとは別個の第1および第2のインターフェース(たとえば、図3の「W」インターフェースおよび「E」インターフェース)を含み、スレーブデバイスは、1つのスレーブデバイスの第1のインターフェースから別のスレーブデバイスの第2のインターフェースにデイジーチェーン接続される(402)。マスタデバイスは、(たとえば、ブート時または初期設定段階時に)共有バスを介してidentify Nブロードキャストを送ってもよい(404)。すでに図3に示されているように、すべてのまだ識別されていないスレーブデバイスが、その第1のインターフェース(たとえば、「W」インターフェース)をアサート/ドライブして、隣接するスレーブデバイスの第2のインターフェース(たとえば、「E」インターフェース)をデフォルト状態から変化させる(406)(たとえば、デフォルト状態とは逆の状態に変化させる)。第2のインターフェース(「E」インターフェース)がアサートされずかつまだ識別されていないスレーブデバイスは、共有バスを介して肯定応答によって応答する(408)。スレーブデバイスのうちのいずれが応答した場合、マスタデバイスによって肯定応答が受信される(410)。マスタデバイスは次いで、応答しているスレーブデバイスをN識別子に関連付け、ならびに/あるいはスレーブデバイスカウントを増分してもよい(すなわち、N=N+1)(412)。このプロセスは、スレーブデバイスから肯定応答が受信されることがなくなる(すなわち、すべてのスレーブデバイスが識別される)まで継続する。
代替実装形態では、マスタデバイスは、共有バスに結合されたスレーブデバイスの総数の事前知識を有してもよい。したがって、ステップ412は、マスタデバイスが単に、最後の肯定応答が受信されたときに(たとえば、受信された肯定応答の総数がスレーブデバイスの数に等しくなったときに)identify Nブロードキャストを送るのを停止するように修正されてもよい。
図5は、デイジーチェーン(直列)接続構成における同一のスレーブデバイス504の第1の例示的な配列502を示す。たとえば、スレーブデバイスは、デジタルカメラ用の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、スレーブデバイス504の格子における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。
図6は、デイジーチェーン(直列)接続構成における同一のスレーブデバイス604の第2の例示的な配列602を示す。たとえば、スレーブデバイスは、デジタルカメラ用の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、スレーブデバイス604の格子における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。
図7は、デイジーチェーン(直列)接続構成における同一のスレーブデバイス704の第3の例示的な配列702を示す。たとえば、スレーブデバイスは、デジタルカメラ用の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、スレーブデバイス704の格子における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。
図8は、デイジーチェーン(直列)接続構成における同一のスレーブデバイス804の第4の例示的な配列802を示す。たとえば、スレーブデバイスは、デジタルカメラ用の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、スレーブデバイス804の格子における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。
図9は、デイジーチェーン接続構成として直列に結合された2種類のスレーブデバイス904および906の例示的な配列902を示す。たとえば、2種類のスレーブデバイス904および906は、デジタルカメラ用のそれぞれに異なる種類の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、スレーブデバイス904および906の格子における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。この例では、それぞれに異なる種類のスレーブデバイスが単一のチェーンとして結合される。
図10は、別個のデイジーチェーン構成として直列に結合された2種類のスレーブデバイス1004および1006の例示的な配列1002を示す。たとえば、2種類のスレーブデバイス1004および1006は、デジタルカメラ用のそれぞれに異なる種類の光学センサであってもよく、格子パターンとして配置されてもよい。この図は、第1の種類のスレーブデバイス1004における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)がどのように電気的に結合され得るかを示す。同様に、第2の種類のスレーブデバイス1006における各スレーブデバイスの第1のインターフェース(「W」インターフェース)および第2のインターフェース(「E」インターフェース)は、電気的に結合されてもよい。この例では、それぞれに異なる種類のスレーブデバイスが別個のチェーンとして結合される。
また他の代替実装形態では、「W」インターフェースおよび/または「E」インターフェースは、近距離無線トランスミッタおよび無線レシーバ、ならびに発光ダイオードおよび/または光センサなどの非接触インターフェースであってもよい。したがって、スレーブデバイスは、その「W」インターフェースおよび「E」インターフェースを介して互いに通信可能に結合されてもよい。
共有バスに結合されたスレーブデバイスの自己識別のための第2の例示的な手法
図11(図11Aおよび図11Bを含む)は、共有バス1101に結合された複数の同一のスレーブデバイス1102、1104、1106、1108、および1110を一意に識別するように実施される場合がある別の例示的な自己識別プロセスを示す。マスタデバイス1103も、共有バス1101に結合され、共有バス1101を介した通信を制御する働きをすることに留意されたい。図11に示す手法は、図3に示す手法の代替形態であってもよい。
図3に示す第1の手法では、マスタデバイス303とスレーブデバイス302、304、306、308、および310との間で使用されるプロトコルにおいて、比較的多数の一意のidentifyメッセージ/コマンド/ブロードキャスト(たとえば、「Identify #1」、「Identify #2」、「Identify #3」など)が必要になることに留意されたい。そのような多数の一意のidentifyメッセージ/コマンド/ブロードキャストは、自己識別プロセスのパフォーマンスを低下させることがあるので望ましくない場合がある。
本明細書では、より少ない別個のまたは一意のメッセージ、コマンド、および/またはブロードキャストを使用して、共有バスに結合されたスレーブデバイスの自己識別を実現する代替手法が提供される。この手法では、スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイスを識別するために第1のidentifyコマンド/ブロードキャストが使用され、デイジーチェーンにおける他のすべてのスレーブデバイスを識別するためにroll callコマンド/ブロードキャストの1つまたは複数のインスタンスが使用される。roll callコマンド/ブロードキャストの使用はより簡単で、より軽微であり、したがって、より高速であり、1つのコマンドが単一のクロックパルスと同程度に単純であってもよい。
各スレーブデバイス1102、1104、1106、1108、および1110は、共有バス1101に結合するために使用されるバスインターフェースと、スレーブデバイス1102、1104、1106、1108、および1110によって自己識別プロセスに使用される2つのインターフェース(「E」および「W」と標示されている)とを含んでもよい。複数のスレーブデバイス1102、1104、1106、1108、および1110は、この2つのインターフェースを使用して互いにデイジーチェーン接続され(たとえば、直列結合されるかまたはチェーンとして結合され)てもよく、第1のデバイスの「W」インターフェースが、第2のデバイスの「E」インターフェースに結合される。したがって、チェーンにおける第1のデバイスおよび最後のデバイスを除いて、チェーンにおける各スレーブデバイスは、その「W」インターフェースおよび「E」インターフェースを別のスレーブデバイスに結合させる。一例では、デイジーチェーンにおけるスレーブデバイスはどれも、「W」インターフェースまたは「E」インターフェースを介してマスタデバイスに結合されることはない。
一例では、「E」インターフェースおよび「W」インターフェースの各々は一方向インターフェースであってもよい。一方向インターフェースは、情報を一方向において伝達しならびに/あるいは受信するために使用されてもよい。一例では、一方向インターフェースは、そのスレーブデバイスによって(たとえば、高状態または低状態に)ドライブされてもよく、あるいはそのデフォルト状態からの変更を検知することができる(すなわち、検知インターフェースは、弱くプルアップまたはプルダウンされてもよいが、別のスレーブデバイスによって検知インターフェースのデフォルト状態からドライブすることができる)が、その両方を行うことはできない。
図11に示す例示的な第1の動作モード、すなわち第1のデバイスの識別では、「W」インターフェースは、異なるスレーブデバイスの隣接する「E」インターフェースをドライブする働きをしてもよい。一方、「E」インターフェースは、その状態がデフォルト状態から変更されつつあるかどうかを検知してもよい。
図11に示す例示的な第2の動作モード、すなわちRoll Callブロードキャストでは、「W」インターフェースは、直列通信バスとして動作して、そのような直列通信信号を受信するように適合された隣接する「E」インターフェースに情報を送信してもよい。たとえば、例示的な一実装形態では、「W」インターフェースと「E」インターフェースとの間のそのような直列通信は、共有バス1101からのクロック信号を使用してもよく、それによって、「W」インターフェースと「E」インターフェースとの間の単線を介して情報(たとえば、デバイス識別子)を送信することが可能になる。別の例示的な実装形態では、「W」インターフェースと「E」インターフェースとの間のそのような直列通信は、内部クロックカウンタを使用してもよい。この手法のバージョンの一例が図11Cに示されており、この場合、共有バスデータ線1101bを介してacknowledge応答をトリガするために、スレーブデバイスによって共有バスのクロック線1101aが使用される。第1のスレーブデバイス1102の「E」インターフェースが低状態にプルされ、この状態が、「E」インターフェースの内部の弱いプルアップに勝り、第1のスレーブデバイス1102をスレーブデバイスのデイジーチェーンにおける第1のスレーブデバイスとして示すことに留意されたい。
最初、マスタデバイス1103は、共有バス1101を介して「Identify #1」ブロードキャスト1112を送ってもよい。たとえば、そのような「Identify #1」ブロードキャスト1112は、マスタデバイス1103、共有バス1101、ならびに/あるいはスレーブデバイス1102、1104、1106、1108、および1110を含むデバイスの電源投入時またはブート時に送られてもよい。この時点で、すべてのスレーブデバイス1102、1104、1106、1108、および1110がその「W」インターフェースをドライブする。
一例では、「Identify #1」ブロードキャスト1112がスレーブデバイスにおける第1の動作モードをトリガする。この第1のモードでは、「E」インターフェースがスレーブデバイスによってデフォルト状態に弱くプルされ(たとえば、プルアップまたはプルダウンされ)てもよい。各スレーブデバイスの「W」インターフェースは、「E」インターフェースのデフォルト状態とは逆の高状態または低状態に選択的にドライブされてもよい(すなわち、浮動しない)。したがって、第1のスレーブデバイスの「W」インターフェースは、第2のスレーブデバイスの「E」インターフェースをデフォルト状態とは逆の状態(たとえば、高状態または低状態)にセットまたはプルするように選択的に(たとえば、高状態または低状態に)ドライブされてもよい。したがって、各スレーブデバイスは、その「E」インターフェースの状態によって、別のスレーブデバイスに結合されているかどうかを認識する。
スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイス1102(すなわち、「E」インターフェースがドライブされていないデバイス)のみが、共有バス1101を介して「acknowledge」(Ack)1114によって応答する。第1のスレーブデバイス1102はまた、この時点から(たとえば、パワーサイクルまたはリセットまで)識別子#1によって自己識別する。マスタデバイスは、共有バスを介して「acknowledge」(Ack)1114を受信しており、そのスレーブデバイスリストに識別子#1を追加することを暗黙的に認識する。この時点から、その応答している第1のスレーブデバイス1102が、共有バス1101を介してマスタデバイス1103と第1のスレーブデバイス1102の両方によって#1として識別される。他のスレーブデバイスはどれも「Identify #1」ブロードキャスト1112に応答しない。
次に、マスタデバイス1103は、共有バス1101を介して「Roll Call」ブロードキャスト1116を送る。一例では、「Roll Call Identify #1」ブロードキャスト1112がスレーブデバイスにおける第2の動作モードをトリガする。この第2のモードでは、すでに識別されたスレーブデバイス(たとえば、識別子またはroll callブロードキャストに応答して肯定応答を送ったスレーブデバイス)は、その識別子を(その「W」インターフェースを介して)、その「E」インターフェースを介してそれを受信する隣接するスレーブデバイスに提供する。第1のスレーブデバイス1102は、すでに#1として識別されているので、その「W」インターフェースを介してその識別子を直列に送ることを認識し、Roll Callブロードキャスト1116には応答しない。他のスレーブデバイス1104、1106、1108、および1110はどれもまだ識別されていないので、Roll Callブロードキャストに応答して情報を送ることもあるいはこれらのスレーブデバイスの「W」インターフェースをドライブすることも行わない(たとえば、これらの「W」インターフェースは単に浮動してもよい)ことを認識する。第2のスレーブデバイス1104の「E」インターフェースは、第1のスレーブデバイス1102から識別子#1を受信する。したがって、第2のスレーブデバイス1104は、それ自体に識別子#2を割り当て(たとえば、受信された識別子を増分し)、肯定応答1118を送ることによってRoll Callブロードキャストに応答する。この時点から、その応答している第2のスレーブデバイス1104は、共有バス1101を介してマスタデバイス1103によって#2として識別されてもよい。マスタデバイス1103のリストにおける識別子#2以外の唯一の識別子は現在#1であるので、第2のスレーブデバイス1104は識別子#2に関連付けられている、とマスタデバイス1103が認識することに留意されたい。他のスレーブデバイス1102、1106、1108、および1110はどれも「Roll Call」ブロードキャスト1116に応答しない。
次に、マスタデバイス1103は、共有バス1101を介して別の「Roll Call」ブロードキャスト1120を送る。第1のスレーブデバイス1102および第2のスレーブデバイス1104は、すでにそれぞれ#1および#2として識別されているので、その「W」インターフェースを介してそれぞれの識別子を送るがRoll Callブロードキャスト1120には応答しない(すなわち、共有バス1101を介して肯定応答を送ることを行わない)ことを認識する。他のスレーブデバイス1106、1108、および1110はどれもまだ識別されていないので、Roll Callブロードキャスト1120に応答してこれらのスレーブデバイスの「W」インターフェースをドライブすることを行わない(たとえば、これらの「W」インターフェースは単に浮動してもよい)ことを認識する。第3のスレーブデバイス1106の「E」インターフェースは、第2のスレーブデバイス1104から識別子#2を受信する。したがって、第3のスレーブデバイス1106は、それ自体に識別子#3を割り当て(たとえば、受信された識別子を増分し)、肯定応答1122を送ることによってRoll Callブロードキャストに応答する。この時点から、その応答している第3のスレーブデバイス1106は、共有バス1101を介してマスタデバイス1103によって#3として識別されてもよい。マスタデバイス1103のリストにおける前の識別子は現在#2であるので、第3のスレーブデバイス1106は識別子#3に関連付けられている、とマスタデバイス1103が認識することに留意されたい。他のスレーブデバイス1102、1104、1108、および1110はどれも「Roll Call」ブロードキャスト1120に応答しない。
このプロセスは、共有バス上のすべてのスレーブデバイスが識別されるまで継続する。たとえば、マスタデバイス1103は、共有バス1101を介して別の「Roll Call」ブロードキャスト1124を送る。最後のスレーブデバイス1110を除いて、他のすべてのスレーブデバイス1102、1104、1106、および1108がすでに識別されており、その「W」インターフェースを介してそのそれぞれの識別子を送るがRoll Callブロードキャスト1124には応答しない(すなわち、共有バス1101を介して肯定応答を送ることを行わない)ことを認識している。最後のスレーブデバイス1110は、その「E」インターフェースを介して前のスレーブデバイスから識別子#N-1を受信する。したがって、最後のスレーブデバイス1110は、それ自体に識別子#Nを割り当て、肯定応答1126を送ることによってRoll Callブロードキャスト1124に応答する。この時点から、その応答している最後のスレーブデバイス1110は、共有バス1101を介してマスタデバイス1103によって#Nとして識別されてもよい。マスタデバイス1103のリストにおける前の識別子は現在#N-1であるので、最後のスレーブデバイス1110は識別子#Nに関連付けられている、とマスタデバイス1103が認識することに留意されたい。他のスレーブデバイス1102、1104、1106、および1108はどれも「Roll Call」ブロードキャスト1124に応答しない。
マスタデバイスが、すべてのスレーブデバイスが識別されているのでどのスレーブデバイスも応答しない最後の「Roll Call」ブロードキャストを送る場合がある(この場合、共有バス1101上にはN個のスレーブデバイスがあると仮定する)ことに留意されたい。マスタデバイス1103は、最後の「Roll Call」ブロードキャストに対する「acknowledge」を受信しないので、共有バス1101上のすべてのスレーブデバイスが識別されていることを認識する。
図12は、スレーブデバイスが自己識別するのを可能にするように共有バスに結合されたマスタデバイスと複数のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。この方法の例が、図11に示されている。複数のスレーブデバイスが共有バスに結合されてもよく、その場合、すべてのスレーブデバイスが、共有バスとは別個の第1および第2のインターフェース(たとえば、図3の「W」インターフェースおよび「E」インターフェース)を含み、スレーブデバイスは、1つのスレーブデバイスの第1のインターフェースから別のスレーブデバイスの第2のインターフェースにデイジーチェーン接続される(1202)。マスタデバイスは、(たとえば、ブート時または初期設定段階時に)共有バスを介してidentify #1ブロードキャストを送ってもよい(1204)。すでに図11に示されているように、すべてのまだ識別されていないスレーブデバイスが、その第1のインターフェース(たとえば、「W」インターフェース)をアサートして隣接するスレーブデバイスの第2のインターフェース(たとえば、「E」インターフェース)をドライブする(1206)。第2のインターフェース(「E」インターフェース)がアサートされずかつまだ識別されていないスレーブデバイスは、共有バスを介して肯定応答によって応答する(1208)。
マスタデバイスは、識別子#1を受信し、応答しているスレーブデバイスを識別子#1に関連付ける(1210)。
次に、マスタデバイスは、共有バスを介してroll callブロードキャストを送ってもよい(1212)。そのようなroll callブロードキャストに応答して、すでに識別されているスレーブデバイスのみがその識別子を第1のインターフェースを介して提供する(1214)。第2のインターフェースが(たとえば、隣接するスレーブデバイスから)識別子を受信し、かつまだ識別されていないスレーブデバイスは、共有バスを介して肯定応答によって応答してもよく、そのスレーブデバイス自体の識別子として受信された識別子+1を使用する(1216)。
マスタデバイスは、roll callに対する肯定応答を受信した場合(1218)、応答しているスレーブデバイスを前の識別子+1に関連付ける(1220)。したがって、実際の識別子が共有バスを介して送られることはなく、その代わりに暗黙的に伝達される。
このプロセスは、スレーブデバイスから肯定応答が受信されることがなくなる(すなわち、すべてのスレーブデバイスが識別される)まで継続する。
共有バスに結合されたスレーブデバイスの自己識別のための第3の例示的な手法
図13(図13Aおよび図13Bを含む)は、共有バス1301に結合された複数の同一のスレーブデバイス1302、1304、1306、1308、および1310を一意に識別するように実施される場合がある双方向自己識別プロセスを示す。マスタデバイス1303も、共有バス1301に結合され、共有バス1301を介した通信を制御する働きをすることに留意されたい。この手法では、共有バスのマスタデバイスからの単一のブロードキャストが、2つのスレーブデバイスを識別するために使用される。
図3に示す第1の手法では、マスタデバイスによって、スレーブデバイスが自己識別するのを可能にするために比較的多数のメッセージ/コマンド/ブロードキャストが送られることに留意されたい。すなわち、(共有バスに結合された)各スレーブデバイスが自己識別するには、マスタデバイスによって共有バスを介して少なくとも1つのメッセージが送られなければならない。
本明細書では、共有バスに結合されたスレーブデバイスの総数よりも少ないメッセージ、コマンド、および/またはブロードキャストを使用する代替手法が提供される。この手法では、各identifyメッセージ/コマンド/ブロードキャストがデイジーチェーンにおける2つのスレーブデバイスを識別するのを可能にしてもよい。すなわち、マスタデバイスによって送信される各identifyメッセージ/コマンド/ブロードキャストについて、2つのスレーブデバイスが自己識別してもよい。したがって、スレーブデバイスの自己識別が、他の手法と比較してより迅速に行われる場合がある。
各スレーブデバイス1302、1304、1306、1308、および1310は、共有バス1301に結合するために使用されるバスインターフェースと、スレーブデバイス1302、1304、1306、1308、および1310によって自己識別プロセスに使用される2つのインターフェース(「E」および「W」と標示されている)とを含んでもよい。複数のスレーブデバイス1302、1304、1306、1308、および1310は、この2つのインターフェースを使用して互いにデイジーチェーン接続され(たとえば、直列結合されるかまたはチェーンとして結合され)てもよく、第1のデバイスの「W」インターフェースが、第2のデバイスの「E」インターフェースに結合される。したがって、チェーンにおける第1のスレーブデバイスおよび最後のスレーブデバイスを除いて、チェーンにおける各スレーブデバイスは、その「W」インターフェースおよび「E」インターフェースを別のスレーブデバイスに結合させる。
一例では、「E」インターフェースおよび「W」インターフェースの各々は双方向インターフェースであってもよい。双方向インターフェースは、第1のモードでは、そのスレーブデバイスによって(たとえば、高状態または低状態に)ドライブされてもよく、かつ、第2のモードでは、そのデフォルト状態の変更を検知することができる(すなわち、検知インターフェースは、弱くプルアップまたはプルダウンされてもよいが、別のスレーブデバイスによって検知インターフェースのデフォルト状態からドライブすることができる)、ものであってもよい。図13Aにおいて第1の段階1330に示す例では、「W」インターフェースは、異なるスレーブデバイスの隣接する「E」インターフェースをドライブする働きをしてもよい。一方、「E」インターフェースは単に、その状態がデフォルト状態から変更されつつあるかどうかを検知してもよい。同様に、図13Aにおいて第2の段階1332に示すように、「E」インターフェースは、異なるスレーブデバイスの隣接する「W」インターフェースをドライブする働きをしてもよい。一方、「W」インターフェースは単に、その状態がデフォルト状態から変更されつつあるかどうかを検知してもよい。
一例では、「E」インターフェースおよび/または「W」インターフェースがスレーブデバイスによってデフォルト状態に弱くプルされ(たとえば、プルアップ/高状態にプルされまたはプルダウン/低状態にプルされ)てもよい。第1の方向では、各スレーブデバイスの「W」インターフェースは、「E」インターフェースのデフォルト状態とは逆の高状態または低状態に選択的にドライブされてもよい(すなわち、浮動しない)。したがって、第1のスレーブデバイスの「W」インターフェースは、第2のスレーブデバイスの「E」インターフェースをデフォルト状態とは逆の状態(たとえば、高状態または低状態)にセットまたはプルするように選択的に(たとえば、高状態または低状態に)ドライブされてもよい。したがって、各スレーブデバイスは、その「E」インターフェースの状態によって、別のスレーブデバイスに結合されているかどうかを認識する。
同様に、第1の方向では、各スレーブデバイスの「E」インターフェースは、「W」インターフェースのデフォルト状態とは逆の高状態または低状態に選択的にドライブされてもよい(すなわち、浮動しない)。したがって、第1のスレーブデバイスの「E」インターフェースは、第2のスレーブデバイスの「W」インターフェースをデフォルト状態とは逆の状態(たとえば、高状態または低状態)にセットまたはプルするように選択的に(たとえば、高状態または低状態に)ドライブされてもよい。したがって、各スレーブデバイスは、その「W」インターフェースの状態によって、別のスレーブデバイスに結合されているかどうかを認識する。
最初、マスタデバイス1303は、共有バス1301を介して「Identify #1 from both directions」ブロードキャスト1312を送ってもよい。たとえば、そのような「Identify #1 from both directions」ブロードキャスト1312は、マスタデバイス1303、共有バス1301、ならびに/あるいはスレーブデバイス1302、1304、1306、1308、および1310を含むデバイスの電源投入時またはブート時に送られてもよい。第1のスレーブデバイス1302を識別しようとする第1の段階1330において、すべてのスレーブデバイス1302、1304、1306、1308、および1310は、その「W」インターフェースをドライブして、チェーンにおける隣接するスレーブデバイスの「E」インターフェースをそのデフォルト状態から変更させる。スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイス1302(すなわち、「E」インターフェースがそのデフォルト状態から変更されないデバイス)のみが、識別子#E1によって自己識別し、共有バス1301を介して「acknowledge」(Ack)1314によって応答する。この時点から、その応答している第1のスレーブデバイス1302が、共有バス1301を介してマスタデバイス1303と第1のスレーブデバイス1302の両方によって#E1として識別されてもよい。この第1のデバイス1302は、スレーブデバイスのチェーンの第1の端部として識別される。
共有バス1301を介して第1のスレーブデバイスからのacknowledge(Ack)1314を検出したときに、第2のスレーブデバイス1310を識別しようとする第2の段階1332が開始してもよい。すなわち、デイジーチェーン上のすべてのスレーブデバイスは、共有バス1301を監視してもよく、共有バス1301を介してAck1314が送られたことを検出したときに、第2の段階1332を開始してもよいことを認識する。この第2の段階1332では、スレーブデバイス1302、1304、1306、1308、および1310のすべてがその「W」インターフェースをドライブすることを停止し、すべてのまだ識別されていないスレーブデバイスがその「E」インターフェースをドライブする。この変更(たとえば、「W」インターフェースをドライブすることを停止し、代わりに「E」インターフェースをドライブすること)が、共有バス1301を介してAck1314が送られたことを検出したときに直ちにならびに/あるいは自動的に行われることに留意されたい。これによって、デイジーチェーンにおける隣接するスレーブデバイスの「W」インターフェースがそのデフォルト状態から変更されてもよい。スレーブデバイスのデイジーチェーンにおける第2のスレーブデバイス1310(すなわち、「W」インターフェースがそのデフォルト状態から変更されないデバイス)のみが、共有バス1301を介して「acknowledge」(Ack)1316によって応答する。この時点から、その応答している第2のスレーブデバイス1310が、共有バス1301を介してマスタデバイス1303と第2のスレーブデバイス1310の両方によって#W1として識別されてもよい。この第2のデバイス1310は、スレーブデバイスのチェーンの第2の端部として識別される。
マスタデバイス1303は、2つの肯定応答1314および1316を受信すると、共有バス1301を介して「Identify #2 from both directions」ブロードキャスト1318を送る。第3の段階1334において、第1のスレーブデバイス1302はすでに#E1として識別されているので、第1のスレーブデバイス1302および第2のスレーブデバイス1310は、「Identify #2 from both directions」ブロードキャスト1318に応答しないことを認識する。第1のスレーブデバイス1302は、すでに識別子を有しているので、その「W」インターフェースをドライブしないことを認識する(たとえば、単に浮動してもよく、あるいはその「W」インターフェースをデフォルト状態にドライブする)。「E」インターフェースがもはやドライブされない(あるいはそのデフォルト状態のままでいる)第3のスレーブデバイス1304は、acknowledge(Ack)1320を送ることによって「Identify #2 from both directions」ブロードキャスト1318に応答する。この時点から、その応答している第3のスレーブデバイス1304は、共有バス1301を介してマスタデバイス1303および第3のデバイス1304自体によって#E2として識別されてもよい。
共有バス1301を介して第3のスレーブデバイス1304からのacknowledge(Ack)1320を検出したときに、第4のスレーブデバイス1308を識別しようとする第4の段階1336が開始してもよい。第4の段階1336において、スレーブデバイスのすべてがその「W」インターフェースをドライブするのを停止し、まだ識別されていないすべてのスレーブデバイス1306および1308がその「E」インターフェースをドライブする。これによって、デイジーチェーンにおける隣接するスレーブデバイスの「W」インターフェースがそのデフォルト状態から変更されてもよい。スレーブデバイスのデイジーチェーンにおける第4のスレーブデバイス1308(すなわち、「W」インターフェースがそのデフォルト状態から変更されないデバイス)のみが、共有バス1301を介して「acknowledge」(Ack)1322によって応答する。この時点から、その応答している第4のスレーブデバイス1308が、共有バス1301を介してマスタデバイス1303と第4のスレーブデバイス1308の両方によって#W2として識別されてもよい。
このプロセスは、共有バス上のすべてのスレーブデバイスが識別されるまで継続してもよい。
マスタデバイスがスレーブデバイスの数についての事前知識を有しない場合、マスタデバイスは、すべてのスレーブデバイスが識別されているのでどのスレーブデバイスも応答しない最後の「Identify #N from both directions」ブロードキャストを送ってもよいことに留意されたい。マスタデバイス1303は、「Identify #N from both directions」ブロードキャストに対する「acknowledge」を受信しないので、共有バス1301上のすべてのスレーブデバイスが識別されていることを認識する。デイジーチェーンにおいて奇数個のスレーブデバイスが接続される場合、マスタデバイス1303は、最後の「Identify #N from both directions」コマンドに関してチェーンの中央に位置するスレーブからの第1のAckのみを受信することに留意されたい。
図14は、スレーブデバイスが自己識別するのを可能にするために共有バスに結合されたマスタデバイスと複数の同一のスレーブデバイスとの間で実施される場合がある例示的な方法を示す流れ図である。この方法の例が、図13に示されている。複数のスレーブデバイスが共有バスに結合されてもよく、その場合、すべてのスレーブデバイスが、共有バスとは別個の第1のインターフェースおよび第2のインターフェース(たとえば、図3の「W」インターフェースおよび「E」インターフェース)を含み、スレーブデバイスは、1つのスレーブデバイスの第1のインターフェースから別のスレーブデバイスの第2のインターフェースにデイジーチェーン接続される(1402)。マスタデバイスは、(たとえば、ブート時または初期設定段階時に)共有バスを介して「identify #1 from both directions」ブロードキャストを送ってもよい(1404)。すでに図13に示されているように、すべてのまだ識別されていないスレーブデバイスが、その第1のインターフェース(たとえば、「W」インターフェース)をドライブして、隣接するスレーブデバイスの第2のインターフェース(たとえば、「E」インターフェース)をデフォルト状態から変更させる(1406)。第2のインターフェース(「E」インターフェース)がアサートされず(たとえば、そのデフォルト状態から変更されず)、かつまだ識別されていない第1のスレーブデバイスは、識別子#E1によって自己識別し、共有バスを介して第1の肯定応答によって応答する(1408)。マスタデバイスは、第1の肯定応答を受信し、応答している第1のスレーブデバイスを識別子#E1に関連付ける(1410)。
すべてのスレーブデバイスによって(共有バス上で)肯定応答が検知された後、すべてのスレーブデバイスがその第1のインターフェース(「W」インターフェース)をドライブすることを停止し、すべての識別されていないスレーブデバイスがその第2のインターフェース(「E」インターフェース)をドライブして、隣接するスレーブデバイスの第1のインターフェース(たとえば、「W」インターフェース)をデフォルト状態から変更させる(1412)。第1のインターフェース(「W」インターフェース)がアサートされず(たとえば、そのデフォルト状態から変更されず)、かつまだ識別されていない第2のスレーブデバイスは、識別子#W1によって自己識別し、共有バスを介して第2の肯定応答によって応答する(1414)。マスタデバイスは、第2の肯定応答を受信し、応答している第2のスレーブデバイスを識別子#W1に関連付ける(1416)。
マスタデバイスは、肯定応答がまったく受信されなくなるかあるいは単一の肯定応答のみが受信されるようになる(デイジーチェーンにおけるスレーブデバイスが奇数個である場合)まで一意の識別子ブロードキャストによって(図13に示すように)このプロセスを繰り返す(1420)。
共有バスに結合されたスレーブデバイスの自己識別のための第4の例示的な手法
図15は、各スレーブデバイスが、共有バスインターフェースとは別個の4つのインターフェースを有する、複数の同一のスレーブデバイスの格子アレイ構成を示す。この手法では、各スレーブデバイスは、2つのインターフェース(「W」および「E」)ではなく4つのインターフェース(「W」、「E」、「N」、および「S」)を含み、これによって、2つのインターフェースが使用されるときよりも迅速にスレーブデバイスを識別することが可能になる場合がある。この例示的な格子構成1500では、複数のスレーブデバイス1502が共有バス(図示せず)に結合されるとともに2つ〜4つのインターフェースを介して互いに結合されてもよい。たとえば、第1のスレーブデバイス1502aは、その「E」インターフェースおよび「S」インターフェースを他のスレーブデバイスに結合させてもよい。第2のスレーブデバイス1502bは、その「W」インターフェース、「E」インターフェース、および「S」インターフェースを他のスレーブデバイスに結合させてもよい。第3のスレーブデバイス1502cは、その「W」インターフェース、「E」インターフェース、「N」インターフェースおよび「S」インターフェースを他のスレーブデバイスに結合させてもよい。様々な実装形態では、「W」インターフェース、「E」インターフェース、「N」インターフェース、および「S」インターフェースの各々は一方向インターフェースであってもあるいは双方向インターフェースであってもよい。
この手法では、スレーブデバイス間のデイジーチェーン接続は2次元(たとえば、格子パターンの2つの方向)において行われてもよいことに留意されたい。他の実装形態では、スレーブデバイスの3次元デイジーチェーン接続またはn次元デイジーチェーン接続が実施されてもよい。スレーブデバイスが、共有バスを制御するマスタデバイスに対して自己識別するのを可能にするために、図3、図11、および図13に示す様々な技法および手法(またはそれらの変形形態/組合せ)がスレーブデバイスのこの2次元格子構成1500上で実施されてもよい。
(共有バスに加えて)スレーブデバイス当たりに3つ以上のインターフェースを使用すると、スレーブデバイス構成、パターン、または位置設定の識別情報をより高速にならびに/あるいは厳密に生成することが可能になる場合がある。
例示的な一実装形態では、マスタデバイスは、そのような格子構成1500におけるスレーブデバイスの総数および構造/配列についての事前知識を有してもよい。しかし、スレーブデバイスは同一であるので、各スレーブデバイスが一意の識別子を得るのを可能にするために自己識別手法が実行される。
図21は、各スレーブデバイスが、共有バスインターフェースとは別個の4つの非接触インターフェースを有する、複数の同一のスレーブデバイスの別の格子アレイ構成を示す。この手法では、各スレーブデバイスは、2つのインターフェース(「W」および「E」)ではなく4つの非接触インターフェース(「W」、「E」、「N」、および「S」)を含み、これによって、2つのインターフェースが使用されるときよりも迅速にスレーブデバイスを識別することが可能になる場合がある。この例示的な格子構成2100では、複数のスレーブデバイス2102が共有バス(図示せず)に通信可能に結合されるとともに2つ〜4つの非接触インターフェース(たとえば、近距離無線あるいは発光体および/またはレシーバ)を介して互いに結合されてもよい。一例では、スレーブデバイス2102が、その「W」インターフェース2104、「E」インターフェース2106、「N」インターフェース2108、および「S」インターフェース2110を使用して他のスレーブデバイスと通信してもよい。様々な実装形態では、「W」インターフェース、「E」インターフェース、「N」インターフェース、および「S」インターフェースの各々は一方向インターフェースであってもあるいは双方向インターフェースであってもよい。
第1の手法によれば、複数のスレーブデバイスが自己識別するのを可能にするために、スレーブデバイスの2次元格子構成の一方向スキャンが使用されてもよい。
図16(図16A、図16B、および図16Cを含む)は、2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第1の部分を示す。一例では、図15のスレーブデバイスの格子構成1500が説明のために使用される場合がある。マスタデバイスは、格子の各列に沿ったスレーブデバイスにそれ自体を、複数の段階1602、1604、1606、1608、1610、および1612を介して「x1」、「x2」…「x6」として反復的に識別させる1つまたは複数の「E」〜「W」ブロードキャストを送ってもよい。各列に沿った識別は、たとえば図3および図11のデイジーチェーン手法と同様であってもよい。この「E」〜「W」スキャンによって、各スレーブデバイスは(たとえば、その列番号を介して)部分的に自己識別してもよい。
図17(図17A、図17B、および図17Cを含む)は、2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする一方向スキャンプロセスの第2の部分を示す。この図において、図16のスレーブデバイスはここでは、異なる方向にスキャンされる。マスタデバイスは、格子の各行に沿ったスレーブデバイスにそれ自体を、複数の段階1702、1704、1706、1708、1710、および1712を介して「1y」、「2y」…「6y」として反復的に識別させる1つまたは複数の「N」〜「S」ブロードキャストを送ってもよい。各行に沿った識別は、たとえば図3および図11のデイジーチェーン手法と同様であってもよい。この「N」〜「S」スキャンによって、各スレーブデバイスは(たとえば、その行番号を介して)自己識別してもよい。各スレーブデバイスは、図16においてそれ自体の列番号を識別しているので、ここでその行番号を認識することによってそれ自体を完全に識別する。したがって、スレーブデバイス識別子は、列番号と行番号とから構成されてもよい。
第2の手法によれば、複数のスレーブデバイスが自己識別するのを可能にするために、スレーブデバイスの2次元格子構成の双方向スキャンが使用されてもよい。
図18は、2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする双方向スキャンプロセスの第1の部分を示す。一例では、図15のスレーブデバイスの格子構成1500が説明のために使用される場合がある。マスタデバイスは、格子の各列に沿ったスレーブデバイスにそれ自体を、複数の双方向段階1802、1804、および1806を介して「xe1」、「xw1」…「xe3」、「xw3」として反復的に識別させる1つまたは複数の「E」〜「W」ブロードキャストを送ってもよい。各列に沿った識別は、たとえば図13のデイジーチェーン手法と同様であってもよい。この「E」〜「W」スキャンによって、各スレーブデバイスは(たとえば、その列番号を介して)部分的に自己識別してもよい。
図19は、2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする双方向スキャンプロセスの第2の部分を示す。この図において、図18のスレーブデバイスはここでは、異なる方向にスキャンされる。マスタデバイスは、格子の各行に沿ったスレーブデバイスにそれ自体を、複数の段階1902、1904、および1906を介して「n1y」、「s1y」…「n3y」、「s3y」として反復的に識別させる1つまたは複数の「N」〜「S」ブロードキャストを送ってもよい。各行に沿った識別は、たとえば図13のデイジーチェーン手法と同様であってもよい。この「N」〜「S」スキャンによって、各スレーブデバイスは(たとえば、その行番号を介して)自己識別してもよい。各スレーブデバイスは、図18においてそれ自体の列番号を識別しているので、ここでその行番号を認識することによってそれ自体を完全に識別する。したがって、スレーブデバイス識別子は、列番号と行番号とから構成されてもよい。
したがって、自己識別プロセスは、格子構成における各スレーブデバイスが(たとえば、各スレーブデバイスがそれ自体の識別子を得るように)自己識別するのを可能にする働きをする。
いくつかの実装形態では、マスタデバイスは、格子構成1500におけるスレーブデバイスの数およびその正確な位置についての事前知識を有してもよい。他の実装形態では、マスタデバイスがスレーブデバイスの構造を認識している限り、スレーブデバイスのホットプラギング(たとえば、動的挿入)が許容されてもよい。
また他の代替手法では、図16および図17ならびに/あるいは図18および図19に示す手法のいずれかが、2方向におけるスキャンを同時に実行することによってより効率的に実施される場合がある。
図20(図20Aおよび図20Bを含む)は、2次元アレイとして構成され共有バスに結合された複数の同一のスレーブデバイスが共有バス上でマスタデバイスに対して自己識別するのを可能にする別の一方向スキャンプロセスを示す。一例では、図15のスレーブデバイスの格子構成1500が説明のために使用される場合がある。この例では、図16に示す一方向手法と図17に示す一方向手法が同時に実施されてもよい。しかし、代替手法では、同様に図18に示す手法と図19に示す手法が組み合わされてもよい。
第1の段階2002において、マスタデバイスは、すべての「W」インターフェースおよびすべての「S」インターフェースを(たとえば、すべてのまだ識別されていないスレーブデバイスについて)アサートさせる「Identify #1」ブロードキャスト/コマンドを送り、それによって対応する「E」インターフェースおよび「N」インターフェースをデフォルト状態から変更させてもよい。スレーブデバイスは、その「E」インターフェースおよび「N」インターフェースを検知して、それらのインターフェースがデフォルト状態であるか否かを判定してもよい。「E」インターフェースがそのデフォルト状態にある場合、スレーブデバイスはそれが第1の列にあると認識してもよい。そのようなスレーブデバイスは、「?1」という部分的に定義された識別子を有してもよく、この場合、「?」は以後のスキャンにおいて定義される。同様に、「N」インターフェースがそのデフォルト状態にある場合、スレーブデバイスはそれが第1の行にあると認識してもよい。そのようなスレーブデバイスは、「1?」という部分的に定義された識別子を有してもよく、この場合、「?」は以後のスキャンにおいて定義される。「E」インターフェースと「N」インターフェースの両方がそのデフォルト状態にある場合、スレーブデバイスは「11」として自己識別してもよい。
第2の段階2004において、マスタデバイスは、すべての「W」インターフェースおよびすべての「S」インターフェースをすべてのまだ識別されていないスレーブデバイスについてアサートさせる「Identify #2」ブロードキャスト/コマンドを送り、それによって対応する「E」インターフェースおよび「N」インターフェースをデフォルト状態から変更させてもよい。すでに対応する行を識別したスレーブデバイスの場合、その「S」インターフェースをアサートせず、すでに対応する列を識別したスレーブデバイスの場合、その「W」インターフェースをアサートしないことに留意されたい。スレーブデバイスはこの場合も、その「E」インターフェースおよび「N」インターフェースを検知して、それらのインターフェースがデフォルト状態であるか否かを判定してもよい。「E」インターフェースがそのデフォルト状態にある場合、スレーブデバイスはそれが第2の列にあると認識してもよい。そのようなスレーブデバイスは、「?2」という部分的に定義された識別子を有してもよく、この場合、「?」は以後のスキャンにおいて定義される。同様に、「N」インターフェースがそのデフォルト状態にある場合、スレーブデバイスはそれが第2の行にあると認識してもよい。そのようなスレーブデバイスは、「2?」という部分的に定義された識別子を有してもよく、この場合、「?」は以後のスキャンにおいて定義される。「E」インターフェースと「N」インターフェースの両方がそのデフォルト状態にある場合、スレーブデバイスは「22」として自己識別してもよい。スレーブデバイスがその行と列の両方をこのように定義すると、それによってスレーブデバイスは自己識別され、以後のidentifyブロードキャスト/コマンドを受信するときにその「W」インターフェースをアサートすることもあるいはその「S」インターフェースをアサートすることもない。このプロセスは、すべてのスレーブデバイスが自己識別するまで第3の段階2006、第4の段階2008、第5の段階2010、および第6の段階2012を通じて継続する。
例示的なマスタデバイスおよびマスタデバイス上で実施される方法
図22は、共有バス上での複数の同一のデバイスの自己識別を容易にするように構成される場合がある例示的なマスタデバイス2200を示すブロック図である。マスタデバイス2200は、共有バスインターフェース回路/機能/モジュール2204およびメモリ/記憶デバイス2206に結合された処理回路、機能、モジュール、および/または論理2202を含んでもよい。共有バスインターフェース回路/機能/モジュール2204は、マスタデバイス2200が、複数の同一のスレーブデバイスが結合される場合がある多線バス(たとえば、2線バス)を介して通信しならびに/あるいは通信を管理するのを可能にしてもよい。処理回路、機能、モジュール、および/または論理2202は、マスタデバイスが共有バスを介して通信を制御するのを可能にする1つまたは複数の共有バス制御命令2212を実施するように構成される場合がある共有バス制御回路、機能、モジュール2208を含んでもよい。さらに、処理回路、機能、モジュール、および/または論理2202は、共有バス上のスレーブデバイスが、自己識別し、ならびに/あるいは自己識別したことを共有バスを介してマスタデバイスに通知するのを可能にする、1つまたは複数のスレーブデバイス識別命令2214を実施するように構成されたスレーブデバイス識別回路、機能、および/またはモジュール2210を含んでもよい。一例では、スレーブデバイスが自己識別した旨のマスタデバイス2200へのそのような通知は、スレーブデバイスの明示的な識別子を含まない。たとえば、この通知は、共有バスを介して送られたブロードキャスト/コマンドに応答した単純なacknowledge(ack)であってもよく、その場合、そのようなacknowledgeはスレーブデバイス識別子を含まない。一実装形態では、マスタデバイスおよびスレーブデバイスは、図3、図11、および/または図13に示すような予定されたプロトコルを使用して、(たとえば、応答/肯定応答しているスレーブデバイスが特定のブロードキャスト/コマンドによって暗示された識別子を用いることに同意することによって)デバイス識別子に暗黙的に同意してもよい。別の実装形態では、マスタデバイスは、スレーブの数および/またはその構成もしくは相対配列ついての事前知識を有してもよいが、図16、図17、図18、および/または図19に示すようなプロトコルを使用して、同一のスレーブデバイスの各々が自己識別によって一意の識別子(すなわち、他の識別子とは別個の識別子)を得るのを可能にする。このことは、マスタデバイスが、共有バスを介してこの一意の識別子を使用してスレーブデバイスの各々を特定的にアドレス指定するのを可能にする。
図23は、1つまたは複数の同一のスレーブデバイスによる自己識別を容易にするためにマスタデバイス上で実施される場合がある方法を示す。起動時、初期設定時、および/またはブート時に、マスタデバイスは、複数の同一のスレーブデバイスが結合された共有バスを介して第1のブロードキャストを送ってもよく、第1のブロードキャストは、複数の同一のスレーブデバイスのうちの1つまたは複数の自己識別を開始/トリガする(2302)。第1のブロードキャストは単に、スレーブデバイスが自己識別することを要求してもよい(すなわち、スレーブデバイスに特定的に識別子を割り当てることなしに要求してもよい)。各スレーブデバイスの識別子が、マスタデバイスによって各スレーブデバイスに明示的に提供されることはない。さらに、各スレーブデバイスの識別子がスレーブデバイスに対して事前設定されることはない。その代わりに、マスタデバイスは、第1のブロードキャストに応答して、スレーブデバイスが自己識別したことを示す応答を共有バスを介してスレーブデバイスから受信してもよい(2304)。この応答が、応答しているスレーブデバイスの識別子を明示的に提供しない場合があることに留意されたい。その代わりに、識別子は、たとえば、応答の順序に基づくか、またはどのブロードキャストが送られるか(たとえば、Identify #1、Identify #2、…Identify #n)に基づく、暗黙的なものであってもよい。
したがって、応答は、単なるacknowledgeメッセージであってもよく、必ずしも明示的な識別子を含まない場合もある。
マスタデバイスは、応答しているスレーブデバイスに関連するスレーブデバイス識別子をスレーブデバイスリストに追加してもよい(2306)。マスタデバイスは、複数の同一のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、共有バスを介して1つまたは複数のブロードキャストを送り続け、複数の同一のスレーブデバイスの各々を一意に識別する(2308)。たとえば、ブロードキャストに対する応答が受信される限り、マスタデバイスは、バスに結合されたすべてのスレーブデバイスを識別するためにブロードキャストを送り続けてもよい。マスタデバイスは、共有バスを介したブロードキャストに対して応答が受信されないときにすべてのスレーブデバイスが識別されたことを認識する。代替的に、マスタデバイスは、共有バスに結合されたスレーブデバイスの総数を認識している場合、スレーブデバイスの総数に等しい数の応答を受信したときにブロードキャストを送るのを停止してもよい。
その後、マスタデバイスは、リストにおけるスレーブデバイス識別子を使用して、特定のスレーブデバイスに特定的にアドレス指定される通信信号を送ってもよい。たとえば、マスタデバイスは、第1のスレーブデバイスに関連する、スレーブデバイスリスト内の対応する第1の識別子を使用して第1のスレーブデバイスに特定的にアドレス指定される通信信号を共有バスを介して送ってもよい。
いくつかの実装形態では、マスタデバイスは、複数のスレーブデバイスによって共有バスへのアクセスを制御してもよい。すなわち、マスタデバイスは、スレーブデバイスが共有バスを介して通信してもよいかどうかを判定する場合があり、ならびに/あるいはいつ共有バスを介して通信してもよいかをスレーブデバイスに指示する場合がある。
図3および図11の手法に示すように、第1のブロードキャストは、複数のスレーブデバイスに、スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイスを識別することを指示してもよい。
図3の手法に示すように、1つまたは複数のブロードキャストの各々は、互いに別個であってもよく、識別子を暗示する。
図11の手法に示すように、1つまたは複数のブロードキャストの各々(たとえば、roll call)は、同じであり、識別子を暗示しない。
図13の手法に示すように、単一のブロードキャストによって2つの異なるスレーブデバイスから2つの応答が得られる場合があり、2つの異なるスレーブデバイスの各々が、応答が受信される順序に基づいて異なる識別子に関連付けられる。
図15、図16、図17、図18、図19、および図20の手法に示すように、スレーブデバイスリストは、複数のスレーブデバイス識別子を含んでもよく、複数のスレーブデバイスの2次元配列を示してもよい。
図15、図16、図17、図18、図19、および図20の手法に示すように、スレーブデバイスリストは、複数のスレーブデバイス識別子を含んでもよく、複数のスレーブデバイスのn次元配列を示してもよい。
例示的なスレーブデバイスおよびスレーブデバイス上で実施される方法
図24は、自己識別し、かつ共有バスに結合された複数の同一のデバイスから区別されるように構成される場合がある例示的なスレーブデバイス2400を示すブロック図である。スレーブデバイス2400は、共有バスインターフェース回路/機能/モジュール2404およびメモリ/記憶デバイス2414に結合された処理回路、機能、モジュール、および/または論理2402を含んでもよい。共有バスインターフェース回路/機能/モジュール2404は、スレーブデバイス2400が、マスタデバイスの制御下で多線バス(たとえば、2線バス)を介して通信しならびに/あるいは通信に応答するのを可能にしてもよい。
スレーブデバイスは、共有バスインターフェース回路、機能、および/またはモジュール2404とは別個の複数のさらなるインターフェース2406、2408、2410、および2412を含んでもよい。これらのさらなるインターフェースは、スレーブデバイスの自己識別を目的としてスレーブデバイスを(たとえば、デイジーチェーンまたは格子パターンにおける)他のスレーブデバイスに結合するために特定的に使用される2つ、3つ、4つ、5つ、6つ、または7つ以上のインターフェースであってもよい。この例では、スレーブデバイス2400に4つのインターフェース2406、2408、2410、および2412が含められる。一例では、インターフェースの各々は単線インターフェースであってもよいことに留意されたい。
処理回路、機能、モジュール、および/または論理2402は、共有バスインターフェース回路、機能、および/またはモジュール2404を介して共有バス上で実施されるプロトコルに従って通信信号を受信し送るように構成される場合がある共有バス通信プロトコル回路、機能、および/またはモジュール2420を含んでもよい。処理回路、機能、モジュール、および/または論理2402は、複数のインターフェース回路2406、2408、2410、および2412を使用して自己識別を実行するように構成された自己識別回路、機能、および/またはモジュール2422を含んでもよい。たとえば、自己識別回路、機能、および/またはモジュール2422は、図3〜図18に示す方法、ステップ、機能、および/または手法のうちの1つまたは複数を実行してもよい。スレーブデバイス2400は、共有バスを介して受信されたブロードキャストおよびスレーブデバイスがすでに自己識別したか否かに基づいて各インターフェース回路2406、2408、2410、および/または2412を選択的にアサート/ドライブまたは検知してもよい。
スレーブデバイス2400は、(共有バスインターフェース回路、機能、および/またはモジュール2404を介して)共有バスを介して1つまたは複数のブロードキャストを受信することに基づいて、自己割り当てされた識別子または自己選択された識別子2428を得てもよく、次いでメモリ/記憶デバイス2414に記憶する。スレーブデバイス識別子2428については、製造時に一意のデバイス識別子をプロビジョニングすることがなされていないことに留意されたい。その代わりに、スレーブデバイス識別子2428は、スレーブデバイス2400の各ブートまたは初期設定時に(たとえば、マスタデバイスと、共有バスと、スレーブデバイスとを含むデバイスの起動、パワーサイクル、またはリセットが行われるたびに)スレーブデバイスによって自己選択されてもよい。
スレーブデバイス2400からマスタデバイスへの応答が明示的に共有バスを介してマスタデバイスに伝達されなくてもよいことに留意されたい。その代わりに、そのようなスレーブデバイス識別子は、たとえば、それぞれに異なるスレーブデバイスからの応答の順序において暗黙的であるか、あるいは(たとえば、先行するブロードキャストが識別子を暗示する場合に)先行するブロードキャストに基づいて暗黙的であってもよい。
メモリ/記憶デバイス2414は、共有バスを介して通信を行う働きをする場合がある共有バス通信命令2424と、マスタデバイスに対して自己識別を実行するように働く場合がある自己識別命令2426とを記憶してもよい。
図25は、自己識別すべきスレーブデバイス上で実施される場合がある方法を示す。スレーブデバイスは、複数の同一のスレーブデバイスが結合された共有バスを介してブロードキャストを受信してもよい(2502)。一例では、ブロードキャストは、受信しているスレーブデバイスを自己識別において助けるための1つまたは複数の動作を実行することとスレーブデバイスによって理解される明示的な自己識別ブロードキャストであってもよい。それに応答して、スレーブデバイスは、ブロードキャストに基づくとともにスレーブデバイスが現在の識別子を有するか否かに基づいて、共有バスとは別個の第1のインターフェースをドライブしてもよい(たとえば、選択的にプルアップまたはプルダウンして第2のインターフェースに関するデフォルト状態とは異なる状態にしてもよい)(2504)。さらに、スレーブデバイスは、共有バスとは別個の第2のインターフェースを、デフォルト状態からの状態の変更に関して検知してもよい(2506)。
スレーブデバイスがすでに現在の識別子を有している(たとえば、マスタデバイスに対して自己識別している)場合は、先に進む必要はない(2508)。
スレーブデバイスが現在の識別子を有しない場合、スレーブデバイスは、第2のインターフェースの状態に基づいて共有バスを介して応答すべきであるかどうかを判定してもよい(2510)。たとえば、図3に示すように、第2のインターフェース(たとえば、「E」インターフェース)がデフォルト状態のままである場合、このことは、スレーブデバイスが応答を送るべきであることを示す場合がある。代替的に、図11に示すように、第2のインターフェース(たとえば、「E」インターフェース)がそのデフォルト状態とは異なる状態にドライブされている場合、このことは、スレーブデバイスが応答を送るべきであることを示す場合がある。
スレーブデバイスは、応答すべきであることを確認した場合、ブロードキャストによって暗示されるかまたは隣接するスレーブデバイスから得られる認識される情報によって暗示される一意の識別子にスレーブデバイス自体を関連付けてもよい(2512)。たとえば、図3に示すように、識別子は特定のブロードキャスト(たとえば、「Identify #1」、「Identify #2」など)によって暗示されてもよい。代替的に、図11に示すように、隣接するスレーブデバイスがその識別子を別のスレーブデバイスに提供して、別のスレーブデバイスが一意の識別子を選択する(たとえば、隣接するスレーブデバイスの識別子を1だけ増分する)のを可能にしてもよい。
スレーブデバイスは次いで、共有バスを介してブロードキャストに応答してもよい(2514)。たとえば、そのような応答は、単純なacknowledgeであってもよく、スレーブデバイスの明示的な識別子を含まなくてもよい。すなわち、マスタデバイスは単に、識別子リストにおけるマスタデバイスの最後の識別子を増分し、それを、応答しているスレーブデバイスの一意の識別子として使用してもよい(スレーブデバイスも同じことを行う)。したがって、マスタデバイスとスレーブデバイスの両方は、同じ識別子を、そのような識別子が明示的に共有バスを介して送信されないにもかかわらず使用する。したがって、応答は、暗黙的に一意の識別子を示す。
スレーブデバイスは、共有バスを監視して、任意のさらなるブロードキャストが受信されているかどうかを確認してもよい(2516)。受信されている場合、プロセスを繰り返す。受信されていない場合、スレーブデバイスは、一意の識別子にアドレス指定される通信信号を共有バスを介して受信しならびに/あるいはその通信信号に対して共有バスを介して応答してもよい(2518)。
一例では、一意の識別子がスレーブデバイスに明示的に提供されることはない。さらに、一意の識別子がスレーブデバイスに対して事前設定されない場合がある。
一態様によれば、この方法は、(a)共有バスを介して1つまたは複数のブロードキャストを受信すること、および/または(b)1つまたは複数のブロードキャストに基づくとともに、スレーブデバイスが現在の識別子を有するか否かに基づいて第1のインターフェースおよび/または第2のインターフェースを選択的にドライブまたは検知することをさらに含んでもよい。
図に示される構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能として再構成されてもよく、かつ/または組み合わされてもよく、あるいはいくつかの構成要素、ステップ、または機能として具現化されてもよい。本明細書において開示された新規の特徴から逸脱することなく、追加の要素、構成要素、ステップ、および/または機能が追加されてもよい。図に示した装置、デバイス、および/または構成要素は、図に示した方法、特徴、またはステップのうちの1つまたは複数を実行するように構成されてもよい。また、本明細書において説明された新規のアルゴリズムは、ソフトウェアに効率的に実装されることがあり、および/またはハードウェアに組み込まれることがある。
加えて、実施形態は、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして記載される場合があることに留意されたい。フローチャートでは、動作について順次プロセスとして説明する場合があるが、動作の多くは並列にまたは同時に実行することができる。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了するときに終了する。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応してもよい。プロセスが関数に対応するとき、その終了は呼出し関数またはメイン関数への関数のリターンに対応する。
さらに、記憶媒体は、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を記憶するための他の機械可読媒体を含む、データを記憶するための1つまたは複数のデバイスを表す場合がある。「機械可読媒体」という用語は、限定はしないが、ポータブルまたは固定記憶デバイス、光記憶デバイス、ワイヤレスチャネル、ならびに命令および/またはデータを記憶し、含み、または搬送することが可能な様々な他の媒体を含む。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せによって実装されてもよい。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードにおいて実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメントは、記憶媒体または他のストレージなどの機械可読媒体内に記憶されてもよい。プロセッサは、必要なタスクを実行する場合がある。コードセグメントは、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラムステートメントの任意の組合せを表してもよい。コードセグメントは、情報、データ、引数、パラメータ、もしくはメモリ内容を渡すことおよび/または受け取ることによって、別のコードセグメントまたはハードウェア回路に結合されてよい。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む任意の好適な手段を介して渡され、転送され、または送信されてもよい。
本明細書において開示される例に関して説明される様々な例示的な論理ブロック、モジュール、回路、要素、および/または構成要素は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理構成要素、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明する機能を実行するように設計されたそれらの任意の組合せによって実装または実行されてもよい。汎用プロセッサはマイクロプロセッサであってもよいが、代替として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティング構成要素の組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連係した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装されてもよい。
本明細書で開示する例に関して説明した方法またはアルゴリズムは、処理ユニット、プログラミング命令、または他の指示の形態において、直接ハードウェアとして具現化されても、プロセッサによって実行可能なソフトウェアモジュールとして具現化されても、あるいは両方の組合せとして具現化されてもよく、単一のデバイスに含まれるかまたは複数のデバイスにわたって分散されることがある。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で既知の任意の他の形態の記憶媒体に存在してよい。記憶媒体は、プロセッサが記憶媒体から情報を読み取ることができ、記憶媒体に情報を書き込むことができるように、プロセッサに結合されてもよい。代替形態において、記憶媒体はプロセッサと一体である場合がある。
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装されてもよいことを当業者はさらに諒解されよう。ハードウェアとソフトウェアとのこの互換性について明確に説明するために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、上記で概してそれらの機能性に関して説明した。そのような機能性が、ハードウェアとして実施されるか、ソフトウェアとして実施されるのかは、特定の適用例と、システム全体に課される設計制約とによって決まる。
本明細書で説明した本発明の様々な特徴は、本発明から逸脱することなく、異なるシステムで実現されてもよい。上記の実施形態は例にすぎず、本発明を限定するものと解釈すべきではないことに留意されたい。実施形態の説明は、例示的なものであり、特許請求の範囲を限定するものではない。したがって、本教示は、他のタイプの装置に容易に適用することができ、多くの代替形態、修正形態、および変形形態が、当業者には明らかであろう。
100 装置
102 マスタデバイス
104 共有バス
106 スレーブデバイス
202 装置
204 ベースバンドプロセッサ
206 画像センサ
208 マルチモード制御データバス
212 マスタデバイス
214 スレーブデバイス
216 画像データバス
218 他の周辺(スレーブ)デバイス
301 共有バス
302、304、306、308、310 スレーブデバイス
303 マスタデバイス
312 「Identify #1」ブロードキャスト
314 「acknowledge」(Ack)
316 「Identify #2」ブロードキャスト
318 acknowledge
320 「Identify #3」ブロードキャスト
322 acknowledge
324 「Identify #N」ブロードキャスト
326 acknowledge
502 第1の例示的な配列
504 スレーブデバイス
602 第2の例示的な配列
604 スレーブデバイス
702 第3の例示的な配列
704 スレーブデバイス
802 第4の例示的な配列
804 スレーブデバイス
902 例示的な配列
904 スレーブデバイス
906 スレーブデバイス
1002 例示的な配列
1004 スレーブデバイス
1006 スレーブデバイス
1101 共有バス
1101a 共有バスクロック線
1101b 共有バスデータ線
1102、1104、1106、1108、1110 スレーブデバイス
1103 マスタデバイス
1112 「Identify #1」ブロードキャスト
1114 「acknowledge」(Ack)
1116 「Roll Call」ブロードキャスト
1118 肯定応答
1120 「Roll Call」ブロードキャスト
1122 肯定応答
1124 Roll Callブロードキャスト
1126 肯定応答
1301 共有バス
1302、1304、1306、1308、1310 スレーブデバイス
1303 マスタデバイス
1312 「Identify #1 from both directions」ブロードキャスト
1314 「acknowledge」(Ack)
1316 「acknowledge」(Ack)
1318 「Identify #2 from both directions」ブロードキャスト
1320 acknowledge(Ack)
1322 「acknowledge」(Ack)
1330 第1の段階
1332 第2の段階
1334 第3の段階
1336 第4の段階
1500 例示的な格子構成
1502 スレーブデバイス
1502a 第1のスレーブデバイス
1502b 第2のスレーブデバイス
1502c 第3のスレーブデバイス
1602、1604、1606、1608、1610、1612 段階
1702、1704、1706、1708、1710、1712 段階
1802、1804、1806 双方向段階
1902、1904、1906 段階
2002 第1の段階
2004 第2の段階
2006 第3の段階
2008 第4の段階
2010 第5の段階
2012 第6の段階
2100 例示的な格子構成
2102 スレーブデバイス
2104 「W」インターフェース
2106 「E」インターフェース
2108 「N」インターフェース
2110 「S」インターフェース
2200 例示的なマスタデバイス
2202 処理回路、機能、モジュール、および/または論理
2204 共有バスインターフェース回路/機能/モジュール
2206 メモリ/記憶デバイス
2208 共有バス制御回路、機能、モジュール
2210 スレーブデバイス識別回路、機能、および/またはモジュール
2212 共有バス制御命令
2214 スレーブデバイス識別命令
2400 例示的なスレーブデバイス
2402 処理回路、機能、モジュール、および/または論理
2404 共有バスインターフェース回路/機能/モジュール
2406、2408、2410、2412 インターフェース
2414 メモリ/記憶デバイス
2420 共有バス通信プロトコル回路、機能、および/またはモジュール
2422 自己識別回路、機能、および/またはモジュール
2424 共有バス通信命令
2426 自己識別命令
2428 スレーブデバイス識別子

Claims (44)

  1. 共有バスインターフェースと、
    前記共有バスインターフェースに結合された処理回路とを備え、前記処理回路が、
    複数の同一のスレーブデバイスが結合された前記共有バスを介して第1のブロードキャストを送ることであって、前記第1のブロードキャストが、前記複数の同一のスレーブデバイスのうちの1つまたは複数の自己識別を開始する、送ることと、
    前記第1のブロードキャストに応答して、スレーブデバイスが自己識別したことを示す応答を前記共有バスを介してスレーブデバイスから受信することと、
    前記複数の同一のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、前記共有バスを介して1つまたは複数のブロードキャストを送り続け、前記複数の同一のスレーブデバイスの各々を一意に識別することとを行うように構成されるデバイス。
  2. 前記処理回路は、
    第1のスレーブデバイスに関連する、スレーブデバイスリスト内の対応する第1の識別子を使用して前記第1のスレーブデバイスに特定的にアドレス指定される通信信号を前記共有バスを介して送るようにさらに構成される、請求項1に記載のデバイス。
  3. 前記複数の同一のスレーブデバイスの各々の一意の識別子が、前記デバイスによって各スレーブデバイスに明示的に提供されることはない、請求項1に記載のデバイス。
  4. 前記デバイスは、前記共有バスを介してブロードキャストに対する応答が受信されなくなったときにすべてのスレーブデバイスが識別されたと認識する、請求項1に記載のデバイス。
  5. 前記デバイスは、前記共有バスに結合された前記複数の同一のスレーブデバイスの総数についての事前知識を有し、前記デバイスは、前記複数の同一のスレーブデバイスのその総数が一意に識別されたときに前記1つまたは複数のブロードキャストを送ることを停止する、請求項1に記載のデバイス。
  6. 前記複数の同一のスレーブデバイスにおける各スレーブデバイスの一意の識別子が前記スレーブデバイスに対して事前設定されることはない、請求項1に記載のデバイス。
  7. 前記応答は、前記応答しているスレーブデバイスの一意の識別子を暗黙的に示すが、前記識別子を含むことはない、請求項1に記載のデバイス。
  8. 前記処理回路は、
    前記複数の同一のスレーブデバイスによって共有される前記バスへのアクセスを制御するようにさらに構成される、請求項1に記載のデバイス。
  9. 前記第1のブロードキャストは、前記複数の同一のスレーブデバイスに、スレーブデバイスのデイジーチェーンにおける第1のスレーブデバイスを識別することを指示する、請求項1に記載のデバイス。
  10. 前記1つまたは複数のブロードキャストの各々が、互いに別個であり、一意のスレーブデバイス識別子を暗示する、請求項1に記載のデバイス。
  11. 前記1つまたは複数のブロードキャストの各々が、同じであり、一意のスレーブデバイス識別子を暗示することはない、請求項1に記載のデバイス。
  12. 単一のブロードキャストによって2つの異なるスレーブデバイスから2つの応答が得られ、前記2つの異なるスレーブデバイスの各々が、前記応答が受信される順序に基づいて異なる一意のスレーブデバイス識別子に関連付けられる、請求項1に記載のデバイス。
  13. 前記処理回路は、
    記憶デバイスにおいて記憶されたスレーブデバイスリストに、前記応答しているスレーブデバイスに関連するスレーブデバイス識別子を追加するようにさらに構成される、請求項1に記載のデバイス。
  14. 前記スレーブデバイスリストは、複数の一意のスレーブデバイス識別子を含み、前記複数のスレーブデバイスの2次元配列を示す、請求項13に記載のデバイス。
  15. 前記スレーブデバイスリストは、複数の一意のスレーブデバイス識別子を含み、前記複数のスレーブデバイスのn次元配列を示す、請求項13に記載のデバイス。
  16. デバイスにおいて実施される方法であって、
    複数の同一のスレーブデバイスが結合された共有バスを介して第1のブロードキャストを送るステップであって、前記第1のブロードキャストが、前記複数の同一のスレーブデバイスのうちの1つまたは複数の自己識別を開始する、ステップと、
    前記第1のブロードキャストに応答して、スレーブデバイスが自己識別したことを示す応答を前記共有バスを介してスレーブデバイスから受信するステップと、
    前記複数の同一のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、前記共有バスを介して1つまたは複数のブロードキャストを送り続け、前記複数の同一のスレーブデバイスの各々を一意に識別するステップとを含む方法。
  17. 第1のスレーブデバイスに関連する、前記スレーブデバイスリスト内の対応する第1の識別子を使用して前記第1のスレーブデバイスに特定的にアドレス指定される通信信号を前記共有バスを介して送るステップをさらに含む、請求項16に記載の方法。
  18. 前記複数の同一のスレーブデバイスの各々の一意のスレーブデバイス識別子が、前記デバイスによって各スレーブデバイスに明示的に提供されることはない、請求項16に記載の方法。
  19. 前記デバイスは、前記共有バスを介してブロードキャストに対する応答が受信されなくなったときにすべてのスレーブデバイスが識別されたと認識する、請求項16に記載の方法。
  20. 各スレーブデバイスの一意のスレーブ識別子が前記スレーブデバイスに対して事前設定されることはない、請求項16に記載の方法。
  21. 前記応答は、前記応答しているスレーブデバイスの一意の識別子を暗黙的に示すが、前記一意の識別子を含むことはない、請求項16に記載の方法。
  22. 前記処理回路は、
    前記複数の同一のスレーブデバイスによって共有される前記バスへのアクセスを制御するようにさらに構成される、請求項16に記載の方法。
  23. スレーブデバイスであって、
    共有バスに結合すべき共有バスインターフェースと、
    前記共有バスインターフェースとは別個の第1のインターフェースおよび第2のインターフェースと、
    前記共有バスインターフェース、前記第1のインターフェース、および前記第2のインターフェースに結合された処理回路とを備え、前記処理回路が、
    共有バスインターフェースを介してブロードキャストを受信することと、
    前記ブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて前記第1のインターフェースをドライブすることと、
    前記第2のインターフェースをデフォルト状態からの状態の変更に関して検知することと、
    前記第2のインターフェースの状態に基づくとともに、前記スレーブデバイスが現在の識別子を有しないことに基づいて、前記スレーブデバイスが自己識別すべきであることを確認することと、
    前記ブロードキャストによって暗示される一意の識別子または隣接するスレーブデバイスから得られる情報から認識される一意の識別子を前記スレーブデバイスに関連付けることと、
    前記共有バスを介して肯定応答によって前記ブロードキャストに応答することとを行うように構成されるスレーブデバイス。
  24. 前記第1のインターフェースおよび第2のインターフェースは、1つまたは複数の隣接するスレーブデバイスに結合すべき単線インターフェースである、請求項23に記載のデバイス。
  25. 前記処理回路は、
    前記スレーブデバイスに関連する前記一意の識別子に特定的にアドレス指定される通信信号を前記共有バスを介して受信するようにさらに構成される、請求項23に記載のデバイス。
  26. 前記一意の識別子が前記スレーブデバイスに明示的に提供されることはない、請求項23に記載のデバイス。
  27. 前記一意の識別子が、前記スレーブデバイスに対して事前設定されることはない、請求項23に記載のデバイス。
  28. 前記応答は、前記一意の識別子を暗黙的に示す、請求項23に記載のデバイス。
  29. 前記処理回路は、
    前記共有バスを介して1つまたは複数のブロードキャストを受信することと、
    前記1つまたは複数のブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて前記第1のインターフェースおよび/または前記第2のインターフェースを選択的にドライブまたは検知することとを行うようにさらに構成される、請求項23に記載のデバイス。
  30. 前記1つまたは複数のブロードキャストの各々が、互いに別個であり、一意の識別子を暗示する、請求項29に記載のデバイス。
  31. 前記1つまたは複数のブロードキャストの各々が、同じであり、一意の識別子を暗示することはない、請求項29に記載のデバイス。
  32. 単一のブロードキャストによって2つの異なるスレーブデバイスから2つの応答が得られ、前記2つの異なるスレーブデバイスの各々が、前記応答が受信される順序に基づいて異なる一意の識別子に関連付けられる、請求項23に記載のデバイス。
  33. 前記処理回路に結合された、前記共有バスとは別個の第3のインターフェースおよび第4のインターフェースをさらに備え、
    前記処理回路は、
    前記ブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて、前記共有バスとは別個の前記第3のインターフェースをドライブすることと、
    前記第4のインターフェースをデフォルト状態からの状態の変更に関して検知することと、
    前記第4のインターフェースの状態に基づいて、前記応答を前記共有バスを介して送るべきであることをさらに確認することとを行うようにさらに構成される、請求項23に記載のデバイス。
  34. スレーブデバイスにおいて実施される方法であって、
    共有バスインターフェースを介してブロードキャストを受信するステップと、
    前記ブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて、前記共有バスとは別個の第1のインターフェースをドライブするステップと、
    前記共有バスとは別個の第2のインターフェースを、デフォルト状態からの状態の変更に関して検知するステップと、
    前記第2のインターフェースの状態に基づくとともに、前記スレーブデバイスが現在の識別子を有しないことに基づいて、前記スレーブデバイスが自己識別すべきであることを確認するステップと、
    前記ブロードキャストによって暗示される一意の識別子または隣接するスレーブデバイスから得られる情報から認識される一意の識別子を前記スレーブデバイスに関連付けるステップと、
    前記共有バスを介して肯定応答によって前記ブロードキャストに応答するステップとを含む方法。
  35. 前記スレーブデバイスに関連する前記一意の識別子に特定的にアドレス指定される通信信号を前記共有バスを介して受信するステップをさらに含む、請求項34に記載の方法。
  36. 前記一意の識別子が前記スレーブデバイスに明示的に提供されることはない、請求項34に記載の方法。
  37. 前記一意の識別子が、前記スレーブデバイスに対して事前設定されることはない、請求項34に記載の方法。
  38. 前記応答は、前記一意の識別子を暗黙的に示す、請求項34に記載の方法。
  39. 前記共有バスを介して1つまたは複数のブロードキャストを受信するステップと、
    前記1つまたは複数のブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて前記第1のインターフェースおよび/または前記第2のインターフェースを選択的にドライブまたは検知するステップとをさらに含む、請求項34に記載の方法。
  40. 前記ブロードキャストに基づくとともに、前記スレーブデバイスが現在の識別子を有するか否かに基づいて、前記共有バスとは別個の第3のインターフェースをドライブするステップと、
    第4のインターフェースを前記デフォルト状態からの状態の変更に関して検知するステップと、
    前記第4のインターフェースの状態に基づいて、前記応答を前記共有バスを介して送るべきであることを確認するステップとをさらに含む、請求項34に記載の方法。
  41. 共有バスと、
    前記共有バスに結合され、前記共有バスを介した通信を制御するように構成されたマスタデバイスと、
    前記共有バスに結合された複数の同一のスレーブデバイスであって、各スレーブデバイスが、前記共有バスとは別個の第1のインターフェースおよび第2のインターフェースを含み、各スレーブデバイスが、前記第1および/または第2のインターフェースを介して少なくとも1つの他のスレーブデバイスに結合される複数の同一のスレーブデバイスとを備え、
    前記マスタデバイスは、
    前記共有バスを介して第1のブロードキャストを送ること、
    スレーブデバイスが自己識別したことを示す応答を、応答しているスレーブデバイスから受信すること、
    前記応答しているスレーブデバイスを一意の識別子によって識別すること、
    前記複数のスレーブデバイスにおけるすべてのスレーブデバイスが自己識別するまで、前記共有バスを介してさらなるブロードキャストを送り続け、それぞれに異なるスレーブデバイスからさらなる応答を受信することを行うことによって、前記複数のスレーブデバイスの各々を一意に識別するように構成されるデバイス。
  42. 各スレーブデバイスは、前記第1のブロードキャストを受信したときに、
    前記第1のインターフェースをドライブして、別のスレーブデバイスの前記第2のインターフェースをそのデフォルト状態とは異なる状態にドライブさせることと、
    前記第2のインターフェースを検知して、そのデフォルト状態が隣接するスレーブデバイスによって変更されているかどうかを確認することとを行うようにさらに構成される、請求項41に記載のデバイス。
  43. 第2のインターフェースがドライブされない第1のスレーブデバイスのみが前記共有バスを介して応答を送る、請求項42に記載のデバイス。
  44. 各さらなるスレーブデバイスが、その第2のインターフェースがドライブされるか否かに応じて前記共有バス上のさらなるブロードキャストに応答して応答を送り、すでに識別されているスレーブデバイスは、その第1のインターフェースをドライブするかまたは浮動させる、請求項43に記載のデバイス。
JP2018514347A 2015-09-21 2016-08-26 共有バス上での複数の同一のデバイスの識別 Pending JP2018529170A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/860,609 US20170083468A1 (en) 2015-09-21 2015-09-21 Identifying multiple identical devices on a shared bus
US14/860,609 2015-09-21
PCT/US2016/049121 WO2017053012A1 (en) 2015-09-21 2016-08-26 Identifying multiple identical devices on a shared bus

Publications (1)

Publication Number Publication Date
JP2018529170A true JP2018529170A (ja) 2018-10-04

Family

ID=56894295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018514347A Pending JP2018529170A (ja) 2015-09-21 2016-08-26 共有バス上での複数の同一のデバイスの識別

Country Status (6)

Country Link
US (1) US20170083468A1 (ja)
EP (1) EP3353999A1 (ja)
JP (1) JP2018529170A (ja)
KR (1) KR20180056718A (ja)
CN (1) CN108028862A (ja)
WO (1) WO2017053012A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150234773A1 (en) * 2014-02-18 2015-08-20 Qualcomm Incorporated Technique to avoid metastability condition and avoid unintentional state changes of legacy i2c devices on a multi-mode bus
WO2017169756A1 (ja) * 2016-03-29 2017-10-05 ソニー株式会社 電子機器および駆動方法、並びにスレーブ素子
US10127908B1 (en) 2016-11-11 2018-11-13 Amazon Technologies, Inc. Connected accessory for a voice-controlled device
US10789948B1 (en) * 2017-03-29 2020-09-29 Amazon Technologies, Inc. Accessory for a voice controlled device for output of supplementary content
EP3635565B1 (en) * 2017-05-15 2023-10-11 Apex Industrial Technologies LLC Sequential node identification in multiple-compartment dispensing enclosures
US10366692B1 (en) 2017-05-15 2019-07-30 Amazon Technologies, Inc. Accessory for a voice-controlled device
WO2020029020A1 (en) * 2018-08-06 2020-02-13 Dialog Semiconductor (Uk) Limited Serial communication protocol
DE102020100425B3 (de) 2019-02-08 2020-06-04 Elmos Semiconductor Aktiengesellschaft Vorrichtung zur Autokonfiguration von automobilen Ultraschallsensoren an verschiedenen Datenbussen und entsprechendes Verfahren
CN113661688B (zh) 2019-02-08 2023-09-08 艾尔默斯半导体欧洲股份公司 用于连接测量变换器的电路
DE102019103223B4 (de) 2019-02-08 2022-03-24 Elmos Semiconductor Se Vorrichtung und Verfahren zur Signalisierung eines Datenbusausfalls durch eine Ultraschallmessvorrichtung
DE102019103222B3 (de) 2019-02-08 2020-06-25 Elmos Semiconductor Aktiengesellschaft Vorrichtung zur Autokonfiguration von automobilen Ultraschallsensoren an verschiedenen Datenbussen in verschiedenen Anwendungen und entsprechendes Verfahren
KR102210050B1 (ko) * 2019-03-25 2021-01-29 엘에스일렉트릭(주) RAPIEnet 프로토콜에서 국번 자동 할당 방법
CN110071914B (zh) * 2019-04-03 2022-07-01 广州视源电子科技股份有限公司 通讯方法、帧结构的构建方法、装置、mcu、系统及介质
CN112330845B (zh) * 2019-07-19 2023-01-24 珠海汇金科技股份有限公司 接入相同设备的处理方法、装置及设备
KR20210030154A (ko) * 2019-09-09 2021-03-17 엘지이노텍 주식회사 차량 내부 통신 시스템 및 이를 포함하는 차량
JP7415824B2 (ja) * 2020-06-30 2024-01-17 横河電機株式会社 拡張モジュール、cpuモジュール、システム、及び通信方法
US11316711B2 (en) * 2020-07-29 2022-04-26 Astec International Limited Systems, devices and methods for automatically addressing serially connected slave devices
CN111858437B (zh) * 2020-07-31 2022-06-28 上海海得控制系统股份有限公司 基于双总线的热插拔处理方法、装置、存储介质及电子设备
EP3958136A1 (en) * 2020-08-17 2022-02-23 Nokia Technologies Oy Dynamically reprogrammable topologically unique integrated circuit identification
US11699683B2 (en) * 2020-08-20 2023-07-11 Global Unichip Corporation Semiconductor device in 3D stack with communication interface and managing method thereof
CN112134772B (zh) 2020-09-09 2021-07-09 中国科学院地质与地球物理研究所 一种基于单线的传输数据方法及设备
US11495172B2 (en) * 2020-10-19 2022-11-08 X Display Company Technology Limited Pixel group and column token display architectures
US11488518B2 (en) 2020-10-19 2022-11-01 X Display Company Technology Limited Pixel group and column token display architectures
US11430375B1 (en) 2021-03-19 2022-08-30 X Display Company Technology Limited Pulse-density-modulation pixel control circuits and devices including them
GB2621616A (en) * 2022-08-17 2024-02-21 Eaton Intelligent Power Ltd Bus arrangement and method for operating a bus arrangement

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565470B2 (en) * 2007-12-04 2009-07-21 Holylite Microelectronics Corp. Serial bus device with address assignment by master device
CN101477506A (zh) * 2008-01-04 2009-07-08 鸿富锦精密工业(深圳)有限公司 主设备对从设备的定址系统及其方法
DE102008000570A1 (de) * 2008-03-07 2009-09-10 Robert Bosch Gmbh Ultraschallbasiertes Fahrerassistenzsystem
EP2287689B1 (de) * 2009-07-27 2012-11-14 Ziehl-Abegg AG Vorrichtung und Verfahren zur Adressierung einer Slave-Einheit
US8700747B2 (en) * 2011-04-19 2014-04-15 Schneider Electric It Corporation System and method for automatically addressing devices in a multi-drop network
CN104486180B (zh) * 2014-11-11 2019-03-12 惠州市亿能电子有限公司 一种bms自动分配从控单元id的方法

Also Published As

Publication number Publication date
WO2017053012A1 (en) 2017-03-30
KR20180056718A (ko) 2018-05-29
CN108028862A (zh) 2018-05-11
EP3353999A1 (en) 2018-08-01
US20170083468A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
JP2018529170A (ja) 共有バス上での複数の同一のデバイスの識別
US20190129878A1 (en) Bus address assignment
US10936524B2 (en) Bus system with slave devices
US8478917B2 (en) Automatic addressing protocol for a shared bus
CN101395429B (zh) 空调机及空调机的地址设定方法
JP2017205856A (ja) 無線信号強度による位置決めガイドシステム及びその方法
US20160328346A1 (en) Multi-master bus
US11190926B2 (en) Radio based smart device identification tool for commissioning
CN104516851A (zh) 一种rs485从设备地址分配的系统和方法
CN108399730A (zh) 红外信号接收器检测方法及装置
CN105573704A (zh) Led显示屏配屏方法
JP6629361B2 (ja) プログラマブルロジックコントローラ
CN111698739B (zh) 通信装置和通信系统
CN115203092A (zh) 一种单主多从的单线通信方法、装置及设备
JP6368663B2 (ja) 空気調和機システム、及びプログラム
CN114389910A (zh) 基于uwb实现的终端控制方法以及终端控制装置
TWI710282B (zh) 終端器、照明器具、資訊終端機、配對方法及記錄媒體
JP2007295774A (ja) 電力供給システム及びシステム電源
JPWO2018150868A1 (ja) 通信装置、通信方法、プログラム、および、通信システム
US11907155B2 (en) Bus system connecting slave devices with single-wire data access communication
CN107422702B (zh) 一种智能家电用户操作引导方法及电子设备
US20170187650A1 (en) Switch unit, ethernet network, and method for activating components in an ethernet network
JP2008286461A (ja) 空気調和機
JP2022537232A (ja) 分散通信システムおよび対応する制御方法
JP2005188883A (ja) 空気調和機及び空気調和機におけるアドレス設定方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180323