JPWO2010097831A1 - I2c監視シーケンシャルリードデータ記憶装置 - Google Patents
I2c監視シーケンシャルリードデータ記憶装置 Download PDFInfo
- Publication number
- JPWO2010097831A1 JPWO2010097831A1 JP2011501345A JP2011501345A JPWO2010097831A1 JP WO2010097831 A1 JPWO2010097831 A1 JP WO2010097831A1 JP 2011501345 A JP2011501345 A JP 2011501345A JP 2011501345 A JP2011501345 A JP 2011501345A JP WO2010097831 A1 JPWO2010097831 A1 JP WO2010097831A1
- Authority
- JP
- Japan
- Prior art keywords
- read data
- data storage
- storage device
- address
- sequential read
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3471—Address tracing
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】様々な読み出し方式に対して、汎用性高く対応できるI2C監視シーケンシャルリードデータ記憶装置を提供することを目的とする。【解決手段】マスタ回路とスレーブ回路とのI2Cインターフェースを介した通信データを取得するI2C監視シーケンシャルリードデータ記憶装置であって、スレーブ回路のアドレス相当数をカウントするアドレスカウンタを備え、スレーブ回路の所定領域を指定するバイトアドレスを取得した場合に、取得したバイトアドレスを、アドレスカウンタの初期値とするI2C監視シーケンシャルリードデータ記憶装置とする。【選択図】図1
Description
本発明は、複数の読み出し方式に対応可能なI2C監視シーケンシャルリードデータ記憶装置に関する。
光モジュールやLSIなどI2Cインターフェースを用いて監視したり制御する伝送装置は複数のユニットで構成されており、各ユニットは各ユニットのフィジカルインベントリ情報(以下、適宜PI情報と称する)が格納されたEEPROMを備える。伝送装置は、各ユニットのEEPROMからI2Cインターフェースを介してPI情報を読み出す。
ユニットが伝送装置に実装された場合に、伝送装置はI2Cインターフェースを介してユニットのEEPROMに予め格納されているPI情報を読み出し制御して、PI情報を取得する。PI情報は、例えばユニットがトランスポンダである場合には、そのトランスポンダが担当する波長情報等ユニット固有の情報等である。
また、ユニットをバージョンアップするために差し替えた場合には、差し替えられたユニットのPI情報を伝送装置がI2Cインターフェースにより読み出す。この際、I2Cインターフェースに接続されたI2C監視シーケンシャルリードデータ記憶装置は、伝送装置とユニットとの間の必要なI2C通信データ(典型的にはPI情報)を取得して記憶する。I2C監視シーケンシャルリードデータ記憶装置に記憶されたPI情報等は、他のユニット等で必要となった場合に利用される。
また、伝送装置をマスタ側としてユニットのEEPROMをスレーブ側とすれば、その間のI2Cインターフェースによる読み出し方式は、読み出し時間が比較的短いシーケンシャルリード方式や番地情報を指定したランダムリード方式やシーケンシャルランダムリード方式等が用いられる。
システムの初期設定などに要する時間の短縮を可能とし、通信処理手段の柔軟性を持たせるために、番地情報を指定したリード方式に加えて伝送時間の短いリード方式も実現する通信処理手段が、例えば下記特許文献1に開示されている。
I2C監視シーケンシャルリードデータ記憶装置が、単一のI2C読み出し方式にしか対応していなければ、例えば伝送装置とユニットとの間のI2Cインターフェースによる読み出し方式が異なる場合には通信データの読み出しができず、ユニット内のEEPROM等が有する所望の情報を取得できなくなる。
そこで、マスタ回路側とスレーブ回路側との間のI2Cインターフェースによる様々な読み出し方式に対して、汎用性高く対応できるI2C監視シーケンシャルリードデータ記憶装置が期待される。
本発明は、上述の問題点に鑑み為されたものであり、マスタ回路側とスレーブ回路側との間のI2Cインターフェースによる様々な読み出し方式に対して、汎用性高く対応できるI2C監視シーケンシャルリードデータ記憶装置を提供することを目的とする。
本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、マスタ回路とスレーブ回路とのI2Cインターフェースを介した通信データを取得するI2C監視シーケンシャルリードデータ記憶装置であって、スレーブ回路のアドレス相当数をカウントするアドレスカウンタを備え、スレーブ回路の所定領域を指定するバイトアドレスを取得した場合に、取得したバイトアドレスを、アドレスカウンタの初期値とする。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、好ましくは取得したバイトアドレスを一時記憶するバイトアドレスレジスタを備え、スレーブ回路がバイトアドレスの受信に対する正常信号を返信した場合に、バイトアドレスレジスタに一時記憶したバイトアドレスを、アドレスカウンタの初期値としてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはスレーブ回路を特定するデバイスアドレスまたはバイトアドレスを受信したスレーブ回路が、異常信号を返信した場合に、取得した通信データを記憶しなくてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはスレーブ回路を特定するデバイスアドレスまたはバイトアドレスを受信したスレーブ回路の返信信号を一時記憶するアックナックレジスタと、アドレスカウンタのカウンタ値をデコードして取得した通信データを記憶するタイミングを出力するデコーダ部と、を備え、アックナックレジスタから入力された返信信号が異常信号である場合に、取得した通信データを記憶しないように、デコーダ部は、通信データを記憶するタイミングを出力しなくてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはスレーブ回路を特定するデバイスアドレスの受信またはバイトアドレスを受信したスレーブ回路が、異常信号を返信した場合に、初期化されてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはマスタ回路とスレーブ回路との間の通信を終了する終了信号を検出すると、I2C監視シーケンシャルリードデータ記憶装置を初期化するナック検出部を備え、ナック検出部は、アックナックレジスタから入力された返信信号が異常信号である場合に、I2C監視シーケンシャルリードデータ記憶装置を初期化してもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくは複数のスレーブ回路がI2Cインターフェースを介して接続され、I2C監視シーケンシャルリードデータ記憶装置は、情報取得対象となるスレーブ回路を特定するデバイスアドレス期待値を予め設定され、デバイスアドレス期待値に対応するスレーブ回路の通信データを記憶してもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはI2C監視シーケンシャルリードデータ記憶装置は、情報取得対象となるスレーブ回路を特定するデバイスアドレス期待値を予め記憶する期待値記憶部と、期待値記憶部が記憶するデバイスアドレス期待値と、取得したデバイスアドレスと、を比較するデバイスアドレス期待値比較部とを備え、デバイスアドレス期待値比較部は、デバイスアドレス期待値と取得したデバイスアドレスとが異なる場合に、I2C監視シーケンシャルリードデータ記憶装置の初期化信号を出力してもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはアドレスカウンタとスレーブ回路のアドレスカウントとは合致するように、I2C監視シーケンシャルリードデータ記憶装置の電源投入時のみにアドレスカウンタを初期化してもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはアドレスカウンタが、マスタ回路からスレーブ回路に送信されるスタート信号を取得した場合も、マスタ回路からスレーブ回路に送信されるリスタート信号を取得した場合も、いずれの場合にも初期化されなくてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはスレーブ回路がEEPROMであり、I2C監視シーケンシャルリードデータ記憶装置は、マスタ回路がI2Cインターフェースを介して読み出したEEPROMの所定領域に記憶されたデータを取得して記憶する記憶部を備えてもよい。
また、本発明にかかるI2C監視シーケンシャルリードデータ記憶装置は、さらに好ましくはI2Cインターフェースの読み出し方式が、ランダムリード方式またはシーケンシャルリード方式またはシーケンシャルランダムリード方式のいずれか一つ以上の方式であってもよい。
様々な読み出し方式に対して、汎用性高く対応できるI2C監視シーケンシャルリードデータ記憶装置を提供できる。
100・・マスタ回路−スレーブ回路間通信装置、110・・マスタ回路、120・・スレーブ回路、130・・I2C監視シーケンシャルリードデータ記憶装置、140・・I2Cインターフェース、150・・通信ユニット。
I2Cを制御する側の回路をマスタ回路とし、I2Cにより制御される側の回路をスレーブ回路とする。スレーブ回路は、典型的にはEEPROM等のメモリである。I2Cインターフェースにより接続されたマスタ回路とスレーブ回路とは、スレーブ回路に書き込まれているデータを、マスタ回路以外のユニット内で必要とされる場合がある。
このような場合には、既存のマスタ回路とスレーブ回路とに影響を及ぼすことなく、I2Cインターフェースを監視して必要なデータを取得することが好ましい。I2C監視リードデータ記憶装置は、マスタ回路がスレーブ回路に対してI2Cインターフェースを介して読み出し制御をする際に、読み出されたデータ(リードデータとも称する)を取り出す。そこで、以下シーケンシャルリード方式等のI2C読み出し方式について詳細に説明した上で、各実施形態について説明をすることとする。
図1は、マスタ回路−スレーブ回路間通信装置100の構成を例示する概念図である。図1に示すように、スレーブ回路120とマスタ回路110との間は、I2Cインターフェース140を介して接続される。また、I2Cインターフェース140は、シリアルデータ(適宜SDAまたはsdaとも称する)接続線140aと、シリアルクロック(適宜SCLまたはsclとも称する)接続線140bとがあり、各々双方向通信が可能なように接続される。
また、I2C監視シーケンシャルリードデータ記憶装置130は、シリアルデータ接続線140aとシリアルクロック接続線140bとの通信データを各々分岐入力されるように、シリアルデータ接続線140aとシリアルクロック接続線140bとに接続される。シリアルデータ接続線140aは、典型的にはスレーブ回路120から読み出されたPI情報等の各種情報を通信データとして伝送する。また、シリアルクロック接続線140bは、典型的にはスレーブ回路120とマスタ回路110との間で同期させるためのクロック信号を伝送する。
図1に示すマスタ回路−スレーブ回路間通信装置100においては、上述した接続構成により、I2C監視シーケンシャルリードデータ記憶装置130が、スレーブ回路120とマスタ回路110との間の通信データを必要に応じて取得できる。
典型的には、スレーブ回路100が予めPI情報を格納されたEEPROMであれば、マスタ回路110がEEPROMのPI情報を読み出し制御する際に、I2C監視シーケンシャルリードデータ記憶装置130が、I2Cインターフェースを経由する読み出されたPI情報を取得し記憶することができる。
I2C監視シーケンシャルリードデータ記憶装置130は、シーケンシャルリード方式で読み出すことで、スレーブ回路120内の全てのPI情報等の全データを一回の読み出し制御により一括して比較的短時間で読み出すことが可能である。シーケンシャルリード方式に対応する読み出し回路は、回路規模を比較的シンプルかつ小さくすることが可能であり、安価にできるので多用される傾向にある。
なお、図1においては、マスタ回路110とI2C監視シーケンシャルリードデータ記憶装置130とが、通信ユニット150内に備えられる構成として記載したが、I2C監視シーケンシャルリードデータ記憶装置130の配置位置はこれに限定されるものではない。例えば、スレーブ回路120が配置されたユニットがその機能を有するように、スレーブ回路120とI2C監視シーケンシャルリードデータ記憶装置130とを同一ユニットに構成してもよい。
ここで、シーケンシャルリード方式に対応したI2C監視シーケンシャルリードデータ記憶装置130(1)の構成概要について説明する。図2は、シーケンシャルリード方式のみに対応したI2C監視シーケンシャルリードデータ記憶装置130(1)の構成概要を例示する図である。
図2に示すようにI2C監視シーケンシャルリードデータ記憶装置130(1)は、マスタ回路110とスレーブ回路120との間の通信スタート信号が、シリアルデータ接続線140aから入力されたことを検出するスタート検出部210を備える。また、I2C監視シーケンシャルリードデータ記憶装置130(1)は、マスタ回路110とスレーブ回路120との間の通信終了信号(ナック「Nack」とも称する)が、シリアルデータ接続線140aから入力されたことを検出するナック(「Nack」とも称する)検出部220を備える。
セットリセット部230は、スタート検出部210がスタート信号を検出すると、「enable」信号をビットカウンタ240に出力し、「enable」信号により初期化されたビットカウンタ240がカウントアップを開始する。また、セットリセット部230は、Nack検出部220が通信終了信号を検出すると、ビットカウンタ240をディスエーブルとする。次の「Start」検出時に、I2C監視シーケンシャルデータ記憶装置130全体を初期化する。I2C監視シーケンシャルリードデータ記憶装置130(1)全体を初期化すると、I2C監視シーケンシャルリードデータ記憶装置130(1)が備える各種カウンタのカウンタ値は典型的にはゼロにリセットされることとなる。
ビットカウンタ240が0乃至8ビットの計9ビットをカウントすると、バイトカウンタ250が初期値ゼロから1バイトずつカウントアップする。典型的には、ビットカウンタ240がカウントする計9ビットのうち8ビット相当分が読み出しデータ等であり、ビットカウンタ240がカウントする計9ビットのうち1ビット相当分が読み出しデータの受信に対するマスタ回路110からの返信であるアック(「Ack」とも称する)信号またはナック信号となる。なお、バイトカウンタ250は、通信スタート「Start」または通信再スタート「Re Start」により、ゼロにリセットされる。
また、第一デコーダ部260は、バイトカウンタ250のカウンタ値等から、マスタ回路110がスレーブ回路120へ読み出し指示する「read bit」のタイミングを検知する。
第二デコーダ部270は、バイトカウンタ250のカウンタ値等に基づいて、スレーブ回路120から読み出されたデータ(「read data」とも称する)を受信したマスタ回路110が、スレーブ回路120にアック信号を通知するタイミングを検知する。
第二デコーダ部270が、「read data」後のアック信号のタイミングを検知すると「enable」信号がアドレスカウンタ290へと出力されて、アドレスカウンタ290がカウントアップを開始する。第三デコーダ部2a0は、アドレスカウンタ290のカウンタ値から、読み出されたデータを記憶部2bに記憶させるタイミングを検知する。なお、アドレスカウンタ290は、スレーブ回路120のアドレス相当数をカウントアップする。
シリアル/パラレル変換部280は、シリアルデータ接続線140aから入力された通信データ(典型的にはEEPROMから読み出されたデータ)をパラレル変換する。また、記憶部2bは、シリアル/パラレル変換部280によりパラレル変換されたデータを、第三デコーダ部2a0が検知したタイミングで記憶する。
記憶部2bは、典型的には8ビット毎に順次取得される「read data0」、「read data1」、・・、「read datan」をそれぞれ、順次レジスタ2b0、レジスタ2b1、・・レジスタ2bn(nは任意の自然数であり、典型的には255である)に、第三デコーダ部2a0からのトリガ入力により記憶する。
ビットカウンタ240とバイトカウンタ250とシリアル/パラレル変換部280とアドレスカウンタ290とには、各々シリアルクロック接続線140bからクロック信号が入力される。すなわち、I2C監視シーケンシャルリードデータ記憶装置130(1)は、マスタ回路110とスレーブ回路120とに同期して動作処理する。
図3は、I2C監視シーケンシャルリードデータ記憶装置130(1)の動作処理の概要を示すタイミングチャート概念図である。図3においては、スレーブ回路120のメモリ容量が256バイトである場合のチャートを例示したものである。
図3において、スタート検出部210が通信スタート信号を検出すると、セットリセット部230が「enable」信号を出力する。ビットカウンタ240は、「enable」信号によりゼロにリセットされてカウントアップを開始する。また、シリアルデータ接続線140aから入力された「read data0」は、第三デコーダ部2a0が指示するタイミングでレジスタ2b0に記憶される。
一方、第二デコーダ部270が、「read data0」の後のAck信号タイミングを検出すると、アドレスカウンタ290が順次カウントアップを開始する。なお、シーケンシャル方式においては、アドレスカウンタ290は、その後バイトカウンタ250のカウント値に対して1バイト遅れるように255バイトまで順次カウントアップする。すなわち、アドレスカウンタ290のカウント値が1の場合には、「read data1」がレジスタ2b1に、第三デコーダ部2a0が指示するタイミングで格納される。また、アドレスカウンタ290のカウント値が255の場合には、「read data255」がレジスタ2b255に、第三デコーダ部2a0が指示するタイミングで格納される。
また、Nack検出部220が通信終了を指示するNack信号を検出すると、セットリセット部230の「enable」出力が停止されて、ビットカウンタ240のカウントアップが停止する。ビットカウンタ240のカウントアップが停止すると、I2C監視シーケンシャルリードデータ記憶装置130(1)の動作処理が停止する。
図4は、3種類のI2C通信方式について説明する概念図である。図4(a)はランダムリード方式についてマスタ回路110とスレーブ回路120との間のI2C通信を説明する概念図である。また、図4(b)はシーケンシャルリード方式についてマスタ回路110とスレーブ回路120との間のI2C通信を説明する概念図である。また、図4(c)はシーケンシャルランダムリード方式についてマスタ回路110とスレーブ回路120との間のI2C通信を説明する概念図である。
図4(a)に示すように、ランダムリード方式においては、マスタ回路110から通信スタート信号「Start」と、スレーブ回路120を特定するデバイスアドレスに書き込み信号を加えた「Device add+Write」と、が送信される。
スレーブ回路120は、「Device add+Write」を正しく受信すると、マスタ回路110に「Ack」を返信する。また、スレーブ回路120は、「Device add+Write」を正しく受信しなければ、マスタ回路110に「Nack」を返信する。「Device add+Write」を正しく受信しない場合とは、例えば指示されたデバイスアドレスに該当するスレーブ回路120が存在しない場合等がある。
なお、ここでスレーブ回路120から返信される「Nack」は通信終了信号とは異なるので、Nack検出部220が検出することはなく、I2C監視シーケンシャルリードデータ記憶装置130(1)の動作と処理とが終了することはない。
次に、マスタ回路110が、スレーブ回路120の特定領域を指定するバイトアドレス「Byte add」を送信する。バイトアドレスは、典型的にはEEPROMの読み出し対象情報が格納されているアドレスとなる。
スレーブ回路120は、「Byte add」を正しく受信すると、マスタ回路110にAckを返信する。また、スレーブ回路120は、「Byte add」を正しく受信しなければ、マスタ回路110にNackを返信する。「Byte add」を正しく受信しない場合とは、例えば指示されたバイトアドレスに該当するメモリ領域が存在しない場合等がある。
次に、マスタ回路110から通信再スタート信号「Re Start」と、スレーブ回路120を特定するデバイスアドレスに読み出し信号を加えた「Device add+Read」と、が送信される。
スレーブ回路120は、「Device add+Read」を正しく受信すると、マスタ回路110にAckを返信する。また、スレーブ回路120は、「Device add+Read」を正しく受信しなければ、マスタ回路110にNackを返信する。また、スレーブ回路120は、指定されたバイトアドレスに格納されている情報を読み出した「Read data」をマスタ回路110に送信する。
最後に、マスタ回路110は、通信終了を指示する「Nack」をスレーブ回路120に送信してマスタ回路110とスレーブ回路120との通信が終了する。ランダムリード方式においては、読み出し対象となる情報ごとに、読み出し対象となる情報が格納されているスレーブ回路120を特定する情報(「Device add」に対応)と、格納場所を特定する情報(「Byte add」)とをマスタ回路110が指示することとなる。これにより、マスタ回路110は、所望の情報を任意の順序で読み出すことができる。以上が、ランダムリード方式のI2C通信の概要説明となる。
また、図4(b)に示すように、シーケンシャルリード方式においては、マスタ回路110から通信スタート信号「Start」と、スレーブ回路120を特定するデバイスアドレスに読み出し信号を加えた「Device add+Read」と、が送信される。
スレーブ回路120は、「Device add+Read」を正しく受信すると、マスタ回路110に「Ack」を返信する。また、スレーブ回路120は、「Device add+Read」を正しく受信しなければ、マスタ回路110に「Nack」を返信する。「Device add+Read」を正しく受信しない場合とは、例えば指示されたデバイスアドレスに該当するスレーブ回路120が存在しない場合等がある。
シーケンシャルリード方式においては、マスタ回路110が、スレーブ回路120の特定領域を指定するバイトアドレス「Byte add」を送信する必要はない。マスタ回路110は、典型的にはEEPROMに格納されている情報を、最初のアドレスから順次全て読み出すこととなる。
指定されたスレーブ回路120は、格納されている情報を読み出した「Read data」をマスタ回路110に送信する。マスタ回路110は、「Read data」を正しく受信すれば、スレーブ回路120に「Ack」を返信する。その後、スレーブ回路120は、格納されている情報を順次読み出した「Read data」をマスタ回路110に順次送信する。また、マスタ回路110は、「Read data」を正しく受信する毎に、スレーブ回路120に「Ack」を返信する。
最後に、マスタ回路110は、通信終了を指示する「Nack」をスレーブ回路120に送信してマスタ回路110とスレーブ回路120との通信が終了する。シーケンシャルリード方式においては、読み出し対象となる情報ごとに、格納場所を特定する情報(「Byte add」に対応)とをマスタ回路110が指示する必要がない。これにより、マスタ回路110は、所望の情報を比較的迅速に読み出すことができる。以上が、シーケンシャルリード方式のI2C通信の概要説明となる。
また、図4(c)に示すように、シーケンシャルランダムリード方式においては、前段部がランダムリード方式であり後段部がシーケンシャルリード方式である。すなわち、両者を連続的に繋げた読み出し方式となるので、説明の重複を避けるためにここでは詳述を避ける。
シーケンシャルランダムリード方式においては、ランダムリード方式が終了した時点での最後に読み出されたバイトアドレスに対応する特定領域から、シーケンシャルリード方式により順次読み出されることとなる。
(第一の実施形態)
図5は、第一の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(2)の構成を説明する概念図である。I2C監視シーケンシャルリードデータ記憶装置130(2)は、スレーブ回路120の特定領域を指定するバイトアドレス「Byte add」を、アドレスカウンタ290(2)の初期値としてロードする。これにより、シーケンシャルリード方式とランダムリード方式とシーケンシャルランダムリード方式とのいずれのI2C読み出し方式に対しても対応可能である。
図5は、第一の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(2)の構成を説明する概念図である。I2C監視シーケンシャルリードデータ記憶装置130(2)は、スレーブ回路120の特定領域を指定するバイトアドレス「Byte add」を、アドレスカウンタ290(2)の初期値としてロードする。これにより、シーケンシャルリード方式とランダムリード方式とシーケンシャルランダムリード方式とのいずれのI2C読み出し方式に対しても対応可能である。
なお、図5においては、図2において既に説明した構成と同一の部位には対応する符号を付して、説明の重複を避けるためにここでは説明を避けることとし、I2C監視シーケンシャルリードデータ記憶装置130(1)と相違する構成等について説明する。
I2C監視シーケンシャルリードデータ記憶装置130(2)は、マスタ回路110からバイトアドレスが送信されるタイミングを検出するバイトアドレスデコーダ部510を備える。また、I2C監視シーケンシャルリードデータ記憶装置130(2)は、スレーブ回路120から、バイトアドレス受信に対する「Ack」が送信されるタイミングを検出するバイトアドレスアックデコーダ部520を備える。
バイトアドレスデコーダ部510とバイトアドレスアックデコーダ部520とは、各々ビットカウンタ240(2)とバイトカウンタ250(2)とのカウント値が共に入力され、ビットカウンタ240(2)とバイトカウンタ250(2)とのカウント値に基づいて各々タイミングを検出する。
また、I2C監視シーケンシャルリードデータ記憶装置130(2)は、マスタ回路110から送信されるバイトアドレス「Byte add」を、一時記憶するバイトアドレスレジスタ530を備える。バイトアドレスレジスタ530は、シリアル/パラレル変換部280(2)でパラレル変換されたバイトアドレス「Byte add」を、バイトアドレスデコーダ部510が検出したタイミングで取得して記憶する。
アドレスカウンタ290(2)は、バイトアドレスレジスタ530が記憶するバイトアドレス「Byte add」を、バイトアドレスアックデコーダ部520が検出したタイミングで初期値としてロード(取得ともいう)する。その後、アドレスカウンタ290(2)は、第二デコーダ部270(2)が、「read data」の後の「Ack」信号タイミングを検出すると、ロードしたバイトアドレス「Byte add」から順次カウントアップを開始する。
なお、I2C監視シーケンシャルリードデータ記憶装置130(2)は、I2C監視シーケンシャルリードデータ記憶装置130(1)の構成を備えているので、シーケンシャル方式に対応可能である。
図6は、ランダム方式である場合のI2C監視シーケンシャルリードデータ記憶装置130(2)の動作と処理との概要を説明するチャート図である。また、図6は、マスタ回路110から指示されたバイトアドレス「Byte add」が、「7」である場合の例である。
図6において、スタート検出部210(2)が、マスタ回路110からの通信スタート信号「Start」を検出すると、セットリセット部230(2)が「enable」信号をビットカウンタ240(2)に出力し、「enable」信号によりビットカウンタ240(2)が初期化されてカウントアップを開始する。
また、バイトアドレス受信に対する「Ack」がスレーブ回路120から送信されるタイミングをバイトアドレスアックデコーダ部520が検出すると、バイトアドレスレジスタ530に一時記憶されたバイトアドレス「Byte add=7」は、アドレスカウンタ290(2)に初期値としてロードされる。
また、スレーブ回路120のバイトアドレス「Byte add=7」から読み出された読み出しデータ「Read data」は、シリアル/パラレル変換部280(2)でパラレル変換された後に、第三デコーダ部2a0(2)がアドレスカウンタ290(2)のカウンタ値から読み出されたデータを記憶部2b(2)に記憶させるタイミングを検知すると、バイトアドレス「Byte add=7」に対応するレジスタ2b7(2)に記憶される。
また図7は、シーケンシャルランダム方式である場合のI2C監視シーケンシャルリードデータ記憶装置130(2)の動作と処理との概要を説明するチャート図である。図7においては、バイトアドレス「Byte add」が、「7」から10バイト相当分を読み出す例を示す。
図7において、スタート検出部210(2)が、マスタ回路110からの通信スタート信号「Start」を検出すると、セットリセット部230(2)が「enable」信号をビットカウンタ240(2)に出力し、「enable」信号によりビットカウンタ240(2)がゼロに初期化されて、クロック「scl」の立ち上がりでカウントアップを開始する。なお、バイトカウンタ250(2)は、通信スタート「Start」または通信再スタート「Re Start」により、ゼロにリセットされる。
また、バイトアドレス受信に対する「Ack」がスレーブ回路120から送信されるタイミングをバイトアドレスアックデコーダ部520が検出すると、バイトアドレスレジスタ530に一時記憶されたバイトアドレス「Byte add=7」は、アドレスカウンタ290(2)に初期値「7」としてロードされる。
また、スレーブ回路120のバイトアドレス「Byte add=7」から読み出された読み出しデータ「Read data」は、シリアル/パラレル変換部280(2)でパラレル変換された後に、第三デコーダ部2a0(2)がアドレスカウンタ290(2)のカウンタ値から読み出されたデータを記憶部2b(2)に記憶させるタイミングを検知すると、バイトアドレス「Byte add=7」に対応するレジスタ2b7(2)に記憶される。ここまでが、シーケンシャルランダム方式におけるランダム方式に対応するチャートである。これ以降、シーケンシャルランダム方式におけるシーケンシャル方式に対応するチャートとなる。
第二デコーダ部270(2)がバイトアドレス「Byte add=7」から読み出された「read data」の後の「Ack」信号タイミングを検出すると、第二デコーダ部270(2)がアドレスカウンタ290(2)に「enable」を出力する。「enable」を入力されたアドレスカウンタ290(2)は、既にロードされている初期値7から16まで順次カウントアップを開始する。
以降、I2C監視シーケンシャルリードデータ記憶装置130(2)は、シーケンシャル方式で説明したように、順次取得される「read data8」、「read data9」、・・、「read data16」をそれぞれ、順次レジスタ2b8、レジスタ2b9、・・レジスタ2b16に、第三デコーダ部2a0(2)からのトリガ入力により記憶する。なお、アドレスカウンタ290は、スレーブ回路120のアドレス相当数をカウントアップする。
そして、Nack検出部220(2)が、マスタ回路110からスレーブ回路120へ送信された通信終了を指示する「Nack」を検出すると、I2C監視シーケンシャルリードデータ記憶装置130(2)の動作と処理とが終了する。
(第二の実施形態)
第二の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(3)は、デバイスアドレス「Device add」またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信「Ack」「Nack」を監視する。
第二の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(3)は、デバイスアドレス「Device add」またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信「Ack」「Nack」を監視する。
そして、デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、のいずれか一方が「Nack」であれば、I2C監視シーケンシャルリードデータ記憶装置130(3)は、スレーブ回路120から読み出された「Read data」を記憶しない。
デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、のいずれか一方が「Nack」であれば、デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、の少なくともいずれか一方が正常に受信されていないと考えられるので、当該バイトアドレス「Byte add」から読み出された読み出しデータ「Read data」の信頼度は低下すると考えられる。
これにより、I2C監視シーケンシャルリードデータ記憶装置130(3)は、信頼性の高い読み出しデータ「Read data」のみを記憶することになるので、記憶された「Read data」の信頼性を向上させることができる。
図8と図14とは、I2C監視シーケンシャルリードデータ記憶装置130(3)の構成を例示する概念図である。図8に示すI2C監視シーケンシャルリードデータ記憶装置130(3)は、バイトアドレス「Byte add」受信後のスレーブ回路120からの返信が「Nack」であれば、スレーブ回路120から読み出された「Read data」を記憶しない構成例である。
図8においては、既に説明したI2C監視シーケンシャルリードデータ記憶装置130(2)と同一の構成部位については対応する符号を付して、説明の重複を避けるためにここでは詳述を避けることとする。
図8に示すように、I2C監視シーケンシャルリードデータ記憶装置130(3)は、バイトアドレス「Byte add」受信後の「Ack」または「Nack」を一時記憶するアックナックレジスタ810を備える。
アックナックレジスタ810は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するバイトアドレスアックデコーダ部520(2)からのトリガ入力により、シリアル/パラレル変換部280(3)でパラレル変換された「Ack」または「Nack」を、一時記憶する。
また、アックナックレジスタ810は、一時記憶した情報が「Nack」であれば、第三デコーダ部2a0(3)のトリガ出力をマスクする。第三デコーダ部2a0(3)のトリガ出力がマスクされると、取得された「Read data」を記憶するタイミングが与えられないので、記憶部2b(3)は「Read data」を記憶しない。
なお、I2C監視シーケンシャルリードデータ記憶装置130(3)は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するバイトアドレスアックデコーダ部520(2)に替えて、またはバイトアドレスアックデコーダ部520(2)と共にデバイスアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するデバイスアドレスアックデコーダ部を備えてもよい。
また、図14に示すI2C監視シーケンシャルリードデータ記憶装置130(6)は、デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、の少なくともいずれか一方が「Nack」であれば、スレーブ回路120から読み出された「Read data」を記憶しない構成例である。これにより、I2C監視シーケンシャルリードデータ記憶装置130(6)は、さらに信頼性の高い記憶データを保持することができる。
I2C監視シーケンシャルリードデータ記憶装置130(6)は、I2C監視シーケンシャルリードデータ記憶装置130(3)が備えるバイトアドレスアックデコーダ部520(2)に替えて、バイトアドレスデバイスアドレスアックデコーダ部520(5)を備える。
バイトアドレスデバイスアドレスアックデコーダ部520(5)は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングと、デバイスアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングと、を検出する。
アックナックレジスタ810は、上述のタイミングを検出したバイトアドレスデバイスアドレスアックデコーダ部520(5)からのトリガ入力により、シリアル/パラレル変換部280(3)でパラレル変換された「Ack」または「Nack」を、一時記憶する。
また、I2C監視シーケンシャルリードデータ記憶装置130(6)において、アックナックレジスタ810は、一時記憶した情報が「Nack」であれば、第三デコーダ部2a0(3)のトリガ出力をマスクする。第三デコーダ部2a0(3)のトリガ出力がマスクされると、取得された「Read data」を記憶するタイミングが与えられないので、記憶部2b(3)は「Read data」を記憶しない。
図9は、ランダムリード方式でバイトアドレスが「7」である場合のI2C監視シーケンシャルリードデータ記憶装置130(6)の動作及び処理の概要を説明するチャート図である。図9に示すように、I2C監視シーケンシャルリードデータ記憶装置130(6)は、スレーブ回路120を特定するデバイスアドレスに書き込み信号を加えた「Device add+Write」の受信後の返信が「Nack」であれば、アックナックレジスタ810が第三デコーダ部2a0(3)をマスクする。
アックナックレジスタ810が第三デコーダ部2a0(3)をマスクすると、記憶部2b(3)は読み出された「Read data7」を記憶するタイミングが与えられないので、「Read data7」はレジスタ2b7(3)に記憶されないこととなる。
なお、図9におけるI2C監視シーケンシャルリードデータ記憶装置130(6)のその余の動作と処理とは、I2C監視シーケンシャルリードデータ記憶装置130(2)の動作と処理と、として図6で既に説明しているので、説明の重複を避けるためにここでは詳述をしないこととする。
また、I2C監視シーケンシャルリードデータ記憶装置130(6)は、スレーブ回路120を特定するデバイスアドレスに読み出し信号を加えた「Device add+Read」の受信後の返信が「Nack」であれば、アックナックレジスタ810が第三デコーダ部2a0(3)をマスクする。すなわち、第二の実施形態における「Device add」は、「Device add+Read」である場合も「Device add+Write」である場合もいずれの場合においても含まれるものとする。
(第三の実施形態)
第三の実施形態で説明するI2C監視シーケンシャルリードデータ記憶装置130(4)は、第二の実施形態で説明したI2C監視シーケンシャルリードデータ記憶装置130(3),130(6)等において、アックナックレジスタ810(2)が第三デコーダ部2a0(4)をマスクすることに替えて、アックナックレジスタ810(2)がNack検出部220(4)にI2C監視シーケンシャルリードデータ記憶装置130(4)全体の動作と制御とを終了させる。
第三の実施形態で説明するI2C監視シーケンシャルリードデータ記憶装置130(4)は、第二の実施形態で説明したI2C監視シーケンシャルリードデータ記憶装置130(3),130(6)等において、アックナックレジスタ810(2)が第三デコーダ部2a0(4)をマスクすることに替えて、アックナックレジスタ810(2)がNack検出部220(4)にI2C監視シーケンシャルリードデータ記憶装置130(4)全体の動作と制御とを終了させる。
すなわち、アックナックレジスタ810(2)が「Nack」を一時記憶した場合には、Nack検出部220(4)は、通信終了信号「Nack」を検出した場合と同じリセット動作をセットリセット部230(4)に指示し、I2C通信監視動作が終了する。
これにより、I2C監視シーケンシャルリードデータ記憶装置130(4)は、監視するI2C通信に異常があるかもしれない状況においては、「Read data」の取得自体を停止するので、信頼性の低いデータは取得もされず記憶もされないので好ましい。換言すれば、I2C監視シーケンシャルリードデータ記憶装置130(4)に記憶される例えばPI情報等は、極めて信頼性の高い情報のみとなる。
デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、のいずれか一方が「Nack」であれば、デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、の少なくともいずれか一方が正常に受信されていないと考えられるところ、I2C監視シーケンシャルリードデータ記憶装置130(4)は、信頼性の高い読み出しデータ「Read data」のみを記憶することになるので、記憶された「Read data」の信頼性を向上させることができる。
図10と図15とは、I2C監視シーケンシャルリードデータ記憶装置130(4)の構成例を概念的に説明するブロック図である。図10に示すI2C監視シーケンシャルリードデータ記憶装置130(3)は、バイトアドレス「Byte add」受信後のスレーブ回路120からの返信が「Nack」であれば、I2C監視動作を停止して通信スタート信号「Start」待ちとなる構成例である。
図10においては、既に説明したI2C監視シーケンシャルリードデータ記憶装置130(3)と同一の構成部位については対応する符号を付して、説明の重複を避けるためにここでは詳述を避けることとする。
図10に示すように、I2C監視シーケンシャルリードデータ記憶装置130(4)は、バイトアドレス「Byte add」受信後の「Ack」または「Nack」を一時記憶するアックナックレジスタ810(2)を備える。
アックナックレジスタ810(2)は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するバイトアドレスアックデコーダ部520(3)からのトリガ入力により、シリアル/パラレル変換部280(4)でパラレル変換された「Ack」または「Nack」を、一時記憶する。
また、アックナックレジスタ810(2)は、一時記憶した情報が「Nack」であれば、Nack検出部220(4)に信号出力する。信号出力を受けたNack検出部220(4)は、セットリセット部230(4)に初期化信号を出力させる。セットリセット部230(4)の初期化信号を入力されたビットカウンタ240(4)は、カウントアップを停止する。
なお、I2C監視シーケンシャルリードデータ記憶装置130(4)は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するバイトアドレスアックデコーダ部520(3)に替えて、またはバイトアドレスアックデコーダ部520(3)と共にデバイスアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングを検出するデバイスアドレスアックデコーダ部を備えてもよい。
また、図15に示すI2C監視シーケンシャルリードデータ記憶装置130(7)は、デバイスアドレス「Device add」受信後のスレーブ回路120からの返信、またはバイトアドレス「Byte add」受信後のスレーブ回路120からの返信、の少なくともいずれか一方が「Nack」であれば、I2C監視動作を停止して通信スタート信号「Start」待ちとなる構成例である。これにより、I2C監視シーケンシャルリードデータ記憶装置130(7)は、さらに信頼性の高い記憶データを保持することができる。
I2C監視シーケンシャルリードデータ記憶装置130(7)は、I2C監視シーケンシャルリードデータ記憶装置130(4)が備えるバイトアドレスアックデコーダ部520(3)に替えて、バイトアドレスデバイスアドレスアックデコーダ部520(6)を備える。
バイトアドレスデバイスアドレスアックデコーダ部520(6)は、バイトアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングと、デバイスアドレス受信に対する「Ack」または「Nack」がスレーブ回路120から送信されるタイミングと、を検出する。
アックナックレジスタ810(2)は、上述のタイミングを検出したバイトアドレスデバイスアドレスアックデコーダ部520(6)からのトリガ入力により、シリアル/パラレル変換部280(4)でパラレル変換された「Ack」または「Nack」を、一時記憶する。
また、I2C監視シーケンシャルリードデータ記憶装置130(7)は、アックナックレジスタ810(2)が一時記憶した情報が「Nack」であれば、I2C監視動作を終了して「Start」待ちとなる。
図11は、ランダムリード方式でバイトアドレスが「7」である場合のI2C監視シーケンシャルリードデータ記憶装置130(7)の動作及び処理の概要を説明するチャート図である。図11に示すように、I2C監視シーケンシャルリードデータ記憶装置130(7)は、スレーブ回路120を特定するデバイスアドレス「Device add」の受信後の返信が「Nack」であれば、アックナックレジスタ810(2)がNack検出部220(4)に通信終了信号「Nack」を検出した場合と同様の出力をセットリセット部230(4)にさせる。
すなわち、Nack検出部220(4)はセットリセット部230(4)に「enable」信号の出力を停止させてビットカウンタ240(4)のカウントアップを停止させる。
なお、図11におけるI2C監視シーケンシャルリードデータ記憶装置130(7)のその余の動作と処理とは、I2C監視シーケンシャルリードデータ記憶装置130(2)の動作と処理と、として図6で既に説明しているので、説明の重複を避けるためにここでは詳述をしないこととする。
また、I2C監視シーケンシャルリードデータ記憶装置130(7)は、スレーブ回路120を特定するデバイスアドレスに読み出し信号を加えた「Device add+Read」の受信後の返信が「Nack」であれば、I2C監視制御動作を停止する。すなわち、第三の実施形態における「Device add」は、「Device add+Read」である場合も「Device add+Write」である場合もいずれの場合においても含まれるものとする。
(第四の実施形態)
第四の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(5)は、単一のマスタ回路110に複数のスレーブ回路120がI2C接続されている場合に、情報取得対象となるスレーブ回路120を特定する期待値と、取得したデバイスアドレス「Device add」とを比較する。
第四の実施形態にかかるI2C監視シーケンシャルリードデータ記憶装置130(5)は、単一のマスタ回路110に複数のスレーブ回路120がI2C接続されている場合に、情報取得対象となるスレーブ回路120を特定する期待値と、取得したデバイスアドレス「Device add」とを比較する。
そして、I2C監視シーケンシャルリードデータ記憶装置130(5)は、情報取得対象となるスレーブ回路120を特定する期待値と、取得したデバイスアドレス「Device add」とが一致した場合のみ、情報取得対象となる特定のスレーブ回路120のPI情報等を取得する。
これにより、I2C監視シーケンシャルリードデータ記憶装置130(5)は、接続されているI2Cインターフェース140に複数のスレーブ回路120が存在する場合においても、所望のスレーブ回路120のPI情報等を取得することが可能となる。
図12は、I2C監視シーケンシャルリードデータ記憶装置130(5)の構成概要を概念的に説明する図である。図12においては、上述した実施形態で既に説明した構成部位と同一の部位には対応する符号を付して、説明の重複を避けるためにここでは詳述を避けることとする。
図12に示すように、I2C監視シーケンシャルリードデータ記憶装置130(5)は、デバイスアドレス「Device add」がマスタ回路110から送信されるタイミングを検出するデバイスアドレスデコーダ部1210を備える。デバイスアドレスデコーダ部1210は、ビットカウンタ240(5)とバイトカウンタ250(5)とのカウンタ値に基づいて、デバイスアドレス「Device add」がマスタ回路110から送信されるタイミングを検出する。
また、I2C監視シーケンシャルリードデータ記憶装置130(5)は、デバイスアドレスデコーダ部1210が検出したタイミングをトリガとして、シリアルデータ接続線140aから入力されたデバイスアドレス「Device add」を一時記憶するデバイスアドレスレジスタ1220を備える。デバイスアドレスレジスタ1220が一時記憶するデバイスアドレス「Device add」は、シリアル/パラレル変換部280(5)がパラレルに変換したデータである。
また、I2C監視シーケンシャルリードデータ記憶装置130(5)は、デバイスアドレスレジスタ1220に一時記憶されたデバイスアドレス「Device add」と、予め設定されている期待値と、を比較するデバイスアドレス期待値比較部1230を備える。
デバイスアドレス期待値比較部1230は、情報取得対象である特定のスレーブ回路120に対応するデバイスアドレス「Device add」を期待値として記憶する期待値記憶部1231を備える。期待値記憶部1231が記憶する期待値は、オペレータ等により予め設定されていてもよい。
デバイスアドレス期待値比較部1230がデバイスアドレス「Device add」と期待値とを比較した結果、一致する場合には、I2C監視シーケンシャルリードデータ記憶装置130(5)は、処理を継続して「Read data」の取得と記憶とをする。
また、デバイスアドレス期待値比較部1230がデバイスアドレス「Device add」と期待値とを比較した結果、一致しない場合には、デバイスアドレス期待値比較部1230は、Nack検出部220(5)に不一致信号出力する。Nack検出部220(5)は、デバイスアドレス期待値比較部1230から不一致信号を入力されると、通信終了信号「Nack」を検出した場合と同様に、I2C監視シーケンシャルリードデータ記憶装置130(5)の監視動作を停止させる処理をする。
図12において、不一致信号を受けたNack検出部220(5)は、セットリセット部230(5)に初期化信号を出力させる。セットリセット部230(5)の初期化信号を入力されたビットカウンタ240(5)は、カウントアップを停止する。なお、セットリセット部230(5)の初期化信号とは、典型的にはビットカウンタ240(5)に対する「enable」フラグを下げる処理に対応する。
図13は、I2C監視シーケンシャルリードデータ記憶装置130(5)の動作と処理との概要を説明するチャート図である。図13においては、バイトアドレス「Byte add」が、「7」である場合の例を示している。
図13に示すように、期待値記憶部1230は、予め情報取得対象となるスレーブ回路120のデバイスアドレスに対応する期待値「A0h」を記憶している。I2C監視シーケンシャルリードデータ記憶装置130(5)が、シリアルデータ接続線140aから取得したデバイスアドレス「Device add」は「C0h」であり、デバイスアドレスデコーダ部1210からのトリガにより、デバイスアドレスレジスタ1220に「C0h」が一時記憶される。
また、デバイスアドレス期待値比較部1230は、デバイスアドレスレジスタ1220に記憶された「C0h」と、期待値記憶部1230が予め記憶する期待値「A0h」と、比較する。デバイスアドレス期待値比較部1230は、比較結果が不一致であるので不一致信号をNack検出部220(5)に出力する。
Nack検出部220(5)は、セットリセット部230(5)のリセットにトリガを送出し、セットリセット部230(5)は、ビットカウンタ240(5)へ出力する「enable」フラグを下げる。これにより、ビットカウンタ240(5)は、カウントアップを停止して通信スタート「Start」待ち状態となる。この場合には、I2C監視シーケンシャルリードデータ記憶装置130(5)は、次の通信スタート信号「Start」が取得されるまで動作しない。
これにより、I2C監視シーケンシャルリードデータ記憶装置130(5)は、複数のスレーブ回路120が接続されている場合においても、正常な読み出しデータを取り出すことが可能となる。
(第五の実施形態)
第五の実施形態で説明するI2C監視シーケンシャルリードデータ記憶装置130(8)は、第一の実施形態で説明した図5に示すI2C監視シーケンシャルリードデータ記憶装置130(2)の構成と同じ構成となる。
第五の実施形態で説明するI2C監視シーケンシャルリードデータ記憶装置130(8)は、第一の実施形態で説明した図5に示すI2C監視シーケンシャルリードデータ記憶装置130(2)の構成と同じ構成となる。
但し、I2C監視シーケンシャルリードデータ記憶装置130(8)は、アドレスカウンタ290(2)がゼロにリセットされるのは、I2C監視シーケンシャルリードデータ記憶装置130(8)の電源投入(パワーオン)時のみとする。
I2C監視シーケンシャルリードデータ記憶装置130(8)は、アドレスカウンタ290(2)が電源投入時を除いてリセットされないので、I2C監視動作中は常にアドレスカウンタ290(2)のカウンタ値が保持されて、スレーブ回路120のバイトアドレス「Byte add」と一致した値となる。
このため、I2C監視シーケンシャルリードデータ記憶装置130(8)は、様々な読み出し方式で交互にアクセスされた場合においても、常にスレーブ回路120と同一の読み出しアドレスを保持し、正常な読み出しデータを取得して記憶できる。
I2C監視シーケンシャルリードデータ記憶装置130(8)は、典型的にはランダムリード方式の後にシーケンシャルリード方式で読み出し処理があった場合に好適である。ランダム方式によるマスタ回路110とスレーブ回路120との通信終了後は、スレーブ回路120側にランダム方式による最後の読み出しバイトアドレスが保持される。スレーブ回路120は、その電源投入時に読み出しアドレスがゼロに初期化されるのみで、電源が投入されている限り最後の読み出しアドレスが残留する。
一方、I2C監視シーケンシャルリードデータ記憶装置130(8)は、ランダム方式による読み出しが終了した時点の通信終了信号「Nack」により、初期化されることはなく、アドレスカウンタ290(2)がランダム方式による読み出しが終了した時点の読み出しアドレスを保持する。
これにより、スレーブ回路120が保持する読み出しアドレスと、I2C監視シーケンシャルリードデータ記憶装置130(8)が保持する読み出しアドレスとが、合致することとなり、その後シーケンシャル方式に移行した場合でも、双方が保持するアドレスから順次読み出し処理できることとなる。
ここで仮に、I2C監視シーケンシャルリードデータ記憶装置130(8)が、ランダム方式による読み出しが終了した時点の通信終了信号「Nack」により、初期化されるとすれば、アドレスカウンタ290(2)がランダム方式による読み出しが終了した時点の読み出しアドレスを保持せずにカウンタ値がゼロとなる。この場合に、スレーブ回路120が保持する読み出しアドレスは、ランダム方式による読み出しが終了した時点の最後のアドレスである。すなわち、この状態でシーケンシャルリード方式に移行すれば、読み出しアドレスの初期値が、I2C監視シーケンシャルリードデータ記憶装置130(8)とスレーブ回路120とで異なることとなるので、I2C監視シーケンシャルリードデータ記憶装置130(8)は、正確な情報を取得できないこととなる。
第五の実施形態で説明したI2C監視シーケンシャルリードデータ記憶装置130(8)は、アドレスカウンタ290(2)をパワーオンリセット、またはI2C監視シーケンシャルリードデータ記憶装置130(8)が組み込まれたユニットのリセット時のみ(但し、ユニットのリセットにより読み出し対象スレーブ回路120はリセットされないものとする)とするので、様々な方式のI2C通信が継続してされた場合においても、正確に所望の情報を取得して記憶できるので好ましい。
第一の実施形態乃至第五の実施形態で例示したI2C監視シーケンシャルリードデータ記憶装置130(1)乃至I2C監視シーケンシャルリードデータ記憶装置130(8)の構成は、各々、各実施形態での説明に限定されるものではなく、自明な範囲で適宜その構成を変更することができる。
また、第一の実施形態乃至第五の実施形態で例示したI2C監視シーケンシャルリードデータ記憶装置130(1)乃至I2C監視シーケンシャルリードデータ記憶装置130(8)の動作と処理とは、各々、各実施形態での説明に限定されるものではなく、自明な範囲で適宜その動作と処理とを変更することができる。
この発明は、I2Cインターフェースを介して通信するマスタ回路とスレーブ回路との通信データを監視する装置等に利用できる。
Claims (12)
- マスタ回路とスレーブ回路とのI2Cインターフェースを介した通信データを取得するI2C監視シーケンシャルリードデータ記憶装置において、
前記スレーブ回路のアドレス相当数をカウントするアドレスカウンタを備え、
前記スレーブ回路の所定領域を指定するバイトアドレスを取得した場合に、取得した前記バイトアドレスを、前記アドレスカウンタの初期値とする
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1に記載のI2C監視シーケンシャルリードデータ記憶装置において、
取得した前記バイトアドレスを一時記憶するバイトアドレスレジスタを備え、
前記スレーブ回路が前記バイトアドレスの受信に対する正常信号を返信した場合に、前記バイトアドレスレジスタに一時記憶した前記バイトアドレスを、前記アドレスカウンタの初期値とする
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1または請求項2に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記スレーブ回路を特定するデバイスアドレスまたは前記バイトアドレスを受信した前記スレーブ回路が、異常信号を返信した場合に、
取得した前記通信データを記憶しない
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1乃至請求項3のいずれか一項に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記スレーブ回路を特定するデバイスアドレスまたは前記バイトアドレスを受信した前記スレーブ回路の返信信号を一時記憶するアックナックレジスタと、前記アドレスカウンタのカウンタ値をデコードして前記取得した通信データを記憶するタイミングを出力するデコーダ部と、を備え、
前記アックナックレジスタから入力された前記返信信号が異常信号である場合に、前記取得した通信データを記憶しないように、前記デコーダ部は、前記通信データを記憶するタイミングを出力しない
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項3または請求項4に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記スレーブ回路を特定する前記デバイスアドレスの受信または前記バイトアドレスを受信した前記スレーブ回路が、前記異常信号を返信した場合に、
初期化される
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項4に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記マスタ回路と前記スレーブ回路との間の通信を終了する終了信号を検出すると、前記I2C監視シーケンシャルリードデータ記憶装置を初期化するナック検出部を備え、
前記ナック検出部は、前記アックナックレジスタから入力された前記返信信号が異常信号である場合に、前記I2C監視シーケンシャルリードデータ記憶装置を初期化する
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1または請求項2に記載のI2C監視シーケンシャルリードデータ記憶装置において、
複数の前記スレーブ回路が前記I2Cインターフェースを介して接続され、
I2C監視シーケンシャルリードデータ記憶装置は、情報取得対象となる前記スレーブ回路を特定するデバイスアドレス期待値を予め設定され、前記デバイスアドレス期待値に対応する前記スレーブ回路の通信データを記憶する
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項7に記載のI2C監視シーケンシャルリードデータ記憶装置において、
I2C監視シーケンシャルリードデータ記憶装置は、情報取得対象となる前記スレーブ回路を特定するデバイスアドレス期待値を予め記憶する期待値記憶部と、
前記期待値記憶部が記憶する前記デバイスアドレス期待値と、取得した前記デバイスアドレスと、を比較するデバイスアドレス期待値比較部と、を備え、
前記デバイスアドレス期待値比較部は、前記デバイスアドレス期待値と取得した前記デバイスアドレスとが異なる場合に、I2C監視シーケンシャルリードデータ記憶装置の初期化信号を出力する
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1または請求項2に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記アドレスカウンタと前記スレーブ回路のアドレスカウントとは合致するように、前記I2C監視シーケンシャルリードデータ記憶装置の電源投入時のみに前記アドレスカウンタを初期化する
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項9に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記アドレスカウンタは、前記マスタ回路から前記スレーブ回路に送信されるスタート信号を取得した場合も、前記マスタ回路から前記スレーブ回路に送信されるリスタート信号を取得した場合も、いずれの場合にも初期化されない
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1乃至請求項10のいずれか一項に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記スレーブ回路はEEPROMであり、
前記I2C監視シーケンシャルリードデータ記憶装置は、前記マスタ回路が前記I2Cインターフェースを介して読み出した前記EEPROMの前記所定領域に記憶されたデータを取得して記憶する記憶部を備える
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。 - 請求項1乃至請求項11のいずれか一項に記載のI2C監視シーケンシャルリードデータ記憶装置において、
前記I2Cインターフェースの読み出し方式は、ランダムリード方式またはシーケンシャルリード方式またはシーケンシャルランダムリード方式のいずれか一つ以上の方式である
ことを特徴とするI2C監視シーケンシャルリードデータ記憶装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/000809 WO2010097831A1 (ja) | 2009-02-24 | 2009-02-24 | I2c監視シーケンシャルリードデータ記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010097831A1 true JPWO2010097831A1 (ja) | 2012-08-30 |
JP5298185B2 JP5298185B2 (ja) | 2013-09-25 |
Family
ID=42665062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011501345A Expired - Fee Related JP5298185B2 (ja) | 2009-02-24 | 2009-02-24 | I2c監視シーケンシャルリードデータ記憶装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP5298185B2 (ja) |
WO (1) | WO2010097831A1 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5680212B2 (ja) * | 2011-09-27 | 2015-03-04 | 三菱電機株式会社 | スレーブ装置、マスター装置及び通信方法 |
JP6166053B2 (ja) * | 2013-02-06 | 2017-07-19 | ローム株式会社 | 半導体デバイス、通信システム、手振れ補正コントローラ、撮像装置、電子機器 |
CN109213718B (zh) * | 2018-11-12 | 2024-01-26 | 上海艾为电子技术股份有限公司 | 一种i2c通信装置及i2c通信设备 |
US11210260B1 (en) | 2020-07-29 | 2021-12-28 | Astec International Limited | Systems and methods for monitoring serial communication between devices |
CN115658409B (zh) * | 2022-11-11 | 2023-03-14 | 苏州浪潮智能科技有限公司 | 一种异常检测方法、装置、主机设备、系统及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08316973A (ja) * | 1995-05-23 | 1996-11-29 | Hitachi Ltd | 通信処理手段 |
JP2000231539A (ja) * | 1999-02-12 | 2000-08-22 | Ricoh Co Ltd | データ転送システムおよびデータ転送方法 |
US6874052B1 (en) * | 2000-09-29 | 2005-03-29 | Lucent Technologies Inc. | Expansion bridge apparatus and method for an I2C bus |
US20040255193A1 (en) * | 2003-06-12 | 2004-12-16 | Larson Thane M. | Inter integrated circuit router error management system and method |
US7010639B2 (en) * | 2003-06-12 | 2006-03-07 | Hewlett-Packard Development Company, L.P. | Inter integrated circuit bus router for preventing communication to an unauthorized port |
JP4791696B2 (ja) * | 2004-03-02 | 2011-10-12 | オンセミコンダクター・トレーディング・リミテッド | データ転送メモリ及びモジュール |
US7430259B2 (en) * | 2004-04-19 | 2008-09-30 | Intersil Americas Inc. | Two-wire chip-to-chip interface |
JP5160100B2 (ja) * | 2007-02-08 | 2013-03-13 | シャープ株式会社 | データ通信誤動作防止装置、電子機器、データ通信誤動作防止装置の制御方法、データ通信誤動作防止装置の制御プログラム、及び当該プログラムを記録した記録媒体 |
-
2009
- 2009-02-24 WO PCT/JP2009/000809 patent/WO2010097831A1/ja active Application Filing
- 2009-02-24 JP JP2011501345A patent/JP5298185B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP5298185B2 (ja) | 2013-09-25 |
WO2010097831A1 (ja) | 2010-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5298185B2 (ja) | I2c監視シーケンシャルリードデータ記憶装置 | |
EP3537307A1 (en) | Method for handling i2c bus deadlock, electronic device, and communication system | |
US7685325B2 (en) | Synchronous bus controller system | |
JP4966695B2 (ja) | マルチマスタのチェーン接続された二線シリアルバス装置及びディジタル状態機械 | |
US9645898B2 (en) | Storage control device and control device for detecting abnormality of signal line | |
US8364872B2 (en) | Slave and communicating method between a master and the same | |
CN110580235B (zh) | 一种sas扩展器通信方法及装置 | |
CN107357595B (zh) | 一种基于总线的多驱动器固件在线更新系统 | |
US20190215100A1 (en) | Communication apparatus, communication method, program, and communication system | |
WO2012046634A1 (ja) | 電子装置およびシリアルデータ通信方法 | |
US9934117B2 (en) | Apparatus and method for fault detection to ensure device independence on a bus | |
CN112015445A (zh) | 固件更新装置以及固件更新方法 | |
US8391162B2 (en) | Apparatus and method for testing SMNP cards | |
US20090254687A1 (en) | Electronic device for contention detection of bidirectional bus and related method | |
CN113946480A (zh) | 一种i2c总线的检测装置和方法 | |
KR20150110860A (ko) | 차량의 펌웨어 업데이트 장치 및 그 방법 | |
US8151176B2 (en) | CPU instruction RAM parity error procedure | |
US7992012B2 (en) | Power source control circuit, power source control device, power source control system, and information processing device | |
US11012195B2 (en) | Method, sensor, and controller for transmitting a data packet from a sensor to a controller | |
CN109075902A (zh) | 通信装置、通信方法、程序和通信系统 | |
EP3316523A1 (en) | Host-side transceiver device and transceiver system | |
CN108541307B (zh) | 可编程控制器以及同步控制方法 | |
KR20160043378A (ko) | 복수개의 모듈들을 구비하는 차량 기기의 업데이트 장치 및 방법 | |
JP5801330B2 (ja) | デバイスの状態監視方法 | |
US8291143B1 (en) | Single line communication |
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: 20130604 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130617 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |