JP7146650B2 - 通信装置、通信方法、プログラム、および、通信システム - Google Patents

通信装置、通信方法、プログラム、および、通信システム Download PDF

Info

Publication number
JP7146650B2
JP7146650B2 JP2018568088A JP2018568088A JP7146650B2 JP 7146650 B2 JP7146650 B2 JP 7146650B2 JP 2018568088 A JP2018568088 A JP 2018568088A JP 2018568088 A JP2018568088 A JP 2018568088A JP 7146650 B2 JP7146650 B2 JP 7146650B2
Authority
JP
Japan
Prior art keywords
bus
signal line
communication
communication device
slave
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
JP2018568088A
Other languages
English (en)
Other versions
JPWO2018150868A1 (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.)
Sony Semiconductor Solutions Corp
Original Assignee
Sony Semiconductor Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Semiconductor Solutions Corp filed Critical Sony Semiconductor Solutions Corp
Publication of JPWO2018150868A1 publication Critical patent/JPWO2018150868A1/ja
Application granted granted Critical
Publication of JP7146650B2 publication Critical patent/JP7146650B2/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/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • 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
    • G06F13/4081Live connection to bus, e.g. hot-plugging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/004Error avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/378Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a parallel poll method
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • 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)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Small-Scale Networks (AREA)
  • Bus Control (AREA)

Description

