Forum: Mikrocontroller und Digitale Elektronik 8-bit Signal erfassen und dekodieren


von Hemi 8. (hemi850)


Angehängte Dateien:

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.

von Georg (Gast)


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

von Hemi 8. (hemi850)


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.

von Falk B. (falk)


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.

von Jack (Gast)


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.

von Wolfgang (Gast)


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€.

von c-hater (Gast)


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...

von praktika (Gast)


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...

von Hemi 8. (hemi850)


Lesenswert?

@Praktika: Der TO kann C und Mikrocontroller, ist nicht das Problem. Ich 
mache halt solche Sachen lieber ohne Software, wenn es geht. Ich würde 
lieber ICs nehmen an der Stelle.

von praktika (Gast)


Lesenswert?

Nur zu, den geeigneten "Chipsatz" habe ich ja genannt :-)
Mit Spinner warst nicht du gemeint...

von Wolfgang (Gast)


Lesenswert?

Hemi 8. schrieb:
> Ich würde lieber ICs nehmen an der Stelle.

Sind µCs keine ICs? ;-)
Warum schnitzt du dir nicht eins - z.B. ein CPLD o.ä.

von c-hater (Gast)


Lesenswert?

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...

von praktika (Gast)


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...

von Georg (Gast)


Lesenswert?

praktika schrieb:
> Es ist wohl meinem Analphabetismus
> zuzuschreiben daß ich das nicht sofort erkennen konnte...

Du bringst da was durcheinander, das heisst Legasthenie, aber das ist 
auch Folge der Krankheit.

Georg

von Michael B. (laberkopp)


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.

von Äxl (geloescht) (Gast)


Lesenswert?

8Kanal Memoryswitch aus dem Modellbau. 20ms Wiederholung, 1ms->aus, 
2ms->an.
Zeiten passen nicht ganz...

Äxl

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
Noch kein Account? Hier anmelden.