Bu iletişim I²C mi?


9

İki cihaz arasındaki iletişimin kodunu çözmem gerekiyor, ancak bu cihazlar hakkında hiçbir bilgim yok. Tek bildiğim dört telin gerekli olduğu (GND, VCC ve iki iletişim kablosu). Bunun I²C iletişimi olduğundan şüpheleniyorum.

Osiloskop kod çözme aracıyla kodunu çözmeye çalışıyorum, ama tam olarak emin değilim. Dalga formlarını görsel olarak kontrol ettiğimde I²C iletişim unsurlarını uygun şekilde tanımlayamıyorum.

Dalga formlarına baktığımda aşağıdaki varsayımları yaptım ve belki biri yardımcı olabilir. Bunlar benim varsayımlarımdı:

  1. Her şey saatin mavi sinyal ve verinin kırmızı sinyal olduğuna inanıyor.
  2. Saat ters çevrilmiş gibi görünüyor çünkü boş durumu yüksek seviyede değil.
  3. Veri sinyalinin de ters çevrilip çevrilmediğinden emin değilim, ama öyle görünüyor.

Varsayımlarım doğru mu?

Son şekilde, bir daire içinde gösterilen 5 numaralı şekil ve sinyalin bir kısmı vardır. Başlangıç, kesme ve durdurma bitlerini tanımlayamıyorum. Herkes sadece şekle bakarak bu unsurları tanımlayabilir mi?

Resim açıklamasını buraya girin Resim açıklamasını buraya girin

[Düzenlendi] Bazı insanlar iletişimdeki aygıtları sordu. İletişim, bir araba anahtarı ve söylememe izin verilmeyen bir araç arasında, ancak üzerinde tersine bir mühendislik yapmaya çalışıyorum.


1
En soldaki kırmızı (SDA) kenarda başlatma koşuluna sahipsiniz. Ters mavi (–SCL) düşük tutulurken alçalır. Bundan sonra, kırmızıdaki (SDA) değişiklikler sadece ters mavi (–SCL) yüksek olduğunda ortaya çıkar. Bu geçerli I²C konuşması.
Janka

2
@Janka, bu sadece SCL'nin ters çevrildiğini varsayarsanız I2C konuşması geçerlidir. Bunu varsaymak için bir neden yok.
Annie

2
@Janka, OP bunu bir varsayım olarak listeledi. Bu varsayım, bunun I2C olduğu varsayımına dayanmaktadır. Bunun I2C olmadığına inanmak için birkaç neden var - bunlardan biri saatin boşta olması.
Annie

5
@ Daniel, bize iki cihazın ne olduğunu söyleyebilir misiniz?
Annie

2
Belki de "ne olduğu" konusunda endişe etmek yerine, "ne söylediğini" düşünmelisiniz. Hangi kenar (lar) ı örneklemeniz gerektiğini belirleyin. Muhtemelen akışlı USB türünde bir mantık analizörü alın ve değişkenliğin kapsamını yakalayan bir kod çözücü yazmaya başlayın. Ardından verilerde kalıplar aramaya başlayın.
Chris Stratton

Yanıtlar:


6

Benim tahminim bazı şirketin kendi yetiştirdiği "I2C benzeri" protokolü. I2C kullanırken Philips'e para vermek zorunda kaldığı günlerde bazıları vardı.

Bir ACK'ye sahip gibi görünüyor (saat gerilmesinden önce veri hattındaki kısa darbe, veri hattından master'den slave'e geçiyor gibi görünüyor).

Tuhaf bir şekilde, bir seferde 7 bit iletiyor gibi görünüyor.


1
Protokolün tescilli versiyonu ise, 7 veya daha az bit iletişimi de kullanabilir
Maple

6
@Maple Evet. Bir mühendisin "Bunu I2C gibi nasıl yapabiliriz, ancak telif ücreti ödemek zorunda kalmayacak kadar farklı yapabiliriz?" Ama sadece tahmin edebiliyorum.
Annie

11

Bayt başına sadece 8 saat (I2C, ACK / NAK bit için 9. saat gerektirir) ve saat boşta durumu düşük gibi göz önüne alındığında, bunun daha büyük olasılıkla bir SPI (veya SPI benzeri) arayüz olduğunu söyleyebilirim.

Bununla birlikte, her baytın ilk bitindeki ekstra saat genişliğinden emin değilim.


1
Öte yandan, saat dizisinin sonundaki dar darbe NACK'a çok benziyor. Ayrıca boşta düşük gibi görünen şey, spec tarafından izin verilmeyen ancak eski köleler tarafından kullanılabilen saat germe olabilir. Resimler (1) ve (2) üzerindeki başlangıç ​​durumu aslında yüksektir
Maple

1
@Maple: Dar veri darbenizi görüyorum, ancak yine de 9. saat darbesini göremiyorum. Veri deseni, saat fazı ve saat polaritesinin belirli SPI konfigürasyonları ile mükemmel bir şekilde tutar.
Dave Tweed

1
Bu doğru, aslında seninle aynı saatteyim. Benim için garip olan tutarsız SDI / SDO (ne olursa olsun) (1) 'in sonunda boşta kalma davranışı
Maple

1
@Maple I2C yüksek boşta durmak için hatları serbest bırakmaz mı?
Selvek

1
@Selvek Evet, tam da bu resimde (1) ve resmin başlangıcında (2) gördüğüm şey. Bununla birlikte, Dave'in işaret ettiği gibi, geri kalanı SPI ile daha tutarlı. Başlangıç ​​biti gibi görünen şaşırtıcı ilk saatin yanı sıra. Hmm ... başlangıç ​​biti ... bu olabilir ...
Maple

3

Şapkamı yüzüğe atacağım ...

Bunlar eski aygıtlarsa, "çıplak minimum" 7 bitlik senkron RS-232 varyantına bakabilirsiniz:

  • Her karenin başlangıcındaki daha uzun darbe başlangıç ​​biti olabilir ve

  • En başta saat sinyalindeki plato, negatif "işarete" gitmeden önce 0'a dönebilir. (Ekran görüntülerinde voltaj sağlamadınız, bu yüzden burada tahmin ediyorum).


1
Oooh, bu benim için yeni. Herhangi bir ack var mı? (Çok kısa Google aramamda bir tane bulunamadı). Değilse, 8. satırdan sonra veri hattındaki kısa darbeyi açıklayacak başka bir şey var mı?
Annie

1
Bildiğim kadarıyla hayır. Ve her durumda, eğer bu gerçekten eski moda bir seri ise, diğer yönde herhangi bir iletişim ayrı kablolar gerektirecektir. Bu nabız önemli bir şey olamayacak kadar kısa. Büyük olasılıkla sürücü bir sonraki kareden önce kendini sıfırlar. Bütün bunlar tahmin ediyor, dediğin gibi. OP, aygıtlar hakkında daha fazla ayrıntı sağlamadığı sürece tek yapabileceğimiz budur.
Maple

@Maple, iletişim bir araba anahtarı ve söylememe izin verilmeyen bir araç arasında, ancak üzerinde ters mühendislik yapmaya çalışıyorum.
Daniel

RS232, veri kelimelerini kodlamak için değil, elektrik seviyeleri için bir standarttır
Chris Stratton

@ChrisStratton Cevabımda kodlama hakkında nereden bir şey buldunuz? Söylediğim tek şey, voltaj seviyeleri RS232'ye karşılık geliyorsa ve sinyaller senkron seriye benziyorsa, büyük olasılıkla I2C
Maple

-1

I2C ile yaşadığım tecrübeye göre, cihazı frekansı ölçmek için ayarlayarak saati kontrol etmek için çok metrelik cihazı kullanabilirim (hertz cinsinden), bu yüzden 2k gibi sabit bir değer okursa I2C saattir.


3
Hayır, bu geçerli bir sonuç değil. I2C olmayan birçok şeyin sabit saatleri vardır. Aslında, I2C vermez istikrarlı bir saat, daha ziyade bir patlamalı bir tane var. Ölçüm cihazınız belirli bir süre boyunca sayıyorsa, gerçekte boşta kalma aralıkları ile aktif saatin ortalamasını alacaktır - ideal olarak, bir darbe genişliğinin karşılıklılığını, ideal olarak aslında neyin amaçlandığını ölçmek. Buna karşılık, I2S gibi diğer bazı şemalarda sürekli çalışan saatler bulunur. Ancak saat frekansı sadece bir şeyi
Chris Stratton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.