Begleitmaterial zum Unterricht M114 «Codesysteme»

Binäre-, Alphanumerische- und Barcodes

Im vorangegangenen Kapitel haben wir gelernt, dass die digitale Recheneinheit (CPU) und weitere Komponenten (Memory, HD etc.) eines PCs Daten nur in binärer Form kennen und auch bearbeiten/speichern können und zur Ein- und Ausgabe in vielen Fällen sogar auf eine vorherige Datenumwandlung (A/D oder D/A) angewiesen sind. Dabei wurden die Begriffe Bit und Byte und die Zahlensysteme Binär und Hexadezimal eingeführt. Nun möchten wir uns damit befassen, wie Daten zwischen den elektronischen Komponenten ausgetauscht werden. Das heisst, welche Abmachungen (Codes) getroffen werden müssen, damit die Komponenten sich untereinander auch verstehen können.

1.0 Theorie in einer Experten-Rallye (auch bekannt als Gruppen-Puzzle) erarbeiten

Der Ablauf der Experten-Rallye:

  • Es werden sogenannte Stammgruppen gebildet. (Anzahl = Klassengrösse / 4)
  • Jede einzelne Person einer Stammgruppe nimmt sich einem der vier folgenden Themen an (ca. 30 Min. Studium der Theorie) und wird zum Spezialisten.
  • Die Stammgruppen entsenden nun ihre Spezialisten in die jeweilige Expertenrunde, wo das Fachgebiet besprochen, Verständnisfragen geklärt und Vorgehensweisen erörtert werden. Es wird eine kurze Präsentation vorbereitet. Der Spezialist hat sich nun zum Experten gewandelt.
  • Nun kehren die Experten in ihre Stammgruppen zurück, wo sie ihr Expertenwissen der restlichen Gruppe vortragen.
  • Es sollte anschliessend jeder Lernende in der Lage sein, die Aufgaben auf dieser Seite selbständig zu lösen.

Themen:

  1. Eigenschaften von numerischen Codes und Leitungscodes (Beispiele: BinaryCodedDecimal BCD, Aiken, 2-aus-5, Graycode, Manchester mit ↑=1 ,↓=0)
  2. Alphanumerische Codes (AmericanStandardCodeForInformationInterchange ASCII und sein Nachfolger, der Unicode UnicodeTransformationFormat UTF-8)
  3. A:Binärcode mit negativen Zahlen dank 2-er Komplement | B: Der Hammingcode als selbstkorrigierender Code
  4. Barcodes: Der eindimensionale EuropeanArticleNumber EAN-8 und der zweidimensionale QuickResponse QR

Bitte beachten: Erstellen sie in ihrer Expertengruppe ein Factsheet im Umfang von ±2 A4-Seiten, in dem sie alles Wichtige zusammenfassen und ausreichend illustrieren. Dieses Dokument wird vor Verlassen der Expertenrunde dem Dozenten vorgelegt bzw. sein Einverständnis für dessen Veröffentlichung eingeholt und danach in ausreichender Anzahl kopiert. Erst danach kann die Expertengruppe in Richtung Stammgruppe verlassen werden.

1.1 Aufgaben zu numerischen Codes

Gegeben sind die fünf folgenden numerischen Codes:

Füllen sie zu diesem Bild die folgende Tabelle aus:

1.2 Aufgabe: Manchestercode lesen

Welche 11 Bits (Data) werden hier übertragen?

1.3 Aufgabe: Hammingcode prüfen

Sie erhalten folgenden 11-bittigen Hammingcode, der ein ASCII-Zeichen repräsentieren soll: «1 1 1 0 0 1 0 1 1 0 0». Welcher Buchstabe wurde ihnen übermittelt? (Maximale Fehleranzahl ist ≤ 1)

1.4 Aufgabe: EAN-8-Barcode erstellen

Sie erhalten folgende 7-stellige Zahl: «3 1 7 7 2 4 6». Erstellen Sie einen EAN-8-Barcode. Verwenden Sie das vorgegebene Raster und vergessen Sie die Prüfziffer nicht.

1.5 Aufgaben zum alphanumerischen Code «Unicode»

Sie benötigen für diese Aufgaben Musterdateien, die sie hier herunterladen können: UnicodeSamples.zip

  1. Untersuchen sie mit einem Hexeditor und einem Texteditor ihrer Wahl die Dateien:
    Sample1_ascii (Die ASCII-Datei enthält vier Character aus dem 7-bit ASCII-Bereich)
    Sample2_utf8 (Die UTF8-Datei enthält vier Character aus dem 7-bit ASCII-Bereich)
    Sample3_ascii (Die ASCII-Datei enthält vier 8-Bit ANSI-ASCII-Zeichen, u.a. ein «ü» gemäss ISO-Standard 8859-2)
    Sample4_utf8 (Die UTF8-Datei enthält ebenfalls vier Character, u.a. das Character «ü» mit Unicode «U+00FC»)
    Sample5_utf8 (Die UTF8-Datei enthält 4 chinesische Zeichen)
  2. Was stellen sie fest bezüglich der Länge und Codierung der UTF-8 Zeichen gegenüber den ASCII-Zeichen?
  3. Können sie den Text in Sample5_utf8 entschlüsseln?
  4. Erstellen sie ein Word-File mit Schriftzeichen, die ihre PC-Tastatur nicht zur Verfügung stellt. Z.B. das Euro-Zeichen. Benutzen sie die im Theorieteil vorgestellten UTF-8 Eingabemethoden

1.6 Zusatzaufgabe: Header einer MP3-Audiodatei mit einem Hexeditor analysieren

