Fachbeitrag «Codesysteme»

Vom Graycode zum Barcode

Was man unter Code alles verstehen kann

  • Numerische Codes
    Werden im Computer verwendet, um ganze Zahlen in binären Zeichen darzustellen (Binärcodes) wie z.B. Dualcode, BCD, Graycode, Aikencode, Exzess-3-Code, 1-aus-n-Code und weitere
  • Alphanumerische Codes
    Z.B. ASCII-Code oder Unicode und wird im Computer verwendet, um Buchstaben, Zahlen und Satzzeichen durch Bitfolgen darzustellen
  • Strich-Code
    Z.B. der EAN-Code auf Verpackungen
  • Leitungscodes
    Bei der Datenübertragung werden die sog. Leitungscodes so aufgebaut, dass sie sich möglichst optimal an die Eigenschaften des Übertragungsmediums anpassen wie Unterdrückung eines Gleichspannungsanteils, Taktrückgewinnung etc. Beispiele: Manchester-Code bei Ethernet, NRZ-Code, Eight-to-Fourteen-Modulation (EFM) bei CD's, 8B10B-Code (Gigabit Ethernet) etc.
  • Media-Codecs
    MP3-Code, MPEG2-Code, MPEG-4-AVC-Code, Reed-Solomon-Code (Audio-CD)
  • weitere...

Aber auch:

  • Maschinen-Code
    Wird in der Computertechnik verwendet. Stellt ein Programm bzw. eine Art
    Vorgehensbeschreibung für den Prozessor dar
  • Quellcode
    Beim Programmieren kodiert man Algorithmen als Quellcode in einer
    Programmiersprache wie zB. C++, Java, etc. den man übrigens später in
    Maschinencode übersetzt bzw. kompiliert oder HTML-Code der von einem
    Webbrowser interpretiert wird (Negativbeispiel Spaghetti-Code ;-)
  • Geheimcode
    Mit monoalphabetischer Verschlüsselung werden Buchstaben durch
    andere Buchstaben ersetzt (Verschlüsselungsverfahren)
  • ISBN-Code
    International Standard Book Number zur Identifizierung von Büchern
  • Genetischer Code
    Eine biologische Anleitung, nach der während der Proteinbiosynthese die
    Informationen der DNA/RNA in Aminosäuresequenzen übersetzt werden
  • weitere...

Definition des Begriffs «CODE»

  • Vorschrift, wie Nachrichten oder Befehle zur Übertragung oder Weiterverarbeitung für ein Zielsystem umgewandelt werden. Beispielsweise stellt der Morsecode eine Beziehung zwischen Buchstaben und einer Abfolge kurzer und langer Tonsignale her
  • Der Code heisst entzifferbar, wenn es eine eindeutige Umkehrabbildung gibt, die jedem Nachrichtenwort aus B wieder das ursprüngliche Wort aus A zuordnet

Definition: Eindeutige Abbildung der Zeichen des Zeichenvorrats 1 auf die Zeichen des Zeichenvorrats 2

Welche Anforderungen können an einen Code gestellt werden?

  • Ökonomische Darstellung (Übertragungsgeschwindigkeit, Speicherplatzbedarf)
  • Sicherung gegen Verfälschung (Übertragungsfehler, Verarbeitungsfehler)
  • Schutz vor unbefugtem Zugriff (Verschlüsselung/Kryptologie)

Spezialisierung von Binärcodes für bestimmte Anwendungen - Codemerkmale können sein:

  • Stellenzahl/Zeichenvorrat (2ˆStellenanzahl = Anzahl mögliche Zeichen)
  • Redundanz (Redundanz=Stellenzahl-Logarithmus zur Basis 2 / Anzahl realisierter Zeichen)
  • Gewichtung der einzelnen Binärstellen (zB. beim Dualcode wäre dies 1-2-4-8)
  • Erkennen/korrigieren von Übertragungsfehlern (CRC, ECC, Hammingdistanz)
  • Änderung nur einer Binärstelle beim Übergang zum nächsten Zahlenwert (Einschrittige Codes zB. Graycode)
  • Minimierung der 0- oder 1-Bits (Verlustlose Kompression: Morsecode, VLC)
  • Einfache Komplementbildung (Bringt Vorteile bei der Berechnung von arithmetischen Ausdrücken)
  • Unterscheidung von Zahlen grösser/kleiner 5 (Für eine einfache arithmetische Zahlenrundung)
  • Unterscheidung gerader/ungerader Zahlen (Vorteilhaft in der Arithmetik)
  • weitere...

Abgrenzung zu «Protokolle» und «Formate»

Ein Protokoll im Sinner der Informatik regelt den Datenzugriff innerhalb eines Netzwerkes oder eines Mehrplatzsystems durch mehrere Benutzer. Bsp.:

  • Internet Protokoll - Grundlegendes Netzwerkprotokoll des Internets
  • Netzwerkprotokoll - Kommunikationsprotokoll im Netzwerkumfeld
  • Kommunikationsprotokoll - Regelwerk zum Datenaustausch
  • Sicherheitsprotokoll - Authentifikation von Subjekten, Absicherung bzw. Nachweis von Daten bzw. Kommunikation vor Veränderung bzw. Auslesung
  • Transaktionsprotokoll bei Datenbanken

Datenformat ist ein Begriff aus der Datenverarbeitung, der festlegt, wie Daten strukturiert und dargestellt werden und wie sie bei ihrer Verarbeitung zu interpretieren sind. Dateiformate werden in der Regel durch Software-Hersteller oder durch ein standardisierendes Gremium festgelegt. In einer Spezifikation sollte die Art der Codierung und Anordnung von Daten innerhalb eines Dateiformats genau beschrieben werden.

Codebeispiel: Morsecode

Der Morsecode wird auch in der Modullektion 114 «Komprimierung» erwähnt.

Codebeispiel: BCD-Code

BCD bedeutet soviel wie Binary Coded Decimal). Der BCD-Code ist ein numerischer Code (Wortcode) und man kann damit eine Dezimalstelle bzw. die Zahlen von 0..9 darstellen. Mit diesem Code können z.B. einzelne Dezimalstellen von Anzeigen angesteuert werden. Dafür benötigt man zusätzlich noch einen BCD-zu-7-Segmentanzeige-Decoder.

Codebeispiel: ASCII-Code/Unicode

Der ASCII-Code (American Standard Code for Information Interchange)
und der Unicode ist in einem separaten Fachartikel beschrieben.

Codebeispiel: Graycode

Dieser Code ist zur Erfassung eines Drehwinkels geeignet.

Der Vorteil dieses Codes liegt darin, dass sich benachbarte Codewörter nur in einer einzigen binären Ziffer unterscheiden und dabei Übertragungsfehler verringert werden können, weil bei kontinuierlich ändernden digitalen Signalen auf mehradrigen Leitungen sich unterschiedliche Laufzeiten nicht auswirken können.

Codebeispiel: Hammingcode

Fast schon an Zauberei erinnert der fehlerkorrigierende Hammingcode. Dazu ein Beispiels eines Hammingcodes, der einen einzelnen Fehler lokalisieren und auch beheben kann:

Schritt-1: Wert kodieren und an Empfänger übertragen

 

Schritt-2a: Codierter Wert empfangen und auswerten (Ohne Fehler)

 

Schritt-2b: Codierter Wert empfangen und auswerten (Mit einem Übertragungsfehler)

Codebeispiel: Strichcode/Barcode

Der Barcode setzt sich vermeintlich aus dicken und dünnen Strichen zusammen. Optisch richtig aber technisch leider falsch. Beim EAN-Barcode besteht jedes Zeichen aus 7 gleich grossen Spalten. Je nach Codierung werden diese Spalten gefüllt oder leer gelassen, wobei gilt: 0=Leer 1=Gefüllt

Zum EAN-8-Code gehören auch Zeichensätze + Prüfziffer. Der erste wird für die vier linken «Balken» der zweite für die vier rechten «Balken» verwendet.