8-bit Signal erfassen und dekodieren

OP #5210866
Lesenswert?

Hallo zusammen,

ich muss ein 8-bit Signal erfassen, bzw. dekodieren. Wie das Signal 
aussieht, sieht man auf dem Bild.

Die "Bitlänge" ist 0,68ms (0,34ms für high und 0,34 für low oder 0,17ms 
für high und 0,51ms für low), das Telegramm ist insgesamt 5,8ms lang und 
der Abstand zwischen den Telegrammen ist 10,6ms.

Das Codieren erfolgt über die Länge des Pegels. Bei 0,34ms high und 
0,34ms low, heißt 0, bei 0,17 / 0,51 ist 1.

Es muss nicht unbedingt ein Mikrocontroller sein. Gibt es vielleicht 
eine IC mit einem Eingang und acht Ausgängen, die entsprechend des 
Telegramms gesetzt werden? Das wäre genau das, was ich brauche.

Danke Euch.
Angehängte Dateien:
Gast #5210890
Lesenswert?

Hemi 8. schrieb:
> Gibt es vielleicht
> eine IC mit einem Eingang und acht Ausgängen

Nein, sicher nicht (es sei denn, es handelt sich um ein verbreitetes 
System, das du uns nicht verraten willst).

Für ein UART passen die Signale nicht ohne Aufbereitung, und ausserdem 
sind einzelne UARTs sowieso fast ausgestorben, und 8 Ausgänge haben sie 
auch nicht. Ein Mikrokontroller mit 9 I/Os ist sicher die beste und auch 
einfachste Lösung.

Ausserdem: so wechseln die 8 Ausgänge alle 10 ms - ist das auch so 
beabsichtigt?

Georg
OP #5210901
Lesenswert?

Es ist so, man hat acht Knöpfe. Diese werden abgefragt und je nach 
Zustand wird ein Bit im Telegramm gesetzt (1 = gedrückt oder 0 = nicht 
gedrückt). Auf dem Bildchen sind Köpfe drei, sechs und acht gedrückt.

Der Empfänger des Telegramms schaut welche Bits gesetzt sind und 
schaltet entsprechend die Relais, die an den korrespondierenden 
Ausgängen hängen.
#5210903
Lesenswert?

@ Hemi 850 (hemi850)

>Das Codieren erfolgt über die Länge des Pegels. Bei 0,34ms high und
>0,34ms low, heißt 0, bei 0,17 / 0,51 ist 1.

Das kann man mit einem retriggerbaren Monoflop + nachgeschaltetem 
D-FlipFlop (74HC74) dekodieren. Die fallende Flanke speichert dabei den 
Ausgang des Monoflops. Bei kurzen Pulsen (Monoflop läuft noch) ist das 
1, bei langen 0.

>Es muss nicht unbedingt ein Mikrocontroller sein. Gibt es vielleicht
>eine IC mit einem Eingang und acht Ausgängen, die entsprechend des
>Telegramms gesetzt werden? Das wäre genau das, was ich brauche.

Glaub ich nicht. Das kann man zwar diskret aufbauen, ist aber im Jahr 
2017 eher unsinnig.
Gast #5210938
Lesenswert?

Mit einem Mikrocontroller erfassen, das ist nicht sonderlich schwer.

Hat man einen Timer mit Interrupt kann man die Zeiten direkt ausmessen. 
Auf steigende und fallende Flanken triggern, die Zeiten dazwischen vom 
Timer lesen und mit vorgegebenen Zeitbereichen für Abstand, high und low 
vergleichen.

Will man statt dessen pollen, dann mit 12 kHz, besser 25 kHz oder mehr 
sampeln, die aufeinander folgenden Samples gleichen Pegels zählen, und 
die Zählergebnisse mit vorgegebenen Zählbereichen vergleichen.
Gast #5211252
Lesenswert?

Hemi 8. schrieb:
> Gibt es vielleicht
> eine IC mit einem Eingang und acht Ausgängen, die entsprechend des
> Telegramms gesetzt werden? Das wäre genau das, was ich brauche.

Nicht eins, aber mit einer kleinen Handvoll ist das sicher kein Problem.

Du brauchst schätzungsweise ein Monoflops zur Unterscheidung 
langer/kurzer Pulse und eins zum Erkennen des Telegrammrahmens. Außerdem 
brauchst du ein Schieberegister mit seriellem Eingang, parallelem 
Ausgang und Latch. Dazu noch ein bisschen Glue-Logik und die Sache 
könnte so gut wie gelaufen sein - das know-how nicht zu vergessen.
Seit geschätzt mindestens 20 Jahren macht man soetwas allerdings eher 
mit einem kleinen Mikrocontroller für 2..3€.
Gast #5211272
Lesenswert?

Hemi 8. schrieb:

> Es muss nicht unbedingt ein Mikrocontroller sein.

Das wäre aber die einzige Möglichkeit, das Protokoll in einem IC 
abzuhandeln.

> Gibt es vielleicht
> eine IC mit einem Eingang und acht Ausgängen, die entsprechend des
> Telegramms gesetzt werden?

Nein.

> Das wäre genau das, was ich brauche.

Tja, was ich wirklich brauche, gibt's auch nicht. Unbegrenzt Geld und 
Freizeit und ewiges Leben.

Unser Universum ist nunmal nicht wirklich fair. Finde dich damit ab...
Gast #5211291
Lesenswert?

c-hater schrieb:
> Nein.
>
>> Das wäre genau das, was ich brauche.
>
> Tja, was ich wirklich brauche, gibt's auch nicht. Unbegrenzt Geld und
> Freizeit und ewiges Leben.

Ja du bist nen Spinner! Monoflop + Schieberegister ist nun wirklich kein 
Hexenwerk.
Mit grösster Wahrscheinlichkeit hätte ich das mit je einem 4094, 4098 
und 4011 schneller auf dem Steckbrett fertig als du funktionierenden 
Code im Controller. Muß jeder so machen wie er am besten kann.
Vielleicht findet sich noch jemand der dem TO, so oder so, eine fertige 
Lösung serviert, falls er selbst weder das eine noch das andere kann...
Gast #5211340
Lesenswert?

c-hater schrieb:
> praktika schrieb:
>
>> Ja du bist nen Spinner! Monoflop + Schieberegister ist nun wirklich kein
>> Hexenwerk.
>
> Doch, ist es. Die Forderung war nämlich: Es sollte EIN IC sein.
>
> Fazit: Wer Lesen kann, ist klar im Vorteil...

Meine Güte, du bist so schlau! Es ist wohl meinem Analphabetismus 
zuzuschreiben daß ich das nicht sofort erkennen konnte...
#5211724
Lesenswert?

Hemi 8. schrieb:
> Es muss nicht unbedingt ein Mikrocontroller sein. Gibt es vielleicht
> eine IC mit einem Eingang und acht Ausgängen, die entsprechend des
> Telegramms gesetzt werden? Das wäre genau das, was ich brauche.

Na dann ist ja gut.

Die üblichen Encoder/Decoder können nur 4 bit, haben aber eine Adresse.

http://www.spelektroniikka.fi/kuvat/PT2260.pdf

Es gibt auch 8 bit

http://www.phas.ubc.ca/~michal/phys319/CIP-8_encoder.pdf

Ist natürlich auch bloss ein vorprogrammierter uC.

c-hater schrieb:
> Doch, ist es. Die Forderung war nämlich: Es sollte EIN IC sein.

Na ja, man kann MonoFlops auch als RC Kombinationen aufbauen, es wird 
dann halt nicht so besonders zuverlässig. Aber wenn der Kunde unbedingt 
Pfusch will....

Ein 74AHC595 hätte im Gegensatz zum 74HC595 immerhin Schmitt-Trigger 
Eingänge. Mit einem Differenzierer am CLK Eingang könnte er das 
Eingangssignal als bit D übernehmen. Die Äusgänge würden währenddessen 
durchgeschoben werden. Ein Latch-Signal könnte man ebenfalls versuchen 
über ein RC Glied zu gewinnen, aber beide mit 74HC123 zu erzeugen hätte 
den Vorteil, auch den 74HC595 benutzen zu können.

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