grundlagen der technischen informatik...codierung 3 prof. dr.-ing. axel hunger grundlagen der...
TRANSCRIPT
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