本開示は、通信装置、通信方法、プログラム、および、通信システムに関し、特に、より確実に通信を行うことができるようにした通信装置、通信方法、プログラム、および、通信システムに関する。
従来、複数のデバイスが実装されたボード内でバスを介したデバイス間の通信に用いられるバスIF(Interface)として、例えば、I2C(Inter-Integrated Circuit)が多く利用されている。また、近年、I2Cの高速化を実現することが求められており、次世代の規格としてI3C(Improved Inter Integrated Circuit)の規定が策定され、その改定が進められている。
例えば、I2CおよびI3Cは、バスIFを介した通信の主導権を有するマスタによる制御に従って、バスIFに接続されているスレーブと通信を行うことができるように構成される。また、I3Cでは、I2Cのスレーブと通信を行うことができるように互換性を維持するための機能や、バスIFに途中からスレーブが参加することを可能とするホットジョインと称される機能などが提供される。
例えば、特許文献1には、ホスト・プロセッサとサブシステム・コントローラとを、I2Cにより相互接続するディジタル・データ処理システムが開示されている。また、特許文献2には、標準I2Cプロトコルの上部に層状に配置された通信プロトコルを実現する方法が開示されている。
特開2000-99448号公報 特開2002-175269号公報
ところで、I3Cにおいてホットジョインが行われるとき、ある特定の条件下において、新たに接続されたスレーブがバスIFに参加することができなくなるデッドロックが発生する可能性があった。そのため、新たに接続されたスレーブが、通信を正常に行うことができない状態となることが懸念される。
本開示は、このような状況に鑑みてなされたものであり、より確実に通信を行うことができるようにするものである。
本開示の一側面の通信装置は、少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行う送受信部と、前記バスに通信装置自身が追加的に接続されたことが、前記バスを介した通信の主導権を有する前記他の通信装置によって検出されないエラーの発生を回避する処理を行うエラー回避部とを備え、前記エラー回避部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号を前記送受信部により送信させる
本開示の一側面の通信方法またはプログラムは、少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行い、前記バスに通信装置自身が追加的に接続されたことが、前記バスを介した通信の主導権を有する前記他の通信装置によって検出されないエラーの発生を回避する処理を行うステップを含み、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号が送信される
本開示の一側面の通信システムは、バスを介した通信の主導権を有する第1の通信装置、および、前記第1の通信装置による制御に従って通信を行う第2の通信装置によって、前記バスを介して通信を行うことができるように構成される通信システムにおいて、前記第1の通信装置および前記第2の通信装置それぞれは、少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行う送受信部を備え、前記第2の通信装置が、前記バスに通信装置自身が追加的に接続されたことが、前記第1の通信装置によって検出されないエラーの発生を回避する処理を行うエラー回避部を備え、前記エラー回避部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号を前記送受信部により送信させる
本開示の一側面においては、少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信が行われ、バスに通信装置自身が追加的に接続されたことが、バスを介した通信の主導権を有する他の通信装置によって検出されないエラーの発生を回避する処理が行われる。そして、データ信号線およびクロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、データ信号線およびクロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることが検出されると、バスへの追加的な接続を要求する信号が送信される。
本開示の一側面によれば、より確実に通信を行うことができる。
バスIFおよびホットジョインについて説明する図である。 ホットジョイン要求の流れについて説明する図である。 本技術を適用したバスIFの第1の実施の形態の構成例を示すブロック図である。 ホットジョイン要求について説明する図である。 I3Cメインマスタが実行する処理を説明するフローチャートである。 I3Cスレーブがホットジョインを行う際に実行する処理を説明するフローチャートである。 本技術を適用したバスIFの第2の実施の形態の構成例を示すブロック図である。 HJ要求エラーの検出について説明する図である。 ホットジョイン要求に続いて伝送される信号の一例を示す図である。 本技術を適用したバスIFの第3の実施の形態の構成例を示すブロック図である。 I3Cメインマスタの実装例を示す図である。 I3Cスレーブの実装例を示す図である。 図11のI3Cメインマスタが実行する処理を説明するフローチャートである。 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<バスIFおよびホットジョインについて>
まず、図1を参照して、I3C規格に準じて構成されるバスIF、および、I3Cスレーブのホットジョインについて説明する。
図1に示すバスIF11は、I3Cメインマスタ12、I3Cセカンダリマスタ13-1および13-2、I3Cスレーブ14-1乃至14-3、並びに、I2Cスレーブ15-1および15-2が、データ信号線16-1およびクロック信号線16-2を介して接続されて構成される。そして、図1では、I3Cスレーブ14-3が、バスIF11にホットジョインされる例が示されている。
I3Cメインマスタ12は、バスIF11における通信の主導権を有するデバイスであり、データ信号線16-1およびクロック信号線16-2を介して、バスIF11に接続される他のデバイスと通信を行うことができる。
I3Cセカンダリマスタ13-1および13-2は、I3Cメインマスタ12に替わって、バスIF11における通信の主導権を有することができる機能を備えたデバイスであり、I3Cメインマスタ12による制御に従って通信が行われているときにはI3Cスレーブ14と同様の動作を行う。なお、以下適宜、I3Cセカンダリマスタ13-1および13-2を区別する必要がない場合、単に、I3Cセカンダリマスタ13と称する。
I3Cスレーブ14-1乃至14-3は、I3Cメインマスタ12による制御に従って通信を行うデバイスであり、データ信号線16-1およびクロック信号線16-2を介して、I3Cメインマスタ12と通信を行うことができる。なお、以下適宜、I3Cスレーブ14-1乃至14-3を区別する必要がない場合、単に、I3Cスレーブ14と称する。
I2Cスレーブ15-1および15-2は、I2C規格に準じて通信を行うことができるデバイスであり、I3CがI2Cと互換性を維持していることより、バスIF11においてI3Cメインマスタ12による制御に従って通信を行うことができる。なお、以下適宜、I2Cスレーブ15-1および15-2を区別する必要がない場合、単に、I2Cスレーブ15と称する。
データ信号線16-1は、シリアルデータSDAを伝送する信号線であり、クロック信号線16-2は、シリアルクロックSCLを伝送する信号線である。
このように、バスIF11は、I3C規格に準拠したI3Cセカンダリマスタ13およびI3Cスレーブ14だけでなく、I2C規格に準拠したI2Cスレーブ15が混在した構成であっても正常に稼働することができる。
また、I3Cでは、例えば、バスIF11に接続されている複数のデバイスのうち、使用されていないデバイスについては、電源をオフ状態とすることによって、バスIF11全体としての低消費電力化を図ることができる。
例えば、図1の上側に示すように、電源がオフ状態とされているI3Cスレーブ14-3の使用を開始するとき、I3Cスレーブ14-3以外のデバイスによって稼働している状態のバスIF11に対して、I3Cスレーブ14-3がホットジョインされる。即ち、図1の下側に示すように、I3Cスレーブ14-3の電源がオン状態に切り替えられた後、後述するようなホットジョイン要求が行われることで、I3Cスレーブ14-3が、バスIF11に参加することができる。
なお、このようにI3Cスレーブ14-3の電源をオン/オフさせる他、稼働している状態のバスIF11に対して、電源がオン状態のI3Cスレーブ14-3を物理的に接続することによっても、I3Cスレーブ14-3をホットジョインさせることができる。また、I3Cメインマスタ12とI3Cスレーブ14およびI2Cスレーブ15とによって稼働しているバスIF11に、追加的にI3Cスレーブ14がホットジョインされる他、例えば、1台のI3Cメインマスタ12だけによって稼働しているバスIF11に、新たに1台のI3Cスレーブ14がホットジョインされることもある。
次に、図2を参照して、図1のバスIF11におけるホットジョイン要求の流れについて説明する。
バスIF11では、ホットジョインに対応したI3Cスレーブ14が、バスIF11がアイドル状態であることを認識したときにデータ信号線16-1の電位をHレベルからLレベルに切り替えることによって、ホットジョイン要求を行うと規定することができる。また、I3Cスレーブ14は、バスアイドルカウンタによって、データ信号線16-1およびクロック信号線16-2がHレベルである状態が所定期間よりも長く継続されていることを検出することで、バスIF11がアイドル状態であることを認識することができる。
ここで、図2には、バスIF11での通信の終了を宣言するストップコンディション(STOP)の検出が、バスアイドルカウンタがカウントを開始するカウント起点の条件として設定されているときにおけるホットジョイン要求の一例が示されている。
図2のAに示すように、バスIF11の通信が行われている最中のタイミングt1において、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されると、そのI3Cスレーブ14は、ストップコンディションが検出されるのを待機する状態となる。そして、バスIF11に接続されたI3Cスレーブ14は、ストップコンディションの検出に応じてバスアイドルカウンタを起動してカウントを開始する。
その後、I3Cスレーブ14は、データ信号線16-1およびクロック信号線16-2の電位がHレベルである状態が所定期間より長く、例えば、1msよりも長く継続することを検出したときに、バスIF11がアイドル状態であると認識することができる。従って、ホットジョインに対応したI3Cスレーブ14は、バスIF11がアイドル状態であると認識した後のタイミングt2において、データ信号線16-1の電位をHレベルからLレベルに切り替えることによって、ホットジョイン要求を行うことができる。
一方、I3Cメインマスタ12は、ホットジョイン要求(または、割り込みの要求)があったことを認識すると、クロック信号線16-2を介してシリアルクロックSCLの送信を開始し、その後の通信処理を行うことができる。
このように、バスIF11で通信が行われているときにI3Cスレーブ14が接続されると、そのI3Cスレーブ14は、ストップコンディションを検出した後にバスIF11がアイドル状態であることを認識し、問題なくホットジョイン要求を行うことができる。
ところが、図2のBに示すように、バスIF11の通信が行われていないタイミングt1において、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続された場合、I3Cメインマスタ12と他のデバイスとの間で通信が完了しているため、ストップコンディションが発行されることがない。この場合、バスIF11に接続されたI3Cスレーブ14は、ストップコンディションが検出されるのを待機し続けるデッドロックとなってしまう。従って、バスIF11に接続されたにも関わらず、I3Cスレーブ14は、ホットジョイン要求を行うことができなくなる結果、バスIF11に参加することができない状態となってしまう。
このように、ストップコンディションの検出が、バスアイドルカウンタのカウント起点の条件として設定されている場合、バスIF11に接続されたI3Cスレーブ14がデッドロックしてしまうことが懸念される。そのため、このような状態となることを回避し、ホットジョインに対応したI3Cスレーブ14がバスIF11に確実に参加し、その後の通信を正常に行うことができるようにする必要がある。
<バスIFの第1の構成例>
図3は、本技術を適用したバスIF11の第1の実施の形態の構成例を示すブロック図である。
図3に示すバスIF11は、I3Cメインマスタ12、I3Cスレーブ14-1および14-2、並びに、I2Cスレーブ15が、データ信号線16-1およびクロック信号線16-2を介して接続されて構成される。
I3Cメインマスタ12は、送受信部21およびエラー回避通信処理部22を備えて構成される。
送受信部21は、データ信号線16-1およびクロック信号線16-2を介して、I3Cスレーブ14およびI2Cスレーブ15と信号の送受信を行う。例えば、送受信部21は、クロック信号線16-2を駆動することにより送信するシリアルクロックSCLのタイミングに合わせて、データ信号線16-1に対する駆動を行う(電位をHレベルまたはLレベルに切り替える)ことにより、I3Cスレーブ14またはI2Cスレーブ15に信号を送信する。また、送受信部21は、クロック信号線16-2のシリアルクロックSCLのタイミングに合わせて、I3Cスレーブ14またはI2Cスレーブ15がデータ信号線16-1に対する駆動を行うことによって、I3Cスレーブ14またはI2Cスレーブ15から送信されてくる信号を受信する。なお、クロック信号線16-2に対する駆動は、常に、マスタ12側により行われる。
エラー回避通信処理部22は、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性がある場合、送受信部21に対して、I2Cスレーブ15と通信を行う際の通信速度の下限を規定する。これにより、エラー回避通信処理部22は、後述する図4を参照して説明するように、I3Cメインマスタ12およびI2Cスレーブ15の通信中に意図しないホットジョイン要求が行われることに起因した通信エラーが発生することを防止することができる。例えば、上述したように、I3Cスレーブ14がホットジョインする際に、バスIF11がアイドル状態であると認識するのに1msを要する場合、エラー回避通信処理部22は、I2Cスレーブ15の通信速度の下限を、例えば、1kHz(H幅=0.5mS)に制限する。つまり、I2Cスレーブ15が通信に用いるシリアルクロックSCLの周波数に応じてクロック信号線16-2の電位がHレベルである時間が、I3Cスレーブ14がバスIF11のアイドル状態を認識するのに要する時間より短くなるように制限される。
I3Cスレーブ14は、送受信部31およびエラー回避接続処理部32を備えて構成される。
送受信部31は、データ信号線16-1およびクロック信号線16-2を介して、I3Cメインマスタ12と信号の送受信を行う。例えば、送受信部31は、クロック信号線16-2のシリアルクロックSCLのタイミングに合わせて、I3Cメインマスタ12がデータ信号線16-1に対する駆動を行うことによって、I3Cメインマスタ12から送信されてくる信号を受信する。また、送受信部31は、クロック信号線16-2のシリアルクロックSCLのタイミングに合わせて、データ信号線16-1に対する駆動を行うことによって、I3Cメインマスタ12に信号を送信する。
エラー回避接続処理部32は、上述の図2を参照して説明したようなデッドロックの発生を回避して、I3Cスレーブ14がホットジョインを確実に行うことができるようにするための接続処理を行う。例えば、エラー回避接続処理部32には、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることの検出が、バスアイドルカウンタのカウント起点の条件として設定されている。
従って、エラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2の電位を監視し、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したタイミングでバスアイドルカウンタを起動する。そして、エラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することを検出したときに、バスIF11がアイドル状態であると認識して、ホットジョイン要求を行う。
I2Cスレーブ15は、送受信部41を備えて構成され、送受信部41は、データ信号線16-1およびクロック信号線16-2を介して、I3Cメインマスタ12と信号の送受信を行う。例えば、I2Cでは、I3Cにおける通信よりも低速のシリアルクロックSCLを用いて通信を行うように規定されており、I2Cスレーブ15は、I3Cスレーブ14よりも低速で通信を行う。
図4を参照して、図3のバスIF11におけるホットジョイン要求について説明する。
図3を参照して上述したように、I3Cスレーブ14のエラー回避接続処理部32では、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることの検出が、バスアイドルカウンタのカウント起点の条件として設定されている。また、I3Cでは、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することを検出したときに、バスIF11がアイドル状態であると認識して、ホットジョイン要求を行うように規定されている。
例えば、I3Cメインマスタ12がI3Cスレーブ14と通信を行っているときには、データ信号線16-1およびクロック信号線16-2がHレベルである状態は1ms未満となっている。そのため、I3Cメインマスタ12が他のI3Cスレーブ14と通信を行っているときに、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されても、バスIF11がアイドル状態ではないため、ホットジョイン要求は行われない。従って、この場合、I3Cメインマスタ12が他のI3Cスレーブ14との通信を終了したタイミングで、バスIF11に接続されたI3Cスレーブ14は、データ信号線16-1およびクロック信号線16-2の電位がHレベルとなったことを検出し、バスアイドルカウンタを起動することができる。
そして、図4のAに示すように、バスIF11の通信が行われていないタイミングt1で、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されたとする。この場合、I3Cスレーブ14のエラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出して、バスアイドルカウンタを起動する。そして、エラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することを検出すると、バスIF11がアイドル状態であると認識することができる。従って、エラー回避接続処理部32は、バスIF11がアイドル状態であると認識した後のタイミングt2において、データ信号線16-1の電位をHレベルからLレベルに切り替えることによって、ホットジョイン要求を行うことができる。
このように、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることの検出を、バスアイドルカウンタのカウント起点の条件として設定することで、図2を参照して上述したようなデッドロックの発生を回避することができる。
即ち、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されるタイミングが、バスIF11において通信が行われているか否かに関わらず、I3Cスレーブ14は、デッドロックとなることを回避して確実に、ホットジョインを行うことができる。従って、バスIF11では、I3Cスレーブ14がバスIF11に確実に参加して、その後の通信を正常に行うことができる。
ところで、I2Cでは、I3Cでの通信よりも低速のシリアルクロックSCLで通信が行われるため、例えば、0.1kHz(=10ms)などの非常に低速で通信が行われることもある。従って、I3Cメインマスタ12がI2Cスレーブ15と通信を行っているときに、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することがある。
例えば、図4のBに示すように、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されるタイミングt1によっては、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することがある。そのため、バスIF11に接続されたI3Cスレーブ14が、バスIF11はアイドル状態であると誤認識したタイミングt2において、ホットジョイン要求を行ってしまうことがある。しかしながら、タイミングt2においてI3Cメインマスタ12およびI2Cスレーブ15が通信中であるため、そのような意図しないホットジョイン要求に起因して通信エラーが発生してしまうことが想定される。
そこで、I3Cメインマスタ12のエラー回避通信処理部22は、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性がある場合、I2Cスレーブ15と通信を行う際の通信速度の下限を、例えば、1kHz(H幅=0.5mS)に制限する。これにより、I3Cメインマスタ12がI2Cスレーブ15と通信を行っているときに、データ信号線16-1およびクロック信号線16-2がHレベルである状態が1msよりも長く継続することを回避することができる。
従って、I3Cメインマスタ12およびI2Cスレーブ15の通信中に意図しないホットジョイン要求が行われることがなく、上述したような通信エラーが発生することは回避される。
なお、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性がなければ、I2Cスレーブ15と通信を行う際の通信速度の下限を制限する必要はない。そこで、I3Cメインマスタ12のファームウェアには、バスIF11のシステム設計者が設計を行う際に知っている必要がある設定情報(要件)として、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを示す情報が予め書き込まれている。その他、I3Cメインマスタ12のファームウェアには、バスIF11に接続されるI3Cの規格に準拠したデバイスの個数や、それらのデバイスのスタティックアドレス、バスIF11に接続されているI2Cスレーブ15に関する情報などが、設定情報として書き込まれている。
このように、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを示す情報をI3Cメインマスタ12のファームウェアに書き込むのは、I3Cメインマスタ12が、その情報を事前に認識することができないためである。例えば、仮に、バスIF11に接続されるI3Cスレーブ14の内部のレジスタに、そのI3Cスレーブ14がホットジョインに対応していることを示すフラグが設定されていたとする。しかしながら、I3Cメインマスタ12は、そのI3Cスレーブ14の電源がオン状態となる前に、バスIF11を介してレジスタの内容を読み出すことができない。即ち、I3Cメインマスタ12は、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続されるかどうかを、ホットジョインが行われる前に認識することはできない。
従って、上述したように、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを示す情報をI3Cメインマスタ12のファームウェアに予め書き込む必要がある。なお、このようにファームウェアに書き込む他、例えば、I3Cメインマスタ12に設けられる外部接続端子を利用してピンを設定することで、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを認識させることができる。
<I3CメインマスタおよびI3Cスレーブによる処理>
図5に示すフローチャートを参照して、I3Cメインマスタ12が実行する処理について説明する。
例えば、I3Cメインマスタ12に電源が投入されると処理が開始され、ステップS11において、エラー回避通信処理部22は、I3Cメインマスタ12のファームウェアに書き込まれている設定情報を読み出す。
ステップS12において、エラー回避通信処理部22は、ステップS11で読み出した設定情報に基づいて、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを判定する。
ステップS12において、エラー回避通信処理部22が、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があると判定した場合、処理はステップS13に進む。一方、その可能性がないと判定された場合には、ステップS13の処理はスキップされる。
ステップS13において、エラー回避通信処理部22は、送受信部21に対して、I2Cスレーブ15と通信を行う際の通信速度の下限を規定する。これに従い、送受信部21は、I2Cスレーブ15との通信速度の下限を、例えば、1kHz(H幅=0.5mS)程度に制限する。
その後、ステップS14において、I3Cメインマスタ12は通常の通信処理を実行し、送受信部21は、I3Cスレーブ14またはI2Cスレーブ15と信号の送受信を行う。
ステップS15において、送受信部21は、ホットジョインに対応したI3Cスレーブ14によるホットジョイン要求が検出されたか否かを判定する。例えば、バスIF11がアイドル状態であるときに、データ信号線16-1の電位がHレベルからLレベルに切り替えられた場合、送受信部21は、ホットジョイン要求が検出されたと判定する。
ステップS15において、送受信部21が、ホットジョインに対応したI3Cスレーブ14によるホットジョイン要求が検出されていないと判定した場合、処理はステップS14に戻り、以下同様に、通常の通信処理が継続して行われる。
一方、ステップS15において、送受信部21が、ホットジョインに対応したI3Cスレーブ14によるホットジョイン要求が検出されたと判定した場合、処理はステップS16に進む。
ステップS16において、送受信部21は、ホットジョインを要求したI3Cスレーブ14との間で、バスIF11への参加に必要となる各種の処理を行う。その後、処理はステップS14に戻り、以下同様に、通常の通信処理が継続して行われる。
以上のように、I3Cメインマスタ12は、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性がある場合には、I2Cスレーブ15との通信速度の下限を制限することができる。これにより、I3Cメインマスタ12は、I2Cスレーブ15の通信中に意図しないホットジョイン要求が行われることを回避して、そのようなホットジョイン要求に起因した通信エラーの発生を防止することができる。従って、I3Cメインマスタ12は、バスIF11における通信を、より確実に行うことができる。
図6に示すフローチャートを参照して、I3Cスレーブ14がホットジョインを行う際に実行する処理について説明する。
例えば、バスIF11に接続されたI3Cスレーブ14に電源が投入されると処理が開始され、ステップS21において、エラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2の電位を監視する。
ステップS22において、エラー回避接続処理部32は、ステップS21における電位の監視結果に基づいて、バスアイドルカウンタのカウント起点の条件が検出されたか否かを判定する。例えば、エラー回避接続処理部32は、上述の図3を参照して説明したように、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したとき、バスアイドルカウンタのカウント起点の条件が検出されたと判定する。
ステップS22において、エラー回避接続処理部32が、バスアイドルカウンタのカウント起点の条件が検出されていないと判定した場合、処理はステップS21に戻り、データ信号線16-1およびクロック信号線16-2の電位の監視が継続して行われる。
一方、ステップS22において、エラー回避接続処理部32が、バスアイドルカウンタのカウント起点の条件が検出されたと判定した場合、エラー回避接続処理部32はバスアイドルカウンタを起動してカウントを開始させて、処理はステップS23に進む。
ステップS23において、エラー回避接続処理部32は、バスIF11がアイドル状態であることが確認されたか否かを判定する。例えば、バスアイドルカウンタは、データ信号線16-1およびクロック信号線16-2がHレベルである状態を維持している間だけカウントを継続する。従って、エラー回避接続処理部32は、バスアイドルカウンタによるカウントが1msを超えたとき、バスIF11がアイドル状態であると確認することができる。
ステップS23において、エラー回避接続処理部32が、バスIF11がアイドル状態であることが確認されていないと判定した場合、処理はステップS21に戻る。例えば、バスアイドルカウンタによるカウントが1ms未満のうちにデータ信号線16-1またはクロック信号線16-2の電位がLレベルになった場合、バスIF11がアイドル状態であることが確認されていないと判定される。つまり、この場合、バスIF11はアイドル状態ではないため、ホットジョイン要求が行われず、処理はステップS21に戻って、データ信号線16-1およびクロック信号線16-2の電位の監視が継続して行われる。
一方、ステップS23において、エラー回避接続処理部32が、バスIF11がアイドル状態であることが確認されたと判定した場合、処理はステップS24に進み、エラー回避接続処理部32は、送受信部31に対してホットジョイン要求を行うように指示する。これに応じ、送受信部31は、データ信号線16-1の電位をHレベルからLレベルに切り替えることにより、ホットジョイン要求を行う。
ステップS24の処理後、I3Cスレーブ14がホットジョインを行う際に実行する処理は終了される。その後、例えば、上述した図5のステップS16において、I3Cメインマスタ12との間で、バスIF11への参加に必要となる各種の処理が行われ、I3Cスレーブ14は、バスIF11に参加することができる。
以上のように、I3Cスレーブ14は、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることの検出を、バスアイドルカウンタのカウント起点の条件として、バスIF11がアイドル状態であるか否かを確認することができる。これにより、バスIF11に接続されたI3Cスレーブ14が、バスIF11がアイドル状態であるか否かの確認を開始することができずに、バスIF11に参加することができなくなることを回避することができる。従って、バスIF11に接続されたI3Cスレーブ14は、ホットジョイン要求を確実に行うことができ、バスIF11に参加して通信を行うことができる。
<バスIFの第2の構成例>
図7は、本技術を適用したバスIF11の第2の実施の形態の構成例を示すブロック図である。
図7に示すバスIF11Aは、I3Cメインマスタ12A、および、I3Cスレーブ14-1乃至14-3が、データ信号線16-1およびクロック信号線16-2を介して接続されて構成されている。なお、バスIF11Aにおいて、図3のバスIF11と共通する構成については、同一の符号を付し、その詳細な説明は省略する。
即ち、バスIF11Aは、I2Cスレーブ15の共存が禁止されており、I2Cスレーブ15が接続されない構成となっている点で、図3を参照して説明したバスIF11と異なる構成となっている。
上述したように、図3のバスIF11では、I2Cスレーブ15の共存が許可されていることより、I3Cメインマスタ12およびI2Cスレーブ15の通信中に意図しないホットジョイン要求が行われることがあり、これによって通信エラーが発生することがあった。そのため、図3のバスIF11では、I3Cメインマスタ12がI2Cスレーブ15と通信を行う際の通信速度の下限を制限して、通信エラーの発生を回避する必要があった。
これに対し、バスIF11Aでは、I2Cスレーブ15が接続されない構成となっているため、意図しないホットジョイン要求が行われることもない。従って、I3Cメインマスタ12Aは、送受信部21を備えるだけでよく、図3のエラー回避通信処理部22を備える必要がない構成となっている。
また、バスIF11AのI3Cスレーブ14は、図3のバスIF11のI3Cスレーブ14と同様に、送受信部31およびエラー回避接続処理部32を備えて構成され、デッドロックが発生することなくホットジョインを行うことができる。即ち、I3Cスレーブ14のエラー回避接続処理部32は、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したとき、バスアイドルカウンタのカウントを開始させ、バスIF11がアイドル状態であるか否かを確認する。つまり、I3Cスレーブ14は、上述の図5に示したフローチャートと同様の処理を行うことができる。
以上のように、バスIF11Aは、I2Cスレーブ15の共存が禁止された構成とすることで、意図しないホットジョイン要求に起因した通信エラーが発生することがなく、バスIF11Aに接続されるI3Cスレーブ14は、ホットジョインを確実に行うことができる。従って、バスIF11Aでは、ホットジョインされたI3Cスレーブ14は確実に通信を行うことができる。
ところで、I2Cスレーブ15の共存が禁止されているにも拘らず、バスIF11Aに対してI2Cスレーブ15が接続されてしまうことについて対策する必要がある。
例えば、I3Cメインマスタ12Aが、禁止事項に反して接続されているI2Cスレーブ15と通信を行っているときに、I3Cスレーブ14がホットジョイン要求を行うことによって通信エラー(以下適宜、HJ要求エラーと称する)が発生する。但し、伝播遅延が発生するのに伴って、I3Cメインマスタ12AがHJ要求エラーを検出することができないこともある。
図8を参照して、I3Cメインマスタ12AがI2Cスレーブ15と0.1kHz(=10ms)の通信速度で通信を行っているときに、HJ要求エラーが発生したときの信号について説明する。
図8のAには、I3Cメインマスタ12Aが、HJ要求エラーを検出することができる場合における信号の波形が示されており、図8のBには、I3Cメインマスタ12Aが、HJ要求エラーを検出することができない場合における信号の波形が示されている。また、図8のAおよび図8のBの上側には、I3Cメインマスタ12Aの出力端でのシリアルクロックSCLm、および、I3Cメインマスタ12Aの出力端でのシリアルデータSDAmが示されている。同様に、図8のAおよび図8のBの下側には、I3Cスレーブ14の出力端でのシリアルクロックSCLs、および、I3Cスレーブ14の出力端でのシリアルデータSDAsが示されている。
図8のAに示すように、I3Cメインマスタ12AがシリアルクロックSCLmをHレベルからLレベルに駆動したとき、伝播遅延に応じて遅延した後、シリアルクロックSCLsが、HレベルからLレベルに切り替えられる。その後、シリアルクロックSCLsおよびシリアルデータSDAsがHレベルであるときに、ホットジョインに対応したI3Cスレーブ14がバスIF11Aに接続されると、そのI3Cスレーブ14は、バスアイドルカウンタを起動する。そして、シリアルクロックSCLsおよびシリアルデータSDAsがHレベルを維持したまま1msが経過すると、I3Cスレーブ14は、シリアルクロックSCLsをHレベルからLレベルに駆動してホットジョイン要求を行う。
このとき、図8のAに示すように、伝播遅延に応じてシリアルクロックSCLmがHレベルからLレベルに切り替えられるまでのタイミングが、I3Cメインマスタ12AがシリアルクロックSCLmをHレベルからLレベルに駆動するタイミングよりも早ければ、I3Cメインマスタ12Aは、HJ要求エラーを検出することができる。従って、この場合、I3Cメインマスタ12Aは、I2Cスレーブ15との通信で使用する通信速度に従ってシリアルクロックSCLmをHレベルからLレベルに駆動するよりも前に、I2Cスレーブ15との通信で使用する通信速度のシリアルクロックSCLの送信を停止する。そして、I3Cメインマスタ12Aは、I3Cスレーブ14との通信で使用する通信速度のシリアルクロックSCLの送信に切り替えて、I3Cスレーブ14と通信を行うことができる。
一方、図8のBに示すように、伝播遅延に応じてシリアルクロックSCLmがHレベルからLレベルに切り替えられるまでのタイミングが、I3Cメインマスタ12AがシリアルクロックSCLmをHレベルからLレベルに駆動するタイミングよりも遅ければ、I3Cメインマスタ12Aは、HJ要求エラーを検出することができない。つまり、図8のBにおいて白抜きの矢印で示すように、ホットジョイン要求を行ってから、I3Cメインマスタ12Aの駆動に従ってシリアルクロックSCLsがHレベルからLレベルに切り替えられるまでの間隔が短い場合、HJ要求エラーを検出することは困難である。従って、この場合、I3Cメインマスタ12Aは、I3Cスレーブ14と通信を行うことはできない。
このようにHJ要求エラーが発生する事態に対して、I3Cメインマスタ12AまたはI2Cスレーブ15は、次に示すような第1乃至第4の対策を行うことができる。
第1の対策では、I3Cメインマスタ12Aは、HJ要求エラーを検出することができた場合、ホットジョインを要求してきたI3Cスレーブ14を優先して、I2Cスレーブ15との通信を中断する。そして、I3Cメインマスタ12Aは、I3Cの通信で使用する通信速度のシリアルクロックSCLを送信して、I3Cスレーブ14がバスIF11Aに参加するのに必要な処理を行う。その後、I3Cメインマスタ12Aは、中断する前と同じ通信速度でI2Cスレーブ15との通信を再開する。なお、第1の対策では、I3Cメインマスタ12Aが、再度、HJ要求エラーを検出する可能性がある。このため、I3Cメインマスタ12Aは、HJ要求エラーを検出するたびに、同様の処理を行う必要がある。
第2の対策では、I3Cメインマスタ12Aは、HJ要求エラーを検出することができた場合、ホットジョインを要求してきたI3Cスレーブ14を優先して、I2Cスレーブ15との通信を中断する。そして、I3Cメインマスタ12Aは、I3Cの通信で使用する通信速度のシリアルクロックSCLを送信して、I3Cスレーブ14がバスIF11Aに参加するのに必要な処理を行う。その後、I3Cメインマスタ12Aは、HJ要求エラーが発生しない程度に、通信を中断する前よりも通信速度を上げて、例えば、シリアルクロックSCLを0.1kHz以上にして、I2Cスレーブ15との通信を再開する。
第3の対策では、I3Cメインマスタ12Aは、HJ要求エラーを検出することができた場合、ホットジョインを要求してきたI3Cスレーブ14を優先して、I2Cスレーブ15との通信を中断する。そして、I3Cメインマスタ12Aは、ホットジョインに対応しているI3Cスレーブ14が以降、ホットジョインを要求しないように指示するコモンコマンドコード(DISEC CCC)を一斉に送信する。これにより、バスIF11Aに接続されている各I3Cスレーブ14では、ホットジョイン要求が無効(Hot-Join Event bitがdisable)に設定される。その後、I3Cメインマスタ12Aは、中断したI2Cスレーブ15との通信を再開する。
第4の対策では、I3Cメインマスタ12Aは、HJ要求エラーを検出することができなかった場合、I2Cスレーブ15との通信を継続して行うことになる。このため、I3Cスレーブ14が、I3Cメインマスタ12AにおいてHJ要求エラーを検出することができなかったことを認識して、再度、ホットジョイン要求を行うことができるようにする必要がある。
ここで、図9に示すホットジョイン要求に続いて伝送される信号を参照して、第4の対策について説明する。
例えば、I3Cスレーブ14は、ホットジョイン要求(S)を送信するのに続いて、ホットジョイン予約アドレス(0x02)を送信する。なお、ホットジョイン要求、即ち、シリアルデータSDAをHレベルからLレベルに切り替える駆動は、スタートコンディション(START)の発行と同様に駆動される。
一方、I3Cでは、ホットジョイン要求(S)を受信し、続いてホットジョイン予約アドレス(0x02)を受信したI3Cメインマスタ12Aは、以下の3つの動作のうちの1つを選択して行うように規定されている。
第1の動作として、I3Cメインマスタ12Aは、信号の受信を正常に行うことができなかったことを示すNACK(Negative Acknowledgement)を送信する。そして、NACKを受信したI3Cスレーブ14は、ホットジョイン要求をリトライすることができる。
第2の動作として、I3Cメインマスタ12Aは、一旦、信号の受信を正常に行うことができたことを示すACK(Acknowledgement)を送信し、続いて、ホットジョインを要求しないように指示するコモンコマンドコード(DISEC CCC)を送信する。これにより、上述した第3の対策と同様に、I3Cスレーブ14では、ホットジョイン要求が無効(Hot-Join Event bitがdisable)に設定される。
第3の動作として、I3Cメインマスタ12Aは、ACKを送信した後、図9に示すように、ダイナミックデバイス割り当てを入力するENTDAA(Enter Dynamic Device Assignment)を送信して、アドレスをアサインする。
このように、I3C では、ホットジョイン要求に対して、I3Cメインマスタ12Aが、第1乃至第3の動作を行うことが定義されている。従って、I3Cスレーブ14は、これら以外の動作が行われたことを検出した場合、ホットジョイン要求に対して定義されている動作とは異なる動作が行われたことによるエラー(以下、HJフォーマットエラーと称する)を認識することができる。
ここで、I3Cメインマスタ12AがHJ要求エラーを検出することができなかった場合、I3Cメインマスタ12Aは、I2Cスレーブ15との通信を継続して行うことになる。一方、ホットジョインを要求したI3Cスレーブ14は、ホットジョイン予約アドレス(0x02)などの送信を行って、その後の通信を続けようとする。このように、I3Cメインマスタ12AがI2Cスレーブ15との通信を継続して行う場合、ホットジョインを要求したI3Cスレーブ14は、上述した第1乃至第3の動作がいずれも行われないのに基づいて、HJフォーマットエラーを検出することができる。
従って、第4の対策では、I3Cスレーブ14が、HJフォーマットエラーを検出した後、ホットジョイン要求を行う処理を一旦停止し、十分な時間が経過した後に、再度、ホットジョイン要求を行う。これにより、I3Cスレーブ14がデッドロックすることを回避することができる。
なお、第4の対策における他の方法として、I3Cスレーブ14がモニタリングエラー(既存のS6エラー)を用いる方法を採用してもよい。モニタリングエラーとは、原則として、I3Cスレーブ14が自ら送信した値と、バスIF11A上に送信したデータとが不一致であることを示すエラーである。
例えば、I3Cスレーブ14がホットジョイン要求を送信する一方、I3Cメインマスタ12AがI2Cスレーブ15に信号を送信する場合、バスIF11A上で信号が衝突することによって、どちらの信号にもモニタリングエラーが検出される。従って、I3Cスレーブ14は、モニタリングエラーを検出した後、ホットジョイン要求を行う処理を一旦停止し、十分な時間が経過した後に、再度、ホットジョイン要求を行う。これにより、I3Cスレーブ14がデッドロックすることを回避することができる。
以上のように、I2Cスレーブ15の共存が禁止されたバスIF11Aでは、上述したような第1乃至第4の対策を行うように規定する。これにより、禁止事項に反してバスIF11AにI2Cスレーブ15が接続され、HJ要求エラーが発生したとしても、I3Cメインマスタ12Aは、バスIF11Aに接続されたI3Cスレーブ14によるホットジョイン要求に対応することができる。従って、ホットジョインを要求するI3Cスレーブ14がバスIF11Aに確実に参加することができ、その後の通信を正常に行うことができる。
<バスIFの第3の構成例>
図10は、本技術を適用したバスIF11の第3の実施の形態の構成例を示すブロック図である。
図10に示すバスIF11Bは、I3Cメインマスタ12B、I3Cスレーブ14B-1および14B-2、並びに、I2Cスレーブ15が、データ信号線16-1およびクロック信号線16-2を介して接続されて構成される。なお、バスIF11Bにおいて、図3のバスIF11と共通する構成については、同一の符号を付し、その詳細な説明は省略する。
即ち、バスIF11Bでは、I3Cメインマスタ12Bが、図3のエラー回避通信処理部22とは異なる処理を行うエラー回避通信処理部22Bを備えて構成されるとともに、I3Cスレーブ14Bが、図3のエラー回避接続処理部32を備えずに構成される点で、図3のバスIF11と異なる構成となっている。
また、I3Cスレーブ14Bでは、図2を参照して説明したのと同様に、ストップコンディションを検出することが、バスアイドルカウンタがカウントを開始するカウント起点の条件として設定されている。
そして、I3Cメインマスタ12Bのエラー回避通信処理部22Bは、I3Cスレーブ14Bのデッドロックを回避するために、送受信部21に対して、ストップコンディションを含む任意のポーリング信号を定期的に発行するように指示する処理を行う。この指示に従って、送受信部21は、例えば、バスIF11Bのシステム全体に対する制御に悪影響を与えることのないポーリング信号を、定期的(例えば、10msごと)に送信するポーリングを行う。
例えば、ポーリング信号として、デバイスの状態の取得を指示するコモンコマンドコードであるゲットステータス(GETSTATUS)を使用することができる。その他、48ビットのPID(Provisional ID)と称される情報(例えば、デバイスの製造メーカ名などが記述された固定値)の取得を指示するゲットPID(GETPID)や、デバイスのBCR(Bus Characteristics Register)の取得を指示するゲットBCR(GETBCR)などを使用してもよい。
従って、上述の図2のBを参照して説明したように、バスIF11Bの通信が行われていないタイミングにおいてI3Cスレーブ14が接続されたとしても、ポーリング信号が定期的に送信されることによって、I3Cスレーブ14Bがデッドロックすることは回避される。即ち、バスIF11Bに接続されたI3Cスレーブ14Bは、ポーリング信号に含まれているストップコンディションを検出することで、バスアイドルカウンタを起動することができ、その後、バスIF11Bがアイドル状態であるか否かを判定することができる。
以上のように、バスIF11Bでは、I3Cメインマスタ12Bが、ストップコンディションを含む任意のポーリング信号を定期的に発行することによって、バスIF11Bに接続されたI3Cスレーブ14Bは、ホットジョイン要求を確実に行うことができる。これにより、ホットジョインに対応したI3Cスレーブ14Bは、バスIF11に参加して確実に通信を行うことができる。
<I3CメインマスタおよびI3Cスレーブの実装例>
図11は、I3Cメインマスタ12の実装例を示すブロック図である。
図11に示すように、I3Cメインマスタ12は、第1のバスアイドルカウンタ51、第2のバスアイドルカウンタ52、選択部53、FSM(Finite State Machine)54、レジスタ55、速度判定部56、および定期送信用タイマ57を備えて構成される。なお、レジスタ55および速度判定部56は、ハードウエアとして実装する必要はない。
ここで、図11に示すI3Cメインマスタ12は、図1のI3Cセカンダリマスタ13と同様に、ホットジョインに対応したI3Cスレーブ14としても動作することができるように構成されている。従って、図11に示されている第1のバスアイドルカウンタ51、第2のバスアイドルカウンタ52、および選択部53は、ホットジョインに対応したI3Cスレーブ14として動作する場合にのみ駆動する。このことより、第1のバスアイドルカウンタ51、第2のバスアイドルカウンタ52、および選択部53については、図12に示すI3Cスレーブ14を参照して後述する。
FSM54には、シリアルデータSDAを伝送するデータ信号線16-1、および、シリアルクロックSCLを伝送するクロック信号線16-2が接続されている。例えば、FSM54は、後述する図12に示すI3Cスレーブ14のFSM54との間で、データ信号線16-1およびクロック信号線16-2を駆動することによる信号の送信および受信を行う。
レジスタ55には、FSM54が通信を行う際に用いる各種の情報が記録されており、例えば、図4を参照して上述したようなI2Cスレーブ15と通信を行う際の通信速度の下限を指示する速度指示値が記録されている。
速度判定部56は、レジスタ55から速度指示値を読み出し、速度指示値により指示されている通信速度の下限を下回らないようにFSM54に対する設定を行う。そして、速度判定部56は、I3Cメインマスタ12がI2Cスレーブ15と通信を行う際に、その通信速度が下限を下回ったか否かを判定する。例えば、速度判定部56は、I2Cスレーブ15との通信速度が下限を下回ったと判定した場合には、通信速度が下限を下回るエラーが発生したことを示す情報をレジスタ55に記録する。
定期送信用タイマ57は、図10を参照して上述したようなストップコンディションを含む任意のポーリング信号を定期的に送信する際に、その定期的な間隔を計時し、ポーリング信号の送信を行うタイミングをFSM54に対して指示する。例えば、I3Cメインマスタ12が、ストップコンディションを含む任意のポーリング信号を定期的に送信するように運用される場合、FSM54は、定期的な間隔の計時を有効にすることを指示する信号(stp_timer_en)を、定期送信用タイマ57に供給する。これに応じて、定期送信用タイマ57は、ポーリング信号を送信するタイミングになると、ポーリング信号の送信を指示する信号(stp_send)を、FSM54に供給する。
このようにI3Cメインマスタ12を実装することができ、I3Cメインマスタ12は、上述したようなデッドロックまたは通信エラーが発生することを回避するように、バスIF11による通信処理を制御することができる。
図12は、I3Cスレーブ14の実装例を示すブロック図である。
図12に示すように、I3Cスレーブ14は、第1のバスアイドルカウンタ51、第2のバスアイドルカウンタ52、選択部53、およびFSM54を備えて構成される。
第1のバスアイドルカウンタ51および第2のバスアイドルカウンタ52は、それぞれデータ信号線16-1およびクロック信号線16-2に接続されており、バスIF11がアイドル状態であることを確認するためのカウントを行う。
例えば、第1のバスアイドルカウンタ51には、図2を参照して説明したように、ストップコンディションを検出したときにカウントを開始するようにカウント起点の条件が設定されている。従って、第1のバスアイドルカウンタ51は、ストップコンディションを検出したタイミングでカウントを開始し、データ信号線16-1およびクロック信号線16-2がHレベルである状態が継続している時間が、例えば、1msとなったときに、その旨を示す信号を出力する。例えば、第1のバスアイドルカウンタ51は、通常の通信が終了したときに発行されるストップコンディション、または、図11の定期送信用タイマ57によって定期的に送信されるポーリング信号に含まれるストップコンディションを検出することができる。
また、第2のバスアイドルカウンタ52には、図4を参照して説明したように、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したときにカウントを開始するようにカウント起点の条件が設定されている。従って、第2のバスアイドルカウンタ52は、データ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したタイミングでカウントを開始し、データ信号線16-1およびクロック信号線16-2がHレベルである状態が継続している時間が、例えば、1msとなったときに、その旨を示す信号を出力する。
選択部53は、外部端子を介して行われる設定(例えば、ピンを利用した設定)に従って、第1のバスアイドルカウンタ51および第2のバスアイドルカウンタ52のうち、いずれか一方の出力を選択してFSM54に供給する。なお、選択部53に対する選択の設定は、外部端子の他、例えば、不揮発性メモリを利用して行うことができ、レジスタによる設定は不可となる。これは、例えば、I3Cメインマスタ12がレジスタにアクセスする前に、選択部53に対する選択の設定を行う必要があるためである。
FSM54は、上述した図11のI3Cメインマスタ12のFSM54との間で、データ信号線16-1およびクロック信号線16-2を駆動することによる信号の送信および受信を行う。そして、FSM54は、I3Cスレーブ14がバスIF11に接続され、第1のバスアイドルカウンタ51または第2のバスアイドルカウンタ52から出力される信号が、選択部53を介して供給されると、データ信号線16-1の電位をHレベルからLレベルに切り替えてホットジョイン要求を行う。
このようにI3Cスレーブ14を実装することができ、第1のバスアイドルカウンタ51によりストップコンディションを検出したとき、または、第2のバスアイドルカウンタ52によりデータ信号線16-1およびクロック信号線16-2の電位がHレベルであることを検出したとき、いずれかに対応して、ホットジョイン要求を行うことができる。なお、バスIF11の構成が、どちらか一方に決定されている場合、I3Cスレーブ14は、その決定に従って、第1のバスアイドルカウンタ51および第2のバスアイドルカウンタ52の一方を備える構成としてもよい。
例えば、I3Cスレーブ14が第1のバスアイドルカウンタ51を備えて構成されるときには、上述した図10のI3Cスレーブ14Bとして機能する。一方、I3Cスレーブ14が第2のバスアイドルカウンタ52を備えて構成されるときには、上述した図3または図7のI3Cスレーブ14として機能する。
図13を参照して、図11のI3Cメインマスタ12が実行する処理について説明する。
例えば、I3Cメインマスタ12に電源が投入されると処理が開始され、ステップS31において、I3Cメインマスタ12は、ファームウェアに書き込まれている設定情報を読み出す。
ステップS32において、I3Cメインマスタ12のFSM54は、ステップS31で読み出した設定情報に基づいて、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があるか否かを判定する。
ステップS32において、I3Cメインマスタ12のFSM54が、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性がないと判定した場合、処理はステップS37に進んで、通常の通信処理が実行される。即ち、この場合、I3Cスレーブ14のホットジョインに伴うデッドロックまたは通信エラーが発生することなく通信処理が行われる。
一方、ステップS32において、I3Cメインマスタ12のFSM54が、ホットジョインに対応したI3Cスレーブ14がバスIF11に接続される可能性があると判定した場合、処理はステップS33に進む。
ステップS33において、I3Cメインマスタ12のFSM54は、バスIF11に接続される可能性があるホットジョインに対応したI3Cスレーブ14は、図12に示した第2のバスアイドルカウンタ52を備えているか否かを判定する。なお、この判定を行うために必要な設定情報も、システム設計者によりI3Cメインマスタ12のファームウェアに予め書き込まれている。
ステップS33において、バスIF11に接続される可能性があるホットジョインに対応したI3Cスレーブ14は、図12に示した第2のバスアイドルカウンタ52を備えていないと判定された場合、処理はステップS34に進む。即ち、この場合、そのI3Cスレーブ14は、第1のバスアイドルカウンタ51によるストップコンディションの検出をカウント起点の条件としている。従って、バスIF11に接続される可能性があるI3Cスレーブ14は、上述の図10に示されているI3Cスレーブ14Bのようにエラー回避接続処理部32を備えていないことが想定されるため、デッドロックの発生を回避させる必要がある。
ステップS34において、I3Cメインマスタ12のFSM54は、ストップコンディションを含む任意のポーリング信号を定期的に送信するように設定を行う。例えば、I3Cメインマスタ12のFSM54は、定期的な間隔の計時を有効にすることを指示する信号(stp_timer_en)を、定期送信用タイマ57に供給する。その後、処理はステップS37に進んで、この場合、通常の通信処理において定期的にポーリング信号の送信が行われる。
一方、ステップS33において、バスIF11に接続される可能性があるホットジョインに対応したI3Cスレーブ14は、図12に示した第2のバスアイドルカウンタ52を備えていると判定された場合、処理はステップS35に進む。
ステップS35において、I3Cメインマスタ12のFSM54は、ステップS31で読み出した設定情報に基づいて、バスIF11上にI2Cスレーブ15が接続されているか否かを判定する。
ステップS35において、I3Cメインマスタ12のFSM54が、バスIF11上にI2Cスレーブ15が接続されていないと判定した場合、処理はステップS37に進んで、通常の通信処理が実行される。即ち、この場合、バスIF11では、図4を参照して上述したような意図しないホットジョイン要求が行われることはなく通信処理を行うことができる。
一方、ステップS35において、I3Cメインマスタ12のFSM54が、バスIF11上にI2Cスレーブ15が接続されていると判定した場合、処理はステップS36に進む。即ち、この場合、バスIF11では、図2を参照して上述したようなデッドロックの発生を回避させる必要がある。
ステップS36において、I3Cメインマスタ12のFSM54は、バスIF11に接続されているI2Cスレーブ15との通信速度の下限を制限する。例えば、速度判定部56が、レジスタ55から速度指示値を読み出してFSM54に設定することで、FSM54は、速度指示値による指示に従った通信速度となるように下限を制限することができる。
ステップS36の処理後、処理はステップS37に進み、I3Cメインマスタ12のFSM54は、ステップS36で設定された通信速度の下限を下回らないように、通常の通信処理を実行する。
以上のように、I3Cメインマスタ12は、バスIF11に接続されているデバイス、または、バスIF11に接続される可能性のあるデバイスに基づいて、デッドロックや通信エラーなどの発生を回避して、通信処理を確実に実行することができる。即ち、I3Cメインマスタ12は、FSM54、速度判定部56、定期送信用タイマ57により、図3のエラー回避通信処理部22、または、図10のエラー回避通信処理部22Bとしての機能を実行することができる。
なお、本技術は、I3Cの規格に従ったバスIF11に限定されることはなく、その他の規格に従ったバスIF11に適用することができる。また、バスIF11に接続されるデバイスの種類または個数は、例えば、図1に示したような構成例に限定されることはない。
<コンピュータの構成例>
なお、上述のフローチャートを参照して説明した各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。また、プログラムは、単一のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。
また、上述した一連の処理(情報処理方法)は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラムが記録されたプログラム記録媒体からインストールされる。
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)101,ROM(Read Only Memory)102,RAM(Random Access Memory)103、およびEEPROM(Electronically Erasable and Programmable Read Only Memory)104は、バス105により相互に接続されている。バス105には、さらに、入出力インタフェース106が接続されており、入出力インタフェース106が外部に接続される。
以上のように構成されるコンピュータでは、CPU101が、例えば、ROM102およびEEPROM104に記憶されているプログラムを、バス105を介してRAM103にロードして実行することにより、上述した一連の処理が行われる。また、コンピュータ(CPU101)が実行するプログラムは、ROM102に予め書き込んでおく他、入出力インタフェース105を介して外部からEEPROM104にインストールしたり、更新したりすることができる。
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
少なくとも1台以上の他の通信装置との間で信号の送受信を行う送受信部と、
バスを介して通信を行うことができるように構成されている通信システムが既に稼働している状態で、前記通信システムに通信装置が追加的に接続される際におけるエラーの発生を回避する処理を行うエラー回避部と
を備える通信装置。
(2)
前記通信装置は、前記バスを介した通信の主導権を有する第1の通信装置による制御に従って通信を行い、前記通信システムに追加的に接続される第2の通信装置であって、
前記送受信部は、前記バスを構成するデータ信号線およびクロック信号線を介して前記他の通信装置との間で信号の送受信を行い、
前記エラー回避部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出したときに、前記通信システムへの追加的な接続を要求する信号を前記送受信部により送信させる
上記(1)に記載の通信装置。
(3)
前記通信装置は、前記バスを介した通信の主導権を有する第1の通信装置であって、
前記エラー回避部は、前記第2の通信装置が前記通信システムに追加的に接続される可能性がある場合、前記第2の通信装置の通信における通信速度より低速で通信を行う通信装置である低速通信装置と通信を行う際の通信速度の下限を制限する
上記(2)に記載の通信装置。
(4)
前記第1の通信装置には、前記第2の通信装置が前記通信システムに追加的に接続される可能性があるか否かを示す情報が予め設定されている
上記(3)に記載の通信装置。
(5)
前記通信装置は、前記バスを介した通信の主導権を有する第1の通信装置であって、
前記エラー回避部は、前記バスでの通信の終了を宣言する終了信号を含む任意のポーリング信号を定期的に前記送受信部に送信させる
上記(1)から(4)までのいずれかに記載の通信装置。
(6)
前記通信装置は、前記バスを介した通信の主導権を有する第1の通信装置であって、
前記送受信部は、前記バスを構成するデータ信号線およびクロック信号線を介して前記他の通信装置との間で信号の送受信を行い、
前記エラー回避部は、
前記通信システムに追加的に接続される第2の通信装置が、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始としてカウントするカウント部を備えていない場合、前記バスでの通信の終了を宣言する終了信号を含む任意のポーリング信号を定期的に前記送受信部に送信させ、
前記通信システムに追加的に接続される第2の通信装置が、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始としてカウントするカウント部を備えていて、かつ、前記第2の通信装置の通信における通信速度より低速で通信を行う通信装置である低速通信装置が前記通信システムに接続されている場合、前記低速通信装置と通信を行う際の通信速度の下限を制限する
上記(1)から(5)までのいずれかに記載の通信装置。
(7)
少なくとも1台以上の他の通信装置との間で信号の送受信を行い、
バスを介して通信を行うことができるように構成されている通信システムが既に稼働している状態で、前記通信システムに通信装置が追加的に接続される際におけるエラーの発生を回避する処理を行う
ステップを含む通信方法。
(8)
少なくとも1台以上の他の通信装置との間で信号の送受信を行い、
バスを介して通信を行うことができるように構成されている通信システムが既に稼働している状態で、前記通信システムに通信装置が追加的に接続される際におけるエラーの発生を回避する処理を行う
ステップを含む処理をコンピュータに実行させるプログラム。
(9)
バスを介した通信の主導権を有する第1の通信装置、および、前記第1の通信装置による制御に従って通信を行う第2の通信装置によって、前記バスを介して通信を行うことができるように構成される通信システムにおいて、
前記第1の通信装置および前記第2の通信装置それぞれは、少なくとも1台以上の他の通信装置との間で信号の送受信を行う送受信部を備え、
前記第1の通信装置および前記第2の通信装置うち少なくとも一方が、前記第1の通信装置が少なくとも前記バスに接続されて通信システムが既に稼働している状態で、前記通信システムに前記第2の通信装置が追加的に接続される際におけるエラーの発生を回避する処理を行うエラー回避部を備える
通信システム。
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
11 バスIF, 12 I3Cメインマスタ, 13 I3Cセカンダリマスタ, 14 I3Cスレーブ, 15 I2Cスレーブ, 16-1 データ信号線, 16-2 クロック信号線, 21 送受信部, 22 エラー回避通信処理部, 31 送受信部, 32 エラー回避接続処理部, 41 送受信部, 51 第1のバスアイドルカウンタ, 52 第2のバスアイドルカウンタ, 53 選択部, 54 FSM, 55 レジスタ, 56 速度判定部, 57 定期送信用タイマ

