I2C- Bus Arbitierung < Signaltheorie < Ingenieurwiss. < Vorhilfe
|
Status: |
(Frage) überfällig | Datum: | 14:37 Di 31.08.2010 | Autor: | matheja |
Aufgabe | Hi Leute.Ich beschäftige mich grad mit der I2C- Bus Arbitierung.
Das Prinzip ist mir eigentlich klar.allerdings bin ich mir bei der anwendung nicht ganz sicher. |
Prinzip:
Master überwachen Bus und senden nur wenn keine andere Übertragung aktiv ist.
Zur Konfliktvermeidung:
Wenn der sender eine 1 sendet aber 0 empfängt, hört er sofort auf zu senden und gibt den anderen sender Priorität:
Ich hab dazu folgendes Beispiel kostruiert:
An einem I2C Bus sind zwei Master Geräte angeschlossen.Sie versuchen zum gleichen Zeitpunkt zu sende.
Welchen sequenz empfängt ein an den Bus angeschlossener empfänger und warum.
Master 1: 1 0 1 0 0 0 0
Master 2: 1 0 0 1 0 0 0
-------------------------------
Master 2 1 0 0 1 0 0 0
1-Bit: M1 und M2 senden 1 und hören 1 ab
2-Bit: ananlog
3-Bit: Konflikt: M1 sendet 1 hört 0 ab=> M1 bricht transaktion ab und gewährt M2 den vortritt.
=>I2C Bus empfägt seqeunenz 2 vom Master 2
Ist das so korrekt?
Warum ist dieser ansatz falsch?
Master 1: 1 0 1 0 0 0 0
Master 2: 1 0 0 1 0 0 0
-------------------------------
1 0 0 0 0 0 0
hier wende einfach sturr das prinzip an.
am 3 bit und vierten bit.
danke für die aufklärung
grüße
matheja
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Do 02.09.2010 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|