Apakah komunikasi ini I²C?


9

Saya perlu memecahkan kode komunikasi antara dua perangkat, tetapi saya tidak memiliki informasi tentang perangkat ini. Yang saya tahu adalah bahwa empat kabel diperlukan (GND, VCC dan dua kabel komunikasi). Saya menduga itu adalah komunikasi I²C.

Saya mencoba mendekodekannya dengan alat decoding osiloskop, tapi saya tidak begitu yakin tentang itu. Saya tidak dapat mengidentifikasi elemen komunikasi I²C dengan tepat ketika saya memeriksa bentuk gelombang secara visual.

Melihat bentuk gelombang saya membuat asumsi berikut, dan mungkin seseorang dapat membantu. Ini adalah asumsi saya:

  1. Semuanya mengarah untuk percaya bahwa jam adalah sinyal biru dan data adalah sinyal merah.
  2. Jam tampaknya terbalik karena keadaan siaga tidak pada tingkat tinggi.
  3. Saya tidak yakin apakah sinyal data juga terbalik, tetapi tampaknya demikian.

Apakah asumsi saya benar?

Pada gambar terakhir, angka dengan angka 5 ditunjukkan dalam lingkaran, dan ada bagian dari sinyal. Saya tidak dapat mengidentifikasi bit start, ack dan stop. Adakah yang bisa mengidentifikasi elemen-elemen ini hanya dengan melihat gambarnya?

Masukkan deskripsi gambar di sini Masukkan deskripsi gambar di sini

[Diedit] Beberapa orang bertanya kepada saya tentang perangkat yang ada dalam komunikasi. Komunikasi itu antara kunci mobil dan alat yang saya tidak boleh katakan, tapi saya mencoba melakukan teknik reverse di atasnya.


1
Anda memiliki kondisi awal di tepi paling kiri merah (SDA). Ini menjadi rendah sementara biru terbalik (–SCL) ditahan rendah. Setelah itu, perubahan menjadi merah (SDA) tampaknya terjadi hanya ketika biru terbalik (–SCL) tinggi. Itu pembicaraan I²C yang valid.
Janka

2
@Janka, itu hanya pembicaraan I2C yang valid jika Anda menganggap bahwa SCL terbalik. Tidak ada alasan untuk menganggap itu.
Annie

2
@Janka, OP mendaftar itu sebagai asumsi. Asumsi itu didasarkan pada asumsi bahwa ini adalah I2C. Ada beberapa alasan untuk meyakini bahwa ini bukan I2C - salah satunya karena jamnya rendah.
Annie

5
@ Danielel, apakah Anda bisa memberi tahu kami apa dua perangkat itu?
Annie

2
Mungkin alih-alih mengkhawatirkan "apa itu", Anda harus memikirkan "apa yang dikatakannya". Cari tahu tepi mana yang perlu Anda sampel. Dapatkan penganalisis logika, mungkin jenis USB streaming, dan mulai menulis dekoder yang menangkap ruang lingkup variabilitas. Kemudian mulailah mencari pola dalam data.
Chris Stratton

Jawaban:


6

Dugaan saya adalah bahwa itu adalah protokol "mirip-I2C" dari beberapa perusahaan. Ada beberapa dari mereka di masa ketika menggunakan I2C berarti harus memberikan uang kepada Philips.

Tampaknya memiliki ACK (pulsa pendek pada jalur data sebelum peregangan jam terlihat sangat mirip jalur data yang dilewatkan dari master ke slave).

Anehnya, tampaknya mengirimkan 7 bit pada suatu waktu.


1
Jika ini adalah versi eksklusif dari protokol, mungkin akan menggunakan komunikasi 7 bit atau kurang juga
Maple

6
@Maple Ya. Saya dapat membayangkan seorang insinyur berkata, "Bagaimana kita membuat ini seperti I2C tetapi cukup berbeda sehingga kita tidak perlu membayar royalti? Balikkan jam dan kirim 7 bit sekaligus." Tapi saya hanya bisa menebak.
Annie

11

Mengingat bahwa hanya ada 8 jam per byte (I2C memerlukan clock ke-9 untuk bit ACK / NAK) dan status clock idle tampaknya rendah, saya akan mengatakan bahwa ini lebih cenderung antarmuka SPI (atau mirip-SPI).

