bit 0 in datenstrom finden

Gast #316416
Lesenswert?
• ▲
▼
hallo leute,

ich sniffe auf einer spi-ähnlichen schnittstelle den datenstrom und
speichere diesen auf eine compactflash karte, den ich dann später auf
einem pc auswerten will.
es gibt keine /SS leitung und der master kann willkürlich clocken.
einen möglichkeit festzustellen, wann der master mit dem datenaustausch
beginnt, habe ich nicht.

mein problem nun: ich möchte das erste bit der gespeicherten daten
nicht manuell suchen - wie finde ich es? das einzige was ich weiss ist,
wie lang die datenworte sind, dass das msb zuerst geschickt wird   und
das es normale binärdaten sind. gibt es dafür irgendwelche
statistischen verfahren?

danke im voraus,
 pittbull
Gast #316417
Lesenswert?
• ▲
▼
Der Master wird doch nach 8 oder 16 Clocks eine Pause machen, die
könntest Du auswerten.

Oder wie machst Du es manulell.
Hast Du ein Oszillogramm von ein paar Bytes? Dann als Dateianhang hier
posten.
Gast #316418
Lesenswert?
• ▲
▼
>> Der Master wird doch nach 8 oder 16 Clocks eine Pause machen, die
>> könntest Du auswerten.

der master muss alle 24 clocks eine pause von mindestens 16µs machen.
ob diese pause länger ist, ist egal. auch die clockimpulse können fast
beliebig lang sein (ich glaube mindestens 1µs). mein problem ist, dass
es verschiede master geben kann und jeder anders clockt. wenn die die
mindestanforderungen einhalten klappt es. mit dem messen von zeiten
komme ich da nicht weiter.

>> Oder wie machst Du es manulell.

ich schau mir die werte in binärdarstellung an, dann verschiebe ich
alles um ein bit nach rechts, bis die werte möglichst klein sind und
das unterste bit die meisten änderungen zeigt. dann stimmt es meistens.
ich frage mich nur ob es auch einfacher/sicherer geht.
Gast #316420
Lesenswert?
• ▲
▼
>> sind vielleicht clock und data high während der pause? oder beginnt
>> vielleicht der clock mit nem low, während data noch high ist?
ähnlich
>> I2C)

stimmt! die übertragung startet immer mit clock=high und data=high,
dann geht clock runter und beim ersten wechel von clock nach high liegt
das erste datenbit an. während der pause ist clock immer high und data
immer low. dann wechselt data nach high und es geht wieder von vorne
los.

kann man da irgendwie drauf triggern ohne zeitliche abhängigkeiten
berücksichtigen zu müssen?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren