24
Boolesche Algebra und Schaltalgebra Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik Grundlagen der technischen Informatik Kapitel 2 – Codierung Prof. Dr.-Ing. Axel Hunger Pascal A. Klein, M.Sc.

Grundlagen der technischen Informatik...Codierung 3 Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik 2. Codierung 2.1 Einführung in die Codierung Definition: Code

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Boolesche Algebra und Schaltalgebra

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Grundlagen der

technischen Informatik

Kapitel 2 – Codierung

Prof. Dr.-Ing. Axel Hunger

Pascal A. Klein, M.Sc.

Codierung

2

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2. Codierung ........................................................................................ 3

2.1 Einführung in die Codierung .................................................. 3

2.2 Zahlencodes ............................................................................ 4

2.2.1 BCD-Code (Binary Coded Decimal Code) ........................ 7

2.2.2 Aiken-Code......................................................................... 9

2.2.3 3-Exzess-Code .................................................................. 10

2.2.4 Gray-Code ........................................................................ 11

2.2.5 Zusammenfassung ............................................................ 14

2.3 Zeichencodes ........................................................................ 15

2.3.1 Fernschreibecode .............................................................. 16

2.3.2 ASCII ................................................................................ 19

2.3.3 EBCDIC ........................................................................... 20

2.4 Codeumsetzer ....................................................................... 22

Codierung

3

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2. Codierung 2.1 Einführung in die Codierung Definition: Code

Ein Code ist eine Vorschrift zur eindeutigen Zuordnung der Zeichen einer Menge A (Ausgangsmenge) zu denjenigen Zeichen einer Menge B (Zielmenge).

Die Zuordnung muss nicht eindeutig umkehrbar sein, obwohl sie es in den meisten Fällen ist. Zusammengesetzte Zeichen werden dabei als Codewörter bezeichnet. Codierungsregeln legen fest, wie die Zielmenge bei bekannter Ausgangsmenge gebildet wird.

Die Codierung dient:

• dem zweckmäßigen und einfachen Übertragen und Verarbeiten von Informationen,

• zur Darstellung der Informationen mit einer möglichst geringen Anzahl von Zeichen,

• dem Erzielen einer gesicherten Datenübertragung.

Codierung

4

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.2 Zahlencodes Von den Zahlencodes sind die Tetradischen1 Codes die am häufigsten verwendeten Codes. Sämtliche Tetradischen Codes verwenden zur Codierung eines beliebigen numerischen Zeichens (einer Ziffer) stets 4 Bit. Sie werden vorrangig zur Darstellung der dezimalen Ziffern benutzt. Die vier Bit zur Darstellung der Dezimalziffern werden als Tetrade bezeichnet. Mit diesen 4 Bit lassen sich 24 =16 Binärkombinationen bilden. Die zur Darstellung der Dezimalzahlen 0-9 nicht benötigten sechs Tetraden werden als Pseudotetraden bezeichnet. Zur Darstellung einer mehrstelligen Dezimalzahl mittels der Binärzahlen 0 und 1 wird für jede Dezimalstelle eine Tetrade (4 Bit) verwendet. Die Tetradische Codes sind auf ihre unterschiedlichen Anwendungsgebiet abgestimmt. Einige von Ihnen beruhen auf dem Dualsystem, während bei anderen die Stellenwerte nicht mit denen des Dualsystems übereinstimmen. Die wichtigsten Tetradischen Codes sind im Folgenden zum besseren Vergleich in einer gemeinsamen Tabelle 3.1 dargestellt. In der zweiten Zeile sind jeweils die Stellenwerte angegeben.

Die Codes sind hinsichtlich ihrer Eignung für diverse Anwendungen auf die folgenden Merkmale hin zu überprüfen. Je mehr Merkmale auf einen Code zutreffen, desto vielseitig anwendbar wird er.

• Bewertbarkeit: Die Umwandlung einer binär codierten Zahl ist einfacher, wenn jeder Binärstelle eine Wertigkeit zugeordnet ist.