Claims (9)

  1. 少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行う送受信部と、
    前記バスに通信装置自身が追加的に接続されたことが、前記バスを介した通信の主導権を有する前記他の通信装置によって検出されないエラーの発生を回避する処理を行うエラー回避部と
    を備え
    前記エラー回避部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号を前記送受信部により送信させる
    通信装置。
  2. 少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行い、
    前記バスに通信装置自身が追加的に接続されたことが、前記バスを介した通信の主導権を有する前記他の通信装置によって検出されないエラーの発生を回避する処理を行う
    ステップを含み、
    前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号が送信される
    通信方法。
  3. 少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行い、
    前記バスに通信装置自身が追加的に接続されたことが、前記バスを介した通信の主導権を有する前記他の通信装置によって検出されないエラーの発生を回避する処理を行う
    ステップを含み、
    前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号が送信される
    処理をコンピュータに実行させるプログラム。
  4. バスを介した通信の主導権を有する第1の通信装置、および、前記第1の通信装置による制御に従って通信を行う第2の通信装置によって、前記バスを介して通信を行うことができるように構成される通信システムにおいて、
    前記第1の通信装置および前記第2の通信装置それぞれは、少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行う送受信部を備え、
    前記第2の通信装置が、前記バスに通信装置自身が追加的に接続されたことが、前記第1の通信装置によって検出されないエラーの発生を回避する処理を行うエラー回避部を備え
    前記エラー回避部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出すると、前記バスへの追加的な接続を要求する信号を前記送受信部により送信させる
    通信システム。
  5. バスを介した通信の主導権を有する通信装置自身による制御に従って通信を行う少なくとも1台以上の他の通信装置との間で、データ信号線およびクロック信号線を含むバスを介して、信号の送受信を行う送受信部と、
    前記他の通信装置が前記バスに追加的に接続されたことが検出されないエラーの発生を回避する処理を行うエラー回避部と
    を備え、
    前記送受信部は、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始条件として、前記データ信号線および前記クロック信号線の電位がHレベルである状態が所定期間よりも長く継続していることを検出するのに応じて前記他の通信装置から送信されてくる、前記バスへの追加的な接続を要求する信号を受信する
    通信装置。
  6. 前記エラー回避部は、前記他の通信装置が前記バスに追加的に接続される可能性がある場合、前記他の通信装置の通信における通信速度より低速で通信を行う通信装置である低速通信装置と通信を行う際の通信速度の下限を制限する
    請求項5に記載の通信装置。
  7. 前記他の通信装置が前記バスに追加的に接続される可能性があるか否かを示す情報が予め設定されている
    請求項6に記載の通信装置。
  8. 前記エラー回避部は、前記バスでの通信の終了を宣言する終了信号を含む任意のポーリング信号を定期的に前記送受信部に送信させる
    請求項5に記載の通信装置。
  9. 前記エラー回避部は、
    前記バスに追加的に接続される前記他の通信装置が、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始としてカウントするカウント部を備えていない場合、前記バスでの通信の終了を宣言する終了信号を含む任意のポーリング信号を定期的に前記送受信部に送信させ、
    前記バスに追加的に接続される前記他の通信装置が、前記データ信号線および前記クロック信号線の電位がHレベルであることを検出したことをカウントの開始としてカウントするカウント部を備えていて、かつ、前記他の通信装置の通信における通信速度より低速で通信を行う通信装置である低速通信装置が前記バスに接続されている場合、前記低速通信装置と通信を行う際の通信速度の下限を制限する
    請求項5に記載の通信装置。
JP2018568088A 2017-02-14 2018-01-31 通信装置、通信方法、プログラム、および、通信システム Active JP7146650B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2017024940 2017-02-14
JP2017024940 2017-02-14
PCT/JP2018/003063 WO2018150868A1 (ja) 2017-02-14 2018-01-31 通信装置、通信方法、プログラム、および、通信システム

Publications (2)

Publication Number Publication Date
JPWO2018150868A1 JPWO2018150868A1 (ja) 2019-12-12
JP7146650B2 true JP7146650B2 (ja) 2022-10-04

Family

ID=63169778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018568088A Active JP7146650B2 (ja) 2017-02-14 2018-01-31 通信装置、通信方法、プログラム、および、通信システム

Country Status (7)

Country Link
US (1) US10942885B2 (ja)
EP (1) EP3584711B1 (ja)
JP (1) JP7146650B2 (ja)
KR (1) KR102554978B1 (ja)
CN (1) CN110268393B (ja)
TW (1) TWI834603B (ja)
WO (1) WO2018150868A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6670585B2 (ja) * 2015-10-30 2020-03-25 Juki株式会社 管理装置
DE102019201533A1 (de) * 2019-02-07 2020-08-13 Robert Bosch Gmbh Systemkomponente mit konfigurierbarem Kommunikationsverhalten und Verfahren zum Betreiben einer solchen Systemkomponente
CN110990313B (zh) * 2019-11-29 2021-07-30 苏州浪潮智能科技有限公司 一种i3c总线处理时钟拉伸的方法、设备以及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122966A (ja) 1998-10-20 2000-04-28 Nec Corp バス制御装置
CN102073613A (zh) 2010-12-15 2011-05-25 创新科存储技术有限公司 一种消除i2c总线死锁的装置及方法
US20110271023A1 (en) 2010-04-28 2011-11-03 Hon Hai Precision Industry Co., Ltd. System for connecting electronic devices
JP2012068907A (ja) 2010-09-24 2012-04-05 Nec Casio Mobile Communications Ltd バス接続回路及びバス接続方法
WO2014155721A1 (ja) 2013-03-29 2014-10-02 富士通株式会社 接続制御装置、情報処理装置、及び接続制御方法
JP2014232414A (ja) 2013-05-29 2014-12-11 ルネサスエレクトロニクス株式会社 I2c通信スレーブ装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356984B1 (en) 1998-06-30 2002-03-12 Sun Microsystems, Inc. Digital data processing system having a data bus and a control bus
DE19850469A1 (de) * 1998-11-02 2000-05-11 Siemens Ag Automatisierungssystem und Verfahren zum Zugriff auf die Funktionalität von Hardwarekomponenten
EP1152548A1 (en) * 2000-05-05 2001-11-07 Lucent Technologies Inc. Increased data communication capacity of a high rate wireless network
US6591322B1 (en) * 2000-08-01 2003-07-08 Sun Microsystems, Inc. Method and apparatus for connecting single master devices to a multimaster wired-and bus environment
US6874052B1 (en) 2000-09-29 2005-03-29 Lucent Technologies Inc. Expansion bridge apparatus and method for an I2C bus
US6961829B2 (en) * 2001-06-06 2005-11-01 Koninklijke Philips Electronics N.V. Data carrier comprising memory means for storing information significant for intermediate operating states
US20030174658A1 (en) * 2002-03-14 2003-09-18 John Kuo Wireless multiplexing computer network system
US7082488B2 (en) 2003-06-12 2006-07-25 Hewlett-Packard Development Company, L.P. System and method for presence detect and reset of a device coupled to an inter-integrated circuit router
EP1494125A1 (en) * 2003-07-03 2005-01-05 Thomson Licensing S.A. Method and data structure for random access via a bus connection
DE102005061392A1 (de) * 2005-12-22 2007-06-28 Robert Bosch Gmbh Bus-Guardian eines Teilnehmers eines Kommunikationssystems, sowie Teilnehmer für ein Kommunikationssystem
JP5160100B2 (ja) * 2007-02-08 2013-03-13 シャープ株式会社 データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
JP4407752B2 (ja) * 2008-01-10 2010-02-03 トヨタ自動車株式会社 故障箇所検出装置及び通信装置並びに故障箇所検出方法
TWI497307B (zh) * 2010-04-21 2015-08-21 Via Tech Inc 通用串列匯流排事務轉譯器及通用串列匯流排傳輸轉譯方法
US20130019039A1 (en) * 2011-06-10 2013-01-17 Intersil Americas LLC System and method for operating a one-wire protocol slave in a two-wire protocol bus environment
CN102521187B (zh) * 2011-11-29 2014-05-28 广东东研网络科技股份有限公司 一种i2c总线通信死锁解决方法
US10237087B2 (en) * 2013-09-02 2019-03-19 Samsung Electronics Co., Ltd. Method for controlling transmission speed and electronic device thereof
EP3087795B1 (en) * 2014-03-21 2017-08-02 Sony Corporation Communications device and methods of communicating via a wireless access interface to perform device-to-device communications
US9734121B2 (en) * 2014-04-28 2017-08-15 Qualcomm Incorporated Sensors global bus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000122966A (ja) 1998-10-20 2000-04-28 Nec Corp バス制御装置
US20110271023A1 (en) 2010-04-28 2011-11-03 Hon Hai Precision Industry Co., Ltd. System for connecting electronic devices
JP2012068907A (ja) 2010-09-24 2012-04-05 Nec Casio Mobile Communications Ltd バス接続回路及びバス接続方法
CN102073613A (zh) 2010-12-15 2011-05-25 创新科存储技术有限公司 一种消除i2c总线死锁的装置及方法
WO2014155721A1 (ja) 2013-03-29 2014-10-02 富士通株式会社 接続制御装置、情報処理装置、及び接続制御方法
JP2014232414A (ja) 2013-05-29 2014-12-11 ルネサスエレクトロニクス株式会社 I2c通信スレーブ装置

