JP5680212B2 - スレーブ装置、マスター装置及び通信方法 - Google Patents

スレーブ装置、マスター装置及び通信方法 Download PDF

Info

Publication number
JP5680212B2
JP5680212B2 JP2013535946A JP2013535946A JP5680212B2 JP 5680212 B2 JP5680212 B2 JP 5680212B2 JP 2013535946 A JP2013535946 A JP 2013535946A JP 2013535946 A JP2013535946 A JP 2013535946A JP 5680212 B2 JP5680212 B2 JP 5680212B2
Authority
JP
Japan
Prior art keywords
command
parameter
time
value
unit
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
JP2013535946A
Other languages
English (en)
Other versions
JPWO2013046734A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013535946A priority Critical patent/JP5680212B2/ja
Application granted granted Critical
Publication of JP5680212B2 publication Critical patent/JP5680212B2/ja
Publication of JPWO2013046734A1 publication Critical patent/JPWO2013046734A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0751Error or fault detection not based on redundancy
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、IIC(Inter Integrated Circuit)プロトコルに従って通信を行う、スレーブ装置、マスター装置及び通信方法に関する。
従来から、電子機器内のデバイス同士の通信を、SCLと呼ばれるシリアルクロックラインと、SDAと呼ばれるシリアルデータラインとの2本の信号線で行う、IICプロトコルを用いた通信方式が用いられている。IIC通信では、スレーブ装置がコマンド処理中にビジー状態としてSCLの信号をローレベルに固定し、マスター装置へのデータの送信を保留させることができる。
しかし、マスター装置から送信されたSCLの信号と、SDAの信号とが、スレーブ装置で正常に受信できなかった場合に、スレーブ装置は、SCLの信号をローレベルに固定してしまう場合がある。これに対し、特許文献1には、マスター装置とスレーブ装置との間を、異常の発生を通知するための通知ラインで接続する通信システムが記載されている。特許文献1に記載された通信システムでは、IIC通信で生じた異常を検出する検出手段で異常が検出された場合に、一方のデバイスが、この通知ラインを介して他方のデバイスに異常の発生を通知する。
特開2011−70282号公報
特許文献1に記載された通信システムでは、SCLの信号が、所定の時間以上、所定のレベルを維持した場合に、異常の発生を検知している。しかし、スレーブ装置では、マスター装置から受信したコマンドの内容によってSCLの信号をローレベルに維持する時間が異なるため、コマンドの内容によっては、誤って異常の発生を検知してしまい、正常動作中にデバイスの復旧処理が行われてしまう場合があった。
そこで、本発明は、誤って異常の発生を検知してしまうことを防止することを目的とする。
本発明の一態様に係るスレーブ装置は、IICプロトコルに従ってスレーブモードで動作するスレーブ装置であって、異常を検出するためのパラメータの値として、前記IICプロトコルに従ってマスターモードで動作するマスター装置から送信されるコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定部と、前記パラメータ設定部により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出部と、を備えることを特徴とする。
また、本発明の一態様に係るマスター装置は、IICプロトコルに従ってマスターモードで動作するマスター装置であって、異常を検出するためのパラメータの値として、前記IICプロトコルに従ってスレーブモードで動作するスレーブ装置に送信するコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定部と、前記パラメータ設定部により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出部と、を備えることを特徴とする。
さらに、本発明の一態様に係る通信方法は、IICプロトコルに従ってスレーブモードで動作するスレーブ装置が行う通信方法であって、異常を検出するためのパラメータの値として、前記IICプロトコルに従ってマスターモードで動作するマスター装置から送信されるコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定過程と、前記パラメータ設定過程により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出過程と、を有することを特徴とする。
さらにまた、本発明の一態様に係る通信方法は、IICプロトコルに従ってマスターモードで動作するマスター装置が行う通信方法であって、異常を検出するためのパラメータの値として、前記IICプロトコルに従ってスレーブモードで動作するスレーブ装置に送信するコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定過程と、前記パラメータ設定過程により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出過程と、を有することを特徴とする。
本発明の一態様によれば、誤って異常を検知してしまうことを防止することができる。
実施の形態1〜4に係る通信システムの構成を示す概略図である。 実施の形態1におけるマスター装置の構成を概略的に示すブロック図である。 実施の形態1におけるスレーブ装置の構成を概略的に示すブロック図である。 実施の形態1におけるコマンド保持部の構成を概略的に示すブロック図である。 実施の形態1及び3における異常検出部の構成を概略的に示すブロック図である。 実施の形態1において、マスター装置がリードのコマンドを出して、データを取得する際のシーケンスを示す概略図である。 実施の形態1において、マスター装置がライトのコマンドを出して、データを送る際のシーケンスを示す概略図である。 実施の形態1におけるスレーブ装置での処理を示すフローチャートである。 実施の形態2におけるスレーブ装置の構成を概略的に示すブロック図である。 実施の形態2及び4における異常検出部の構成を概略的に示すブロック図である。 実施の形態2におけるスレーブ装置での処理を示すフローチャートである。 実施の形態3におけるマスター装置の構成を概略的に示すブロック図である。 実施の形態3におけるマスター装置での処理を示すフローチャートである。 実施の形態4におけるマスター装置の構成を概略的に示すブロック図である。 実施の形態4におけるマスター装置での処理を示すフローチャートである。
実施の形態1.
図1は、実施の形態1に係る通信システム100の構成を示す概略図である。通信システム100は、マスター装置110と、スレーブ装置130とを備える。なお、図1の括弧内の符号は、実施の形態2〜4における構成を示している。
マスター装置110は、マスターモードで動作している通信装置である。また、スレーブ装置130は、スレーブモードで動作している通信装置である。マスター装置110とスレーブ装置130とは、シリアルデータラインであるSDA及びシリアルクロックラインであるSCLで相互に接続されており、IICプロトコルにて通信を行うものである。図1では、スレーブ装置130は、1つだけ示されているが、複数あってもよい。
図2は、マスター装置110の構成を概略的に示すブロック図である。マスター装置110は、制御部111と、インターフェース部(以下、I/F部という)112とを備える。
制御部111は、IICプロトコルに従った通信を制御する。例えば、制御部111は、I/F部112を介して、スタートコンディションと呼ばれるユニークな状態と、通信を行うスレーブ装置130のスレーブアドレスと、このスレーブ装置130に行わせる処理の内容を示すコマンドとを送信する処理を行い、このコマンドで示された内容に応じて必要な処理を行う。なお、制御部111は、スレーブ装置130と通信を行う際に、I/F部112を介して、SCLにおけるクロック信号を変化させる。
また、制御部111は、IICプロトコルに従ってスレーブ装置130と通信を行っている最中に、スレーブ装置130が通信の初期化(リセット)を行った場合には、初期化された通信を再開する処理を行う。
I/F部112は、制御部111からの制御に応じて、SDA及びSCLを介して、通信を実行する。
図3は、スレーブ装置130の構成を概略的に示すブロック図である。スレーブ装置130は、制御部131と、コマンド保持部132と、パラメータ設定部133と、異常検出部134と、クロック生成部135と、初期化部136と、I/F部137と、演算処理部138とを備える。
制御部131は、IICプロトコルに従った通信を制御する。
また、制御部131は、初期化部136からリセット信号を受け取ると、通信処理を初期化(リセット)して、再度、マスター装置110からのコマンド待ち状態に移行する。
さらに、制御部131は、マスター装置110からのコマンドの内容に応じたパラメータの値をパラメータ設定部133に通知する。例えば、制御部131は、演算処理部138との間の通信量、演算処理部138での演算負荷等に基づいて、「リード」又は「ライト」における最適な値をパラメータ設定部133に通知する。例えば、制御部131と、演算処理部138との間で通信を行うデータ量が多く、これらの間の通信が遅延している場合には、制御部131は、遅延量が大きいほど大きな値(長い時間)となるパラメータをパラメータ設定部133に通知する。また、演算処理部138での演算処理負荷が高くなっている場合には、制御部131は、負荷が高いほど大きな値となるパラメータをパラメータ設定部133に通知する。制御部131は、これらの両方を加味して、パラメータの値を決定してもよい。
コマンド保持部132は、マスター装置110から送信され、I/F部137を介して受信されたコマンドの内容を示す情報を保持する。例えば、IIC通信の場合、スレーブアドレスを示すビットの後に、コマンドの内容を表すビットがあるため、コマンド保持部132は、このコマンドの内容を表すビットの値を保持する。ここで、IIC通信の場合、このコマンドの内容を表すビットの値が「0」の場合は、マスター装置110が「ライト」を指示したことになり、このビットの値が「1」の場合、マスター装置110が「リード」を指示したことになる。
図4は、コマンド保持部132の構成を概略的に示すブロック図である。コマンド保持部132は、スタートコンディション認識部132aと、内部カウンタ132bと、レジスタ132cとを備える。
スタートコンディション認識部132aは、マスター装置110が送信し、I/F部137で受信されたデータからスタートコンディションを検出する。
内部カウンタ132bは、スタートコンディション認識部132aがスタートコンディションを検出すると、このスタートコンディションから所定のビット数後に配置されているコマンドの内容を示すビットを特定し、このビットの値をレジスタ132cに格納する。例えば、スレーブアドレスが7ビットの場合、内部カウンタ132bは、SCLのクロック数をカウントすることで、スタートコンディションから8クロック後に到来するコマンド内容ビットを特定する。なお、内部カウンタ132bは、レジスタ132cの値を更新した際には、パラメータ設定部133にイネーブル信号を出力する。
レジスタ132cは、内部カウンタ132bから送られてくるビットの値(コマンド内容ビットの値)を格納する。
図3の説明に戻り、パラメータ設定部133は、コマンド保持部132に保持されているコマンドの内容を示す情報に応じて、通信異常を検出するためのパラメータの値を変更する。図4に示されているように、パラメータ設定部133は、コマンド保持部132からイネーブル信号を受け取った際に、異常検出部134にパラメータの値を設定する。なお、本実施の形態においては、通信異常を検出するためのパラメータの値は、SCLのクロック信号がローレベルを維持する時間に対応したしきい値である。このしきい値は、例えば、SCLのクロック信号がローレベルを維持する最大時間に対応した値とすることができる。ここで、コマンド保持部132に保持されているコマンドの内容は「リード」又は「ライト」であるため、パラメータ設定部133は、コマンド保持部132に保持されているコマンドの内容が「リード」である場合と、これが「ライト」である場合とで、そのパラメータの値を異なるものとする。設定されるパラメータの値は、適宜変更することができるものとすることが望ましく、制御部131から通知される。
異常検出部134は、コマンドに応じて行われる処理において時間を計測する。例えば、異常検出部134は、SCLのクロック信号がローレベルに固定されている時間を計測する。異常検出部134は、計測された時間と、パラメータ設定部133により設定されたパラメータの値に対応する最大時間との比較を行う。そして、異常検出部134は、この計測された時間が最大時間を越えた場合には、通信異常と判定し、初期化部136へ通信異常を通知する。
図5は、異常検出部134の構成を概略的に示すブロック図である。異常検出部134は、内部カウンタ134aと、比較部134bとを備える。なお、図5の括弧内の符号は、実施の形態3のマスター装置における構成である。
内部カウンタ134aは、SCLよりも2倍以上周波数の高い専用クロックでSCLの状態をラッチし、SCLのクロック信号がローレベルとなっている時間をカウントする。なお、パラメータ設定部133で設定される最大時間を示すパラメータの値は、内部カウンタ134aの動作クロックである専用クロックでその最大時間をカウントした場合のカウント値となっている。
比較部134bは、内部カウンタ134aでのカウント値が、パラメータ設定部133が設定したパラメータの値を超えると、通信異常を通知するための通信異常信号を初期化部136に与える。
図3の説明に戻り、クロック生成部135は、異常検出部134がカウント行うために必要とする専用クロックを生成する。そして、クロック生成部135は、この専用クロックを異常検出部134に与える。
初期化部136は、異常検出部134から通信異常信号が与えられると、リセット信号を制御部131に出力する。
次に、以上に記載した通信システム100の動作について説明する。
図6は、IIC通信で、マスター装置110がリードのコマンドを出して、データを取得する際のシーケンスを示す概略図である。なお、図6ではスレーブ装置130のアドレス幅を7ビットとしている。
IIC通信では、マスター装置110の制御部111が、I/F部112を介して、スタートコンディションと呼ばれるユニークな状態を生成し(S1)、その後、続けて、通信を行うスレーブ装置のアドレスと、「リード」のコマンドの内容とを示すビットをスレーブ装置130に送信する(S2、S3)。
スレーブ装置130では、制御部131が、I/F部137を介して、スタートコンディションを認識し、マスター装置110から送信されるスレーブアドレスが自身のアドレスと合致するかを判定する。その結果、合致する場合は、制御部131は、SCLのクロック信号に同期させて、I/F部137を介して、ACK信号をマスター装置110に送信する(S4)。さらに、制御部131は、演算処理部138との通信を行い、演算処理部138を用いて複雑な演算処理を行った結果をマスター装置110へ送信する(S5)。ここで、制御部131は、ACK信号を送信してから(S4)、演算処理部138による演算処理が終了し、演算結果の準備が完了するまでは、ビジー状態としてSCLのクロック信号を強制的にローレベルに固定する。これにより、スレーブ装置130は、SCLのクロック信号がローレベルである間、データの送信を停止することができる。その後、制御部131は、リードデータが準備できると、I/F部137を介して、SCLのビジー状態を解除し、リードデータの送信を行う(S5)。
リードデータを受け取ると、マスター装置110では、制御部111が、I/F部112を介して、ACK信号をスレーブ装置130に返信する(S6)。そして、スレーブ装置130では、制御部131が、I/F部137を介して、リードデータの送信を行う(S7)。これに対して、マスター装置110では、制御部111が、I/F部112を介して、ACK信号をスレーブ装置130に返信する(S8)。
図7は、IIC通信で、マスター装置110がライトのコマンドを出して、データを送る際のシーケンスを示す概略図である。
マスター装置110の制御部111は、I/F部112を介して、スタートコンディションを生成し(S10)、その後、続けて、通信を行うスレーブ装置のアドレスと、「ライト」のコマンドの内容とを示すビットをスレーブ装置130に送信する(S11、S12)。
スレーブ装置130では、制御部131が、I/F部137を介して、スタートコンディションを認識し、マスター装置110から送信されるスレーブアドレスが自身のアドレスと合致するかを判定する。その結果、合致する場合は、制御部131は、SCLのクロック信号に同期させて、I/F部137を介して、ACK信号をマスター装置110に送信する(S13)。ACK信号を送信した後、次のデータの受信を行うための準備、例えば、図示していない受信バッファ内のデータをRAMなどのメモリへ書き込んでいる間などは、制御部131は、SCLのクロック信号を強制的にローレベルに固定する。マスター装置110は、SCLのクロック信号がローレベルになっている間、データの送信を停止することになる。
ACK信号を受け取ると、マスター装置110では、制御部111が、I/F部112を介して、SCLのクロック信号の立ち上がりに同期してライトデータをスレーブ装置130に送信する(S14)。
そして、ライトデータを受け取ったスレーブ装置130では、制御部131が、I/F部137を介して、ACK信号の返信を行う(S15)。また、制御部131は、受信準備等のためにSCLのクロック信号をローレベルに固定し、受信準備等が完了した後に、SCLのクロック信号のローレベルへの固定を解除する。これに対して、マスター装置110では、制御部111が、I/F部112を介して、ライトデータをスレーブ装置130に送信する(S16)。スレーブ装置130は、I/F部137を介して、ACK信号を返信する(S17)。
図8は、スレーブ装置130での処理を示すフローチャートである。
まず、スレーブ装置130の制御部131は、I/F部137を介して、スタートコンディションを認識し、マスター装置110から送信されるスレーブアドレスと、コマンドとを受信する(S20)。
制御部131は、受信されたスレーブアドレスが、自身のアドレスと合致する場合には、SCLのクロック信号に同期させて、I/F部137を介して、ACK信号をマスター装置110に送信する(S21)。
また、マスター装置110が生成したスタートコンディションを、図4に示されているコマンド保持部132のスタートコンディション認識部132aが認識すると、内部カウンタ132bは、SCLのクロック数をカウントすることで、スタートコンディションから8クロック後に到来するコマンド内容ビットを特定する。そして、内部カウンタ132bは、特定されたビットの値を、レジスタ132cに保持させる(S23)。リードの場合、コマンド内容ビットの値は「1」であり、ライトの場合、コマンド内容ビットの値は「0」である。さらに、内部カウンタ132bは、コマンド保持部132内のレジスタ132cの値を更新した際に、パラメータ設定部133にイネーブル信号を出力する。
パラメータ設定部133は、コマンド保持部132からのイネーブル信号により、レジスタ132cに保持されているコマンド内容ビットを参照する。そして、パラメータ設定部133は、参照したビット内容(ここでは、「リード」又は「ライト」)に応じて、通信異常と判定するための、SCLのクロック信号がローレベルを維持する最大時間に対応するパラメータの値を異常検出部134に設定する(S23)。ここで、コマンド内容ビットの値が「1」の場合、パラメータ設定部133は、リードデータを処理する際に、SCLのクロック信号がローレベルを保持する最大時間に対応するパラメータの値を異常検出部134に設定する。このパラメータの値は、リード時に最適となるものである。一方、コマンド内容ビットの値が「0」の場合、パラメータ設定部133は、ライトデータを処理する際に、SCLのクロック信号がローレベルを保持する最大時間に対応するパラメータの値を異常検出部134に設定する。このパラメータの値は、ライト時に最適となるものである。
次に、図5に示されている異常検出部134では、SCLのクロック信号よりも2倍以上周波数の高い専用クロックで、SCLのクロック信号の状態をラッチし、ローレベルとなっている時間を内部カウンタ134aでカウントする。そして、比較部134bは、内部カウンタ134aでカウントされたカウント値が、パラメータ設定部133により設定された、SCLのクロック信号がローレベルを保持する最大時間に対応するパラメータの値を超えたか否かを確認する(S24)。例えば、図6に示されているリードの例では、制御部131は、I/F部137を介して、ACK信号を送信(S4)した後、SCLのクロック信号を強制的にローレベルにする。また、図7に示されているライトの例では、制御部131は、I/F部137を介して、ACK信号を送信(S13、S15、S17)した後、SCLのクロック信号を強制的にローレベルにする。そして、比較部134bは、カウント値がパラメータの値を超えた場合(S24:Yes)には、ステップS25の処理に進み、カウント値がパラメータの値を超えていない場合(S24:No)には、ステップS26の処理に進む。
ステップS25では、比較部134bは、通信異常であると判断し、通信異常信号を初期化部136へ出力する。初期化部136は、異常検出部134からの通信異常信号がアサートされると制御部131を初期化するリセット信号を出力する。
ここで、マスター装置110からリードのコマンドが送信された場合、初期化部136から出力されたリセット信号でスレーブ装置130の通信が初期化されると、ビジー状態が解除され、SCLが有効となる。この場合、スレーブ装置130の制御部131が初期状態になっているため、I/F部137を介してSDAにリードデータを送信する処理が行われない。SDAは、外部でプルアップされているため、マスター装置110に入力されるリードデータは「0xFF」となる。
マスター装置110とスレーブ装置130との間で、通常の通信において「0xFF」となるデータを送受信しないように取り決めておくことで、マスター装置110は、「0xFF」となるリードデータが連続して入力された場合、スレーブ装置130において通信が初期化されたと認識し、再度、スタートコンディションを生成し、スレーブアドレス及びコマンドの内容を出力し、スレーブ装置130との通信を再開する。
なお、スレーブ装置130において通信が初期化されたと認識する「0xFF」となるリードデータの連続入力回数は、マスター装置110が備える図示していない内部レジスタに設定されているものとする。そして、例えば、マスター装置110の制御部111は、この内部レジスタの値と、「0xFF」となるリードデータの連続入力回数をカウントアップするカウンタの値とを比較して、スレーブ装置130において通信が初期化されたか否かを判断する。
また、マスター装置110からライトのコマンドが送信された場合、初期化部136から出力されたリセット信号でスレーブ装置130の通信が初期化されると、制御部131は、初期状態になっているため、マスター装置110からライトデータを送信しても、ACK信号を返すことができない。そのため、マスター装置110は、所定の時間、スレーブ装置130からACK信号が返ってこない場合には、スレーブ装置130において通信が初期化されたと認識し、再度、スタートコンディションを生成し、スレーブアドレス及びコマンドの内容を出力し、スレーブ装置130との通信を再開する。
一方、ステップS26では、制御部131は、マスター装置110との通信処理を継続する。
そして、制御部131は、I/F部137を介して、マスター装置110が生成するストップコンディションを認識したか否かを確認する(S27)。そして、制御部131は、ストップコンディションを認識した場合(S27:Yes)には、フローを終了し、ストップコンディションを認識していない場合(S27:No)には、ステップS24の処理に戻る。
以上のように、コマンドの内容がリードの場合とライトの場合とで、スレーブ装置130内での処理内容は異なり、これに従い、制御部131が、SCLのクロック信号を強制的にローレベルに固定する時間も異なる。一般的に、リードの場合は、ライトの場合に比べると処理に時間がかかる。例えば、リードの場合には、リードデータを準備するために、制御部131と演算処理部138との間の通信時間が必要となる場合、演算処理部138での演算処理が必要となる場合、及び、制御部131での演算処理が必要となる場合等があるためである。このため、リードの場合には、制御部131がSCLのクロック信号をローレベルに維持する時間がライトの場合よりも長くなる。
そのため、リードとライトで異常を検出するためのパラメータの値が同じ値になっていると、このパラメータの値が小さい場合は、正常なリード処理中に誤って異常が検出されてしまい、リセットがかかってしまう。一方、パラメータの値が大きい場合は、異常の検出に時間がかかりすぎて、通信システム100内での処理速度が遅くなってしまう。
そこで、実施の形態1におけるスレーブ装置130によれば、マスター装置110からのコマンドの内容によって、異常検出を行うためのパラメータの値が最適な値に設定されるため、リード及びライトといったコマンドの内容に応じて、適切に異常を検出することができる。このため、正常動作時に誤って異常が検出されてしまい、リセットがかかることを防止することができる。さらに、異常の検出に時間がかかり、通信システム100内での処理速度が遅くなってしまうことを防止することができる。
実施の形態1では、制御部131に演算処理部138が接続されているが、このような構成に限定されるものではない。例えば、制御部131の内部に演算処理装置138が設けられていてもよい。また、異常検出部134では、SCLのクロック信号がローレベルとなっている時間を検出するために内部カウンタ134aが設けられているが、SCLのクロック信号のローレベル時間を検出できる構成であればこれに限るものではない。
実施の形態1では、マスター装置110は、リードの場合は「0xFF」となるデータが連続して入力された場合に、また、ライトの場合はACK信号が一定期間内に返ってこない場合に、スレーブ装置130において通信が初期化されたと認識しているが、このような例に限定されない。例えば、スレーブ装置130からマスター装置110に初期化されたことを通知するための通知ラインを追加してもよい。このような通知ラインを用いて初期化の通知を行うことで、より迅速に、初期化されたことをマスター装置110に通知することができる。
実施の形態2.
次に、実施の形態2について説明する。図1に示されているように、実施の形態2に係る通信システム200は、マスター装置110と、スレーブ装置230とを備える。実施の形態2に係る通信システム200は、スレーブ装置230において、実施の形態1に係る通信システム100と異なっている。実施の形態2におけるスレーブ装置230は、コマンドの内容がリードの場合には、コマンドを受信してからリードデータを送信するまでの時間と、リード用に設定されたパラメータの値に対応する時間とを比較し、また、コマンドの内容がライトの場合には、コマンドを受信してからライトデータを受信するまでの時間と、ライト用に設定されたパラメータの値に対応する時間とを比較する。
図9は、スレーブ装置230の構成を概略的に示すブロック図である。スレーブ装置230は、制御部231と、コマンド保持部132と、パラメータ設定部233と、異常検出部234と、クロック生成部135と、初期化部136と、I/F部137と、演算処理部138とを備える。実施の形態2におけるスレーブ装置230は、制御部231、パラメータ設定部233及び異常検出部234での処理において、実施の形態1におけるスレーブ装置130と異なっている。また、実施の形態2におけるスレーブ装置230では、制御部231と、異常検出部234とを接続する信号線であるIRQ1及びIRQ2が新たに設けられている。
制御部231は、IICプロトコルに従った通信を制御する。
また、制御部231は、初期化部136からリセット信号を受け取ると、通信処理を初期化(リセット)して、再度、マスター装置110からのコマンド待ち状態に移行する。
さらに、制御部231は、マスター装置110からのコマンドの内容に応じたパラメータの値をパラメータ設定部233に通知する。例えば、制御部231は、演算処理部138との間の通信量、演算処理部138での演算負荷等に基づいて、「リード」又は「ライト」における最適な値をパラメータ設定部233に通知する。なお、本実施の形態においては、コマンドが「リード」の場合のパラメータの値は、マスター装置110からのコマンドを受けてから、このコマンドに対応するリードデータを送信するまでの時間に対応するしきい値である。このしきい値は、マスター装置110からのコマンドを受けてから、このコマンドに対応するリードデータを送信するまでの最大時間に対応した値とすることができる。また、コマンドが「ライト」の場合のパラメータの値は、マスター装置110からのコマンドを受けてから、このコマンドに対応するライトデータを受信するまでの時間に対応するしきい値である。このしきい値は、マスター装置110からのコマンドを受けてから、このコマンドに対応するライトデータを受信するまでの最大時間に対応した値とすることができる。
また、制御部231は、I/F部137を介して、マスター装置110からのスタートコンディションを認識し、自装置のスレーブアドレスを受け取った場合に、コマンドの受信を示すコマンド受信通知を異常検出部234に与える。例えば、制御部231は、IRQ1において信号をアサートすることで、コマンド受信通知を行う。
さらに、制御部231は、I/F部137を介して、マスター装置110から「リード」のコマンドを受け、このコマンドに対するリードデータを送信した際に、リードデータを送信したことを示すリードデータ送信通知を異常検出部234に与える。例えば、制御部231は、制御部231内の送信バッファ231aにリードデータを格納し、このリードデータをI/F部137を介してマスター装置110に送信する処理を行うことで、この送信バッファ231aが空になった際(送信が完了した際)に、IRQ2において信号をアサートすることで、リードデータ送信通知を行う。
さらにまた、制御部231は、I/F部137を介して、マスター装置110から「ライト」のコマンドを受け、このコマンドに対するライトデータを受信した際に、ライトデータを受信したことを示すライトデータ受信通知を異常検出部234に与える。例えば、制御部231は、I/F部137を介して取得したライトデータを、制御部231内の受信バッファ231bに格納し、このライトデータを演算処理部138又は図示してはいないメモリ等に与えることで、この受信バッファ231bが空になった際(受信が完了した際)に、IRQ2において信号をアサートすることで、ライトデータ受信通知を行う。
パラメータ設定部233は、コマンド保持部132に保持されているコマンドの内容を示す情報に応じて、通信異常を検出するためのパラメータの値を変更する。図4に示されているように、パラメータ設定部233は、コマンド保持部132からイネーブル信号を受け取った際に、異常検出部234にパラメータの値を設定する。なお、本実施の形態においては、通信異常を検出するためのパラメータの値は、送信完了及び受信完了までの時間に対応したしきい値である。このしきい値は、送信完了及び受信完了までの最大時間に対応した値とすることができる。ここで、コマンド保持部132に保持されているコマンドの内容は「リード」又は「ライト」であるため、パラメータ設定部233は、コマンド保持部132に保持されているコマンドの内容が「リード」である場合と、これが「ライト」である場合とで、そのパラメータの値を異なるものとする。設定されるパラメータの値は、適宜変更することができるものとすることが望ましく、制御部231から与えられる。
異常検出部234は、コマンドに応じて行われる処理において時間を計測する。例えば、異常検出部234は、制御部231からのコマンド受信通知からの時間を計測する。そして、異常検出部234は、計測された時間と、パラメータ設定部233により設定されたパラメータの値に対応する最大時間との比較を行う。そして、異常検出部234は、この計測された時間が最大時間を越えた場合には、通信異常と判定し、初期化部136へ通信異常を通知する。
なお、異常検出部234は、制御部231からのリードデータ送信通知又はライトデータ受信通知を受けた場合には、時間の計測を終了する。
図10は、異常検出部234の構成を概略的に示すブロック図である。異常検出部234は、内部カウンタ234aと、比較部234bとを備える。なお、図10の括弧内の符号は、実施の形態4のマスター装置における構成である。
内部カウンタ234aは、専用クロックにてIRQ1の信号がアサートされてからの時間をカウントする。なお、パラメータ設定部233により設定される最大時間を示すパラメータの値は、内部カウンタ234aの動作クロックである専用クロックでその最大時間をカウントした場合のカウント値となっている。また、内部カウンタ234aは、IRQ2の信号がアサートされた場合には、カウントを停止する。
比較部234bは、内部カウンタ234aでのカウント値が、パラメータ設定部233が設定したパラメータの値を超えると、通信異常を通知するための通信異常信号を初期化部136に与える。
図11は、スレーブ装置230での処理を示すフローチャートである。
まず、スレーブ装置230の制御部231は、I/F部137を介して、スタートコンディションを認識し、マスター装置110から送信されるスレーブアドレスと、コマンドの内容を受信する(S30)。
ここで、制御部231は、I/F部137を介して、スタートコンディションを認識し、受信されたスレーブアドレスが自装置のアドレスであると判断した場合には、IRQ1の信号をアサートする。そして、異常検出部234の内部カウンタ234aは、IRQ1のアサートを検知して、カウントを開始する(S31)。
また、制御部231は、受信されたスレーブアドレスが、自身のアドレスと合致する場合には、SCLのクロック信号に同期させて、I/F部137を介して、ACK信号をマスター装置110に送信する(S32)。
また、マスター装置110が生成したスタートコンディションを、図4に示されているコマンド保持部132のスタートコンディション認識部132aが認識すると、内部カウンタ132bは、SCLのクロック数をカウントすることで、スタートコンディションから8クロック後に到来するコマンド内容ビットを特定する。そして、内部カウンタ132bは、特定されたビットの値を、レジスタ132cに保持させる(S33)。内部カウンタ132bは、コマンド保持部132内のレジスタの値を更新した際に、パラメータ設定部233にイネーブル信号を出力する。
パラメータ設定部233は、コマンド保持部132からのイネーブル信号により、レジスタ132cに保持されているコマンド内容ビットを参照する。そして、パラメータ設定部233は、参照したビット内容に応じて、通信異常と判定するための、処理の最大時間に対応するパラメータの値を異常検出部234に設定する(S34)。ここで、コマンド内容ビットの値が「1」の場合、パラメータ設定部233は、リード時に最適となる、処理の最大時間に対応するパラメータの値を異常検出部234に設定する。一方、コマンド内容ビットの値が「0」の場合、パラメータ設定部233は、ライト時に最適となる、処理の最大時間に対応するパラメータの値を異常検出部234に設定する。
次に、図10に示されている異常検出部234では、SCLのクロック信号よりも2倍以上周波数の高い専用クロックで、SCLのクロック信号の状態をラッチし、IRQ1のアサートを検出してからの時間を内部カウンタ234aでカウントする。そして、比較部234bは、内部カウンタ234aでカウントされたカウント値が、パラメータ設定部233により設定された、処理の最大時間を示すパラメータの値を超えたか否かを確認する(S35)。そして、比較部234bは、カウント値がパラメータの値を超えた場合(S35:Yes)には、ステップS36の処理に進み、カウント値がパラメータの値を超えていない場合(S35:No)には、ステップS37の処理に進む。
ステップS36では、比較部234bは、通信異常であると判断し、通信異常信号を初期化部136へ出力する。初期化部136は、異常検出部234からの通信異常信号がアサートされると制御部231を初期化するリセット信号を出力する。これにより、制御部231は、ビジー状態を解除し、再度、マスター装置110からのコマンド受信待ち状態に復帰する。
一方、ステップS37では、制御部231は、マスター装置110との通信処理を継続する。
そして、制御部231は、I/F部137を介して、マスター装置110との間の通信が完了したか否かを確認する(S38)。例えば、マスター装置110からのコマンドが「リード」である場合には、送信バッファ231aに格納されたリードデータが送信されて、送信バッファ231aが空になったときに、マスター装置110との間の通信が完了したと判断する。また、マスター装置110からのコマンドが「ライト」である場合には、受信バッファ231bに格納されたライトデータが処理されて、受信バッファ231bが空になったときに、マスター装置110との間の通信が完了したと判断する。そして、制御部231は、通信が完了したと判断した場合(S38:Yes)には、フローを終了し、通信が完了していないと判断した場合(S38:No)には、ステップS35の処理に戻る。なお、制御部231は、通信が完了したと判断した場合(S38:Yes)には、IRQ2の信号をアサートする。異常検出部234の内部カウンタ234aは、IRQ2のアサートを検出するとカウントを停止する。
以上のように、実施の形態2に係る通信システム200によれば、マスター装置110から送信されるコマンド受信時にアサートされるコマンド受信割り込みと、送受信バッファが空になった場合にアサートされる送受信バッファエンプティ割り込みとの間の処理時間をカウントし、このカウント値とパラメータの値とを比較しているため、より正確に異常を検出することができる。
実施の形態2に係る通信システム200では、制御部231に演算処理部138が接続されているが、このような構成に限るものではなく、制御部231の内部に演算処理部138が設けられていてもよい。さらに、異常検出部234は、IRQ1からIRQ2までの時間を計測するために内部カウンタ234aを設けているが、IRQ1からIRQ2までの時間を計測することができる構成であればこれに限るものではない。
実施の形態2においては、コマンドの内容がリードである場合には、パラメータ設定部233が設定するパラメータの値は、コマンドを受信してから、リードデータの送信が完了するまでの最大時間に対応する値であるが、このような値に限定されるものではない。例えば、パラメータ設定部233が設定するパラメータの値は、コマンドを受信してから、リードデータの送信を開始するまでの最大時間としてもよい。このような場合には、例えば、制御部231は、制御部231内の送信バッファ231aにリードデータを格納し、このリードデータをI/F部137を介してマスター装置110に送信し始めた際に、IRQ2において信号をアサートすることで、リードデータ送信通知を行う。
また、実施の形態2においては、コマンドの内容がライトである場合には、パラメータ設定部233が設定するパラメータの値は、コマンドを受信してから、ライトデータの受信が完了するまでの最大時間に対応する値であるが、このような値に限定されるものではない。例えば、パラメータ設定部233が設定するパラメータの値は、コマンドを受信してから、ライトデータの受信を開始するまでの最大時間としてもよい。このような場合には、例えば、制御部231は、制御部231内の受信バッファ231bにライトデータを格納し始めた際に、IRQ2において信号をアサートすることで、ライトデータ受信通知を行う。
さらに、実施の形態2においては、コマンドの内容がライトである場合には、制御部231は、I/F部137を介して取得したライトデータを、制御部231内の受信バッファ231bに格納し、このライトデータを演算処理部138又は図示してはいないメモリ等に与えることで、この受信バッファ231bが空になった際に、IRQ2において信号をアサートすることで、ライトデータ受信通知を行っているが、例えば、受信バッファ231bにライトデータの格納が完了した際に、IRQ2において信号をアサートして、ライトデータ受信通知を行ってもよい。
実施の形態3.
次に、実施の形態3について説明する。図1に示されているように、実施の形態3に係る通信システム300は、マスター装置310と、スレーブ装置130とを備える。実施の形態3に係る通信システム300は、マスター装置310において、実施の形態1に係る通信システム100と異なっている。実施の形態3では、マスター装置310でも初期化処理を行う。
図12は、マスター装置310の構成を概略的に示すブロック図である。マスター装置310は、制御部311と、I/F部112と、コマンド保持部313と、パラメータ設定部314と、異常検出部315と、クロック生成部316と、初期化部317とを備える。実施の形態3におけるマスター装置310は、制御部311が行う処理の点、並びに、コマンド保持部313、パラメータ設定部314、異常検出部315、クロック生成部316及び初期化部317がさらに設けられている点において、実施の形態1におけるマスター装置110と異なっている。
制御部311は、IICプロトコルに従った通信を制御する。
また、制御部311は、初期化部317からリセット信号を受け取ると、通信処理を初期化(リセット)し、再度、リセットされた通信処理を開始する。
さらに、制御部311は、IICプロトコルに従ってスレーブ装置130と通信を行っている最中に、スレーブ装置130が通信の初期化(リセット)を行った場合には、初期化された通信を再開する処理を行う。
また、制御部311は、スレーブ装置130に送信するコマンドの内容に応じたパラメータの値をパラメータ設定部314に通知する。例えば、制御部311は、スレーブ装置130との間の通信量、図1には1つのスレーブ装置130しか示されていないが、複数のスレーブ装置130が接続されている場合には他のスレーブ装置130との間の通信量等に基づいて、「リード」又は「ライト」における最適な値をパラメータ設定部314に通知する。例えば、制御部311と、スレーブ装置130又は他のスレーブ装置130との間で通信を行うデータ量が多く、これらの間の通信が遅延している場合には、制御部311は、遅延量が大きいほど大きな値となるパラメータの値をパラメータ設定部314に通知する。
さらに、制御部311は、I/F部112を介してスレーブ装置130へ送信するコマンドの内容をコマンド保持部313に与える。
コマンド保持部313は、制御部311から与えられたリード又はライトのコマンド内容を表すビットの情報を保持するレジスタを備える。なお、コマンド保持部313は、レジスタに保持するビットの値を更新した際には、パラメータ設定部314にイネーブル信号を与える。
パラメータ設定部314は、コマンド保持部313に保持されているコマンドの内容を示す情報に応じて、通信異常を検出するためのパラメータの値を変更する。ここで、パラメータ設定部314は、コマンド保持部313からイネーブル信号を受け取った際に、異常検出部315にパラメータの値を設定する。なお、本実施の形態においては、通信異常を検出するためのパラメータの値は、SCLのクロック信号がローレベルを維持する時間に対応したしきい値である。このしきい値は、SCLのクロック信号がローレベルを維持する時間に対応した値とすることができる。ここで、コマンド保持部313に保持されているコマンドの内容は「リード」又は「ライト」であるため、パラメータ設定部314は、コマンド保持部313に保持されているコマンドの内容が「リード」である場合と、これが「ライト」である場合とで、そのパラメータの値を異なるものとする。設定されるパラメータの値は、適宜変更することができるものとすることが望ましく、制御部311から通知される。
異常検出部315は、コマンドに応じて行われる処理において時間を計測する。例えば、異常検出部315は、SCLのクロック信号がローレベルに固定されている時間を計測する。異常検出部315は、計測された時間と、パラメータ設定部314により設定されたパラメータの値に対応する最大時間との比較を行う。そして、異常検出部315は、この計測された時間が最大時間を越えた場合には、通信異常と判定し、初期化部317へ通信異常を通知する。図5に示されているように、異常検出部315は、内部カウンタ315aと、比較部315bとを備える。
内部カウンタ315aは、SCLよりも2倍以上周波数の高い専用クロックでSCLの状態をラッチし、SCLのクロック信号がローレベルとなっている時間をカウントする。なお、パラメータ設定部314で設定される最大時間を示すパラメータの値は、内部カウンタ315aの動作クロックである専用クロックでその最大時間をカウントした場合のカウント値となっている。
比較部315bは、内部カウンタ315aでのカウント値が、パラメータ設定部314が設定したパラメータの値を超えると、通信異常を通知するための通信異常信号を初期化部317に与える。
図12の説明に戻り、クロック生成部316は、異常検出部315がカウント行うために必要とする専用クロックを生成する。そして、クロック生成部316は、この専用クロックを異常検出部315に与える。
初期化部317は、異常検出部315から通信異常信号が与えられると、リセット信号を制御部311に出力する。
図13は、実施の形態3におけるマスター装置310での処理を示すフローチャートである。
制御部311は、I/F部112を介して、スタートコンディションを生成し、続けてスレーブアドレス及びコマンドの内容を送信する処理を行う(S40)。
このとき、制御部311は、送信されるコマンドの内容をコマンド保持部313にも与える。コマンド保持部313は、与えられたコマンドの内容を示すように、レジスタの値を更新する(S41)。リードの場合、レジスタの値は「1」であり、ライトの場合、レジスタの値は「0」である。そして、コマンド保持部313は、パラメータ設定部314にイネーブル信号を出力する。
パラメータ設定部314は、コマンド保持部313からのイネーブル信号により、レジスタに保持されているコマンド内容ビットを参照する。そして、パラメータ設定部314は、参照したビット内容に応じて、通信異常と判定するための、SCLのクロック信号がローレベルを維持する最大時間に対応するパラメータの値を異常検出部315に設定する(S42)。ここで、コマンド内容ビットの値が「1」の場合、パラメータ設定部314は、リードデータを処理する際に、SCLのクロック信号がローレベルを保持する最大時間に対応するパラメータの値を異常検出部315に設定する。このパラメータの値は、リード時に最適なものである。一方、コマンド内容ビットの値が「0」の場合、パラメータ設定部314は、ライトデータを処理する際に、SCLのクロック信号がローレベルを保持する最大時間に対応するパラメータの値を異常検出部315に設定する。このパラメータの値は、ライト時に最適なものとなる。
次に、制御部311は、I/F部112を介して、スレーブ装置130からのACK信号を受信する処理を行う(S43)。ACK信号が受信されると、制御部311は、ステップS40でスレーブ装置130に送ったコマンドの内容に応じた処理を行う。例えば、ステップS40で送ったコマンドの内容がリードである場合には、制御部311は、制御部311内にある受信バッファ311aに、I/F部122を介して受信されたリードデータを蓄積する。そして、制御部311は、リードデータの受信が完了すると、I/F部112を介して、ACK信号をスレーブ装置130に対して送信する処理を行う。また、ステップS40で送ったコマンドの内容がライトである場合には、制御部311は、I/F部122を介して、制御部311内にある送信バッファ311bに蓄積されたライトデータを送信する処理を行う。
次に、図5に示されている異常検出部315では、SCLのクロック信号よりも2倍以上周波数の高い専用クロックで、SCLのクロック信号の状態をラッチし、ローレベルとなっている時間を内部カウンタ315aでカウントする。そして、比較部315bは、内部カウンタ315aでカウントされたカウント値が、パラメータ設定部314により設定された、SCLのクロック信号がローレベルを保持する最大時間を示すパラメータの値を超えたか否かを確認する(S44)。そして、比較部315bは、SCLのクロック信号がローレベルを保持する最大時間を示すパラメータの値を超えた場合(S44:Yes)には、ステップS45の処理に進み、SCLのクロック信号がローレベルを保持する最大時間を示すパラメータの値を超えていない場合(S44:No)には、ステップS46の処理に進む。
ステップS45では、比較部315bは、通信異常であると判断し、通信異常信号を初期化部317へ出力する。初期化部317は、異常検出部315からの通信異常信号がアサートされると制御部311を初期化するリセット信号を出力する。これにより、制御部311は、初期化され、再度、IIC通信をスタートさせる。
一方、ステップS46では、制御部311は、スレーブ装置130との通信処理を継続する。
そして、制御部311は、スレーブ装置130との通信が完了したか否かを確認する(S47)。そして、制御部311は、通信が完了した場合(S47:Yes)には、I/F部112を介して、ストップコンディションを生成して、フローを終了する。一方、制御部311は、通信が完了していない場合(S47:No)には、ステップS44の処理に戻る。
以上のように、実施の形態3によれば、マスター装置310及びスレーブ装置130のそれぞれにおいて、コマンド内容によって異常検出を行うためのパラメータの値を最適な値に設定し、その値を用いて異常が検出された場合には、それぞれが初期化を行うため、マスター装置310とスレーブ装置130との間に初期化したことを通知するための新たな信号線を追加する必要がなくなる。
実施の形態3では、異常検出部134、315は、SCLのローレベル時間を検出するために内部カウンタ134a、315aを備えているが、SCLのローレベル時間を検出できる構成であればこれに限るものではない。
また、実施の形態3で説明されたマスター装置310に、実施の形態2で説明されたスレーブ装置230が接続されていてもよい。
実施の形態4.
次に、実施の形態4について説明する。図1に示されているように、実施の形態4に係る通信システム400は、マスター装置410と、スレーブ装置230とを備える。実施の形態4に係る通信システム400は、マスター装置410において、実施の形態2に係る通信システム200と異なっている。実施の形態4では、マスター装置410において、リードの場合には、リードのコマンドを送信してからリードデータを受信するまでの時間と、リード用に設定されたパラメータで示される時間とが比較され、また、ライトの場合には、ライトのコマンドを送信してからライトデータを送信するまでの時間と、ライト用に設定されたパラメータで示される時間とが比較される。
図14は、マスター装置410の構成を概略的に示すブロック図である。マスター装置410は、制御部411と、I/F部112と、コマンド保持部313と、パラメータ設定部414と、異常検出部415と、クロック生成部316と、初期化部317とを備える。実施の形態4におけるマスター装置410は、制御部411、パラメータ設定部414及び異常検出部415において、実施の形態3におけるマスター装置310と異なっている。なお、実施の形態4におけるマスター装置410では、制御部411と、異常検出部415とを接続する信号線であるIRQ3及びIRQ4が新たに設けられている。
制御部411は、IICプロトコルに従った通信を制御する。
また、制御部411は、初期化部317からリセット信号を受け取ると、通信処理を初期化(リセット)し、再度、リセットされた通信処理を開始する。
さらに、制御部411は、IICプロトコルに従ってスレーブ装置230と通信を行っている最中に、スレーブ装置230が通信の初期化(リセット)を行った場合には、初期化された通信を再開する処理を行う。
さらにまた、制御装置411は、I/F部112を介してスレーブ装置230へ送信するコマンドの内容をコマンド保持部313に与える。
また、制御部411は、スレーブ装置230に送信するコマンドの内容に応じたパラメータの値をパラメータ設定部414に通知する。なお、本実施の形態においては、コマンドが「リード」の場合のパラメータの値は、スレーブ装置230にコマンドを送信してから、このコマンドに対応するリードデータを受信するまでの時間に対応したしきい値である。このしきい値は、スレーブ装置230にコマンドを送信してから、このコマンドに対応するリードデータを受信するまでの最大時間に対応したものとすることができる。また、コマンドが「ライト」の場合のパラメータの値は、スレーブ装置230にコマンドを送信してから、このコマンドに対応するライトデータを送信するまでの時間に対応したしきい値である。このしきい値は、スレーブ装置230にコマンドを送信してから、このコマンドに対応するライトデータを送信するまでの最大時間に対応したものである。
さらに、制御部411は、I/F部112を介して、スタートコンディションを生成した場合に、コマンドの送信を示すコマンド送信通知を異常検出部415に与える。例えば、制御部411は、IRQ3において信号をアサートすることで、コマンド送信通知を行う。
また、制御部411は、I/F部112を介して、スレーブ装置230に「リード」のコマンドを与え、このコマンドに対するリードデータを受信した際に、リードデータを受信したことを示すリードデータ受信通知を異常検出部415に与える。例えば、制御部411は、I/F部112を介して、受け取ったリードデータを、制御部411内の受信バッファ411bに格納を開始した際(受信を開始した際)に、IRQ4において信号をアサートすることで、リードデータ受信通知を行う。
さらにまた、制御部411は、I/F部112を介して、スレーブ装置230に「ライト」のコマンドを与え、このコマンドに対するライトデータを送信した際に、ライトデータを送信したことを示すライトデータ送信通知を異常検出部415に与える。例えば、制御部411は、制御部411内の送信バッファ411aにライトデータを格納し、このライトデータをI/F部137を介してマスター装置110に送信する処理を開始した際(送信を開始した際)に、IRQ4において信号をアサートすることで、ライトデータ送信通知を行う。
パラメータ設定部414は、コマンド保持部313に保持されているコマンドの内容を示す情報に応じて、通信異常を検出するためのパラメータの値を変更する。パラメータ設定部414は、コマンド保持部313からイネーブル信号を受け取った際に、異常検出部415にパラメータの値を設定する。なお、本実施の形態においては、通信異常を検出するためのパラメータの値は、送信開始又は受信開始までの最大時間に対応した値である。ここで、コマンド保持部313に保持されているコマンドの内容は「リード」又は「ライト」であるため、パラメータ設定部414は、コマンド保持部313に保持されているコマンドの内容が「リード」である場合と、これが「ライト」である場合とで、そのパラメータの値を異なるものとする。設定されるパラメータの値は、適宜変更することができるものとすることが望ましく、制御部411から与えられる。
異常検出部415は、コマンドに応じて行われる処理において時間を計測する。例えば、異常検出部415は、制御部411からのコマンド受信通知からの時間を計測する。異常検出部415は、計測された時間と、パラメータ設定部414により設定されたパラメータの値に対応する最大時間との比較を行う。そして、異常検出部415は、この計測時間が最大時間を越えた場合には、通信異常と判定し、初期化部317へ通信異常を通知する。
なお、異常検出部415は、制御部411からのリードデータ受信通知又はライトデータ送信通知を受けた場合には、時間の計測を終了する。
図10に示されているように、異常検出部415は、内部カウンタ415aと、比較部415bとを備える。
内部カウンタ415aは、専用クロックを用いてIRQ3の信号がアサートされてからの時間をカウントする。なお、パラメータ設定部414により設定される最大時間を示すパラメータの値は、内部カウンタ415aの動作クロックである専用クロックでその最大時間をカウントした場合のカウント値となっている。また、内部カウンタ415aは、IRQ4の信号がアサートされた場合には、カウントを停止する。
比較部415bは、内部カウンタ415aでのカウント値が、パラメータ設定部414が設定したパラメータの値を超えると、通信異常を通知するための通信異常信号を初期化部317に与える。
図15は、実施の形態4におけるマスター装置410での処理を示すフローチャートである。
制御部411は、I/F部112を介して、スタートコンディションを生成し、続けてスレーブアドレス及びコマンドの内容を送信する処理を行う(S50)。
このとき、制御部411は、送信されるコマンドの内容をコマンド保持部313にも与える。コマンド保持部313は、与えられたコマンドの内容を示すように、レジスタの値を更新する(S51)。リードの場合、レジスタの値は「1」であり、ライトの場合、レジスタの値は「0」である。そして、コマンド保持部313は、パラメータ設定部414にイネーブル信号を出力する。
パラメータ設定部414は、コマンド保持部313からのイネーブル信号により、レジスタに保持されているコマンド内容ビットを参照する。そして、パラメータ設定部414は、参照したビット内容に応じて、通信異常と判定するための、送信開始又は受信開始までの最大時間に対応するパラメータの値を異常検出部415に設定する(S52)。ここで、コマンド内容ビットの値が「1」の場合、パラメータ設定部414は、リード時に最適となる、処理の最大時間に対応するパラメータの値を異常検出部415に設定する。一方、コマンド内容ビットの値が「0」の場合、パラメータ設定部414は、ライト時に最適となる、処理の最大時間に対応するパラメータの値を異常検出部415に設定する。
また、制御部411は、I/F部112を介して、スレーブ装置230にコマンドの送信を行った場合には、IRQ3の信号をアサートする。そして、異常検出部415の内部カウンタ415aは、IRQ3のアサートを検知して、カウントを開始する(S53)。
次に、制御部411は、I/F部112を介して、スレーブ装置230からのACK信号を受信する処理を行う(S54)。ACK信号が受信されると、制御部411は、ステップS50でスレーブ装置230に送ったコマンドの内容に応じた処理を行う。
次に、図10に示されている異常検出部415では、専用クロックを用いてIRQ3のアサートを検出してからの時間を内部カウンタ415aでカウントする。そして、比較部415bは、内部カウンタ415aでカウントされたカウント値が、パラメータ設定部414により設定された、処理の最大時間を示すパラメータの値を超えたか否かを確認する(S55)。そして、比較部415bは、カウント値がパラメータの値を超えた場合(S55:Yes)には、ステップS56の処理に進み、カウント値がパラメータの値を超えていない場合(S55:No)には、ステップS57の処理に進む。
ステップS56では、比較部415bは、通信異常であると判断し、通信異常信号を初期化部317へ出力する。初期化部317は、異常検出部415からの通信異常信号がアサートされると制御部411を初期化するリセット信号を出力する。これにより、制御部411は、初期化され、再度、IIC通信をスタートさせる。
一方、ステップS57では、制御部411は、スレーブ装置230との通信処理を継続する。
そして、制御部411は、I/F部112を介して、スレーブ装置230との間の通信が実行されたか否かを確認する(S58)。例えば、スレーブ装置230へのコマンドが「リード」である場合には、リードデータが受信バッファ411bに格納され始めたときに、スレーブ装置230との間の通信が実行されたと判断する。また、スレーブ装置230からのコマンドが「ライト」である場合には、送信バッファ411aに格納されたライトデータの送信が開始されたときに、スレーブ装置230との間の通信が実行されたと判断する。そして、制御部411は、通信が実行されたと判断した場合(S58:Yes)には、フローを終了し、通信が実行されていないと判断した場合(S58:No)には、ステップS55の処理に戻る。なお、制御部411は、通信が実行されたと判断した場合(S58:Yes)には、IRQ4の信号をアサートする。異常検出部415の内部カウンタ415aは、IRQ4のアサートを検出するとカウントを停止する。
以上のように、実施の形態4に係る通信システム400によれば、マスター装置410において、異常検出を行うためのパラメータとして、マスター装置410がコマンド送信時にアサートされるコマンド送信割り込みと、受信バッファ411bにリードデータが格納され始めた場合にアサートされる受信バッファ割り込みと、送信バッファ411aに格納されているライトデータが送信され始めた場合にアサートされる送信バッファ割り込みとを使用するため、マスター装置410からの実際のコマンド送信からデータの送受信実行までの正確な間隔を測定することができる。
実施の形態4では、異常検出部415は、IRQ3からカウントを開始する内部カウンタ415aを備えているが、IRQ3からの処理時間を計測することができる構成であれば、これに限るものではない。
また、実施の形態4で説明されたマスター装置410に、実施の形態1で説明されたスレーブ装置130が接続されていてもよい。
実施の形態4においては、コマンドの内容がリードである場合には、パラメータ設定部414が設定するパラメータの値は、コマンドを送信してから、リードデータの受信が開始されるまでの最大時間に対応する値であるが、このような値に限定されるものではない。例えば、パラメータ設定部414が設定するパラメータの値は、コマンドを送信してから、リードデータの受信を完了するまでの最大時間としてもよい。このような場合には、例えば、制御部411は、制御部411内の受信バッファ411bにリードデータが格納され、図示されていないメモリ等にリードデータを出力することで、受信バッファ411bが空になった際に、IRQ4において信号をアサートすることで、リードデータ受信通知を行う。
また、実施の形態4においては、コマンドの内容がライトである場合には、パラメータ設定部414が設定するパラメータの値は、コマンドを送信してから、ライトデータの送信が開始されるまでの最大時間に対応する値であるが、このような値に限定されるものではない。例えば、パラメータ設定部414が設定するパラメータの値は、コマンドを送信してから、ライトデータの送信が完了するまでの最大時間としてもよい。このような場合には、例えば、制御部411は、制御部411内の送信バッファ411aにライトデータを格納し、I/F部112を介して、このライトデータをスレーブ装置に送信することで、送信バッファ411aが空になった際に、IRQ4において信号をアサートすることで、ライトデータ送信通知を行う。
以上に記載された実施の形態4においては、制御部131、231、311、411から、パラメータ設定部133、233、314、414にパラメータの値を通知しているが、ライトの場合及びリードの場合のそれぞれのパラメータの値が固定値であってもよい。このような場合には、パラメータ設定部414の図示してはいないメモリにパラメータの値が記憶されていればよい。
100,200,300,400:通信システム、 110,310,410:マスター装置、 111,311,411:制御部、 311a,411a:送信バッファ、 311b,411b:受信バッファ、 112:I/F部、 313:コマンド保持部、 314:パラメータ設定部、 315,415:異常検出部、 315a,415a:内部カウンタ、 315b,415b:比較部、 316:クロック生成部、 317:初期化部、 130,230:スレーブ装置、 131,231:制御部、 131a,231a:送信バッファ、 131b,231b:受信バッファ、 132:コマンド保持部、 132a:スタートコンディション認識部、 132b:内部カウンタ、 132c:レジスタ、 133:パラメータ設定部、 134,234:異常検出部、 134a,234a:内部カウンタ、 134b,234b:比較部、 135:クロック生成部、 136:初期化部、 137:I/F部、 138:演算処理部。

Claims (20)

  1. IICプロトコルに従ってスレーブモードで動作するスレーブ装置であって、
    異常を検出するためのパラメータの値として、前記IICプロトコルに従ってマスターモードで動作するマスター装置から送信されるコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定部と、
    前記パラメータ設定部により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出部と、を備えること
    を特徴とするスレーブ装置。
  2. 前記パラメータ設定部は、前記コマンドの内容がライトである場合に設定されるパラメータの値に対応する時間よりも、前記コマンドの内容がリードである場合に設定されるパラメータの値に対応する時間を長くすること
    を特徴とする請求項1に記載のスレーブ装置。
  3. 前記マスター装置と、シリアルクロックライン及びシリアルデータラインを介して通信を行うインターフェース部をさらに備え、
    前記コマンドの内容がライトである場合には、前記パラメータの値は、ライトデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記コマンドの内容がリードである場合には、前記パラメータの値は、リードデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記異常検出部は、前記シリアルクロックラインの信号が所定のレベルを維持している時間を計測すること
    を特徴とする請求項1又は2に記載のスレーブ装置。
  4. 前記コマンドの内容がライトである場合には、
    前記パラメータの値は、前記コマンドを受信してからライトデータを受信するまでの時間に対応したしきい値であり、
    前記異常検出部は、前記コマンドを受信してからライトデータを受信するまで、時間を計測し、
    前記コマンドの内容がリードである場合には、
    前記パラメータの値は、前記コマンドを受信してからリードデータを送信するまでの時間に対応したしきい値であり、
    前記異常検出部は、前記コマンドを受信してからリードデータを送信するまで、時間を計測すること
    を特徴とする請求項1又は2に記載のスレーブ装置。
  5. 前記異常検出部は、時間を計測するカウンタを備えており、前記カウンタの値が、前記パラメータの値を超えた場合に、異常を検出すること
    を特徴とする請求項1から4の何れか一項に記載のスレーブ装置。
  6. 前記異常検出部が異常を検出した場合に、前記マスター装置との間の通信をリセットする初期化部をさらに備えること
    を特徴とする請求項1から5の何れか一項に記載のスレーブ装置。
  7. IICプロトコルに従ってマスターモードで動作するマスター装置であって、
    異常を検出するためのパラメータの値として、前記IICプロトコルに従ってスレーブモードで動作するスレーブ装置に送信するコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定部と、
    前記パラメータ設定部により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出部と、を備えること
    を特徴とするマスター装置。
  8. 前記パラメータ設定部は、前記コマンドの内容がライトである場合に設定されるパラメータの値に対応する時間よりも、前記コマンドの内容がリードである場合に設定されるパラメータの値に対応する時間を長くすること
    を特徴とする請求項7に記載のマスター装置。
  9. 前記スレーブ装置と、シリアルクロックライン及びシリアルデータラインを介して通信を行うインターフェース部をさらに備え、
    前記コマンドの内容がライトである場合には、前記パラメータの値は、ライトデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記コマンドの内容がリードである場合には、前記パラメータの値は、リードデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記異常検出部は、前記シリアルクロックラインの信号が所定のレベルを維持している時間を計測すること
    を特徴とする請求項7又は8に記載のマスター装置。
  10. 前記コマンドの内容がライトである場合には、
    前記パラメータの値は、前記コマンドを送信してからライトデータを送信するまでの時間に対応したしきい値であり、
    前記異常検出部は、前記コマンドを送信してからライトデータを送信するまで、時間を計測し、
    前記コマンドの内容がリードである場合には、
    前記パラメータの値は、前記コマンドを送信してからリードデータを受信するまでの時間に対応したしきい値であり、
    前記異常検出部は、前記コマンドを送信してからリードデータを受信するまで、時間を計測すること
    を特徴とする請求項7又は8に記載のマスター装置。
  11. 前記異常検出部は、時間を計測するカウンタを備えており、前記カウンタの値が、前記パラメータの値を超えた場合に、異常を検出すること
    を特徴とする請求項7から10の何れか一項に記載のマスター装置。
  12. 前記異常検出部が異常を検出した場合に、前記スレーブ装置との間の通信をリセットする初期化部をさらに備えること
    を特徴とする請求項7から11の何れか一項に記載のマスター装置。
  13. IICプロトコルに従ってスレーブモードで動作するスレーブ装置が行う通信方法であって、
    異常を検出するためのパラメータの値として、前記IICプロトコルに従ってマスターモードで動作するマスター装置から送信されるコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定過程と、
    前記パラメータ設定過程により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出過程と、
    を有することを特徴とする通信方法。
  14. 前記パラメータ設定過程は、前記コマンドの内容がライトである場合に設定されるパラメータの値に対応する時間よりも、前記コマンドの内容がリードである場合に設定されるパラメータの値に対応する時間を長くすること
    を特徴とする請求項13に記載の通信方法。
  15. 前記コマンドの内容がライトである場合には、前記パラメータの値は、ライトデータを処理する際に、前記マスター装置と通信を行うためのシリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記コマンドの内容がリードである場合には、前記パラメータの値は、リードデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記異常検出過程は、前記シリアルクロックラインの信号が所定のレベルを維持している時間を計測すること
    を特徴とする請求項13又は14に記載の通信方法。
  16. 前記コマンドの内容がライトである場合には、
    前記パラメータの値は、前記コマンドを受信してからライトデータを受信するまでの時間に対応したしきい値であり、
    前記異常検出過程は、前記コマンドを受信してからライトデータを受信するまで、時間を計測し、
    前記コマンドの内容がリードである場合には、
    前記パラメータの値は、前記コマンドを受信してからリードデータを送信するまでの時間に対応したしきい値であり、
    前記異常検出過程は、前記コマンドを受信してからリードデータを送信するまで、時間を計測すること
    を特徴とする請求項13又は14に記載の通信方法。
  17. IICプロトコルに従ってマスターモードで動作するマスター装置が行う通信方法であって、
    異常を検出するためのパラメータの値として、前記IICプロトコルに従ってスレーブモードで動作するスレーブ装置に送信するコマンドの内容がリードであるか、ライトであるかによって、異なる値を設定するパラメータ設定過程と、
    前記パラメータ設定過程により設定された前記パラメータの値に対応する時間と、前記コマンドに応じて行われる処理において計測される時間とを比較することにより異常を検出する異常検出過程と、を有すること
    を特徴とする通信方法。
  18. 前記パラメータ設定過程は、前記コマンドの内容がライトである場合に設定されるパラメータの値に対応する時間よりも、前記コマンドの内容がリードである場合に設定されるパラメータの値に対応する時間を長くすること
    を特徴とする請求項17に記載の通信方法。
  19. 前記コマンドの内容がライトである場合には、前記パラメータの値は、ライトデータを処理する際に、前記スレーブ装置と通信を行うためのシリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記コマンドの内容がリードである場合には、前記パラメータの値は、リードデータを処理する際に、前記シリアルクロックラインの信号が所定のレベルを維持している時間に対応したしきい値であり、
    前記異常検出過程は、前記シリアルクロックラインの信号が所定のレベルを維持している時間を計測すること
    を特徴とする請求項17又は18に記載の通信方法。
  20. 前記コマンドの内容がライトである場合には、
    前記パラメータの値は、前記コマンドを送信してからライトデータを送信するまでの時間に対応したしきい値であり、
    前記異常検出過程は、前記コマンドを送信してからライトデータを送信するまで、時間を計測し、
    前記コマンドの内容がリードである場合には、
    前記パラメータの値は、前記コマンドを送信してからリードデータを受信するまでの時間に対応したしきい値であり、
    前記異常検出過程は、前記コマンドを送信してからリードデータを受信するまで、時間を計測すること
    を特徴とする請求項17又は18に記載の通信方法。