• Komplementierbarkeit: Eine Subtraktion innerhalb einer Rechenanlage geschieht in der Regel durch Addition des Komplements. Daher ist zum Rechnen ein Code von Vorteil, bei dem das (B-1)-Komplement ohne Schwierigkeiten gebildet werden kann.

1 abgeleitet vom griechischen tetra = vier

Codierung

5

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

• Konvertierbarkeit: Oftmals müssen binär verschlüsselte Dezimalzahlen in eine Dualzahl konvertiert werden. Dies sollte daher so leicht wie möglich von statten gehen.

• Symmetrie: Ein Code ist symmetrisch, wenn seine Tetraden bezüglich der Symmetrielinie(vgl. Tabelle 3.1) symmetrisch ist. Mit anderen Worten wird ein Codewort invertiert, so entsteht das unechte Komplement dieses Codeswortes. Dies wirkt sich vorteilhaft auf arithmetische Operationen aus (vgl. Merkmal Komplementierbarkeit).

• Additionsregeln, Übertragsbildung: Entsteht bei der Addition zweier Dezimalzahlen ein Übertrag zur nächst höheren Dezimalstelle, so sollte bei der Addition der entsprechend codierten Dualzahlen ebenfalls ein Übertrag in die nächst höhere Tetrade entstehen.

Hex. Dual BCD Aiken 3-Exzess Gray

8 4 2 1 8 4 2 1 2 4 2 1 keine keine

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Pseudo- 0 0 0 0 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 tetraden 1 0 0 0 1 2 2 0 0 1 0 2 0 0 1 0 2 0 0 1 0 3 0 0 1 0 3 3 0 0 1 1 3 0 0 1 1 3 0 0 1 1 0 0 0 1 1 2 0 0 1 1 4 4 0 1 0 0 4 0 1 0 0 4 0 1 0 0 1 0 1 0 0 7 0 1 0 0 5 5 0 1 0 1 5 0 1 0 1 2 0 1 0 1 6 0 1 0 1 6 6 0 1 1 0 6 0 1 1 0 3 0 1 1 0 4 0 1 1 0 7 7 0 1 1 1 7 0 1 1 1 Pseudo- 4 0 1 1 1 5 0 1 1 1 Symme- 8 8 1 0 0 0 8 1 0 0 0 tetraden 5 1 0 0 0 trielinie 9 9 1 0 0 1 9 1 0 0 1 6 1 0 0 1 Pseudo- A 10 1 0 1 0 7 1 0 1 0 tetraden B 11 1 0 1 1 5 1 0 1 1 8 1 0 1 1 C 12 1 1 0 0 Pseudo- 6 1 1 0 0 9 1 1 0 0 8 1 1 0 0 D 13 1 1 0 1 tetraden 7 1 1 0 1 9 1 1 0 1 E 14 1 1 1 0 8 1 1 1 0 Pseudo- Pseudo F 15 1 1 1 1 9 1 1 1 1 tetraden tetraden

Tabelle 2.1: Tetradische Codes

Codierung

6

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Die Addition läuft bei allen Zahlencodes nach dem selben Grundprinzip ab.

Abbildung 2.2:Addition bei Zahlencodes (nach DIN 66001)

Die gegebenen Summanden werden ziffern- bzw. tetradenweise dual addiert. Bei der dualen Addition der

Beginn

in Tetraden zerlegen &

niedrigstwertige auswählen

duale Addition

Überprüfung &

Korrektur

tetraden-weise

Additionbis alle addiert

tetraden- weise

Addition

Ender- gebnis als Tetraden

Übertrag

aktuelleTetraden

Summan-den

nächst höhere Tetrade

auswählen

Fertig

Codierung

7

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

einzelnen Tetraden werden diese wie zwei vorzeichenlose Dualzahlen der Wortlänge 4 Bit behandelt. Die Addition der gegebenen Zahlen beginnt stets mit den niedrigstwertigen Tetraden der beiden Summanden.

