IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ミネベア株式会社の特許一覧

<>
  • 特開-データ処理装置 図1
  • 特開-データ処理装置 図2
  • 特開-データ処理装置 図3
  • 特開-データ処理装置 図4
  • 特開-データ処理装置 図5
  • 特開-データ処理装置 図6
  • 特開-データ処理装置 図7
  • 特開-データ処理装置 図8
  • 特開-データ処理装置 図9
  • 特開-データ処理装置 図10
  • 特開-データ処理装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024176020
(43)【公開日】2024-12-19
(54)【発明の名称】データ処理装置
(51)【国際特許分類】
   G06F 13/14 20060101AFI20241212BHJP
   G06F 3/00 20060101ALI20241212BHJP
   G06F 13/42 20060101ALI20241212BHJP
   G06F 11/07 20060101ALI20241212BHJP
【FI】
G06F13/14 330E
G06F3/00 W
G06F13/42 310
G06F11/07 193
G06F11/07 140T
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023094209
(22)【出願日】2023-06-07
(71)【出願人】
【識別番号】000114215
【氏名又は名称】ミネベアミツミ株式会社
(74)【代理人】
【識別番号】110001771
【氏名又は名称】弁理士法人虎ノ門知的財産事務所
(72)【発明者】
【氏名】杉田 和彦
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042KK17
5B042MC08
(57)【要約】
【課題】ノイズや電源変動によりシリアルクロックが正常な波形でなくなって異常が発生しても早期に復旧させることのできるデータ処理装置を提供すること。
【解決手段】実施形態のデータ処理装置は、マスターユニットと複数のスレーブユニットとを備え、I2Cの規格により前記マスターユニットと前記スレーブユニットとの間でデータ通信を行うデータ処理装置である。前記マスターユニットは、シリアルデータラインが所定の時間にわたってLレベルであることを検出する検出手段と、前記検出手段により前記シリアルデータラインが所定の時間にわたってLレベルであることが検出された場合に、前記シリアルデータラインがHレベルになるまでシリアルクロックラインにダミークロックを出力し、または所定回数に達するまでシリアルクロックラインにダミークロックを出力する出力手段とを備える。
【選択図】図5

【特許請求の範囲】
【請求項1】
マスターユニットと複数のスレーブユニットとを備え、I2Cの規格により前記マスターユニットと前記スレーブユニットとの間でデータ通信を行うデータ処理装置であって、
前記マスターユニットは、
シリアルデータラインが所定の時間にわたってLレベルであることを検出する検出手段と、
前記検出手段により前記シリアルデータラインが所定の時間にわたってLレベルであることが検出された場合に、前記シリアルデータラインがHレベルになるまでシリアルクロックラインにダミークロックを出力し、または所定回数に達するまでシリアルクロックラインにダミークロックを出力する出力手段と、
を備えるデータ処理装置。
【請求項2】
前記マスターユニットは、更に、前記ダミークロックに続いてスタートコンディションおよびストップコンディションを出力する第2の出力手段を備える、
請求項1に記載のデータ処理装置。
【請求項3】
前記マスターユニットは、インターバルタイマを用いてシリアルデータラインが所定の時間にわたってLレベルであることを検出する、
請求項1に記載のデータ処理装置。
【請求項4】
前記マスターユニットは、インプットキャプチャを用いてシリアルデータラインが所定の時間にわたってLレベルであることを検出する、
請求項1に記載のデータ処理装置。
【請求項5】
前記検出手段により検出される所定の時間は、正常な動作では発生しない前記シリアルデータラインがLレベルとなる時間を超え、他の処理に影響を与えない時間を超えない範囲で決定される、
請求項1に記載のデータ処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理装置に関する。
【背景技術】
【0002】
マイコン等のマスターユニットとセンサまたはEEPROM(Electrically Erasable Programmable Read-Only Memory)等のスレーブユニットとの間のシリアルデータ通信方式としてI2C(Inter-Integrated Circuit)が知られている(例えば、特許文献1~5を参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2005-84792号公報
【特許文献2】特開2017-38825号公報
【特許文献3】特開平9―265436号公報
【特許文献4】特開2016-95629号公報
【特許文献5】特表2002-534734号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述のI2Cにおいては、マスターユニットがスレーブユニット側からデータを読み出す際に、ノイズや電源変動によりシリアルクロックが正常な波形でなくなると、シリアルデータラインがLレベルに固定され、その後のデータ通信ができなくなる場合があった。
【0005】
本発明は、上記に鑑みてなされたものであって、ノイズや電源変動によりシリアルクロックが正常な波形でなくなって異常が発生しても早期に復旧させることのできるデータ処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明の一態様に係るデータ処理装置は、マスターユニットと複数のスレーブユニットとを備え、I2Cの規格により前記マスターユニットと前記スレーブユニットとの間でデータ通信を行うデータ処理装置である。前記マスターユニットは、シリアルデータラインが所定の時間にわたってLレベルであることを検出する検出手段と、前記検出手段により前記シリアルデータラインが所定の時間にわたってLレベルであることが検出された場合に、前記シリアルデータラインがHレベルになるまでシリアルクロックラインにダミークロックを出力し、または所定回数に達するまでシリアルクロックラインにダミークロックを出力する出力手段とを備える。
【0007】
本発明の一態様に係るデータ処理装置は、ノイズや電源変動によりシリアルクロックが正常な波形でなくなって異常が発生しても早期に復旧させることができる。
【図面の簡単な説明】
【0008】
図1図1は、比較例のデータ処理装置の構成例を示す図である。
図2図2は、マスターユニットがスレーブユニット側からデータを正常に読込む処理のタイムチャートの例である。
図3図3は、マスターユニットがスレーブユニット側からデータを読込む際に異常が発生する場合のタイムチャートの例(1)である。
図4図4は、マスターユニットがスレーブユニット側からデータを読込む際に異常が発生する場合のタイムチャートの例(2)である。
図5図5は、異常への対策を施したデータ処理装置の構成例を示す図(1)である。
図6図6は、異常への対策を施したデータ処理装置の構成例を示す図(2)である。
図7図7は、異常への対策を施したデータ処理装置の処理例を示すフローチャート(1)である。
図8図8は、インターバルタイマによる異常の検出の例を示す図である。
図9図9は、マスターユニットがスレーブユニット側からデータを読込む際に異常が発生した場合の対策を含むタイムチャートの例である。
図10図10は、異常への対策を施したデータ処理装置の処理例を示すフローチャート(2)である。
図11図11は、インプットキャプチャによる異常の検出の例を示す図である。
【発明を実施するための形態】
【0009】
以下、実施形態に係るデータ処理装置について図面を参照して説明する。なお、この実施形態によりこの発明が限定されるものではない。また、図面における各要素の寸法の関係、各要素の比率などは、現実と異なる場合がある。図面の相互間においても、互いの寸法の関係や比率が異なる部分が含まれている場合がある。また、1つの実施形態や変形例に記載された内容は、原則として他の実施形態や変形例にも同様に適用される。
【0010】
(比較例)
図1は、比較例のデータ処理装置1の構成例を示す図である。図1において、データ処理装置1は、マイコン等のマスターユニット2と、センサやEEPROM等のIC(Integrated Circuit)等による複数のスレーブユニット31、32、・・とを含んでいる。マスターユニット2、スレーブユニット31、32、・・は、それぞれ接地ラインGNDおよび電源ラインVDDに接続されるとともに、互いにシリアルクロックラインSCLが接続され、シリアルデータラインSDAも互いに接続されている。シリアルクロックラインSCLと電源ラインVDDとの間、およびシリアルデータラインSDAと電源ラインVDDとの間には、それぞれプルアップ抵抗R1、R2が接続されている。マスターユニット2およびスレーブユニット31、32、・・の出力端子はオープンドレインとなっており、ラインに接続されたいずれかの出力端子が短絡状態ではLレベルとなり、ラインに接続された全ての出力端子が開放状態ではプルアップ抵抗R1、R2によりHレベルとなる。
【0011】
図2は、マスターユニット2がスレーブユニット側からデータを正常に読込む処理のタイムチャートの例である。例えば、スレーブアドレス「45H」のスレーブユニット31から読込みを行い、スレーブユニット31がデータ「47H」を出力するものとしている。
【0012】
図2において、例えば時刻t1でマスターユニット2からシリアルクロックラインSCLおよびシリアルデータラインSDAに所定の信号パターンによりスタートコンディションが出力されると、続く時刻t2~t8でシリアルクロックラインSCLのクロックに合わせてシリアルデータラインSDAにスレーブアドレス「45H」に相当する「1000101」(1=Hレベル、0=Lレベル)がマスターユニット2から出力される。続いて、時刻t9ではシリアルクロックラインSCLのクロックに合わせてシリアルデータラインSDAに読込み(READ)に相当する「1」がマスターユニット2から出力される。
【0013】
続いて、スレーブアドレス「45H」に対応するスレーブユニット31から、時刻t10でシリアルクロックラインSCLのクロックに合わせてシリアルデータラインSDAに確認(ACK)に相当する「0」が出力され、続いて、時刻t11~t18でシリアルクロックラインSCLのクロックに合わせてデータ「47H」に相当する「01000111」がスレーブユニット31から出力される。続いて、時刻t19ではI2Cの通信仕様に基づき、読込み(READ)の場合は「1」(NAK)が出力される。そして、時刻t20でマスターユニット2からシリアルクロックラインSCLおよびシリアルデータラインSDAに所定の信号パターンによりストップコンディションが出力され、一連の通信を完了する。
【0014】
図3は、マスターユニット2がスレーブユニット側からデータを読込む際に異常が発生する場合のタイムチャートの例である。スレーブアドレス「45H」のスレーブユニット31から読込みを行い、スレーブユニット31がデータ「47H」を出力しようとするのは図2と同様である。
【0015】
図3において、時刻t13の直前までの処理は図2と同様であるが、時刻t13~t19にかけて、ノイズや電源変動によりシリアルクロックラインSCLのクロックが正常な波形でなくなると、スレーブユニット31からは出力しようとしたデータのビット「0」が維持されたままとなってしまう。すなわち、マスターユニット2は時刻t19でNAKが正常な「1」とならないことで異常を検出し、仕様により異なるが一般的にはリトライを行う。しかし、スレーブユニット31がシリアルデータラインSDAにデータ(READ DATA)の「0」(LOW)を出力しているため、バスビジー(BUS BUSY)状態(SDA=LOW)になり、リトライ処理ができなくなる。そのため、その後のデータ通信ができなくなる。
【0016】
図4は、マスターユニット2がスレーブユニット側からデータを読込む際に異常が発生する場合のタイムチャートの他の例である。スレーブアドレス「45H」のスレーブユニット31から読込みを行い、スレーブユニット31がデータ「47H」を出力しようとするのは図2と同様である。
【0017】
図4において、時刻t10の直前までの処理は図2と同様であるが、時刻t10でノイズや電源変動によりシリアルクロックラインSCLのクロックが正常な波形でなくなると、スレーブユニット31からは出力しようとした確認(ACK)の「0」が時刻t10ではなく次のシリアルクロックラインSCLの立ち上がりの時刻t11で読み込まれる。また、シリアルクロックラインSCLの立ち下がりでシリアルデータラインSDAのデータが次にシフトするが、シリアルクロックラインSCLのクロックが来ないためにシリアルデータラインSDAは「0」が維持されたままとなってしまう。その後にマスターユニット2側からスレーブユニット側にデータを送信しようとしても、バスビジー(BUS BUSY)状態(SDA=LOW)になっているため送信ができなくなる。そのため、その後のデータ通信ができなくなる。
【0018】
(対策例)
図5は、異常への対策を施したデータ処理装置1の構成例を示す図である。図1の比較例の構成と異なるのは、マスターユニット2の汎用入出力端子(GPIO:General Purpose Input/Output)が「SDA LOW(GPIO)端子」としてシリアルデータラインSDAに接続され、インターバルタイマまたはインプットキャプチャによりシリアルデータラインSDAが「0」(Lレベル)に固定されてしまったのを異常として検出するようにしている点である。また、マスターユニット2のシリアルクロックラインSCLは、ソフトウェア的に汎用入出力端子(GPIO)に切り換えが行われるようになっており、異常検出時にシリアルクロックラインSCLにダミークロックを出力し、続いてスタートコンディションとストップコンディションとをシリアルクロックラインSCLおよびシリアルデータラインSDAにより出力するようにしている。なお、ダミークロックだけで異常状態から正常状態に戻すことができる製品に対しては、スタートコンディションとストップコンディションの出力を省略することができる。
【0019】
図6は、異常への対策を施したデータ処理装置1の他の構成例を示す図である。図5の構成と異なるのは、マスターユニット2の汎用入出力端子が「SCL(GPIO)端子」としてシリアルクロックラインSCLに接続されており、異常検出時にシリアルクロックラインSCLにダミークロックを出力し、スタートコンディションとストップコンディションとをシリアルクロックラインSCLおよびシリアルデータラインSDAにより出力するようにしている。なお、ダミークロックだけで異常状態から正常状態に戻すことができる製品に対しては、スタートコンディションとストップコンディションの出力を省略することができる。
【0020】
図7は、異常への対策を施したデータ処理装置1の処理例を示すフローチャートであり、シリアルデータラインSDAが「0」(Lレベル)に固定されてしまう異常をインターバルタイマを用いて検出する例である。なお、使用されるマスターユニット2の端子は異なるが、図5および図6に共通の処理例である。
【0021】
図7において、図示の処理は例えば100μsec毎に起動される。マスターユニット2は処理を開始すると、シリアルデータラインSDAがL(LOW)レベルであるか否か判断する(ステップS11)。
【0022】
マスターユニット2はシリアルデータラインSDAがL(LOW)レベルでないと判断した場合(ステップS11のNo)、変数TIMERを0msecに相当するカウント値「0」にセットし(ステップS12)、処理を終了する。
【0023】
また、マスターユニット2はシリアルデータラインSDAがL(LOW)レベルであると判断した場合(ステップS11のYes)、変数TIMERに100μsecに相当するカウント値「1」を加算する(ステップS13)。
【0024】
次いで、マスターユニット2は変数TIMERが異常と判断する時間として例えば5msecに相当するカウント値「50」に到達(経過)したか否か判断する(ステップS14)。なお、異常と判断する時間は、正常な動作では発生しないシリアルデータラインSDAがLレベルとなる時間を超えるものであり、他の処理に影響を与えない時間を超えない範囲で決定される。
【0025】
マスターユニット2は変数TIMERが異常とする時間として例えば5msecに相当するカウント値「50」に到達(経過)していないと判断した場合(ステップS14のNo)、処理を終了する。
【0026】
また、マスターユニット2は変数TIMERが異常とする時間として例えば5msecに相当するカウント値「50」に到達(経過)したと判断した場合(ステップS14のYes)、シリアルクロックラインSCLにダミークロックを出力する(ステップS15)。
【0027】
次いで、マスターユニット2はダミークロックが最大回数に達したか否か判断する(ステップS16)。
【0028】
マスターユニット2はダミークロックが最大回数に達していないと判断した場合(ステップS16のNo)、シリアルデータラインSDAがH(HIGH)レベルになったか否か判断する(ステップS17)。
【0029】
マスターユニット2はシリアルデータラインSDAがH(HIGH)レベルになっていないと判断した場合(ステップS17のNo)、シリアルクロックラインSCLへのダミークロックの出力(ステップS15)を続ける。
【0030】
また、マスターユニット2はダミークロックが最大回数に達したと判断した場合(ステップS16のYes)またはシリアルデータラインSDAがH(HIGH)レベルになったと判断した場合(ステップS17のYes)、スタートコンディションを出力し(ステップS18)、続いてストップコンディションを出力し(ステップS19)、処理を終了する。
【0031】
これにより、シリアルデータラインSDAがLレベルに固定されていたのが解消し、その後のデータ通信ができなくなる不都合が解消される。
【0032】
図8は、インターバルタイマによる異常の検出の例を示す図である。図8において、例えば時刻t01でシリアルデータラインSDAがLレベルになると、シリアルデータラインSDAがHレベルになるまで、図7の処理が起動する100μsecずつ変数TIMERが加算されていく。また、時刻t03でシリアルデータラインSDAがLレベルになると、時刻t04で変数TIMERが5msecに到達し、異常として検出される。
【0033】
図9は、マスターユニット2がスレーブユニット側からデータを読込む際に異常が発生した場合の対策を含むタイムチャートの例である。スレーブアドレス「45H」のスレーブユニット31から読込みを行い、スレーブユニット31がデータ「47H」を出力しようとするのは図2図4と同様である。
【0034】
図9において、時刻t1と、時刻t2、t3の間、時刻t6、t7の間、時刻t9、t10の間、時刻t12、t13の間でシリアルデータラインSDAが「0」(Lレベル)になると、図7における変数TIMERがカウント「0」の状態から加算されていく。
【0035】
そして、時刻t12、t13の間からシリアルデータラインSDAの「0」(Lレベル)の状態が5msecに達すると(時刻t101)、異常と判断される。その結果、時刻t101からシリアルクロックラインSCLにダミークロックが出力される。また、時刻t103でスタートコンディションが出力され、時刻t104でストップコンディションが出力される。これにより、異常状態から正常状態に復帰し、その後のデータ通信が正常に行われる。
【0036】
図10は、異常への対策を施したデータ処理装置1の他の処理例を示すフローチャートであり、シリアルデータラインSDAが「0」(Lレベル)に固定されてしまう異常をインプットキャプチャを用いて検出する例である。なお、使用されるマスターユニット2の端子は異なるが、図5および図6に共通の処理例である。
【0037】
図10において、図示の処理は周期的に起動される場合と割込みが発生して起動される場合とがある。周期的に起動される場合は、例えばインターバルタイマにより短い所定時間ごとに起動される。この場合、割込みが使用されないため、割込み負荷に影響しないというメリットがある。
【0038】
マスターユニット2は処理を開始すると、オーバーフロー割込み要求フラグがある(立っている)か否か判断する(ステップS21)。オーバーフロー割込み要求フラグは、シリアルデータラインSDAが「0」(Lレベル)になって所定時間(例えば、5msec)が経過した場合に立つ。
【0039】
マスターユニット2はオーバーフロー割込み要求フラグがないと判断した場合(ステップS21のNo)、処理を終了する。
【0040】
マスターユニット2はオーバーフロー割込み要求フラグがあると判断した場合(ステップS21のYes)、割込み要求フラグをクリアする(ステップS22)。
【0041】
次いで、マスターユニット2はシリアルクロックラインSCLにダミークロックを出力する(ステップS23)。
【0042】
次いで、マスターユニット2はダミークロックが最大回数に達したか否か判断する(ステップS24)。
【0043】
マスターユニット2はダミークロックが最大回数に達していないと判断した場合(ステップS24のNo)、シリアルデータラインSDAがH(HIGH)レベルになったか否か判断する(ステップS25)。
【0044】
マスターユニット2はシリアルデータラインSDAがH(HIGH)レベルになっていないと判断した場合(ステップS25のNo)、シリアルクロックラインSCLへのダミークロックの出力(ステップS23)を続ける。
【0045】
また、マスターユニット2はダミークロックが最大回数に達したと判断した場合(ステップS24のYes)またはシリアルデータラインSDAがH(HIGH)レベルになったと判断した場合(ステップS25のYes)、スタートコンディションを出力し(ステップS26)、続いてストップコンディションを出力し(ステップS27)、処理を終了する。
【0046】
これにより、シリアルデータラインSDAがLレベルに固定されていたのが解消し、その後のデータ通信ができなくなる不都合が解消される。
【0047】
図11は、インプットキャプチャによる異常の検出の例を示す図である。マスターユニット2は、シリアルデータラインSDAがLレベルになった時点(時刻t01、t03)でカウントを開始し、所定のカウント値になった時点(時刻t04)にインプットキャプチャオーバーフローフラグ(オーバーフロー割込み要求フラグ)を立てる。例えば、1カウントを50nsecとした場合、100000カウントで5msecとなる。1カウントの時間はマイコンのペリフェラル機能を使用して変更することができる。
【0048】
また、図10の処理が、割込みが発生して起動される場合については次のようになる。この場合の割込みは、図11のインプットキャプチャオーバーフローフラグに基づく割込みである。この場合、割込みの要因を判定する必要がある場合と、割込みの要因を判定する必要がない場合とがある。例えば、割込みのベクターアドレスが一つで割込み要因が一つの場合は、割込みの要因を判定する必要がない。また、割込みフラグをクリアする必要がある場合と、割込みフラグをクリアする必要がない(割込みフラグが自動にクリアされる)場合とがある。例えば、割込みのベクターアドレスが一つで割込み要因が一つの場合で、割込みを許可し割込みが発生した場合は、割込み要求フラグは自動的にクリアされるのが一般的である。また、割込みのベクターアドレスが一つ、割込み要因が2つの場合で、割込みを許可し割込みが発生した場合は、割込み発生後にどの割込み要因で割込みが発生したかを判定する必要がある。
【0049】
割込みの要因を判定する必要があり、割込みフラグをクリアする必要がある場合は、図10の処理と同様になる。また、割込みの要因を判定する必要があり、割込みフラグをクリアする必要がない場合は、ステップS22の処理は不要となる。また、割込みの要因を判定する必要がなく、割込みフラグをクリアする必要がある場合は、ステップS21の処理は不要となる。また、割込みの要因を判定する必要がなく、割込みフラグをクリアする必要がない場合は、ステップS21、S22の処理は不要となる。
【0050】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて種々の変更が可能である。
【0051】
以上のように、実施形態に係るデータ処理装置は、マスターユニットと複数のスレーブユニットとを備え、I2Cの規格により前記マスターユニットと前記スレーブユニットとの間でデータ通信を行うデータ処理装置であって、前記マスターユニットは、シリアルデータラインが所定の時間にわたってLレベルであることを検出する検出手段と、前記検出手段により前記シリアルデータラインが所定の時間にわたってLレベルであることが検出された場合に、前記シリアルデータラインがHレベルになるまでシリアルクロックラインにダミークロックを出力し、または所定回数に達するまでシリアルクロックラインにダミークロックを出力する出力手段と、を備える。これにより、ノイズや電源変動によりシリアルクロックが正常な波形でなくなって異常が発生しても早期に復旧させることができる。
【0052】
また、前記マスターユニットは、更に、前記ダミークロックに続いてスタートコンディションおよびストップコンディションを出力する第2の出力手段を備える。これにより、ダミークロックだけで異常状態から正常状態に戻すことができない製品に対しても対応することができる。
【0053】
また、前記マスターユニットは、インターバルタイマを用いてシリアルデータラインが所定の時間にわたってLレベルであることを検出する。これにより、異常検出のための時間測定を容易に行うことができる。
【0054】
また、前記マスターユニットは、インプットキャプチャを用いてシリアルデータラインが所定の時間にわたってLレベルであることを検出する。これにより、異常検出のための時間測定を容易に行うことができる。
【0055】
また、前記検出手段により検出される所定の時間は、正常な動作では発生しない前記シリアルデータラインがLレベルとなる時間を超え、他の処理に影響を与えない時間を超えない範囲で決定される。これにより、異常への対応を適切なものとすることができる。
【0056】
また、上記実施の形態により本発明が限定されるものではない。上述した各構成要素を適宜組み合わせて構成したものも本発明に含まれる。また、さらなる効果や変形例は、当業者によって容易に導き出すことができる。よって、本発明のより広範な態様は、上記の実施の形態に限定されるものではなく、様々な変更が可能である。
【符号の説明】
【0057】
1 データ処理装置,2 マスターユニット,31、32 スレーブユニット,SCL シリアルクロックライン,SDA シリアルデータライン,GND 接地ライン,VDD 電源ライン,R1 プルアップ抵抗,R2 プルアップ抵抗
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11