Frage:
Kommunikationsprotokoll bestimmen
user187
2013-03-26 23:11:02 UTC
view on stackexchange narkive permalink

Ich habe zwei Chips, die über zwei Leitungen verbunden sind. Eine scheint die Taktleitung zu sein (50% Einschaltdauer), muss es aber nicht sein (manchmal konstant hoch). Die andere Zeile scheint völlig zufällig zu sein, aber immer noch digital. Es können Daten sein.

Es gibt eine dritte Zeile zwischen den Chips, aber es scheint für etwas anderes zu sein - es ist etwas langsamer und befindet sich an einer anderen Stelle auf der Leiterplatte. Es wird auch kein Pull-up verwendet, während die anderen beiden dies tun.

Wie kann ich herausfinden, welches Protokoll (I2C, SPI, RS232, ...) in den Leitungen verwendet wird, wenn irgendein Standard?

Könnte verwandt sein http://arduino.cc/forum/index.php?topic=19191.0
Der einzige wirkliche Weg ist, den Verkehr zu betrachten, jeden Standard anzuwenden und zu sehen, ob er funktioniert ... Die Uhr mit manchmal konstantem Hoch könnte eine invertierte Uhr für i2c mit Taktdehnung sein, aber das erklärt nicht die dritte Leitung.
@RobertMason Ich kenne den Datenverkehr nicht, obwohl ich weiß, dass die Geräte wahrscheinlich 8-Bit-Bytes senden. _Der dritte Draht muss nicht Teil des Protokolls sein_, er kann auch für andere Zwecke vorhanden sein.
Es klingt wie i2c mit der dritten Zeile irrelevant.
Der einfachste Weg, dies zu tun, besteht darin, sich normalerweise die Chip-Datenblätter anzusehen. Dann brauchen Sie überhaupt keine Arbeit zu erledigen.
@Cybergibbons natürlich habe ich vergessen zu erwähnen, dass dies Chips wie [hier] sind (http://www.doctronics.co.uk/DDE/Images_jpg/watch_pcb.jpg) (wie heißt das?), Also habe ich nicht Teilnummern.
Chip-on-Board ist der offizielle Begriff, häufig wird Blob-Top, Glob-Top oder gekapselter IC verwendet. Ja, das macht die Sache schwieriger. Kann ich fragen, was es ist? Es ist ziemlich selten, dass diese Herstellungstechnik in komplexen Situationen eingesetzt wird.
@Cybergibbons Es handelt sich um eine sehr alte Alarminstallation, eine 8 x 12 cm große mehrschichtige (3 oder 4) Leiterplatte, genau wie [hier] (http://reverseengineering.stackexchange.com/q/1440/187). Ah, dieser spezielle Fall ist sowieso nicht wirklich wichtig, ich habe mich nur gefragt, was Ihre Methoden waren.
Einer antworten:
Mellowcandle
2013-04-05 17:58:06 UTC
view on stackexchange narkive permalink

Ich vermute, dass das Protokoll Standard ist. Bei Verwendung eines nicht standardmäßigen Protokolls zwischen zwei Geräten wird Bitbanging verwendet, was nicht sehr nützlich ist. Nehmen wir dann an, dass das Protokoll Standard ist. Es ist kein SPI, SPI benötigt 4 Zeilen, um zu funktionieren. I2C benötigt zwei, RS232 benötigt nur zwei. Ich weiß nicht, was der dritte Zeilenjob ist, vielleicht wird er zum Trigerring / Synchronisieren zwischen den Chips verwendet.

Was jetzt? Ich würde das Datenblatt des Mikrocontrollers öffnen und sehen, welche Protokolle die Chips unterstützen. Wenn sie neue 32-Bit-SOCs sind, unterstützen sie normalerweise alle CAN, SPI, USART usw. Dann würde ich die Pinbelegung der entsprechenden Leitungen überprüfen, um zu sehen, ob welche Ports sie auf dem Chip angeschlossen sind. Dadurch werden Sie auf das genaue verwendete Protokoll hingewiesen.

Schließen Sie dann einen Logikanalysator wie diesen an an, der mit einer Software gebündelt ist, mit der die übertragenen Daten gemäß dem Protokoll.

Ich habe festgestellt, dass Bit-Banging in eingebetteten Systemen unglaublich häufig vorkommt. Das Datenblatt wäre jedoch mein erster Ansatz, insbesondere wenn einer der beiden Chips kein Mikrocontroller ist.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...