Code - Codewandler

Inhaltsübersicht:

 

Was ist ein Code?

Ein Code ist eine eindeutige Zuordnung zwischen zwei Mengen. Der BCD-Code ist z.B. eine Zuordnung zwischen Dezimal- und Binärzahlen. Jeder Dezimalzahl entspricht dabei eine Binärzahl.

Es gibt viele verschiedene Codes, die für bestimmte Anwendungen mehr oder weniger gut geeignet sind. Beispielsweise EAN-Code auf jeder Verpackung oder der amerikanische Standard Code ASCII.

Zunächst wollen wir uns mit einem für den Elektroniker sehr wichtigen Code - dem BCD-Code beschäftigen.

 

BCD-CODE (Binary Coded Decimals)

Beim BCD-Code werden die ersten 10 Kombinationen (also von 0 bis 9) aus dem Dualcode übernommen. Die Kombinationen A...F sind die sogenannten Pseudotetraden (unechte Tetraden).
Jede Dezimalziffer wird durch 4 binäre Stellen (Tetraden) dargestellt.

MSB...Most Sygnificant Bit
LSB...Least Sygnificant Bit

Bsp: 239dez --> BCD

2 = 0010
3 = 0011
9 = 1001

239dez = 0010 0011 1001 im BCD-Code

 

Addition BCD-Code

3+6

3 -> 0011
6 -> 0110
9 -> 1001       (0+1 = 1      1+1=0 +1 Übertrag)

 

9+3

9 ->    1001
3 ->    0011
12 ->  1100  =  Pseudotetrade

+ 6 addieren (da 6 Pseudotetraden)

12       1100
+6       0110

0001    0010

0001 = 1, 0010 = 2    = 12

 

78+69

78 -> 0111 1000
69 -> 0110 1001
         1110 0001
+6     0110 0110    (+6, da mit 1110 eine Pseudotetrade)

0001  0100  0111

   1        4       7

 


Stibitz-Code / 3-Exzeß-Code


Beim 3-Exzeß-Code oder Stibitz-Code ist der gültige Zahlenbereich 0...9 um 3 Tetraden verschoben.
Die Pseudotetraden verteilen sich also auf 3 am Anfang und 3 am Ende der 16 möglichen Kombinationen.

Der 3-Exzeß-Code hat den Vorteil, dass die Zahl 0 nicht durch 0000 sondern durch 0011 dargestellt wird.
Damit kann bei einer Datenübertragung eine Leitungsunterbrechung erkannt werden.

 

 

Korrekturvorschriften:

  1. Entsteht bei der Addition von 2 Tetraden kein Übertrag in die 5. Stelle, so muß vom Ergebnis die Zahl 3 (0011) subtrahiert werden.
  2. Entsteht bei der Addition von 2 Tetraden ein Übertrag in die 5. Stelle, so muß zum Ergebnis die Zahl 3 (0011) addiert werden.


Rechenbeispiele:

1+3 = 4

0100
0110+
1010    -->kein Übertrag in die 5. Stelle, daher 3 subtrahieren!
0011 -  --> invertieren = 1100 + 1 = 1101

1010
1101+
10111  -->das 5. Bit wird verworfen somit

0111 = 4

 

6+9 = 15

1001
1100+
10101   -->Übertrag in die 5. Stelle, daher 3 addieren!

0001   0101
0011   0011+
0100   1000

   1         5

 

123 + 456 = 579

0100   0101   0110
0111   1000   1001+
1011   1101   1111     -->kein Übertrag in die 5. Stelle, daher 3 subtrahieren!

0011   0011   0011     --> Invertieren = 1100 + 1 = 1101

1011   1101   1111
1101   1101   1101+
1000   1010   1100    -->(das 5. Bit wurde jeweils verworfen!)

    5        7        9

 


Codewandler


Ein Codewandler wandelt einen Eingangscode in einen Ausgangscode um. 

Wir erstellen einen Codewandler, der den 3-Exzeß-Code in den BCD-Code umwandelt.

 

 

1. Wahrheitstabelle:

  3-Exzeß BCD
 dez D C B A D C B A
 0  0011  0000
 1  0100  0001
 2  0101  0010
 3  0110  0011
 4  0111  0100
 5  1000  0101
 6  1001  0110
 7  1010  0111
 8  1011  1000
 9  1100  1001

 

 2. Lageplan vom 3-Exzeß-Code mittels KV-Diagramm (X = don't care, also egal welcher Zustand)

 

3. Schaltfunktion für A des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von A 1 ist.

Variable A hat eine "1" bei 1,3,5,7,9 und eine "0" bei 0,2,4,6,8 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: ABCD = A'3-Exzeß

 
4. Schaltfunktion für B des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von B 1 ist.

Variable B hat eine "1" bei 2,3,6,7 und eine "0" bei 0,1,4,5,8,9 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: BBCD = A' B * A B'

5. Schaltfunktion für C des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von C 1 ist.

Variable C hat eine "1" bei 4,5,6,7 und eine "0" bei 0,1,2,3,8,9 auf dem 3-Exzeß-Lageplan.

Wir fassen zusammen und erhalten für A die Gleichung: CBCD = B' C' * A' C' * ABC

6. Schaltfunktion für D des BCD-Codes.

Entsprechend der Dezimalzahl wird dort eine 1 in das KV-Diagramm übertragen wo der Ausgang von D 1 ist.

Wir ersparen uns an dieser Stelle ein neues KV-Diagramm.

Wir erhalten für D die Gleichung: DBCD = ABD * CD

 

Zusammenfassung der Ausgänge:

A = A'

B = A' B * A B'

C = B' C' * A' C' * ABC

D = ABD * CD

 

7. Die Schaltung