JP2013535946A 2011-09-27 2012-01-20 スレーブ装置、マスター装置及び通信方法 Active JP5680212B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013535946A JP5680212B2 (ja) 2011-09-27 2012-01-20 スレーブ装置、マスター装置及び通信方法

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011211339 2011-09-27
JP2011211339 2011-09-27
PCT/JP2012/051193 WO2013046734A1 (ja) 2011-09-27 2012-01-20 スレーブ装置、マスター装置及び通信方法
JP2013535946A JP5680212B2 (ja) 2011-09-27 2012-01-20 スレーブ装置、マスター装置及び通信方法

Publications (2)

Publication Number Publication Date
JP5680212B2 true JP5680212B2 (ja) 2015-03-04
JPWO2013046734A1 JPWO2013046734A1 (ja) 2015-03-26

Family

ID=47994807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013535946A Active JP5680212B2 (ja) 2011-09-27 2012-01-20 スレーブ装置、マスター装置及び通信方法

Country Status (5)

Country Link
US (1) US9778971B2 (ja)
JP (1) JP5680212B2 (ja)
CN (1) CN103814363B (ja)
DE (1) DE112012004029T5 (ja)
WO (1) WO2013046734A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9298521B1 (en) 2013-04-29 2016-03-29 Seagate Technology Llc Command sets and functions
JP6154548B2 (ja) * 2013-05-14 2017-06-28 ヴェーデクス・アクティーセルスカプ 補聴器システムを遠隔的にフィッティングする方法,遠隔補聴器フィッティング・システムおよび補聴器
US10055376B1 (en) * 2015-01-15 2018-08-21 Maxim Integrated Products, Inc. Serial peripheral interface system with slave expander
US10489337B2 (en) * 2016-06-30 2019-11-26 Intel Corporation Method, apparatus and system for dynamic optimization of signal integrity on a bus
JP6985791B2 (ja) * 2016-09-27 2021-12-22 株式会社村田製作所 データ転送デバイス及び無線通信回路
DE102016219663B4 (de) * 2016-10-11 2018-08-02 Conti Temic Microelectronic Gmbh Verfahren zur Überwachung eines Netzwerks auf Anomalien
CN109976297B (zh) * 2017-12-27 2021-11-09 西安远智电子科技有限公司 一种失控保护的检测方法、装置及无人机
EP3688601B1 (en) * 2018-12-03 2020-10-07 Hewlett-Packard Development Company, L.P. Logic circuitry
CN111629368B (zh) * 2020-05-19 2022-10-18 歌尔科技有限公司 耳机与充电盒的通信方法、充电盒、耳机及可读存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08316973A (ja) * 1995-05-23 1996-11-29 Hitachi Ltd 通信処理手段
JPH11502643A (ja) * 1995-01-21 1999-03-02 ツェットエフ、フリードリッヒスハーフェン、アクチエンゲゼルシャフト シリアルデータバスシステムにおけるエラーの認識及び除去
JP2001075878A (ja) * 1999-09-06 2001-03-23 Fujitsu General Ltd バスエラー検出処理装置
JP2002063080A (ja) * 2000-08-15 2002-02-28 Sony Corp インターフェース装置
JP2004139528A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd Iic転送エラー検出装置
JP2005354158A (ja) * 2004-06-08 2005-12-22 Yokogawa Electric Corp エラー検出回路
JP2007164765A (ja) * 2005-11-15 2007-06-28 Matsushita Electric Ind Co Ltd Iicバス通信システム、スレーブ装置およびiicバス通信制御方法
JP2008197752A (ja) * 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
WO2010097831A1 (ja) * 2009-02-24 2010-09-02 富士通テレコムネットワークス株式会社 I2c監視シーケンシャルリードデータ記憶装置
JP2011070282A (ja) * 2009-09-24 2011-04-07 Furukawa Electric Co Ltd:The 通信システム、マスタ装置、および、スレーブ装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08314814A (ja) 1995-05-19 1996-11-29 Toshiba Corp 通信装置
US6145102A (en) * 1998-01-20 2000-11-07 Compaq Computer Corporation Transmission of an error message over a network by a computer which fails a self-test
JP2000137983A (ja) * 1998-08-26 2000-05-16 Toshiba Corp 半導体記憶装置
US6597197B1 (en) * 1999-08-27 2003-07-22 Intel Corporation I2C repeater with voltage translation
US6728908B1 (en) * 1999-11-18 2004-04-27 California Institute Of Technology I2C bus protocol controller with fault tolerance
US6691257B1 (en) * 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US7478286B2 (en) * 2005-04-08 2009-01-13 Linear Technology Corporation Circuit and method of detecting and resolving stuck I2C buses
CN100466591C (zh) * 2005-04-08 2009-03-04 华为技术有限公司 主从设备系统
US7502991B2 (en) * 2005-06-30 2009-03-10 International Business Machines Corporation Redundant 3-wire communication system
US8407401B2 (en) * 2008-11-26 2013-03-26 Core Wireless Licensing S.A.R.L. Methods, apparatuses, and computer program products for enhancing memory erase functionality
TWI428756B (zh) 2010-02-08 2014-03-01 Hon Hai Prec Ind Co Ltd 主從設備通訊電路
JP5682392B2 (ja) * 2011-03-22 2015-03-11 富士通株式会社 情報処理装置、制御装置および異常ユニット判定方法
JP5762561B2 (ja) * 2011-11-25 2015-08-12 三菱電機株式会社 通信装置、通信方法、及び通信システム
DE102011087472B4 (de) * 2011-11-30 2016-10-20 Continental Automotive Gmbh Verfahren zur Synchronisation von Uhren in Knoten eines Fahrzeugnetzes und zur Durchführung des Verfahrens eingerichteter Knoten
US20150248373A1 (en) * 2014-02-28 2015-09-03 Qualcomm Incorporated Bit allocation over a shared bus to facilitate an error detection optimization

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11502643A (ja) * 1995-01-21 1999-03-02 ツェットエフ、フリードリッヒスハーフェン、アクチエンゲゼルシャフト シリアルデータバスシステムにおけるエラーの認識及び除去
JPH08316973A (ja) * 1995-05-23 1996-11-29 Hitachi Ltd 通信処理手段
JP2001075878A (ja) * 1999-09-06 2001-03-23 Fujitsu General Ltd バスエラー検出処理装置
JP2002063080A (ja) * 2000-08-15 2002-02-28 Sony Corp インターフェース装置
JP2004139528A (ja) * 2002-10-21 2004-05-13 Matsushita Electric Ind Co Ltd Iic転送エラー検出装置
JP2005354158A (ja) * 2004-06-08 2005-12-22 Yokogawa Electric Corp エラー検出回路
JP2007164765A (ja) * 2005-11-15 2007-06-28 Matsushita Electric Ind Co Ltd Iicバス通信システム、スレーブ装置およびiicバス通信制御方法
JP2008197752A (ja) * 2007-02-08 2008-08-28 Sharp Corp データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体
WO2010097831A1 (ja) * 2009-02-24 2010-09-02 富士通テレコムネットワークス株式会社 I2c監視シーケンシャルリードデータ記憶装置
JP2011070282A (ja) * 2009-09-24 2011-04-07 Furukawa Electric Co Ltd:The 通信システム、マスタ装置、および、スレーブ装置