Nach der dualen Addition dieser Tetraden werden abhängig vom verwendeten Zahlencode verschiedene Überprüfungen durchgeführt. Durch diese Überprüfungen wird festgestellt, ob eine Korrekturrechnung für die gerade berechnete Tetrade durchgeführt und ob ein Übertrag in die nächst höhere Tetrade berücksichtigt werden muss. Erst danach kann nach selbigem Verfahren mit der Addition der nächst höheren Tetrade fortgefahren werden, wobei hierbei nun ggf. auch noch ein Übertrag zu addieren ist.

Der Prozeß "Überprüfung & Korrektur" wird in den folgenden Unterkapiteln für die verschiedenen Zahlencodes genauer spezifiziert.

2.2.1 BCD-Code (Binary Coded Decimal Code)

Die Abkürzung BCD steht für binär codierte Dezimalzahlen. Dementsprechend ist der BCD-Code so aufgebaut, dass jede Dezimalziffer 0-9 einfach als Dualzahl geschrieben wird. Daher handelt es sich bei diesem Code auch um eine direkte duale Verschlüsselung. Die Stellenwerte der Tetraden entsprechen demzufolge genau denen des Dualsystems, nämlich (von links nach rechts gelesen): 23=8, 22=4, 21=2, 20=1. Aufgrund dieser Stellenwertigkeit wird der BCD-Code auch 8-4-2-1-Code genannt.

Beispiel: Die vierstelligen Dezimalzahl 1968 lautet im BCD-Code folgendermaßen:

1 9 6 8 0001 1001 0110 1000Eine Komplementbildung ist ohne weiteres nicht möglich.

Codierung

8

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Die Verfeinerung des Prozesses "Überprüfung & Korrektur" sieht für den BCD-Code wie folgt aus:

Summe=PT?

Übertrag

+0II0 keine Korrektur

ja nein

ja

nein

Abbildung 2.3: Verfeinerung des Prozesses "Überprüfung & Korrektur" für den BCD-Code

Tritt bei der dualen Addition ein Übertrag in die nächst höhere Tetrade auf oder entspricht das Additionsergebnis einer Pseudotetrade (PT), so muss eine Korrekturaddition (+610 bzw. + 01102) durchgeführt werden.

Beispiel: Addition im BCD-Code

28936 + 48283 Übertrag

00100100

1

10001000

10010010

0011 1000

01100011

11 1. Summation:

Pseudotetrade: Tetraden-Übertrag:

Korrektur: Übertrag

0111neinnein

0000nein

ja0110

1

1011ja

+01101111

1011 ja

+0110 11

1001neinnein

2. Summation: = 77219

01117

01117

00102

0001 1

10019

Codierung

9

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.2.2 Aiken-Code

Beim Aiken-Code handelt es sich um einen symmetrischen Code. Ungerade Dezimalziffern sind genauso wie beim BCD-Code durch eine 1 in der niedrigstwertigen Binärstelle gekenn-zeichnet. Die Binärstellen des Aiken-Code haben (von links nach rechts gelesen) die Stellenwerte 2, 4, 2, 1. Deshalb wird der Aiken-Code auch 2-4-2-1-Code genannt.

Aufgrund der symmetrischen Struktur dieses Codes kann das Komplement einfach durch bitweise Invertierung eines Code-wortes gebildet werden.

Die Verfeinerung des Prozesses "Überprüfung & Korrektur" sieht wie folgt aus:

Hierbei wird überprüft, ob das Ergebnis der dualen Addition einer Pseudotetrade (PT) entspricht. Ist dies der Fall, so muss überprüft werden, ob ein Übertrag vorlag. Falls ein Übertrag entstanden ist, wird die Zahl 01102 (610) subtrahiert, ansonsten wird diese Zahl addiert.

Summe=PT?

Übertrag

+0II0-0II0 keine Korrektur

ja nein

ja nein

Abbildung 2.4: Verfeinerung des Prozesses "Überprüfung & Korrektur" für den Aiken-Code

Codierung

10

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Falls ein Übertrag in die nächst höherer Tetrade entsteht, wird dieser auf jeden Fall bei der dualen Addition der nächst höherer Tetrade berücksichtigt.

Beispiel: Addition im Aiken-Code

28936 + 48283 Übertrag

00100100

1

11101110

11 1

11110010

1111

0011 1110

11

11000011

1. Summation: Pseudotetrade:

Tetraden-Übertrag: Korrektur: Übertrag

0111ja

nein+0110

11

1101nein

ja

0010nein

ja

0001 nein

ja

1111neinnein

2. Summation: = 77219

11017

11017

00102

0001 1

11119

2.2.3 3-Exzess-Code

Der 3-Exzess-Code entsteht aus der Addition der Dualzahl 00112 zu den Worten des BCD-Codes. Hierbei handelt es sich ebenfalls um einen symmetrischen Code, der jedoch im Gegensatz zum BCD- oder Aiken-Code keine Stellenwertigkeit aufweist.

Das Komplement kann einfach durch bitweise Invertierung eines Codewortes gebildet werden.

Bei der Addition zweier Dezimalzahlen im 3-Exzess-Code, muss nicht geprüft werden, ob eine Pseudotetrade erzeugt wurde. Lediglich das Auftreten eines Übertrages muss kontrolliert werden (vgl. folgende Abb. 3.5). Der gegebenenfalls entstandene Übertrag wird auf jeden Fall bei der dualen Addition der nächst höherer Tetrade berücksichtigt.

Codierung

11

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Übertrag

-00II+00II

ja nein

Abbildung 2.5: Verfeinerung des Prozesses "Überprüfung

& Korrektur" für den 3-Exzess-Code

Beispiel: Addition im 3-Exzess-Code

28936 + 48283 Übertrag

01010111

1111

10111011

111

11000101

1111

0110 1011

11

10010110

1. Summation: Tetraden-Übertrag:

Korrektur: Übertrag

1101nein

-00111

0111ja

+0011111

0010ja

+0011 1

0001 ja

+0011 11

1111nein

-0011

2. Summation: = 77219

10107

10107

01012

0100 1

11009

2.2.4 Gray-Code

Der Gray-Code findet weniger Einsatz in arithmetischen Operationen, sondern wird hauptsächlich für die Analog-Dital-Umsetzung benutzt. Der Gray-Code ist ein einschrittiger Code, d.h. beim Übergang von einem Codewort auf das nächst-folgende ändert sich stets nur ein einziges Bit (Binärstelle). Daher können während der Übergänge keine Zwischenwerte auftreten, wie dies beispielsweise beim BCD-Code beim Übergang von dezimal 7 (01112) nach 8 (10002) geschehen kann. In diesem Fall ändern sich nämlich vier Binärstellen auf einmal, so daß kurzzeitig Zwischenwerte auftreten können. Im Extremfall sind dies die 0 (00002) oder die 15 (11112). Dies kann dann zu erheblichen Fehlern führen.

Codierung

12

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Der von E. Gray entwickelte Code wurde von Glixon so geändert, dass bei einem Übergang von dezimal 9 nach 0 sich ebenfalls nur eine Binärstelle ändert, und der Code damit zyklisch wird.

Dezimalzahl ursprünglicher Gray-Code

zyklischer Code nach

Glixon 0 0000 0000 1 0001 0001 2 0011 0011 3 0010 0010 4 0110 0110 5 0111 0111 6 0101 0101 7 0100 0100 8 1100 1100 9 1101 1000

Der Gray-Code wird z.B. bei digitalen Meßwaagen, Winkelgebern etc. eingesetzt. In der folgenden Grafik ist eine mit dem Glixon-Code codierte Winkelscheibe abgebildet. Die vier konzentrischen Ringe stellen die vier Binärstellen dar. Der innerste Ring repräsentiert dabei das höchstwertige Bit und ein graues Kreissegment entspricht einer logischen 1. Der aktuelle Wert kann über eine Fotozelle (Scanner) ermittelt werden. Der Gray-Code läßt sich rechnertechnisch aus den Dualzahlen sowohl mittels eines Programms (SW) als auch mit einem Rechenwerk (HW) generieren.

Codierung

13

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Abbildung 2.6: Winkelscheibe mit Glixon-Code

0

1 0

2

3

4 5

6

7

8 9

Codierung

14

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.2.5 Zusammenfassung

Die folgende Tabelle stellt nochmals die kennengelernten Tetraden-Codes bezüglich ihrer Merkmale gegenüber. Merkmal BCD Code Aiken Code 3-Exzess Code Gray-Code Bewertbar-keit

gut, da die Codes Stellenwerte aufweisen

schlecht, da die Codes keine Stellenwerte aufweisen

Komplement-bildung, d.h. Subtraktion

schwierig, da eine Umrechnung notwendig ist

einfache Umrechnung durch Vertauschen von 1en und 0en in jeder Stelle, da symmetrische Codes

findet hier keine Anwendung

Konvertier-barkeit

direkt identisch Fallunterscheidung nötig => ggf. Korrekturaddition

einfach immer 00112 subtrahieren

aufwendig

Symmetrie nicht vorhanden vorhanden nicht vorhanden Addition schwierig, da das Auftreten von

sechs unterschiedlichen Pseudo-Tetraden erkannt werden muß.

einfach, da die Korrektur nur vom Übertrag abhängt

schwierig, Code wird jedoch i.d .R .nicht für Arithmetik genutzt.

Weiterführende Frage:

Wie könnte für die einzelnen Zahlencodes eine Rechenvorschrift für die Subtraktion lauten?

Codierung

15

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.3 Zeichencodes Die Aufgabe alphanumerischer Codes ist die Darstellung und Übertragung von Buchstaben und Ziffern. Hierzu werden in der Praxis auch Zeichen mit besonderer Bedeutung, also Sonderzeichen, gezählt.

Der Symbolumfang beträgt daher üblicherweise mindestens:

26 Buchstaben 15 Satzzeichen 10 Sonstige ⎯⎯⎯⎯⎯⎯ 51 Symbole

Hieraus ergibt sich eine erforderliche Wortlänge von mindestens ld [51] ≈ 5,6 => 6 Bit.

Aus den unterschiedlichen Anforderungen und Möglichkeiten der Datenübertragung in Netzen der Telekommunikation wurden mehrere internationale Normen entwickelt. Je nach historischem Stand der Technik und vorrangiger Aufgabe entstanden Codes von verschiedenem Umfang:

Bezeichnung des Codes Wortlänge

• Fernschreibcode CCITT Nr. 2 (5 Spurlochstreifencode, 1932) 26 Buchstaben bzw. Zahlen&Sonderzeichen + 2 Umschalten + Zwischenraum + Lochstreifentransport

5 bit

• CCITT Nr. 5 ISO-7-Bit-Code 128 Zeichen (US)ASCII (American Standard Code for Information Interchange)

7 bit

• EBCDIC-Code (Extended Binary Coded Decimal Interchange Code)

8 bit

• IBM-Zeichensatz für den PC 8 bit

Codierung

16

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.3.1 Fernschreibecode

Der Fernschreibecode oder Lochstreifencode ist der älteste der genannten Codes. Die folgende Abbildung zeigt exemplarisch einen Lochstreifenabschnitt, der die Nachricht "Komm um 13 Uhr" verschlüsselt.

Zwischen-

raum

Umschaltung

Zahl Buchst K O M M U M 1 3 U H R Klartext • • • • • • • 1. Informat.spur • • • • • • • 2. Informat.spur Transportlochung • • • • • • • • • • • • 3. Informat.spur • • • • • • • • 4. Informat.spur • • • • • • • • 5. Informat.spur

Die kleineren Löcher in der Mitte des Lochstreifens dienen dem Transport des Lochstreifens (Transportlochung) und ergeben gleichzeitig eine Art Takt für die Codewortfolgen. Ein Zeichen der codierten Nachricht entspricht einer Spalte auf dem Lochstreifen (1.-5. Informationsspur). Die folgende Tabelle gibt einen Überblick über die so verschlüsselbaren Zeichen. Lochstreifencode, CCITT-Code Nr. 2:

Codierung

17

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Nummer des

Informationsstellen Codiertes Symbol

Code- Worts

Transport und Takt

Buch-staben

Ziffern und

Sonder-zeichen

1 2 T 3 4 5 1 • • A - 2 • • • B ? 3 • • • C M 4 • • D + 5 • E 3 6 • • • F 7 • • • G 8 • • H 9 • • I 8

10 • • • J Klingel 11 • • • • K ( 12 • • L ) 13 • • • M . 14 • • N , 15 • • O 9 16 • • • P 0 17 • • • • Q 1 18 • • R 4 19 • • S ' 20 • T 5 21 • • • U 7 22 • • • • V = 23 • • • W 2 24 • • • • X / 25 • • • Y 6 26 • • Z + 27 • < <

Codierung

18

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

28 • ≡ ≡ 29 • • • • • Buchstabe 30 • • • • Zahl&Sonderz. 31 • Zwischenraum 32

Tabelle 2.2: Lochstreifencode, CCITT-Code Nr. 2.

Aufgrund der technischen Randbedingungen des letzten Jahrhunderts (hauptsächlich der geringen Übertragungsrate) wurde die Wortlänge auf 5 bit begrenzt. Da der geforderte Symbolumfang jedoch deutlich größer als 25=32 ist, wurden die Codewort einfach doppelt belegt, d.h. jedem Codewort ist sowohl ein Symbol des Teilalphabets "Buchstabe" als auch ein Symbol der Teilalphabets "Zahlen & Sonderzeichen" zugeordnet. Hieraus folgte die Notwendigkeit einer Kennzeichnung, aus der der Empfänger auf das jeweils gültige Teilalphabet schließen kann. Hierzu wurden die Codeworte mit den Nummern 29 und 30 als Umschaltzeichen definiert: Dem Codewort 29 (30) folgen solange Symbole, die als Buchstaben (Zahl o. Sonderzeichen) zu interpretieren sind, bis das jeweils andere Umschaltzeichen gesendet wird. Die Interpretation der Lochstreifencodes wird dadurch abhängig von der Vorgeschichte; zudem wird die Menge der übertragbaren Nachrichten pro Zeiteinheit in Abhängigkeit von der Häufigkeit der Umschaltsymbole reduziert. Um diese Verluste nicht größer als nötig werden zu lassen, wurde das Codewort mit der Nummer 31 in beiden Teilalphabeten als Zwischenraum definiert.

Codierung

19

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2.3.2 ASCII

Der ASCII- (American Standard Code for Information Interchange), oder auch CCITT-Code Nr. 5 genannt, hat die zur Zeit weltweit größte Bedeutung für rechnerinterne Darstellung und für die Datenübertragung. Auf der Basis des ursprünglich für den englischsprachigen Raum konzipierten Codes wurden auch zahlreiche Varianten entwickelt, die innerhalb der Sonder-zeichen auch andere Codierungen zulassen wie etwa Codierung der Umlaute der deutschen Sprache.

Die folgende Tabelle zeigt die Bedeutung der einzelnen Steuerzeichen, Tabelle 2.4 die Zuordnung der Codeworte zu den Symbolen.

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF

alle Leit. NUL Start Of Heading Start Of TeXt End Of TeXt End Of Transm ENQuiry ACKnowledged BELI BackSpace Horizontal Tab Line Feed

VT FF CR SO SI DLE DCI XON DC3 XOF NAK

Vertical Tab Form Feed Carriage Return Shift Out Shift In Data Link Space Device Control 1 XON–protocol1 Device Control 3 XOFf–protocol1 Not AcKnow1.

SYNETBCANEM SUBESCFS GS RS US DEL

SYNchron. Idle End Transm. Block CANcel End of Medium SUBstitute ESCape File Separator Group Separator Record Separator Unit Separator DELete

Tabelle 2.3: ASCII: Abkürzungen und Vollnamen der Steuerzeichen.

Codierung

20

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Codierte Symbole Steuerzeic

hen Ziffern & Sonder-zeichen

Buchstaben & Sonderzeichen

Bit-Nr 7 6 5

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

4 3 2 1 0 1 2 3 4 5 6 7 0 0 0 0 0 NUL DEL SP 0 @ P ` p 0 0 0 1 1 SOH DC1 ! 1 A Q a q 0 0 1 0 2 STX DC2 " 2 B R b r 0 0 1 1 3 ETX DC3 # 3 C S c s 0 1 0 0 4 EOT DC4 $ 4 D T d t 0 1 0 1 5 ENQ NAK % 5 E U e u 0 1 1 0 6 ACK SYN & 6 F V f v 0 1 1 1 7 BEL ETB ' 7 G W g w 1 0 0 0 8 BS CAN ( 8 H X h x 1 0 0 1 9 HT EM ) 9 I Y i y 1 0 1 0 10 LF SUB n : J Z j z 1 0 1 1 11 VT ESC + ; K [ k { 1 1 0 0 12 FF FS , < L \ l ⏐ 1 1 0 1 13 CR GS - = M ] m } 1 1 1 0 14 SO RS . > N ^ n ~ 1 1 1 1 15 SI US / ? O _ o DEL

Tabelle 2.4: CCITT-Code Nr. 5, auch ASCII genannt.

2.3.3 EBCDIC

Der EBCDI-Code (Extended Binary Coded Decimal Interchange Code) wurde von IBM entwickelt. Er erfüllt ähnliche Aufgaben wie der ASCII-Code, verfügt jedoch über deutlich mehr Steuer-zeichen für die Steuerung innerhalb von Rechnersystemen. Auch hier soll auf die Bedeutung der Steuerzeichen nicht näher eingegangen werden.

Codierung

21

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

8 0 0 1 1

7 0 1 0 1

6 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1

4

3

2

5

1

0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

0 0 0 0 NUL DEL DS SP - 0

0 0 0 1 SOH DC1 SOS / a j A J 1

0 0 1 0 STX DC2 FS SYN b k s B K S 2

0 0 1 1 ETX TM c l t C L T 3

0 1 0 0 PF RES BYP PN d m u D M U 4

0 1 0 1 HT NL LF RS e n v E N V 5

0 1 1 0 LC BS ETB UC f o w F O W 6

0 1 1 1 DEL IL ESC EOT g p x G P X 7

1 0 0 0 CAN h q y H Q Y 8

1 0 0 1 RLF EM i r z I R Z 9

1 0 1 0 SMM CC SM ¢ ! :

1 0 1 1 VT CU1 CU2 CU3 . $ , #

1 1 0 0 FF IFS DC4 < ≡ %

1 1 0 1 CR IGS ENQ NAK ( ) - '

1 1 1 0 SO IRS ACK + ; > =

1 1 1 1 SI IUS BEL SUB / ? "

Tabelle 2.5: EBCDI-Code (Extended Binary Coded Decimal Interchange Code).

Der IBM-Zeichensatz des PC's basiert auf dem ASCII-Code, verfügt allerdings über zahlreiche Erweiterungen sowohl zur Darstellung national relevanter Symbole als auch zur Erstellung einfacher Grafiken bestehend aus verschiedenen Linien. Diese Blockgrafik ist als Vorstufe zur heute verbreiteten Fenstertechnik (Windows) zu sehen. Ihr Vorteil liegt dabei in der einfachen Erstellung und kompakten Speicherung anwendungsbezogener Tabellen oder Fenster.

Codierung

22

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

S1

S4

S7

S3

S6

S2

S5

2.4 Codeumsetzer Bisher wurden einige Codes zur Verschlüsselung vorgegebener Informationen wie beispielsweise Buchstabenfolgen oder Dezimalzahlen dargelegt. In diesem Kapitel soll abschließend noch die Überführung bereits codierter Informationen in einen anderen Code betrachtet werden. Dies geschieht mittels eines Codeumsetzers, der die binärcodierten Informationen eines Codes 1 in einen anderen Code 2 umsetzt.

Beispiel: Umsetzung des BCD-Codes in den 7-Segment-Code

• Code 1: BCD, Binärcode, rechnerinterner Verarbeitungs-code

• Code 2: 7-Segment-Code, hardwarebezogener "Ansteuerungscode" für bestimmte Datensichtgeräte

Der 7-Segment-Code wurde zur Ansteuerung von sieben Segmenten (z.B. mechanische Klappen oder LEDs) entwickelt, die auf Grund ihrer Anordnung die Darstellung der zehn Ziffern sowie einiger Buchstaben erlauben.

Aus der Codegegenüberstellung (vgl. Tab) können nun die Vorschriften zur Umsetzung des BCD-Codes in den 7-Segment-Code abgeleitet werden. In diesem Beispiel soll eine LED der 7-Segment-Anzeige aufleuchten, wenn sie mit einer logischen 0 angesteuert wird. Die folgende Abbildung zeigt die Anordnung der Segmente S1 - S7.

Codierung

23

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

Dezimal-ziffer

7-Segment-Code BCD-Code S1 S2 S3 S4 S5 S6 S7 X3 X2 X1 X0

0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 2 0 0 1 0 1 0 0 0 0 1 0 3 0 0 1 0 0 1 0 0 0 1 1 4 1 0 0 0 0 1 1 0 1 0 0 5 0 1 0 0 0 1 0 0 1 0 1 6 0 1 0 0 0 0 0 0 1 1 0 7 0 0 1 1 0 1 1 0 1 1 1 8 0 0 0 0 0 0 0 1 0 0 0 9 0 0 0 0 0 1 0 1 0 0 1

Die Implementierung dieser Vorschriften kann auf unterschiedliche Arten erfolgen. 1. Implementierung mittels Hardware:

Schritt 1: Festlegen der Richtung, hier ist nur die Umsetzung des BCD-Codes in den 7-Segment-Code sinnvoll.

Schritt 2: Aufstellen der Funktionsterme für jedes der 7 Segmente mittels einer Funktionsgleichung oder eines KV-Diagrammes => S1 = f(X3, X2, X1, X0) S2 = f(X3, X2, X1, X0) . . . S7 = f(X3, X2, X1, X0)

Schritt 3: Vereinfachung der Funktionsterme: Entweder jeder für sich alleine betrachtet oder unter Berücksichtigung gemeinsamer Ausdrücke (Funktionsbündel2)

Schritt 4: Fertigung der Schaltung 2 Dies ergibt ggf. Vorteile für die spätere hardwaremäßige Realisierung.

Codierung

24

Prof. Dr.-Ing. Axel Hunger Grundlagen der Technischen Informatik

2. Implementierung mittels Software: 1. Möglichkeit:

Schritt 1: Festlegung des Codes, der Zielcode der Codeumsetzung ist

Schritt 2: Aufstellen der Zuordnungstabelle Schritt 3: Programmierung als table-look-up-Prozeß Schritt 4: Compilieren bzw. Assemblieren des Source-

Codes

2. Möglichkeit: Schritt 1: Festlegung des Codes, der Zielcode der

Codeumsetzung ist Schritt 2: Entwurf eines Algorithmus zur Codeumsetzung Schritt 3: Implementierung des Algorithmus Schritt 4: Compilierung bzw. Assemblieren des Source-

Codes Das Prinzip der Implementierung mittels Hardware verdeutlicht die folgende Abbildung. Weiterführende Frage:

Entwickle eine Schaltung für den Decoder der obigen Schaltung

S1

S4

S7

S3

S6

S2

S5

Decoder

input:a b c dX3 X2 X1 X0