Also Published As

Publication number Publication date
EP3584711A1 (en) 2019-12-25
JPWO2018150868A1 (ja) 2019-12-12
EP3584711A4 (en) 2020-02-12
CN110268393B (zh) 2024-03-08
KR102554978B1 (ko) 2023-07-14
US20200012612A1 (en) 2020-01-09
WO2018150868A1 (ja) 2018-08-23
TWI834603B (zh) 2024-03-11
US10942885B2 (en) 2021-03-09
CN110268393A (zh) 2019-09-20
TW201830263A (zh) 2018-08-16
KR20190113772A (ko) 2019-10-08
EP3584711B1 (en) 2021-11-24

Similar Documents

Publication Publication Date Title
US8667204B2 (en) Method to differentiate identical devices on a two-wire interface
JP7146650B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
US9081705B2 (en) Methods and apparatus for reliable detection and enumeration of devices
JP2006244416A (ja) マスターノード及びスレーブノードを有する電子装置システム
CN110908841A (zh) 一种i2c通信异常恢复方法及装置
US7457898B2 (en) Substitute SATA host for communicating with a SATA device
WO2012046634A1 (ja) 電子装置およびシリアルデータ通信方法
US8521932B2 (en) Arbitrator and arbitrating method applied to system management bus system
CN103530215B (zh) 一种内部集成电路主机的自检方法、装置及主机
JP6696511B2 (ja) 通信装置、通信方法、プログラム、および通信システム
CN101561790B (zh) 一种主控机与从机通信的方法、系统及装置
JP6336328B2 (ja) 通信装置とその制御方法、及びプログラム
JP2017208712A (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6792314B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP2000293485A (ja) 通信インターフェース
US10892852B2 (en) Communication apparatus, communication method, program, and communication system
CN112445744B (zh) I2c通信
KR101082110B1 (ko) 타이밍 제어기, 이를 이용하여 데이터를 송수신하는 장치
WO2017199762A1 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP6739983B2 (ja) 通信装置、通信方法、プログラム、および、通信システム
JP2008204005A (ja) 周辺装置の通信方法、コンピュータプログラム、及び周辺装置
JP2005228068A (ja) 半導体装置及びその通信制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220502

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: 20220823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220921

R150 Certificate of patent or registration of utility model

Ref document number: 7146650

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150