Also Published As

Publication number Publication date
US9778971B2 (en) 2017-10-03
CN103814363B (zh) 2016-08-24
US20140149805A1 (en) 2014-05-29
CN103814363A (zh) 2014-05-21
DE112012004029T5 (de) 2014-08-14
JPWO2013046734A1 (ja) 2015-03-26
WO2013046734A1 (ja) 2013-04-04

Similar Documents

Publication Publication Date Title
JP5680212B2 (ja) スレーブ装置、マスター装置及び通信方法
US9645898B2 (en) Storage control device and control device for detecting abnormality of signal line
CN103176042A (zh) 一种频率测量方法、装置和频率计
JP4869369B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2019096960A (ja) 伝送装置及び伝送方法
JP2013045154A (ja) 情報処理装置、情報処理システム、情報処理装置の異常兆候検出方法、及び異常兆候検出プログラム
CN113254247A (zh) 一种服务器bmc i2c异常恢复方法及相关装置
JPWO2017104437A1 (ja) 通信装置、通信方法、プログラム、および通信システム
CN104539494A (zh) 一种识别唤醒信号的方法及系统
US20190073255A1 (en) Storage device, host system, and information processing system
JP2011091742A (ja) 通信装置
US20090265573A1 (en) Data transmission/reception circuit
JP5353470B2 (ja) Usbデバイス、画像処理装置、usb転送制御方法、usb転送制御プログラム及び記録媒体
CN102668444B (zh) 信息处理装置或信息处理方法
CN118244093B (zh) 芯片内部时钟的校准方法、装置、电子设备及存储介质
TWI730330B (zh) 具資料傳收機制的電子裝置以及資料傳收方法
US9479326B2 (en) Information processing apparatus or information processing method
JP5648357B2 (ja) データ処理装置
JP2007036850A (ja) 文字認識回路
EP2843541A1 (en) Electronic apparatus
JP6337730B2 (ja) メモリ装置
CN108073806B (zh) 一种检测时钟频率的方法及装置
JP2006332984A (ja) 通信システムおよび通信方法
TW202427195A (zh) 微控制電路及控制方法
CN115756950A (zh) 一种iic总线恢复方法、装置、设备、介质及系统

Legal Events

Date Code Title Description
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: 20141209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150106

R150 Certificate of patent or registration of utility model

Ref document number: 5680212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250