Hi, ich habe hier ein einfaches System zur Übertragung von 22-Bit-Daten: - eine Datenleitung, die je nach Bitwert auf High oder Low geht - eine Clock-Leitung, die immer dann eine Flanke ausgibt, wenn ein Bit auf der Datenleitung gültig ist - eine Sync-Leitung, die auf High geht, wenn ein Datenframe beginnt und auf Low, wenn es zu Ende ist. Jetzt würde ich gerne die Sync-Leitung einsparen, habe dann aber das Problem, Anfang und Ende eines Datenframes zu erkennen: - ein Startbit einfügen, das länger als die anderen Bits ist, funktioniert nicht, da es Sender geben kann, die das nicht wirklich gut können -> das Bit müsste hier sehr lang sein, was die Datenübertragungsrate in den Keller gehen lässt - ein bestimmtes Bitmuster voranstellen geht auch nicht, da die Nutzdaten jeden Wert annehmen können und damit auch dieses Bitmuster vorkommen kann Meine Frage: gibt es irgend welche Möglichkeiten, dieses Problem zu lösen und auf nur zwei Leitungen eindeutig idetifizierbare Datenframes zu übertragen? Danke!
Wie wäre es mit einem TWI/I2C nachbau? Also START-OF-FRAME, wenn CLOCK=HIGH und DATA=FLANKE H-L vg, Stephan
Hammerfest schrieb: > ich habe hier ein einfaches System zur Übertragung von 22-Bit-Daten: > > - eine Datenleitung, die je nach Bitwert auf High oder Low geht > > - eine Clock-Leitung, die immer dann eine Flanke ausgibt, wenn ein Bit > auf der Datenleitung gültig ist > > - eine Sync-Leitung, die auf High geht, wenn ein Datenframe beginnt und > auf Low, wenn es zu Ende ist. Also SPI mit 22bit Datenpaketen. > Jetzt würde ich gerne die Sync-Leitung einsparen, habe dann aber das > Problem, Anfang und Ende eines Datenframes zu erkennen: > Meine Frage: gibt es irgend welche Möglichkeiten, dieses Problem zu > lösen und auf nur zwei Leitungen eindeutig idetifizierbare Datenframes > zu übertragen? Nur durch ein übergeordnetes "Framing"-Protokoll. Das würden aber deine offensichtlich "dummen" Datenlieferanten auch nicht sprechen können. Also ist die Antwort: NEIN, geht nicht. Nada, niente, never, niemals. Einziger Ausweg: du machst die Datenlieferanten weniger dumm. Ende der Ansage.
Stephan schrieb: > Wie wäre es mit einem TWI/I2C nachbau? > Also START-OF-FRAME, wenn CLOCK=HIGH und DATA=FLANKE H-L > vg, Stephan Klingt ganz gut...also wenn ich das richtig verstehe: - Daten sind gültig bei einer steigenden Flanke an SCK (bzw. wenn SCK auf High ist) - Daten ändern sich nur, wenn SCK Low ist - bei einer fallenden Flanke an SDA wenn SCK auf High ist das der Beginn eine Frames - bei einer steigenden Flanke an SDA wenn SCK auf High ist das das Ende eines Frames?
Details findest Du in der org I2C Spec von NXP: https://www.nxp.com/docs/en/user-guide/UM10204.pdf Wobei mir nicht ganz klar war, was Du für Möglichkeiten hast Deine Sender und Empfänger HW- und Protokollseitig zu verändern... Viele Grüße, Stephan
Man kann ein führendes 1-Bit senden als Start. Zur Synchronisation sendet man einfach 22 0-Bits. Einige ICs machen das so, z.B. der MM5450 https://www.microchip.com/wwwproducts/en/MM5450
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.