mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Scrambler auf ATMEGA


Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
hat hier jemand vielleicht einen Beispielcode in C für einen Scrambler?
Ich möchte gerne eine ungleichmässige Verteilung von Nullen und Einsen 
eines Datenstreams mittels Scrambler ausgleichen
lg

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was ist der Zweck?

Gleichanteil Null? Verschluesselung?

Autor: ich (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Manchester Codierung oder auch HDB3 je nach Einsatz.

Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
es soll nichts verschlüsselt werden, ich möchte nur eine gleichmässige 
Verteilung der Nullen und Einsen haben.

Autor: Huch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du willst es also den Zweck nicht nennen. OK.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jimbo schrieb:
> Hallo,
> es soll nichts verschlüsselt werden, ich möchte nur eine gleichmässige
> Verteilung der Nullen und Einsen haben.

Mir ist jetzt aber nicht wirklich klar, wie das bei beliebigen Daten 
gehen soll. Es sei denn du teilst jedes Byte in 2 Nibbles und bläst 
jedes Nibble für sich wieder auf 8 Bit auf indem du nach jedem 0 Bit ein 
1 Bit einfügst und nach jedem 1 Bit im Original ein 0 Bit.

Das garantiert dir gleich viele 1-en wie 0-en, bläst aber das zu 
übertragende Datenvolumen auf das doppelte auf.
Die Implementierung wäre allerdings trivial.

Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hab ich nicht gesagt,
ich möchte sowas wie eine manchestercodierung haben und dachte das würde 
mit einem scrambler gehen

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann nimm halt Manchester-Codierung... verdoppelt deine Bit-Anzahl.

Wenn's nur so auf ungefähres Ausgleichen der 1er und 0er ankommt, eignet 
sich auch eine Komprimierung. Dann werdens sogar weniger Bits zum 
übertragen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jimbo schrieb:
> Das hab ich nicht gesagt,
> ich möchte sowas wie eine manchestercodierung haben

Na dann mach sie doch.
Das was ich beschrieben habe, macht genau eine Manchestercodierung

Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Karl Heinz und Ernst für die Infos...
Habt ihr vielleicht ein bisschen Beispielcode für mich?
lg

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jimbo schrieb:
> Vielen Dank Karl Heinz und Ernst für die Infos...
> Habt ihr vielleicht ein bisschen Beispielcode für mich?

Ach komm.
Das ist doch trivial.

Ein Byte in 2 Nibbles aufteilen.
Mit jedem Nibble in eine Tabelle gehen und sich daraus das gecodede Byte 
holen. Gibt ja nur 16 Möglichkeiten.

Beide Bytes (für jedes Nibble eines) in die weitere Verarbeitung 
einschleusen.

Fertig.


Wenn das ganze auf einem Pin rausgetaktet werden soll, gehts sogar noch 
einfacher. Denn dort muss es sowieso eine Bitzerlegung geben und die 
ergänzt man: Wurde ein 1 Bit ausgegeben, dann schiebt man ein 0 Bit 
hinterher, wurde ein 0 Bit ausgegen, schiebt man ein 1 Bit hinterher.
Ebenfalls fertig.

Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok und vielen dank....
dann muss ich mir mal überlegen wie ich das schreibe
lg

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jimbo schrieb:
> ok und vielen dank....
> dann muss ich mir mal überlegen wie ich das schreibe

Wird wohl das beste sein erst mal ein C-Buch zu kaufen und zumindest die 
ersten paar Kapitel ruchzumachen, wenn du da groß überlegen musst.

Autor: jimbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja das wäre wohl erstmal das beste für mich.... .-)

Autor: Matze (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dir das Stichwort 4B5B Code bzw 8b10b code weiter.
-> Google

Autor: jumbo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Karl heinz Buchegger

Buch...
Immer das böse Wort.
Kann man das nicht weniger abschreckend formulieren?

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine andere Moeglichkeit ist mit einer Pseudozufallsfolge zu 
multipliziern. Sowas macht man mit rueckgekoppelten Schieberegistern.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.