Namun, tidak yakin tentang lebar jam ekstra pada bit pertama setiap byte.


1
Di sisi lain, denyut nadi sempit di akhir urutan jam sangat mirip NACK. Juga apa yang tampak seperti idle low dapat berupa peregangan jam, yang tidak lagi diizinkan oleh spek tetapi dapat digunakan oleh budak tua. Keadaan awal pada gambar (1) dan (2) sebenarnya tinggi
Maple

1
@ Maple: Saya melihat pulsa data Anda yang sempit, tapi saya masih gagal melihat pulsa jam ke-9. Pola data sangat konsisten dengan konfigurasi SPI tertentu dari fase jam dan polaritas jam.
Dave Tweed

1
Itu benar, saya sebenarnya setuju dengan Anda jam. Apa yang aneh bagi saya adalah SDI / SDO yang tidak konsisten (apa pun itu) perilaku menganggur di ujung (1)
Maple

1
@Maple Bukankah I2C akan merilis baris ke idle high?
Selvek

1
@ Selvek Ya, dan itulah yang saya lihat pada gambar (1) dan awal gambar (2). Namun, sisanya lebih konsisten dengan SPI, seperti yang ditunjukkan Dave. Nah, selain mengejutkan jam pertama yang terlihat seperti mulai bit. Hmm ... mulai sedikit ... mungkinkah ini ...
Maple

3

Saya akan melemparkan topi saya ke atas ring ...

Jika ini adalah perangkat lama, Anda mungkin melihat varian RS-232 sinkron 7-bit "minimum":

  • Itu pulsa lagi di awal setiap frame bisa menjadi bit awal, dan

  • Dataran tinggi dalam sinyal jam di awal bisa kembali ke 0 sebelum pergi ke "tanda" negatif. (Anda tidak memberikan tegangan pada tangkapan layar, jadi saya kira di sini).


1
Oooh, ini baru bagiku. Apakah ada ACK? (Tidak dapat menemukannya di pencarian Google saya yang sangat singkat). Jika tidak, hal lain yang akan menjelaskan pulsa pendek pada baris data setelah clk ke-8?
Annie

1
Tidak yang saya tahu. Dan bagaimanapun, jika ini memang serial kuno, komunikasi apa pun di arah lain akan membutuhkan kabel terpisah. Denyut itu terlalu pendek untuk menjadi sesuatu yang signifikan. Kemungkinan besar pengemudi mengatur ulang dirinya sendiri sebelum frame berikutnya. Semua ini hanya menebak-nebak, seperti yang Anda katakan sendiri. Kecuali OP memberikan rincian lebih lanjut tentang perangkat ini yang bisa kita lakukan.
Maple

@ Maple, komunikasi adalah antara kunci mobil dan alat yang saya tidak boleh katakan, tapi saya mencoba melakukan teknik reverse di atasnya.
Daniel

RS232 adalah standar untuk tingkat listrik, bukan untuk pengkodean kata
Chris Stratton

@ ChrisStratton Di mana Anda menemukan sesuatu tentang penyandian dalam jawaban saya? Yang saya katakan adalah bahwa jika level tegangan sesuai dengan RS232 dan sinyal menyerupai serial sinkron maka kemungkinan besar bukan I2C
Maple

-1

Menurut pengalaman saya dengan I2C, saya dapat menggunakan perangkat multi-meter untuk memeriksa jam dengan mengatur perangkat untuk mengukur frekuensi (dalam hertz), jadi jika itu membaca nilai stabil seperti 2k maka itu adalah jam I2C.


3
Tidak, itu sama sekali bukan kesimpulan yang valid. Banyak hal yang bukan I2C memiliki jam tetap. Bahkan, I2C tidak memiliki jam yang stabil, melainkan yang meledak-ledak. Jika meter Anda menghitung selama periode waktu tertentu, itu sebenarnya akan menjadi rata-rata clocking aktif dengan selingan idle - Anda harus mengukur kebalikan dari lebar pulsa, idealnya pada ruang lingkup di mana Anda dapat memastikan bahwa Anda berada. sebenarnya mengukur apa yang dimaksudkan. Sebaliknya, beberapa skema lain seperti I2S cenderung terus menjalankan jam. Tetapi frekuensi clock hanya dapat mengesampingkan sesuatu, bukan masuk.
Chris Stratton
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.