この通信はI²Cですか?


9

2つのデバイス間の通信をデコードする必要がありますが、これらのデバイスに関する情報がありません。私が知っているのは、4本のワイヤー(GND、VCCおよび2本の通信ワイヤー)が必要であることだけです。I²C通信だと思います。

オシロスコープのデコードツールでデコードしようとしていますが、よくわかりません。波形を目視確認したところ、I²C通信の要素が適切に特定できません。

波形を見て、私は以下の仮定をしました、そしておそらく誰かが助けることができます。これらは私の仮定でした:

  1. すべては、クロックが青信号であり、データが赤信号であると信じることにつながります。
  2. アイドル状態がハイレベルではないため、クロックが反転しているようです。
  3. データ信号も反転しているかどうかはわかりませんが、反転しているようです。

私の仮定は正しいですか?

前の図では、丸で示された数字5の数字で、信号の一部があります。スタート、ACK、およびストップビットを識別できません。誰かが図を見ただけでこれらの要素を識別できますか?

ここに画像の説明を入力してください ここに画像の説明を入力してください

[編集]一部の人々は、通信しているデバイスについて私に尋ねました。コミュニケーションは車の鍵と私が言うことのできない道具との間のものですが、私はそれに対してリバースエンジニアリングをしようとしています。


1
左端の赤い(SDA)エッジに開始条件があります。反転した青色(-SCL)がローに保持されている間、ローになります。その後、赤(SDA)への変化は、反転した青(-SCL)が高い場合にのみ発生するようです。それは有効なI²Cの話です。
Janka 2018

2
@ Janka、SCLが反転していると仮定した場合にのみ、これは有効なI2Cトークです。それを仮定する理由はありません。
アニー

2
@ジャンカ、OPはそれを前提としてリストしました。この仮定は、これがI2Cであるという仮定に基づいています。これがI2Cではないと考える理由はいくつかあります。その1つは、クロックがアイドルLOWであることです。
Annie

5
@ダニエルさん、2つのデバイスが何か教えていただけますか?
アニー

2
おそらく、「それが何であるか」を心配する代わりに、「それが何を言っているか」について考える必要があります。サンプリングする必要があるエッジを特定します。ロジックアナライザー、おそらくストリーミングUSBの種類を入手し、変動の範囲をキャプチャするデコーダーの作成を開始します。次に、データのパターンの検索を開始します。
Chris Stratton、2018年

回答:


6

私の推測では、これはある会社が独自に開発した「I2Cのような」プロトコルだと思います。I2Cを使用することがフィリップスにお金を与える必要があることを意味したときに、それらのいくつかが戻ってきました。

ACKがあるように見えます(クロックストレッチの前のデータラインの短いパルスは、マスターからスレーブに渡されるデータラインによく似ています)。

奇妙なことに、それは一度に7ビットを送信するように見えます。


1
プロトコルのプロプライエタリバージョンである場合、7ビット以下の通信も同様に使用する可能性があります
Maple

6
@メープルうん。エンジニアが「I2Cのようにするにはどうすればよいのでしょうか。ロイヤリティを支払う必要がないほど十分に違うのですか?しかし、私は推測することができます。
アニー

11

バイトあたり8クロックしかなく(I2CはACK / NAKビットに9番目のクロックを必要とする)、クロックのアイドル状態が低いように見えるので、これはSPI(またはSPIのような)インターフェイスである可能性が高いと言えます。

ただし、各バイトの最初のビットの余分なクロック幅についてはわかりません。


1
一方、クロックシーケンスの最後の狭いパルスは、NACKによく似ています。また、アイドルLOWのように見えるのは、クロックストレッチングである可能性があります。これは、仕様ではもはや許可されていませんが、古いスレーブで使用できます。写真(1)と(2)の初期状態は実際に高い
Maple

1
@Maple:狭いデータパルスは表示されますが、9番目のクロックパルスは表示されません。データパターンは、クロック位相とクロック極性の特定のSPI構成と完全に一致しています。
デイブツイード

1
それは本当です、私は実際にあなたが再クロックすることに同意します。私にとって奇妙なのは、(1)の終わりのSDI / SDO(それが何であれ)の一貫性のないアイドル動作です
Maple

1
@Maple I2Cはラインを解放してアイドル高にしないのですか?
Selvek

1
@Selvekはい、それがまさに私が画像(1)と画像の最初(2)に表示するものです。しかし、Daveが指摘したように、残りの部分はSPIとより一貫しています。さて、スタートビットのように見える驚くべき最初のクロックは別として。うーん...ビットを開始...これは、可能性が...
メープル

3

私は帽子をリングに投げます...

これらが古いデバイスである場合、「最小限の」7ビット同期RS-232バリアントを確認できます。

  • 各フレームの最初のその長いパルスは、スタートビットになる可能性があります。

  • 負の「マーク」に行く前に、最初のクロック信号の高原が0に戻る場合があります。(スクリーンショットに電圧を提供しなかったので、私はここで推測しています)。


1
ああ、これは私にとって新しいです。何かしらありますか?(非常に簡単なGoogle検索では見つかりませんでした)。そうでない場合、8番目のclkの後のデータラインの短いパルスを説明するものは他にありますか?
アニー

1
私が知っていることではありません。いずれにせよ、これが本当に旧式のシリアルである場合、他の方向の通信には別のワイヤーが必要になります。そのパルスは短すぎて重要なものにはなりません。ほとんどの場合、ドライバーは次のフレームの前に自身をリセットします。あなたが自分で言ったように、これはすべて推測です。OPがデバイスの詳細を提供しない限り、これが私たちにできるすべてです。
メープル

@Maple、通信は車のキーと私が言うことを許可されていないツールとの間のものですが、私はそれに対してリバースエンジニアリングを実行しようとしています。
ダニエル

RS232は、データワードのエンコードではなく、電気レベルの標準です
Chris Stratton

@ChrisStratton私の答えのどこにエンコーディングについて何か見つけましたか?私が言っているのは、電圧レベルがRS232に対応し、信号が同期シリアルに似ている場合、それはおそらくI2Cではないということです
Maple

-1

私のI2Cの経験によると、マルチメーターデバイスを使用して、周波数(ヘルツ単位)を測定するようにデバイスを設定することでクロックをチェックできるため、2kのような安定した値を読み取る場合は、I2Cクロックです。


3
いいえ、それはまったく有効な結論ではありません。I2C以外の多くのものは安定したクロックを持っています。実際、I2C安定したクロックがなく、バースト性のあるクロックがあります。メーターが一定期間カウントしている場合、実際にはアクティブなクロッキングをアイドル間欠で平均化します。パルスの幅の逆数を測定する必要があります。理想的には、意図されているものを実際に測定します。対照的に、I2Sのような他のいくつかのスキームは、継続的にクロックを実行する傾向があります。しかし、クロック周波数だけではないで、何かを除外することができます。
クリス・ストラットン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.