Bei dieser Aufgabe werden wir uns mit einem Dateiformat, nämlich dem «MP3» oder eigentlich «MPEG-1 Audio Layer III» bzw. «MPEG-2 Audio Layer III» (was alles dasselbe bedeutet) beschäftigen.  Sie sollen dabei mit einem Hex-Editor den Dateiinhalt untersuchen. Sie erhalten das zu analysierende MP3-File hier: Hula-Hoop.mp3. (Übrigens ein Soundschnipsel aus dem Animationsfilm Madagascar-2

Analysieren sie das MP3-File mit einem Hex-Editor ihrer Wahl. (Hinweise zu Hex-Editoren liefert die englischsprachige Wikipedia unter "Comparison of hex editors"). Beachten sie dabei folgendes: Ein MP3-File besteht abwechselnd aus MP3-Headern und MP3-Daten. Ein MP3-File kann von einem ID3-Tag umschlossen sein. Ebenfalls kann das File ganz am Anfang XMP-Metadaten besitzen!. Der MP3-Header ist aber eindeutig mit einleitend 11+1 gesetzten Bits gekennzeichnet, also FFF.
(Das MP3-Fileformat wird sowohl auf der deutschen, wie auch der englischen Wikipedia exakt beschrieben)

  • Spielen sie das Audiofile ab
  • Welche Zusatzinformationen können sie mit dem Hex-Editor aus den ID3-Tag's herauslesen?
  • Analysieren sie den MP3-Header und nennen sie die darin gespeicherten Audioparameter (Codec, Samplingrate, Sampling-Frequen etc.)

Und hier noch ein Hinweis, wo sie im Hexdump suchen sollten:

Lösungen zu 1.1 Codes

Hinweise zu den Lösungen:

  • Der Aiken-Code ist eindeutig definiert, obwohl seine 2-4-2-1-Wertigkeit mehrere Lösungen zulassen würde. Der Aiken-Code ist nämlich symmetrisch, was soviel bedeutet, dass nur die ersten fünf und letzten fünf Kombinationen genutzt werden.
    Eigenschaften: Symmetrischer Code mit Vorteil bei Komplementbildung. Zahlen ab- oder aufrunden anhand der ersten Stelle (<5 ab/>=5 auf). Gerade/Ungerade Zahl anhand der letzten Stelle beurteilbar. Einsatz: Rechenmaschinen. Redundanz: 6 Bitkombinationen (in der Mitte der Tabelle) werden nicht verwendet. Sogenannte Pseudotetraden (PT)
  • Der BCD-Code hat die Wertigkeit 8-4-2-1. Exakt die gleiche Wertigkeit wie der Dual-Code. BCD bedeutet Binary Coded Decimal. Das heisst, vier Bit entsprechen einer Dezimalzahl 0..9. Was wird nun wohl der Unterschied zwischen den beiden Codes sein? (Tipp: Pseudotetraden und Redundanz)
    Beim Dualcode werden alle 16 Bitkombinatinen verwendet. Beim BCD nur deren 10. Vorteil des BCD-Codes: 4 Bit entsprechen einer Dezimalstelle. Nachteil des BCD-Codes: Redundanz. (Pseudotetraden (PT). D.h.: 6 Bitkombinationen werden nicht verwendet. Möglicher Einsatz: Dezimalanzeige mit z.B. anschliessender Decodierung für 7-Segment-Anzeige.
  • 2-aus-5-Code bedeutet: Jeweils 2 Bit sind binär «1», die restlichen drei Bit sind binär «0». Was sind die Eigenschaften dieses Codes?
    Es sind pro Dezimalwert nur immer zwei Bit's auf logisch "1". Somit kann mit einer Quersumme (=2) eine fehlerhafte Bitübertragung festgestellt werden. Allerdings auch nicht ganz zuverlässig. Sollten sich z.B. ein 0-Bit und ein 1-Bit "gedreht" haben, merkt man das später selbstverständlich nicht, weil die Summe ja immer noch 2 ist. Hier bieten Hamming-Codes mehr Sicherheit.
  • Der Gray-Code wird z.B. für die Winkelcodierung verwendet. Es handelt es sich um einen einschrittigen Code. Warum könnte ein solcher Code Vorteile haben bei der Winkelmessung auf Rotoren?
    Zwischen zwei Dezimalwerten wechselt jeweils nur ein Bit. Übertragungsfehler bei sich kontinuierlich ändernden digitalen Signalen auf mehradrigen Leitungen werden so verringert, da sich unterschiedliche Laufzeiten nicht auswirken können.

Lösung zu Aufgabe 1.2: Manchestercode lesen

Welche 11 Bits (Data) werden hier übertragen?: 00101101001

Lösung zu Aufgabe 1.3: Hammingcode prüfen

  • Sie erhalten folgenden 11-bittigen Hammingcode, der ein ASCII-Zeichen repräsentieren soll: «1 1 1 0 0 1 0 1 1 0 0». Welcher Buchstabe wurde ihnen übermittelt? (Maximale Fehleranzahl ist ≤ 1)
    «1 1 1 0 0 1 0 1 1 0 0»  ergibt für alle Stellen wo Bit=1: 1011/1010/1001/0110/0100/0011 und somit 1001. Das bedeutet, dass die 9. Stelle falsch ist. Die Korrektur würde folgendes ergeben: 11000101100 ergibt ohne die vier Hamming-Bits an der Stelle 1-2-4-8 den Wert: 110'0101 = 65Hex = «e» (Es wird ein 7-bittiger ASCII-Code verwendet)

Lösung zu Aufgabe 1.4: EAN-8-Barcode erstellen

  • Sie erhalten folgende 7-stellige Zahl: «3 1 7 7 2 4 6». Erstellen Sie einen EAN-8-Barcode. Verwenden Sie das vorgegebene Raster (Bild Aufgabe 5) und vergessen Sie das Prüfzeichen nicht.
    Siehe Lösung Aufgabe 5. EAN-8-Prüffzifferberechnung für 3177246: 3*3 + 1*1 + 7*3 + 7*1 + 2*3 + 4*1 + 6*3 = 66. Differenz der Summe zum vollen Zehner = 4

Lösungen zu Aufgaben 1.5 Alphanumerischer Code «Unicode»

Sie benötigen für diese Aufgaben Musterdateien, die sie hier herunterladen können: UnicodeSamples.zip

  • Untersuchen sie mit einem Hexeditor und einem Texteditor ihrer Wahl die Dateien:
    Sample1_ascii (Enthält 7-bit ASCII-Zeichen) = Inhalt von Sample1_ascii: BERN
    Sample2_utf8 (Enthält 7-Bit ASCII-Zeichen) =  Inhalt von Sample2_utf8:  BERN (Identisch wie Sample1, da 7Bit ASCII-Zeichen)
    Sample3_ascii (Enthält 8-Bit ASCII-Zeichen) = Inhalt von Sample3_ascii: Züri (Erweiterter 8Bit ASCII Zeichensatz)
    Sample4_utf8 (Enthält 8-Bit ASCII-Zeichen) = Inhalt von Sample4_utf8:  Züri (Das "ü" benötigt nun 2 Byte als utf8)
    Sample5_utf8 (Enthält 4 chinesische Zeichen) = Inhalt von Sample5_utf8:  4 chinesische Zeichen zu je 24 Bit pro Zeichen. Bedeutung der chinesischen Zeichen ist in etwa Berufsschule
  • Erstellen sie ein Word-File mit Schriftzeichen, die ihre PC-Tastatur nicht zur Verfügung stellt. Z.B. das Euro-Zeichen. Benutzen sie die im Theorieteil vorgestellten UTF-8 Eingabemethoden = Siehe Hinweis in entsprechendem Fachartikel zu Unicode

Lösung zu 1.6 Zusatzaufgabe: Header einer MP3-Audiodatei mit einem Hexeditor analysieren